/* ============================================================
   Embarkation — Design system
   ARC Raiders aesthetic without IP. Industrial-Nordic palette.
   ============================================================ */

:root {
  /* Background layers */
  --bg-primary:    #1a1612;
  --bg-secondary:  #251f1a;
  --bg-tertiary:   #332821;
  --bg-elevated:   #3d2f25;

  /* Borders */
  --border-subtle: #4a3a2e;
  --border-strong: #5c4a3a;

  /* Text */
  --text-primary:   #e8dcc4;
  --text-secondary: #b8a787;
  --text-tertiary:  #6b5c47;
  --text-inverse:   #1a1612;

  /* Accents */
  --accent-rust:  #b85c38;
  --accent-amber: #f4a847;
  --accent-steel: #5a6772;

  /* Status */
  --status-good:     #7a9c5f;
  --status-warn:     #d4a546;
  --status-bad:      #b8453a;
  --status-stale:    #6b5c47;
  --status-placeholder: #4a3a2e;

  /* Typography */
  --font-display: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace;

  /* Spacing */
  --sidebar-w: 240px;
  --content-max: 1200px;
  --gap: 1.5rem;
  --tile-pad: 1.5rem;
  --radius: 4px;
}

/* ============================================================
   Reset & base
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-body);
  line-height: 1.6;
  min-height: 100vh;
}

a { color: var(--accent-amber); text-decoration: none; }
a:hover { text-decoration: underline; }

code, pre {
  font-family: var(--font-mono);
  font-size: 0.875em;
  background: var(--bg-tertiary);
  border-radius: var(--radius);
  padding: 0.1em 0.35em;
}

/* ============================================================
   Layout — sidebar + main
   ============================================================ */

.layout {
  display: flex;
  min-height: 100vh;
}

/* Sidebar */
.sidebar {
  width: var(--sidebar-w);
  min-height: 100vh;
  background: var(--bg-secondary);
  border-right: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  padding: 2rem 0;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}

.wordmark {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 0.9rem;
  letter-spacing: 0.15em;
  color: var(--accent-rust);
  padding: 0 1.5rem 1.75rem;
  border-bottom: 1px solid var(--border-subtle);
  display: block;
  text-decoration: none;
}
.wordmark:hover { text-decoration: none; color: var(--accent-amber); }

.nav-list {
  list-style: none;
  padding: 1.25rem 0;
  flex: 1;
}

.nav-item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.7rem 1.5rem;
  color: var(--text-secondary);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  text-decoration: none;
  border-left: 3px solid transparent;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.nav-item:hover {
  color: var(--text-primary);
  background: var(--bg-tertiary);
  text-decoration: none;
}

.nav-item.active {
  color: var(--text-primary);
  border-left-color: var(--accent-rust);
  background: var(--bg-tertiary);
}

.nav-icon {
  flex-shrink: 0;
  margin-top: 0.1rem;
  opacity: 0.7;
}

.sidebar-footer {
  padding: 1.25rem 1.5rem 0;
  border-top: 1px solid var(--border-subtle);
}

.sidebar-meta {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  font-family: var(--font-mono);
}

/* Main content */
.main-content {
  margin-left: var(--sidebar-w);
  flex: 1;
  padding: 2.5rem var(--gap);
  max-width: calc(var(--content-max) + var(--sidebar-w));
}

/* ============================================================
   Screen headers
   ============================================================ */

.screen-header {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--border-subtle);
}

.screen-title {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: -0.01em;
  margin-bottom: 0.5rem;
}

.screen-subtitle {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  max-width: 680px;
  line-height: 1.55;
}

/* ============================================================
   Tile grid
   ============================================================ */

.tile-grid {
  display: grid;
  gap: var(--gap);
  grid-template-columns: 1fr;
}

/* ============================================================
   Tile component — the primary display unit
   ============================================================ */

.tile {
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color 0.15s;
}

.tile:hover {
  border-color: var(--border-strong);
}

.tile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: var(--tile-pad) var(--tile-pad) 1rem;
  border-bottom: 1px solid var(--border-subtle);
}

.tile-header h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}

.tile-status {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  padding: 0.2rem 0.5rem;
  border-radius: 2px;
  white-space: nowrap;
  flex-shrink: 0;
}

.status-good        { background: rgba(122, 156, 95, 0.15);  color: var(--status-good); }
.status-warn        { background: rgba(212, 165, 70, 0.15);  color: var(--status-warn); }
.status-bad         { background: rgba(184, 69, 58, 0.15);   color: var(--status-bad); }
.status-stale       { background: rgba(107, 92, 71, 0.2);    color: var(--status-stale); }
.status-placeholder { background: rgba(74, 58, 46, 0.3);     color: var(--text-tertiary); }

.tile-body {
  padding: var(--tile-pad);
}

/* ============================================================
   WHY panel
   ============================================================ */

.tile-why {
  padding: 0.875rem var(--tile-pad);
  border-top: 1px solid var(--border-subtle);
  border-left: 3px solid var(--accent-rust);
  background: rgba(184, 92, 56, 0.05);
  display: flex;
  gap: 0.625rem;
  align-items: flex-start;
}

.why-label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--accent-amber);
  margin-top: 0.05rem;
  flex-shrink: 0;
}

.tile-why p {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* ============================================================
   Tile source footer
   ============================================================ */

.tile-source {
  padding: 0.625rem var(--tile-pad);
  border-top: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  gap: 0.875rem;
  flex-wrap: wrap;
}

.tile-source a {
  font-size: 0.8125rem;
  color: var(--accent-steel);
  font-family: var(--font-mono);
}
.tile-source a:hover { color: var(--accent-amber); }

.source-meta {
  font-size: 0.775rem;
  color: var(--text-tertiary);
  font-family: var(--font-mono);
}

.source-freshness-note {
  font-size: 0.775rem;
  color: var(--status-warn);
  font-family: var(--font-mono);
  font-weight: 500;
}

/* ============================================================
   Placeholder tile content
   ============================================================ */

.placeholder-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.hypothesis-tag {
  font-family: var(--font-mono);
  font-size: 0.775rem;
  color: var(--accent-amber);
  background: rgba(244, 168, 71, 0.08);
  border: 1px solid rgba(244, 168, 71, 0.2);
  border-radius: 2px;
  padding: 0.35rem 0.625rem;
  display: inline-block;
}

.placeholder-text {
  font-size: 0.9rem;
  color: var(--text-tertiary);
  line-height: 1.6;
}

/* ============================================================
   Economy map — closing statement tile
   ============================================================ */

.tile-closing {
  border-color: var(--accent-rust);
}

.closing-statement {
  font-size: 1rem;
  color: var(--text-primary);
  line-height: 1.7;
  font-style: italic;
  padding: 0.5rem 0;
}

/* ============================================================
   Admin
   ============================================================ */

.admin-body {
  background: var(--bg-primary);
  padding: 2rem var(--gap);
}

.admin-wrap {
  max-width: 1100px;
  margin: 0 auto;
}

.admin-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border-subtle);
}

.admin-badge {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: var(--text-tertiary);
}

.admin-section {
  margin-bottom: 2.5rem;
}

.admin-section-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-secondary);
  letter-spacing: 0.03em;
  margin-bottom: 1rem;
  text-transform: uppercase;
  font-size: 0.8125rem;
}

.admin-section-sub {
  font-weight: 400;
  color: var(--text-tertiary);
  text-transform: none;
  letter-spacing: 0;
}

.admin-empty {
  color: var(--text-tertiary);
  font-size: 0.9rem;
  font-style: italic;
}

/* Spend bar */
.spend-bar-wrap { display: flex; flex-direction: column; gap: 0.5rem; }

.spend-bar {
  height: 6px;
  background: var(--bg-tertiary);
  border-radius: 3px;
  overflow: hidden;
  max-width: 400px;
}

.spend-bar-fill {
  height: 100%;
  background: var(--accent-rust);
  border-radius: 3px;
  transition: width 0.3s;
}

.spend-meta {
  font-size: 0.8125rem;
  color: var(--text-tertiary);
  font-family: var(--font-mono);
}

/* Admin table */
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.admin-table th {
  text-align: left;
  padding: 0.5rem 0.75rem;
  color: var(--text-tertiary);
  font-size: 0.75rem;
  font-family: var(--font-mono);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border-subtle);
}

.admin-table td {
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  vertical-align: middle;
}

.admin-table tr:last-child td { border-bottom: none; }

.error-row td {
  background: rgba(184, 69, 58, 0.05);
  border-bottom: 1px solid var(--border-subtle);
}

.error-text {
  font-size: 0.8rem;
  color: var(--status-bad);
  font-family: var(--font-mono);
}

.admin-actions { display: flex; gap: 0.5rem; align-items: center; }

/* Buttons */
.btn {
  background: var(--accent-rust);
  color: var(--text-primary);
  border: none;
  padding: 0.35rem 0.875rem;
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  border-radius: var(--radius);
  cursor: pointer;
  transition: background 0.15s;
}

.btn:hover { background: var(--accent-amber); color: var(--text-inverse); }

.btn-sm { padding: 0.25rem 0.625rem; font-size: 0.775rem; }

.btn-muted {
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  border: 1px solid var(--border-subtle);
}
.btn-muted:hover { background: var(--bg-elevated); color: var(--text-primary); }

/* Error log */
.error-log {
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 1rem;
  max-height: 300px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.error-log-line {
  font-family: var(--font-mono);
  font-size: 0.775rem;
  color: var(--status-bad);
  line-height: 1.5;
}

/* ============================================================
   CCU live data tile (H1 trust screen)
   ============================================================ */

.ccu-display {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.ccu-hero {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ccu-number {
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: -0.02em;
  line-height: 1;
}

.ccu-unit {
  font-size: 1rem;
  color: var(--text-secondary);
  font-weight: 500;
}

.ccu-source-tag {
  font-size: 0.75rem;
  font-family: var(--font-mono);
  color: var(--text-tertiary);
  margin-top: 0.25rem;
}

.ccu-secondaries {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}

.ccu-stat {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.ccu-stat-label {
  font-size: 0.7rem;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}

.ccu-stat-value {
  font-size: 1.375rem;
  font-weight: 600;
  font-family: var(--font-display);
  color: var(--text-primary);
  letter-spacing: -0.01em;
}

.ccu-stat-sub {
  font-size: 0.75rem;
  color: var(--text-tertiary);
}

.ccu-context-note {
  font-size: 0.875rem;
  color: var(--text-tertiary);
  line-height: 1.55;
  border-left: 2px solid var(--border-subtle);
  padding-left: 0.75rem;
}

/* ============================================================
   Admin — Panel 1: Health grid
   ============================================================ */

.health-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1rem;
}

.health-card {
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.health-label {
  font-size: 0.7rem;
  font-family: var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}

.health-value {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  font-family: var(--font-display);
}

.health-ok   { color: var(--status-good); }
.health-warn { color: var(--status-warn); }

.health-sub {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  font-family: var(--font-mono);
}

.health-badges { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.25rem; }

/* ============================================================
   Admin — Panel 3: Settings form
   ============================================================ */

.settings-form {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  max-width: 480px;
  margin-bottom: 1.5rem;
}

.settings-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.settings-label {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  min-width: 240px;
  flex-shrink: 0;
}

.settings-select,
.settings-input {
  background: var(--bg-tertiary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 0.8125rem;
  padding: 0.35rem 0.625rem;
  flex: 1;
}

.settings-select-sm {
  flex: 0 0 auto;
  min-width: 100px;
}

.settings-select:focus,
.settings-input:focus {
  outline: 1px solid var(--accent-rust);
  border-color: var(--accent-rust);
}

.settings-actions { margin-top: 0.25rem; }

.test-connection-row {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

.test-connection-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.test-result {
  font-size: 0.8125rem;
  font-family: var(--font-mono);
  color: var(--text-tertiary);
}

.test-ok   { color: var(--status-good); }
.test-fail { color: var(--status-bad); }

/* ============================================================
   Admin — Panel 4: Incidents
   ============================================================ */

.incidents-filter {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
  flex-wrap: wrap;
}

.filter-label {
  font-size: 0.775rem;
  color: var(--text-tertiary);
  font-family: var(--font-mono);
}

.hidden { display: none !important; }

.detail-pre {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--text-secondary);
  background: var(--bg-primary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 0.75rem;
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-all;
}

.mono-sm {
  font-family: var(--font-mono);
  font-size: 0.775rem;
}

/* ============================================================
   Admin — Panel 5: Budget sparkline
   ============================================================ */

.budget-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

@media (max-width: 700px) {
  .budget-grid { grid-template-columns: 1fr; }
}

.budget-panel {
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 1.25rem;
}

.budget-panel-title {
  font-size: 0.8rem;
  font-family: var(--font-mono);
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 1rem;
}

.spark-chart {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 60px;
  margin-bottom: 0.25rem;
}

.spark-bar {
  flex: 1;
  background: var(--accent-rust);
  border-radius: 1px 1px 0 0;
  opacity: 0.7;
  min-height: 2px;
  transition: opacity 0.15s;
}

.spark-bar:hover { opacity: 1; }

.spark-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.7rem;
  font-family: var(--font-mono);
  color: var(--text-tertiary);
  margin-bottom: 0.75rem;
}

.budget-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  font-size: 0.8125rem;
  color: var(--text-secondary);
}

.budget-stats strong {
  color: var(--text-primary);
  font-weight: 600;
}

/* ============================================================
   Admin — Panel 6: Manual operations
   ============================================================ */

.ops-grid {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 480px;
}

.ops-btn {
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.75rem 1rem;
  height: auto;
}

.ops-btn-title {
  font-size: 0.875rem;
  font-weight: 600;
}

.ops-btn-sub {
  font-size: 0.775rem;
  opacity: 0.7;
  font-weight: 400;
}

/* ============================================================
   Responsive — mobile
   ============================================================ */

@media (max-width: 768px) {
  :root { --sidebar-w: 0px; }

  .layout { flex-direction: column; }

  .sidebar {
    position: static;
    width: 100%;
    min-height: auto;
    flex-direction: row;
    align-items: center;
    padding: 0.75rem 1rem;
    border-right: none;
    border-bottom: 1px solid var(--border-subtle);
    overflow-x: auto;
  }

  .wordmark {
    padding: 0 1rem 0 0;
    border-bottom: none;
    border-right: 1px solid var(--border-subtle);
    white-space: nowrap;
    flex-shrink: 0;
  }

  .nav-list {
    display: flex;
    padding: 0;
    gap: 0;
    flex: 1;
  }

  .nav-item {
    padding: 0.5rem 0.875rem;
    border-left: none;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    font-size: 0.8125rem;
  }

  .nav-item.active {
    border-left-color: transparent;
    border-bottom-color: var(--accent-rust);
  }

  .sidebar-footer { display: none; }

  .main-content {
    margin-left: 0;
    padding: 1.5rem 1rem;
  }

  .tile-header { flex-wrap: wrap; }
}

/* ── Admin login form ─────────────────────────────────────────── */
.admin-login-body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-primary);
  padding: 2rem 1rem;
}

.admin-login-card {
  width: 100%;
  max-width: 360px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.admin-login-card .wordmark {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
}

.admin-login-card .wordmark span {
  color: var(--accent-rust);
}

.admin-login-subtitle {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin-top: -1rem;
}

.admin-login-error {
  background: rgba(184, 92, 56, 0.12);
  border: 1px solid rgba(184, 92, 56, 0.35);
  border-radius: 4px;
  padding: 0.625rem 0.875rem;
  font-size: 0.8125rem;
  color: var(--accent-rust);
}

.admin-login-form {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.admin-login-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
  display: block;
}

.admin-login-input {
  width: 100%;
  background: var(--bg-primary);
  border: 1px solid var(--border-subtle);
  border-radius: 4px;
  padding: 0.625rem 0.875rem;
  font-size: 0.9375rem;
  color: var(--text-primary);
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 0.15s;
}

.admin-login-input:focus {
  outline: none;
  border-color: var(--accent-rust);
}

.admin-login-btn {
  width: 100%;
  background: var(--accent-rust);
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 0.75rem 1rem;
  font-size: 0.9375rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  margin-top: 0.25rem;
  transition: opacity 0.15s;
}

.admin-login-btn:hover {
  opacity: 0.88;
}

/* ── History controls & date selector ────────────────────────── */
.history-controls {
  margin-bottom: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.date-form {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  flex-wrap: wrap;
}

.date-label {
  font-size: 0.8125rem;
  color: var(--text-muted);
  font-weight: 500;
}

.date-input {
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: 4px;
  padding: 0.375rem 0.625rem;
  font-size: 0.875rem;
  color: var(--text-primary);
  font-family: inherit;
  color-scheme: dark;
  cursor: pointer;
}

.date-input:focus {
  outline: none;
  border-color: var(--accent-rust);
}

.date-btn {
  background: var(--bg-tertiary);
  border: 1px solid var(--border-subtle);
  border-radius: 4px;
  padding: 0.375rem 0.875rem;
  font-size: 0.8125rem;
  color: var(--text-secondary);
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.15s, color 0.15s;
}

.date-btn:hover {
  border-color: var(--accent-rust);
  color: var(--text-primary);
}

.date-clear {
  font-size: 0.8125rem;
  color: var(--text-muted);
  text-decoration: none;
  padding: 0.25rem 0.375rem;
}

.date-clear:hover { color: var(--accent-rust); }

.viewing-banner {
  background: rgba(212, 160, 23, 0.08);
  border: 1px solid rgba(212, 160, 23, 0.28);
  border-radius: 4px;
  padding: 0.5rem 0.875rem;
  font-size: 0.8125rem;
  color: var(--accent-amber);
}

.banner-reset {
  color: var(--accent-amber);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── Delta badge ──────────────────────────────────────────────── */
.delta-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.25rem 0.625rem;
  border-radius: 3px;
  margin-top: 0.375rem;
  letter-spacing: 0.01em;
}

.delta-up {
  background: rgba(94, 166, 94, 0.14);
  color: #6dbf6d;
}

.delta-down {
  background: rgba(184, 92, 56, 0.14);
  color: var(--accent-rust);
}

.delta-neutral {
  background: var(--bg-tertiary);
  color: var(--text-muted);
}

/* ── Signal history timeline ──────────────────────────────────── */
.signal-history {
  margin-top: 1.5rem;
  border-top: 1px solid var(--border-subtle);
  padding-top: 1.125rem;
}

.history-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.history-title {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0;
}

.history-count {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.history-legend {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.legend-pill {
  font-size: 0.6875rem;
  font-weight: 600;
  padding: 0.125rem 0.5rem;
  border-radius: 2px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.legend-pill.changed {
  background: rgba(212, 160, 23, 0.14);
  color: var(--accent-amber);
  border-left: 2px solid var(--accent-amber);
}

.legend-pill.unchanged {
  background: var(--bg-tertiary);
  color: var(--text-muted);
  border-left: 2px solid transparent;
}

.history-timeline {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.history-row {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.4rem 0.625rem;
  border-radius: 3px;
  border-left: 2px solid transparent;
  transition: background 0.1s;
}

.history-row.changed {
  background: rgba(212, 160, 23, 0.07);
  border-left-color: var(--accent-amber);
}

.history-row.unchanged {
  opacity: 0.45;
}

.history-value {
  font-family: 'Space Grotesk', monospace;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  min-width: 5.5rem;
}

.history-delta {
  font-size: 0.75rem;
  font-weight: 600;
  min-width: 4rem;
}

.history-delta.up   { color: #6dbf6d; }
.history-delta.down { color: var(--accent-rust); }
.history-delta.first { color: var(--text-muted); font-weight: 400; font-style: italic; }

.history-ts {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-left: auto;
  white-space: nowrap;
}

/* ============================================================
   State of Play tile
   ============================================================ */

.state-of-play-tile {
  margin-bottom: 1.5rem;
  border-left: 3px solid var(--accent-rust);
}

.sop-text {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--text-primary);
  margin-bottom: 0.75rem;
}

.sop-text:last-child { margin-bottom: 0; }

/* ============================================================
   Strategic Signal Health Table
   ============================================================ */

.signal-health-table {
  margin-bottom: 1.75rem;
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  overflow: hidden;
}

.signal-health-title {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  padding: 0.875rem 1.25rem 0.5rem;
}

.signal-health-grid {
  width: 100%;
  border-collapse: collapse;
}

.signal-health-grid th {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  padding: 0.5rem 1.25rem;
  text-align: left;
  border-bottom: 1px solid var(--border-subtle);
}

.signal-health-grid td {
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: top;
}

.signal-health-grid tr:last-child td { border-bottom: none; }

.sh-signal {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text-primary);
  white-space: nowrap;
  width: 22%;
}

.sh-status { font-size: 0.75rem; white-space: nowrap; }

.sh-context {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* ============================================================
   H1 narrative reframe
   ============================================================ */

.h1-narrative {
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border-subtle);
}

.h1-lead {
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-primary);
  line-height: 1.6;
  margin-bottom: 0.5rem;
}

.h1-subtext {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

.alignment-check {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.875rem;
  color: var(--text-secondary);
}

.ccu-hero-secondary .ccu-number {
  font-size: 2.25rem;
}

/* ============================================================
   H2 / H3 content tiles
   ============================================================ */

.h2-lead {
  font-size: 0.9375rem;
  color: var(--text-primary);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}

.event-timeline {
  margin-bottom: 1.25rem;
}

.event-timeline-title, .h2-signal-title {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-amber);
  margin-bottom: 0.5rem;
}

.event-timeline-note {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  font-style: italic;
  margin-bottom: 0.75rem;
}

.event-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.event-row {
  display: grid;
  grid-template-columns: 10rem 1fr;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  background: var(--bg-tertiary);
  border-radius: var(--radius);
  font-size: 0.8125rem;
}

.event-who {
  font-weight: 600;
  color: var(--text-primary);
  align-self: start;
}

.event-reason {
  color: var(--text-secondary);
  line-height: 1.5;
}

.h2-signal-block {
  margin-top: 1.125rem;
  padding-top: 1.125rem;
  border-top: 1px solid var(--border-subtle);
}

.h2-signal-block p {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

.h2-signal-block em {
  color: var(--text-tertiary);
}

/* ============================================================
   Steering Intelligence Panel
   ============================================================ */

.steering-panel {
  margin-top: 2.5rem;
  border-top: 1px solid var(--border-subtle);
  padding-top: 2rem;
}

.steering-header {
  margin-bottom: 1.5rem;
}

.steering-title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.35rem;
}

.steering-subtitle {
  font-size: 0.8125rem;
  color: var(--text-tertiary);
  font-style: italic;
}

/* Signal Summary Bar */
.signal-summary-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
  padding: 1.25rem;
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
}

.signal-summary-metric {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ssm-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--text-tertiary);
  text-transform: uppercase;
}

.ssm-value {
  font-family: var(--font-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--text-primary);
}

.ssm-value.ssm-pending {
  color: var(--text-tertiary);
  font-size: 1.1rem;
}

.ssm-sub {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

/* Signal Cards grid */
.steering-signals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.signal-card {
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.signal-card-title {
  font-family: var(--font-display);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
}

.signal-card-sources {
  font-size: 0.75rem;
  color: var(--text-tertiary);
}

.signal-observation {
  font-size: 0.875rem;
  color: var(--text-primary);
  line-height: 1.55;
}

.signal-tag {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--accent-amber);
  margin-right: 0.35rem;
}

.signal-implication,
.signal-lever {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  line-height: 1.55;
}

.signal-lever { color: var(--text-tertiary); }

.signal-why {
  margin-top: auto;
  padding: 0.75rem;
  border-left: 2px solid var(--accent-rust);
  background: rgba(184, 92, 56, 0.05);
  display: flex;
  gap: 0.5rem;
}

.signal-why p {
  font-size: 0.75rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

@media (max-width: 900px) {
  .signal-summary-bar  { grid-template-columns: 1fr 1fr; }
  .steering-signals    { grid-template-columns: 1fr; }
}

/* ============================================================
   Handoff 2.1b — Executive brief layout
   ============================================================ */

:root {
  --text-muted: #7a6a5a;
}

.page-header { margin-bottom: 2rem; }
.page-title  { font-family: var(--font-display); font-size: 1.75rem; font-weight: 700; color: var(--text-primary); margin-bottom: 0.25rem; }
.page-subtitle { color: var(--text-secondary); font-size: 1rem; margin: 0.25rem 0; }
.page-note   { color: var(--text-muted); font-size: 0.8rem; font-style: italic; margin-top: 0.5rem; }

/* State of Play */
.state-of-play { margin-bottom: 1.5rem; }
.sop-blocks { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 0; }
.sop-block  { padding: 1rem; background: var(--bg-tertiary); border-radius: 6px; }
.sop-block-label { display: block; font-size: 0.7rem; text-transform: uppercase;
                   letter-spacing: 0.08em; color: var(--accent-amber); margin-bottom: 0.5rem; }
.sop-block p { color: var(--text-secondary); font-size: 0.875rem; line-height: 1.6; margin: 0; }

/* 4 Signal cards */
.signal-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.signal-card-label { display: block; font-size: 0.7rem; text-transform: uppercase;
                     letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: 0.5rem; }
.signal-card-value { font-family: var(--font-display); font-size: 1.4rem;
                     font-weight: 600; color: var(--text-primary); margin-bottom: 0.4rem; line-height: 1.2; }
.signal-card-subvalue { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 0.4rem; }
.signal-card-subtext  { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; margin: 0; }

/* Strategic Read */
.strategic-read { margin-bottom: 1.5rem; border-left: 3px solid var(--accent-rust); }
.strategic-read-body { color: var(--text-secondary); font-size: 0.95rem; line-height: 1.75; margin: 0; }

/* Section divider */
.section-divider { display: flex; align-items: center; gap: 1rem; margin: 2rem 0 1.5rem; }
.section-divider::before,
.section-divider::after { content: ''; flex: 1; height: 1px; background: var(--border-subtle); }
.section-divider span { font-size: 0.7rem; text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--text-muted); white-space: nowrap; }

/* Tile date badge (header right-side) */
.tile-date { font-size: 0.75rem; color: var(--text-muted); }

/* Chart canvas */
.chart-canvas { width: 100%; height: 120px; display: block; margin-top: 1rem; }

/* What this is / is not */
.what-this-is { margin-top: 2rem; }
.what-this-is .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 0; }
.what-this-is .two-col h3 { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em;
                            color: var(--text-muted); margin-bottom: 0.75rem; }
.what-this-is ul { list-style: none; padding: 0; margin: 0; }
.what-this-is ul li { font-size: 0.85rem; color: var(--text-secondary);
                      padding: 0.3rem 0; border-bottom: 1px solid var(--border-subtle); }
.what-this-is ul li:last-child { border-bottom: none; }

@media (max-width: 640px) {
  .sop-blocks,
  .signal-cards,
  .what-this-is .two-col { grid-template-columns: 1fr; }
}

/* ============================================================
   Handoff 2.1c — Signal Room
   ============================================================ */

:root {
  --conf-high:        #6b8c5a;
  --conf-med:         #b89638;
  --conf-low:         #7a6a5a;
  --status-improving: #6b8c5a;
  --status-weakening: #b85c38;
  --status-stable:    #7a6a5a;
}

/* Today's Read */
.todays-read       { padding: 0.875rem 1.25rem; background: var(--bg-secondary);
                     border: 1px solid var(--border-subtle); border-left: 3px solid var(--accent-amber);
                     border-radius: var(--radius); margin-bottom: 1.5rem;
                     font-size: 0.9rem; color: var(--text-secondary); line-height: 1.6; }
.todays-read-label { display: block; font-size: 0.65rem; text-transform: uppercase;
                     letter-spacing: 0.1em; color: var(--accent-amber); font-weight: 600; margin-bottom: 0.25rem; }

/* Signal Room 2×2 grid */
.sr-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-bottom: 2rem; }

/* Signal Room card */
.sr-card        { background: var(--bg-secondary); border: 1px solid var(--border-subtle);
                  border-radius: var(--radius); display: flex; flex-direction: column; }
.sr-card-header { padding: 0.875rem 1.25rem 0.75rem; border-bottom: 1px solid var(--border-subtle);
                  display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; }
.sr-card-name   { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.1em;
                  color: var(--text-muted); font-weight: 600; flex-shrink: 0; }
.sr-card-status { font-family: var(--font-display); font-size: 0.85rem; font-weight: 600; text-align: right; }
.status-improving    { color: var(--status-improving); }
.status-weakening    { color: var(--status-weakening); }
.status-stable       { color: var(--status-stable); }
.status-insufficient { color: var(--text-muted); font-weight: 400; font-style: italic; }

/* Card body */
.sr-card-body    { padding: 1rem 1.25rem; flex: 1; display: flex; flex-direction: column; gap: 0.75rem; }
.sr-current      { display: flex; flex-direction: column; gap: 0.15rem; }
.sr-current-label { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); }
.sr-current-value { font-family: var(--font-display); font-size: 2rem; font-weight: 700;
                    color: var(--text-primary); line-height: 1.1; }
.sr-sub          { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.4; }
.sr-submetrics   { display: flex; flex-direction: column; gap: 0.2rem; }
.sr-conf         { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-top: auto; }
.sr-conf-explainer { font-size: 0.75rem; color: var(--text-muted); }

/* Card footer */
.sr-card-footer  { padding: 0.875rem 1.25rem; border-top: 1px solid var(--border-subtle);
                   display: flex; flex-direction: column; gap: 0.75rem; }
.sr-why-label, .sr-action-label {
  display: block; font-size: 0.6rem; text-transform: uppercase;
  letter-spacing: 0.1em; font-weight: 600; margin-bottom: 0.2rem; }
.sr-why-label    { color: var(--accent-amber); }
.sr-action-label { color: var(--accent-rust); }
.sr-why          { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.55; margin: 0; }
.sr-action       { font-size: 0.8rem; color: var(--text-primary); line-height: 1.55; margin: 0; }

/* Confidence badges */
.conf-badge { display: inline-flex; align-items: center; font-size: 0.65rem; font-weight: 600;
              text-transform: uppercase; letter-spacing: 0.07em; padding: 0.2rem 0.45rem; border-radius: 3px; }
.conf-high  { background: rgba(107, 140, 90, 0.15); color: var(--conf-high); }
.conf-med   { background: rgba(184, 150, 56, 0.15); color: var(--conf-med); }
.conf-low   { background: rgba(122, 106, 90, 0.15); color: var(--conf-low); }

/* Where to Spend Effort */
.effort-section { margin: 0 0 2rem; }
.effort-title   { font-family: var(--font-display); font-size: 1rem; font-weight: 600;
                  color: var(--text-primary); margin-bottom: 0.75rem; }
.effort-list    { list-style: none; padding: 0; margin: 0;
                  border: 1px solid var(--border-subtle); border-radius: var(--radius);
                  background: var(--bg-secondary); }
.effort-item    { display: flex; gap: 1rem; align-items: flex-start; padding: 0.875rem 1.25rem;
                  border-bottom: 1px solid var(--border-subtle); }
.effort-item:last-child { border-bottom: none; }
.effort-rank    { font-family: var(--font-display); font-size: 1.1rem; font-weight: 700;
                  color: var(--text-muted); min-width: 1.25rem; padding-top: 0.1rem; }
.effort-content { flex: 1; display: flex; flex-direction: column; gap: 0.3rem; }
.effort-header  { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.effort-name    { font-size: 0.9rem; font-weight: 600; color: var(--text-primary); }
.effort-note    { font-size: 0.7rem; color: var(--text-muted); font-style: italic; }
.effort-link    { color: var(--accent-steel); text-decoration: none; }
.effort-link:hover { color: var(--accent-amber); }
.effort-meta    { font-size: 0.75rem; color: var(--text-muted); display: flex; align-items: center; gap: 0.4rem; }
.effort-action  { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; margin: 0; }

@media (max-width: 640px) {
  .sr-grid { grid-template-columns: 1fr; }
}

/* ── Handoff 2.5 — Precedents panel ────────────────────────────────────────── */

.admin-flash      { padding: .5rem .75rem; border-radius: 4px; font-size: .82rem; margin-bottom: 1rem; }
.admin-flash-ok   { background: rgba(107,140,90,.15); color: var(--conf-high); border: 1px solid var(--conf-high); }
.admin-flash-warn { background: rgba(184,92,56,.12); color: var(--accent-rust); border: 1px solid var(--accent-rust); }

.precedents-wrapper {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border-subtle);
}

.precedents-toggle {
  background: none;
  border: 1px solid var(--border-subtle);
  border-radius: 3px;
  color: var(--text-muted);
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.6rem;
  text-transform: uppercase;
  transition: color 0.15s, border-color 0.15s;
}
.precedents-toggle:hover { color: var(--text-secondary); border-color: var(--accent-steel); }

.precedents-panel {
  margin-top: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.precedents-panel[hidden] { display: none; }

.precedent-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.75rem;
  background: var(--bg-primary);
  border-left: 2px solid var(--border-subtle);
  border-radius: 0 4px 4px 0;
}

.precedent-category {
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.prec-cat-defensive { color: var(--accent-steel); }
.prec-cat-economic  { color: var(--accent-rust); }
.prec-cat-community { color: var(--accent-amber); }
.prec-cat-retention { color: var(--accent-tenure); }

.precedent-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.4;
}

.precedent-excerpt {
  font-size: 0.78rem;
  color: var(--text-secondary);
  line-height: 1.55;
  margin: 0.25rem 0 0;
}

.precedent-source {
  font-size: 0.72rem;
  color: var(--text-muted);
  text-decoration: none;
  margin-top: 0.2rem;
  transition: color 0.15s;
}
.precedent-source:hover { color: var(--accent-amber); }

/* ── Handoff 3 — Economy tile live metrics ──────────────────────────────────── */

.tile-metrics       { display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 0.75rem; }
.tile-metric-row    { display: flex; justify-content: space-between; align-items: baseline;
                      gap: 0.5rem; padding: 0.4rem 0; border-bottom: 1px solid var(--border-subtle); }
.tile-metric-row:last-child { border-bottom: none; }
.tile-metric-label  { font-size: 0.8rem; color: var(--text-secondary); flex: 1; }
.tile-metric-value  { font-family: var(--font-display); font-size: 1rem; font-weight: 600;
                      color: var(--text-primary); text-align: right; }
.tile-metric-domain { font-size: 0.82rem; font-family: var(--font-mono); color: var(--accent-amber); }
.tile-metric-title  { font-family: var(--font-ui); font-size: 0.82rem; font-weight: 500;
                      max-width: 280px; text-align: right; line-height: 1.4; }
.tile-metric-muted  { opacity: 0.5; }
.tile-metric-context .tile-metric-label { opacity: 0.6; font-size: 0.75rem; }
.economy-no-signal .tile-metric-value   { color: var(--text-secondary); font-weight: 500; }
.tile-source-note   { font-size: 0.75rem; color: var(--text-muted); margin: 0.5rem 0 0;
                      font-style: italic; line-height: 1.5; }

.platform-list      { display: flex; flex-direction: column; gap: 0.6rem; margin: 0.5rem 0 0.75rem; }
.platform-item      { display: flex; flex-direction: column; gap: 0.2rem;
                      padding: 0.5rem 0.75rem; background: var(--bg-primary);
                      border-left: 2px solid var(--accent-steel); border-radius: 0 3px 3px 0; }
.platform-item strong { font-size: 0.85rem; color: var(--text-primary); }
.platform-meta      { font-size: 0.75rem; color: var(--text-muted); }

/* ── Handoff 3 — CTS Brief ──────────────────────────────────────────────────── */

.cts-signal-grid    { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 1rem; }
.cts-signal-item    { display: flex; flex-direction: column; gap: 0.2rem;
                      padding: 0.6rem 0.75rem; background: var(--bg-primary);
                      border: 1px solid var(--border-subtle); border-radius: 4px; }
.cts-signal-label   { font-size: 0.72rem; color: var(--text-muted); text-transform: uppercase;
                      letter-spacing: 0.05em; font-family: var(--font-ui); }
.cts-signal-value   { font-family: var(--font-display); font-size: 1.05rem; font-weight: 600;
                      color: var(--text-primary); line-height: 1.3; }
.cts-signal-source  { font-size: 0.7rem; color: var(--text-muted); font-style: italic; }

.cts-context-note   { font-size: 0.8rem; color: var(--text-muted); font-style: italic;
                      line-height: 1.55; margin: 0; padding: 0.5rem 0.75rem;
                      border-left: 2px solid var(--border-subtle); }

.cts-lead           { font-size: 0.9rem; color: var(--text-secondary); line-height: 1.6;
                      margin: 0 0 1.25rem; }
.cts-lead strong    { color: var(--accent-amber); font-weight: 600; }

.cts-section-label  { font-family: var(--font-ui); font-size: 0.68rem; font-weight: 600;
                      letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent-amber);
                      margin: 1.25rem 0 0.5rem; }

.cts-body-text      { font-size: 0.85rem; color: var(--text-secondary); line-height: 1.6; margin: 0; }
.cts-link           { color: var(--accent-amber); text-decoration: none; }
.cts-link:hover     { text-decoration: underline; }

.cts-tier-table     { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--border-subtle);
                      border-radius: 4px; overflow: hidden; }
.cts-tier-row       { display: grid; grid-template-columns: 1.4fr 1.8fr 1fr;
                      gap: 0.5rem; padding: 0.55rem 0.75rem; align-items: center;
                      border-bottom: 1px solid var(--border-subtle); font-size: 0.82rem; }
.cts-tier-row:last-child { border-bottom: none; }
.cts-tier-header    { background: var(--bg-primary); font-size: 0.68rem; font-weight: 600;
                      text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); }
.cts-tier-name      { font-weight: 600; color: var(--text-primary); }
.tier-i             { color: var(--accent-steel); }
.tier-ii            { color: var(--accent-amber); }
.tier-iii           { color: var(--accent-rust); }
.cts-tier-item      { font-size: 0.78rem; color: var(--text-muted); }

.cts-flow           { display: flex; flex-direction: column; gap: 0; }
.cts-flow-step      { display: flex; gap: 0.75rem; padding: 0.75rem 0;
                      border-bottom: 1px solid var(--border-subtle); }
.cts-flow-step:last-child { border-bottom: none; }
.cts-flow-num       { flex-shrink: 0; width: 1.4rem; height: 1.4rem; border-radius: 50%;
                      background: var(--accent-rust); color: #fff; font-size: 0.72rem;
                      font-weight: 700; display: flex; align-items: center; justify-content: center;
                      margin-top: 0.15rem; font-family: var(--font-display); }
.cts-flow-step div  { flex: 1; }
.cts-flow-step strong { font-size: 0.85rem; color: var(--text-primary); display: block;
                        margin-bottom: 0.25rem; }
.cts-flow-step p    { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; margin: 0; }

.cts-prior-art      { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.25rem; }
.cts-prior-item     { font-size: 0.82rem; color: var(--text-secondary); line-height: 1.5;
                      padding-left: 0.75rem; border-left: 2px solid var(--border-subtle); }
.cts-prior-item strong { color: var(--text-primary); }

.risk-table         { display: flex; flex-direction: column; gap: 0;
                      border: 1px solid var(--border-subtle); border-radius: 4px; overflow: hidden; }
.risk-row           { display: grid; grid-template-columns: 1.4fr 0.7fr 2fr;
                      gap: 0.75rem; padding: 0.55rem 0.75rem; align-items: start;
                      border-bottom: 1px solid var(--border-subtle); font-size: 0.8rem; }
.risk-row:last-child { border-bottom: none; }
.risk-header        { background: var(--bg-primary); font-size: 0.68rem; font-weight: 600;
                      text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted);
                      align-items: center; }
.risk-row > span:first-child { color: var(--text-primary); font-weight: 500; }
.risk-row > span:last-child  { color: var(--text-secondary); line-height: 1.5; }
.risk-cat           { font-size: 0.68rem; font-weight: 600; text-transform: uppercase;
                      letter-spacing: 0.06em; padding: 0.15rem 0.4rem; border-radius: 3px; }
.risk-legal         { background: rgba(90,103,114,0.2); color: var(--accent-steel); }
.risk-financial     { background: rgba(212,160,23,0.15); color: var(--accent-amber); }
.risk-privacy       { background: rgba(139,108,140,0.2); color: var(--accent-tenure); }
.risk-design        { background: rgba(184,92,56,0.15); color: var(--accent-rust); }
.risk-brand         { background: rgba(107,140,90,0.15); color: var(--conf-high); }
.risk-ops           { background: rgba(90,103,114,0.15); color: var(--accent-steel); }

@media (max-width: 640px) {
  .cts-signal-grid           { grid-template-columns: 1fr; }
  .cts-tier-row              { grid-template-columns: 1fr; gap: 0.2rem; }
  .cts-tier-header           { display: none; }
  .risk-row                  { grid-template-columns: 1fr; }
  .risk-header               { display: none; }
  .tile-metric-row           { flex-direction: column; align-items: flex-start; gap: 0.15rem; }
  .tile-metric-value         { text-align: left; }
}

/* ── Polish pass ─────────────────────────────────────────────────────────────── */

:root {
  --font-ui:       'Space Grotesk', 'Inter', system-ui, sans-serif;
  --accent-tenure: #8b6c8c;
}

/* Standalone two-col — works anywhere, not just inside .what-this-is */
.two-col                  { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.two-col h3               { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em;
                            color: var(--text-muted); margin-bottom: 0.75rem; }
.two-col ul               { list-style: none; padding: 0; margin: 0; }
.two-col ul li            { font-size: 0.85rem; color: var(--text-secondary);
                            padding: 0.3rem 0; border-bottom: 1px solid var(--border-subtle); }
.two-col ul li:last-child { border-bottom: none; }

@media (max-width: 640px) {
  .two-col { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   REDESIGN 2.1c — appended below existing rules
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ── Color tokens (refined) ─────────────────────────────────────────────────── */
:root {
  --bg-primary:     #1a1612;
  --bg-secondary:   #1f1a15;
  --bg-tertiary:    #2a221b;
  --accent-rust:    #b85c38;
  --accent-amber:   #d4a017;
  --accent-steel:   #5a6772;
  --accent-tenure:  #8b6c8c;
  --text-primary:   #ede4d8;
  --text-secondary: #a8978a;
  --text-muted:     #6d5e51;
  --text-dim:       #4d4239;
  --border-subtle:  #2e2620;
  --border-strong:  #3d2f22;
  --conf-high:      #7a9968;
  --conf-med:       #c19a3a;
  --conf-low:       #6d5e51;
  --status-up:      #7a9968;
  --status-down:    #b85c38;
}

/* ── Body ───────────────────────────────────────────────────────────────────── */
body {
  font-family: 'Inter', sans-serif;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: -0.005em;
}

/* ── Header + nav ───────────────────────────────────────────────────────────── */
.site-header { border-bottom: 1px solid var(--border-subtle); padding: 16px 0; }
.site-header-inner { max-width: 1120px; margin: 0 auto; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; }
.brand { font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; color: var(--text-primary); }
.brand span { color: var(--accent-rust); }
.nav { display: flex; gap: 28px; }
.nav a { font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-secondary); text-decoration: none; padding: 4px 0; border-bottom: 1px solid transparent; }
.nav a.active { color: var(--text-primary); border-bottom-color: var(--accent-rust); }
.nav a:hover { color: var(--text-primary); }

/* ── Main content area ───────────────────────────────────────────────────────── */
main { max-width: 1120px; margin: 0 auto; padding: 64px 32px 96px; }

/* ── Page title block ────────────────────────────────────────────────────────── */
.page-title-block { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 64px; padding-bottom: 24px; border-bottom: 1px solid var(--border-subtle); }
.page-title-block h1 { font-family: 'Space Grotesk', sans-serif; font-size: 40px; font-weight: 400; letter-spacing: -0.02em; margin-bottom: 8px; line-height: 1.1; color: var(--text-primary); }
.page-title-block .page-sub { font-size: 15px; color: var(--text-secondary); max-width: 640px; }
.page-meta { text-align: right; font-family: 'Space Grotesk', sans-serif; }
.page-meta .meta-label { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; }
.page-meta .meta-value { font-size: 13px; color: var(--text-secondary); }

/* ── Date filter banner ──────────────────────────────────────────────────────── */
.date-banner { background: rgba(212,160,23,0.08); border-left: 2px solid var(--accent-amber); padding: 12px 20px; margin-bottom: 48px; font-family: 'Space Grotesk', sans-serif; font-size: 13px; color: var(--text-secondary); }
.date-banner a { color: var(--accent-amber); text-decoration: none; }
.date-form { display: flex; align-items: center; gap: 12px; margin-bottom: 48px; }
.date-form-label { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.date-form-input { background: var(--bg-secondary); border: 1px solid var(--border-strong); color: var(--text-primary); font-family: 'Space Grotesk', sans-serif; font-size: 12px; padding: 6px 10px; border-radius: 2px; }
.date-form-btn { background: transparent; border: 1px solid var(--border-strong); color: var(--text-secondary); font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 6px 14px; border-radius: 2px; cursor: pointer; }
.date-form-btn:hover { border-color: var(--accent-amber); color: var(--accent-amber); }

/* ── Hero stats ──────────────────────────────────────────────────────────────── */
.hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; margin-bottom: 64px; }
.hero-stat { display: flex; flex-direction: column; }
.hero-stat .label { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 16px; }
.hero-stat .number { font-family: 'Space Grotesk', sans-serif; font-size: 84px; font-weight: 300; letter-spacing: -0.04em; line-height: 1; margin-bottom: 8px; color: var(--text-primary); }
.hero-stat .number .small-unit { font-size: 32px; color: var(--text-secondary); margin-left: 4px; }
.hero-stat .number .of { font-size: 48px; color: var(--text-muted); margin: 0 2px; font-weight: 300; }
.hero-stat .descriptor { font-size: 14px; color: var(--text-secondary); margin-bottom: 12px; max-width: 260px; }
.hero-stat .context { font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--text-muted); letter-spacing: 0.04em; }
.hero-stat .context .arrow { color: var(--status-down); margin-right: 4px; }

/* ── Strategic read ─────────────────────────────────────────────────────────── */
.strategic-read { padding: 32px 0 32px 32px; border-left: 2px solid var(--accent-rust); margin-bottom: 72px; }
.strategic-read .read-label { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-rust); margin-bottom: 16px; }
.strategic-read p { font-family: 'Space Grotesk', sans-serif; font-size: 22px; font-weight: 300; line-height: 1.45; letter-spacing: -0.01em; color: var(--text-primary); }

/* ── Section heads ──────────────────────────────────────────────────────────── */
.section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 32px; }
.section-head h2 { font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-secondary); }
.section-head .section-count { font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em; }

/* ── Evidence grid ──────────────────────────────────────────────────────────── */
.evidence-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); margin-bottom: 72px; }
.evidence-cell { background: var(--bg-primary); padding: 32px 32px 28px; display: flex; flex-direction: column; }
.evidence-cell .ev-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.evidence-cell .ev-title { font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-secondary); }
.evidence-cell .ev-metric-row { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.evidence-cell .ev-number { font-family: 'Space Grotesk', sans-serif; font-size: 44px; font-weight: 300; letter-spacing: -0.03em; line-height: 1; color: var(--text-primary); }
.evidence-cell .ev-unit { font-family: 'Space Grotesk', sans-serif; font-size: 13px; color: var(--text-muted); letter-spacing: 0.04em; }
.evidence-cell .ev-delta { font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: 0.04em; }
.ev-delta.up { color: var(--status-up); }
.ev-delta.down { color: var(--status-down); }
.ev-delta.flat { color: var(--text-muted); }
.evidence-cell .ev-sparkline { height: 36px; margin: 18px 0; width: 100%; }
.evidence-cell .ev-context { font-size: 13px; color: var(--text-secondary); line-height: 1.55; margin-bottom: 16px; flex-grow: 1; }
.evidence-cell .ev-action { padding-top: 16px; border-top: 1px solid var(--border-subtle); }
.evidence-cell .ev-action-label { font-family: 'Space Grotesk', sans-serif; text-transform: uppercase; letter-spacing: 0.14em; font-size: 10px; color: var(--text-muted); margin-bottom: 6px; display: block; }
.evidence-cell .ev-action-text { color: var(--text-primary); font-size: 13px; line-height: 1.5; }
.evidence-cell .ev-precedent { margin-top: 14px; font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--accent-amber); letter-spacing: 0.04em; }
.evidence-cell .ev-precedent::before { content: '+ '; }
.evidence-cell .ev-list { margin-bottom: 16px; }
.evidence-cell .ev-list-row { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--border-subtle); }
.evidence-cell .ev-list-row:last-child { border-bottom: none; }
.evidence-cell .ev-list-name { font-family: 'Space Grotesk', sans-serif; font-size: 14px; color: var(--text-primary); }
.evidence-cell .ev-list-domain { font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--text-muted); }
.evidence-cell .ev-bignumber-row { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.evidence-cell .ev-bignumber { font-family: 'Space Grotesk', sans-serif; font-size: 44px; font-weight: 300; letter-spacing: -0.03em; line-height: 1; color: var(--text-primary); }
.evidence-cell .ev-bignumber .of-small { font-size: 24px; color: var(--text-muted); }

/* ── Confidence badges ──────────────────────────────────────────────────────── */
.conf-badge { font-family: 'Space Grotesk', sans-serif; font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; font-weight: 500; }
.conf-high { background: rgba(122,153,104,0.12); color: var(--conf-high); border: 1px solid rgba(122,153,104,0.3); }
.conf-med  { background: rgba(193,154,58,0.12);  color: var(--conf-med);  border: 1px solid rgba(193,154,58,0.3); }
.conf-low  { background: rgba(109,94,81,0.18);   color: var(--text-muted); border: 1px solid var(--border-strong); }

/* ── Effort list ────────────────────────────────────────────────────────────── */
.effort-list { margin-bottom: 72px; }
.effort-row { display: grid; grid-template-columns: 24px 1fr auto auto; align-items: center; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--border-subtle); }
.effort-row:last-child { border-bottom: none; }
.effort-row .e-rank { font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.effort-row .e-title { font-family: 'Space Grotesk', sans-serif; font-size: 16px; font-weight: 400; color: var(--text-primary); }
.effort-row .e-sub { font-size: 13px; color: var(--text-secondary); margin-top: 4px; }
.effort-row .e-tag { font-family: 'Space Grotesk', sans-serif; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); padding: 4px 10px; border: 1px solid var(--border-strong); border-radius: 2px; white-space: nowrap; }

/* ── Closing statement ──────────────────────────────────────────────────────── */
.closing-statement { padding: 48px 0; margin-bottom: 32px; }
.closing-statement p { font-family: 'Space Grotesk', sans-serif; font-size: 26px; font-weight: 300; line-height: 1.4; letter-spacing: -0.015em; max-width: 880px; color: var(--text-primary); }
.closing-statement .by-design { color: var(--accent-rust); }
.closing-statement .by-default { color: var(--text-muted); font-style: italic; }

/* ── Scope footer + sources ─────────────────────────────────────────────────── */
.scope-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding: 40px 0; border-top: 1px solid var(--border-subtle); margin-top: 48px; }
.scope-footer h3 { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 16px; font-weight: 500; }
.scope-footer ul { list-style: none; }
.scope-footer li { font-size: 13px; color: var(--text-secondary); padding: 6px 0; line-height: 1.5; }
.scope-footer li::before { content: '— '; color: var(--text-muted); margin-right: 4px; }
.sources-block { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--border-subtle); display: flex; flex-wrap: wrap; gap: 24px; font-family: 'Space Grotesk', sans-serif; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.sources-block a { color: var(--text-muted); text-decoration: none; border-bottom: 1px solid var(--border-strong); }
.sources-block a:hover { color: var(--text-secondary); }

/* ── Collectibles page specifics ────────────────────────────────────────────── */
.section-tag { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 28px; }
.section-prose { max-width: 760px; }
.section-prose p { font-size: 15px; color: var(--text-secondary); margin-bottom: 16px; line-height: 1.7; }
.section-prose p strong { color: var(--text-primary); font-weight: 500; }
.tier-table, .risk-table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.tier-table th, .risk-table th { text-align: left; font-family: 'Space Grotesk', sans-serif; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); padding: 12px 16px 12px 0; border-bottom: 1px solid var(--border-strong); font-weight: 500; }
.tier-table td { padding: 24px 16px 24px 0; vertical-align: top; border-bottom: 1px solid var(--border-subtle); }
.risk-table td { padding: 18px 16px 18px 0; vertical-align: top; border-bottom: 1px solid var(--border-subtle); font-size: 13px; }
.tier-table tr:last-child td, .risk-table tr:last-child td { border-bottom: none; }
.tier-table .tier-name { font-family: 'Space Grotesk', sans-serif; font-size: 18px; color: var(--text-primary); font-weight: 400; }
.tier-table .tier-num { font-family: 'Space Grotesk', sans-serif; font-size: 12px; color: var(--accent-rust); letter-spacing: 0.08em; margin-right: 8px; }
.tier-table .tier-qual { color: var(--text-secondary); font-size: 14px; }
.tier-table .tier-item { color: var(--text-primary); font-size: 14px; }
.risk-table .risk-name { font-family: 'Space Grotesk', sans-serif; color: var(--text-primary); font-size: 14px; width: 22%; }
.risk-table .risk-cat { font-family: 'Space Grotesk', sans-serif; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); width: 15%; }
.risk-table .risk-mit { color: var(--text-secondary); line-height: 1.55; }
.auth-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); margin-bottom: 24px; }
.auth-step { background: var(--bg-primary); padding: 24px 20px; }
.auth-step .step-num { font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--accent-rust); letter-spacing: 0.12em; margin-bottom: 12px; }
.auth-step .step-title { font-family: 'Space Grotesk', sans-serif; font-size: 14px; color: var(--text-primary); margin-bottom: 10px; line-height: 1.35; }
.auth-step .step-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.55; }
.prior-art { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); margin-bottom: 24px; }
.prior-card { background: var(--bg-primary); padding: 24px; }
.prior-card .pc-co { font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-amber); margin-bottom: 8px; }
.prior-card .pc-name { font-family: 'Space Grotesk', sans-serif; font-size: 16px; color: var(--text-primary); margin-bottom: 8px; font-weight: 400; }
.prior-card .pc-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.55; }
.fulfillment-note { padding: 20px 24px; background: var(--bg-secondary); border-left: 2px solid var(--accent-amber); margin-top: 24px; max-width: 760px; }
.fulfillment-note .fn-label { font-family: 'Space Grotesk', sans-serif; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-amber); margin-bottom: 8px; }
.fulfillment-note p { font-size: 13px; color: var(--text-secondary); line-height: 1.6; }
.fulfillment-note a { color: var(--text-primary); border-bottom: 1px solid var(--border-strong); text-decoration: none; }
.cts-section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 32px; margin-top: 72px; }
.cts-section-head h2 { font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-secondary); }
.cts-section-head .section-count { font-family: 'Space Grotesk', sans-serif; font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em; }

/* ── Mobile ──────────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  main { padding: 32px 20px 64px; }
  .page-title-block { flex-direction: column; align-items: flex-start; gap: 24px; }
  .page-title-block h1 { font-size: 30px; }
  .hero-stats { grid-template-columns: 1fr; gap: 32px; }
  .hero-stat .number { font-size: 64px; }
  .strategic-read p { font-size: 18px; }
  .evidence-grid, .auth-steps, .prior-art { grid-template-columns: 1fr; }
  .scope-footer { grid-template-columns: 1fr; gap: 32px; }
  .effort-row { grid-template-columns: 24px 1fr; }
  .effort-row .e-tag { grid-column: 2; justify-self: start; margin-top: 4px; }
}

/* ════════════════════════════════════════════════════════════════
   HANDOFF 2.5 — Single-page artifact
   Three vertical layers: Verdict / Signal Stack / Playbook
   ════════════════════════════════════════════════════════════════ */

/* ── Layer section structure ─────────────────────────────────────────────────── */
.layer-section {
  padding: 80px 0;
  border-top: 1px solid var(--border-subtle);
}
.layer-section:first-of-type { border-top: none; }

.layer-divider {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 56px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--border-strong);
}
.layer-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--text-muted);
  flex-shrink: 0;
}
.layer-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: -0.015em;
  color: var(--text-primary);
}
.layer-desc {
  font-size: 13px;
  color: var(--text-muted);
  letter-spacing: 0.02em;
}

/* ── HLTV composite block ────────────────────────────────────────────────────── */
.verdict-body { display: flex; flex-direction: column; gap: 56px; }

.hltv-block {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 56px;
  align-items: start;
}

.hltv-label-row { margin-bottom: 12px; }
.hltv-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-muted);
  display: block;
  margin-bottom: 4px;
}
.hltv-sublabel { font-size: 12px; color: var(--text-muted); }

.hltv-score-row { display: flex; align-items: baseline; gap: 4px; }
.hltv-score {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 96px;
  font-weight: 300;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--text-primary);
}
.hltv-denom {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 32px;
  color: var(--text-muted);
  font-weight: 300;
}
.hltv-building {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 12px;
  max-width: 240px;
  line-height: 1.6;
}

.hltv-pillars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
}
.hltv-pillar {
  background: var(--bg-primary);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hp-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 8px;
}
.hp-score {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 36px;
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  line-height: 1;
}
.hp-weight {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  color: var(--accent-amber);
  letter-spacing: 0.06em;
  margin-top: 4px;
}
.hp-def { font-size: 11px; color: var(--text-muted); line-height: 1.55; margin-top: 8px; }

/* ── Verdict copy ────────────────────────────────────────────────────────────── */
.verdict-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }

.verdict-thesis, .verdict-forecast {
  padding: 28px 0 28px 24px;
  border-left: 2px solid var(--border-strong);
}
.vt-label, .vf-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-rust);
  margin-bottom: 12px;
  display: block;
}
.vf-label { color: var(--accent-amber); }
.vt-text, .vf-text {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.5;
  color: var(--text-primary);
}
.vt-placeholder {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.65;
  font-style: italic;
}

/* ── Persistence curve ───────────────────────────────────────────────────────── */
.verdict-curve { padding: 32px; background: var(--bg-secondary); border: 1px solid var(--border-subtle); }
.vc-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 16px;
  display: block;
}

/* ── Phase stub styles ───────────────────────────────────────────────────────── */
.phase-stub {
  padding: 24px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
}
.stub-tag {
  display: inline-block;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-amber);
  background: rgba(212,160,23,0.08);
  border: 1px solid rgba(212,160,23,0.2);
  padding: 3px 8px;
  border-radius: 2px;
  margin-bottom: 10px;
}
.phase-stub p { font-size: 13px; color: var(--text-muted); line-height: 1.65; }
.archetype-list-stub {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.at-stub {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 2px;
  letter-spacing: 0.04em;
}
.at-persist { background: rgba(122,153,104,0.1); color: var(--conf-high); border: 1px solid rgba(122,153,104,0.2); }
.at-caution { background: rgba(184,92,56,0.1);   color: var(--accent-rust); border: 1px solid rgba(184,92,56,0.2); }

/* ── Signal cluster ──────────────────────────────────────────────────────────── */
.signal-cluster { margin-bottom: 72px; }

.cluster-head { margin-bottom: 32px; }
.cluster-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}
.cluster-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
.cluster-ts {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  color: var(--text-muted);
}
.cluster-desc { font-size: 13px; color: var(--text-secondary); max-width: 720px; line-height: 1.6; }

/* ── Economy gate note ───────────────────────────────────────────────────────── */
.economy-gate-note {
  margin-bottom: 32px;
  padding: 20px 24px 20px 20px;
  border-left: 2px solid var(--accent-steel);
  background: rgba(90,103,114,0.06);
}
.gate-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-steel);
  margin-bottom: 8px;
  display: block;
}
.economy-gate-note p { font-size: 14px; color: var(--text-secondary); line-height: 1.65; }
.economy-gate-note em { font-style: normal; color: var(--text-primary); }
.economy-gate-note strong { font-weight: 500; color: var(--text-primary); }

/* ── Signal entry ────────────────────────────────────────────────────────────── */
.signal-stack-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
}

.signal-entry {
  background: var(--bg-primary);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sig-entry-muted { opacity: 0.65; }
.sig-entry-concept { border-left: 2px solid var(--accent-amber); }

.sig-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}
.sig-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Pillar tags */
.sig-pillar {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 2px;
  font-weight: 500;
  flex-shrink: 0;
}
.pillar-trust      { background: rgba(212,160,23,0.1);    color: var(--accent-amber);  border: 1px solid rgba(212,160,23,0.25); }
.pillar-health     { background: rgba(122,153,104,0.1);   color: var(--conf-high);     border: 1px solid rgba(122,153,104,0.25); }
.pillar-aspiration { background: rgba(90,103,114,0.15);   color: var(--accent-steel);  border: 1px solid rgba(90,103,114,0.3); }
.pillar-ip         { background: rgba(139,108,140,0.12);  color: var(--accent-tenure); border: 1px solid rgba(139,108,140,0.25); }
.pillar-economy    { background: rgba(107,92,71,0.15);    color: var(--text-secondary); border: 1px solid var(--border-strong); }

.sig-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: var(--text-secondary);
  letter-spacing: 0.02em;
}

/* Signal status badges (reuse existing status- classes where possible) */
.sig-status {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.08em;
  white-space: nowrap;
  flex-shrink: 0;
}
.status-improving        { color: var(--conf-high); }
.status-weakening        { color: var(--accent-rust); }
.status-stable           { color: var(--text-secondary); }
.status-insufficient-data,
.status-insufficient     { color: var(--text-muted); font-style: italic; }
.status-stable.status-stable { color: var(--text-secondary); }

.sig-value-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 12px;
}
.sig-value {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 40px;
  font-weight: 300;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--text-primary);
}
.sig-value-unit {
  font-size: 20px;
  color: var(--text-muted);
  font-weight: 300;
}
.sig-unit {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}
.sig-delta {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  letter-spacing: 0.04em;
}
.delta-up   { color: var(--conf-high); }
.delta-down { color: var(--accent-rust); }
.delta-flat { color: var(--text-muted); }

/* Sparkline inside signal entries */
.signal-entry .ev-sparkline { margin: 12px 0; width: 100%; }

.sig-analog {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 12px 0 16px;
  flex-grow: 1;
}
.sig-analog em { font-style: italic; color: var(--text-secondary); }

.sig-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 14px;
  border-top: 1px solid var(--border-subtle);
  margin-top: auto;
}
.sig-source {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-decoration: none;
  border-bottom: 1px solid var(--border-strong);
}
.sig-source:hover { color: var(--accent-amber); border-bottom-color: var(--accent-amber); }
.sig-ts { font-size: 11px; color: var(--text-muted); font-family: 'Space Grotesk', sans-serif; }
.sig-context { font-size: 11px; color: var(--text-muted); }

/* ── Intervention ledger ─────────────────────────────────────────────────────── */
.intervention-preview { margin-bottom: 48px; }

.ledger-timeline {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
}
/* ── Shared ledger card atoms ────────────────────────────────────────────────── */

/* Type chip — default steel, overridden per type below */
.le-type, .lft-type-badge {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--accent-steel);
  background: rgba(90,103,114,0.12);
  border: 1px solid rgba(90,103,114,0.2);
  padding: 2px 5px;
  white-space: nowrap;
}
/* Event type color overrides */
.ledger-event[data-type="patch"]     .le-type,
.lft-event[data-type="patch"]        .lft-type-badge { color: var(--conf-high);    background: rgba(122,153,104,0.1);  border-color: rgba(122,153,104,0.2); }
.ledger-event[data-type="comms"]     .le-type,
.lft-event[data-type="comms"]        .lft-type-badge { color: var(--accent-amber); background: rgba(212,160,23,0.08);  border-color: rgba(212,160,23,0.2);  }
.ledger-event[data-type="anticheat"] .le-type,
.lft-event[data-type="anticheat"]    .lft-type-badge { color: var(--accent-rust);  background: rgba(184,92,56,0.1);    border-color: rgba(184,92,56,0.2);   }
.ledger-event[data-type="incident"]  .le-type,
.lft-event[data-type="incident"]     .lft-type-badge { color: var(--accent-rust);  background: rgba(184,92,56,0.1);    border-color: rgba(184,92,56,0.2);   }
.ledger-event[data-type="creator"]   .le-type,
.lft-event[data-type="creator"]      .lft-type-badge { color: var(--accent-tenure);background: rgba(139,108,140,0.1);  border-color: rgba(139,108,140,0.2); }
.ledger-event[data-type="balance"]   .le-type,
.lft-event[data-type="balance"]      .lft-type-badge { color: var(--accent-steel); background: rgba(90,103,114,0.12); border-color: rgba(90,103,114,0.2);   }

/* Headline delta — big, mono, colored */
.le-headline {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.le-up   { color: var(--conf-high); }
.le-down { color: var(--accent-rust); }

/* "+N signals" count tag */
.le-movers {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--text-muted);
  border: 1px solid var(--border-subtle);
  padding: 1px 5px;
  letter-spacing: 0.06em;
}

/* No-data line */
.le-no-window {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}

/* Expand arrow button */
.le-expand-btn {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 12px;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
  margin-left: auto;
}
.le-expand-btn:hover { color: var(--accent-amber); }

/* Source link */
.le-source, .lft-source {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text-muted);
  text-decoration: none;
  white-space: nowrap;
}
.le-source:hover, .lft-source:hover { color: var(--accent-amber); }

/* Null / insufficient placeholder */
.le-null {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text-muted);
}

/* Expanded detail: 3-column grid (Signal | 7d | 30d) */
.le-detail {
  border-top: 1px solid var(--border-subtle);
  margin-top: 6px;
  padding-top: 8px;
}
.le-grid {
  display: grid;
  grid-template-columns: 56px 1fr 1fr;
  gap: 0;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
  font-family: var(--font-mono);
  font-size: 10px;
}
.le-gcell {
  background: var(--bg-primary);
  padding: 5px 8px;
}
.le-glabel {
  color: var(--text-muted);
  letter-spacing: 0.08em;
  font-size: 9px;
}
.le-gsig { color: var(--text-muted); }
.le-delta { font-family: var(--font-mono); font-size: 11px; font-weight: 500; }

/* ── Index preview ledger cards ─────────────────────────────────────────────── */
.ledger-event {
  background: var(--bg-primary);
  padding: 12px 20px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
/* Row 1: date · type · title · source */
.le-row1 {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.le-date {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.le-title {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--text-primary);
  flex: 1;
  line-height: 1.4;
}
/* Row 2: headline delta · movers · expand btn */
.le-row2 {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 20px;
}

/* ── /ledger dedicated page ─────────────────────────────────────────────────── */
.ledger-body { background: var(--bg-primary); }
.ledger-main {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 24px 80px;
}
.ledger-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.ledger-page-title h1 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-primary);
  margin: 0 0 6px;
}
.ledger-page-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0;
  max-width: 540px;
}
.ledger-back {
  font-size: 12px;
  color: var(--text-muted);
  text-decoration: none;
  white-space: nowrap;
  padding-top: 4px;
}
.ledger-back:hover { color: var(--accent-amber); }

/* Filters */
.ledger-filters { margin-bottom: 24px; display: flex; flex-direction: column; gap: 12px; }
.lf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lf-chip {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-decoration: none;
  color: var(--text-muted);
  background: var(--bg-secondary);
  border: 1px solid var(--border-subtle);
  padding: 4px 10px;
  border-radius: 2px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: border-color 0.15s, color 0.15s;
}
.lf-chip:hover { border-color: var(--accent-amber); color: var(--accent-amber); }
.lf-chip-active { color: var(--text-primary) !important; border-color: var(--text-muted) !important; }
.lf-chip-patch.lf-chip-active     { color: var(--conf-high) !important;    border-color: var(--conf-high) !important; }
.lf-chip-comms.lf-chip-active     { color: var(--accent-amber) !important; border-color: var(--accent-amber) !important; }
.lf-chip-anticheat.lf-chip-active { color: var(--accent-rust) !important;  border-color: var(--accent-rust) !important; }
.lf-chip-incident.lf-chip-active  { color: var(--accent-rust) !important;  border-color: var(--accent-rust) !important; }
.lf-chip-creator.lf-chip-active   { color: var(--accent-tenure) !important;border-color: var(--accent-tenure) !important; }
.lf-chip-balance.lf-chip-active   { color: var(--accent-steel) !important; border-color: var(--accent-steel) !important; }
.lf-count {
  font-size: 9px;
  color: var(--text-muted);
  background: var(--bg-primary);
  border: 1px solid var(--border-subtle);
  padding: 1px 4px;
  border-radius: 2px;
}
.lf-dates {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.lf-date-label { font-size: 11px; color: var(--text-muted); letter-spacing: 0.06em; }
.lf-date-input { width: 140px !important; }
.ledger-result-count {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 16px;
}
.ledger-result-count strong { color: var(--text-primary); }
.ledger-empty { color: var(--text-muted); font-size: 13px; padding: 24px 0; }

/* Full timeline */
.ledger-full-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border-subtle);
}
.lft-event {
  display: grid;
  grid-template-columns: 160px 1fr;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--bg-primary);
  transition: background 0.1s;
}
.lft-event:last-child { border-bottom: none; }
.lft-event:hover { background: var(--bg-secondary); }

/* Spine */
.lft-spine {
  padding: 20px 16px;
  border-right: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  position: relative;
}
.lft-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--text-muted);
  margin-bottom: 2px;
}
.lft-event[data-type="patch"]     .lft-dot { background: var(--conf-high); }
.lft-event[data-type="comms"]     .lft-dot { background: var(--accent-amber); }
.lft-event[data-type="anticheat"] .lft-dot { background: var(--accent-rust); }
.lft-event[data-type="incident"]  .lft-dot { background: var(--accent-rust); }
.lft-event[data-type="creator"]   .lft-dot { background: var(--accent-tenure); }
.lft-event[data-type="balance"]   .lft-dot { background: var(--accent-steel); }
.lft-date {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.lft-type-badge {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 9px;
  letter-spacing: 0.12em;
  color: var(--accent-steel);
  background: rgba(90,103,114,0.12);
  border: 1px solid rgba(90,103,114,0.2);
  padding: 2px 6px;
  border-radius: 2px;
  white-space: nowrap;
}

/* Card */
.lft-card {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.lft-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.lft-title {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  line-height: 1.4;
  flex: 1;
}
.lft-source {
  font-size: 10px;
  color: var(--text-muted);
  text-decoration: none;
  white-space: nowrap;
  padding-top: 2px;
}
.lft-source:hover { color: var(--accent-amber); }
.lft-desc {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.5;
}

/* Delta row — headline + movers + expand (shared between preview and full ledger) */
.lft-delta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.lft-footer {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--text-muted);
  margin-top: 6px;
  letter-spacing: 0.04em;
}

/* Ledger page footer */
.site-footer {
  border-top: 1px solid var(--border-subtle);
  padding: 20px 0;
}
.footer-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.footer-brand {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}
.footer-note { font-size: 11px; color: var(--text-muted); flex: 1; }
.footer-back { font-size: 11px; color: var(--text-muted); text-decoration: none; }
.footer-back:hover { color: var(--accent-amber); }
.nav-active { color: var(--text-primary) !important; border-bottom: 1px solid var(--accent-amber); }

/* ── Playbook scaffold ───────────────────────────────────────────────────────── */
.playbook-scaffold { display: flex; flex-direction: column; gap: 48px; }

.playbook-coming {
  max-width: 640px;
  padding: 28px 0 28px 24px;
  border-left: 2px solid var(--accent-rust);
}
.pc-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-rust);
  display: block;
  margin-bottom: 12px;
}
.playbook-coming p { font-size: 16px; color: var(--text-secondary); line-height: 1.65; }
.playbook-coming strong { color: var(--text-primary); font-weight: 500; }

.playbook-sections {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
}
.pb-section-stub {
  background: var(--bg-primary);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pbs-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  color: var(--accent-rust);
  letter-spacing: 0.08em;
}
.pbs-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--text-primary);
  margin-bottom: 4px;
}
.pbs-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.6; }

/* ── Persistence curve ───────────────────────────────────────────────────────── */
.vc-label-row { display: flex; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.vc-month { font-size: 11px; color: var(--text-muted); font-family: 'Space Grotesk', sans-serif; }
.curve-canvas { width: 100%; height: auto; display: block; }
.curve-legend {
  display: flex;
  gap: 24px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 12px;
  flex-wrap: wrap;
}
.cl-persist { color: var(--accent-steel); }
.cl-caution { color: var(--accent-rust); }
.cl-arc     { color: var(--accent-amber); }
.curve-disclaimer {
  font-size: 11px;
  color: var(--text-muted);
  font-style: italic;
  margin-top: 8px;
  line-height: 1.5;
}
.curve-archetypes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
  margin-top: 20px;
}
.ca-item {
  background: var(--bg-primary);
  padding: 16px 20px;
}
.ca-persist { border-top: 2px solid var(--accent-steel); }
.ca-caution { border-top: 2px solid var(--accent-rust); }
.ca-closest { background: var(--bg-secondary); }
.ca-name { font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 500; color: var(--text-primary); margin-bottom: 4px; }
.ca-role { font-size: 11px; color: var(--text-muted); margin-bottom: 8px; }
.ca-move { font-size: 12px; color: var(--text-secondary); line-height: 1.55; }
.ca-move-label { font-family: 'Space Grotesk', sans-serif; font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-amber); display: block; margin-bottom: 4px; }

/* ── Mobile responsive ───────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .hltv-block { grid-template-columns: 1fr; gap: 32px; }
  .hltv-pillars { grid-template-columns: repeat(2, 1fr); }
  .verdict-copy { grid-template-columns: 1fr; gap: 32px; }
  .signal-stack-grid { grid-template-columns: 1fr; }
  .playbook-sections { grid-template-columns: 1fr; }
  .layer-divider { flex-wrap: wrap; gap: 8px; }
  /* Ledger page responsive */
  .lft-event { grid-template-columns: 1fr; }
  .lft-spine { flex-direction: row; align-items: center; gap: 10px; border-right: none; border-bottom: 1px solid var(--border-subtle); padding: 10px 16px; }
  .le-grid { grid-template-columns: 48px 1fr 1fr; }
  .ledger-page-head { flex-direction: column; gap: 12px; }
  .lf-dates { gap: 6px; }
  .lf-date-input { width: 100% !important; }
  .layer-title { font-size: 22px; }
  .hltv-score { font-size: 72px; }
  .sig-value { font-size: 32px; }
}

