:root {
  --ink: #090a09;
  --ink-soft: #0e100f;
  --panel: #121411;
  --panel-raised: #171a16;
  --line: #2a2d28;
  --line-soft: #20231f;
  --gold: #c5a46e;
  --gold-bright: #dfc18f;
  --paper: #f2f0e9;
  --muted: #92968e;
  --success: #67b780;
  --warning: #d5a14e;
  --danger: #bd665d;
  --sidebar: 264px;
  --topbar: 76px;
}


/* Interconnected SSG OS modules */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.global-search { position: relative; width: min(260px, 24vw); }
.global-search > input, .module-toolbar input { width: 100%; border: 1px solid var(--line); padding: 10px 12px; color: var(--paper); background: #0d0f0e; font: inherit; }
.global-search-results { position: absolute; top: calc(100% + 10px); right: 0; z-index: 70; width: min(420px, 88vw); max-height: 65vh; overflow-y: auto; border: 1px solid #3a3d37; padding: 8px; background: #0a0c0b; box-shadow: 0 22px 60px rgb(0 0 0 / .55); }
.global-search-results button { width: 100%; display: grid; gap: 4px; border: 0; border-bottom: 1px solid var(--line-soft); padding: 12px; cursor: pointer; color: var(--paper); background: transparent; text-align: left; }
.global-search-results button:hover { background: rgb(197 164 110 / .08); }
.global-search-results small { color: var(--muted); text-transform: capitalize; }
.metric-card { color: inherit; font: inherit; text-align: left; cursor: pointer; }
.collection-empty.compact { min-height: 80px; display: grid; place-items: center; padding: 18px; color: var(--muted); }
.module-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.module-toolbar input { max-width: 440px; }
.module-toolbar span { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.module-registry { display: grid; gap: 11px; }
.module-card { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 17px; border: 1px solid var(--line); padding: 18px; background: linear-gradient(105deg, rgb(197 164 110 / .045), transparent 42%), var(--panel); }
.module-card-mark { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgb(197 164 110 / .35); color: var(--gold); font-family: "Playfair Display", serif; }
.module-card h2 { margin: 2px 0 5px; font-size: 18px; }
.module-card p:not(.eyebrow), .module-card small { color: var(--muted); font-size: 10px; line-height: 1.55; }
.module-card small { display: block; margin-top: 5px; color: #8e928a; }
.linked-field { position: relative; }
.linked-field button { justify-self: start; border: 0; padding: 5px 0; cursor: pointer; color: var(--gold); background: transparent; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.inline-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.record-dialog { width: min(760px, 94vw); max-height: 92vh; overflow-y: auto; border: 1px solid var(--line); padding: 0; color: var(--paper); background: var(--ink-soft); }
.record-dialog::backdrop { background: rgb(4 5 4 / .82); }
.record-form, .record-detail { padding: clamp(22px, 4vw, 38px); }
.record-form header, .record-detail header { margin-bottom: 22px; border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.record-form header h2, .record-detail header h2 { margin: 5px 0 7px; font-size: clamp(1.7rem, 4vw, 2.5rem); }
.record-form header p:last-child, .record-detail header p:last-child { color: var(--muted); line-height: 1.6; }
.record-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.record-form label { display: grid; gap: 7px; color: #9b9f96; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.record-form input, .record-form textarea, .record-form select { width: 100%; border: 1px solid #343731; padding: 11px; color: var(--paper); background: #0c0e0d; font: inherit; text-transform: none; }
.record-form textarea { min-height: 100px; resize: vertical; }
.record-form footer, .record-detail footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; border-top: 1px solid var(--line); padding-top: 18px; }
.record-detail section h3 { margin-bottom: 12px; color: var(--gold); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.linked-operation { width: 100%; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); padding: 13px; cursor: pointer; color: var(--paper); background: #0c0e0d; text-align: left; }
.linked-operation + .linked-operation { margin-top: 8px; }
.linked-operation span { color: var(--gold); font-size: 9px; text-transform: uppercase; }

@media (max-width: 900px) {
  .global-search { width: min(220px, 34vw); }
  .role-chip { display: none; }
}
@media (max-width: 680px) {
  .topbar { gap: 10px; padding: 0 14px; }
  .topbar-context { min-width: 0; }
  .topbar-context strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .operator { display: none; }
  .global-search { width: 42vw; }
  .collection-heading .button { width: 100%; }
  .module-toolbar { align-items: stretch; flex-direction: column; }
  .module-toolbar input { max-width: none; }
  .module-card { grid-template-columns: auto minmax(0, 1fr); }
  .module-card > .button { grid-column: 1 / -1; width: 100%; }
  .record-form-grid { grid-template-columns: 1fr; }
  .record-form footer, .record-detail footer { align-items: stretch; flex-direction: column-reverse; }
  .record-form footer .button, .record-detail footer .button { width: 100%; }
}
* { box-sizing: border-box; }
html { color-scheme: dark; }
body { margin: 0; min-width: 320px; min-height: 100vh; font-family: "Inter", system-ui, sans-serif; color: var(--paper); background: var(--ink); }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

body::before {
  position: fixed; inset: 0; z-index: -1; content: ""; pointer-events: none;
  background: radial-gradient(circle at 82% 4%, rgb(197 164 110 / .08), transparent 24rem), linear-gradient(120deg, transparent 54%, rgb(255 255 255 / .018) 54.2%, transparent 78%);
}

.eyebrow { margin: 0 0 8px; color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: "Playfair Display", Georgia, serif; }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px; border: 1px solid transparent; padding: 0 18px; cursor: pointer; font-size: 12px; font-weight: 700; letter-spacing: .04em; transition: transform .2s ease, border-color .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-1px); }
.button:focus-visible, .nav-item:focus-visible, .form-step:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.button-primary { color: #11120f; background: var(--gold); border-color: var(--gold); }
.button-primary:hover { background: var(--gold-bright); border-color: var(--gold-bright); }
.button-secondary { color: var(--paper); background: #171915; border-color: #393c35; }
.button-secondary:hover { border-color: var(--gold); }
.button-danger { color: #f2d5d1; background: rgb(189 102 93 / .09); border-color: rgb(189 102 93 / .55); }
.button-danger:hover { color: #fff; background: rgb(189 102 93 / .18); border-color: var(--danger); }
.button-quiet { color: var(--muted); background: transparent; border-color: transparent; }
.button-block { width: 100%; }

/* Login */
.login-page { overflow-x: hidden; }
.login-stage { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(380px, .75fr); }
.login-brand { position: relative; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: clamp(48px, 8vw, 130px); background: linear-gradient(90deg, rgb(9 10 9 / .96), rgb(9 10 9 / .75)), url('/assets/hero-executive-transport.jpg') center / cover; }
.login-brand::after { position: absolute; inset: 0; content: ""; pointer-events: none; background-image: linear-gradient(rgb(255 255 255 / .03) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / .025) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent); }
.brand-seal { position: relative; z-index: 1; width: 74px; height: 74px; display: grid; place-items: center; margin-bottom: 46px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); }
.brand-seal::before { position: absolute; inset: 5px; content: ""; border: 1px solid rgb(197 164 110 / .34); border-radius: inherit; }
.brand-seal span { font-family: "Playfair Display", serif; font-size: 18px; letter-spacing: .08em; }
.login-brand .eyebrow, .login-brand h1, .login-brand p, .clearance-line { position: relative; z-index: 1; }
.login-brand h1 { max-width: 780px; margin-bottom: 26px; font-size: clamp(4rem, 9vw, 8.3rem); line-height: .78; letter-spacing: -.055em; }
.login-brand h1 em { color: var(--gold); font-style: normal; }
.login-intro { max-width: 610px; color: #b5b7b0; font-size: 15px; line-height: 1.75; }
.clearance-line { display: flex; align-items: center; gap: 12px; margin-top: 44px; color: #7e827a; font-size: 10px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.clearance-line span { width: 44px; height: 1px; background: var(--gold); }
.login-card { display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 6vw, 92px); border-left: 1px solid var(--line); background: rgb(14 16 15 / .97); }
.login-card h2 { margin-bottom: 12px; font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.05; }
.login-card > div > p:last-child { color: var(--muted); line-height: 1.6; }
.login-form { display: grid; gap: 20px; margin-top: 30px; }
.login-form label, .field { display: grid; gap: 8px; color: #bbbdb6; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.login-form input, .field input, .field select, .field textarea { width: 100%; border: 1px solid #343731; border-radius: 0; outline: none; color: var(--paper); background: #0c0e0d; transition: border-color .2s ease, box-shadow .2s ease; }
.login-form input { height: 52px; padding: 0 14px; }
.login-form input:focus, .field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgb(197 164 110 / .1); }
.return-link { margin-top: 28px; color: #858980; font-size: 11px; text-decoration: none; }
.return-link:hover { color: var(--gold); }
.form-alert { margin-top: 22px; border-left: 2px solid var(--danger); padding: 12px 14px; color: #efc0bb; background: rgb(189 102 93 / .08); font-size: 12px; line-height: 1.5; }

/* App shell */
.command-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; width: var(--sidebar); display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #0c0e0d; }
.sidebar-brand { height: var(--topbar); display: flex; align-items: center; gap: 12px; padding: 0 19px; border-bottom: 1px solid var(--line); }
.brand-seal-small { flex: 0 0 auto; width: 39px; height: 39px; margin: 0; }
.brand-seal-small span { font-size: 11px; }
.sidebar-brand strong, .sidebar-brand small { display: block; }
.sidebar-brand strong { font-family: "Playfair Display", serif; font-size: 13px; }
.sidebar-brand small { margin-top: 3px; color: var(--gold); font-size: 8px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.sidebar-close { display: none; margin-left: auto; border: 0; color: var(--muted); background: transparent; font-size: 28px; }
.primary-nav { flex: 1; overflow-y: auto; padding: 18px 12px; scrollbar-width: thin; }
.nav-item { position: relative; width: 100%; min-height: 43px; display: flex; align-items: center; gap: 13px; border: 0; padding: 0 12px; cursor: pointer; color: #8e928a; background: transparent; font-size: 11px; font-weight: 600; text-align: left; transition: color .2s ease, background .2s ease; }
.nav-item::before { position: absolute; inset: 8px auto 8px -12px; width: 2px; content: ""; background: transparent; }
.nav-item:hover { color: var(--paper); background: rgb(255 255 255 / .025); }
.nav-item.active { color: var(--gold-bright); background: linear-gradient(90deg, rgb(197 164 110 / .1), transparent); }
.nav-item.active::before { background: var(--gold); }
.nav-icon { width: 23px; color: currentColor; font-size: 17px; text-align: center; }
.sidebar-footer { padding: 16px 20px 21px; border-top: 1px solid var(--line); }
.system-state { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; color: #858980; font-size: 9px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.system-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 10px var(--success); }
.signout-button { width: 100%; display: flex; justify-content: space-between; border: 0; padding: 0; cursor: pointer; color: #6f736b; background: transparent; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.signout-button:hover { color: var(--gold); }
.workspace { min-height: 100vh; margin-left: var(--sidebar); }
.topbar { position: sticky; top: 0; z-index: 20; height: var(--topbar); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 0 30px; background: rgb(9 10 9 / .9); backdrop-filter: blur(16px); }
.menu-button { display: none; border: 0; color: var(--paper); background: transparent; font-size: 20px; }
.topbar-context { display: grid; gap: 5px; }
.classification { color: var(--gold); font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.topbar-context strong { font-size: 13px; }
.topbar-actions { display: flex; align-items: center; gap: 22px; }
.icon-button { position: relative; width: 35px; height: 35px; border: 1px solid var(--line); cursor: pointer; color: var(--muted); background: transparent; }
.icon-button span { position: absolute; top: -6px; right: -6px; width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; color: #111; background: var(--gold); font-size: 8px; font-weight: 800; }
.operator { display: flex; align-items: center; gap: 10px; }
.operator-avatar { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgb(197 164 110 / .5); border-radius: 50%; color: var(--gold); background: rgb(197 164 110 / .07); font-size: 10px; font-weight: 800; }
.operator strong, .operator small { display: block; }
.operator strong { font-size: 10px; }
.operator small { max-width: 150px; margin-top: 3px; overflow: hidden; color: #777b73; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.workspace-body { width: min(100%, 1660px); margin: 0 auto; padding: 34px clamp(22px, 3.2vw, 52px) 60px; }
.view { display: none; animation: reveal .35s ease both; }
.view.active { display: block; }
@keyframes reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Dashboard */
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.page-heading h1, .operation-header h1 { margin-bottom: 8px; font-size: clamp(2.25rem, 4vw, 4rem); line-height: 1; letter-spacing: -.035em; }
.page-heading h1 span { color: var(--gold); }
.page-heading p:last-child, .operation-header > div > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 12px; }
.status-strip { display: flex; align-items: center; gap: 28px; margin-bottom: 19px; border: 1px solid var(--line-soft); padding: 11px 15px; color: #747870; background: rgb(255 255 255 / .012); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.status-strip span:first-child { margin-right: auto; color: #aeb1aa; }
.status-strip i { display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--success); }
.status-strip strong { color: var(--paper); }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 14px; }
.metric-card { position: relative; min-height: 154px; overflow: hidden; border: 1px solid var(--line); padding: 21px; background: linear-gradient(135deg, rgb(255 255 255 / .018), transparent), var(--panel); }
.metric-card.emphasis { border-color: rgb(197 164 110 / .42); background: linear-gradient(135deg, rgb(197 164 110 / .12), transparent 58%), var(--panel); }
.metric-label { display: block; color: #a9aca4; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.metric-card > strong { display: block; margin: 16px 0 7px; font-family: "Playfair Display", serif; font-size: 37px; line-height: 1; }
.metric-card small { color: #72766e; font-size: 9px; }
.metric-card.warning small { color: #d4aa67; }
.metric-mark { position: absolute; right: 18px; bottom: 14px; color: rgb(197 164 110 / .11); font-family: "Playfair Display", serif; font-size: 64px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 14px; }
.panel { border: 1px solid var(--line); padding: 24px; background: var(--panel); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.panel-head h2 { margin: 0; font-size: 20px; }
.text-button { border: 0; padding: 0; cursor: pointer; color: var(--gold); background: transparent; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.panel-date { color: #747870; font-size: 9px; text-transform: uppercase; }
.operation-list { border-top: 1px solid var(--line-soft); }
.operation-row { width: 100%; display: grid; grid-template-columns: 35px minmax(0, 1fr) auto auto; align-items: center; gap: 15px; border: 0; border-bottom: 1px solid var(--line-soft); padding: 16px 0; cursor: pointer; color: inherit; background: transparent; text-align: left; }
.operation-row:hover strong { color: var(--gold-bright); }
.risk-code { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid; font-size: 9px; font-weight: 800; }
.risk-code.elevated { color: #e19d69; border-color: rgb(225 157 105 / .4); background: rgb(225 157 105 / .08); }
.risk-code.guarded { color: #e1c269; border-color: rgb(225 194 105 / .4); background: rgb(225 194 105 / .08); }
.risk-code.low { color: #74bd8b; border-color: rgb(116 189 139 / .4); background: rgb(116 189 139 / .08); }
.operation-row strong, .operation-row small { display: block; }
.operation-row strong { margin-bottom: 5px; font-size: 11px; }
.operation-row small { color: #71756d; font-size: 9px; }
.operation-meta { min-width: 90px; text-align: right; }
.operation-meta strong { color: #a8aba3; font-size: 9px; }
.status-pill { min-width: 54px; border: 1px solid; padding: 5px 7px; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.status-pill.live { color: #76bf8d; border-color: rgb(118 191 141 / .34); background: rgb(118 191 141 / .06); }
.status-pill.staged { color: #d4b06f; border-color: rgb(212 176 111 / .34); }
.timeline-list { display: grid; }
.timeline-item { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 14px; border-top: 1px solid var(--line-soft); padding: 14px 0; }
.timeline-item time { color: var(--gold); font-size: 8px; font-weight: 800; text-align: center; }
.timeline-item time b { display: block; color: var(--paper); font-family: "Playfair Display", serif; font-size: 22px; }
.timeline-item strong, .timeline-item small { display: block; }
.timeline-item strong { margin-bottom: 5px; font-size: 10px; }
.timeline-item small, .timeline-item > span { color: #73776f; font-size: 8px; }
.timeline-item .needs-staff { color: #d5a14e; }
.document-list, .contact-list { display: grid; }
.document-list > div, .contact-list > div { display: flex; align-items: center; gap: 13px; border-top: 1px solid var(--line-soft); padding: 14px 0; }
.doc-icon { width: 36px; height: 36px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid #3a3d36; color: var(--gold); background: #0d0f0e; font-size: 8px; font-weight: 800; }
.document-list p, .contact-list p { flex: 1; margin: 0; }
.document-list strong, .document-list small, .contact-list strong, .contact-list small { display: block; }
.document-list strong, .contact-list strong { margin-bottom: 5px; font-size: 10px; }
.document-list small, .contact-list small, .contact-list time { color: #747870; font-size: 8px; }
.document-list button { border: 0; color: #777b73; background: transparent; }
.contact-list > div > span { width: 34px; height: 34px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--gold); background: rgb(197 164 110 / .08); font-size: 8px; font-weight: 800; }

/* Operation form */
.operation-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.back-link { margin-bottom: 23px; border: 0; padding: 0; cursor: pointer; color: #777b73; background: transparent; font-size: 10px; }
.back-link:hover { color: var(--gold); }
.draft-state { display: flex; align-items: center; gap: 9px; color: #7d8179; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.draft-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--warning); }
.draft-state.saved i { background: var(--success); }
.form-layout { display: grid; grid-template-columns: 215px minmax(0, 1fr); gap: 18px; align-items: start; }
.form-progress { position: sticky; top: calc(var(--topbar) + 20px); border: 1px solid var(--line); padding: 20px 14px 14px; background: var(--panel); }
.progress-copy { display: flex; justify-content: space-between; padding: 0 7px; color: #747870; font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.progress-copy strong { color: var(--gold); }
.progress-track { height: 2px; margin: 12px 7px 16px; background: #292c27; }
.progress-track i { display: block; width: 10%; height: 100%; background: var(--gold); transition: width .25s ease; }
.form-progress nav { display: grid; }
.form-step { min-height: 41px; display: flex; align-items: center; gap: 11px; border: 0; padding: 0 7px; cursor: pointer; color: #757971; background: transparent; font-size: 9px; font-weight: 600; text-align: left; }
.form-step span { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #343731; color: #7e827a; font-size: 8px; }
.form-step.active { color: var(--paper); }
.form-step.active span, .form-step.complete span { color: #111; border-color: var(--gold); background: var(--gold); }
.operation-form { min-width: 0; border: 1px solid var(--line); background: var(--panel); }
.form-section { display: none; min-height: 600px; padding: clamp(24px, 4vw, 46px); }
.form-section.active { display: block; animation: reveal .3s ease both; }
.form-section-head { display: flex; align-items: flex-start; gap: 18px; margin-bottom: 35px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.form-section-head > span { width: 38px; height: 38px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid var(--gold); color: var(--gold); font-family: "Playfair Display", serif; }
.form-section-head h2 { margin-bottom: 6px; font-size: clamp(1.45rem, 2.2vw, 2rem); }
.form-section-head p { margin: 0; color: #777b73; font-size: 10px; line-height: 1.55; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px 18px; }
.field-wide { grid-column: 1 / -1; }
.field input, .field select { height: 45px; padding: 0 12px; }
.field textarea { min-height: 100px; resize: vertical; padding: 12px; line-height: 1.55; }
.field input, .field select, .field textarea { color: #dcddd8; font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.field input.span-two { grid-column: span 2; }
.check-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
.check-field { min-height: 47px; display: flex; align-items: center; gap: 10px; border: 1px solid #30332e; padding: 0 12px; cursor: pointer; color: #9da099; background: #0d0f0e; font-size: 10px; }
.check-field:has(input:checked) { color: var(--paper); border-color: rgb(197 164 110 / .55); background: rgb(197 164 110 / .06); }
.check-field input { width: 14px; height: 14px; accent-color: var(--gold); }
.repeat-list { display: grid; gap: 14px; margin-bottom: 18px; }
.repeat-row { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; border: 1px solid #30332e; padding: 22px; background: #0d0f0e; }
.repeat-row .remove-row { position: absolute; top: 8px; right: 9px; border: 0; cursor: pointer; color: #777b73; background: transparent; }
.repeat-row .remove-row:hover { color: var(--danger); }
.add-row { margin-top: 2px; }
.form-actions { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); padding: 16px 20px; background: rgb(14 16 15 / .96); backdrop-filter: blur(12px); }
.form-actions > div { display: flex; gap: 10px; }
.closeout-panel { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 24px; align-items: end; margin-top: 30px; border: 1px solid rgb(197 164 110 / .38); padding: 24px; background: linear-gradient(135deg, rgb(197 164 110 / .08), rgb(255 255 255 / .012)); }
.closeout-panel h3 { margin: 7px 0 8px; color: var(--paper); font-size: 20px; }
.closeout-panel p:not(.eyebrow) { max-width: 620px; margin: 0; color: #858981; font-size: 11px; line-height: 1.65; }
.completion-error { grid-column: 1 / -1; border-left: 3px solid var(--danger); padding: 11px 13px; color: #d8a19a !important; background: rgb(189 92 80 / .08); font-weight: 700; }

/* Operation registry */
.collection-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.collection-heading h1 { margin-bottom: 8px; font-size: clamp(2.2rem, 5vw, 4.5rem); }
.collection-heading p:not(.eyebrow) { margin: 0; color: var(--muted); }
.operation-collection { display: grid; gap: 14px; }
.registry-card { display: grid; grid-template-columns: 54px minmax(0, 1fr) minmax(220px, auto); gap: 20px; align-items: center; border: 1px solid var(--line); padding: 24px; background: linear-gradient(110deg, rgb(197 164 110 / .055), transparent 45%), var(--panel); }
.registry-card.is-interactive { cursor: pointer; transition: transform .18s ease, border-color .18s ease, background-color .18s ease; }
.registry-card.is-interactive:hover, .registry-card.is-interactive:focus-within { border-color: rgb(197 164 110 / .62); background-color: #151714; transform: translateY(-2px); }
.registry-card.is-interactive:active { transform: translateY(0) scale(.997); }
.registry-mark { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgb(197 164 110 / .48); color: var(--gold); font-family: "Playfair Display", serif; font-size: 19px; }
.registry-copy h2 { margin: 5px 0 7px; font-size: clamp(1.3rem, 2.4vw, 2rem); }
.registry-copy > p:not(.eyebrow) { margin: 0 0 12px; color: #858981; font-size: 11px; }
.registry-copy code { color: #656961; font-size: 9px; letter-spacing: .04em; }
.registry-status { display: grid; justify-items: end; gap: 10px; text-align: right; }
.registry-status small { color: #747870; font-size: 9px; }
.registry-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.registry-card.is-hidden-record { border-color: rgb(189 102 93 / .38); background: linear-gradient(110deg, rgb(189 102 93 / .07), transparent 45%), var(--panel); }
.status-pill.restricted { color: #e4aaa3; border-color: rgb(189 102 93 / .45); background: rgb(189 102 93 / .08); text-transform: capitalize; }
.record-management-panel { display: grid; gap: 18px; margin-top: 34px; border-top: 1px solid var(--line); padding-top: 28px; }
.record-management-panel > div:first-child > p:last-child { max-width: 720px; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.registry-open span { display: inline-block; margin-left: 8px; transition: transform .18s ease; }
.registry-card.is-interactive:hover .registry-open span, .registry-open:focus-visible span { transform: translateX(4px); }
.status-pill.complete { color: #a9d6b6; border-color: rgb(105 165 124 / .38); background: rgb(105 165 124 / .08); }
.collection-empty { min-height: 350px; display: grid; place-items: center; align-content: center; border: 1px dashed #30332e; padding: 40px; text-align: center; background: rgb(255 255 255 / .008); }
.collection-empty span { color: rgb(197 164 110 / .25); font-family: "Playfair Display", serif; font-size: 64px; }
.collection-empty h2 { margin: 9px 0; }
.collection-empty p { margin: 0; color: var(--muted); }

/* Completed operation detail */
.operation-detail-sheet { display: grid; gap: 20px; }
.operation-detail-header { display: flex; align-items: end; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--line); padding-bottom: 28px; }
.operation-detail-header h1 { max-width: 850px; margin: 9px 0 10px; font-size: clamp(2.3rem, 5.5vw, 5rem); line-height: .98; }
.operation-detail-header p:not(.eyebrow) { margin: 0 0 12px; color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .05em; }
.operation-detail-header code { color: #666a62; font-size: 9px; letter-spacing: .04em; }
.operation-detail-actions { display: flex; flex: 0 0 auto; gap: 10px; }
.record-disposition { display: grid; gap: 6px; border: 1px solid rgb(189 102 93 / .45); border-left: 3px solid var(--danger); padding: 16px 18px; background: rgb(189 102 93 / .07); }
.record-disposition strong { color: #efc0bb; text-transform: capitalize; }
.record-disposition span { color: #d8d9d3; font-size: 11px; line-height: 1.6; }
.record-disposition small { color: #888c84; font-size: 9px; }
.completion-ledger { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); background: var(--panel); }
.completion-ledger > div { min-width: 0; border-right: 1px solid var(--line); padding: 18px 20px; }
.completion-ledger > div:last-child { border-right: 0; }
.completion-ledger span { display: block; margin-bottom: 8px; color: #747870; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.completion-ledger strong { display: block; overflow-wrap: anywhere; color: #d6d8d1; font-size: 11px; line-height: 1.45; }
.operation-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.operation-detail-block { min-width: 0; border: 1px solid var(--line); padding: 24px; background: linear-gradient(145deg, rgb(255 255 255 / .018), transparent 55%), var(--panel); }
.operation-detail-block.full { grid-column: 1 / -1; }
.operation-detail-block > h2 { margin-bottom: 18px; color: var(--gold); font-family: "Inter", sans-serif; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.operation-detail-block > dl, .detail-entry dl { display: grid; gap: 0; margin: 0; }
.operation-detail-block > dl > div, .detail-entry dl > div { display: grid; grid-template-columns: minmax(140px, .35fr) minmax(0, 1fr); gap: 18px; border-top: 1px solid rgb(255 255 255 / .055); padding: 11px 0; }
.operation-detail-block > dl > div:first-child, .detail-entry dl > div:first-child { border-top: 0; padding-top: 0; }
.operation-detail-block dt, .detail-entry dt { color: #747870; font-size: 9px; letter-spacing: .05em; }
.operation-detail-block dd, .detail-entry dd { min-width: 0; margin: 0; color: #c9cbc5; font-size: 11px; line-height: 1.65; overflow-wrap: anywhere; white-space: pre-wrap; }
.detail-entry-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.detail-entry { border: 1px solid #30332e; padding: 18px; background: #0d0f0e; }
.detail-entry h3 { margin-bottom: 15px; color: var(--paper); font-size: 16px; }
.detail-entry dl > div { grid-template-columns: minmax(100px, .32fr) minmax(0, 1fr); }
.detail-empty { margin: 0; color: var(--muted); }
.operation-detail-footer { display: flex; justify-content: flex-start; border-top: 1px solid var(--line); padding-top: 20px; }

/* Placeholder */
.placeholder-view { min-height: calc(100vh - 180px); display: grid; place-items: center; align-content: center; border: 1px solid var(--line); padding: 50px; text-align: center; background: radial-gradient(circle, rgb(197 164 110 / .07), transparent 20rem), var(--panel); }
.placeholder-view > span { color: rgb(197 164 110 / .23); font-family: "Playfair Display", serif; font-size: 90px; }
.placeholder-view h1 { margin-bottom: 12px; font-size: clamp(2.5rem, 6vw, 5rem); }
.placeholder-view > p:not(.eyebrow) { max-width: 520px; margin-bottom: 25px; color: var(--muted); line-height: 1.7; }

/* Feedback and brief */
.toast-region { position: fixed; right: 24px; bottom: 24px; z-index: 100; display: grid; gap: 10px; }
.toast { min-width: 260px; border: 1px solid rgb(197 164 110 / .4); border-left: 3px solid var(--gold); padding: 14px 16px; color: var(--paper); background: #171916; box-shadow: 0 18px 45px rgb(0 0 0 / .4); font-size: 11px; animation: toast-in .25s ease both; }
.toast.error { border-left-color: var(--danger); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }
.brief-dialog { width: min(920px, calc(100% - 28px)); max-height: 92vh; overflow: auto; border: 1px solid #4a4c45; padding: 0; color: #171815; background: #eeeae0; }
.brief-dialog::backdrop { background: rgb(0 0 0 / .83); backdrop-filter: blur(5px); }
.brief-sheet { min-height: 100%; padding: clamp(30px, 6vw, 70px); }
.brief-toolbar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 8px; margin: calc(clamp(30px, 6vw, 70px) * -1) calc(clamp(30px, 6vw, 70px) * -1) 45px; padding: 12px; background: #171815; }
.brief-toolbar button { border: 1px solid #4a4c45; padding: 9px 13px; cursor: pointer; color: #eeeae0; background: transparent; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.brief-toolbar .print-brief { color: #171815; border-color: var(--gold); background: var(--gold); }
.brief-brand { display: flex; justify-content: space-between; gap: 20px; border-bottom: 3px solid #171815; padding-bottom: 20px; }
.brief-brand strong { font-family: "Playfair Display", serif; font-size: 22px; }
.brief-brand span { color: #846b43; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.brief-title { padding: 42px 0 32px; }
.brief-title p { margin-bottom: 9px; color: #846b43; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.brief-title h1 { margin-bottom: 12px; color: #171815; font-size: clamp(2.3rem, 6vw, 4.7rem); line-height: .96; }
.brief-title small { color: #686961; }
.brief-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.brief-block { break-inside: avoid; border-top: 1px solid #aca99f; padding-top: 13px; }
.brief-block.full { grid-column: 1 / -1; }
.brief-block h2 { margin-bottom: 13px; color: #846b43; font-family: "Inter", sans-serif; font-size: 9px; letter-spacing: .17em; text-transform: uppercase; }
.brief-block dl { display: grid; grid-template-columns: 120px 1fr; gap: 8px 12px; margin: 0; font-size: 11px; line-height: 1.45; }
.brief-block dt { color: #74756e; }
.brief-block dd { margin: 0; font-weight: 600; white-space: pre-wrap; }

.sidebar-scrim { display: none; }

@media (max-width: 1100px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .check-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
  .login-stage { grid-template-columns: 1fr; }
  .login-brand { min-height: 48vh; padding: 48px 28px; }
  .login-brand h1 { font-size: clamp(3.7rem, 18vw, 7rem); }
  .login-card { min-height: 52vh; padding: 45px 28px; border-top: 1px solid var(--line); border-left: 0; }
  .sidebar { transform: translateX(-100%); transition: transform .25s ease; }
  .sidebar.open { transform: none; }
  .sidebar-close, .menu-button { display: block; }
  .sidebar-scrim { position: fixed; inset: 0; z-index: 25; background: rgb(0 0 0 / .68); }
  .sidebar-scrim.open { display: block; }
  .workspace { margin-left: 0; }
  .closeout-panel, .registry-card { grid-template-columns: 1fr; }
  .registry-status { justify-items: start; text-align: left; }
  .collection-heading { align-items: flex-start; flex-direction: column; }
  .operation-detail-header { align-items: flex-start; flex-direction: column; }
  .operation-detail-actions { width: 100%; flex-wrap: wrap; }
  .operation-detail-actions .button { flex: 1; }
  .completion-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .completion-ledger > div:nth-child(2) { border-right: 0; }
  .completion-ledger > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .operation-detail-grid, .detail-entry-list { grid-template-columns: 1fr; }
  .topbar { padding: 0 18px; }
  .topbar-context { margin-right: auto; margin-left: 14px; }
  .operator > div:last-child { display: none; }
  .workspace-body { padding: 28px 18px 45px; }
  .page-heading, .operation-header { align-items: flex-start; flex-direction: column; }
  .page-heading .button { width: 100%; }
  .status-strip span:not(:first-child) { display: none; }
  .form-layout { grid-template-columns: 1fr; }
  .form-progress { position: static; overflow-x: auto; padding: 14px; }
  .progress-copy, .progress-track { display: none; }
  .form-progress nav { display: flex; min-width: max-content; }
  .form-step { min-width: 84px; justify-content: center; flex-direction: column; gap: 5px; padding: 6px; }
  .form-section { min-height: 0; padding: 24px 18px; }
  .repeat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-actions > div { display: grid; grid-template-columns: 1fr 1fr; }
  #continue-operation { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .metric-grid { grid-template-columns: 1fr; }
  .operation-row { grid-template-columns: 32px 1fr auto; }
  .operation-meta { display: none; }
  .panel { padding: 19px 15px; }
  .form-grid, .check-grid, .repeat-row { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .form-actions > div { grid-template-columns: 1fr; }
  #continue-operation { grid-column: auto; }
  .brief-grid { grid-template-columns: 1fr; }
  .brief-block.full { grid-column: auto; }
  .completion-ledger { grid-template-columns: 1fr; }
  .completion-ledger > div, .completion-ledger > div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .completion-ledger > div:last-child { border-bottom: 0; }
  .operation-detail-block > dl > div, .detail-entry dl > div { grid-template-columns: 1fr; gap: 5px; }
}

@media print {
  body * { visibility: hidden !important; }
  #brief-dialog, #brief-dialog * { visibility: visible !important; }
  #brief-dialog { position: absolute; inset: 0; width: 100%; max-height: none; overflow: visible; border: 0; }
  .brief-toolbar { display: none; }
  .brief-sheet { padding: 20mm; }
}

/* ============================================================ Founder Mode */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nav-item-founder { color: var(--gold); }
.nav-item-founder .nav-icon { color: var(--gold); }
.role-chip { border: 1px solid rgb(197 164 110 / .45); padding: 5px 10px; color: var(--gold); font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.button-large { min-height: 58px; padding: 0 30px; font-size: 13px; letter-spacing: .09em; }

.founder-heading { align-items: flex-end; margin-bottom: 22px; }
.sic-status-rack { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.sic-status-rack span { display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgb(197 164 110 / .28); padding: 7px 10px; color: #a8aba4; background: rgb(197 164 110 / .025); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sic-status-rack i { width: 6px; height: 6px; border-radius: 50%; background: var(--success); box-shadow: 0 0 12px rgb(118 191 141 / .65); }
.start-session-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, auto); align-items: center; gap: 34px; margin-bottom: 16px; border: 1px solid rgb(197 164 110 / .4); padding: clamp(24px, 3vw, 40px); background: linear-gradient(135deg, rgb(197 164 110 / .11), transparent 62%), var(--panel); }
.start-session-copy h2 { margin-bottom: 10px; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -.03em; }
.start-session-copy > p { max-width: 56ch; margin-bottom: 18px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.workflow-chip-row { display: flex; flex-wrap: wrap; gap: 7px; }
.workflow-chip { border: 1px solid var(--line); padding: 5px 9px; color: #a9aca4; background: rgb(255 255 255 / .015); font-size: 9px; letter-spacing: .05em; }
.workflow-chip.muted { color: #6d716a; border-style: dashed; }
.start-session-actions { display: grid; gap: 16px; justify-items: stretch; }
.input-source-field { display: grid; gap: 7px; color: #9a9e96; font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.input-source-field select { height: 42px; border: 1px solid #343731; padding: 0 10px; color: var(--paper); background: #0c0e0d; }

.founder-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 14px; }
.founder-metrics:empty { display: none; }
.founder-metric { position: relative; overflow: hidden; border: 1px solid var(--line); padding: 18px; background: var(--panel); }
.founder-metric::after { position: absolute; right: -18px; bottom: -30px; width: 90px; height: 90px; border: 1px solid rgb(197 164 110 / .08); border-radius: 50%; content: ""; }
.founder-metric span, .founder-metric small, .founder-metric strong { display: block; }
.founder-metric span { margin-bottom: 9px; color: #747870; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.founder-metric strong { margin-bottom: 5px; color: var(--gold-bright); font-family: "Playfair Display", serif; font-size: 23px; }
.founder-metric small { color: #696d66; font-size: 8px; }
.founder-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; }
.panel-body { min-height: 90px; }
.panel-empty { margin: 0; color: #6f736b; font-size: 11px; line-height: 1.6; }

.clean-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.clean-list > li { display: grid; gap: 4px; border-bottom: 1px solid var(--line-soft); padding: 11px 0; font-size: 11px; }
.clean-list > li:last-child { border-bottom: 0; }
.clean-list strong { color: var(--paper); font-size: 11px; font-weight: 600; line-height: 1.5; }
.clean-list small { color: #7b7f77; font-size: 9px; line-height: 1.55; }
.clean-list button { width: 100%; display: grid; gap: 4px; border: 0; padding: 0; cursor: pointer; background: transparent; text-align: left; }
.clean-list button:hover strong { color: var(--gold-bright); }
.priority { justify-self: start; border: 1px solid var(--line); padding: 2px 6px; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.priority-high { color: #e19d69; border-color: rgb(225 157 105 / .45); }
.priority-medium { color: #d4b06f; border-color: rgb(212 176 111 / .35); }
.priority-low { color: #8e928a; }
.change-kind { justify-self: start; color: var(--gold); font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.contradiction strong { color: #e8b4ad; }

.memory-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; margin-bottom: 14px; }
.memory-search input { height: 42px; border: 1px solid #343731; padding: 0 12px; color: var(--paper); background: #0c0e0d; font-size: 11px; }
.memory-search input:focus { border-color: var(--gold); outline: none; }
.fact-provenance { color: #62665f; font-size: 8px; letter-spacing: .04em; }

/* Session stage */
.session-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.session-header h1 { margin-bottom: 0; font-size: clamp(1.6rem, 2.8vw, 2.5rem); line-height: 1.05; letter-spacing: -.03em; }
.session-header-actions { display: flex; align-items: center; gap: 14px; }
.session-state { border: 1px solid rgb(118 191 141 / .34); padding: 6px 11px; color: #76bf8d; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.session-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, .6fr); gap: 14px; align-items: start; }
.session-conversation { display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--panel); }
.transcript { min-height: 46vh; max-height: 62vh; overflow-y: auto; padding: 22px; scrollbar-width: thin; }
.sic-welcome { max-width: 600px; margin: 10vh auto; text-align: center; }
.sic-welcome h2 { margin-bottom: 12px; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.sic-welcome > p:last-child { color: #777b73; font-size: 11px; line-height: 1.7; }
.transcript-message { max-width: 88%; display: grid; gap: 8px; margin-bottom: 18px; border: 1px solid var(--line); padding: 15px 17px; background: #0d0f0e; }
.transcript-message.user { margin-left: auto; border-color: #33362f; background: #151715; }
.transcript-message.assistant { border-left: 2px solid var(--gold); }
.transcript-message header { display: flex; justify-content: space-between; gap: 16px; color: #71756d; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.transcript-message header strong { color: var(--gold); }
.transcript-message.user header strong { color: #9fa29a; }
.message-content { color: #d5d7d0; font-size: 12px; line-height: 1.75; }
.transcript-message footer { display: flex; flex-wrap: wrap; gap: 6px; border-top: 1px solid var(--line-soft); padding-top: 10px; }
.source-chip { border: 1px solid rgb(197 164 110 / .25); padding: 4px 7px; color: #aaa077; background: transparent; font-size: 8px; letter-spacing: .06em; }
.turn { display: grid; gap: 6px; margin-bottom: 20px; }
.turn-role { color: var(--gold); font-size: 8px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.turn-founder .turn-role { color: #8e928a; }
.turn-body { border-left: 2px solid var(--line); padding-left: 14px; color: #d5d7d0; font-size: 12.5px; line-height: 1.75; }
.turn-assistant .turn-body { border-left-color: rgb(197 164 110 / .5); }
.turn.pending .turn-body { color: #6f736b; font-style: italic; }
.composer { display: grid; gap: 11px; border-top: 1px solid var(--line); padding: 16px 22px 20px; background: #0e100f; }
.composer textarea { width: 100%; min-height: 78px; border: 1px solid #343731; padding: 12px; resize: vertical; color: var(--paper); background: #0c0e0d; font-size: 12.5px; line-height: 1.6; }
.composer textarea:focus { border-color: var(--gold); outline: none; }
.composer-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.composer-actions .sic-attach, .composer-actions .sic-mic { min-height: 35px; padding: 0 12px; white-space: nowrap; font-size: 8px; }
.composer-actions .sic-mic.active { color: #111; border-color: #bd857d; background: #bd857d; }
.composer-hint { color: #62665f; font-size: 9px; letter-spacing: .06em; }

/* Compact ingestion transaction indicator. Sits inline in the existing
   composer action row: SECURED ✓  CLASSIFYING…  COMMITTING…  COMPLETE ✓ */
.ingest-status { display: flex; flex: 1; gap: 10px; justify-content: flex-end; align-items: center; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ingest-status span { color: #4c4f48; white-space: nowrap; transition: color .2s ease; }
.ingest-status span.active { color: var(--gold-bright); }
.ingest-status span.done { color: var(--success); }
.ingest-status span.failed { color: var(--danger); }
.ingest-status.recovered span { color: var(--warning); }

.session-sidebar { display: grid; gap: 12px; max-height: 78vh; overflow-y: auto; scrollbar-width: thin; }
.session-block { border: 1px solid var(--line); padding: 17px 19px; background: var(--panel); }
.session-block h3 { margin: 0 0 11px; color: var(--gold); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.session-summary { margin: 0; color: #c6c9c1; font-size: 11.5px; line-height: 1.7; }
.posture-list { display: grid; gap: 9px; color: #9a9e96; font-size: 10px; }
.posture-list span { border-left: 2px solid #343731; padding-left: 10px; }
.posture-list span.healthy { color: #8fd0a4; border-left-color: #76bf8d; }
.posture-list span.warning { color: #d4b06f; border-left-color: #d4b06f; }
.proposal-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.proposal-actions .button { min-height: 32px; padding: 0 10px; font-size: 8px; }
.intelligence-query-panel { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(300px, 1.2fr); gap: 18px 28px; margin: 20px 0 24px; border: 1px solid var(--line); padding: 22px; background: linear-gradient(135deg, rgb(197 164 110 / .08), transparent 55%), #111310; }
.intelligence-query-panel h2 { margin: 3px 0 6px; font-size: 1.25rem; }
.intelligence-query-panel p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
#intelligence-query-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-self: center; }
#intelligence-query-form input { min-width: 0; border: 1px solid var(--line); padding: 0 14px; color: var(--paper); background: #0b0d0b; }
.intelligence-answer { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 16px; color: #d6d8d1; font-size: 11px; }
.intelligence-answer > strong { display: block; margin-bottom: 10px; color: var(--paper); font-size: 13px; }
.intelligence-answer ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.intelligence-answer li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; border-left: 2px solid var(--gold); padding: 8px 10px; background: rgb(255 255 255 / .025); }
.intelligence-answer li > span { color: var(--gold); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.intelligence-answer li p, .intelligence-answer li small { margin: 0; }
.intelligence-answer li small { display: block; margin-top: 3px; color: #747971; font-size: 9px; }
.mission-intelligence-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; margin-top: 22px; }
.mission-context-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mission-context-results section { border: 1px solid var(--line); padding: 13px; background: #0e100e; }
.mission-context-results h3 { display: flex; justify-content: space-between; margin: 0 0 10px; color: var(--gold); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.mission-context-results h3 span { color: var(--muted); }
.mission-context-results section > div { margin-top: 8px; border-top: 1px solid rgb(255 255 255 / .06); padding-top: 8px; }
.mission-context-results strong, .mission-context-results small { display: block; }
.mission-context-results strong { color: #d5d7d0; font-size: 11px; }
.mission-context-results small, .mission-context-results p { color: #747971; font-size: 9px; }
.mission-context-results section[data-mission-state="UNAVAILABLE"] { border-color: rgb(216 155 145 / .45); }
.mission-context-results p.mission-context-unverified { color: #d89b91; }
.gps-state { border: 1px solid var(--line); padding: 5px 8px; color: #8fd0a4; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.gps-state.alert { color: #d89b91; border-color: rgb(216 155 145 / .5); }
.route-planner { display: grid; gap: 12px; }
.route-planner label { display: grid; gap: 6px; color: #9a9e96; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.route-planner input, .route-planner select, .route-planner textarea { width: 100%; border: 1px solid var(--line); padding: 10px 11px; color: var(--paper); background: #0b0d0b; font: inherit; text-transform: none; }
.coordinate-grid, .hospital-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.route-actions { display: flex; justify-content: space-between; gap: 10px; }
.command-operation-select { display: grid; gap: 6px; min-width: min(320px, 100%); color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.command-operation-select select, .session-context { border: 1px solid var(--line); padding: 10px 12px; color: var(--paper); background: #0d0f0d; }
.active-context-banner { display: flex; align-items: baseline; gap: 12px; margin: 0 0 18px; border-left: 3px solid var(--gold); padding: 10px 14px; background: rgb(197 164 110 / .06); }
.active-context-banner span, .active-context-mini span { color: var(--gold); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.active-context-banner strong { color: var(--paper); font-size: 14px; }
.active-context-banner small { margin-left: auto; color: var(--muted); font-size: 9px; }
.live-command-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .7fr); gap: 18px; }
.live-command-stack { display: grid; align-content: start; gap: 18px; }
.command-picture-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.command-picture-grid section { min-height: 112px; border: 1px solid var(--line); padding: 14px; background: linear-gradient(145deg, rgb(255 255 255 / .025), transparent); }
.command-picture-grid h3, .command-stack-section h3 { margin: 0 0 10px; color: var(--gold); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.command-picture-grid strong, .command-picture-grid small { display: block; }
.command-picture-grid strong { color: var(--paper); font-size: 13px; }
.command-picture-grid small { margin-top: 7px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.command-picture-empty { color: var(--muted); font-size: 11px; }
.command-stack-section + .command-stack-section { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 16px; }
.command-stack-section p { display: grid; gap: 4px; margin: 0 0 9px; border-left: 2px solid #4b4f48; padding-left: 9px; }
.command-stack-section strong { color: #d5d7d0; font-size: 9px; }
.command-stack-section span { color: var(--muted); font-size: 9px; }
.coordinate-board { display: grid; gap: 8px; }
.coordinate-point { display: grid; grid-template-columns: 12px 1fr; gap: 9px; align-items: center; border-bottom: 1px solid rgb(255 255 255 / .06); padding: 7px 0; }
.coordinate-point > span { width: 9px; height: 9px; border: 1px solid var(--gold); transform: rotate(45deg); }
.coordinate-point.current > span { background: #79bd8e; border-color: #79bd8e; }
.coordinate-point p, .coordinate-point strong, .coordinate-point small { display: block; margin: 0; }
.coordinate-point strong { color: #d5d7d0; font-size: 10px; }
.coordinate-point small { color: var(--muted); font-size: 8px; }
.active-context-mini { display: grid; gap: 4px; border-left: 2px solid var(--gold); padding-left: 10px; }
.active-context-mini strong, .session-context { color: var(--paper); font-size: 9px; letter-spacing: .06em; }
#session-context-select { max-width: 240px; border: 1px solid var(--line); padding: 7px 9px; color: var(--paper); background: #0d0f0d; font-size: 9px; }
.fact-group { margin-bottom: 14px; }
.fact-group:last-child { margin-bottom: 0; }
.fact-entity { display: flex; align-items: baseline; gap: 8px; margin: 0 0 4px; color: var(--paper); font-size: 11px; font-weight: 700; }
.fact-entity small { color: #62665f; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.fact-row { display: grid; gap: 4px; }
.fact-attribute { color: #9a9e96; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.fact-value { color: #d5d7d0; font-size: 11px; line-height: 1.6; }
.epistemic { justify-self: start; border: 1px solid; padding: 2px 6px; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.epistemic-observed_fact { color: #74bd8b; border-color: rgb(116 189 139 / .4); }
.epistemic-reported_information { color: #8fb6cf; border-color: rgb(143 182 207 / .4); }
.epistemic-assumption { color: #d4b06f; border-color: rgb(212 176 111 / .4); }
.epistemic-analytic_judgment { color: var(--gold); border-color: rgb(197 164 110 / .45); }
.epistemic-recommendation { color: #b79ad6; border-color: rgb(183 154 214 / .4); }
.epistemic-unverified { color: #bd857d; border-color: rgb(189 133 125 / .45); }
.verify-flag { justify-self: start; color: #bd857d; font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.product.ready strong { color: #8fd0a4; }
.product.blocked strong { color: #9a9e96; }

/* Session review */
.review-dialog { width: min(940px, 94vw); max-height: 92vh; overflow-y: auto; border: 1px solid var(--line); padding: 0; color: var(--paper); background: var(--ink-soft); }
.review-dialog::backdrop { background: rgb(4 5 4 / .82); }
.review-sheet { padding: clamp(22px, 3vw, 40px); }
.review-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 26px; }
.review-toolbar > div { display: flex; gap: 10px; }
.review-toolbar > button { border: 1px solid var(--line); padding: 10px 16px; cursor: pointer; color: var(--muted); background: transparent; font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.review-head { margin-bottom: 26px; border-bottom: 1px solid var(--line); padding-bottom: 20px; }
.review-head h1 { margin-bottom: 8px; font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.05; }
.review-head small { color: #7b7f77; font-size: 10px; letter-spacing: .05em; }
.review-block { margin-bottom: 22px; }
.review-block h3 { margin: 0 0 10px; color: var(--gold); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.review-block > p { margin: 0; color: #c6c9c1; font-size: 12px; line-height: 1.75; }
.review-note { margin-top: 10px; color: #7b7f77; font-size: 10px; }
.missing-fields { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; }
.missing-fields span { border: 1px dashed rgb(189 133 125 / .5); padding: 4px 8px; color: #bd857d; font-size: 9px; letter-spacing: .05em; }
.review-footer { margin: 26px 0 0; border-top: 1px solid var(--line); padding-top: 16px; color: #7b7f77; font-size: 10px; letter-spacing: .04em; }

@media (max-width: 1080px) {
  .start-session-panel { grid-template-columns: 1fr; }
  .session-layout { grid-template-columns: 1fr; }
  .session-sidebar { max-height: none; }
  .founder-metrics { grid-template-columns: repeat(2, 1fr); }
  .mission-intelligence-grid { grid-template-columns: 1fr; }
  .live-command-layout { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .founder-metrics { grid-template-columns: 1fr; }
  .founder-grid { grid-template-columns: 1fr; }
  .session-header { align-items: flex-start; flex-direction: column; }
  .transcript { min-height: 40vh; max-height: 52vh; padding: 16px; }
  .composer { padding: 14px 16px 18px; }
  .memory-search { grid-template-columns: 1fr; }
  .review-toolbar { align-items: stretch; flex-direction: column; }
  .review-toolbar > div { display: grid; grid-template-columns: 1fr; }
  .composer-actions { align-items: stretch; flex-wrap: wrap; }
  .composer-actions .composer-hint { width: 100%; order: -1; }
  .composer-actions .ingest-status { width: 100%; justify-content: flex-start; }
  .transcript-message { max-width: 100%; }
  .sic-status-rack { justify-content: flex-start; }
  .intelligence-query-panel, #intelligence-query-form, .mission-context-results, .coordinate-grid, .hospital-fields { grid-template-columns: 1fr; }
  .intelligence-answer li { grid-template-columns: 1fr; }
  .route-actions { align-items: stretch; flex-direction: column; }
  .command-picture-grid { grid-template-columns: 1fr; }
  .active-context-banner { align-items: flex-start; flex-direction: column; }
  .active-context-banner small { margin-left: 0; }
}

.location-layer { overflow: hidden; }
.location-sharing-panel { display: grid; gap: 12px; margin: 0 0 16px; border: 1px solid var(--line); padding: 13px; background: rgb(255 255 255 / .025); }
.location-sharing-panel strong, .location-sharing-panel small { display: block; }
.location-sharing-panel strong { color: var(--paper); font-size: 11px; }
.location-sharing-panel small { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.location-actions, .location-form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.location-actions .button, .location-form-actions .button { min-height: 34px; padding: 8px 11px; font-size: 8px; }
.location-editor { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 12px; }
.location-editor summary { cursor: pointer; color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.location-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.location-form label { display: grid; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.location-form input, .location-form select, .location-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 2px; padding: 9px; background: #171a19; color: var(--paper); font: inherit; }
.location-form textarea { min-height: 72px; resize: vertical; }
.location-form-wide { grid-column: 1 / -1; }
.location-verify { grid-template-columns: 18px 1fr !important; align-items: start; line-height: 1.45; text-transform: none !important; }
.location-verify input { width: 15px; margin-top: 1px; }
#active-location-state.live { border-color: #657a64; color: #bdd0b8; }

@media (max-width: 760px) {
  .location-form { grid-template-columns: 1fr; }
  .location-form-wide { grid-column: auto; }
  .location-actions, .location-form-actions { align-items: stretch; flex-direction: column; }
}

.command-context-controls { display: grid; justify-items: end; gap: 8px; }
.command-context-controls .button { min-height: 34px; }
.location-mutation-status { min-height: 18px; margin: 0 0 10px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.location-mutation-status.success { color: #b9cdb5; }
.location-mutation-status.error { color: #d7a7a0; }
.coordinate-point { grid-template-columns: 12px minmax(0, 1fr) auto; }
.coordinate-edit { border: 1px solid var(--line); padding: 5px 7px; background: transparent; color: var(--gold); cursor: pointer; font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.coordinate-edit:hover, .coordinate-edit:focus-visible { border-color: var(--gold); color: var(--paper); }

@media (max-width: 760px) {
  .command-context-controls { justify-items: stretch; width: 100%; }
  .coordinate-point { grid-template-columns: 12px minmax(0, 1fr); }
  .coordinate-edit { grid-column: 2; justify-self: start; }
}

/* Commercial Command and Founder reconciliation.
   UNKNOWN is styled to read as a missing value, never as a quiet zero. */
.commercial-programs, .reconciliation-items { display: grid; gap: 20px; }
.commercial-program { display: grid; gap: 14px; }
.commercial-scenarios { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.commercial-figures { display: grid; gap: 9px; margin: 0; }
.commercial-figures > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 12px; border-bottom: 1px solid var(--line-soft); padding-bottom: 7px; }
.commercial-figures dt { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.commercial-figures dd { margin: 0; color: var(--paper); font-size: 12px; text-align: right; }
.commercial-figures dd small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }
.figure-unknown { color: var(--warning); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.figure-partial { color: var(--warning); font-weight: 800; }
.figure-note { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.capability-delta { border: 1px solid var(--line); border-left: 3px solid var(--success); padding: 13px; background: rgb(255 255 255 / .02); color: var(--paper); font-size: 10px; line-height: 1.6; }
.capability-delta-warning { border-left-color: var(--warning); }
.capability-delta ul { margin: 8px 0 0; padding-left: 17px; color: var(--muted); }
.excluded-revenue { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.excluded-revenue h3 { margin: 0 0 8px; color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.excluded-revenue ul { margin: 0; padding-left: 17px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.reconciliation-clarifications ul { margin: 8px 0 0; padding-left: 17px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.reconciliation-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.reconciliation-actions .button { min-height: 34px; padding: 8px 11px; font-size: 8px; }
.source-excerpt { margin: 12px 0 0; border-left: 2px solid var(--gold); padding: 8px 0 8px 12px; color: var(--muted); font-size: 10px; font-style: italic; line-height: 1.6; }
.conflict-table { width: 100%; margin-top: 12px; border-collapse: collapse; font-size: 10px; }
.conflict-table th, .conflict-table td { border: 1px solid var(--line); padding: 7px 9px; color: var(--paper); text-align: left; }
.conflict-table thead th { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* The program builder: the protection model on the left, the money it produces
   on the right, both on one working screen. The scenario selector is sticky so
   it stays visible while the model below it is edited. */
.commercial-builder { display: grid; gap: 18px; margin-bottom: 26px; }
.commercial-builder-bar { position: sticky; top: 0; z-index: 6; display: flex; flex-wrap: wrap; align-items: end; gap: 12px; border: 1px solid var(--line); padding: 14px 16px; background: rgb(14 16 15 / .96); backdrop-filter: blur(12px); }
.commercial-builder-bar .button { min-height: 38px; padding: 9px 13px; font-size: 8px; }
.commercial-builder-state { flex: 1 1 220px; color: var(--muted); font-size: 9px; line-height: 1.55; text-align: right; }
.commercial-builder-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .95fr); align-items: start; gap: 18px; }
.commercial-builder-design { display: grid; gap: 18px; min-width: 0; }
.commercial-builder-economics { position: sticky; top: 86px; display: grid; gap: 18px; }
.commercial-builder-economics > .panel { display: grid; gap: 14px; }
.commercial-form { display: grid; gap: 18px; margin-top: 16px; }
.commercial-form .form-actions { position: static; padding: 14px 0 0; background: none; backdrop-filter: none; }
.commercial-form-divider { display: grid; gap: 6px; border-top: 1px solid var(--line); padding-top: 15px; }
.commercial-line-items { display: grid; gap: 20px; margin-top: 20px; }
.commercial-line-group h3 { margin: 0 0 9px; color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
/* The saved line carries every dimension it was priced on, so the table stays
   scrollable rather than dropping a column the Founder needs to verify. */
.commercial-line-group { overflow-x: auto; }
.commercial-line-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.commercial-line-table th, .commercial-line-table td { border: 1px solid var(--line); padding: 7px 9px; color: var(--paper); text-align: left; vertical-align: top; }
.commercial-line-table thead th { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.commercial-line-table small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }
.commercial-line-actions { display: flex; flex-wrap: wrap; gap: 6px; }

@media (max-width: 760px) {
  .commercial-scenarios { grid-template-columns: 1fr; }
  .commercial-figures > div { grid-template-columns: 1fr; }
  .commercial-figures dd { text-align: left; }
  .commercial-builder-grid { grid-template-columns: 1fr; }
  .commercial-builder-economics { position: static; }
  .commercial-builder-state { text-align: left; }
  .commercial-line-table { display: block; overflow-x: auto; }
}

/* Reality Layer — the operational map and the provider answers behind it.
   Imagery is a background: markers, geofence radii and route geometry are drawn
   from the record and stay legible when no tile loads. */
.reality-layer-panel { grid-column: 1; display: grid; align-content: start; gap: 12px; }
.live-command-stack { grid-column: 2; grid-row: 1 / span 2; }
.reality-map-surface { position: relative; min-height: 380px; border: 1px solid var(--line); background: #0d0f0d; }
.reality-map-viewport { position: relative; width: 100%; height: 380px; overflow: hidden; cursor: grab; touch-action: none; }
.reality-map-viewport.dragging { cursor: grabbing; }
.reality-map-tiles { position: absolute; inset: 0; }
.reality-map-tile { position: absolute; top: 0; left: 0; width: 256px; height: 256px; filter: grayscale(.35) brightness(.72) contrast(1.08); user-select: none; }
/* A tile that failed stays blank rather than being replaced by anything that
   could be mistaken for surveyed ground. */
.reality-map-tile.failed { visibility: hidden; }
.reality-map-overlay { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.reality-map-overlay .selectable { pointer-events: auto; cursor: pointer; }
.reality-map-geofence { fill: rgb(197 164 110 / .1); stroke: var(--gold); stroke-width: 1.2; stroke-dasharray: 5 4; }
.reality-map-geofence.unverified { stroke: var(--warning); stroke-dasharray: 2 4; }
.reality-map-accuracy { fill: rgb(103 183 128 / .12); stroke: rgb(103 183 128 / .5); stroke-width: 1; }
.reality-map-route { fill: none; stroke: var(--gold-bright); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.reality-map-route.alternate { stroke: #7fa6c4; stroke-dasharray: 8 5; }
.reality-map-route.emergency, .reality-map-route.hospital { stroke: #d97f74; }
.reality-map-marker .marker-halo { fill: rgb(9 10 9 / .78); stroke: var(--gold); stroke-width: 1.2; }
.reality-map-marker .marker-dot { fill: var(--gold); }
.reality-map-marker.live .marker-halo { stroke: var(--success); }
.reality-map-marker.live .marker-dot { fill: var(--success); }
.reality-map-marker.unverified .marker-halo { stroke: var(--warning); stroke-dasharray: 2 2; }
.reality-map-marker.unverified .marker-dot { fill: var(--warning); }
.reality-map-marker.resource .marker-halo, .reality-map-marker.hospital .marker-halo { stroke: #d97f74; }
.reality-map-marker.resource .marker-dot, .reality-map-marker.hospital .marker-dot { fill: #d97f74; }
.reality-map-controls { position: absolute; top: 10px; right: 10px; display: grid; gap: 5px; }
.reality-map-control { width: 28px; height: 28px; border: 1px solid var(--line); background: rgb(14 16 15 / .9); color: var(--paper); font-size: 13px; line-height: 1; cursor: pointer; }
.reality-map-control:hover { border-color: var(--gold); color: var(--gold-bright); }
.reality-map-attribution { position: absolute; right: 6px; bottom: 5px; padding: 2px 5px; background: rgb(9 10 9 / .74); color: var(--muted); font-size: 8px; }
.reality-map-empty { position: absolute; inset: 0; display: grid; place-content: center; margin: 0; padding: 20px; color: var(--muted); font-size: 9px; text-align: center; }
.reality-controls { display: flex; flex-wrap: wrap; gap: 10px; }
.reality-controls label { display: grid; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.reality-controls select { min-width: 150px; border: 1px solid var(--line); border-radius: 2px; padding: 8px; background: #171a19; color: var(--paper); font: inherit; }
.reality-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.reality-actions .button { min-height: 34px; padding: 8px 11px; font-size: 8px; }
.reality-status { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.reality-status.success { color: var(--success); }
.reality-status.error, .reality-status.warn { color: var(--warning); }
.reality-results { display: grid; gap: 10px; max-height: 340px; overflow-y: auto; }
.reality-result { display: grid; gap: 5px; border: 1px solid var(--line); padding: 11px 12px; background: rgb(255 255 255 / .015); }
.reality-result header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.reality-result strong { color: #d5d7d0; font-size: 10px; }
.reality-result header span { color: var(--gold); font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.reality-result p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.reality-result-meta { color: var(--muted); font-size: 8px; line-height: 1.55; }
.reality-result .button { justify-self: start; min-height: 30px; padding: 7px 10px; font-size: 8px; }
/* A provider that could not answer and an area with nothing in it are shown as
   visibly different states, because they call for different decisions. */
.reality-degraded { display: grid; gap: 5px; border: 1px solid rgb(189 102 93 / .5); padding: 11px 12px; background: rgb(189 102 93 / .07); }
.reality-degraded strong { color: #e4aaa3; font-size: 10px; }
.reality-degraded p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.reality-degraded-inline { color: #e4aaa3 !important; }
.reality-empty { display: grid; gap: 5px; border: 1px dashed var(--line); padding: 11px 12px; }
.reality-empty strong { color: #d5d7d0; font-size: 10px; }
.reality-empty p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.reality-hospital { display: grid; gap: 6px; border: 1px solid rgb(103 183 128 / .4); padding: 12px 13px; background: rgb(103 183 128 / .05); }
.reality-hospital.degraded { border-color: rgb(213 161 78 / .5); background: rgb(213 161 78 / .05); }
.reality-hospital strong { color: var(--paper); font-size: 11px; }
.reality-hospital p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.reality-hospital .button { justify-self: start; min-height: 30px; padding: 7px 10px; font-size: 8px; }
.reality-route-planner { margin-top: 4px; }
.reality-route-result { display: grid; gap: 8px; margin-top: 12px; }
.reality-route-summary { display: grid; gap: 5px; border: 1px solid var(--line); padding: 11px 12px; }
.reality-route-summary p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.reality-route-summary strong { color: var(--gold); }

@media (max-width: 1080px) {
  .reality-layer-panel, .live-command-stack { grid-column: auto; grid-row: auto; }
  .reality-map-viewport { height: 300px; }
}
