/* ═══════════════════════════════════════════════════════════════
   DAEDALUS — Dashboard Design System
   Single-viewport, no-scroll simulation dashboard
   ═══════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  --bg: #06060f;
  --bg2: #0a0a16;
  --bg3: #0e0e1e;
  --card: rgba(255,255,255,0.025);
  --card2: rgba(255,255,255,0.04);
  --card3: rgba(255,255,255,0.06);
  --cyan: #00d4ff;
  --purple: #7c3aed;
  --emerald: #10b981;
  --amber: #f59e0b;
  --rose: #f43f5e;
  --blue: #3b82f6;
  --indigo: #6366f1;
  --t1: #e2e8f0;
  --t2: #94a3b8;
  --t3: #64748b;
  --t4: #475569;
  --border: rgba(255,255,255,0.06);
  --border2: rgba(255,255,255,0.1);
  --grad1: linear-gradient(135deg, var(--cyan), var(--purple));
  --grad2: linear-gradient(135deg, var(--emerald), var(--cyan));
  --font: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;
  --r: 8px;
  --r2: 12px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body { height:100%; overflow:hidden; font-family:var(--font); background:var(--bg); color:var(--t1); font-size:14px; -webkit-font-smoothing:antialiased; }
::-webkit-scrollbar { width:4px; height:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.1); border-radius:2px; }

/* ── App Shell ─────────────────────────────────────── */
.app { display:grid; grid-template-rows:46px 1fr; height:100vh; width:100vw; }

/* ── Header ────────────────────────────────────────── */
.header {
  display:flex; align-items:center; gap:12px;
  padding:0 16px; background:rgba(6,6,15,0.92);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(20px); z-index:100;
}
.logo { font-size:1rem; font-weight:800; letter-spacing:3px; background:var(--grad1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; flex-shrink:0; }
.header-sep { width:1px; height:24px; background:var(--border); flex-shrink:0; }
.tabs { display:flex; gap:4px; }
.tab-btn {
  font-family:var(--font); font-size:0.72rem; font-weight:600;
  padding:5px 12px; border-radius:6px; border:1px solid transparent;
  background:transparent; color:var(--t3); cursor:pointer;
  transition:all 150ms; letter-spacing:0.5px;
}
.tab-btn:hover { color:var(--t2); background:var(--card); }
.tab-btn.active { color:var(--cyan); background:rgba(0,212,255,0.08); border-color:rgba(0,212,255,0.15); }
.header-spacer { flex:1; }
.header-actions { display:flex; gap:6px; align-items:center; }
.h-btn {
  font-family:var(--font); font-size:0.72rem; font-weight:600;
  padding:4px 14px; border-radius:6px; border:none; cursor:pointer; transition:all 150ms;
}
.h-btn-primary { background:var(--grad1); color:#fff; }
.h-btn-primary:hover { box-shadow:0 0 12px rgba(0,212,255,0.3); }
.h-btn-secondary { background:var(--card); color:var(--t2); border:1px solid var(--border); }
.h-btn-secondary:hover { background:var(--card2); color:var(--t1); }
.round-info {
  font-family:var(--mono); font-size:0.72rem; color:var(--cyan);
  background:rgba(0,212,255,0.06); padding:3px 10px; border-radius:6px;
  border:1px solid rgba(0,212,255,0.12);
}
.composite-info {
  font-family:var(--mono); font-size:0.72rem; font-weight:700;
  padding:3px 10px; border-radius:6px;
}

/* ── Tab Panels ────────────────────────────────────── */
.tab-panel { display:none; overflow:hidden; }
.tab-panel.active { display:flex; flex-direction:column; }

/* ── Simulation Dashboard ──────────────────────────── */
.sim-dashboard {
  display:grid;
  grid-template-columns:210px 1fr 270px;
  grid-template-rows:1fr 90px;
  gap:8px; padding:8px;
  height:100%; overflow:hidden;
}

/* ── Controls Sidebar ──────────────────────────────── */
.controls {
  grid-row:1/3;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:10px; display:flex; flex-direction:column; gap:8px;
  overflow-y:auto; overflow-x:hidden;
}
.ctrl-group { }
.ctrl-title {
  font-size:0.62rem; font-weight:700; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--t3); margin-bottom:6px;
  display:flex; align-items:center; gap:5px;
}
.ctrl-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
.ctrl-label { font-size:0.72rem; color:var(--t2); }
.ctrl-select {
  background:var(--bg3); border:1px solid var(--border); border-radius:4px;
  color:var(--t1); font-family:var(--font); font-size:0.72rem;
  padding:3px 6px; cursor:pointer; outline:none; width:100%;
}
.ctrl-select:focus { border-color:var(--cyan); }
.toggle-row { display:flex; flex-wrap:wrap; gap:3px; margin-bottom:4px; }
.toggle-chip {
  font-family:var(--font); font-size:0.6rem; font-weight:500;
  padding:2px 7px; border-radius:4px;
  border:1px solid var(--border); background:transparent;
  color:var(--t4); cursor:pointer; transition:all 100ms;
}
.toggle-chip.active { background:rgba(0,212,255,0.1); border-color:rgba(0,212,255,0.25); color:var(--cyan); }
.slider-row { margin-bottom:6px; }
.slider-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:2px; }
.slider-lbl { font-size:0.68rem; color:var(--t2); }
.slider-val { font-family:var(--mono); font-size:0.65rem; color:var(--cyan); }
input[type="range"] {
  -webkit-appearance:none; width:100%; height:3px; border-radius:2px;
  background:rgba(255,255,255,0.06); outline:none; cursor:pointer;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none; width:10px; height:10px; border-radius:50%;
  background:var(--cyan); cursor:pointer; box-shadow:0 0 4px rgba(0,212,255,0.4);
}
.ctrl-sep { height:1px; background:var(--border); margin:4px 0; }

/* ── Auction Arena ─────────────────────────────────── */
.arena {
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:10px; display:flex; flex-direction:column; overflow:hidden;
}
.arena-header {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;
  flex-shrink:0;
}
.arena-title { font-size:0.72rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--t2); }
.arena-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:6px;
  flex:1; min-height:0;
}
.agent-cell {
  display:flex; flex-direction:column; align-items:center;
  padding:6px 4px; border-radius:var(--r);
  background:rgba(255,255,255,0.01); border:1px solid transparent;
  transition:all 200ms; gap:2px; min-height:0;
}
.agent-cell.winner { border-color:var(--cyan); background:rgba(0,212,255,0.04); box-shadow:0 0 10px rgba(0,212,255,0.1); }
.agent-cell.out { opacity:0.25; }
.agent-dot {
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:0.6rem; font-weight:700; color:#fff; flex-shrink:0;
}
.agent-label { font-size:0.6rem; font-weight:600; color:var(--t2); }
.agent-type { font-size:0.5rem; color:var(--t4); text-transform:uppercase; letter-spacing:0.5px; }
.agent-status { font-size:0.5rem; font-weight:600; }
.bid-wrap {
  width:100%; height:44px; background:rgba(255,255,255,0.015);
  border-radius:4px; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; flex-shrink:0;
}
.bid-fill {
  width:100%; border-radius:4px 4px 0 0;
  transition:height 0.5s cubic-bezier(.4,0,.2,1);
}
.val-line {
  position:absolute; left:0; right:0; height:1px;
  border-top:1.5px dashed rgba(255,255,255,0.15);
  transition:bottom 0.5s cubic-bezier(.4,0,.2,1);
}
.bid-nums {
  display:flex; justify-content:space-between; width:100%;
  font-family:var(--mono); font-size:0.55rem; padding:0 2px; flex-shrink:0;
}
.bid-nums .bn-bid { font-weight:600; }
.bid-nums .bn-val { color:var(--t4); }
.paired-tag { font-size:0.45rem; color:var(--rose); }

/* ── Metrics Panel ─────────────────────────────────── */
.metrics {
  display:flex; flex-direction:column; gap:8px;
  overflow:hidden;
}
.metrics-top {
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:10px; flex-shrink:0;
}
.metrics-title { font-size:0.62rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--t3); margin-bottom:8px; }
.m-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:8px; }
.m-box {
  text-align:center; padding:6px;
  border-radius:var(--r); background:rgba(255,255,255,0.015); border:1px solid var(--border);
}
.m-val { font-family:var(--mono); font-size:1.1rem; font-weight:700; line-height:1.2; }
.m-lbl { font-size:0.55rem; color:var(--t4); text-transform:uppercase; letter-spacing:0.8px; margin-top:1px; }
.m-bar { height:3px; border-radius:2px; background:rgba(255,255,255,0.04); margin-top:4px; overflow:hidden; }
.m-bar-fill { height:100%; border-radius:2px; transition:width 0.5s ease; }
.composite-box {
  text-align:center; padding:8px;
  border-radius:var(--r); border:1px solid rgba(0,212,255,0.1);
  background:rgba(0,212,255,0.03);
}
.comp-label { font-size:0.55rem; color:var(--t3); text-transform:uppercase; letter-spacing:1px; }
.comp-value { font-family:var(--mono); font-size:1.4rem; font-weight:800; background:var(--grad1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.charts-panel {
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:10px; flex:1; min-height:0;
  display:flex; flex-direction:column; gap:6px; overflow:hidden;
}
.chart-box { flex:1; min-height:0; display:flex; flex-direction:column; }
.chart-head { font-size:0.55rem; font-weight:600; color:var(--t4); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:2px; flex-shrink:0; }
.chart-box canvas { width:100% !important; flex:1; min-height:0; }

/* ── Timeline / Logs ───────────────────────────────── */
.timeline-bar {
  grid-column:2/4;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:8px 10px; display:flex; flex-direction:column; overflow:hidden;
}
.timeline-head {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:4px; flex-shrink:0;
}
.timeline-title { font-size:0.62rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--t3); }
.timeline-scroll {
  display:flex; gap:6px; overflow-x:auto; flex:1; align-items:stretch;
}
.t-event {
  flex-shrink:0; min-width:130px; padding:6px 8px;
  border-radius:var(--r); border:1px solid var(--border);
  background:rgba(255,255,255,0.01); font-size:0.65rem;
}
.t-event .t-round { font-family:var(--mono); font-size:0.55rem; color:var(--cyan); margin-bottom:1px; }
.t-event .t-action { color:var(--t1); font-weight:600; margin-bottom:1px; }
.t-event .t-impact { font-family:var(--mono); font-size:0.55rem; }
.t-impact.pos { color:var(--emerald); }
.t-impact.neg { color:var(--rose); }

/* ── Architecture Tab ──────────────────────────────── */
.doc-scroll { overflow-y:auto; padding:24px 40px; max-width:1100px; margin:0 auto; height:100%; }
.doc-scroll h2 { font-size:1.4rem; font-weight:800; margin:0 0 8px; }
.doc-scroll h3 { font-size:1rem; font-weight:700; margin:20px 0 6px; color:var(--cyan); }
.doc-scroll p { font-size:0.85rem; color:var(--t2); line-height:1.7; margin-bottom:10px; max-width:800px; }
.doc-scroll strong { color:var(--t1); }
.doc-scroll code {
  font-family:var(--mono); font-size:0.78rem; background:var(--card2);
  padding:1px 5px; border-radius:3px; color:var(--cyan);
}
.doc-scroll pre {
  background:var(--bg2); border:1px solid var(--border); border-radius:var(--r);
  padding:12px 16px; overflow-x:auto; margin:8px 0 16px;
  font-family:var(--mono); font-size:0.75rem; color:var(--t2); line-height:1.6;
}

/* Diagrams in docs */
.inv-row { display:grid; grid-template-columns:1fr 60px 1fr; gap:12px; align-items:center; margin:16px 0; }
.inv-card {
  padding:16px; border-radius:var(--r2); border:1px solid var(--border);
  text-align:center;
}
.inv-card.old { background:rgba(239,68,68,0.04); border-color:rgba(239,68,68,0.12); }
.inv-card.new { background:rgba(0,212,255,0.04); border-color:rgba(0,212,255,0.12); }
.inv-card h4 { font-size:0.95rem; margin-bottom:4px; }
.inv-card p { font-size:0.8rem; color:var(--t2); margin:0; }
.inv-arrow { text-align:center; color:var(--t4); font-size:1.4rem; }

.layer-box { border-radius:var(--r2); padding:12px; margin-bottom:6px; border:1px solid; }
.layer-box.l1 { background:rgba(0,212,255,0.03); border-color:rgba(0,212,255,0.1); }
.layer-box.l2 { background:rgba(16,185,129,0.03); border-color:rgba(16,185,129,0.1); margin:8px 0; }
.layer-box.l3 { background:rgba(245,158,11,0.03); border-color:rgba(245,158,11,0.1); }
.layer-tag { font-size:0.6rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:4px; }
.layer-desc { font-size:0.78rem; color:var(--t2); line-height:1.5; }

.agent-chips { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.a-chip {
  padding:10px 14px; border-radius:var(--r); border:1px solid var(--border);
  background:var(--card); min-width:160px; flex:1;
}
.a-chip h5 { font-size:0.8rem; margin-bottom:3px; }
.a-chip p { font-size:0.7rem; color:var(--t3); margin:0; line-height:1.4; }

.reward-eq {
  font-family:var(--mono); font-size:1.2rem; font-weight:600;
  text-align:center; padding:16px;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  margin:12px 0; letter-spacing:2px;
}

.term-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin:12px 0; }
.term-card {
  padding:10px; border-radius:var(--r); border:1px solid var(--border);
  background:var(--card); text-align:center;
}
.term-card .tc-sym { font-family:var(--mono); font-size:1.3rem; font-weight:700; }
.term-card .tc-name { font-size:0.7rem; font-weight:600; margin-top:2px; }
.term-card .tc-desc { font-size:0.6rem; color:var(--t3); margin-top:4px; line-height:1.4; }

/* Curriculum stages in training tab */
.stage-row { display:flex; gap:8px; margin:12px 0; overflow-x:auto; }
.stage-box {
  flex:1; min-width:160px; padding:12px;
  border-radius:var(--r2); border:1px solid var(--border); background:var(--card);
}
.stage-box .sb-num { font-family:var(--mono); font-size:0.6rem; font-weight:700; letter-spacing:1px; margin-bottom:4px; }
.stage-box h5 { font-size:0.8rem; margin-bottom:4px; }
.stage-box p { font-size:0.7rem; color:var(--t3); margin:0; line-height:1.4; }

.arch-flow {
  display:grid; grid-template-columns:1fr 40px 1fr 40px 1fr; gap:0;
  align-items:center; margin:16px 0;
}
.arch-node {
  padding:14px; border-radius:var(--r2); border:1px solid var(--border);
  background:var(--card); text-align:center;
}
.arch-node h5 { font-size:0.85rem; margin-bottom:4px; }
.arch-node p { font-size:0.7rem; color:var(--t3); margin:0; line-height:1.4; }
.arch-arr { text-align:center; color:var(--t4); font-size:1.2rem; }

/* ── Color Utilities ───────────────────────────────── */
.c-cyan { color:var(--cyan); }
.c-purple { color:var(--purple); }
.c-emerald { color:var(--emerald); }
.c-amber { color:var(--amber); }
.c-rose { color:var(--rose); }
.c-blue { color:var(--blue); }

/* ── Responsive ────────────────────────────────────── */
@media (max-width:1100px) {
  .sim-dashboard { grid-template-columns:180px 1fr 240px; }
}
@media (max-width:900px) {
  .sim-dashboard { grid-template-columns:1fr; grid-template-rows:auto auto auto; }
  .controls { grid-row:auto; flex-direction:row; flex-wrap:wrap; }
  .timeline-bar { grid-column:auto; }
  .arena-grid { grid-template-columns:repeat(2,1fr); }
}

.active-ai {
  border-color: var(--cyan) !important;
  color: var(--cyan) !important;
  background: rgba(0, 212, 255, 0.05) !important;
  box-shadow: 0 0 15px rgba(0, 212, 255, 0.1);
}
