/* Public M.O.M. entry. Account panels stay behind the existing auth gate. */
.auth-view:has(.public-entry) {
  display: block;
  height: 100dvh;
  min-height: 0;
  max-height: 100dvh;
  padding: 0;
  overflow: hidden;
}
.auth-view.hidden { display: none; }
.public-entry {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  color: var(--text);
  background: rgb(16 13 16 / 58%);
}
.public-entry-workspace { display: flex; flex: 1; min-height: 0; min-width: 0; overflow: hidden; }
.public-entry-navigation {
  flex: 0 0 clamp(150px, 19vw, 240px);
  min-width: 0;
  padding: 12px;
  border-inline-end: 1px solid var(--border);
  overflow-y: auto;
  background: rgb(16 13 16 / 32%);
}
.public-entry-navigation[hidden] { display: none; }
.public-entry-fruit-chip { width: 100%; min-height: 40px; text-align: start; }
.public-entry-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  padding: clamp(14px, 2.5vw, 30px);
  border-bottom: 1px solid var(--border);
  background: rgb(16 13 16 / 62%);
}
.public-entry-brand { display: flex; align-items: center; gap: .65rem; flex: none; min-width: 0; }
.public-entry-header .brand-lockup { flex: none; }
.public-entry-header .brand-lockup h1 { margin: 0; }
.public-entry-brand > #public-panel-toggle { flex: none; white-space: nowrap; }
.public-entry-login.auth-card {
  width: min(440px, 100%);
  max-width: 100%;
  padding: 0;
  gap: .35rem;
  background: transparent;
  border: 0;
}
.public-entry-login-row { display: flex; align-items: stretch; gap: .5rem; }
.public-entry-login-row input { flex: 1 1 auto; min-width: 0; }
.public-entry-login-row button { flex: none; white-space: nowrap; }
.public-entry-login p { margin: .1rem 0; font-size: .78rem; }
.public-entry-login.invitation-auto-pairing > label,
.public-entry-login.invitation-auto-pairing > .public-entry-login-row { display: none; }
.public-entry-main {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  align-content: start;
  justify-items: start;
  padding: clamp(18px, 4vw, 56px);
}
.public-entry-close { float: right; margin-inline-start: .5rem; }
.public-entry-ministry[hidden] { display: none; }
.public-entry-ministry blockquote { margin-inline: 0; padding: .5rem 1rem; border-inline-start: 3px solid var(--accent); }
.public-entry-navigation-hidden .public-entry-navigation { display: none; }
.public-entry-ministry {
  width: min(720px, 100%);
  padding: clamp(18px, 3vw, 32px);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: rgb(16 13 16 / 76%);
  line-height: 1.55;
}
.public-entry-ministry :is(h2, h3) { margin: .15rem 0 .65rem; }
.public-entry-ministry ul { margin: .5rem 0 0; padding-inline-start: 1.4rem; }
.public-entry-ministry li + li { margin-top: .4rem; }
.public-entry-kicker { margin: 0; color: var(--accent); font-weight: 700; letter-spacing: .08em; }
:root[data-palette="republic"] .public-entry,
:root[data-palette="republic"] .public-entry-header,
:root[data-palette="republic"] .public-entry-ministry {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
@media (max-width: 660px) {
  .public-entry-header { flex-direction: column; align-items: stretch; }
  .public-entry-brand { align-self: flex-start; }
  .public-entry-login.auth-card { width: 100%; }
  .public-entry-workspace { flex-direction: row; }
  .public-entry-navigation { flex: 0 0 clamp(104px, 28vw, 160px); padding: 8px; }
  .public-entry-fruit-chip { width: 100%; min-width: 0; white-space: normal; }
  .public-entry-main { padding: 12px; }
}
@media (max-width: 380px) {
  .public-entry-login-row { flex-wrap: wrap; }
  .public-entry-login-row input, .public-entry-login-row button { width: 100%; }
}

/* Public and expired-session M.O.M. use the same full-width tab surface. */
.public-entry-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; touch-action: pan-y; padding: 8px; gap: 8px; }
.public-entry-ministry { width: 100%; min-width: 0; padding: 0; border: 2px solid var(--border); border-radius: var(--radius); background: var(--etti-control-surface, rgb(16 13 16 / 58%)); }
/* The shared renderer adds settings-panel, whose authenticated dialog geometry
   must not position the public tab outside its navigation/content flow. */
.public-entry-main > .public-entry-ministry.settings-panel {
  position: relative;
  inset: auto;
  transform: none;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  max-height: none;
  flex: 0 0 auto;
  overflow: visible;
  z-index: auto;
}
.public-entry-ministry > .settings-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 6px 10px; border-radius: inherit; background: color-mix(in srgb, #100d10 var(--tab-section-opacity, 62%), transparent); }
.public-entry-ministry > .settings-header > h2 { flex: 1; min-width: 0; margin: 0; font-size: 1rem; }
.public-entry-ministry .settings-header .actions { display: flex; align-items: center; gap: 4px; }
#public-ministry-body { padding: 8px; }
#public-ministry-body > .panel { margin-bottom: 8px; }
.public-entry-brand > #public-panel-toggle[aria-expanded="false"] { border-color: var(--warning, #f4cf64); }
.public-entry-brand > #public-etti-brand {
  appearance: none;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 4px 8px;
  flex: none;
}
.public-entry-brand > #public-etti-brand:hover,
.public-entry-brand > #public-etti-brand:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--state-success-text, #8bf0bd) 85%, transparent);
  outline-offset: 2px;
}

/* Public entry owns the screen while the authenticated workspace is retired.
   A stale fullscreen class must not hide sign-in controls. */
body:has(#auth-view:not(.hidden)) :is(#app-layout, .saved-layouts-resizer, .saved-layouts-drawer) { display: none !important; }
body:has(#auth-view:not(.hidden)) :is(#auth-view, #auth-view *) { visibility: visible !important; }
.public-entry-main > .public-entry-ministry.settings-panel[hidden] { display: none !important; }

/* The current public shell owns its controls in every zone. Legacy minimal
   releases retain their separate, explicitly scoped compatibility overlay. */
html:not(.production-minimal) .public-entry-ministry { border:0; display:flex; flex-direction:column; }
html:not(.production-minimal) .public-entry-ministry > .settings-header { flex-wrap:wrap; border-radius:var(--radius) var(--radius) 0 0; padding-inline:12px; }
html:not(.production-minimal) .public-entry-ministry > .settings-header > h2 { flex:1 1 180px; overflow-wrap:anywhere; }
html:not(.production-minimal) .public-entry-ministry .settings-header .actions { flex:none; margin-inline-start:auto; }
html:not(.production-minimal) .public-entry-ministry .settings-header button { box-sizing:border-box; width:40px; height:34px; padding:2px; border:2px solid transparent; background:transparent; color:var(--text); }
html:not(.production-minimal) .public-entry-ministry .settings-header button:hover { border-color:var(--fruit-open-border,#f0d564); }
html:not(.production-minimal) .public-entry-ministry #public-mom-close:hover { border-color:var(--danger,#e44b68); }
html:not(.production-minimal) .public-entry-ministry .settings-header button:is(:active,.etti-chrome-click-feedback) { border-color:var(--fruit-focused-border,#62df8a); }
.public-sticky-swapped { flex-direction:row-reverse; }
html:not(.production-minimal) .public-entry-ministry.public-sticky-bottom > .settings-header { order:2; top:auto; bottom:0; margin-top:auto; border-radius:0 0 var(--radius) var(--radius); }
html:not(.production-minimal) .public-entry-ministry #public-ministry-body { min-width:0; }
@media (max-width:560px) {
  html:not(.production-minimal) .public-entry-ministry > .settings-header > h2 { flex-basis:100%; order:2; }
  html:not(.production-minimal) .public-entry-ministry.public-sticky-bottom > .settings-header > h2 { order:-1; }
}

/* Public chrome follows the workspace; sign-in has its own compact row. */
html:not(.production-minimal) .public-entry{ --public-sidebar-width:var(--lime-sidebar-width,300px); }
html:not(.production-minimal) .public-entry-header{ display:grid; grid-template-columns:var(--public-sidebar-width) minmax(0,1fr); align-items:center; justify-content:initial; min-height:52px; padding:5px 10px; gap:8px; box-sizing:border-box; background:var(--etti-control-surface,rgb(16 13 16 / 62%)); }
html:not(.production-minimal) .public-entry-brand{ display:flex; align-items:center; margin:0; }
html:not(.production-minimal) .public-entry-header .brand-lockup h1{ font-size:1.3rem; line-height:1; letter-spacing:.08em; }
html:not(.production-minimal) .public-entry-header .brand-slogan{ font-size:.676rem; line-height:1; letter-spacing:.12em; }
html:not(.production-minimal) .public-workspace-controls{ display:flex; flex-wrap:wrap; align-items:center; justify-self:start; min-width:0; }
html:not(.production-minimal) .public-workspace-controls > button{ min-height:34px; padding:4px 8px; white-space:nowrap; }
html:not(.production-minimal) .public-workspace-controls > button[aria-pressed="true"]{ border-right-color:var(--fruit-focused-border,#62df8a); }
html:not(.production-minimal) #public-panel-toggle{ color:var(--fruit-focused-border,#62df8a); }
html:not(.production-minimal) #public-panel-toggle[aria-expanded="false"]{ color:var(--fruit-open-border,#f0d564); }
html:not(.production-minimal) #public-panel-toggle:hover,html:not(.production-minimal) #public-panel-toggle:focus-visible{ outline:2px solid var(--fruit-open-border,#f0d564); outline-offset:-2px; }
html:not(.production-minimal) .public-sign-in-bar{ flex:none; padding:7px 14px; border-bottom:1px solid var(--border); background:var(--etti-control-surface,rgb(16 13 16 / 48%)); }
html:not(.production-minimal) .public-sign-in-bar .public-entry-login{ display:grid; grid-template-columns:max-content minmax(180px,440px) minmax(0,1fr); align-items:center; column-gap:12px; row-gap:2px; width:100%; max-width:none; margin:0; }
html:not(.production-minimal) .public-sign-in-bar .public-entry-login > label{ grid-column:1; grid-row:1; margin:0; }
html:not(.production-minimal) .public-sign-in-bar .public-entry-login-row{ grid-column:2; grid-row:1 / span 2; }
html:not(.production-minimal) .public-sign-in-bar #auth-msg{ grid-column:3; grid-row:1; }
html:not(.production-minimal) .public-sign-in-bar .public-entry-login > .hint{ grid-column:3; }
html:not(.production-minimal) .public-entry-workspace{ position:relative; }
html:not(.production-minimal) .public-entry-navigation{ box-sizing:border-box; flex-basis:var(--public-sidebar-width); width:var(--public-sidebar-width); padding:14px; background:var(--etti-control-surface,rgb(16 13 16 / 48%)); }
html:not(.production-minimal) .public-entry-navigation .public-entry-fruit-chip{ min-height:34px; text-align:center; }
html:not(.production-minimal) .public-entry-navigation-hidden .public-entry-header{ grid-template-columns:max-content minmax(0,1fr); }
@media (max-width:760px) {
  html:not(.production-minimal) .public-entry-header,html:not(.production-minimal) .public-entry-navigation-hidden .public-entry-header{ grid-template-columns:max-content minmax(0,1fr); padding:5px 8px; min-height:48px; gap:7px; }
  html:not(.production-minimal) .public-entry-header .brand-lockup h1{ font-size:1rem; }
  html:not(.production-minimal) .public-entry-header .brand-slogan{ font-size:.52rem; }
  html:not(.production-minimal) .public-entry-header .brand-lockup{ margin:0; }
  html:not(.production-minimal) .public-sign-in-bar{ padding:6px 10px; }
  html:not(.production-minimal) .public-sign-in-bar .public-entry-login{ display:flex; flex-direction:column; align-items:stretch; gap:2px; }
  html:not(.production-minimal) .public-sign-in-bar .public-entry-login > label{ position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  html:not(.production-minimal) .public-sign-in-bar .public-entry-login-row{ flex-wrap:nowrap; gap:6px; }
  html:not(.production-minimal) .public-sign-in-bar .public-entry-login-row input{ width:auto; flex:1; }
  html:not(.production-minimal) .public-sign-in-bar .public-entry-login-row button{ width:auto; }
  html:not(.production-minimal) .public-sign-in-bar .public-entry-login p{ font-size:.72rem; line-height:1.2; }
  html:not(.production-minimal) .public-entry-navigation{ position:absolute; inset:0 auto 0 0; z-index:10; width:min(86vw,300px); padding:12px; background:color-mix(in srgb,var(--bg,#100d10) 92%,transparent); box-shadow:5px 0 18px #0005; }
  html:not(.production-minimal) .public-entry-main{ width:100%; }
}
html:not(.production-minimal) .public-workspace-controls > button{ border:0; border-inline-end:2px solid var(--fruit-open-border,#f0d564); border-radius:0; background:transparent; box-shadow:none; }
html:not(.production-minimal) .public-workspace-controls > button:hover,html:not(.production-minimal) .public-workspace-controls > button:focus-visible{ outline:2px solid var(--fruit-open-border,#f0d564); outline-offset:-2px; border-radius:var(--radius,8px); }
html:not(.production-minimal) .public-workspace-controls > button.etti-chrome-click-feedback{ outline-color:var(--fruit-focused-border,#62df8a); }

/* Keep the existing button surface; email readiness changes only its border. */
#auth-form #auth-submit-btn { border:2px solid #e44b68 !important; }
#auth-form #auth-email:not(:placeholder-shown) + .public-sign-in-submit #auth-submit-btn { border-color:#f0d564 !important; }
#auth-form #auth-email:not(:placeholder-shown):valid + .public-sign-in-submit #auth-submit-btn { border-color:#62df8a !important; }

.public-sign-in-submit { display:flex; flex:none; flex-direction:column; align-items:stretch; justify-content:center; min-width:0; }
#auth-sent-status { color:#62df8a; font-size:.72rem; text-align:center; max-width:160px; }
#auth-sent-status[hidden] { display:none; }
