:root {
  --bg: #0A0A0A;
  --surface: #141414;
  --surface-2: #1C1C1C;
  --surface-3: #222222;
  --border: #2A2A2A;
  --border-light: #333333;
  --text: #F5F5F7;
  --text-secondary: #D1D1D6;
  --text-tertiary: #A1A1A6;
  --text-quaternary: #9a9a9f;
  --text-faint: #7a7a7f;
  --accent: #F5F5F7;
  --caution: #C49032;
  --caution-dim: rgba(196,144,50,0.08);
  --danger: #D4342E;
  --danger-bg: rgba(212,52,46,0.08);
  --enron-red-dim: rgba(212,52,46,0.08);
  --warning-bg: rgba(0,114,188,0.07);
  --success-bg: rgba(45,140,60,0.07);
  --graph-bg: #111111;
  --graph-edge: rgba(0,114,188,0.25);
  --node-high: #D4342E;
  --node-mid: #0072BC;
  --node-low: #2D8C3C;
  --enron-red: #D4342E;
  --enron-blue: #0072BC;
  --enron-green: #2D8C3C;
  --card-shadow: 0 1px 3px rgba(0,0,0,0.3);
  --recovered: #86868B;
  --partial: #6E6E73;
  --lost: #F5F5F7;
  --gold: #C49032;
  --text-primary: #F5F5F7;
  --text-muted: #A1A1A6;
  --border-subtle: #2A2A2A;
}

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

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Times New Roman', Times, serif;
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
}

/* ── Loading overlay ── */
#loadingOverlay {
  position: fixed; inset: 0;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 14px;
  z-index: 999;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; color: var(--text-quaternary);
}
.spinner {
  width: 22px; height: 22px;
  border: 1.5px solid var(--border);
  border-top-color: var(--text-tertiary);
  border-radius: 50%;
  animation: spin 0.9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Header ── */
.header {
  padding: 22px 40px 18px;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  background: var(--surface);
}

.header h1 {
  font-size: 22px; font-weight: 700;
  letter-spacing: -0.3px; color: var(--text);
  display: flex; align-items: center; gap: 0;
  padding-left: 60px;
}

.header .brand-logo {
  height: 32px;
  vertical-align: middle;
  margin: 0 12px;
  opacity: 0.85;
}

.header .brand-sub {
  font-size: 13px; color: var(--text-quaternary);
  font-family: 'Times New Roman', Times, serif;
  font-weight: 400; letter-spacing: 0.2px; font-style: italic;
}

.header .subtitle {
  font-size: 12px; color: var(--text-faint);
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.3px;
}

/* ── Pipeline ── */
.pipeline {
  display: flex; gap: 0;
  padding: 12px 40px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  overflow-x: auto;
}

.pipeline-step {
  display: flex; align-items: center; gap: 7px;
  padding: 6px 14px; font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  color: var(--text-quaternary);
  white-space: nowrap; cursor: pointer; overflow: hidden; text-overflow: ellipsis;
  border-radius: 6px; transition: all 0.2s;
  letter-spacing: 0.3px;
}

.pipeline-step:hover { background: var(--surface-2); }
.pipeline-step.active { color: var(--text); background: var(--surface-2); font-weight: 500; }
.pipeline-step.complete { color: var(--text-tertiary); }  /* computed: #A1A1A6 */
.pipeline-step.complete::before {
  content: '';
  display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; background: var(--text-secondary); margin-right: 2px;
}
.pipeline-step.pending { color: var(--text-tertiary); }  /* computed: #A1A1A6 — identical to complete */
.pipeline-step.pending::before {
  content: '';
  display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; border: 1.5px solid var(--text-tertiary); margin-right: 6px;
}
.pipeline-step.active::before {
  content: '';
  display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; background: var(--text); margin-right: 6px;
}

.pipeline-arrow {
  display: flex; align-items: center;
  color: var(--border-light); padding: 0 2px; font-size: 12px;
}

/* ── Main grid ── */
.main {
  display: grid;
  grid-template-columns: 260px 1fr 380px;
  flex: 1;
  min-height: 0;
}

.panel {
  border-right: 1px solid var(--border);
  overflow-y: auto;
}
.panel:last-child { border-right: none; border-left: 1px solid var(--border); }

/* ── Left panel ── */
.panel-header {
  padding: 20px 20px 12px;
  position: sticky; top: 0;
  background: var(--surface);
  z-index: 2;
  border-bottom: 1px solid var(--border);
}

.panel-title {
  font-size: 9px; font-family: 'JetBrains Mono', monospace; font-weight: 700;
  color: var(--text-quaternary);
  text-transform: uppercase; letter-spacing: 1.8px;
}

.search-box {
  margin: 12px 20px;
  padding: 8px 12px;
  width: calc(100% - 40px);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-2);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; color: var(--text);
  outline: none; transition: border-color 0.2s;
}
.search-box::placeholder { color: var(--text-faint); }
.search-box:focus { border-color: var(--text-quaternary); }

.employee-list { padding: 4px 0; }

.employee {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 20px; cursor: pointer;
  transition: all 0.15s;
  border-left: 3px solid transparent;
}
.employee:hover { background: var(--surface-2); }
.employee.selected { background: var(--surface-2); border-left-color: var(--text); }
.employee.removed { opacity: 0.3; }
.employee.removed .emp-name { text-decoration: line-through; }

.emp-info { flex: 1; min-width: 0; }
.emp-name { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 2px; }
.emp-role { font-size: 11px; color: var(--text-quaternary); font-family: 'JetBrains Mono', monospace; }
.emp-topics { font-size: 10px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; margin-top: 1px; }

.risk-badge {
  font-size: 11px; font-family: 'JetBrains Mono', monospace;
  padding: 5px 10px; border-radius: 20px; font-weight: 500;
  flex-shrink: 0; margin-left: 12px;
  display: flex; flex-direction: column; align-items: center; line-height: 1.2;
}
.risk-badge-sub { font-size: 8px; opacity: 0.5; line-height: 1; font-weight: 400; }
.risk-high { background: var(--danger-bg); color: #D4342E; font-weight: 600; }
.risk-med  { background: var(--caution-dim); color: #C49032; }
.risk-low  { background: var(--success-bg); color: #2D8C3C; }

/* ── Graph panel ── */
.graph-container { width: 100%; height: 100%; background: var(--graph-bg); position: relative; }

.graph-header {
  position: absolute; top: 16px; left: 20px; right: 20px;
  display: flex; justify-content: space-between; align-items: center;
  z-index: 2; pointer-events: none;
}
.graph-title { font-size: 14px; font-weight: 600; color: var(--text); }
.graph-hint { font-size: 11px; font-family: 'JetBrains Mono', monospace; color: var(--text-faint); margin-left: 12px; }
.graph-legend { display: flex; gap: 16px; font-size: 10px; font-family: 'JetBrains Mono', monospace; color: var(--text-quaternary); }
.legend-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; vertical-align: middle; }

svg { width: 100%; height: 100%; }
svg.inline-svg { width: auto; height: auto; }
.node-circle { cursor: pointer; }
.node-circle:hover { stroke: var(--text) !important; stroke-width: 2.5px !important; }
.node-label { fill: var(--text-tertiary); font-size: 9px; font-family: 'JetBrains Mono', monospace; pointer-events: none; text-anchor: middle; }
.edge-line { }
.edge-line.broken { stroke: var(--enron-red) !important; stroke-dasharray: 4 4; opacity: 0.4; }

/* ── Quadrant pill (sidebar) ── */
.emp-quadrant-pill {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.5px;
  padding: 2px 5px;
  border-radius: 2px;
  margin-top: 3px;
  text-transform: uppercase;
}

/* ── Quadrant banner (right panel) ── */
.quadrant-banner {
  padding: 12px 20px 14px;
  border-bottom: 1px solid var(--border);
}
.quadrant-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  display: block;
  margin-bottom: 3px;
}
.quadrant-desc {
  font-family: 'Times New Roman', Times, serif;
  font-size: 12px;
  color: var(--text-faint);
  line-height: 1.55;
}

/* ── Graph tooltip ── */
#graphTooltip {
  position: fixed;
  display: none;
  background: var(--surface-2);
  border: 1px solid var(--border-light);
  color: var(--text-secondary);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  padding: 6px 10px;
  pointer-events: none;
  z-index: 100;
  white-space: nowrap;
}

/* ── Footer ── */
.footer {
  width: 100%;
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text-faint);
  padding: 12px;
  border-top: 1px solid var(--border);
}

/* ── Right / detail panel ── */
.detail-panel { padding: 0; background: var(--surface); overflow-x: hidden; }

.detail-header { padding: 24px 20px 16px; border-bottom: 1px solid var(--border); }
.detail-name { font-size: 24px; font-weight: 600; font-family: 'Times New Roman', Times, serif; color: var(--text); letter-spacing: -0.3px; margin-bottom: 2px; }
.detail-role { font-size: 12px; color: var(--text-quaternary); font-family: 'JetBrains Mono', monospace; }

.metrics-row {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 1px; background: var(--border);
  border-bottom: 1px solid var(--border);
}
.hire-gap-section {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
}
.hire-gap-critical { color: #D4342E; font-weight: 600; }
.hire-gap-ok { color: var(--text-tertiary); }
.metric-card { padding: 16px 20px; background: var(--surface); }
.metric-label { font-size: 8px; font-family: 'JetBrains Mono', monospace; font-weight: 600; color: var(--text-faint); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 6px; }
.metric-value { font-size: 32px; font-weight: 700; letter-spacing: -1px; color: var(--text); }
.metric-sub { font-size: 11px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; margin-top: 4px; }

.recovery-section { padding: 20px; border-bottom: 1px solid var(--border); }
.section-title { font-size: 9px; font-family: 'JetBrains Mono', monospace; font-weight: 700; color: var(--text-faint); text-transform: uppercase; letter-spacing: 1.8px; margin-bottom: 14px; }
.recovery-chart { width: 100%; height: 156px; overflow: visible; }

.recovery-bar-track { height: 4px; background: var(--border); border-radius: 2px; margin-top: 10px; overflow: hidden; }
.recovery-bar-fill { height: 100%; border-radius: 2px; background: var(--text); transition: width 0.8s ease; }

.month-selector { display: flex; gap: 6px; margin: 14px 0; }
.month-btn {
  padding: 6px 12px; border-radius: 6px; border: 1px solid var(--border-light);
  background: var(--surface); color: var(--text-tertiary);
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  cursor: pointer; transition: all 0.15s;
}
.month-btn:hover { border-color: var(--text-quaternary); }

.topics-section { padding: 20px; border-bottom: 1px solid var(--border); }
.topic-row { padding: 8px 6px; border-bottom: 1px solid var(--border); }
.topic-row:last-child { border-bottom: none; }
.topic-row-alt { background: rgba(255,255,255,0.02); border-radius: 3px; }
.topic-row-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; }
.topic-name { color: var(--text-secondary); font-size: 11px; font-weight: 500; }
.topic-pill {
  font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.8px;
  padding: 2px 7px; border-radius: 10px;
}
.topic-pill-recovered { background: rgba(45,140,60,0.07);  color: #2D8C3C; }
.topic-pill-partial   { background: rgba(196,144,50,0.08);  color: #C49032; }
.topic-pill-lost      { background: rgba(212,52,46,0.08);  color: #D4342E; }
.topic-bar-track { height: 3px; background: var(--border); border-radius: 2px; overflow: hidden; }
.topic-bar-fill { height: 100%; border-radius: 2px; transition: width 0.6s ease; }
.topic-bar-recovered { background: #2D8C3C; }
.topic-bar-partial   { background: #C49032; }
.topic-bar-lost      { background: #D4342E; }

.successor-section { padding: 20px; border-bottom: 1px solid var(--border); overflow-x: hidden; }
.successor-item { margin-bottom: 8px; padding-left: 0; border-left: none; min-width: 0; }
.successor-item:last-child { margin-bottom: 0; }
.successor-topic { font-size: 8px; font-family: 'JetBrains Mono', monospace; font-weight: 700; color: var(--text-faint); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.successor-row { display: flex; align-items: center; gap: 10px; min-width: 0; overflow: hidden; }
.successor-name { font-size: 11px; font-weight: 500; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

.routing-section { padding: 20px; }
.routing-toggle { font-size: 11px; font-family: 'JetBrains Mono', monospace; color: var(--text-quaternary); cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 4px 0; transition: color 0.15s; user-select: none; }
.routing-toggle:hover { color: var(--text-secondary); }
.routing-log { max-height: 260px; overflow-y: auto; margin-top: 12px; display: none; position: relative; }
.routing-log.open { display: block; }
.routing-timeline { display: flex; flex-direction: column; padding-left: 22px; position: relative; }
.routing-timeline::before { content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 1px; background: var(--border); }
.log-card { position: relative; margin-bottom: 6px; padding: 7px 10px; background: rgba(255,255,255,0.02); border: 1px solid var(--border); border-radius: 5px; display: flex; justify-content: space-between; align-items: flex-start; }
.log-card::before { content: ''; position: absolute; left: -18px; top: 50%; transform: translateY(-50%); width: 7px; height: 7px; border-radius: 50%; background: var(--border); }
.log-card-green::before  { background: #2D8C3C; }
.log-card-orange::before { background: #C49032; }
.log-card-red::before    { background: #D4342E; }
.log-card-month { font-size: 9px; font-family: 'JetBrains Mono', monospace; font-weight: 700; color: var(--text-faint); letter-spacing: 0.5px; margin-bottom: 2px; }
.log-card-text { font-size: 10px; font-family: 'JetBrains Mono', monospace; color: var(--text-quaternary); line-height: 1.4; }
.log-card-score { font-size: 9px; font-family: 'JetBrains Mono', monospace; font-weight: 700; }

.empty-state { padding: 60px 20px; text-align: center; }
.empty-state-title { font-size: 16px; color: var(--text-tertiary); margin-bottom: 8px; }
.empty-state-hint { font-size: 12px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; }

/* ── Modal ── */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  z-index: 100; display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity 0.2s;
}
.modal-overlay.open { opacity: 1; pointer-events: auto; }
.modal {
  background: rgba(8,8,8,0.75);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px; width: 680px; max-width: 680px;
  box-shadow: 0 8px 48px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.05);
  position: relative; overflow: hidden;
}
.modal::before {
  content: ''; position: absolute; width: 300px; height: 300px; border-radius: 50%;
  background: radial-gradient(circle, rgba(45,140,60,0.12) 0%, transparent 70%);
  top: -80px; right: -60px; filter: blur(60px); pointer-events: none; z-index: 0;
}
.modal::after {
  content: ''; position: absolute; width: 250px; height: 250px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0,114,188,0.10) 0%, transparent 70%);
  bottom: -60px; left: -40px; filter: blur(50px); pointer-events: none; z-index: 0;
}
.modal-scroll {
  padding: 36px; max-height: 88vh; overflow-y: auto;
  position: relative; z-index: 1;
}
.modal-close {
  position: absolute; top: 16px; right: 16px;
  width: 28px; height: 28px; border-radius: 50%;
  border: none; background: var(--surface-2); color: var(--text-tertiary);
  font-size: 16px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
}
.modal-close:hover { background: var(--border); }
.modal h2 { font-size: 22px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.modal .stage-label { font-size: 11px; font-family: 'JetBrains Mono', monospace; color: var(--text-faint); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 20px; }
.modal-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.modal-row:last-child { border-bottom: none; }
.modal-key { color: var(--text-tertiary); }
.modal-val { color: var(--text); font-weight: 600; font-family: 'JetBrains Mono', monospace; }
.modal-section { font-size: 11px; font-family: 'JetBrains Mono', monospace; color: var(--text-faint); text-transform: uppercase; letter-spacing: 1px; margin: 16px 0 6px; }

/* Modal entrance animations */
@keyframes modalFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes modalChildFadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.modal-animate-in { animation: modalFadeUp 0.4s ease both; }
.modal-animate-in h2 { animation: modalChildFadeUp 0.35s ease 0.18s both; }
.modal-animate-in .stage-label { animation: modalChildFadeUp 0.35s ease 0.10s both; }
.modal-animate-in .modal-row,
.modal-animate-in .modal-section,
.modal-animate-in .modal-assumptions {
  animation: modalChildFadeUp 0.3s ease calc(0.26s + var(--ri, 0) * 0.06s) both;
}

/* Metric info icon + hover tooltip */
.metric-info { position: relative; display: inline-block; font-size: 10px; color: var(--text-faint); cursor: help; margin-left: 4px; vertical-align: middle; }
.metric-info-tip { position: absolute; bottom: 130%; left: 50%; transform: translateX(-50%); background: var(--surface-2); border: 1px solid var(--border-light); color: var(--text-secondary); font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 400; line-height: 1.55; padding: 8px 10px; border-radius: 6px; width: 240px; pointer-events: none; opacity: 0; transition: opacity 0.15s; z-index: 9999; text-align: left; text-transform: none; letter-spacing: 0; white-space: normal; }
.metric-info:hover .metric-info-tip { opacity: 1; }

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-quaternary); }

/* ── Dashboard wrapper ── */
/* display/height/width/overflow are set via inline style in enterDashboard()
   so D3 always sees real pixel dimensions. This rule is a safety fallback. */
#dashboard {
  flex: 1;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

/* ── Graph view ── */
.graph-view-layout {
  display: grid;
  grid-template-columns: 260px 1fr 380px;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.gv-left {
  background: var(--surface); border-right: 1px solid var(--border);
  padding: 16px; overflow-y: auto; overflow-x: hidden;
}
.gv-center {
  display: flex; flex-direction: column;
  background: var(--graph-bg); overflow: hidden; position: relative;
  min-width: 0; /* prevent grid blowout */
}
.gv-right {
  background: var(--surface); border-left: 1px solid var(--border);
  padding: 20px; overflow-y: auto; overflow-x: hidden; min-width: 0;
}
.gv-tab-bar {
  display: flex; border-bottom: 1px solid var(--border);
  background: var(--surface-2); flex-shrink: 0;
}
.gv-tab {
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  padding: 10px 18px; cursor: pointer; color: var(--text-quaternary);
  border-bottom: 2px solid transparent; transition: all 0.15s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gv-tab.active { color: var(--text); border-bottom-color: var(--text); }
.gv-tab:hover { color: var(--text-tertiary); }
.gv-q-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.gv-q-card {
  background: rgba(255,255,255,0.03); border-radius: 6px; padding: 12px;
  border: 1px solid rgba(255,255,255,0.06); border-left: 3px solid;
}
.gv-q-count { font-family: 'JetBrains Mono', monospace; font-size: 20px; font-weight: 700; letter-spacing: -0.5px; }
.gv-q-label { font-family: 'JetBrains Mono', monospace; font-size: 8px; font-weight: 600; letter-spacing: 1.2px; color: var(--text-tertiary); margin-top: 3px; text-transform: uppercase; }
.gv-finding {
  background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px; padding: 12px; margin-bottom: 8px;
}
.gv-finding-label { font-family: 'JetBrains Mono', monospace; font-size: 8px; font-weight: 600; letter-spacing: 1.5px; color: var(--text-quaternary); text-transform: uppercase; }
.gv-finding-value { font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 700; margin-top: 3px; }
.gv-finding-sub { font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-quaternary); margin-top: 2px; }
.gv-placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  height: 100%; color: var(--text-quaternary); font-size: 13px;
  text-align: center; line-height: 1.6; font-family: 'JetBrains Mono', monospace;
}
/* ── Right panel typography ── */
.gv-person-name {
  font-family: 'Times New Roman', Times, serif;
  font-size: 22px; font-weight: 600; margin-bottom: 4px; letter-spacing: -0.2px;
}
.gv-person-title {
  font-size: 11px; color: var(--text-tertiary); margin-bottom: 10px;
  font-family: 'JetBrains Mono', monospace; line-height: 1.4;
}
.gv-quadrant-badge {
  display: inline-block; padding: 3px 10px; border-radius: 4px;
  font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 10px;
}
.gv-quadrant-ctx {
  font-size: 12.5px; color: var(--text-tertiary); line-height: 1.55; margin-bottom: 16px;
  hyphens: none;
}
.gv-section-header {
  font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700;
  letter-spacing: 1.8px; color: var(--text-quaternary); text-transform: uppercase;
  margin-top: 20px; margin-bottom: 10px; padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.gv-metrics { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-bottom: 0; }
.gv-stat {
  background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px; padding: 12px;
}
.gv-stat-label {
  font-family: 'JetBrains Mono', monospace; font-size: 8px; font-weight: 600;
  letter-spacing: 1.5px; color: var(--text-quaternary); text-transform: uppercase;
}
.gv-stat-value {
  font-family: 'JetBrains Mono', monospace; font-size: 20px; font-weight: 700;
  letter-spacing: -0.5px; margin-top: 4px;
}
.gv-ego {
  background: rgba(255,255,255,0.02); border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.06); height: 180px; overflow-y: auto;
}
.gv-uniq-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.04); }
.gv-uniq-topic { font-size: 10px; color: var(--text-tertiary); flex: 1; font-family: 'JetBrains Mono', monospace; }
.gv-uniq-bar-bg { width: 70px; height: 4px; background: var(--surface-2); border-radius: 2px; flex-shrink: 0; }
.gv-uniq-bar { height: 100%; border-radius: 2px; }
.gv-uniq-count { font-size: 9px; color: var(--text-quaternary); font-family: 'JetBrains Mono', monospace; width: 65px; text-align: right; flex-shrink: 0; }
.gv-partner-row { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,0.04); font-size: 11px; font-family: 'JetBrains Mono', monospace; }
.gv-partner-name { color: var(--text); flex: 1; font-size: 10px; }
.gv-partner-bar { width: 80px; display: flex; height: 4px; border-radius: 2px; overflow: hidden; flex-shrink: 0; }
.gv-partner-sent { background: rgba(0,114,188,0.55); height: 100%; }
.gv-partner-recv { background: rgba(45,140,60,0.55); height: 100%; }
.gv-partner-total { color: var(--text-quaternary); width: 50px; text-align: right; font-size: 9px; flex-shrink: 0; }
.gv-flow-legend { display: flex; gap: 12px; font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-quaternary); margin-top: 4px; margin-bottom: 8px; }
.gvax text { fill: #48484A; font-family: 'JetBrains Mono', monospace; font-size: 10px; }
.gvax line { stroke: #1C1C1C; }
.gvax .domain { stroke: #2A2A2A; }
.gv-dept-bar { display: flex; height: 18px; border-radius: 4px; overflow: hidden; margin: 6px 0; }
.gv-dept-seg { height: 100%; display: flex; align-items: center; justify-content: center; font-family: 'JetBrains Mono', monospace; font-size: 9px; color: #0A0A0A; font-weight: 600; }
.gv-dept-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.gv-dept-item { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-tertiary); display: flex; align-items: center; gap: 4px; }
.gv-dept-dot { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
#gvTooltip {
  position: fixed; display: none;
  background: var(--surface-2); border: 1px solid var(--border-light);
  color: var(--text-secondary); font-family: 'JetBrains Mono', monospace;
  font-size: 11px; padding: 6px 10px; pointer-events: none;
  z-index: 100; border-radius: 4px; max-width: 260px; line-height: 1.5;
}

/* ── Historical Validation view ───────────────────────────────────────────── */
#hv-view {
  overflow-y: auto;
  height: calc(100vh - 90px);
  background: var(--bg);
}
.hv-container {
  max-width: 1080px;
  margin: 0 auto;
  padding: 32px 32px 80px;
}
.hv-header { margin-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,0.08); padding-bottom: 16px; }
.hv-header-sub { font-size: 11px; letter-spacing: 2px; color: var(--gold); text-transform: uppercase; margin-bottom: 6px; font-family: 'JetBrains Mono', monospace; }
.hv-header-title { font-size: 20px; font-weight: 400; letter-spacing: 0.5px; color: var(--text-primary); }
.hv-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
.hv-metric { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 4px; padding: 14px 16px; text-align: center; }
.hv-metric-val { font-size: 28px; font-weight: 400; font-family: 'JetBrains Mono', monospace; }
.hv-metric-lbl { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-muted); margin-top: 4px; font-family: 'JetBrains Mono', monospace; }
.hv-tabs { display: flex; gap: 0; margin-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.hv-tab { padding: 10px 20px; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-muted); cursor: pointer; border-bottom: 2px solid transparent; font-family: 'JetBrains Mono', monospace; transition: all 0.15s; }
.hv-tab:hover { color: var(--text-secondary); }
.hv-tab.active { color: var(--gold); border-bottom-color: var(--gold); }
.hv-split { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid rgba(255,255,255,0.06); border-radius: 4px; overflow: hidden; margin-bottom: 24px; }
.hv-col-head { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); padding: 12px 16px; background: rgba(196,144,50,0.05); border-bottom: 1px solid rgba(255,255,255,0.06); font-family: 'JetBrains Mono', monospace; }
.hv-left-col { border-right: 1px solid rgba(255,255,255,0.06); }
.hv-row { display: flex; align-items: flex-start; padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,0.04); gap: 10px; cursor: pointer; transition: background 0.15s; }
.hv-row:hover { background: rgba(255,255,255,0.03); }
.hv-row.active { background: rgba(196,144,50,0.07); }
.hv-row-name { font-size: 14px; font-weight: 400; color: var(--text-primary); }
.hv-row-role { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.hv-krs { font-size: 16px; font-family: 'JetBrains Mono', monospace; color: var(--gold); min-width: 32px; text-align: right; }
.hv-detail { padding: 16px; font-size: 13px; line-height: 1.7; color: var(--text-secondary); }
.hv-detail-date { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--gold); margin-bottom: 6px; }
.hv-detail-title { font-size: 14px; color: var(--text-primary); margin-bottom: 10px; }
.hv-conc-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,0.04); }
.hv-source { font-size: 10px; color: var(--text-muted); margin-top: 10px; font-style: italic; opacity: 0.7; }
.hv-badge { font-size: 9px; letter-spacing: 1px; text-transform: uppercase; padding: 2px 8px; border-radius: 2px; font-family: 'JetBrains Mono', monospace; display: inline-block; white-space: nowrap; }
.hv-badge-oe { background: rgba(212,52,46,0.15); color: #D4342E; }
.hv-badge-st { background: rgba(196,144,50,0.15); color: #C49032; }
.hv-badge-re { background: rgba(0,114,188,0.15); color: #0072BC; }
.hv-badge-hit { background: rgba(45,140,60,0.15); color: #2D8C3C; }
.hv-badge-partial { background: rgba(196,144,50,0.15); color: #C49032; }
.hv-badge-miss { background: rgba(212,52,46,0.15); color: #D4342E; }
.hv-tl-head { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; font-family: 'JetBrains Mono', monospace; }
.hv-tl-list { padding-left: 16px; border-left: 2px solid rgba(255,255,255,0.07); }
.hv-tl-item { display: flex; gap: 14px; margin-bottom: 16px; position: relative; }
.hv-tl-item::before { content: ''; position: absolute; left: -21px; top: 6px; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.hv-tl-item.red::before { background: #D4342E; }
.hv-tl-item.green::before { background: #2D8C3C; }
.hv-tl-date { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--gold); min-width: 110px; padding-top: 1px; }
.hv-tl-text { font-size: 13px; color: var(--text-secondary); line-height: 1.55; }
.hv-domains { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.hv-domain-card { padding: 12px 14px; border-radius: 4px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
.hv-domain-name { font-size: 12px; font-weight: 500; margin-bottom: 5px; }
.hv-domain-card.collapsed .hv-domain-name { color: rgba(212,52,46,0.8); }
.hv-domain-card.partial .hv-domain-name { color: rgba(196,144,50,0.8); }
.hv-domain-card.survived .hv-domain-name { color: rgba(45,140,60,0.8); }
.hv-domain-desc { font-size: 12px; color: var(--text-muted); line-height: 1.5; margin-bottom: 8px; }
.hv-src-panel { background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.06); border-radius: 4px; padding: 16px; margin-top: 24px; }
.hv-src-head { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px; font-family: 'JetBrains Mono', monospace; }
.hv-src-item { font-size: 12px; color: var(--text-muted); padding: 4px 0; line-height: 1.55; }
.hv-src-num { font-family: 'JetBrains Mono', monospace; color: var(--gold); margin-right: 8px; }
.hv-src-link { color: #C49032; text-decoration: none; }
.hv-src-link:hover { text-decoration: underline; }

/* ── Report view ──────────────────────────────────────────────────────────── */
#report-view {
  overflow-y: auto;
  height: calc(100vh - 90px);
  background: var(--bg);
}
.report-container {
  max-width: 1080px;
  margin: 0 auto;
  padding: 40px 32px 80px;
}
.report-header {
  text-align: center;
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--border);
}
.report-header h1 {
  font-family: 'Times New Roman', Times, serif;
  font-size: 36px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.5px;
  margin-bottom: 8px;
}
.report-header .report-subtitle {
  font-family: 'Times New Roman', Times, serif;
  font-size: 15px;
  color: var(--text-secondary);
  margin-bottom: 16px;
}
.report-header .report-meta {
  display: flex;
  justify-content: center;
  gap: 32px;
  font-size: 10px;
  color: var(--text-faint);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-weight: 600;
}
.rpt-section-header {
  font-family: 'Times New Roman', Times, serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  margin: 48px 0 6px;
  letter-spacing: -0.3px;
}
.rpt-section-rule {
  height: 1px;
  background: var(--border-light);
  margin-bottom: 24px;
}
.rpt-subheader {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.8px;
  color: var(--text-faint);
  margin-bottom: 16px;
  font-family: 'JetBrains Mono', monospace;
}
.rpt-exec-summary {
  font-family: 'Times New Roman', Times, serif;
  font-size: 14px;
  line-height: 1.9;
  color: var(--text-secondary);
  margin-bottom: 32px;
}
.rpt-exec-summary strong {
  color: var(--text);
  font-weight: 700;
}
.rpt-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
.rpt-stat-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 20px;
  text-align: center;
}
.rpt-stat-card .rpt-stat-number {
  font-family: 'JetBrains Mono', monospace;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 6px;
}
.rpt-stat-card .rpt-stat-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--text-faint);
}
.rpt-quadrant-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 40px;
}
.rpt-quadrant-card {
  border-radius: 6px;
  padding: 16px 20px;
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.rpt-quadrant-card .rq-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}
.rpt-quadrant-card .rq-label {
  font-family: 'Times New Roman', Times, serif;
  font-size: 13px;
  font-weight: 700;
}
.rpt-quadrant-card .rq-desc {
  font-family: 'Times New Roman', Times, serif;
  font-size: 11px;
  color: var(--text-faint);
  margin-top: 2px;
}
.rqc-emergency { background: rgba(212,52,46,0.06); border: 1px solid rgba(212,52,46,0.15); }
.rqc-emergency .rq-count, .rqc-emergency .rq-label { color: #D4342E; }
.rqc-silent    { background: rgba(196,144,50,0.06);  border: 1px solid rgba(196,144,50,0.15); }
.rqc-silent    .rq-count, .rqc-silent .rq-label    { color: #C49032; }
.rqc-replaceable { background: rgba(0,114,188,0.06); border: 1px solid rgba(0,114,188,0.15); }
.rqc-replaceable .rq-count, .rqc-replaceable .rq-label { color: #0072BC; }
.rqc-low       { background: rgba(45,140,60,0.05);  border: 1px solid rgba(45,140,60,0.15); }
.rqc-low       .rq-count, .rqc-low .rq-label       { color: #2D8C3C; }
.rpt-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 40px;
}
.rpt-table thead th {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--text-faint);
  text-align: left;
  padding: 8px 12px;
  border-bottom: 2px solid var(--border);
}
.rpt-table tbody td {
  padding: 14px 12px;
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: top;
  font-family: 'Times New Roman', Times, serif;
  font-size: 13px;
  color: var(--text-secondary);
}
.rpt-table tbody tr:hover { background: rgba(255,255,255,0.02); }
.rpt-person-name {
  font-family: 'Times New Roman', Times, serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.rpt-person-role {
  font-family: 'Times New Roman', Times, serif;
  font-size: 11px;
  color: var(--text-faint);
  margin-top: 2px;
}
.rpt-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 3px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.rpt-badge-emergency { background: rgba(212,52,46,0.08); color: #D4342E; }
.rpt-badge-silent    { background: rgba(196,144,50,0.08);  color: #C49032; }
.rpt-badge-replaceable { background: rgba(0,114,188,0.07); color: #0072BC; }
.rpt-risk-meter {
  width: 100%;
  height: 4px;
  background: var(--border);
  border-radius: 2px;
  margin-top: 6px;
  overflow: hidden;
}
.rpt-scenario-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 40px;
}
.rpt-scenario-card {
  border-radius: 6px;
  padding: 28px;
}
.rpt-scenario-card.bad  { background: rgba(212,52,46,0.08);  border: 1px solid rgba(212,52,46,0.18); }
.rpt-scenario-card.good { background: rgba(45,140,60,0.08);   border: 1px solid rgba(45,140,60,0.18); }
.rpt-scenario-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.8px;
  margin-bottom: 12px;
}
.rpt-scenario-card.bad  .rpt-scenario-label { color: #D4342E; }
.rpt-scenario-card.good .rpt-scenario-label { color: #2D8C3C; }
.rpt-scenario-title {
  font-family: 'Times New Roman', Times, serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}
.rpt-scenario-stats {
  display: flex;
  gap: 24px;
  margin-bottom: 16px;
}
.rpt-s-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 22px;
  font-weight: 700;
}
.rpt-scenario-card.bad  .rpt-s-val { color: #D4342E; }
.rpt-scenario-card.good .rpt-s-val { color: #2D8C3C; }
.rpt-s-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  color: var(--text-faint);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.rpt-scenario-body {
  font-family: 'Times New Roman', Times, serif;
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.8;
}
.rpt-gap-bar-wrap { display: flex; align-items: center; gap: 8px; }
.rpt-gap-bar { flex: 1; height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; }
.rpt-gap-bar-fill { height: 100%; border-radius: 3px; }
.rpt-gap-pct { font-family: 'JetBrains Mono', monospace; font-weight: 600; width: 36px; text-align: right; }
.rpt-rec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin-bottom: 40px;
}
.rpt-rec-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 24px;
  position: relative;
}
.rpt-rec-number {
  font-family: 'JetBrains Mono', monospace;
  font-size: 48px;
  font-weight: 700;
  color: var(--border);
  position: absolute;
  top: 12px;
  right: 16px;
  line-height: 1;
}
.rpt-rec-title {
  font-family: 'Times New Roman', Times, serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
  padding-right: 40px;
}
.rpt-rec-timeline {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--enron-blue);
  margin-bottom: 10px;
}
.rpt-rec-body {
  font-family: 'Times New Roman', Times, serif;
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.8;
}
/* Dossier cards */
.rpt-dossier-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 40px;
}
.rpt-dossier-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 24px;
}
.rpt-dossier-card.emergency { border-top: 3px solid #D4342E; }
.rpt-dossier-card.silent    { border-top: 3px solid #C49032; }
.rpt-dossier-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 12px; }
.rpt-dossier-name {
  font-family: 'Times New Roman', Times, serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 2px;
}
.rpt-dossier-title {
  font-family: 'Times New Roman', Times, serif;
  font-size: 12px;
  color: var(--text-faint);
}
.rpt-dossier-body {
  font-family: 'Times New Roman', Times, serif;
  font-size: 13px;
  line-height: 1.8;
  color: var(--text-secondary);
  margin-bottom: 16px;
}
.rpt-dossier-section-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--text-faint);
  margin-bottom: 6px;
  margin-top: 14px;
}
.rpt-dossier-kv {
  font-family: 'Times New Roman', Times, serif;
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 3px;
}
.rpt-dossier-kv strong {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--text);
}
.rpt-risk-summary {
  margin-top: 14px;
  padding: 10px 14px;
  border-left: 3px solid;
  font-family: 'Times New Roman', Times, serif;
  font-size: 13px;
  font-style: italic;
  color: var(--text-secondary);
  line-height: 1.6;
}
.rpt-risk-summary.emergency { border-color: #D4342E; background: rgba(212,52,46,0.05); }
.rpt-risk-summary.silent    { border-color: #C49032; background: rgba(196,144,50,0.05); }
.rpt-footer {
  text-align: center;
  padding-top: 32px;
  border-top: 1px solid var(--border);
  margin-top: 48px;
}
.rpt-footer-line {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--text-faint);
}
.rpt-print-btn {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 600;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  padding: 7px 16px;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: border-color 0.15s, color 0.15s;
}
.rpt-print-btn:hover { border-color: var(--text-secondary); color: var(--text); }
/* ── Dossier Generator ── */
.dossier-gen-section { margin-top: 64px; }
.dossier-selector-bar { display:flex; align-items:center; justify-content:space-between; padding:16px 0 20px; gap:16px; flex-wrap:wrap; }
.dossier-selector-left { display:flex; align-items:center; gap:16px; flex:1; min-width:0; }
.dossier-selector-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.8px; color:var(--text-faint); white-space:nowrap; }
.dossier-combobox { position:relative; flex:1; max-width:480px; }
.dossier-trigger { width:100%; background:var(--surface); border:1px solid var(--border); color:var(--text); font-family:'Times New Roman',Times,serif; font-size:15px; font-weight:700; padding:9px 36px 9px 14px; border-radius:4px; cursor:pointer; text-align:left; display:flex; align-items:center; gap:8px; transition:border-color 0.15s; position:relative; }
.dossier-trigger:hover { border-color:var(--text-faint); }
.dossier-trigger .t-arrow { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--text-faint); font-size:10px; pointer-events:none; }
.dossier-trigger .t-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dossier-trigger .t-risk { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; color:var(--text-faint); white-space:nowrap; }
.dossier-dropdown { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--surface); border:1px solid var(--border); border-radius:4px; z-index:300; display:none; flex-direction:column; box-shadow:0 8px 24px rgba(0,0,0,0.45); }
.dossier-dropdown.open { display:flex; }
.dossier-search { width:100%; background:transparent; border:none; border-bottom:1px solid var(--border); color:var(--text); font-family:'JetBrains Mono',monospace; font-size:11px; padding:10px 14px; outline:none; }
.dossier-search::placeholder { color:var(--text-faint); }
.dossier-option-list { max-height:300px; overflow-y:auto; }
.dossier-option-list::-webkit-scrollbar { width:4px; }
.dossier-option-list::-webkit-scrollbar-thumb { background:var(--border); border-radius:2px; }
.dossier-option { display:flex; align-items:center; gap:10px; padding:9px 14px; cursor:pointer; border-bottom:1px solid var(--border-subtle); transition:background 0.1s; }
.dossier-option:hover,.dossier-option.highlighted { background:rgba(255,255,255,0.05); }
.dossier-option.hidden { display:none; }
.dossier-option .opt-name { font-family:'Times New Roman',Times,serif; font-size:13px; font-weight:600; color:var(--text); flex:1; }
.dossier-option .opt-risk { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--text-faint); }
.dossier-option .opt-quad { font-family:'JetBrains Mono',monospace; font-size:9px; padding:2px 6px; border-radius:3px; white-space:nowrap; }
.dossier-print-btn { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--text-faint); background:var(--surface); border:1px solid var(--border); padding:9px 20px; border-radius:4px; cursor:pointer; transition:all 0.15s; white-space:nowrap; }
.dossier-print-btn:hover { color:var(--text); border-color:var(--text-faint); }
/* Dossier content */
#dossierContent { margin-top:8px; }
.gd-header { display:flex; justify-content:space-between; align-items:flex-start; padding-bottom:28px; border-bottom:2px solid var(--border); margin-bottom:36px; }
.gd-h1 { font-family:'Times New Roman',Times,serif; font-size:34px; font-weight:700; letter-spacing:-0.5px; line-height:1.1; margin-bottom:4px; color:var(--text); }
.gd-title { font-family:'Times New Roman',Times,serif; font-size:15px; color:var(--text-secondary); margin-bottom:12px; }
.gd-badge { display:inline-block; font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; padding:4px 12px; border-radius:3px; }
.gd-b-emergency { background:rgba(212,52,46,0.08); color:#D4342E; border:1px solid rgba(212,52,46,0.2); }
.gd-b-silent { background:rgba(196,144,50,0.08); color:#C49032; border:1px solid rgba(196,144,50,0.2); }
.gd-b-replaceable { background:rgba(0,114,188,0.07); color:#0072BC; border:1px solid rgba(0,114,188,0.2); }
.gd-b-low { background:rgba(45,140,60,0.07); color:#2D8C3C; border:1px solid rgba(45,140,60,0.2); }
.gd-doc-right { text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.gd-doc-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--text-faint); }
.gd-doc-class { font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:1.5px; color:#D4342E; text-transform:uppercase; font-weight:600; }
.gd-metrics { display:grid; grid-template-columns:repeat(5,1fr); margin-bottom:36px; border:1px solid var(--border); border-radius:6px; overflow:hidden; }
.gd-metric { padding:18px; text-align:center; background:var(--surface); border-right:1px solid var(--border); }
.gd-metric:last-child { border-right:none; }
.gd-m-val { font-family:'JetBrains Mono',monospace; font-size:24px; font-weight:700; line-height:1; margin-bottom:6px; }
.gd-m-lbl { font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--text-faint); }
.gd-section { margin-bottom:36px; }
.gd-sh { font-family:'Times New Roman',Times,serif; font-size:20px; font-weight:700; color:var(--text); margin-bottom:4px; }
.gd-rule { height:1px; background:var(--border-light); margin-bottom:20px; }
.gd-body { font-family:'Times New Roman',Times,serif; font-size:14px; line-height:1.85; color:var(--text-secondary); }
.gd-body strong { color:var(--text); font-weight:700; }
.gd-body p { margin-bottom:1.1em; }
.gd-body p:last-child { margin-bottom:0; }
.gd-two-col { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:36px; }
.gd-bar-legend { display:flex; gap:16px; margin-bottom:12px; }
.gd-bar-legend span { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--text-faint); display:flex; align-items:center; gap:6px; }
.gd-bar-legend .ld { width:8px; height:8px; border-radius:2px; }
.gd-contact-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.gd-c-rank { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; color:var(--text-faint); width:18px; text-align:center; }
.gd-c-name { font-family:'Times New Roman',Times,serif; font-size:13px; font-weight:600; color:var(--text); width:140px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gd-c-bar-wrap { flex:1; display:flex; align-items:center; gap:8px; }
.gd-c-bar { flex:1; height:8px; background:var(--border); border-radius:4px; overflow:hidden; }
.gd-c-bar-fill { height:100%; border-radius:4px; }
.gd-c-count { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; color:var(--text-secondary); width:52px; text-align:right; }
.gd-topic-row { margin-bottom:12px; }
.gd-topic-hdr { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.gd-topic-name { font-family:'Times New Roman',Times,serif; font-size:13px; font-weight:500; color:var(--text); }
.gd-ts { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; padding:2px 8px; border-radius:3px; }
.gd-ts-r { background:rgba(45,140,60,0.07); color:#2D8C3C; }
.gd-ts-p { background:rgba(196,144,50,0.08); color:#C49032; }
.gd-ts-l { background:rgba(212,52,46,0.08); color:#D4342E; }
.gd-topic-bar { height:4px; background:var(--border); border-radius:2px; overflow:hidden; }
.gd-topic-bar-fill { height:100%; border-radius:2px; }
.gd-recov-mini { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:20px; margin-top:16px; }
.gd-recov-hdr { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
.gd-rm-title { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--text-faint); }
.gd-rm-val { font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:700; }
.gd-rm-sub { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--text-faint); }
.gd-recov-bar-track { height:8px; background:var(--border); border-radius:4px; overflow:hidden; margin-top:8px; }
.gd-recov-bar-fill { height:100%; border-radius:4px; }
.gd-succ-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.gd-succ-card { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:16px; display:flex; align-items:center; gap:14px; }
.gd-succ-gauge { position:relative; width:48px; height:48px; flex-shrink:0; }
.gd-succ-gauge svg { transform:rotate(-90deg); }
.gd-succ-gauge .gtext { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; }
.gd-s-name { font-family:'Times New Roman',Times,serif; font-size:13px; font-weight:600; color:var(--text); margin-bottom:2px; }
.gd-s-topic { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.5px; }
.gd-impact-box { background:rgba(212,52,46,0.04); border:1px solid rgba(212,52,46,0.1); border-radius:6px; padding:24px; }
.gd-impact-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.8px; color:#D4342E; margin-bottom:10px; }
.gd-impact-text { font-family:'Times New Roman',Times,serif; font-size:14px; line-height:1.85; color:var(--text-secondary); }
.gd-impact-text strong { color:var(--text); font-weight:700; }
.gd-action-box { background:var(--surface); border:1px solid var(--border); border-left:2px solid #2D8C3C; border-radius:0 6px 6px 0; padding:24px; }
.gd-action-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.8px; color:#2D8C3C; margin-bottom:10px; }
.gd-action-text { font-family:'Times New Roman',Times,serif; font-size:14px; line-height:1.85; color:var(--text-secondary); }
.gd-action-text strong { color:var(--text); font-weight:700; }
.gd-footer { text-align:center; padding-top:28px; border-top:1px solid var(--border); margin-top:40px; }
.gd-footer-line { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--text-faint); }
/* ── Multi-removal simulation ── */
.multi-toggle {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: 4px;
  cursor: pointer; transition: all 0.2s; user-select: none; margin-top: 8px;
}
.multi-toggle:hover { border-color: var(--text-quaternary); }
.multi-toggle.active { border-color: var(--enron-blue); background: rgba(0,114,188,0.08); }
.toggle-switch {
  width: 28px; height: 14px; background: var(--border);
  border-radius: 7px; position: relative; transition: background 0.2s; flex-shrink: 0;
}
.toggle-switch::after {
  content: ''; width: 10px; height: 10px; background: var(--text-faint);
  border-radius: 50%; position: absolute; top: 2px; left: 2px; transition: all 0.2s;
}
.multi-toggle.active .toggle-switch { background: var(--enron-blue); }
.multi-toggle.active .toggle-switch::after { left: 16px; background: white; }
.toggle-label { font-size: 10px; font-family: 'JetBrains Mono', monospace; color: var(--text-faint); }
.multi-toggle.active .toggle-label { color: var(--enron-blue); }

.departure-queue {
  display: none; flex-direction: column; gap: 8px;
  padding: 10px 20px; background: rgba(212,52,46,0.04);
  border-bottom: 1px solid var(--border);
}
.departure-queue.visible { display: flex; }
.queue-header { display: flex; justify-content: space-between; align-items: center; }
.queue-title { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--enron-red); font-family: 'JetBrains Mono', monospace; }
.queue-clear { font-size: 9px; color: var(--text-faint); cursor: pointer; text-decoration: underline; font-family: 'JetBrains Mono', monospace; }
.queue-clear:hover { color: var(--text-secondary); }
.queue-chips { display: flex; flex-direction: column; gap: 4px; }
.queue-chip {
  display: flex; align-items: center; justify-content: space-between;
  padding: 5px 8px; background: var(--danger-bg);
  border: 1px solid rgba(212,52,46,0.2); border-radius: 4px;
  animation: chipIn 0.2s ease;
}
@keyframes chipIn {
  from { opacity:0; transform:translateX(-8px); }
  to   { opacity:1; transform:translateX(0); }
}
.chip-info { display: flex; align-items: center; gap: 8px; }
.chip-order { font-size: 9px; font-weight: 700; color: var(--enron-red); width: 14px; font-family: 'JetBrains Mono', monospace; }
.chip-name  { font-size: 11px; color: var(--text); font-weight: 500; font-family: 'Times New Roman', Times, serif; }
.chip-risk  { font-size: 10px; color: var(--enron-red); font-weight: 600; font-family: 'JetBrains Mono', monospace; }
.chip-remove { font-size: 14px; color: var(--text-faint); cursor: pointer; line-height: 1; padding: 0 2px; }
.chip-remove:hover { color: var(--enron-red); }
.simulate-btn {
  padding: 8px 12px; background: var(--enron-red); color: white;
  border: none; border-radius: 4px; font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px;
  cursor: pointer; transition: all 0.15s;
}
.simulate-btn:hover { background: #c41720; }
.simulate-btn:disabled { background: var(--border); color: var(--text-faint); cursor: not-allowed; }
.queue-limit { font-size: 9px; color: var(--text-faint); text-align: center; font-family: 'JetBrains Mono', monospace; }

.employee.queued { background: rgba(212,52,46,0.06) !important; border-left-color: var(--enron-red) !important; }
@keyframes riskFlash {
  0%   { color: #C49032; transform: scale(1.3); }
  100% { transform: scale(1); }
}
.risk-badge.flashing { animation: riskFlash 1s ease; }

.cascade-overlay {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  text-align: center; display: none; z-index: 10; pointer-events: none;
}
.cascade-overlay.visible { display: block; }
.cascade-text { font-size: 13px; font-family: 'JetBrains Mono', monospace; color: var(--text-secondary); margin-bottom: 8px; }
.cascade-person {
  font-family: 'Times New Roman', Times, serif; font-size: 26px; font-weight: 700; color: var(--enron-red);
}
@keyframes cascadePulse {
  0%   { opacity:0; transform:scale(0.8); }
  50%  { transform:scale(1.1); }
  100% { opacity:1; transform:scale(1); }
}
.shockwave {
  position: absolute; width: 40px; height: 40px; border-radius: 50%;
  border: 2px solid var(--enron-red); top: 50%; left: 50%;
  transform: translate(-50%, -50%); pointer-events: none;
  animation: shockwaveExpand 1s ease-out forwards;
}
@keyframes shockwaveExpand {
  0%   { width:40px; height:40px; opacity:0.8; }
  100% { width:700px; height:700px; opacity:0; }
}

/* Multi-removal combined impact right panel */
.ci-header { font-family: 'Times New Roman', Times, serif; font-size: 20px; font-weight: 700; margin-bottom: 4px; }
.ci-subheader { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-faint); margin-bottom: 20px; }
.ci-names { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.ci-name-pill { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; padding: 3px 10px; background: var(--danger-bg); border: 1px solid rgba(212,52,46,0.25); border-radius: 3px; color: var(--enron-red); }
.nonlinear-callout { background: rgba(212,52,46,0.06); border: 1px solid rgba(212,52,46,0.15); border-radius: 6px; padding: 16px; margin-bottom: 20px; }
.nonlinear-label { font-family: 'JetBrains Mono', monospace; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--enron-red); margin-bottom: 10px; }
.nonlinear-row { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.nl-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-faint); width: 100px; }
.nl-value { font-family: 'JetBrains Mono', monospace; font-size: 18px; font-weight: 700; }
.nl-bar-wrap { flex: 1; }
.nl-bar { height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; }
.nl-bar-fill { height: 100%; border-radius: 3px; transition: width 0.6s ease; }
.nonlinear-delta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--enron-red); font-weight: 600; text-align: center; padding: 8px 0 0; border-top: 1px solid rgba(212,52,46,0.15); margin-top: 4px; }
.ci-rp-section { margin-bottom: 20px; }
.ci-rp-title { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--text-faint); margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.ci-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 20px; }
.ci-metric { background: var(--surface-2); border: 1px solid var(--border); border-radius: 4px; padding: 12px; text-align: center; }
.ci-metric .m-val { font-family: 'JetBrains Mono', monospace; font-size: 20px; font-weight: 700; line-height: 1; margin-bottom: 4px; }
.ci-metric .m-label { font-family: 'JetBrains Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-faint); }
.topic-impact-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--border); }
.topic-impact-row:last-child { border-bottom: none; }
.ti-name { font-family: 'Times New Roman', Times, serif; font-size: 12px; color: var(--text); }
.ti-status { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 2px; }
.ti-lost    { background: var(--danger-bg); color: var(--enron-red); }
.ti-partial { background: rgba(196,144,50,0.08); color: #C49032; }
.affected-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.affected-row:last-child { border-bottom: none; }
.affected-name { font-family: 'Times New Roman', Times, serif; font-size: 12px; font-weight: 500; color: var(--text); }
.affected-change { display: flex; align-items: center; gap: 6px; }
.affected-arrow { color: var(--enron-red); font-size: 10px; }
.affected-new { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; color: var(--enron-red); }
.affected-old { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-faint); text-decoration: line-through; }
.multi-reset-btn { width: 100%; padding: 10px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 4px; color: var(--text-secondary); font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; transition: all 0.15s; margin-top: 12px; }
.multi-reset-btn:hover { border-color: var(--text-faint); color: var(--text); }

/* ── Print styles ── */
@media print {
  .top-bar, .pipeline, #oi-view, #graph-view, .modal-overlay { display: none !important; }
  #report-view { height: auto; overflow: visible; }
  .rpt-print-btn, .dossier-print-btn { display: none !important; }
  body { background: #fff !important; color: #111 !important; }
  .report-container { max-width: 100%; padding: 20px; }
  .rpt-stat-card, .rpt-rec-card, .rpt-dossier-card, .rpt-scenario-card {
    border-color: #ccc !important; background: #f9f9f9 !important;
  }
  .rpt-section-rule { background: #ccc !important; }
  /* Dossier-only print: add .print-dossier to body before calling print() */
  body.print-dossier .report-container > *:not(.dossier-gen-section) { display:none !important; }
  body.print-dossier .dossier-gen-section { display:block !important; }
  body.print-dossier .dossier-selector-bar { display:none !important; }
  .gd-impact-box,.gd-action-box,.gd-succ-card,.gd-recov-mini,.gd-metrics { border-color:#ccc !important; background:#f9f9f9 !important; }
}

/* ---- next embedded style block ---- */

/* ══════════════════════════════════════════════════════════════════════════════
   Cover page v9 — all rules scoped under #cover-page to avoid conflicts with
   the dashboard's .modal-overlay, .brand-logo, .modal-close, etc.
   ══════════════════════════════════════════════════════════════════════════════ */

#cover-page {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: #0d0d0d;
  color: #e0e0e0;
  font-family: 'Times New Roman', Times, serif;
  overflow: hidden;
}

/* Liquid glass background orbs */
#cover-page .bg-orbs {
  position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
}
#cover-page .orb {
  position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.07;
  animation: orbFloat 20s ease-in-out infinite;
}
#cover-page .orb-1 { width:600px; height:600px; background:radial-gradient(circle,#0080C0 0%,transparent 70%); top:-15%; left:-10%; animation-duration:22s; }
#cover-page .orb-2 { width:500px; height:500px; background:radial-gradient(circle,#E02030 0%,transparent 70%); top:60%; right:-12%; animation-delay:-7s; animation-duration:25s; }
#cover-page .orb-3 { width:450px; height:450px; background:radial-gradient(circle,#209050 0%,transparent 70%); bottom:-10%; left:30%; animation-delay:-14s; animation-duration:28s; }
@keyframes orbFloat {
  0%,100% { transform:translate(0,0) scale(1); }
  33% { transform:translate(30px,-20px) scale(1.05); }
  66% { transform:translate(-20px,15px) scale(0.95); }
}

/* Vignette + noise grain */
#cover-page::after {
  content:''; position:fixed; inset:0;
  background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,0.6) 100%);
  pointer-events:none; z-index:0;
}
#cover-page::before {
  content:''; position:fixed; inset:0; opacity:0.03;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  pointer-events:none; z-index:0;
}

#cover-page .page {
  height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  position:relative; z-index:1;
}

#cover-page .brand-row {
  display:flex; align-items:center; gap:18px; margin-bottom:8px;
  opacity:0; animation:cpFadeUp 0.9s ease 0.2s forwards;
}
#cover-page .brand-logo { height:78px; width:auto; object-fit:contain; filter:drop-shadow(0 0 12px rgba(0,128,192,0.15)); }
#cover-page .brand-text { font-family:'JetBrains Mono',monospace; font-size:21px; letter-spacing:5px; text-transform:uppercase; color:#777; }

#cover-page .author-name {
  font-family:'Times New Roman',Times,serif; font-size:20px; letter-spacing:4px;
  text-transform:uppercase; color:var(--text-faint); margin-bottom:47px;
  opacity:0; animation:cpFadeUp 0.9s ease 0.4s forwards;
}

/* Title — letter span approach, word-level Enron color rotation */
#cover-page .title-block {
  text-align:center; margin-bottom:22px;
  opacity:0; animation:cpFadeUp 1s ease 0.6s forwards;
}
#cover-page .title-line {
  font-size:52px; font-weight:700; line-height:1.22; letter-spacing:0.5px;
}
#cover-page .title-word { display:inline; }
#cover-page .title-letter {
  display:inline-block; opacity:0.5;
  transition:opacity 0.15s ease, text-shadow 0.15s ease; cursor:default;
}
#cover-page .title-letter:hover {
  opacity:1;
  text-shadow:0 0 18px currentColor, 0 0 40px currentColor;
}

#cover-page .subtitle {
  font-size:15px; color:#888; max-width:480px; text-align:center; line-height:1.75; margin-bottom:34px;
  opacity:0; animation:cpFadeUp 0.9s ease 0.9s forwards;
}

#cover-page .btn-row {
  display:flex; align-items:center; gap:28px; margin-bottom:32px;
  opacity:0; animation:cpFadeUp 0.9s ease 1.1s forwards;
}
#cover-page .enter-btn {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Times New Roman',serif; font-size:15px; font-weight:700; color:#ddd;
  background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.12);
  padding:13px 32px; border-radius:100px; cursor:pointer; transition:all 0.3s;
  letter-spacing:0.5px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
#cover-page .enter-btn:hover { color:#fff; border-color:rgba(255,255,255,0.25); background:rgba(255,255,255,0.06); box-shadow:0 0 30px rgba(0,128,192,0.08); }
#cover-page .enter-arrow { display:inline-flex; align-items:center; opacity:0.4; transition:opacity 0.3s; }
#cover-page .enter-btn:hover .enter-arrow { opacity:0.8; }

#cover-page .how-link { font-size:15px; color:#888; cursor:pointer; display:flex; align-items:center; gap:6px; transition:color 0.25s; text-decoration:none; }
#cover-page .how-link:hover { color:#aaa; }
#cover-page .how-link .arrow { transition:transform 0.25s; font-size:14px; }
#cover-page .how-link:hover .arrow { transform:translateX(4px); }

#cover-page .stats-row {
  display:flex; align-items:center; gap:32px; margin-bottom:28px;
  opacity:0; animation:cpFadeUp 0.9s ease 1.3s forwards;
}
#cover-page .stat { text-align:center; }
#cover-page .stat .sv { font-family:'JetBrains Mono',monospace; font-size:14px; font-weight:600; color:#999; }
#cover-page .stat .sl { font-family:'JetBrains Mono',monospace; font-size:8px; text-transform:uppercase; letter-spacing:1.5px; color:#888; margin-top:3px; }
#cover-page .stat-div { width:1px; height:20px; background:rgba(255,255,255,0.06); }

#cover-page .scenario-box {
  max-width:560px; text-align:center; padding:22px 31px;
  background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.06);
  border-radius:12px; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  opacity:0; animation:cpFadeUp 0.9s ease 1.5s forwards;
}
#cover-page .scenario-box .sb-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:#888; margin-bottom:8px; }
#cover-page .scenario-box .sb-text { font-size:14px; color:#ccc; line-height:1.8; }
#cover-page .scenario-box .sb-text strong { color:#ddd; }

#cover-page .page-footer { position:fixed; bottom:16px; left:0; right:0; text-align:center; font-family:'JetBrains Mono',monospace; font-size:9px; color:#444; z-index:1; }

@keyframes cpFadeUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }

/* Modal — scoped + reset to prevent dashboard .modal-overlay bleed */
#cover-page .modal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.85);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  display:none; align-items:center; justify-content:center; z-index:1100;
  opacity:1; pointer-events:auto; transition:none;
}
#cover-page .modal-overlay.visible { display:flex; }
/* ── How It Works — three-tab modal ──────────────────────────────────────── */
#howModal .hiw-wrap { width:92vw; max-width:1200px; position:relative; }
#howModal .hiw-tab-nav { display:flex; gap:0; margin-bottom:0; position:relative; z-index:2; }
#howModal .hiw-tab-btn {
  background:rgba(14,20,28,0.6); border:1px solid rgba(196,144,50,0.1); border-bottom:none;
  color:rgba(107,122,141,0.85); font-family:'JetBrains Mono',monospace; font-size:11px;
  font-weight:500; letter-spacing:2.5px; text-transform:uppercase; padding:14px 28px;
  cursor:pointer; transition:all 0.3s ease; position:relative; border-radius:6px 6px 0 0;
}
#howModal .hiw-tab-btn:hover { color:#c8cdd3; background:rgba(14,20,28,0.8); }
#howModal .hiw-tab-btn.active {
  background:rgba(14,20,28,0.95); color:#C49032;
  border-color:rgba(196,144,50,0.25); border-bottom:1px solid rgba(14,20,28,0.95);
  margin-bottom:-1px;
}
#howModal .hiw-tab-btn.active::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:2px; background:#C49032; opacity:0.6;
}
#howModal .hiw-panel-container {
  background:rgba(14,20,28,0.95); border:1px solid rgba(196,144,50,0.2);
  border-radius:0 8px 8px 8px; position:relative; overflow:hidden;
  box-shadow:0 32px 64px rgba(0,0,0,0.5);
}
#howModal .hiw-close-btn {
  position:absolute; top:16px; right:20px; background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1); color:rgba(107,122,141,0.85);
  font-family:'JetBrains Mono',monospace; font-size:12px; padding:6px 16px;
  border-radius:4px; cursor:pointer; transition:all 0.2s; z-index:10; letter-spacing:1px;
}
#howModal .hiw-close-btn:hover { color:#e8ecf0; border-color:rgba(255,255,255,0.2); }
#howModal .hiw-tab-panel { display:none; padding:48px 52px; max-height:75vh; overflow-y:auto; }
#howModal .hiw-tab-panel.active { display:block; animation:panelFade 0.35s ease; }
@keyframes panelFade { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
#howModal .hiw-tab-panel::-webkit-scrollbar { width:6px; }
#howModal .hiw-tab-panel::-webkit-scrollbar-track { background:transparent; }
#howModal .hiw-tab-panel::-webkit-scrollbar-thumb { background:rgba(196,144,50,0.2); border-radius:3px; }
#howModal .hiw-tab-panel::-webkit-scrollbar-thumb:hover { background:rgba(196,144,50,0.35); }
/* Simple panel */
#howModal .hiw-simple-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:#2D8C3C; margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,0.06); }
#howModal #hiw-panel-simple h3 { font-size:21px; font-weight:700; margin-bottom:18px; color:var(--text); }
#howModal #hiw-panel-simple p { font-size:17px; line-height:1.8; color:var(--text-secondary); margin-bottom:18px; }
#howModal #hiw-panel-simple p strong { color:var(--text); }
/* Technical panel two-column layout */
#howModal .hiw-dual { display:grid; grid-template-columns:1fr 1fr; gap:52px; }
#howModal .hiw-col-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--gold); margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid rgba(196,144,50,0.2); }
#cover-page .step-block { margin-bottom:18px; }
#cover-page .step-block .step-num { font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:700; color:#777; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:3px; }
#cover-page .step-block .step-title { font-size:14px; font-weight:700; margin-bottom:4px; color:#ddd; }
#cover-page .step-block .step-body { font-size:12.5px; color:#aaa; line-height:1.75; }
/* Q&A panel */
#howModal .hiw-qa-label { font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--gold); margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid rgba(196,144,50,0.2); }
#howModal .hiw-panel-heading { font-family:'Times New Roman',Times,serif; font-size:26px; color:var(--text); margin-bottom:24px; font-weight:normal; }
#howModal .hiw-qa-intro { margin-bottom:40px; }
#howModal .hiw-qa-intro p { font-size:15.5px; color:rgba(107,122,141,0.9); line-height:1.7; font-style:italic; }
#howModal .hiw-qa-item { margin-bottom:36px; position:relative; }
#howModal .hiw-qa-item:last-child { margin-bottom:0; }
#howModal .hiw-qa-num { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; letter-spacing:2px; color:rgba(107,122,141,0.7); margin-bottom:10px; display:flex; align-items:center; gap:10px; }
#howModal .hiw-qa-num::after { content:''; flex:1; height:1px; background:rgba(255,255,255,0.06); }
#howModal .hiw-qa-q { font-family:'Times New Roman',Times,serif; font-size:18.5px; color:var(--text); line-height:1.55; margin-bottom:14px; font-style:italic; }
#howModal .hiw-qa-tag { display:inline-block; font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; padding:3px 8px; border-radius:3px; margin-left:8px; position:relative; top:-2px; }
#howModal .hiw-qa-tag.methodology { background:rgba(0,114,188,0.15); color:#0072BC; border:1px solid rgba(0,114,188,0.25); }
#howModal .hiw-qa-tag.validation { background:rgba(45,140,60,0.15); color:#2D8C3C; border:1px solid rgba(45,140,60,0.25); }
#howModal .hiw-qa-tag.parameters { background:rgba(196,144,50,0.15); color:#C49032; border:1px solid rgba(196,144,50,0.25); }
#howModal .hiw-qa-tag.insight { background:rgba(212,52,46,0.15); color:#D4342E; border:1px solid rgba(212,52,46,0.25); }
#howModal .hiw-qa-a { font-size:15.5px; line-height:1.75; color:#c8cdd3; }
#howModal .hiw-qa-a strong { color:var(--text); }
#howModal .hiw-qa-a .dp { font-family:'JetBrains Mono',monospace; font-size:13px; color:#C49032; }
#howModal .hiw-qa-callout { background:rgba(0,0,0,0.35); border-left:3px solid #C49032; padding:16px 20px; margin:14px 0 0 0; border-radius:0 4px 4px 0; }
#howModal .hiw-qa-callout p { font-size:14px; line-height:1.65; color:rgba(107,122,141,0.9); margin:0; }

#cover-page .page.exiting * { animation:none !important; }
#cover-page .page.exiting { animation:cpPageExit 0.8s ease forwards; }
@keyframes cpPageExit { to { opacity:0; transform:scale(0.97); } }

/* Back button — shown inside dashboard, returns to cover page */
#backToCover {
  position: fixed;
  top: 26px;
  left: 12px;
  z-index: 500;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.5px;
  color: var(--text-quaternary);
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 5px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  display: none;
}
#backToCover:hover { color: var(--text-primary); border-color: var(--text-quaternary); }

/* ── AI Automation view ─────────────────────────────────────────────────────── */
#ai-sim-view { display:flex; height:100%; overflow:hidden; }
.ai-left  { width:280px; flex-shrink:0; background:var(--surface); display:flex; flex-direction:column; overflow:hidden; border-right:1px solid var(--border); }
.ai-center { flex:1; background:var(--graph-bg); position:relative; overflow:hidden; display:flex; flex-direction:column; }
.ai-right  { width:380px; flex-shrink:0; background:var(--surface); overflow-y:auto; border-left:1px solid var(--border); }

.ai-slider-wrap { padding:16px 16px 8px; border-bottom:1px solid var(--border); }
.ai-slider-label { font-family:'JetBrains Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--text-faint); margin-bottom:6px; }
.ai-year-display { display:flex; align-items:baseline; gap:8px; margin-bottom:2px; }
.ai-year-num  { font-family:'JetBrains Mono',monospace; font-size:24px; font-weight:700; color:var(--text); line-height:1; }
.ai-year-desc { font-family:'Times New Roman',Times,serif; font-size:11px; color:var(--text-faint); line-height:1.4; }
input.ai-slider { width:100%; accent-color:var(--enron-green); cursor:pointer; margin:6px 0 2px; }

.ai-summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:10px 12px; border-bottom:1px solid var(--border); }
.ai-summary-card { background:rgba(255,255,255,0.03); border:1px solid var(--border); border-radius:5px; padding:8px 10px; }
.ai-summary-val  { font-family:'JetBrains Mono',monospace; font-size:18px; font-weight:700; color:var(--text); line-height:1; }
.ai-summary-lbl  { font-family:'JetBrains Mono',monospace; font-size:7px; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.5px; margin-top:3px; }

.ai-list-hdr { padding:8px 12px 4px; font-family:'JetBrains Mono',monospace; font-size:8px; color:var(--text-faint); text-transform:uppercase; letter-spacing:1px; flex-shrink:0; }
.ai-emp-list { flex:1; overflow-y:auto; }
.ai-emp-row  { display:flex; align-items:center; gap:8px; padding:7px 12px; cursor:pointer; border-bottom:1px solid rgba(255,255,255,0.04); transition:background 0.15s; }
.ai-emp-row:hover, .ai-emp-row.ai-selected { background:rgba(255,255,255,0.05); }
.ai-emp-name { font-family:'Times New Roman',Times,serif; font-size:12px; color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ai-emp-quad { font-family:'JetBrains Mono',monospace; font-size:8px; color:var(--text-faint); margin-top:1px; }
.ai-emp-gap  { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; flex-shrink:0; }
.ai-emp-sub  { font-family:'JetBrains Mono',monospace; font-size:7px; opacity:0.4; font-weight:400; }

.ai-center-hdr { padding:10px 16px; border-bottom:1px solid var(--border); flex-shrink:0; display:flex; align-items:center; justify-content:space-between; }
.ai-center-title { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:var(--text); }
.ai-center-hint  { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--text-faint); margin-left:10px; }
.ai-legend-item  { display:flex; align-items:center; gap:4px; font-family:'JetBrains Mono',monospace; font-size:8px; color:var(--text-faint); }
.ai-legend-dot   { width:7px; height:7px; border-radius:50%; flex-shrink:0; }

.ai-profile-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; padding:40px 16px; text-align:center; gap:6px; }
.ai-profile-empty-icon { font-size:20px; opacity:0.2; }
.ai-profile-empty-title { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--text-faint); }
.ai-profile-empty-hint  { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--text-faint); opacity:0.6; line-height:1.5; }
.ai-profile-wrap { padding:20px 18px; }
.ai-prof-name  { font-family:'Times New Roman',Times,serif; font-size:19px; font-weight:700; color:var(--text); margin-bottom:3px; }
.ai-prof-role  { font-family:'Times New Roman',Times,serif; font-size:12px; color:var(--text-faint); margin-bottom:10px; }
.ai-quad-badge { display:inline-block; font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:1px; padding:4px 8px; border-radius:3px; margin-bottom:16px; }
.ai-quad-tc  { background:rgba(212,52,46,0.15);  color:#D4342E; border:1px solid rgba(212,52,46,0.3);  }
.ai-quad-chc { background:rgba(0,114,188,0.15);  color:#0072BC; border:1px solid rgba(0,114,188,0.3);  }
.ai-quad-ns  { background:rgba(196,144,50,0.15); color:#C49032; border:1px solid rgba(196,144,50,0.3); }
.ai-quad-ar  { background:rgba(45,140,60,0.15);  color:#2D8C3C; border:1px solid rgba(45,140,60,0.3);  }

.ai-score-bubbles { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.ai-bubble { flex:1; min-width:60px; background:rgba(255,255,255,0.03); border:1px solid var(--border); border-radius:5px; padding:11px 10px 9px; text-align:center; }
.ai-bubble-val { font-family:'JetBrains Mono',monospace; font-size:17px; font-weight:700; line-height:1; }
.ai-bubble-sub { font-family:'JetBrains Mono',monospace; font-size:8px; opacity:0.35; font-weight:400; }
.ai-bubble-lbl { font-family:'JetBrains Mono',monospace; font-size:8px; color:var(--text-faint); margin-top:4px; text-transform:uppercase; letter-spacing:0.3px; }

.ai-breakdown-hdr { font-family:'JetBrains Mono',monospace; font-size:8px; color:var(--text-faint); text-transform:uppercase; letter-spacing:1px; margin-bottom:6px; margin-top:20px; }
.ai-breakdown-legend { display:flex; gap:10px; margin-bottom:8px; }
.ai-breakdown-legend span { font-family:'JetBrains Mono',monospace; font-size:7px; color:var(--text-faint); display:flex; align-items:center; gap:3px; }
.ai-br-swatch { display:inline-block; width:7px; height:7px; border-radius:2px; }
.ai-breakdown-row { margin-bottom:6px; }
.ai-br-name  { font-family:'JetBrains Mono',monospace; font-size:8px; color:var(--text-faint); margin-bottom:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ai-br-track { height:22px; border-radius:4px; background:rgba(255,255,255,0.06); overflow:hidden; display:flex; }
.ai-br-ai    { background:var(--enron-blue); height:100%; }
.ai-br-human { background:var(--enron-red); height:100%; }
.ai-narrative { font-family:'Times New Roman',Times,serif; font-size:14px; color:var(--text-faint); line-height:1.7; margin-top:18px; border-top:1px solid rgba(255,255,255,0.06); padding-top:14px; }
