/*
 * SHELL CHROME — LIFTED, not authored (§2.11, M-4 READ/lift freely / WRITE never).
 *
 * "The simulator does NOT get new chrome." The ratified nav-rail, header and footer are
 * lifted from the frozen mockups, whose blobs are pinned in
 * campaigns/pr-ce-simulator/migration-manifest-v1.md as shell-chrome donor rows:
 *
 *   preview-publish/claude_code/_fable/personnel-roster.html      d08d13f9ee625184cbbbe418276a422ed7c7b37e
 *   preview-publish/claude_code/_fable/checklist-execution.html   758faa2b08b63c9c5eff8b171722c8a683ee7aa0
 *   preview-publish/coco/_codex/personnel-roster-phone.html       0dd56cfaba5d39b5020190808728bce40ef09f27
 *   …/checklist-execution/execution-shell.mjs                     aa069155298a0969aaab39bdb40981275a52c263
 *   …/checklist-execution/execution-chrome-leaves.mjs             e2a342f80f27171ed9ed66ff898e8963705da496
 *   …/checklist-execution/execution-demo-chrome.mjs               66d5fcd7a3e39673dd0a9dbc5a065fed49a814d5
 *   …/_fable/assets/logo-1-175x120.webp                           6696b056b22749bbfc200cf778a89d993579dac0
 *
 * THE CHROME CAMPAIGNS ARE THE DESIGN OF RECORD. ce-chrome-refresh, ce-mc-chrome-parity
 * and the rail/footer fixes — including PR #100 s footer defect — are outcomes this
 * project already paid for through full review cycles. Their result IS the chrome, and the
 * simulator inherits it rather than re-deriving it.
 *
 * ONE SHELL INSTANCE, BOTH ROUTES INSIDE IT. ce-mc-chrome-parity existed because two
 * surfaces held two copies of the same chrome and drifted; a single shell cannot drift from
 * itself, and PR #100 s class of defect — a footer bug fixed on one page and left latent on
 * two siblings — cannot recur here because there is one footer.
 *
 * ACCEPTANCE BAR: design intent preserved. Pixel-perfect parity is NOT a slice-one bar and
 * no slice-one point may be failed for a pixel delta (§2.11); a MISSING rail/header/footer
 * element, or a SECOND divergent shell, is a failure.
 *
 * The block below is lifted verbatim from the PR shell donor. Simulator-specific rules
 * follow it under their own banner and never edit the lifted text — a defect found in a
 * donor is fixed in the simulator s copy, never in the frozen mockup.
 */

/* --- donor lines 8-20 --- */
:root{--bg:#f6f7fb;--panel:#fff;--ink:#172033;--muted:#667085;--line:#d9deea;--soft:#eef2f8;--blue:#2563eb;--green:#16834a;--red:#b42318;--amber:#b54708;--purple:#7c3aed;--shadow:0 18px 45px rgba(20,32,54,.12)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}a{text-decoration:none;color:inherit}
.page{min-height:100vh;padding:28px;position:relative;z-index:1}.frame{max-width:1320px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 10px;background:#fff;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}
.pill.blue{background:#eef4ff;border-color:#bfdbfe;color:#1d4ed8}.pill.green{background:#ecfdf3;border-color:#bbf7d0;color:#166534}.pill.red{background:#fff1f3;border-color:#fecdd3;color:#be123c}.pill.amber{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.pill.purple{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.pill.neutral{background:#f8fafc;border-color:#e2e8f0;color:#475467}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{border:1px solid #cbd5e1;background:#fff;color:#172033;border-radius:999px;padding:8px 12px;font-weight:800;font-size:12px;cursor:pointer;font-family:inherit}
.btn:hover{border-color:#93c5fd;box-shadow:0 8px 18px rgba(37,99,235,.10)}
.btn.primary{background:#2563eb;border-color:#2563eb;color:#fff}.btn.small{padding:6px 11px;font-size:11px}
.btn:disabled{cursor:not-allowed;opacity:.74;background:#eef2f7;border-color:#cbd5e1;color:#475467;box-shadow:none}
.muted{color:var(--muted)}.small{font-size:12px}
.demo-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr);background:#f6f7fb;transition:grid-template-columns .18s ease}.demo-nav{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#eff6ff 0%,#ffffff 72%);border-right:1px solid #bfdbfe;padding:24px 16px;display:flex;flex-direction:column;gap:18px;color:#172033;z-index:2000;transition:padding .18s ease;overflow:visible}.demo-nav-brand{font-size:17px;font-weight:900;letter-spacing:-.045em;color:#27578D;line-height:1}.demo-nav-copy{font-size:12px;line-height:1.4;color:#475467;margin-top:4px}.demo-nav-group{display:grid;gap:7px}.demo-nav-label{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#2563eb;margin:6px 0 2px;white-space:nowrap}.demo-nav-link{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid transparent;border-radius:13px;color:#172033;text-decoration:none;font-size:13px;font-weight:850}.demo-nav-link:hover{background:#eef4ff;border-color:#bfdbfe;color:#1d4ed8}.demo-nav-link.active{background:#fff;border-color:#93c5fd;color:#1d4ed8;box-shadow:0 8px 18px rgba(37,99,235,.10)}.demo-nav-icon{width:20px;text-align:center;flex:0 0 20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.demo-nav-note{margin-top:auto;border:1px solid #bfdbfe;background:#fff;border-radius:16px;padding:12px;color:#475467;font-size:12px;line-height:1.45}.demo-nav-note b{color:#1d4ed8}@media(max-width:980px){.demo-shell{display:block}.demo-nav{position:static;height:auto;border-right:0;border-bottom:1px solid #bfdbfe}.demo-nav-group{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-nav-note{display:none}}
[hidden]{display:none!important}.demo-shell[data-nav-collapsed='true']{grid-template-columns:88px minmax(0,1fr)}.demo-nav-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.demo-nav-brand-lockup{display:flex;align-items:center;gap:8px;padding:2px 2px 6px;margin-left:-4px}.demo-nav-logo{display:block;width:42px;flex:0 0 42px;height:auto}.demo-nav-toggle{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:999px;flex:0 0 auto;cursor:pointer}.demo-nav-toggle:hover{border-color:#93c5fd;color:#1d4ed8;box-shadow:0 10px 22px rgba(37,99,235,.10)}.demo-nav-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}.demo-nav-label-row{display:flex;align-items:center;gap:6px}.demo-nav-label.muted-section{color:#667085}.demo-nav-label-help{display:inline-flex;align-items:center;justify-content:center;margin-top:1px}.tooltip-pill{position:relative;cursor:help}.demo-nav-link.tooltip-pill{cursor:pointer}.demo-nav-toggle.tooltip-pill{cursor:pointer}.tooltip-pill:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.tooltip-info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #cbd5e1;border-radius:999px;font-size:10px;font-weight:900;color:#667085;background:#fff;margin-left:6px;line-height:1;vertical-align:middle;flex:0 0 16px}.tooltip-pill::after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%) translateY(-4px);width:max-content;max-width:min(240px,calc(100vw - 48px));padding:8px 10px;border:1px solid #dbe3ee;border-radius:10px;background:rgba(255,255,255,.98);backdrop-filter:blur(8px);color:#334155;font-size:12px;font-weight:600;line-height:1.35;white-space:normal;box-shadow:0 12px 28px rgba(15,23,42,.12);opacity:0;pointer-events:none;transition:.16s ease opacity,.16s ease transform;z-index:3000;text-transform:none;letter-spacing:0}.tooltip-pill::before{content:"";position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%) translateY(-4px);width:10px;height:10px;background:rgba(255,255,255,.98);border-left:1px solid #dbe3ee;border-top:1px solid #dbe3ee;rotate:45deg;opacity:0;pointer-events:none;transition:.16s ease opacity,.16s ease transform;z-index:3000}.tooltip-pill:hover::after,.tooltip-pill:hover::before,.tooltip-pill:focus-visible::after,.tooltip-pill:focus-visible::before{opacity:1;transform:translateX(-50%) translateY(0)}.demo-nav-label-help.tooltip-pill::after,.demo-nav-label-help.tooltip-pill::before,.demo-nav-link.tooltip-pill::after,.demo-nav-toggle.tooltip-pill::after{left:calc(100% + 14px);top:50%;transform:translateY(-50%) translateX(-4px)}.demo-nav-label-help.tooltip-pill::before,.demo-nav-link.tooltip-pill::before,.demo-nav-toggle.tooltip-pill::before{left:calc(100% + 8px);top:50%;rotate:none;transform:translateY(-50%) translateX(-4px) rotate(-45deg)}.demo-nav-label-help.tooltip-pill:hover::after,.demo-nav-label-help.tooltip-pill:focus-visible::after,.demo-nav-link.tooltip-pill:hover::after,.demo-nav-link.tooltip-pill:focus-visible::after,.demo-nav-toggle.tooltip-pill:hover::after,.demo-nav-toggle.tooltip-pill:focus-visible::after{transform:translateY(-50%) translateX(0)}.demo-nav-label-help.tooltip-pill:hover::before,.demo-nav-label-help.tooltip-pill:focus-visible::before,.demo-nav-link.tooltip-pill:hover::before,.demo-nav-link.tooltip-pill:focus-visible::before,.demo-nav-toggle.tooltip-pill:hover::before,.demo-nav-toggle.tooltip-pill:focus-visible::before{transform:translateY(-50%) translateX(0) rotate(-45deg)}.demo-nav-link-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.demo-nav-text{white-space:nowrap}.demo-nav-link.disabled{color:#667085;background:#fff;border-color:transparent;cursor:not-allowed}.demo-nav-link.disabled:hover,.demo-nav-link.disabled:focus-visible{background:#fff;border-color:#e2e8f0;color:#667085;box-shadow:none;outline:none}.demo-nav-link.disabled .demo-nav-icon{opacity:.75;width:22px;height:22px;flex-basis:22px}.demo-nav-link.disabled .demo-nav-icon svg{width:21px;height:21px}.demo-nav-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.demo-nav-support{width:100%;justify-content:flex-start;padding:10px 12px;background:#f8fbff;border-color:#dbeafe;color:#27578D;font-family:inherit;cursor:pointer}.demo-nav-support:hover{background:#eef4ff;border-color:#bfdbfe;color:#1d4ed8}.demo-shell[data-nav-collapsed='true'] .demo-nav{padding:24px 10px;align-items:center}.demo-shell[data-nav-collapsed='true'] .demo-nav-top{width:100%;justify-content:center;min-height:44px;position:static}.demo-shell[data-nav-collapsed='true'] .demo-nav-brand-lockup{display:none}.demo-shell[data-nav-collapsed='true'] .demo-nav-toggle{position:relative;top:auto;right:auto;width:44px;height:44px;margin:0 auto;padding:0}.demo-shell[data-nav-collapsed='true'] .demo-nav-toggle svg{transform:rotate(180deg)}.demo-shell[data-nav-collapsed='true'] .demo-nav-group{width:100%;justify-items:center}.demo-shell[data-nav-collapsed='true'] .demo-nav-label,.demo-shell[data-nav-collapsed='true'] .demo-nav-label-row,.demo-shell[data-nav-collapsed='true'] .demo-nav-text{display:none}.demo-shell[data-nav-collapsed='true'] .demo-nav-link{width:44px;justify-content:center;padding:10px 0}.demo-shell[data-nav-collapsed='true'] .demo-nav-icon{width:auto;flex:0 0 auto}.demo-shell[data-nav-collapsed='true'] .demo-nav-note{display:block;margin:0;padding:0;border:0;background:transparent}.demo-shell[data-nav-collapsed='true'] .demo-nav-support{position:fixed;left:22px;bottom:22px;width:44px;height:44px;padding:0;justify-content:center;border-radius:999px;box-shadow:0 12px 28px rgba(37,99,235,.16);z-index:2100}.demo-shell[data-nav-collapsed='true'] .demo-nav-support .demo-nav-icon{width:22px;height:22px;flex-basis:22px}.demo-shell[data-nav-collapsed='true'] .demo-nav-support .demo-nav-icon svg{width:21px;height:21px}@media(max-width:980px){.demo-nav{position:relative;z-index:2000}.demo-nav-top{position:relative}.demo-shell[data-nav-collapsed='true'] .demo-nav-group{grid-template-columns:repeat(2,minmax(0,1fr));justify-items:stretch}.demo-shell[data-nav-collapsed='true'] .demo-nav-link{width:auto;padding:10px 12px}.demo-shell[data-nav-collapsed='true'] .demo-nav-note{display:none}}

/* --- donor lines 25-30 --- */
/* PII / confidentiality banner */
.pii-banner{display:flex;gap:10px;align-items:flex-end;padding:12px 24px;background:#fffbeb;border-bottom:1px solid #fde68a;color:#7c2d12;font-size:12px;line-height:1.5}
.pii-banner .pii-icon{flex:0 0 auto;font-size:14px;line-height:1.3}
.pii-banner b{font-weight:900;letter-spacing:.02em}
:root[data-theme='dark'] .pii-banner{background:#2a1e05;border-bottom-color:#5b4308;color:#fcd9a8}
/* hero header + surface (theme) controls — from baseline management v3.2 */

/* --- donor lines 31-45 --- */
.hero{padding:24px;background:linear-gradient(135deg,#eef4ff,#fff 56%,#f7f0ff);border-bottom:1px solid var(--line);border-radius:24px 24px 0 0}
.hero-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.h1{font-size:34px;line-height:1.04;font-weight:900;letter-spacing:-.055em;margin:0 0 10px}
.hero-sub{color:var(--muted);font-size:14px;max-width:calc(64ch + 48px);line-height:1.45}
.hero-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.stat-chip{border:1px solid var(--line);background:#fff;border-radius:14px;padding:8px 14px;min-width:96px}
.stat-chip b{display:block;font-size:20px;font-weight:900;color:#172033;letter-spacing:-.02em}
.stat-chip span{font-size:11px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.surface-controls{display:flex;align-items:center;gap:8px}
.surface-control{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.surface-control svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.surface-control.active{background:#eef4ff;border-color:#93c5fd;color:#1d4ed8}
.btn.small.surface-control{padding:0}
.surface-control[data-theme-mode='night'] svg{width:24px;height:24px;stroke-width:1.6}
.surface-sep{width:1px;height:20px;background:#cbd5e1;margin:0 3px;flex:0 0 auto}

/* --- donor lines 46-62 --- */
:root[data-theme='dark'] .surface-sep{background:#334155}
:root[data-theme='dark'] .surface-control.active{background:#172554;border-color:#60a5fa;color:#bfdbfe}
.surface-control.tooltip-pill,button.surface-control.tooltip-pill,button[data-theme-mode].tooltip-pill{cursor:pointer!important}
/* mobile nav: group labels span the 2-col grid so links pair cleanly beneath */
@media(max-width:980px){.demo-nav-label-row,.demo-nav-group>.demo-nav-label{grid-column:1/-1}}
@media(max-width:980px){.demo-nav-link{min-width:0}.demo-nav-text{min-width:0;overflow:hidden;text-overflow:ellipsis}}
/* right-edge tooltips align right so they never clip the viewport */
.surface-controls .tooltip-pill::after{left:auto;right:0;transform:translateY(-4px)}
.surface-controls .tooltip-pill::before{left:auto;right:12px;transform:translateY(-4px)}
.surface-controls .tooltip-pill:hover::after,.surface-controls .tooltip-pill:focus-visible::after{transform:translateY(0)}
.surface-controls .tooltip-pill:hover::before,.surface-controls .tooltip-pill:focus-visible::before{transform:translateY(0)}
.demo-nav-footer{margin-top:auto;display:grid;gap:10px;border:0;background:transparent;padding:0;color:inherit}
.demo-nav-viewof{border:1px solid #bfdbfe;background:#fff;border-radius:14px;margin-top:0;padding:10px 12px}
.demo-nav-viewof-label{font-size:11px;font-weight:900;letter-spacing:0;color:#2563eb}
.demo-nav-viewof-name{margin-top:3px;color:#172033;font-size:13px;font-weight:900;line-height:1.2}
.demo-shell[data-nav-collapsed='true'] .demo-nav-viewof{display:none}
.role-row .tooltip-pill::after{left:0;right:auto;transform:translateY(-4px);max-width:min(320px,calc(100vw - 80px))}

/* --- donor line 182 (LIFT CORRECTION) --- */
/* MISSED IN THE FIRST LIFT, and found by B3's responsive arm rather than by reading: the
 * simulator's page scrolled horizontally at 900px and 390px while the frozen donor did not.
 * The cause was this ratified rule, which the first pass skipped: below the 980px
 * breakpoint the donor DISABLES the tooltip pseudo-elements outright, because they are
 * absolutely positioned to the RIGHT of a nav link and would otherwise widen the document.
 * The repair is to lift what was already ratified, not to invent a workaround — the donor
 * had already solved this, and the defect was in the completeness of the lift. */
@media(max-width:980px){.tooltip-pill::before,.tooltip-pill::after{display:none!important}.role-row .pill,.assign-row .pill{max-width:100%;white-space:normal;overflow-wrap:anywhere}}

/* --- donor lines 188-190 --- */
@media(max-width:980px){.page{padding:12px}.h1{font-size:28px}.person-grid{grid-template-columns:1fr 1fr}.reporting-col{grid-column:1/-1;border-top:1px dashed var(--line);padding-top:10px}.edit-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.person-grid{grid-template-columns:1fr}.contact-col{border-top:1px dashed var(--line);padding-top:10px}.edit-grid{grid-template-columns:1fr}.section{padding:14px}.chip-row{padding-left:14px;padding-right:14px}.search-wrap{max-width:none;margin-left:0;flex-basis:100%}.hero{padding:18px 14px}.stat-chip{min-width:76px;padding:7px 10px}.demo-time-panel{margin:0 14px 14px}}
:root[data-theme='dark']{color-scheme:dark;--bg:#0f172a;--panel:#111827;--ink:#e5edf8;--muted:#9fb1c9;--line:#263449;--soft:#172234;--blue:#60a5fa;--blue2:#172554;--green:#4ade80;--green2:#052e1a;--red:#fb7185;--red2:#3b0b18;--amber:#f59e0b;--amber2:#3a2306;--purple:#a78bfa;--purple2:#251443;--shadow:0 18px 45px rgba(2,6,23,.45)}

/* --- donor lines 191-203 --- */
:root[data-theme='dark'] body,:root[data-theme='dark'] .demo-shell{background:var(--bg);color:var(--ink)}
:root[data-theme='dark'] .page{background:var(--bg);color:var(--ink)}
:root[data-theme='dark'] .demo-nav{background:linear-gradient(180deg,#0f1b31 0%,#111827 72%);border-right-color:#24354c;color:var(--ink)}
:root[data-theme='dark'] .demo-nav-brand{color:#bfdbfe}:root[data-theme='dark'] .demo-nav-link{color:var(--ink)}
:root[data-theme='dark'] .demo-nav-link:hover{background:#172554;border-color:#36518a;color:#bfdbfe}:root[data-theme='dark'] .demo-nav-link.active{background:#172033;border-color:#36518a;color:#bfdbfe}
:root[data-theme='dark'] .demo-nav-link.disabled{background:rgba(15,23,42,.45);border-color:#334155;color:#7f8ea3}:root[data-theme='dark'] .demo-nav-link.disabled:hover{background:rgba(15,23,42,.45);border-color:#334155;color:#7f8ea3}
:root[data-theme='dark'] .demo-nav-note,:root[data-theme='dark'] .demo-nav-toggle,:root[data-theme='dark'] .demo-nav-support,:root[data-theme='dark'] .tooltip-info{background:#0f172a;border-color:#334155;color:#dbe7f5}
:root[data-theme='dark'] .demo-nav-footer{background:transparent;border:0}:root[data-theme='dark'] .demo-nav-viewof{background:#0f172a;border-color:#334155}:root[data-theme='dark'] .demo-nav-viewof-label{color:#93c5fd}:root[data-theme='dark'] .demo-nav-viewof-name{color:#f8fafc}
:root[data-theme='dark'] .hero{background:linear-gradient(135deg,#14213b,#111827 62%,#221434);border-color:#334155;color:var(--ink)}
:root[data-theme='dark'] .frame,:root[data-theme='dark'] .section{background:rgba(15,23,42,.72);border-color:#334155;color:var(--ink);box-shadow:var(--shadow)}
:root[data-theme='dark'] .h1{color:var(--ink)}
:root[data-theme='dark'] .muted,:root[data-theme='dark'] .footer-note,:root[data-theme='dark'] .demo-nav-copy{color:#dbe7f5}
:root[data-theme='dark'] .pill,:root[data-theme='dark'] .btn,:root[data-theme='dark'] .surface-control{background:#0f172a;border-color:#334155;color:var(--ink)}

/* --- donor lines 204-213 --- */
:root[data-theme='dark'] .pill.blue,:root[data-theme='dark'] .btn.primary{background:#172554;border-color:#36518a;color:#bfdbfe}:root[data-theme='dark'] .pill.green{background:#052e1a;border-color:#166534;color:#bbf7d0}:root[data-theme='dark'] .pill.amber{background:#3a2306;border-color:#b45309;color:#fed7aa}:root[data-theme='dark'] .pill.red{background:#3b0b18;border-color:#be123c;color:#fecdd3}:root[data-theme='dark'] .pill.purple{background:#251443;border-color:#7c3aed;color:#ddd6fe}
:root[data-theme='dark'] .tooltip-pill::after,:root[data-theme='dark'] .tooltip-pill::before{background:rgba(17,24,39,.98);border-color:#334155;color:#dbe7f5}
:root[data-theme='dark'] input,
:root[data-theme='dark'] select,
:root[data-theme='dark'] textarea{background:#0f172a!important;border-color:#334155!important;color:#e5edf8!important}
:root[data-theme='dark'] .btn:not(.primary){background:#111827!important;border-color:#334155!important;color:#dbe7f5!important}
:root[data-theme='dark'] .small,
:root[data-theme='dark'] .muted{color:#9fb1c9!important}
/* Night Ops (red) mode: dark tokens + luminance-collapsing red tint.
   grayscale(1) first flattens hue-coded status into brightness tiers (state stays

/* --- donor lines 218-220 --- */
html[data-night='true']{filter:grayscale(1) sepia(1) saturate(5.5) hue-rotate(-48deg) brightness(.7) contrast(1.1)}
html[data-night='true'] body{background:#0a0302}
/* dark theme — footer demo panel (ported from baseline patch) */

/* ===================================================================================
 * SIMULATOR-SPECIFIC RULES — everything above this banner is lifted donor chrome and is
 * never edited here (M-4: WRITE never). What follows is only what the simulator adds:
 * the session-context panel that REPLACES the retired "Viewing as" switcher (§3.7), the
 * sign-in surface, and the two route bodies. No new chrome, no new navigation structure.
 * =================================================================================== */

/* §3.4's session-context panel. It re-uses the donor's `.demo-nav-viewof` shape on
 * purpose: the rail already had a place for "who am I", and the retired switcher's slot is
 * exactly where a READ-ONLY display of resolved state belongs. It is never a control. */
.sim-session-panel{border:1px solid #bfdbfe;background:#fff;border-radius:14px;padding:10px 12px;display:grid;gap:6px}
.sim-session-panel[hidden]{display:none!important}
.sim-session-label{font-size:11px;font-weight:900;color:#2563eb;letter-spacing:0}
.sim-session-name{color:#172033;font-size:13px;font-weight:900;line-height:1.2}
.sim-session-toggle{border:0;background:transparent;padding:0;font:800 11px/1.2 Inter,system-ui,sans-serif;color:#2563eb;cursor:pointer;text-align:left}
.sim-session-rows{display:grid;gap:3px;font-size:11px;color:#475467;line-height:1.35}
.sim-session-rows dt{font-weight:850;color:#667085}
.sim-session-rows dd{margin:0 0 4px;font-weight:750;color:#172033;word-break:break-all}
.sim-session-rows .sim-rev{font-variant-numeric:tabular-nums}
.demo-shell[data-nav-collapsed='true'] .sim-session-panel{display:none}
:root[data-theme='dark'] .sim-session-panel{background:#0f172a;border-color:#334155}
:root[data-theme='dark'] .sim-session-label{color:#93c5fd}
:root[data-theme='dark'] .sim-session-name{color:#f8fafc}
:root[data-theme='dark'] .sim-session-rows{color:#9fb1c9}
:root[data-theme='dark'] .sim-session-rows dd{color:#e5edf8}

/* route bodies */
.sim-section{padding:18px 22px;border-top:1px solid var(--line)}
.sim-section h2{font-size:16px;font-weight:900;letter-spacing:-.02em;margin:0 0 10px}
.sim-table{width:100%;border-collapse:collapse;font-size:12.5px}
.sim-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850;padding:6px 8px;border-bottom:1px solid var(--line)}
.sim-table td{padding:7px 8px;border-bottom:1px solid var(--soft);vertical-align:top}
.sim-table tr:hover td{background:var(--soft)}
.sim-kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px}
.sim-kv dt{color:var(--muted);font-weight:800}
.sim-kv dd{margin:0;font-weight:750}
.sim-note{font-size:12px;color:var(--muted);line-height:1.45;max-width:72ch}
.sim-lab-note{margin:12px 22px 0;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;background:var(--soft);color:var(--muted);font-size:12px;line-height:1.45}
.sim-form{display:grid;gap:10px;max-width:520px}
.sim-input,.sim-select,.sim-textarea{border:1px solid var(--line);border-radius:12px;padding:9px 11px;font:750 13px/1.3 Inter,system-ui,sans-serif;background:#fff;color:var(--ink);width:100%}
.sim-textarea{min-height:78px;resize:vertical}
.sim-refusal{margin-top:10px;border:1px solid #fecdd3;background:#fff1f2;color:#9f1239;border-radius:12px;padding:9px 11px;font-size:12px;font-weight:800}
.sim-ok{margin-top:10px;border:1px solid #bbf7d0;background:#ecfdf3;color:#166534;border-radius:12px;padding:9px 11px;font-size:12px;font-weight:800}
:root[data-theme='dark'] .sim-refusal{background:#3b0b18;border-color:#7f1d33;color:#fda4af}
:root[data-theme='dark'] .sim-ok{background:#052e1a;border-color:#166534;color:#86efac}
:root[data-theme='dark'] .sim-input,:root[data-theme='dark'] .sim-select,:root[data-theme='dark'] .sim-textarea{background:#0f172a;border-color:#334155;color:#e5edf8}
:root[data-theme='dark'] .sim-lab-note{background:#172234;border-color:#334155;color:#9fb1c9}
:root[data-theme='dark'] .sim-table th{color:#9fb1c9;border-bottom-color:#263449}
:root[data-theme='dark'] .sim-table td{border-bottom-color:#1e293b}
:root[data-theme='dark'] .sim-table tr:hover td{background:#172234}

/* the reset confirmation (§5.5) — a UI-side precondition, deliberately separate from the
 * command contract. The count it shows comes from the SESSION STORE, never a client guess. */
.sim-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;z-index:4000;padding:20px}
.sim-modal[hidden]{display:none!important}
.sim-modal-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;max-width:460px;box-shadow:var(--shadow)}
.sim-modal-card h3{margin:0 0 8px;font-size:16px;font-weight:900}
.sim-modal-warning{font-size:13px;font-weight:850;color:#b42318;line-height:1.4}
:root[data-theme='dark'] .sim-modal-warning{color:#fda4af}
.sim-modal-actions{display:flex;gap:8px;margin-top:14px;justify-content:flex-end}

/* Wide content scrolls INSIDE its own container; the page body never scrolls horizontally.
 * Found by B3's responsive arm at 900px and 390px: the route tables pushed the document
 * wider than the viewport. Fixed in the SIMULATOR's copy, per M-4 — the donor is untouched. */
.sim-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sim-kv{overflow-wrap:anywhere}
.sim-session-rows dd{overflow-wrap:anywhere}
@media(max-width:980px){.sim-section{padding:14px}}
