/* Mission control. Local system fonts and vector art; no external requests.
   Visual system: graphite/navy surfaces, one amber accent, 8px spacing grid,
   technical grotesk for UI and tabular monospace for every number. */
:root {
  color-scheme: dark;
  /* Surfaces */
  --bg:#0a0d13; --panel:#111620; --panel-alt:#161c27; --sunken:#0b0f17; --rail:#0c1017;
  --border:#232b38; --border-strong:#39445a; --hairline:#1b2230;
  /* Ink */
  --text:#eaeef4; --muted:#aeb8c6; --dim:#93a0b1;
  /* Single accent: engine-flame amber */
  --accent:#ffab2e; --accent-bright:#ffc469; --accent-line:#5c441a; --accent-wash:#1b1609; --accent-ink:#1a1204;
  /* States */
  --danger:#f4715f; --danger-line:#5e2a26; --danger-wash:#1d1214;
  --steel:#8aa2bd;
  /* Series consumed by the chart renderer through var() */
  --cyan:var(--steel); --lime:var(--accent); --coral:var(--danger); --amber:var(--accent);
  --chart-grid:#222c3a; --chart-capacity:#74828f;
  --radius:4px; --radius-sm:3px;
  --sans:"Helvetica Neue",Helvetica,"Segoe UI",system-ui,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","SFMono-Regular","JetBrains Mono","Roboto Mono",Menlo,Consolas,"Liberation Mono",monospace;
  font-family:var(--sans);
  font-synthesis:none;
}
* {box-sizing:border-box}
body {margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body.busy {cursor:progress}
button,input,select,textarea {font:inherit}
button,a,input,select,textarea {-webkit-tap-highlight-color:transparent}
button {cursor:pointer}
button:disabled {opacity:.38;cursor:not-allowed}
:where(button,a,summary,input,select,textarea):focus-visible {outline:2px solid var(--accent);outline-offset:2px}
a {color:var(--accent);text-decoration:none}
a:hover {color:var(--accent-bright)}
[hidden] {display:none!important}
.sr-only {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link {position:fixed;left:16px;top:-72px;padding:12px 20px;background:var(--accent);color:var(--accent-ink);font-weight:600;z-index:100;border-radius:var(--radius)}
.skip-link:focus {top:16px}
h1,h2,h3,p,figure {margin:0}
h2 {font-size:21px;font-weight:600;letter-spacing:-.3px}
p {color:var(--muted)}
.app-shell {display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.sidebar {padding:24px 16px 0;border-right:1px solid var(--border);background:var(--rail);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand {display:flex;gap:12px;align-items:center;font-size:13px;font-weight:700;letter-spacing:1.4px;white-space:nowrap;margin:0 8px 40px;color:var(--text)}
.brand:hover {color:var(--text)}
.brand small {display:block;font-family:var(--mono);font-size:9px;color:var(--dim);font-weight:400;letter-spacing:.4px;margin-top:6px}
.brand-mark {width:28px;height:28px;border:1px solid var(--accent);border-radius:50%;position:relative;transform:rotate(-35deg);flex-shrink:0}
.brand-mark:before {content:"";position:absolute;inset:8px -8px;border:1px solid var(--accent-line);border-radius:50%}
.brand-mark span {position:absolute;width:4px;height:4px;background:var(--accent);border-radius:50%;right:-3px;top:12px}
.side-label {font-family:var(--mono);font-size:10px;letter-spacing:1.1px;color:var(--dim);margin:0 8px 8px}
.sidebar nav {display:flex;flex-direction:column;gap:2px}
.nav-item {position:relative;width:100%;display:flex;align-items:center;gap:12px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--muted);text-align:left;padding:12px 8px;font-size:13px;min-height:44px;transition:background .12s,color .12s}
.nav-item .nav-icon {color:var(--dim)}
.nav-item:hover {background:#151b25;color:var(--text)}
.nav-item:hover .nav-icon {color:var(--muted)}
.nav-item:active {background:#1a212d}
.nav-item.active {color:var(--text);background:#181e29;border-color:#2b3542;font-weight:600}
.nav-item.active .nav-icon {color:var(--accent)}
.nav-item.active:before {content:"";position:absolute;left:-17px;height:24px;width:2px;background:var(--accent)}
.nav-icon {font-size:17px;line-height:1;width:20px;text-align:center}
.side-scenario {margin-top:40px;padding:24px 8px 0;border-top:1px solid var(--border)}
.side-scenario .side-label {margin:0 0 8px}
.horizon {font-family:var(--mono);font-size:22px;letter-spacing:-.5px;font-variant-numeric:tabular-nums;color:var(--text)}
.horizon span {font-size:15px;color:var(--accent);padding:0 4px}
.side-scenario p {font-size:11px;line-height:1.6;color:var(--dim)}
.orbit {height:104px;position:relative;overflow:hidden;margin:8px -8px}
.orbit:before,.orbit:after,.orbit i {content:"";position:absolute;width:150px;height:52px;border:1px solid #273240;border-radius:50%;top:26px;left:16px;transform:rotate(-27deg)}
.orbit:after {transform:rotate(27deg);border-color:#1f2936}
.orbit i {transform:rotate(90deg);width:86px;height:63px;left:47px;top:20px}
.orbit b {position:absolute;width:24px;height:24px;top:40px;left:79px;border:1px solid #3d4b5d;border-radius:50%;background:radial-gradient(circle at 30% 25%,#33455a,#131a25 70%)}
.side-bottom {display:flex;align-items:center;gap:8px;margin-top:auto;padding:16px 8px;font-size:11px;color:var(--dim);border-top:1px solid var(--border)}
.status-dot {display:inline-block;height:6px;width:6px;background:var(--accent);border-radius:50%;flex-shrink:0}
.version {margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.5px}
.topbar {height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;font-family:var(--mono);font-size:10px;letter-spacing:1.2px;color:var(--dim);background:var(--bg)}
.breadcrumb b {color:var(--text);font-weight:400}
.top-meta {display:flex;align-items:center;gap:8px;color:var(--muted)}
.workspace {max-width:1650px;margin:0 auto;padding:32px 32px 0}
.page-heading {display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:24px}
.eyebrow {font-family:var(--mono);font-size:11px;letter-spacing:1.1px;color:var(--dim);font-weight:400;margin-bottom:8px;text-transform:uppercase}
h1 {font-size:clamp(28px,2.6vw,42px);letter-spacing:-1px;font-weight:600;line-height:1.12;text-wrap:balance}
h1 span {color:var(--accent)}
.subtitle {font-size:14px;margin-top:8px}
.heading-mark {width:40px;height:40px;border:1px solid var(--border-strong);border-radius:50%;position:relative;margin-right:8px;flex-shrink:0}
.heading-mark:before,.heading-mark:after {content:"";position:absolute;background:var(--border-strong)}
.heading-mark:before {width:56px;height:1px;left:-8px;top:19px}
.heading-mark:after {width:1px;height:56px;left:19px;top:-8px}
.heading-mark span {position:absolute;inset:13px;border:1px solid var(--accent);border-radius:50%}
/* The orbital diagram is deliberately schematic, not a simulation. */
.mission-hero {display:grid;grid-template-columns:minmax(250px,.75fr) minmax(0,1.6fr);gap:8px;position:relative;margin-bottom:24px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--sunken)}
.mission-hero:before {content:"";height:2px;position:absolute;top:0;left:0;width:96px;background:var(--accent)}
.mission-brief {position:relative;padding:24px 0 24px 24px;align-self:center;z-index:1}
.mission-label {font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;margin-bottom:8px;font-family:var(--mono);letter-spacing:.6px;text-transform:uppercase}
.crosshair {font-family:var(--mono);color:var(--accent);font-size:16px;line-height:1}
.mission-brief h2 {font-family:var(--mono);font-size:22px;font-weight:500;letter-spacing:-.4px;color:var(--text)}
.mission-brief>p {font-size:13px;color:var(--muted);margin-top:6px}
.mission-sources {display:flex;flex-wrap:wrap;gap:6px;margin:16px 0;max-width:336px}
.source-chip {display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 8px;background:#141a24;font-size:11px;color:var(--muted);white-space:nowrap}
.source-chip strong {color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:600}
.mission-status {display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-family:var(--mono);letter-spacing:.3px}
.mission-status:before {content:"";width:6px;height:6px;background:currentColor;border-radius:50%;flex-shrink:0}
.mission-status.ready {color:var(--text)}
.mission-status.ready:before {background:#7ec29a}
.mission-status.warning {color:var(--danger)}
.mission-status.stale {color:var(--accent)}
.mission-map {position:relative;align-self:center;padding:8px 16px 24px 0;min-width:0}
.mission-map svg {display:block;width:100%;max-height:264px}
.mission-map figcaption {font-size:10px;font-family:var(--mono);color:var(--dim);text-align:right;position:absolute;right:24px;bottom:8px}
.map-label {fill:#d4dce6;font-size:14px;letter-spacing:.2px}
.map-caption,.map-route-label {fill:#9aa6b4;font-family:var(--mono);font-size:10px;letter-spacing:.8px}
#mission-graphic .map-orbits {stroke:#26313f}
#mission-graphic .earth-route {stroke:var(--accent);stroke-opacity:.85}
#mission-graphic .lunar-route path {stroke:var(--chart-capacity)}
#mission-graphic .lunar-route text {fill:#9aa6b4}
.lunar-route {opacity:1}
#mission-graphic[data-lunar="false"] .lunar-route {display:none}
#mission-graphic[data-lunar="false"] .moon {opacity:.3}
/* Controls and results share a quieter surface than the mission diagram. */
.control-panel {background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.controls-grid {display:grid;grid-template-columns:minmax(145px,.85fr) minmax(205px,1.35fr) minmax(180px,1fr) auto;align-items:end;gap:16px;padding:24px}
label {display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.2px}
select,input,textarea {color:var(--text);border:1px solid #2c3644;border-radius:var(--radius-sm);background:var(--sunken);padding:10px 12px;width:100%;min-width:0;font-size:14px;letter-spacing:normal;transition:border-color .12s,background .12s}
select:hover,input:hover,textarea:hover {border-color:#47546a}
select:focus,input:focus,textarea:focus {border-color:var(--accent);outline:none;box-shadow:inset 0 0 0 1px var(--accent)}
select:focus-visible,input:focus-visible,textarea:focus-visible {outline:2px solid var(--accent);outline-offset:2px}
select:disabled,input:disabled,textarea:disabled {opacity:.45;cursor:not-allowed;background:#0a0e14}
input:invalid {border-color:var(--danger);background:var(--danger-wash)}
input[type=number],input[type=date] {font-family:var(--mono);font-variant-numeric:tabular-nums}
select {padding-right:28px;height:40px}
select option {background:var(--panel)}
textarea {resize:vertical;line-height:1.6}
input[type=checkbox] {width:16px;height:16px;accent-color:var(--accent)}
.button {display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border:1px solid #333e4e;color:var(--text);background:#1a212c;border-radius:var(--radius-sm);padding:10px 16px;font-size:13px;font-weight:500;line-height:1.5;transition:background .12s,border-color .12s,color .12s;min-height:40px}
.button:hover:not(:disabled) {background:#222b38;border-color:#4a5768;color:#fff}
.button:active:not(:disabled) {background:#151b24;transform:translateY(1px)}
.button.primary {background:var(--accent);border-color:var(--accent);color:var(--accent-ink);height:40px;padding:10px 20px;font-weight:700;letter-spacing:.2px}
.button.primary:hover:not(:disabled) {background:var(--accent-bright);border-color:var(--accent-bright);color:var(--accent-ink)}
.button.primary:active:not(:disabled) {background:#e79519;border-color:#e79519}
.button.primary span {font-size:17px;font-weight:400;line-height:1}
.button.small {padding:8px 12px;font-size:12px;background:transparent;min-height:36px}
.button.small:hover:not(:disabled) {background:#1c232e}
.control-footer {display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--border);padding:12px 24px;min-height:48px;background:var(--sunken)}
.experiment-line {display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.tag {display:inline-flex;align-items:center;gap:6px;color:var(--accent);background:var(--accent-wash);border:1px solid var(--accent-line);border-radius:var(--radius-sm);font-size:11px;line-height:1.4;padding:4px 8px;white-space:nowrap;font-family:var(--mono);letter-spacing:.4px}
.tag.quiet {color:var(--muted);background:#151b24;border-color:var(--border)}
.tag.warning {color:var(--accent);background:var(--accent-wash);border-color:var(--accent-line)}
.tag.danger {color:var(--danger);background:var(--danger-wash);border-color:var(--danger-line)}
.calculation-state {font-family:var(--mono);font-size:11px;letter-spacing:.6px;white-space:nowrap;color:var(--dim);text-transform:uppercase}
.calculation-state.fresh {color:#7ec29a}
.calculation-state.stale {color:var(--accent)}
.scenario-note {display:flex;align-items:flex-start;gap:16px;background:var(--panel-alt);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius);padding:16px 24px;margin-top:16px}
.scenario-note strong {font-size:14px;font-weight:600;color:var(--accent)}
.scenario-note p {font-size:13px;line-height:1.7;margin-top:4px;max-width:950px}
.scenario-symbol {font-size:20px;color:var(--accent);line-height:1.3}
.scenario-note>div {min-width:0;width:100%}
.actions-bar {display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0 24px}
.actions-bar>span {font-family:var(--mono);font-size:11px;color:var(--dim);overflow-wrap:anywhere}
.action-buttons {display:flex;gap:8px;flex-wrap:wrap}
/* Key results read first: the featured card gets more width and the largest number. */
.kpi-grid {display:grid;grid-template-columns:1.35fr repeat(4,minmax(0,1fr));gap:0;margin-bottom:24px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--panel)}
.kpi {min-width:0;padding:24px 16px;border-left:1px solid var(--border);position:relative;min-height:144px;display:flex;flex-direction:column}
.kpi:first-child {border-left:0}
.kpi.featured {background:var(--panel-alt)}
.kpi.featured:before {content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.kpi-top {display:flex;align-items:flex-start;justify-content:space-between;color:var(--muted);font-size:12px;min-height:20px;gap:8px;font-weight:500}
.kpi.featured .kpi-top {color:var(--text)}
.kpi-symbol {font-size:15px;color:var(--dim);line-height:1.2}
.kpi.featured .kpi-symbol {color:var(--accent)}
.kpi-number {display:flex;align-items:baseline;flex-wrap:wrap;column-gap:6px;row-gap:4px;font-family:var(--mono);font-size:clamp(24px,2vw,32px);font-weight:500;letter-spacing:-.8px;line-height:1.1;margin-top:auto;padding-top:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi.featured .kpi-number {color:var(--accent);font-size:clamp(28px,2.5vw,40px)}
.kpi-number .number-unit {font-family:inherit;font-size:12px;letter-spacing:0;color:var(--dim);font-weight:400}
.kpi.featured .kpi-number .number-unit {color:var(--muted)}
.kpi-description {font-size:12px;color:var(--dim);margin-top:8px;line-height:1.5}
.kpi.warning .kpi-number {color:var(--danger)}
.kpi.warning:before {content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--danger)}
.panel {border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:24px;overflow:hidden}
.panel-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 24px 16px}
.panel-heading .eyebrow {font-size:10px;margin-bottom:6px}
.panel-heading h2 {font-size:19px}
.unit {font-family:var(--mono);font-size:11px;color:var(--dim);white-space:nowrap;letter-spacing:.4px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px}
.chart-grid {display:grid;grid-template-columns:1.16fr 1fr;gap:24px}
.chart-grid .panel {min-width:0}
.legend {display:flex;gap:16px;padding:0 24px;margin:0 0 16px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.legend span {display:inline-flex;align-items:center;gap:8px}
.legend-dot {display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--dim)}
.legend-dot.cyan {background:var(--steel)}
.legend-dot.lime {background:var(--accent)}
.legend-dot.coral {background:var(--danger)}
.legend-dot.muted {background:var(--chart-capacity)}
.chart {width:100%;padding:0 16px 16px;min-height:224px}
.chart svg {width:100%;height:auto;display:block;max-height:320px}
.chart text {font-family:var(--mono);font-size:12px;fill:var(--dim);font-variant-numeric:tabular-nums}
.table-scroll {width:100%;min-width:0;max-width:100%;overflow:auto;scrollbar-color:#3d4858 var(--panel);scrollbar-width:thin}
table {width:100%;border-collapse:collapse;font-size:13px;text-align:right;white-space:nowrap;font-family:var(--mono);font-variant-numeric:tabular-nums}
th {color:var(--muted);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.2px;padding:12px 16px;background:var(--sunken);border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:sticky;top:0}
td {padding:12px 16px;border-bottom:1px solid var(--hairline);color:var(--text)}
td:first-child,th:first-child {text-align:left;padding-left:24px}
td:last-child,th:last-child {padding-right:24px}
tbody tr:last-child td {border-bottom:0}
tbody tr:hover {background:#151b25}
td.value-highlight {color:var(--accent)}
td.value-danger {color:var(--danger);font-weight:600}
td.value-cyan {color:var(--text)}
td.reason-cell {text-align:left;white-space:normal;min-width:260px;max-width:440px;line-height:1.6;font-family:var(--sans);color:var(--muted)}
.rule-cell {text-align:left;white-space:normal;min-width:176px;max-width:250px;line-height:1.6;font-family:var(--sans)}
.rule-cell small {display:block;font-family:var(--mono);font-size:10px;color:var(--dim);margin-top:4px}
.panel-footnote {padding:16px 24px;color:var(--dim);font-size:12px;border-top:1px solid var(--border);line-height:1.6;background:var(--sunken)}
.count-pill {display:inline-flex;align-items:center;justify-content:center;margin-left:8px;border:1px solid var(--border-strong);padding:2px 8px;min-width:24px;min-height:24px;border-radius:var(--radius-sm);font-family:var(--mono);font-size:12px;color:var(--text);vertical-align:middle;font-weight:500;font-variant-numeric:tabular-nums}
.compact-label {font-size:11px}
.compact-label select {height:36px;padding:4px 28px 4px 8px;font-size:12px;min-width:96px}
.panel-tools {display:flex;gap:8px;align-items:end}
.pagination:empty {display:none}
.pagination {display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:12px 24px;font-size:12px;color:var(--dim);font-family:var(--mono);font-variant-numeric:tabular-nums;border-top:1px solid var(--border)}
.good-state {padding:24px;display:flex;gap:12px;align-items:center;color:var(--text);font-size:14px}
.good-state span {display:flex;align-items:center;justify-content:center;height:28px;width:28px;border:1px solid #3d6a52;color:#7ec29a;border-radius:50%;flex-shrink:0}
.source-details summary,.json-details summary {cursor:pointer;font-size:13px;padding:16px 24px;color:var(--muted);transition:color .12s,background .12s}
.source-details summary:hover,.json-details summary:hover {color:var(--accent);background:var(--sunken)}
.source-details summary {display:flex;justify-content:space-between;gap:8px}
.source-details summary::marker {content:""}
.source-details summary>span {color:var(--accent);transition:transform .15s}
.source-details[open] summary>span {transform:rotate(45deg)}
.result-provenance {font-family:var(--mono);font-size:11px;color:var(--dim);padding:0 4px 8px;overflow-wrap:anywhere}
.empty-state {text-align:center;padding:56px 32px;background:var(--sunken);border:1px dashed #2d3746;border-radius:var(--radius);margin-bottom:24px}
.empty-state h2 {font-size:22px;letter-spacing:-.4px;margin-bottom:8px}
.empty-state p {font-size:13px;max-width:544px;margin:0 auto;line-height:1.7}
.empty-orbit {font-size:40px;color:var(--accent);margin-bottom:16px;line-height:1}
.section-heading {display:flex;align-items:center;justify-content:space-between;gap:24px;margin:24px 0}
.section-heading h2 {font-size:26px;letter-spacing:-.6px}
.section-heading p {font-size:13px;margin-top:8px;max-width:760px;line-height:1.7}
.general-settings {display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:16px;padding:24px}
.general-settings input[readonly] {color:var(--muted);background:#0a0e14;border-style:dashed}
.adapt-controls {display:flex;align-items:end;gap:16px;margin-top:16px}
.adapt-controls input {width:176px}
.adapt-changes {margin-top:16px;font-size:13px;color:var(--muted);line-height:1.7;max-width:100%;border:1px solid var(--border);border-radius:var(--radius)}
.view>.scenario-note {margin:0 0 24px}
.editable-table input {padding:6px 8px;font-size:12px;min-width:80px}
.editable-table input[type=number] {text-align:right}
.editable-table input[type=date] {min-width:136px}
.editable-table select {height:32px;padding:4px 24px 4px 8px;min-width:72px;font-size:12px}
.editable-table td {padding:8px}
.editable-table td:first-child,.editable-table th:first-child {padding-left:24px}
.editable-table th {padding:8px}
.table-sort {border:0;background:none;color:inherit;font:inherit;font-weight:600;padding:4px 0;cursor:pointer;text-align:inherit;white-space:nowrap}
.table-sort span {color:var(--accent);margin-left:4px}
.table-sort:hover {color:var(--accent)}
#orders-pagination {flex-wrap:wrap;gap:8px}
#orders-pagination>div {display:flex;gap:8px}
.precision-note {font-size:13px;line-height:1.7;color:var(--muted);margin:-8px 0 24px;padding-left:16px;border-left:2px solid var(--border-strong)}
.editable-table td.row-id {max-width:176px;white-space:normal;word-break:break-word;font-family:var(--mono);font-size:10px;color:var(--dim)}
.remove-row {border:1px solid transparent;background:none;font-size:18px;color:var(--dim);padding:4px 8px;min-width:32px;min-height:32px;border-radius:var(--radius-sm);line-height:1}
.remove-row:hover {color:var(--danger);border-color:var(--danger-line);background:var(--danger-wash)}
.editor-scroll-note {text-align:center;padding:16px;font-size:12px;color:var(--dim)}
.comparison-explainer {display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 0 24px}
.comparison-explainer>div {border-top:2px solid var(--border-strong);padding:16px 0}
.comparison-explainer span {font-family:var(--mono);font-size:12px;color:var(--accent);margin-right:12px}
.comparison-explainer strong {font-size:14px;font-weight:600}
.comparison-explainer p {font-size:13px;line-height:1.7;margin-top:8px}
.comparison-table {font-family:var(--sans)}
.comparison-table td:first-child {color:var(--muted)}
.comparison-table th {text-align:left;min-width:232px;white-space:normal;vertical-align:top}
.comparison-table th:first-child {min-width:184px}
.comparison-name {color:var(--text);font-size:14px;font-weight:600;margin-bottom:8px;overflow-wrap:anywhere}
.comparison-meta {display:flex;flex-direction:column;gap:8px;align-items:flex-start;line-height:1.5}
.comparison-table td {text-align:left;font-family:var(--mono);font-variant-numeric:tabular-nums}
.comparison-actions {display:flex;gap:8px;padding-top:12px}
.comparison-actions .button {font-size:11px}
.case-summary {padding:0 24px 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case-stat {border-left:1px solid var(--border);padding-left:16px}
.case-stat:first-child {border-left:0;padding-left:0}
.case-stat strong {display:block;font-family:var(--mono);font-size:22px;font-weight:500;color:var(--text);margin:4px 0;font-variant-numeric:tabular-nums}
.case-stat span {font-size:12px;color:var(--dim)}
.json-details {border-top:1px solid var(--border)}
pre {max-height:448px;overflow:auto;margin:0 24px 24px;font-family:var(--mono);font-size:12px;line-height:1.7;padding:16px;background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);white-space:pre-wrap;word-break:break-word}
.assumption-inputs {display:flex;gap:16px;padding:0 24px 24px}
.assumption-inputs label {max-width:304px;flex:1}
.notes-label {padding:0 24px 24px}
.panel-description {padding:0 24px 24px;font-size:13px;line-height:1.7}
.risk-toggle {display:flex;align-items:center;gap:8px;flex-direction:row;font-size:13px;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 12px;cursor:pointer}
.risk-toggle:hover {border-color:var(--accent-line);background:var(--accent-wash)}
.risk-toggle input {width:auto}
.risk-grid {border:0;margin:0;padding:0 24px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(224px,1fr));gap:16px}
.risk-grid label {min-width:0}
.risk-grid small {font-size:12px;line-height:1.5;color:var(--dim)}
.risk-grid:disabled {opacity:.5}
.defense-copy {padding:0 24px 24px;line-height:1.7;font-size:15px}
.defense-copy p+p {margin-top:16px}
.defense-copy strong {color:var(--accent);font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}
.defense-copy ul {margin:0;padding-left:24px}
.defense-copy li {margin:8px 0;color:var(--muted)}
.defense-actions {display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px 24px}
.defense-actions a {overflow-wrap:anywhere;white-space:normal;text-decoration:none;color:var(--text)}
.defense-actions a:hover {color:#fff}
.documents-status {flex-basis:100%;font-size:13px;color:var(--muted)}
.document-missing {font-size:12px;color:var(--accent);padding:8px 0;font-family:var(--mono)}
.json-details>label {padding:0 24px}
.code-editor {font-family:var(--mono);font-size:12px;line-height:1.6;white-space:pre}
.json-actions {padding:16px 24px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.json-actions span {font-size:12px;color:var(--accent)}
.notice,.error-box {padding:16px;margin:0 0 24px;border:1px solid var(--accent-line);border-left:2px solid var(--accent);border-radius:var(--radius);background:var(--accent-wash);font-size:13px;line-height:1.7;color:var(--accent)}
#notice {background:var(--panel-alt);border-color:var(--border);border-left-color:var(--steel);color:var(--muted)}
.error-box {background:var(--danger-wash);border-color:var(--danger-line);border-left-color:var(--danger);color:#ffb3a6;white-space:pre-wrap;overflow-wrap:anywhere;max-height:400px;overflow:auto;font-family:var(--mono);font-size:12px}
.toast {position:fixed;bottom:24px;right:24px;padding:16px;background:var(--panel-alt);color:var(--text);border:1px solid var(--border-strong);border-left:2px solid var(--accent);border-radius:var(--radius);box-shadow:0 8px 32px #00000080;font-size:13px;z-index:50;max-width:calc(100vw - 48px)}
footer {display:flex;align-items:center;justify-content:space-between;padding:24px 0;margin-top:32px;border-top:1px solid var(--border);font-family:var(--mono);font-size:10px;letter-spacing:.6px;color:var(--dim)}
.loading-indicator {animation:pulse 1.2s ease-in-out 3}
@keyframes pulse {50% {opacity:.35}}
.line-break {display:block;margin-top:4px}
/* Local overflow belongs to tables, never to the page. */
.app-shell>main,.workspace,.view,#result-content,.control-panel,.panel,.chart-grid,.kpi-grid {min-width:0;max-width:100%}
.controls-grid>*,.general-settings>*,.case-summary>*,.actions-bar>*,.panel-heading>*,.section-heading>*,.experiment-line,.assumption-inputs>*,.json-actions>* {min-width:0}
@media(min-width:1650px) {
  .app-shell {grid-template-columns:256px minmax(0,1fr)}
  .sidebar {padding-left:24px;padding-right:24px}
  .workspace {padding-left:40px;padding-right:40px}
  .nav-item.active:before {left:-25px}
}
@media(max-width:1250px) {
  .app-shell {grid-template-columns:208px minmax(0,1fr)}
  .sidebar {padding-left:12px;padding-right:12px}
  .workspace {padding:24px 24px 0}
  .topbar {padding:0 24px}
  .brand {font-size:11px;letter-spacing:1px;gap:8px}
  .brand small {font-size:8px;letter-spacing:.3px}
  .brand-mark {width:26px;height:26px}
  .nav-item {font-size:12px;gap:8px}
  .nav-item.active:before {left:-13px}
  .controls-grid {grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px}
  .controls-grid>.button {width:100%}
  .mission-hero {grid-template-columns:minmax(216px,.8fr) minmax(0,1.6fr)}
  .mission-brief {padding:24px 0 24px 16px}
  .mission-brief h2 {font-size:19px}
  .source-chip {font-size:10px;padding:4px 6px}
  .mission-map {padding-right:8px}
  .kpi {padding:16px}
  .kpi-top {font-size:11px;min-height:32px}
  .kpi-symbol {display:none}
  .kpi-number {font-size:24px}
  .kpi.featured .kpi-number {font-size:28px}
  .chart-grid {gap:16px}
  .panel-heading {padding:16px 16px 12px}
  .panel-heading h2 {font-size:18px}
  .legend {padding:0 16px;gap:12px;font-size:11px}
  .control-footer {align-items:flex-start;flex-wrap:wrap;gap:8px}
  .experiment-line {align-items:flex-start}
  .general-settings {grid-template-columns:1fr 1fr}
  .panel-tools {flex-wrap:wrap}
  .panel-heading>.tag {max-width:232px;white-space:normal}
}
@media(max-width:1250px) {
  .kpi-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
  .kpi:first-child {grid-column:span 2}
  .kpi:nth-child(3) {border-left:0}
  .kpi:nth-child(n+3) {border-top:1px solid var(--border)}
  .kpi-top {min-height:20px;font-size:12px}
  .kpi-number {font-size:28px}
  .kpi.featured .kpi-number {font-size:36px}
  .kpi {min-height:128px;padding:16px}
}
@media(max-width:980px) {
  .app-shell {grid-template-columns:minmax(0,1fr)}
  .sidebar {position:relative;height:auto;border-right:0;border-bottom:1px solid var(--border);padding:16px 24px;display:block}
  .brand {margin:0 0 16px;font-size:13px;gap:12px}
  .brand small {font-size:9px}
  .sidebar>.side-label,.side-scenario,.side-bottom {display:none}
  .sidebar nav {flex-direction:row;gap:8px}
  .nav-item {width:auto;flex:1;font-size:12px;padding:8px;justify-content:center}
  .nav-item.active:before {display:none}
  .nav-item.active {border-color:var(--accent-line);background:var(--accent-wash)}
  .topbar {height:48px}
  .workspace {padding-top:24px}
  .mission-hero {grid-template-columns:minmax(232px,.8fr) minmax(0,1.6fr)}
  .general-settings {grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}
  .actions-bar {flex-wrap:wrap}
}
@media(max-width:720px) {
  .sidebar {padding:16px}
  .brand {font-size:12px;margin:0 0 16px}
  .sidebar nav {gap:8px;display:grid;grid-template-columns:1fr 1fr}
  .nav-item {font-size:12px;justify-content:flex-start;padding:8px;min-height:44px;min-width:0}
  .nav-icon {font-size:16px}
  .topbar {padding:0 16px;font-size:9px}
  .top-meta {display:none}
  .workspace {padding:16px 16px 0}
  .page-heading {margin-bottom:24px}
  .heading-mark {display:none}
  h1 {font-size:30px;letter-spacing:-.8px}
  .subtitle {font-size:13px;line-height:1.6;max-width:336px}
  .eyebrow {font-size:10px;letter-spacing:.8px}
  .mission-hero {grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:16px}
  .mission-brief {padding:16px 16px 0}
  .mission-brief h2 {font-size:20px}
  .mission-label {font-size:11px}
  .mission-sources {max-width:none;margin:12px 0}
  .source-chip {font-size:11px;padding:4px 8px}
  .mission-map {padding:0 8px 16px;max-width:552px;width:100%;margin:auto}
  .mission-map figcaption {right:16px;bottom:8px;font-size:9px}
  .map-route-label {font-size:11px;letter-spacing:0}
  .map-label {font-size:17px}
  .map-caption {font-size:11px;letter-spacing:.3px}
  .controls-grid {padding:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .plan-control {grid-row:2;grid-column:1/-1}
  .controls-grid>#calculate {grid-column:1/-1;grid-row:3}
  select,input {min-height:44px}
  .button,.button.small,.button.primary,.compact-label select,.remove-row {min-height:44px}
  .remove-row {min-width:44px}
  .editable-table select {min-height:44px}
  .control-footer {padding:16px;display:block}
  .experiment-line {font-size:12px;gap:8px;flex-wrap:wrap}
  .calculation-state {display:block;margin-top:8px}
  .tag {white-space:normal}
  .actions-bar {display:block;margin:16px 0}
  .actions-bar>span {display:block;margin-bottom:8px}
  .action-buttons {gap:8px}
  .button.small {font-size:12px;padding:8px}
  .kpi-grid {grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}
  .kpi {min-height:120px;padding:16px}
  .kpi:first-child {grid-column:1/-1;min-height:112px}
  .kpi:first-child .kpi-number {font-size:34px;padding-top:8px}
  .kpi:nth-child(n+2) {border-top:1px solid var(--border)}
  .kpi:nth-child(even) {border-left:0}
  .kpi:nth-child(odd):not(:first-child) {border-left:1px solid var(--border)}
  .kpi-symbol {display:block}
  .kpi-top {font-size:11px}
  .kpi-number {font-size:clamp(24px,5.5vw,30px)}
  .chart-grid {grid-template-columns:1fr;gap:0}
  .panel {margin-bottom:16px}
  .chart {min-height:184px}
  .panel-heading {padding:16px 16px 12px;flex-wrap:wrap}
  .panel-heading h2 {font-size:18px}
  .panel-heading>.tag {max-width:100%;font-size:11px;white-space:normal}
  .panel-tools {justify-content:flex-start;gap:8px;max-width:100%}
  .panel-tools .compact-label {max-width:136px}
  .compact-label select {min-width:72px;max-width:144px}
  .panel-heading:has(.panel-tools) {align-items:flex-start}
  .scenario-note {padding:16px;gap:8px}
  .scenario-note p {font-size:12px}
  .section-heading {display:block;margin-top:24px}
  .section-heading>.button,.section-heading>.tag {margin-top:16px}
  .section-heading h2 {font-size:24px}
  .general-settings {grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:16px}
  .general-settings>label:first-child {grid-column:1/-1}
  .adapt-controls {flex-wrap:wrap}
  .adapt-controls input,.adapt-controls label {width:100%}
  .adapt-controls .button {white-space:normal;text-align:left}
  .comparison-explainer {grid-template-columns:1fr;gap:8px}
  .comparison-explainer>div {padding:12px 0}
  .comparison-explainer p {margin-top:4px}
  .case-summary {padding:0 16px 16px;gap:16px}
  .case-stat {padding-left:12px;min-width:0;overflow-wrap:anywhere}
  .case-stat strong {font-size:19px}
  .case-stat span {font-size:11px}
  .assumption-inputs {padding:0 16px 16px;gap:16px;flex-wrap:wrap}
  .notes-label {padding:0 16px 16px}
  .json-details summary {padding:16px}
  .panel-description {padding:0 16px 16px}
  .json-details>label {padding:0 16px}
  .json-actions {padding:16px;align-items:flex-start;flex-wrap:wrap}
  .json-actions span {font-size:12px}
  pre {margin:0 16px 16px;padding:12px}
  .panel-footnote {padding:12px 16px;font-size:12px}
  .pagination {padding:12px 16px}
  .defense-copy {padding:0 16px 16px;font-size:14px}
  .defense-actions {padding:16px}
  .risk-grid {padding:0 16px 16px}
  .empty-state {padding:40px 16px}
  .empty-state h2 {font-size:20px}
  .empty-state p {font-size:13px}
  footer {font-size:9px;gap:16px;align-items:flex-start}
  footer span:last-child {text-align:right}
}
@media(max-width:480px) {
  .controls-grid {grid-template-columns:minmax(0,1fr)}
  .plan-control,.controls-grid>#calculate {grid-row:auto;grid-column:auto}
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
