:root {
  --ink-ocean: #0b2738;
  --ink-deep: #061a27;
  --ink-muted: #5e7180;
  --signal-blue: #087ea4;
  --signal-blue-soft: #d9f0f6;
  --signal-amber: #c97912;
  --signal-amber-soft: #fff0d7;
  --signal-fault: #b83f3a;
  --signal-fault-soft: #fbe4e2;
  --signal-good: #16836b;
  --signal-good-soft: #dcefe9;
  --panel-fog: #edf3f5;
  --panel-white: #f9fbfc;
  --line-steel: #c7d3d8;
  --line-dark: #91a4ad;
  --font-display: "Bahnschrift SemiCondensed", "Arial Narrow", "Segoe UI", sans-serif;
  --font-body: "Aptos", "Segoe UI", sans-serif;
  --font-data: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
  --shadow-panel: 0 14px 38px rgba(11, 39, 56, 0.08);
}

* { box-sizing: border-box; }
html { color-scheme: light; background: var(--panel-fog); }
body {
  margin: 0;
  color: var(--ink-ocean);
  background:
    linear-gradient(rgba(11, 39, 56, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 39, 56, 0.035) 1px, transparent 1px),
    var(--panel-fog);
  background-size: 24px 24px;
  font-family: var(--font-body);
  min-height: 100vh;
}
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: 0.55; }
button, input, select, dialog { border-radius: 2px; }
:focus-visible { outline: 3px solid rgba(8, 126, 164, 0.35); outline-offset: 3px; }
[hidden] { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

.login-page {
  display: grid;
  place-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 75% 20%, rgba(8, 126, 164, 0.12), transparent 36%),
    linear-gradient(135deg, #e8f0f3 0%, #f7fafb 65%, #dbe8ed 100%);
}
.login-shell { width: min(100%, 980px); }
.login-instrument {
  position: relative;
  overflow: hidden;
  width: min(100%, 520px);
  margin-left: clamp(0px, 8vw, 140px);
  padding: clamp(34px, 7vw, 72px);
  background: rgba(249, 251, 252, 0.94);
  border: 1px solid var(--line-steel);
  border-top: 6px solid var(--ink-ocean);
  box-shadow: 26px 30px 0 rgba(11, 39, 56, 0.07), var(--shadow-panel);
}
.brand-kicker, .panel-index, .command-eyebrow {
  color: var(--ink-muted);
  font-family: var(--font-data);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.login-brand, .rail-brand {
  color: var(--ink-deep);
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--font-display);
  letter-spacing: 0.035em;
  text-decoration: none;
}
.login-brand span { font-size: clamp(2.6rem, 9vw, 4.8rem); line-height: 0.9; }
.login-brand strong { color: var(--signal-blue); font-size: 1rem; }
.login-instrument h1 {
  margin: 38px 0 10px;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 500;
  letter-spacing: -0.025em;
}
.login-copy { color: var(--ink-muted); line-height: 1.6; max-width: 38ch; }
.login-form { display: grid; gap: 12px; margin-top: 34px; }
.login-form label, .control-form label, .settings-grid label, .inline-create-form label, .filter-bar label {
  color: var(--ink-muted);
  display: grid;
  gap: 7px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.035em;
}
input, select {
  width: 100%;
  color: var(--ink-deep);
  background: white;
  border: 1px solid var(--line-dark);
  min-height: 42px;
  padding: 9px 11px;
}
input:focus, select:focus { border-color: var(--signal-blue); }
.password-field { display: flex; border: 1px solid var(--line-dark); background: white; }
.password-field input { border: 0; }
.password-field .text-button { margin: 4px; }
.primary-button, .secondary-button, .danger-button, .text-button {
  border: 1px solid transparent;
  font-weight: 750;
  min-height: 40px;
  padding: 9px 15px;
}
.primary-button { color: white; background: var(--ink-ocean); border-color: var(--ink-ocean); }
.primary-button:hover { background: var(--signal-blue); border-color: var(--signal-blue); }
.primary-button--compact { min-height: 36px; padding: 7px 12px; }
.secondary-button { color: var(--ink-ocean); background: transparent; border-color: var(--line-dark); }
.secondary-button:hover { background: var(--signal-blue-soft); border-color: var(--signal-blue); }
.danger-button { color: var(--signal-fault); background: var(--signal-fault-soft); border-color: #e2aaa6; }
.text-button { color: var(--signal-blue); background: transparent; padding-inline: 8px; }
.form-status { min-height: 1.3em; color: var(--signal-fault); font-size: 0.86rem; }
.login-footer {
  display: flex; align-items: center; gap: 9px;
  color: var(--ink-muted); border-top: 1px solid var(--line-steel);
  margin-top: 34px; padding-top: 16px; font-size: 0.75rem;
}
.status-light { width: 9px; height: 9px; display: inline-block; border: 2px solid currentColor; border-radius: 50%; }
.status-light--idle { color: var(--signal-amber); }
.status-light--good { color: var(--signal-good); background: currentColor; box-shadow: 0 0 0 4px rgba(22, 131, 107, 0.12); }
.status-light--fault { color: var(--signal-fault); background: currentColor; }
.sonar-orbit { position: absolute; width: 260px; height: 260px; right: -145px; top: -120px; }
.sonar-orbit span { position: absolute; inset: 0; border: 1px solid rgba(8, 126, 164, 0.25); border-radius: 50%; }
.sonar-orbit span:nth-child(2) { inset: 45px; }
.sonar-orbit span:nth-child(3) { inset: 90px; background: rgba(8, 126, 164, 0.08); }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 236px minmax(0, 1fr); }
.side-rail {
  position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column;
  color: #d8e6eb; background: var(--ink-deep);
  border-right: 1px solid #18394a; padding: 24px 16px;
}
.rail-brand { color: white; padding: 4px 10px 30px; }
.rail-brand span { font-size: 1.55rem; }
.rail-brand strong { color: #68c7df; font-size: 0.72rem; }
.rail-state { display: flex; align-items: center; gap: 10px; padding: 14px 10px 22px; border-top: 1px solid #1c3c4d; }
.rail-state span:last-child { display: grid; gap: 2px; }
.rail-state small { color: #7e9eac; font-family: var(--font-data); font-size: 0.62rem; text-transform: uppercase; }
.rail-state strong { font-size: 0.82rem; }
.rail-nav { display: grid; gap: 5px; }
.nav-item {
  display: grid; grid-template-columns: 31px 1fr; align-items: center; gap: 8px;
  width: 100%; color: #9eb5bf; background: transparent; border: 1px solid transparent;
  padding: 9px; text-align: left; font-size: 0.86rem;
}
.nav-item:hover { color: white; background: #0e2d3d; }
.nav-item.is-active { color: white; background: #12384a; border-color: #285468; }
.nav-glyph { color: #68c7df; font-family: var(--font-data); font-size: 0.64rem; letter-spacing: 0.08em; }
.rail-foot { display: grid; gap: 12px; margin-top: auto; padding: 18px 10px 0; border-top: 1px solid #1c3c4d; color: #7899a8; font-size: 0.68rem; word-break: break-word; }
.rail-foot .text-button { color: #9cd9e9; text-align: left; padding: 0; min-height: auto; }
.workbench { min-width: 0; }
.command-bar {
  position: sticky; z-index: 10; top: 0;
  min-height: 88px; display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 18px clamp(20px, 4vw, 54px);
  background: rgba(237, 243, 245, 0.94); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line-steel);
}
.command-bar h1 { margin: 1px 0 0; font: 500 1.55rem/1.1 var(--font-display); }
.command-eyebrow { margin: 0; }
.command-meta { display: flex; align-items: center; gap: 18px; color: var(--ink-muted); font: 0.68rem var(--font-data); }
.stream-state { color: var(--signal-amber); }
.stream-state.is-live { color: var(--signal-good); }
.mobile-nav-toggle { display: none; }
.global-notice { margin: 18px clamp(20px, 4vw, 54px) 0; padding: 12px 15px; background: var(--signal-amber-soft); border-left: 4px solid var(--signal-amber); }
.dashboard-main { padding: 28px clamp(20px, 4vw, 54px) 64px; }
.view { display: none; animation: view-enter 180ms ease-out; }
.view.is-visible { display: block; }
@keyframes view-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

/* --- Headline band: one hero figure, then the KPI row ------------------- */

.headline-band {
  display: grid;
  grid-template-columns:
    minmax(180px, 0.62fr) minmax(180px, 0.62fr) minmax(0, 2.76fr);
  gap: 22px;
  align-items: stretch;
}
.hero-figure {
  display: flex; flex-direction: column; justify-content: center;
  padding: 16px 18px;
  background: var(--ink-deep); color: #e4f0f4;
  border: 1px solid var(--ink-deep);
  box-shadow: var(--shadow-panel);
}
.hero-figure .figure-label { color: #8fb2c0; }
/* The money figure gets the accent so two adjacent dark blocks read as
   two different measures rather than one repeated. */
.hero-figure--money strong { color: #7fd8bd; }
/* Proportional figures on purpose: tabular-nums gives every digit the width
   of a zero, which reads loose at display sizes. Tabular is reserved for the
   card timings and table columns, where vertical alignment matters. */
.hero-figure strong {
  display: block; margin: 5px 0 6px;
  /* Smaller than a classic hero figure: the full solve count is printed in
     full rather than compacted, so the type has to leave room for it. */
  font: 500 clamp(1.7rem, 2.4vw, 2.3rem)/1 var(--font-display);
  color: #ffffff;
  letter-spacing: -0.01em;
}
.figure-label {
  margin: 0; color: var(--ink-muted);
  font: 0.68rem var(--font-data); letter-spacing: 0.1em; text-transform: uppercase;
}
.figure-delta { margin: 0; color: #9fc4d1; font-size: 0.82rem; }
.kpi-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line-steel); background: var(--panel-white); box-shadow: var(--shadow-panel); }
.stat-tile { min-width: 0; padding: 20px; border-right: 1px solid var(--line-steel); }
.stat-tile:last-child { border-right: 0; }
.stat-tile strong { display: block; margin: 10px 0 5px; font: 500 clamp(1.5rem, 2vw, 2.1rem)/1 var(--font-display); }
.stat-tile small { color: var(--ink-muted); display: block; line-height: 1.4; }

/* --- Panels ------------------------------------------------------------- */

.instrument-panel { background: var(--panel-white); border: 1px solid var(--line-steel); box-shadow: var(--shadow-panel); }
.instrument-panel + .instrument-panel, .headline-band + .instrument-panel { margin-top: 22px; }
.panel-heading, .section-heading {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
  padding: 18px 20px; border-bottom: 1px solid var(--line-steel);
}
.panel-heading h3, .section-heading h2, .section-heading h3 { margin: 2px 0 0; font: 500 1.35rem var(--font-display); }
.panel-index { margin: 0; }
.panel-hint { margin: 0; color: var(--ink-muted); font-size: 0.76rem; max-width: 44ch; text-align: right; }

/* --- Solver cards ------------------------------------------------------- */

.solver-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 1px;
  background: var(--line-steel);
  border-top: 0;
}
.solver-card { background: var(--panel-white); padding: 18px 20px 20px; display: grid; gap: 10px; align-content: start; }
.solver-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.solver-card h4 { margin: 0; font: 500 1.15rem var(--font-display); letter-spacing: 0.01em; }
.card-value { margin: 0; font: 500 1.9rem/1 var(--font-display); }
.card-value span { color: var(--ink-muted); font: 0.72rem var(--font-data); text-transform: uppercase; letter-spacing: 0.08em; margin-left: 6px; }
.card-delta { margin: 0; color: var(--ink-muted); font-size: 0.78rem; }
/* The rate chip pairs a glyph and a word with the colour. The signal palette's
   amber and fault sit below the colour-blind separation floor against each
   other, so hue is never the only channel that carries state here. */
.rate-chip {
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  border: 1px solid var(--line-steel); padding: 4px 8px;
  font: 0.72rem var(--font-data);
}
.rate-chip[data-state="good"] { color: var(--signal-good); background: var(--signal-good-soft); border-color: #9ecdbf; }
.rate-chip[data-state="warn"] { color: #7b4c08; background: var(--signal-amber-soft); border-color: #e2bb7d; }
.rate-chip[data-state="fault"] { color: var(--signal-fault); background: var(--signal-fault-soft); border-color: #e2aaa6; }
.rate-chip[data-state="idle"] { color: var(--ink-muted); background: #eef3f5; }
.chip-glyph { font-style: normal; font-weight: 700; }
.timing-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 2px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line-steel); }
.timing-row div { min-width: 0; }
.timing-row dt { color: var(--ink-muted); font: 0.62rem var(--font-data); letter-spacing: 0.08em; text-transform: uppercase; }
/* Tabular here: three figures side by side across eleven cards, and they must
   line up column-to-column to be scannable. */
.timing-row dd { margin: 3px 0 0; font: 0.95rem var(--font-data); font-variant-numeric: tabular-nums; }
/* Subordinate to the solve count on purpose. Same muted ink as the note; the
   figure itself gets weight but not size, so it reads as an annotation. */
.card-cost { margin: 0; color: var(--ink-muted); font-size: 0.72rem; }
.card-cost .cost-value { color: var(--ink-ocean); font-weight: 700; font-family: var(--font-data); }
.card-signals { margin: 0; color: var(--ink-muted); font: 0.7rem var(--font-data); line-height: 1.5; word-break: break-word; }

/* --- Stability ---------------------------------------------------------- */

.stability-panel .compact-readout--wide { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 24px; padding: 6px 20px 14px; }
.state-chip[data-state="good"] { color: var(--signal-good); background: var(--signal-good-soft); border-color: #9ecdbf; }
.state-chip[data-state="warn"] { color: #7b4c08; background: var(--signal-amber-soft); border-color: #e2bb7d; }
.state-chip[data-state="fault"] { color: var(--signal-fault); background: var(--signal-fault-soft); border-color: #e2aaa6; }
.state-chip[data-state="idle"] { color: var(--ink-muted); background: #eef3f5; border-color: var(--line-steel); }
.crash-list { display: grid; gap: 0; }
.crash-row { display: grid; grid-template-columns: 150px 110px minmax(0, 1fr); gap: 12px; padding: 9px 20px; border-top: 1px solid var(--line-steel); font-size: 0.76rem; }
.crash-row time { color: var(--ink-muted); font-family: var(--font-data); }
.crash-row .crash-source { color: var(--signal-fault); font-family: var(--font-data); }
.crash-row p { margin: 0; color: var(--ink-muted); word-break: break-word; }
.crash-empty { padding: 14px 20px; color: var(--ink-muted); font-size: 0.8rem; border-top: 1px solid var(--line-steel); margin: 0; }

/* --- Charts ------------------------------------------------------------- */

.sonar-figure { margin: 0; padding: 14px 18px 0; }
.sonar-figure figcaption { color: var(--ink-muted); font: 0.68rem var(--font-data); letter-spacing: 0.06em; text-transform: uppercase; }
.sonar-rail { height: 170px; padding: 8px 0 4px; }
.sonar-rail--short { height: 92px; }
.sonar-rail canvas { width: 100%; height: 100%; display: block; }
.chart-summary { margin: 0; padding: 12px 20px 16px; color: var(--ink-muted); font: 0.74rem var(--font-data); }
.overview-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr); gap: 22px; margin-top: 22px; align-items: start; }
.overview-grid .sonar-panel { grid-row: span 2; margin-top: 0; }
.overview-grid .instrument-panel { margin-top: 0; }
.resource-list { display: grid; gap: 20px; padding: 23px 20px 20px; }
.resource-row { display: grid; grid-template-columns: 1fr auto; gap: 8px 15px; }
.resource-row span { color: var(--ink-muted); font-size: 0.8rem; }
.resource-row strong { font: 0.78rem var(--font-data); }
.meter { grid-column: 1 / -1; height: 7px; background: #dce6e9; overflow: hidden; }
.meter i { display: block; width: 0; height: 100%; background: var(--signal-blue); transition: width 300ms ease; }
.meter--quiet i { background: var(--signal-good); }
.meter--amber i { background: var(--signal-amber); }
.fleet-glance .panel-heading > strong { color: var(--signal-good); font: 1.7rem var(--font-data); }
.browser-slot-map { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; padding: 20px; }
.browser-slot { border: 1px solid var(--line-steel); padding: 12px; background: #f2f7f8; }
.browser-slot span { color: var(--ink-muted); font: 0.62rem var(--font-data); }
.browser-slot strong { display: block; margin-top: 6px; font: 1.1rem var(--font-data); }
.browser-slot-map > p { margin: 0; color: var(--ink-muted); font-size: 0.82rem; }
.compact-readout { margin: 0; padding: 0 20px 18px; }
.compact-readout div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line-steel); }
.compact-readout dt { color: var(--ink-muted); }
.compact-readout dd { margin: 0; font-family: var(--font-data); font-variant-numeric: tabular-nums; text-align: right; }
.section-heading { padding: 0 0 18px; border-bottom: 2px solid var(--ink-ocean); }
.section-heading h2 { font-size: clamp(1.8rem, 4vw, 2.7rem); }
.section-heading--sub { margin-top: 36px; border-bottom-width: 1px; }
.filter-bar, .inline-create-form { display: flex; align-items: end; gap: 12px; margin: 20px 0; }
.filter-bar label, .inline-create-form label { flex: 1; }
.inline-create-form label span { font-weight: 400; }
.table-shell { overflow-x: auto; border: 1px solid var(--line-steel); background: var(--panel-white); }
table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
th { color: var(--ink-muted); background: #e3ecef; font: 0.64rem var(--font-data); letter-spacing: 0.08em; text-transform: uppercase; text-align: left; }
th, td { padding: 12px 14px; border-bottom: 1px solid var(--line-steel); vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #f0f7f9; }
td code, .state-chip { font-family: var(--font-data); }
.table-actions { display: flex; gap: 5px; justify-content: flex-end; }
.table-actions button { min-height: 30px; padding: 4px 8px; border: 1px solid var(--line-steel); background: white; font-size: 0.7rem; }
.result-good { color: var(--signal-good); }
.result-fault { color: var(--signal-fault); }
#load-more-solves { margin-top: 15px; }
.state-chip { display: inline-flex; align-items: center; gap: 6px; color: var(--signal-good); background: var(--signal-good-soft); border: 1px solid #9ecdbf; padding: 7px 10px; font-size: 0.72rem; text-transform: uppercase; }
.fleet-layout { display: grid; grid-template-columns: minmax(0, 640px) minmax(250px, 1fr); gap: 24px; margin-top: 24px; }
.control-form { display: grid; gap: 17px; padding: 22px; }
.capacity-equation { display: grid; grid-template-columns: 1fr auto 1fr auto 1.2fr; align-items: center; gap: 12px; padding: 17px; background: #e4eef1; border-left: 4px solid var(--signal-blue); }
.capacity-equation div { text-align: center; }
.capacity-equation span { display: block; color: var(--ink-muted); font-size: 0.68rem; }
.capacity-equation strong { font: 1.6rem var(--font-data); }
.capacity-equation b { color: var(--ink-muted); }
.capacity-result strong { color: var(--signal-blue); }
.inline-warning { color: #7b4c08; background: var(--signal-amber-soft); border: 1px solid #e2bb7d; padding: 11px; font-size: 0.8rem; }
.change-brief { border-left: 3px solid var(--line-dark); padding: 12px 0 12px 24px; }
.change-brief ol { padding-left: 20px; line-height: 1.65; }
.change-brief li::marker { color: var(--signal-blue); font-family: var(--font-data); }
.change-brief .panel-hint { text-align: left; margin-top: 14px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 20px; margin-top: 24px; max-width: 900px; }
.settings-grid button { align-self: end; }
.security-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 24px; }
.security-grid h3 { margin-top: 0; font: 500 1.25rem var(--font-display); }
.session-control { padding: 22px; }
.session-control p { color: var(--ink-muted); line-height: 1.55; }
.secret-dialog { width: min(760px, calc(100% - 32px)); max-height: calc(100vh - 48px); color: var(--ink-ocean); background: var(--panel-white); border: 1px solid var(--line-dark); padding: 0; box-shadow: 0 26px 90px rgba(6, 26, 39, 0.35); }
.secret-dialog::backdrop { background: rgba(6, 26, 39, 0.58); backdrop-filter: blur(3px); }
.dialog-bar { display: flex; justify-content: space-between; align-items: center; padding: 15px 18px; border-bottom: 1px solid var(--line-steel); }
.secret-dialog > p { color: var(--ink-muted); padding: 0 18px; }
.secret-dialog pre { margin: 16px 18px; padding: 15px; overflow: auto; background: var(--ink-deep); color: #cce8f1; border-left: 4px solid var(--signal-blue); white-space: pre-wrap; word-break: break-all; font: 0.75rem/1.55 var(--font-data); }
.secret-dialog > .primary-button { margin: 0 18px 18px; }

@media (max-width: 1400px) {
  .headline-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .headline-band .kpi-row { grid-column: 1 / -1; }
}

@media (max-width: 1180px) {
  .headline-band { grid-template-columns: 1fr; }
  .kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-tile:nth-child(2n) { border-right: 0; }
  .stat-tile:nth-child(-n+2) { border-bottom: 1px solid var(--line-steel); }
}

@media (max-width: 1050px) {
  .overview-grid { grid-template-columns: 1fr; }
  .overview-grid .sonar-panel { grid-row: auto; }
  .panel-hint { text-align: left; }
  .crash-row { grid-template-columns: 1fr; gap: 3px; }
}

@media (max-width: 760px) {
  .login-page { padding: 16px; }
  .login-instrument { margin: 0; padding: 32px 24px; box-shadow: 10px 12px 0 rgba(11, 39, 56, 0.07); }
  .app-shell { grid-template-columns: 1fr; }
  .side-rail {
    position: fixed; z-index: 30; left: 0; top: 0; width: min(84vw, 280px);
    transform: translateX(-105%); transition: transform 180ms ease;
  }
  .side-rail.is-open { transform: translateX(0); }
  .mobile-nav-toggle { display: inline-flex; border: 1px solid var(--line-dark); background: transparent; padding: 7px 10px; }
  .command-bar { min-height: 76px; padding: 14px 18px; }
  .command-meta { display: none; }
  .dashboard-main { padding: 20px 14px 50px; }
  .kpi-row { grid-template-columns: 1fr; }
  .stat-tile:nth-child(n) { border-right: 0; border-bottom: 1px solid var(--line-steel); }
  .stat-tile:last-child { border-bottom: 0; }
  .solver-grid { grid-template-columns: 1fr; }
  .sonar-rail { height: 140px; }
  .sonar-rail--short { height: 80px; }
  .filter-bar, .inline-create-form { align-items: stretch; flex-direction: column; }
  .fleet-layout, .settings-grid, .security-grid { grid-template-columns: 1fr; }
  .capacity-equation { grid-template-columns: 1fr auto 1fr; }
  .capacity-equation b:nth-of-type(2), .capacity-result { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}
