:root {
  color-scheme: light;
  --bg: #f4f5f7;
  --panel: #ffffff;
  --panel-soft: #f9fafb;
  --ink: #17202a;
  --muted: #667085;
  --line: #d7dce2;
  --red: #b43a34;
  --gold: #b7791f;
  --green: #2f7d55;
  --teal: #276f86;
  --violet: #6652a6;
  --blue: #2f5f9e;
  --focus: #1d4ed8;
  --focus-ring: 0 0 0 3px rgba(47, 95, 158, 0.26);
  --radius: 8px;
  --radius-tight: 6px;
  --surface-raised: #ffffff;
  --surface-subtle: #f8fafc;
  --shadow: 0 18px 45px rgba(22, 29, 43, 0.09);
  --shadow-soft: 0 10px 26px rgba(22, 29, 43, 0.07);
}

* {
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:focus,
a:focus,
input:focus,
select:focus,
textarea:focus,
summary:focus,
[role="tab"]:focus,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[role="tab"]:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
  box-shadow: var(--focus-ring);
}

button:hover {
  filter: brightness(0.985);
}

.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;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px clamp(18px, 4vw, 48px);
  background: #111827;
  color: #fff;
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: var(--shadow);
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.brand-mark {
  width: 82px;
  height: 82px;
  color: #fff;
  flex: 0 0 auto;
}

.brand-name {
  background: linear-gradient(180deg, #ffffff 8%, #d7dde5 48%, #8f9aa8 54%, #ffffff 94%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 1.18rem;
  font-weight: 900;
  letter-spacing: 0.035em;
  line-height: 1.1;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.35);
}

.topbar-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.dev-menu {
  color: #e7edf5;
}

.dev-menu summary {
  cursor: pointer;
  list-style: none;
  font-weight: 700;
}

.dev-menu summary::-webkit-details-marker {
  display: none;
}

.dev-menu-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  min-width: 160px;
}

h1,
h2,
h3,
p {
  margin: 0;
}

.app-title {
  color: #f8fafc;
  font-family: "Arial Narrow", "Segoe UI", Arial, sans-serif;
  font-size: clamp(0.7rem, 1.25vw, 0.88rem);
  font-weight: 800;
  letter-spacing: 0.075em;
  line-height: 1.25;
  max-width: 340px;
  text-transform: uppercase;
}

.support-links {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #d7e0eb;
  font-size: 0.72rem;
  white-space: nowrap;
}

.support-links a {
  color: #fff;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.feedback-nav-button,
.feedback-footer-button {
  border: 1px solid #f8fafc;
  border-radius: 6px;
  background: var(--red);
  color: #fff;
  font-weight: 850;
  padding: 8px 12px;
}

.feedback-nav-button:hover,
.feedback-footer-button:hover {
  background: #c43b34;
  filter: brightness(1.05);
}

.four-steps {
  gap: 10px;
}

.four-steps .task-card.compact {
  min-height: 0;
  padding: 12px;
  grid-template-columns: minmax(0, 1fr);
}

.four-steps .task-card.compact h3::before {
  content: counter(step) ". ";
  color: var(--red);
}

.four-steps { counter-reset: step; }
.four-steps .task-card.compact { counter-increment: step; }

.five-steps { counter-reset: step; }
.five-steps .task-card.compact { counter-increment: step; }
.five-steps .task-card.compact h3::before { content: counter(step) ". "; color: var(--red); }

.home-primary-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}

/* Squad Analysis is a single reading column; evidence remains available below the brief. */
.dashboard-grid {
  grid-template-columns: minmax(0, 1fr);
}

.analysis-panel {
  min-width: 0;
}

.meta-score-explanation {
  margin: 0 0 18px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: var(--surface-2);
}

.meta-score-explanation summary {
  cursor: pointer;
  font-weight: 700;
}

.meta-score-explanation p {
  max-width: 78ch;
  margin: 10px 0 0;
}

.meta-tourney-legacy-stage,
.meta-tourney-print-stage {
  margin-top: 16px;
}

.meta-field-actions {
  margin-bottom: 10px;
}

.meta-tourney-print-stage {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.home-primary-actions button {
  min-height: 48px;
  background: #fff;
  color: #111827;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 7px;
  padding: 10px 12px;
  font-weight: 800;
}

.active-squad-switcher {
  padding: 0 clamp(14px, 3vw, 38px);
  background: #1f2937;
  color: #f8fafc;
}

.active-squad-content,
.active-squad-empty {
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: 1500px;
  margin: 0 auto;
  padding: 10px 0;
}

.active-squad-content > div:first-child,
.active-squad-empty { min-width: 0; }
.active-squad-content > div:first-child { display: grid; gap: 2px; }
.active-squad-content .eyebrow { color: #cbd5e1; }
.active-squad-content strong { font-size: 0.96rem; overflow-wrap: anywhere; }
.active-squad-content span,
.active-squad-empty span { color: #cbd5e1; font-size: 0.8rem; }
.active-squad-status { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.active-squad-status span { border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: 4px 8px; }
.active-squad-content button,
.active-squad-empty button { flex: 0 0 auto; margin-left: auto; }

.squads-page,
.advanced-page { display: grid; gap: 16px; }
.data-refresh-status-panel { display: grid; gap: 14px; }
.data-refresh-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.data-refresh-source-list { display: grid; gap: 8px; margin-top: 10px; }
.data-refresh-source-row { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(8rem, 1fr) minmax(12rem, 2fr); gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.data-refresh-source-row small { color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 820px) { .data-refresh-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .data-refresh-source-row { grid-template-columns: 1fr; gap: 3px; } }
@media (max-width: 480px) { .data-refresh-summary-grid { grid-template-columns: 1fr; } }
.squad-library-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr);
  gap: 12px;
  padding: 14px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.squad-library-list { display: grid; gap: 12px; }
.squad-library-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}
.squad-library-card.is-active { border-color: var(--teal); box-shadow: 0 0 0 2px rgba(39,111,134,.14); }
.squad-library-card h2 { font-size: 1.05rem; }
.squad-library-card p { margin-top: 5px; color: var(--muted); }
.squad-library-card small { display: block; margin-top: 5px; color: var(--muted); }
.advanced-destination-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

@media (max-width: 980px) {
  .home-primary-actions,
  .advanced-destination-grid { grid-template-columns: 1fr; }
  .active-squad-content { align-items: flex-start; flex-wrap: wrap; }
  .active-squad-status { margin-left: 0; }
  .active-squad-content button { margin-left: auto; }
  .squad-library-card { align-items: flex-start; flex-direction: column; }
  .squad-library-card .button-row { width: 100%; }
}

@media (max-width: 680px) {
  .squad-library-toolbar { grid-template-columns: 1fr; }
  .active-squad-switcher { padding: 0 10px; }
  .active-squad-content,
  .active-squad-empty { align-items: stretch; flex-direction: column; }
  .active-squad-status { margin: 0; }
  .active-squad-content button,
  .active-squad-empty button { width: 100%; margin-left: 0; }
}

/* 0067: keep the distinct Simulator route answer-first without changing simulation behaviour. */
.simulator-context-panel {
  margin: 14px 0 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.simulator-context-panel .section-heading {
  align-items: flex-start;
}

.simulator-context-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.simulator-context-grid article {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
}

.simulator-context-grid strong {
  overflow-wrap: anywhere;
}

.simulator-context-grid small {
  color: var(--muted);
}

@media (max-width: 680px) {
  .simulator-context-panel {
    padding: 10px;
  }

  .simulator-context-panel .section-heading {
    display: grid;
    gap: 10px;
  }

  .simulator-context-panel .section-heading button {
    width: 100%;
  }

  .simulator-context-grid {
    grid-template-columns: 1fr;
  }
}

/* 0067 competitive player shell and answer-first workflow. */
.topbar {
  align-items: center;
  gap: 16px;
  padding: 14px clamp(16px, 3vw, 36px);
  flex-wrap: wrap;
}

/* 0070 keeps the first-use path compact without changing the analytical surface. */
#homeView {
  display: flex;
  flex-direction: column;
}

#homeView > * { order: 3; }

#homeView > .home-hero { order: 0; }
#homeView > .how-it-works-panel { order: 1; }
#homeView > .home-primary-paths { order: 2; }
#homeView > .home-import-panel,
#homeView > .home-section,
#homeView > .home-trust-strip,
#homeView > .view-back-top { order: 3; }

.home-path-card[role="button"] {
  cursor: pointer;
}

.home-path-card[role="button"]:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

.plain-text-export {
  margin-top: 16px;
}

.squad-loadout-warning {
  margin: 10px 0;
}

.quick-simulation-status {
  align-items: center;
}

.brand-mark {
  width: 62px;
  height: 62px;
}

.brand-name {
  font-size: 1.06rem;
}

.app-title {
  max-width: 300px;
  font-size: 0.72rem;
}

.topbar-nav {
  flex: 1 1 auto;
  justify-content: flex-end;
  gap: 10px;
}

.tabs {
  flex-wrap: nowrap;
  justify-content: flex-end;
}

.tabs .tab {
  padding: 8px 10px;
}

.feedback-nav-button {
  flex: 0 0 auto;
}

.support-links {
  flex: 0 0 auto;
}

.topbar > .topbar-nav > .support-links {
  display: none;
}

.home-primary-paths {
  margin: 0 0 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: var(--shadow-soft);
}

.home-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.home-path-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 164px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2);
}

.home-path-card h3 {
  font-size: 1.05rem;
}

.home-path-card p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.45;
}

.home-path-card button {
  align-self: end;
  margin-top: auto;
}

.three-steps {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-grid {
  display: flex;
  flex-direction: column;
}

.dashboard-grid > .analysis-panel {
  order: 1;
  width: 100%;
}

.dashboard-grid > .hangar-bay-content {
  order: 2;
  width: 100%;
}

.panel-heading-actions {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.panel-heading-actions .icon-button {
  min-width: 42px;
}

@media (max-width: 980px) {
  .topbar {
    align-items: flex-start;
  }

  .topbar-nav {
    justify-content: flex-start;
  }

  .tabs {
    flex-wrap: wrap;
  }

  .home-path-grid,
  .three-steps {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .topbar {
    padding: 14px 12px;
  }

  .topbar-nav {
    gap: 8px;
  }

  .support-links {
    width: 100%;
  }

  .home-primary-paths {
    padding: 12px;
  }

  .home-path-card {
    min-height: 0;
  }

  .panel-heading-actions {
    justify-content: flex-start;
  }
}

@media print {
  .brand-mark { color: #000; }
}

h1 {
  font-size: 1.1rem;
  letter-spacing: 0;
  line-height: 1.2;
}

h2 {
  font-size: 1.1rem;
  letter-spacing: 0;
}

h3 {
  font-size: 1rem;
  letter-spacing: 0;
}

.eyebrow {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.topbar .eyebrow {
  color: #b8c0cc;
}

.tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

.tab,
.export-box button,
.import-box button,
.goal-box button,
.report-panel button,
.home-actions button,
.meta-build-controls button,
.meta-build-card button,
.card button,
.ship-row button {
  border: 1px solid transparent;
  border-radius: 7px;
  background: #eef2f7;
  color: var(--ink);
  padding: 9px 12px;
  font-weight: 750;
  white-space: normal;
}

.tab {
  background: rgba(255, 255, 255, 0.08);
  color: #e7edf5;
  min-width: 0;
  overflow-wrap: anywhere;
}

.tab.is-active,
.export-box button,
.import-box button,
.goal-box button,
.report-panel button,
.home-actions button,
.meta-build-controls button,
.meta-build-card button,
.card button {
  background: #fff;
  color: #111827;
}

main {
  padding: 0 clamp(14px, 3vw, 38px) 42px;
}

.control-band {
  display: grid;
  grid-template-columns: 1.1fr 0.8fr 0.6fr minmax(220px, 1.6fr);
  gap: 12px;
  padding: 14px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.control-band + .dashboard-grid {
  margin-top: 18px;
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  padding: 18px;
  margin: 0 0 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-raised);
  box-shadow: var(--shadow-soft);
}

.home-hero-copy {
  display: grid;
  gap: 8px;
}

.home-hero h1 {
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.12;
}

.home-hero p {
  max-width: 760px;
  color: var(--muted);
  line-height: 1.5;
}

.home-hero-lead {
  font-size: 1rem;
}

.home-hero-support {
  font-size: 0.95rem;
}

.home-section {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
}

.builder-workflow-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.builder-requirement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.builder-candidate-list {
  display: grid;
  gap: 10px;
}

.builder-candidate-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.builder-candidate-card h3,
.builder-candidate-card .ship-title h3,
.ship-row .ship-title h3,
.meta-build-card .ship-title h3,
.public-signal-card .ship-title h3 {
  margin: 0 0 6px;
}

.builder-candidate-meta,
.ship-row .ship-title p,
.meta-build-card .ship-title p,
.public-signal-card strong + small {
  line-height: 1.45;
}

.builder-advanced-panel {
  margin-top: 4px;
}

.compact-journey {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.compact-journey-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.home-hero-actions {
  display: grid;
  gap: 10px;
  min-width: min(100%, 380px);
}

.home-utility-card {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.home-utility-card small {
  color: var(--muted);
  line-height: 1.45;
}

.home-hero-actions .import-report {
  margin: 0;
}

.home-task-grid,
.task-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.four-steps {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.task-card {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-raised);
  box-shadow: var(--shadow-soft);
}

.task-card.compact {
  padding: 14px;
}

.task-card p,
.task-card small {
  color: var(--muted);
  line-height: 1.45;
}

.task-card button {
  justify-self: start;
}

.three-steps {
  margin-top: 12px;
}

.feature-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.home-import-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-raised);
  box-shadow: var(--shadow-soft);
}

.home-import-panel textarea {
  min-height: 138px;
  resize: vertical;
}

.help-layout {
  display: grid;
  gap: 16px;
  width: min(100%, 1040px);
  margin: 0 auto;
}

.help-panel {
  display: grid;
  gap: 14px;
  padding: clamp(14px, 2vw, 24px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-raised);
  box-shadow: var(--shadow-soft);
}

.help-panel #helpContent {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}

.help-panel #helpContent .task-card {
  min-width: 0;
}

.help-panel #helpContent .task-card.compact {
  grid-template-columns: minmax(0, 1fr);
}

.help-technical-note {
  margin: 0;
  color: var(--muted);
}

.help-technical-note summary {
  cursor: pointer;
  font-weight: 750;
}

.help-technical-note p {
  overflow-wrap: anywhere;
}

.section-copy {
  margin-top: 6px;
  max-width: 760px;
  color: var(--muted);
  line-height: 1.45;
}

.home-start-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-start-tab {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel-soft);
  color: var(--ink);
  padding: 10px 14px;
  font-weight: 800;
}

.home-start-tab.is-active {
  background: #fff;
  border-color: var(--blue);
  color: var(--blue);
}

.home-start-panels {
  display: grid;
  gap: 12px;
}

.home-start-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.home-build-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.home-build-notes {
  grid-column: 1 / -1;
}

.home-build-notes textarea {
  min-height: 92px;
  resize: vertical;
}

.home-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.home-actions button:first-child {
  background: #111827;
  color: #fff;
}

.home-trust-strip {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.home-trust-summary {
  display: grid;
  gap: 6px;
}

.home-trust-summary p {
  color: var(--muted);
}

.trust-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel-soft);
  color: var(--ink);
  font-weight: 700;
}

.trust-pill.warn {
  border-color: rgba(183, 121, 31, 0.35);
  color: var(--gold);
}

.trust-pill.good {
  border-color: rgba(47, 125, 85, 0.35);
  color: var(--green);
}

.home-trust-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.insight-metrics {
  margin-bottom: 18px;
}

.workflow-hub,
.entry-paths-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.workflow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.workflow-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 190px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.workflow-card.is-active {
  border-color: rgba(47, 125, 85, 0.45);
  background: #f4fbf7;
}

.workflow-card p,
.workflow-card small {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.workflow-card button {
  align-self: end;
  justify-self: start;
  margin-top: auto;
  background: #111827;
  color: #fff;
}

.entry-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.entry-path-card {
  display: grid;
  gap: 8px;
  min-height: 138px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.entry-path-card.active {
  border-color: rgba(47, 125, 85, 0.45);
  background: #f4fbf7;
}

.entry-path-card strong {
  font-size: 0.96rem;
  line-height: 1.35;
}

.entry-path-card p {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.public-signals-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.data-gaps-panel {
  display: grid;
  gap: 12px;
  margin: 16px 0 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.data-gap-list {
  display: grid;
  gap: 8px;
}

.data-gap-item {
  display: grid;
  gap: 4px;
  padding: 10px;
  border-left: 4px solid var(--gold);
  border-radius: 6px;
  background: #fff8e8;
}

.data-gap-item.bad {
  border-color: var(--red);
  background: #fff0ef;
}

.data-gap-item.good {
  border-color: var(--green);
  background: #e6f4ed;
}

.data-gap-item strong {
  font-size: 0.92rem;
}

.data-gap-item small {
  color: var(--muted);
  line-height: 1.35;
}

.public-signal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

.public-signal-grid.clean-signals {
  grid-template-columns: minmax(260px, 1.25fr) repeat(2, minmax(220px, 1fr));
}

.public-signal-card {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.public-signal-card strong {
  font-size: 1rem;
  line-height: 1.25;
}

.public-signal-card p {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.compact-list,
.home-roster {
  display: grid;
  gap: 8px;
}

.compact-list > div,
.home-roster-row {
  display: grid;
  gap: 3px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.compact-list small,
.home-roster-row small {
  display: block;
  color: var(--muted);
  line-height: 1.35;
}

.meta-top-list {
  display: grid;
  gap: 6px;
  align-content: start;
}

.meta-secondary,
.meta-effect,
.meta-evidence {
  overflow-wrap: anywhere;
}

.meta-list-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: auto;
}

.meta-list-actions button {
  width: 100%;
  min-height: 42px;
  min-width: 0;
  padding: 9px 12px;
  font: inherit;
  line-height: 1.25;
  text-align: center;
}

.home-roster-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.home-roster-row div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.home-roster-row small {
  overflow-wrap: anywhere;
}

.home-roster-row span {
  font-weight: 900;
  color: var(--accent);
}

.source-note {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  color: var(--muted);
}

.source-note strong {
  color: var(--ink);
}

.journey-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.journey-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.journey-card {
  display: grid;
  gap: 8px;
  min-height: 132px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.journey-card strong {
  font-size: 1.25rem;
}

.journey-card p,
.verdict-note {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.verdict-note {
  display: block;
  margin-top: 6px;
  max-width: 760px;
}

.verdict-stack {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  padding: 10px 11px;
}

.view {
  display: none;
  margin-top: 0;
}

.view.is-active {
  display: block;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.dashboard-grid > *,
.split > *,
.report-grid > *,
.performance-layout > *,
.source-layout > * {
  min-width: 0;
}

.hangar-bay-content,
.analysis-panel,
.source-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}

.hangar-bay-content {
  order: 1;
  min-width: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.analysis-panel {
  order: 1;
  padding: 16px;
}

.command-centre-panel {
  display: grid;
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  box-shadow: var(--shadow);
}

.command-centre-panel small {
  color: var(--muted);
}

.builder-status-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.command-centre-answer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.command-answer {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.command-answer h3 {
  margin: 0;
}

.answer-emphasis {
  font-size: 1.2rem;
  font-weight: 800;
  color: #111827;
}

.builder-detail {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.builder-detail summary {
  cursor: pointer;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--blue);
}

.builder-detail-body {
  margin-top: 8px;
}

.builder-group {
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: var(--shadow-soft);
}

.builder-group summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px;
  cursor: pointer;
  list-style: none;
  border-radius: var(--radius);
}

.builder-group summary:hover {
  background: var(--surface-subtle);
}

.builder-group[open] summary {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: var(--surface-subtle);
}

.builder-group summary::-webkit-details-marker {
  display: none;
}

.builder-group-copy {
  display: grid;
  gap: 4px;
}

.builder-group-meta {
  display: grid;
  gap: 6px;
  justify-items: end;
}

.builder-group-preview {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.42;
  text-align: right;
}

.builder-group-action {
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 800;
  text-align: right;
}

.builder-group .open-text {
  display: none;
}

.builder-group[open] .closed-text {
  display: none;
}

.builder-group[open] .open-text {
  display: inline;
}

.builder-group-body {
  display: grid;
  gap: 12px;
  padding: 0 14px 14px;
  border-top: 1px solid var(--line);
}

.builder-group-panel {
  display: grid;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.builder-group-panel .section-heading {
  margin-bottom: 0;
}

.builder-detail-split,
.builder-detail-export-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.builder-detail-list,
.builder-issue-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.42;
}

.command-centre-next {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.command-centre-next h3 {
  margin: 0;
  font-size: 1.02rem;
}

.command-centre-next p {
  margin: 4px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.command-centre-next-actions {
  display: grid;
  gap: 10px;
  min-width: 240px;
}

.command-centre-next-actions > button {
  min-height: 40px;
}

.command-centre-actions.secondary {
  padding-top: 0;
  border-top: 0;
}

.command-centre-body {
  display: grid;
  gap: 10px;
}

.command-centre-body > div {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.command-centre-body h3 {
  margin: 0;
  font-size: 0.92rem;
}

.command-centre-body p,
.command-centre-body li {
  margin: 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.command-centre-body ul {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
}

.command-centre-footnote {
  display: grid;
  gap: 4px;
}

.command-centre-actions {
  padding-top: 4px;
  border-top: 1px solid var(--line);
}

.wrap {
  flex-wrap: wrap;
}

.priority-list,
.build-requirements {
  display: grid;
  gap: 8px;
}

.priority-item {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.priority-item strong {
  font-size: 0.92rem;
}

.priority-item small {
  color: var(--muted);
  line-height: 1.4;
}

.build-requirement {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.build-requirement input {
  margin-top: 3px;
}

.build-requirement strong {
  display: block;
  font-size: 0.9rem;
}

.build-requirement small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  line-height: 1.35;
}

.panel-heading,
.section-heading,
.ship-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.icon-button {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--muted);
  font-size: 1.2rem;
}

.score-strip,
.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

#squadMetaLine {
  display: block;
  margin-top: 4px;
}

.metric {
  min-height: 76px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  overflow-wrap: anywhere;
}

.metric strong {
  display: block;
  margin-top: 8px;
  font-size: 1.45rem;
}

.warnings {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.warning {
  border-left: 4px solid var(--gold);
  background: #fff8e8;
  color: #5d4315;
  padding: 9px 10px;
  border-radius: 6px;
  font-size: 0.88rem;
}

.warning.bad {
  border-color: var(--red);
  background: #fff0ef;
  color: #6e211d;
}

.squad-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.ship-row,
.card,
.agent-card,
.source-item,
.upgrade-group {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.ship-row {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.ship-row.is-added {
  border-color: rgba(47, 125, 85, 0.58);
  background: #f1fbf5;
}

.ship-row.is-added::before {
  content: "Added";
  justify-self: start;
  padding: 3px 8px;
  border-radius: 999px;
  background: #2f7d55;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 900;
}

.ship-row button {
  justify-self: start;
  background: #f1f4f8;
}

.ship-meta,
.tag-row,
.upgrade-pills,
.source-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

.pill,
.tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eef2f7;
  color: #344054;
  font-size: 0.78rem;
  font-weight: 750;
}

.tag.red {
  background: #ffe8e5;
  color: #8c2d27;
}

.tag.green {
  background: #e6f4ed;
  color: #1d6542;
}

.tag.blue {
  background: #e8f0ff;
  color: #244d85;
}

.tag.violet {
  background: #eeeafa;
  color: #514187;
}

.export-box,
.import-box,
.goal-box {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.export-box textarea,
.import-box textarea,
.goal-box textarea {
  min-height: 116px;
  resize: vertical;
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.82rem;
}

.import-box textarea,
.goal-box textarea {
  min-height: 92px;
}

.button-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.button-row.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.feedback-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
}

.feedback-actions button {
  flex: 1 1 13rem;
  min-height: 42px;
}

.completion-requirements {
  display: grid;
  gap: 5px;
  margin-top: 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.completion-requirements span {
  color: var(--muted);
  font-size: 0.84rem;
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  color: #111827;
  text-decoration: none;
  font-size: 0.9rem;
}

.button-row.sample button {
  background: var(--panel-soft);
  color: #344054;
}

.goal-checklist {
  display: grid;
  gap: 7px;
}

.goal-presets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.goal-presets button {
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  background: #fff;
  color: #344054;
  font-size: 0.8rem;
  text-align: left;
}

.import-report {
  display: grid;
  gap: 6px;
}

.report-line {
  padding: 8px 9px;
  border-radius: 6px;
  background: var(--panel-soft);
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.feedback-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.feedback-form label {
  display: grid;
  gap: 6px;
}

.feedback-form label span {
  font-size: 0.82rem;
  color: var(--muted);
}

.feedback-form input,
.feedback-form select,
.feedback-form textarea {
  width: 100%;
}

.feedback-form textarea {
  min-height: 92px;
  resize: vertical;
}

.feedback-span {
  grid-column: 1 / -1;
}

.checkbox-row {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: center;
  gap: 8px;
}

.checkbox-row input {
  width: auto;
}

.report-line.good {
  color: #1d6542;
  background: #e6f4ed;
}

.report-line.bad {
  color: #7d2d27;
  background: #fff0ef;
}

.boot-hint {
  flex: 1 0 100%;
  order: 3;
  width: 100%;
  max-width: none;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: #1f3b5c;
  color: #f8fafc;
}

.boot-hint.good {
  background: #1f4d67;
  color: #f8fafc;
}

.boot-hint.warn {
  background: #5a4522;
  color: #fff7e6;
}

.boot-hint.bad {
  background: #6b2b2b;
  color: #fff5f5;
}

.report-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.featured-squad-panel,
.home-meta-panel,
.meta-build-panel,
.matrix-filter-panel {
  display: grid;
  gap: 12px;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.featured-roster {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.featured-empty {
  display: grid;
  gap: 10px;
}

.builder-pilot-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.builder-pilot-card h3,
.builder-change-panel h3,
.builder-change-panel h4 {
  margin: 0;
}

.builder-pilot-summary {
  margin: 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.42;
}

.builder-upgrade-group {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.builder-upgrade-group small,
.builder-change-footer p {
  color: var(--muted);
  line-height: 1.42;
}

.builder-change-panel {
  display: grid;
  gap: 12px;
}

.builder-change-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.builder-change-footer {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.builder-side-empty {
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.completion-panel {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(47, 95, 158, 0.22);
  border-radius: 8px;
  background: #f6f9ff;
}

.completion-panel h3 {
  margin: 2px 0 0;
  font-size: 1rem;
}

.completion-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 8px;
}

.recommendation-summary {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: var(--radius-tight);
  background: var(--surface-subtle);
}

.recommendation-summary div {
  display: grid;
  gap: 2px;
}

.recommendation-summary dt {
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 850;
}

.recommendation-summary dd {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}

.featured-roster article,
.expectation-card,
.meta-build-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.featured-roster p,
.featured-roster small,
.expectation-card small,
.meta-build-card p,
.meta-build-card small {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.loadout-meter {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5eaf0;
}

.loadout-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--blue), var(--green));
}

.loadout-profile {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.loadout-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.loadout-summary .metric {
  margin: 0;
  min-height: 88px;
  background: #fff;
}

.loadout-list {
  display: grid;
  gap: 8px;
}

.loadout-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.loadout-line small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}

.loadout-line span {
  font-weight: 800;
  color: var(--blue);
}

.loadout-notes {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.4;
}

.nemesis-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(180, 58, 52, 0.28);
  border-radius: 8px;
  background: #fff7f5;
}

.nemesis-layout {
  display: grid;
  grid-template-columns: minmax(260px, 1.2fr) repeat(3, minmax(180px, 1fr));
  gap: 10px;
  align-items: start;
}

.nemesis-layout .report-card {
  min-height: 100%;
  background: #fff;
}

.nemesis-layout button {
  justify-self: start;
  background: #111827;
  color: #fff;
}

.performance-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.expectation-line {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto;
  gap: 6px 10px;
  align-items: start;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}

.expectation-line:first-of-type {
  border-top: 0;
}

.expectation-line small {
  grid-column: 1 / -1;
}

.meta-build-controls,
.matrix-filter-panel {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 10px;
}

.meta-build-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.meta-build-card.is-selected {
  border-color: rgba(47, 95, 158, 0.45);
  background: #f5f8ff;
}

.home-meta-panel {
  margin-bottom: 18px;
}

.home-meta-panel .meta-build-grid {
  margin-top: 0;
}

.meta-build-card button {
  justify-self: stretch;
  background: #111827;
  color: #fff;
}

.meta-build-card .button-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.mobile-meta-tabs {
  display: none;
}

[data-mobile-hidden="true"] {
  display: block;
}

.meta-extra-card[hidden] {
  display: none !important;
}

.view-back-top {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

.view-back-top button {
  min-width: 140px;
}

.mobile-back-to-top {
  display: none;
}

.matrix-filter-panel {
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) repeat(2, minmax(110px, 0.55fr));
  margin-top: 0;
}

.simulation-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.report-panel button {
  background: #111827;
  color: #fff;
}

.report-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.report-card {
  min-height: 146px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.report-card.good {
  border-color: rgba(47, 125, 85, 0.32);
}

.report-card.warn {
  border-color: rgba(180, 58, 52, 0.32);
}

.report-card.next {
  border-color: rgba(47, 95, 158, 0.32);
}

.report-card ul {
  display: grid;
  gap: 7px;
  margin: 10px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.42;
}

.report-text {
  width: 100%;
  min-height: 168px;
  max-height: 50vh;
  resize: vertical;
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.82rem;
  overflow: auto;
}

.simulation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.fly-local-build-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.fly-local-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}

.fly-local-card p {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.fly-local-card code {
  display: block;
  overflow-x: auto;
  padding: 7px 8px;
  border-radius: 6px;
  background: #fff;
  color: #344054;
  font-size: 0.78rem;
}

.simulation-heading-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.simulation-heading-actions label {
  min-width: 116px;
}

.simulation-heading-actions label span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.simulation-heading-actions select {
  min-height: 37px;
  padding: 8px 10px;
}

.simulation-heading-actions input {
  min-height: 37px;
  width: 130px;
  padding: 8px 10px;
}

.matrix-config-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.matrix-config-grid label {
  display: grid;
  gap: 7px;
}

.matrix-config-grid label span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.matrix-config-grid select {
  min-height: 142px;
}

.matrix-caveat {
  padding: 10px 12px;
  border: 1px solid rgba(180, 58, 52, 0.22);
  border-radius: 8px;
  background: #fff7f5;
  color: #7a2f2a;
  font-size: 0.88rem;
  line-height: 1.45;
}

.test-matrix-report {
  display: grid;
  gap: 12px;
}

.matrix-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.test-matrix-table {
  display: grid;
  gap: 4px;
  overflow-x: auto;
}

.test-matrix-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) repeat(5, minmax(132px, 1fr));
  gap: 4px;
  align-items: stretch;
  min-width: 860px;
}

.test-matrix-row > * {
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}

.test-matrix-row.header > * {
  background: #111827;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
}

.test-matrix-row span {
  display: grid;
  gap: 3px;
}

.test-matrix-row span.good {
  border-color: rgba(47, 125, 85, 0.4);
  background: #f3fbf7;
}

.test-matrix-row span.ok {
  border-color: rgba(47, 95, 158, 0.28);
  background: #f5f8ff;
}

.test-matrix-row span.bad {
  border-color: rgba(180, 58, 52, 0.36);
  background: #fff7f5;
}

.test-matrix-row small {
  color: var(--muted);
  font-size: 0.74rem;
}

.compact-report {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.simulation-card {
  display: grid;
  gap: 8px;
  min-height: 142px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.simulation-card p,
.simulation-card small {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.simulation-result-box {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.simulation-result-receipt {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-left: 4px solid var(--accent);
  background: var(--panel);
}

.feedback-form > label {
  margin-bottom: 4px;
}

.feedback-form > details {
  margin-top: 12px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.feedback-form > details > summary {
  cursor: pointer;
  font-weight: 800;
}

.feedback-advanced-fields {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.simulation-receipt-disclosure {
  margin-top: 12px;
}

.simulation-receipt-disclosure > summary {
  color: var(--blue);
  cursor: pointer;
  font-weight: 800;
}

.simulation-receipt-disclosure[open] .simulation-result-receipt {
  margin-top: 10px;
}
.simulation-receipt-heading,
.simulation-receipt-grid {
  display: grid;
  gap: .75rem;
}
.simulation-receipt-heading {
  grid-template-columns: 1fr auto;
  align-items: start;
}
.simulation-receipt-grid {
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  margin: .75rem 0;
}
.simulation-receipt-grid strong,
.simulation-receipt-grid span {
  display: block;
}
.simulation-receipt-grid span,
.simulation-result-receipt pre {
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.simulation-result-receipt pre {
  max-height: 22rem;
  overflow: auto;
  padding: .75rem;
  background: var(--surface);
  font-size: .8rem;
}
@media (max-width: 600px) {
  .simulation-receipt-heading { grid-template-columns: 1fr; }
  .simulation-result-receipt .button-row > * { width: 100%; }
}

.simulation-result-box label {
  display: grid;
  gap: 7px;
}

.simulation-result-box label span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.simulation-result-box textarea {
  min-height: 108px;
  resize: vertical;
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.82rem;
}

.simulation-evidence {
  display: grid;
  gap: 10px;
}

.simulation-evidence-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(47, 125, 85, 0.3);
  border-radius: 8px;
  background: #f3fbf7;
}

.simulation-evidence-card ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.4;
}

.compact-results {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: 16px;
  margin-top: 18px;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.card {
  overflow: hidden;
  min-height: 252px;
  display: grid;
  grid-template-rows: 92px 1fr;
}

.card-art {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, rgba(20, 31, 47, 0.92), rgba(87, 99, 110, 0.84)),
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(255, 255, 255, 0.12) 12px 13px);
  overflow: hidden;
  color: #fff;
}

.card-art span {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  font-weight: 900;
  letter-spacing: 0;
}

.card-body {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.recommendation-notes {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 17px;
  color: #344054;
  font-size: 0.82rem;
  line-height: 1.35;
}

.card-body p,
.ship-row p,
.upgrade-group p,
.source-item p,
.agent-card p {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.card button {
  justify-self: start;
  background: #111827;
  color: #fff;
}

.upgrade-list,
.source-list,
.agent-grid,
.roadmap-grid {
  display: grid;
  gap: 12px;
}

.upgrade-list {
  margin-top: 12px;
}

.upgrade-group {
  padding: 12px;
}

.upgrade-items {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.upgrade-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 8px;
  border-radius: 6px;
  background: var(--panel-soft);
  color: #344054;
  font-size: 0.86rem;
}

.upgrade-line span {
  display: grid;
  gap: 3px;
}

.upgrade-line small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 650;
  line-height: 1.3;
}

.trend-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
  margin-bottom: 18px;
}

.trend-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
}

.meta-source-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
}

.performance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.meta-source-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.performance-card {
  display: grid;
  gap: 8px;
  min-height: 138px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.performance-summary {
  background: var(--panel-soft);
}

.meta-bucket-card {
  align-content: start;
}

.meta-bucket-list {
  display: grid;
  gap: 8px;
}

.meta-bucket-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 10px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel-soft);
}

.meta-bucket-row small {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.scoring-coverage-card {
  grid-column: span 2;
}

.public-proxy-card {
  grid-column: span 2;
}

.dual-evidence-card {
  grid-column: span 2;
}

.both-workflows-card {
  grid-column: span 2;
}

.evidence-intake-card {
  grid-column: span 2;
}

.evidence-intake-pack {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}

.evidence-intake-pack label {
  display: grid;
  gap: 6px;
  color: #344054;
  font-size: 0.82rem;
  font-weight: 800;
}

.evidence-intake-text {
  min-height: 190px;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel-soft);
  color: #344054;
  font: 0.78rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.strategy-list {
  display: grid;
  gap: 6px;
}

.strategy-list p {
  margin: 0;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel-soft);
}

.evidence-checklist {
  display: grid;
  gap: 7px;
}

.evidence-check {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel-soft);
}

.evidence-check input {
  width: 16px;
  height: 16px;
  accent-color: #2f7d55;
}

.evidence-check span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.evidence-check strong {
  font-size: 0.86rem;
}

.evidence-check small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.3;
}

.evidence-check-pending input,
.evidence-check-proxy input {
  opacity: 0.55;
}

.lens-control {
  max-width: 260px;
}

.lens-control select {
  min-height: 38px;
  padding: 8px 10px;
}

.signal-list {
  display: grid;
  gap: 6px;
}

.signal-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid var(--line);
}

.signal-row:last-child {
  border-bottom: 0;
}

.signal-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.86rem;
  font-weight: 700;
}

.signal-row strong {
  min-width: 24px;
  text-align: right;
}

.signal-row small {
  white-space: nowrap;
}

.meta-source-card a {
  color: inherit;
  text-decoration: none;
}

.meta-source-card p,
.meta-source-card small,
.performance-card p,
.performance-card small,
.meta-note {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.trend-card {
  display: grid;
  gap: 10px;
  min-height: 146px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.trend-card.is-active {
  border-color: rgba(47, 125, 85, 0.45);
  background: #f4fbf7;
}

.trend-card p,
.trend-card small {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.4;
}

.trend-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.trend-metrics span {
  padding: 7px 8px;
  border-radius: 6px;
  background: var(--panel-soft);
  color: #344054;
  font-size: 0.78rem;
  font-weight: 750;
}

.matrix {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.matrix-row {
  --pilot-table-columns: minmax(170px, 1.25fr) minmax(140px, 0.9fr) minmax(130px, 1fr) repeat(6, minmax(58px, 0.35fr));
  display: grid;
  grid-template-columns: var(--pilot-table-columns);
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-size: 0.88rem;
}

.matrix-row.header {
  background: #252f3f;
  color: #fff;
  font-weight: 800;
}

.matrix-row > * {
  min-width: 0;
}

.matrix-row .matrix-label {
  display: none;
}

.matrix-value {
  min-width: 0;
  overflow-wrap: anywhere;
}

.agent-grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.agent-card,
.roadmap-card {
  padding: 16px;
  display: grid;
  gap: 12px;
}

.roadmap-grid {
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  margin-top: 12px;
}

.progress-panel {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.progress-panel h3 {
  margin: 2px 0 0;
  font-size: 1.05rem;
}

.progress-meter {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7ebf0;
}

.progress-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--green), var(--teal), var(--blue));
}

.progress-checklist,
.phase-checks {
  display: grid;
  gap: 8px;
}

.progress-checklist {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.progress-check {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-soft);
  color: #344054;
  font-size: 0.88rem;
}

.progress-check input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--green);
}

.progress-check small {
  padding: 3px 6px;
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.progress-check.is-complete {
  border-color: rgba(31, 166, 115, 0.35);
  background: #ecfdf5;
}

.progress-check.is-active {
  border-color: rgba(42, 98, 224, 0.35);
  background: #eff6ff;
}

.roadmap-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.roadmap-status-intro {
  grid-column: 1 / -1;
  background: #f8fafc;
}

.roadmap-status-intro h2,
.roadmap-card h2 {
  max-width: 34ch;
}

.status-note {
  margin: 0;
  padding: 10px 12px;
  border-left: 4px solid var(--blue);
  background: #fff;
  color: #344054;
}

.roadmap-status-list,
.status-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.roadmap-status-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.roadmap-status-row:last-child {
  border-bottom: 0;
}

.roadmap-status-row p {
  margin: 4px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.status-text {
  min-width: 112px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f8fafc;
  color: #344054;
  font-size: 0.76rem;
  font-weight: 800;
  text-align: center;
}

.status-list {
  padding-left: 20px;
}

.status-list li {
  padding-left: 4px;
  line-height: 1.5;
}

.agent-status {
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--green), var(--teal));
}

.source-layout {
  display: grid;
  grid-template-columns: minmax(260px, 360px) 1fr;
  gap: 16px;
}

.source-card {
  padding: 16px;
  align-self: start;
}

.data-update-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.source-note {
  color: var(--muted);
  line-height: 1.45;
}

.update-command-grid,
.update-status-grid,
.update-step-list {
  display: grid;
  gap: 8px;
}

.update-command-grid code {
  display: block;
  overflow-x: auto;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  color: #1f2937;
  font-size: 0.82rem;
  line-height: 1.35;
  white-space: nowrap;
}

.update-step-list {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.legal-page {
  display: grid;
  gap: 12px;
  max-width: 860px;
  margin: 0 auto;
  line-height: 1.55;
}

.legal-page h2 {
  margin-top: 6px;
}

.legal-page p {
  color: var(--muted);
}

.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.source-list {
  margin-top: 12px;
}

.source-item {
  padding: 12px;
}

a {
  color: var(--blue);
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px clamp(14px, 3vw, 38px) 28px;
  color: var(--muted);
  font-size: 0.86rem;
}

.site-footer nav {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.site-footer-copy {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.support-note {
  color: var(--muted);
  max-width: 760px;
}

.site-footer a {
  font-weight: 800;
  text-decoration: none;
}

.empty {
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: #fff;
}

.tourney-droid-panel,
.tourney-toolbar,
.tourney-card,
.tourney-hero,
.tourney-droid-report {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.tourney-droid-panel,
.tourney-toolbar,
.tourney-droid-report {
  padding: 16px;
}

.tourney-layout,
.tourney-grid,
.tourney-timing-list {
  display: grid;
  gap: 10px;
}

.tourney-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tourney-grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tourney-card,
.tourney-hero {
  padding: 12px;
}

.tourney-card h3,
.tourney-hero h2 {
  margin: 0 0 8px;
}

.tourney-card p,
.tourney-card small,
.tourney-hero small,
.tourney-timing-row p,
.tourney-note-fields span {
  color: var(--muted);
}

.tourney-body-text {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink);
}

.tourney-source-note {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.tourney-opponent-mode {
  margin: 0 0 8px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-tight);
  background: var(--surface-subtle);
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.35;
}

.tourney-opponent-mode strong {
  color: var(--ink);
}

.tourney-card ul,
.tourney-card ol,
.tourney-card li,
.tourney-timing-row p {
  line-height: 1.45;
}

.tourney-timing-row .tourney-body-text {
  margin-top: 4px;
}

.tourney-hero,
.tourney-timing-row,
.tourney-note-fields,
.tourney-evidence-row {
  display: flex;
  gap: 12px;
}

.tourney-hero,
.tourney-timing-row {
  align-items: flex-start;
  justify-content: space-between;
}

.tourney-timing-row {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.tourney-note-fields {
  flex-wrap: wrap;
  margin-top: 12px;
}

.tourney-print-page {
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
}

.tourney-print-brief {
  display: none;
}

.tournament-opponent-select,
.opponent-coach-preview,
.opponent-round-brief {
  margin-top: 12px;
}

.field-coaching-actions {
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-subtle);
}

.field-coaching-actions summary {
  cursor: pointer;
  font-weight: 800;
}

.field-coaching-actions[open] summary {
  margin-bottom: 8px;
}

.analysis-mode-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.analysis-mode-row button {
  display: grid;
  gap: 3px;
  min-height: 64px;
  padding: 10px;
  text-align: left;
}

.analysis-mode-row small {
  color: var(--muted);
  font-weight: 400;
  line-height: 1.35;
}

.field-stage {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-subtle);
}

.field-stage h3 {
  margin: 0 0 5px;
}

.field-stage p {
  margin: 0 0 8px;
  color: var(--muted);
}

.inline-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
}

.tournament-opponent-select label,
.tournament-opponent-select select {
  display: block;
  width: 100%;
}

.tournament-opponent-select label {
  margin-bottom: 5px;
  font-weight: 800;
}

.opponent-coach-preview,
.opponent-round-brief-sheet {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 14px;
}

.opponent-coach-preview h3,
.opponent-round-brief h2,
.opponent-round-brief h3 {
  margin-top: 0;
}

.opponent-round-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.opponent-round-grid section {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.opponent-round-grid p,
.opponent-round-grid li {
  line-height: 1.42;
}

.field-projection {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.field-projection .section-heading {
  margin-bottom: 10px;
}

.field-projection .section-heading small,
.field-projection .source-note,
.field-profile-meta,
.field-profile-limitations {
  color: var(--muted);
}

.field-top-three,
.field-standings,
.field-profile-list {
  margin-top: 14px;
}

.field-top-three-list,
.field-standings-list,
.field-profile-list {
  display: grid;
  gap: 10px;
}

.field-top-three-list > div,
.field-standing-row,
.field-competitor-profile {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-subtle);
}

.field-standing-row {
  display: grid;
  grid-template-columns: minmax(12rem, 1.5fr) minmax(8rem, 0.8fr) minmax(8rem, 0.8fr);
  gap: 6px 10px;
  align-items: start;
}

.field-standing-row small {
  grid-column: 1 / -1;
}

.field-standing-row.is-user {
  border-color: var(--blue);
  background: #f8fbff;
}

.field-top-three-list > div {
  display: grid;
  gap: 3px;
}

.field-top-three-list span,
.field-top-three-list small,
.field-standing-row span,
.field-standing-row small,
.field-profile-meta,
.field-profile-limitations,
.field-competitor-profile li {
  font-size: 0.86rem;
  line-height: 1.4;
}

.field-competitor-profile h4 {
  margin: 0 0 5px;
}

.field-profile-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 8px 0;
}

.field-profile-metrics span {
  display: block;
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font-size: 0.82rem;
}

.field-profile-missions {
  display: grid;
  gap: 4px;
  margin: 8px 0;
}

.field-profile-missions > div {
  display: grid;
  grid-template-columns: minmax(10rem, 1.3fr) repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 5px 0;
  border-top: 1px solid var(--line);
  font-size: 0.82rem;
}

.field-squad-list,
.field-difficulty-reasons {
  margin: 8px 0;
}

.field-difficulty-reasons {
  padding-left: 18px;
}

.tournament-field-competitive-print {
  display: none;
}

body.tournament-field-print .topbar,
body.tournament-field-print .site-footer,
body.tournament-field-print .tabs,
body.tournament-field-print #activeSquadSwitcher,
body.tournament-field-print .tourney-toolbar,
body.tournament-field-print #tourneyDroidReport,
body.tournament-field-print #opponentRoundBrief,
body.tournament-field-print #tourneyDroidText,
body.tournament-field-print .view-back-top {
  display: none !important;
}

body.tournament-field-print #tourneyView,
body.tournament-field-print .tourney-layout,
body.tournament-field-print .tournament-field-competitive-print {
  display: block !important;
}

body.tournament-field-print .tournament-field-competitive-print {
  color: #111;
  font-size: 9pt;
}

body.tournament-field-print .tournament-field-competitive-print h1 {
  margin: 0 0 4pt;
  font-size: 18pt;
}

body.tournament-field-print .tournament-field-competitive-print .field-projection {
  margin-top: 8pt;
  padding: 0;
  border: 0;
}

body.tournament-field-print .tournament-field-competitive-print .field-profile-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6pt;
}

body.tournament-field-print .tournament-field-competitive-print .field-competitor-profile,
body.tournament-field-print .tournament-field-competitive-print .field-top-three-list > div {
  padding: 6pt;
  border-color: #999;
  break-inside: avoid;
}

body.tournament-field-print .tournament-field-competitive-print .field-profile-missions,
body.tournament-field-print .tournament-field-competitive-print .field-profile-limitations,
body.tournament-field-print .tournament-field-competitive-print .field-profile-tactics,
body.tournament-field-print .tournament-field-competitive-print .field-profile-reminders {
  display: none;
}

@media print {
  body.tournament-field-print main {
    padding: 0;
    margin: 0;
  }
}

body.tourney-print .topbar,
body.tourney-print .site-footer,
body.tourney-print .tabs,
body.tourney-print #activeSquadSwitcher,
body.tourney-print #tourneyDroidStatus,
body.tourney-print .button-row,
body.tourney-print .tourney-toolbar small {
  display: none !important;
}

body.opponent-round-print .topbar,
body.opponent-round-print .site-footer,
body.opponent-round-print .tabs,
body.opponent-round-print #activeSquadSwitcher,
body.opponent-round-print .tourney-toolbar,
body.opponent-round-print #tourneyDroidReport,
body.opponent-round-print #tourneyDroidText,
body.opponent-round-print .view-back-top {
  display: none !important;
}

@media print {
  #activeSquadSwitcher {
    display: none !important;
  }

  @page {
    size: A4 portrait;
    margin: 8mm;
  }

  body {
    background: #fff;
  }

  .topbar,
  .site-footer,
  .tabs,
  .boot-hint,
  .control-band,
  .hangar-bay-content,
  .analysis-panel > article:not(#tourneyDroidPanel),
  #homeView,
  #builderView,
  #matrixView,
  #testmatrixView,
  #roadmapView,
  #agentsView,
  #sourcesView,
  #tourneyView .tourney-toolbar,
  #tourneyView .view-back-top,
  .tourney-toolbar .button-row,
  #tourneyDroidText {
    display: none !important;
  }

  #tourneyView {
    display: block !important;
  }

  #tourneyDroidReport {
    border: 0;
    padding: 0;
    background: #fff;
    box-shadow: none;
  }

  #tourneyDroidReport .tourney-screen-report {
    display: none !important;
  }

  #tourneyDroidReport .tourney-print-brief {
    display: block !important;
    color: #111827;
    font-size: 9.2pt;
    line-height: 1.16;
  }

  body.opponent-round-print #tourneyView,
  body.opponent-round-print #opponentRoundBrief,
  body.opponent-round-print .opponent-round-brief-sheet {
    display: block !important;
  }

  body.opponent-round-print .opponent-round-brief {
    border: 0;
    padding: 0;
    margin: 0;
  }

  body.opponent-round-print .opponent-round-brief-sheet {
    border: 0;
    padding: 0;
    font-size: 9.5pt;
    line-height: 1.2;
  }

  body.opponent-round-print .opponent-round-grid {
    gap: 3mm 5mm;
  }

  #tourneyDroidReport .tourney-print-sheet {
    display: grid;
    gap: 2.2mm;
  }

  #tourneyDroidReport .tourney-print-sheet-one {
    break-after: page;
    page-break-after: always;
  }

  #tourneyDroidReport .tourney-print-sheet-two {
    break-before: auto;
    page-break-before: auto;
  }

  #tourneyDroidReport .tourney-print-header {
    border-bottom: 1px solid #475569;
    padding-bottom: 2mm;
  }

  #tourneyDroidReport .tourney-print-header h1 {
    margin: 0;
    font-size: 14pt;
    line-height: 1.1;
  }

  #tourneyDroidReport .tourney-print-header p,
  #tourneyDroidReport .tourney-print-brief p {
    margin: 0;
  }

  #tourneyDroidReport .tourney-print-brief h2 {
    margin: 0 0 1.2mm;
    font-size: 11.5pt;
    line-height: 1.12;
  }

  #tourneyDroidReport .tourney-print-brief h3 {
    margin: 0 0 .6mm;
    font-size: 9.7pt;
    line-height: 1.12;
  }

  #tourneyDroidReport .tourney-print-brief ul {
    margin: 1mm 0 0;
    padding-left: 4.2mm;
  }

  #tourneyDroidReport .tourney-print-timing-group {
    display: grid;
    gap: .7mm;
    margin-bottom: 1.1mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  #tourneyDroidReport .tourney-print-timing {
    columns: 2;
    column-gap: 4mm;
  }

  #tourneyDroidReport .tourney-print-timing > h2 {
    column-span: all;
  }

  #tourneyDroidReport .tourney-print-missions > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8mm 2mm;
  }

  #tourneyDroidReport .tourney-print-mission,
  #tourneyDroidReport .tourney-print-row {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  #tourneyDroidReport .tourney-print-mission {
    border-top: 1px solid #cbd5e1;
    padding-top: .8mm;
  }

  #tourneyDroidReport .tourney-print-mission p + p {
    margin-top: .45mm;
  }

  #tourneyDroidReport .tourney-print-sheet-two > section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 4mm;
    gap: .8mm 3mm;
  }

  #tourneyDroidReport .tourney-print-sheet-two > section > h2 {
    grid-column: 1 / -1;
  }

  #tourneyDroidReport .tourney-print-row {
    border-top: 1px solid #cbd5e1;
    padding-top: .8mm;
  }

  #tourneyDroidReport .tourney-print-row h3 span {
    color: #475569;
    font-weight: 600;
  }

  #tourneyDroidReport .tourney-print-values {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 4mm !important;
  }

  #tourneyDroidReport .tourney-print-values h2 {
    grid-column: 1 / -1;
  }

  #tourneyDroidReport .tourney-print-value {
    display: grid;
    grid-template-columns: minmax(0, 74px) minmax(0, 1fr);
    gap: 1.2mm;
    border-top: 1px solid #cbd5e1;
    padding-top: 1.1mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  #tourneyDroidReport .tourney-print-limitations {
    border-left: 2px solid #b7791f;
    padding-left: 2mm;
    color: #475569;
    font-size: 8.7pt;
    line-height: 1.2;
  }

  main,
  .tourney-layout,
  .tourney-droid-report {
    padding: 0;
    margin: 0;
    gap: 8px;
  }

  .tourney-grid.two,
  .tourney-grid.three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tourney-card,
  .tourney-hero,
  .tourney-timing-row {
    padding: 9px;
  }

  .tourney-card h3,
  .tourney-hero h2 {
    margin-bottom: 5px;
  }

  .tourney-card ul {
    margin: 6px 0 0;
  }

  .tourney-source-note {
    font-size: 0.72rem;
  }
}

@media (max-width: 980px) {
  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .topbar > .boot-hint {
    flex: 0 0 auto;
  }

  .topbar-nav,
  .feature-panel {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .topbar-nav {
    flex-wrap: wrap;
  }

  .support-links {
    flex-basis: 100%;
    white-space: normal;
  }

  .tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: flex-start;
    width: 100%;
  }

  .tab {
    width: 100%;
  }

  .control-band,
  .dashboard-grid,
  .command-centre-answer-grid,
  .home-task-grid,
  .task-card-grid,
  .entry-path-grid,
  .workflow-grid,
  .home-hero,
  .public-signal-grid.clean-signals,
  .public-signal-grid,
  .journey-grid,
  .loadout-summary,
  .matrix-config-grid,
  .matrix-filter-panel,
  .matrix-summary-strip,
  .nemesis-layout,
  .performance-layout,
  .report-grid,
  .split,
  .builder-detail-split,
  .builder-detail-export-grid,
  .feedback-form,
  .source-layout,
  .tourney-grid.two,
  .tourney-grid.three {
    grid-template-columns: 1fr;
  }

  .home-actions {
    display: grid;
    grid-template-columns: 1fr;
    justify-content: flex-start;
    width: 100%;
  }

  .control-band label,
  .matrix-config-grid label,
  .matrix-filter-panel label {
    min-width: 0;
  }

  .matrix-row {
    min-width: 0;
  }

  .site-footer {
    grid-template-columns: 1fr;
  }

  .site-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 680px) {
  .topbar {
    position: static;
    gap: 14px;
    padding: 18px 14px;
  }

  .brand-mark {
    width: 60px;
    height: 60px;
  }

  main {
    padding: 12px 10px 28px;
  }

  .tab {
    flex: 1 1 calc(50% - 4px);
    text-align: center;
  }

  .home-hero {
    grid-template-columns: 1fr;
    margin-top: 12px;
  }

  .home-hero-support {
    display: none;
  }

  .field-profile-metrics,
  body.tournament-field-print .tournament-field-competitive-print .field-profile-list {
    grid-template-columns: 1fr;
  }

  .field-profile-missions > div {
    grid-template-columns: 1fr;
  }

  .analysis-mode-row {
    grid-template-columns: 1fr 1fr;
  }

  .home-section,
  .home-import-panel,
  .how-it-works-panel,
  .public-signals-panel,
  .meta-build-grid,
  .matrix,
  .analysis-panel,
  .hangar-bay-content {
    gap: 10px;
  }

  .home-hero-actions {
    min-width: 0;
  }

  .button-row,
  .button-row.three,
  .meta-build-controls,
  .command-centre-next,
  .builder-group summary,
  .home-build-grid,
  .builder-requirement-grid,
  .meta-build-card .button-row {
    grid-template-columns: 1fr;
  }

  .feedback-actions button,
  .view-back-top button {
    width: 100%;
    min-height: 44px;
  }

  .view-back-top {
    justify-content: stretch;
  }

  .mobile-back-to-top:not([hidden]) {
    display: inline-flex;
    position: fixed;
    right: 14px;
    bottom: 14px;
    z-index: 20;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    min-height: 46px;
    padding: 0;
    border-radius: 50%;
    box-shadow: var(--shadow);
  }

  .fly-local-build-panel,
  .compact-report,
  .matrix-config-grid,
  .matrix-summary-strip,
  .simulation-grid,
  .featured-roster,
  .meta-build-grid,
  .tourney-note-fields,
  .builder-detail-split,
  .builder-detail-export-grid {
    grid-template-columns: 1fr;
  }

  .home-hero,
  .feature-panel,
  .journey-panel,
  .hangar-bay-content,
  .analysis-panel,
  .featured-squad-panel,
  .home-meta-panel,
  .meta-build-panel,
  .matrix-filter-panel,
  .simulation-result-box,
  .report-card,
  .tourney-toolbar,
  .tourney-droid-report,
  .tourney-droid-panel,
  .tourney-card,
  .tourney-hero,
  .tourney-timing-row {
    padding: 10px;
  }

  .task-card,
  .task-card.compact,
  .home-start-panel,
  .public-signals-panel,
  .meta-build-card,
  .report-card,
  .builder-group-panel {
    padding: 10px;
  }

  .task-card p,
  .task-card small,
  .meta-build-card p,
  .meta-build-card small,
  .report-card p,
  .report-card small {
    line-height: 1.34;
  }

  .home-task-grid,
  .task-card-grid,
  .meta-build-grid,
  .public-signal-grid,
  .performance-layout {
    gap: 8px;
    margin-bottom: 12px;
  }

  .score-strip,
  .metric-grid,
  .compact {
    grid-template-columns: 1fr;
  }

  .trust-pill-row,
  .home-trust-actions {
    flex-direction: column;
  }

  .builder-group-meta {
    justify-items: start;
  }

  .builder-group-preview,
  .builder-group-action {
    text-align: left;
  }

  .matrix-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    min-height: 0;
  }

  .matrix-row.header {
    display: none;
  }

  .matrix-row > strong,
  .matrix-row > span {
    display: grid;
    gap: 2px;
    align-items: start;
  }

  .matrix-row .matrix-label {
    display: block;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
  }

  .matrix-value {
    display: block;
  }

  .meta-list-actions {
    grid-template-columns: 1fr;
  }

  .report-text {
    min-height: 132px;
    max-height: 42vh;
  }

  .builder-group-preview {
    text-align: left;
  }

  .mobile-meta-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
  }

  .mobile-meta-tab {
    min-height: 42px;
  }

  .mobile-meta-tab.is-active {
    background: #fff;
    border-color: var(--blue);
    color: var(--blue);
  }

  [data-mobile-hidden="true"] {
    display: none;
  }

  .matrix-row {
    min-width: 980px;
  }
}
