
/* ─── Variables ──────────────────────────────────────────── */
:root{
  --bg:#f8f9fc;--bg2:#ffffff;--bg3:#f0f2f7;--bg4:#e8ebf2;
  --border:#d4d9e8;--border2:#c5cad8;
  --teal:#0b7a6e;--teal-dim:#0b7a6e;--teal-glow:rgba(11,122,110,.08);--teal-light:#e8f4f2;
  --amber:#b45309;--amber-bg:rgba(180,83,9,.08);
  --text:#1a202c;--muted:#4a5568;--dim:#718096;--dimmer:#a0aec0;
  --red:#dc2626;--blue:#1d4ed8;--violet:#7c3aed;--green:#15803d;--orange:#c2410c;
  --mono:'DM Mono',monospace;--serif:'DM Serif Display',Georgia,serif;
  --sans:'DM Sans',system-ui,sans-serif;
  --shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px rgba(0,0,0,.05);
  --shadow-lg:0 4px 16px rgba(0,0,0,.10),0 8px 32px rgba(0,0,0,.06);
}

/* ─── Reset & Base ───────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:15px;line-height:1.7;min-height:100vh}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline}

/* ─── Site Nav ───────────────────────────────────────────── */
.site-nav{position:sticky;top:0;z-index:200;background:var(--nav-bg,rgba(245,246,248,.92));backdrop-filter:blur(16px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;padding:0 24px;height:44px;}
body.dark-mode .site-nav{background:rgba(6,14,28,.96)!important;border-color:#1c3050!important;}
.site-nav-logo{font-family:var(--mono);font-size:.8em;color:var(--teal);font-weight:500;letter-spacing:.04em;margin-right:auto;white-space:nowrap;text-decoration:none}
.site-nav-logo span{color:var(--dim)}
.site-nav-link{padding:5px 12px;border-radius:6px;font-size:.77em;color:var(--muted);text-decoration:none;transition:all .18s;border:1px solid transparent;font-family:var(--sans);white-space:nowrap}
.site-nav-link:hover{color:var(--teal);background:var(--teal-glow);border-color:rgba(11,122,110,.15);text-decoration:none}
.site-nav-link.curr{color:var(--teal);background:var(--teal-glow);border-color:rgba(11,122,110,.2);font-weight:600}

/* ─── Page Layout ────────────────────────────────────────── */
.page-wrap{max-width:1040px;margin:0 auto;padding:0 48px 80px}

/* ─── Hero ───────────────────────────────────────────────── */
.hero{padding:52px 0 36px;border-bottom:1px solid var(--border);margin-bottom:48px;text-align:center}
.hero-kicker{font-family:var(--mono);font-size:.7em;color:var(--teal);letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.hero-title{font-family:var(--serif);font-size:clamp(2.2em,4.5vw,3.2em);font-weight:400;line-height:1.1;margin-bottom:14px;color:var(--text)}
.hero-sub{font-size:1.05em;color:var(--muted);max-width:640px;line-height:1.65;margin-bottom:24px;margin-left:auto;margin-right:auto}
.hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;justify-content:center}
.pill{padding:4px 12px;border-radius:99px;font-size:.72em;font-family:var(--mono);background:var(--teal-light);color:var(--teal);border:1px solid rgba(11,122,110,.2)}
.hero-meta{display:flex;gap:28px;flex-wrap:wrap;justify-content:center}
.hero-stat-num{font-family:var(--serif);font-size:1.7em;color:var(--teal);line-height:1}
.hero-stat-label{font-size:.72em;color:var(--dim);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}

/* ─── Section headings ───────────────────────────────────── */
.section{margin-bottom:56px}
.section-num{font-family:var(--mono);font-size:.7em;color:var(--teal);text-transform:uppercase;letter-spacing:.14em;margin-bottom:8px}
.section-title{font-family:var(--serif);font-size:1.8em;font-weight:400;margin-bottom:14px;color:var(--text)}
.section-body{font-size:.93em;color:var(--muted);line-height:1.8;overflow:hidden}
.section-body p{margin-bottom:14px}
.section-body strong{color:var(--text)}
.section-divider{height:1px;background:var(--border);margin:48px 0}

/* ─── Callout boxes ──────────────────────────────────────── */
.callout{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--teal);border-radius:8px;padding:16px 20px;margin:20px 0;font-size:.88em;color:var(--muted)}
.callout-amber{border-left-color:var(--amber);background:var(--amber-bg)}
.callout strong{color:var(--text)}
.callout-title{font-family:var(--mono);font-size:.68em;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:6px}
.callout-amber .callout-title{color:var(--amber)}

/* ─── Equation display ───────────────────────────────────── */
.eq-block{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:20px 24px;margin:20px 0;font-family:var(--mono);font-size:.88em;line-height:2;overflow-x:auto}
.eq-block .eq-row{display:flex;align-items:baseline;gap:12px;padding:2px 0}
.eq-label{color:var(--teal);font-weight:500;min-width:60px;flex-shrink:0}
.eq-main{color:var(--text)}
.eq-comment{color:var(--dimmer);font-style:italic;font-size:.85em;margin-left:auto;padding-left:20px;white-space:nowrap}
.eq-sep{height:1px;background:var(--border);margin:10px 0}
.eq-note{font-size:.8em;color:var(--dim);margin-top:8px;font-family:var(--sans);line-height:1.5}
sub,sup{font-size:.72em;line-height:1}

/* ─── Circuit diagram ────────────────────────────────────── */
.circuit-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:24px;margin:24px 0;overflow-x:auto;text-align:center}
.circuit-wrap svg{max-width:100%;height:auto}

/* ─── SIMULATOR ──────────────────────────────────────────── */
.sim-section{background:var(--bg2);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:32px -100px;box-shadow:var(--shadow-lg);position:relative;}
.sim-header{padding:18px 24px;background:linear-gradient(135deg,var(--teal) 0%,#0d8a7c 100%);color:#fff;display:flex;align-items:center;gap:12px}
.sim-title{font-family:var(--serif);font-size:1.3em;font-weight:400}
.sim-subtitle{font-size:.8em;opacity:.85;margin-top:2px}
.sim-status{margin-left:auto;font-family:var(--mono);font-size:.75em;background:rgba(255,255,255,.15);padding:4px 12px;border-radius:99px;display:flex;align-items:center;gap:6px}
.sim-status .dot{width:7px;height:7px;border-radius:50%;background:#4ade80;animation:pulse 1.5s infinite}
.sim-status .dot.paused{background:#fbbf24;animation:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

.sim-body{display:grid;grid-template-columns:400px 1fr;grid-template-rows:1100px;gap:0;align-items:stretch;height:1100px;overflow:hidden}

/* Controls panel */
.sim-controls{padding:12px 14px 14px;border-right:1px solid var(--border);background:var(--bg3);overflow-y:hidden;overflow-x:hidden;height:100%;min-height:0;box-sizing:border-box;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-content:start}
.ctrl-group{margin-bottom:10px}
.ctrl-group-label{font-family:var(--mono);font-size:.7em;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:8px;display:flex;align-items:center;gap:6px;font-weight:600}
.ctrl-group-label::after{content:'';flex:1;height:1px;background:var(--border2)}
.ctrl-row{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.ctrl-label{display:flex;justify-content:space-between;align-items:center;font-size:1em;color:var(--muted);width:100%;gap:4px}
.ctrl-label sub{color:var(--teal)}
.ctrl-slider{width:100%;accent-color:var(--teal);height:4px;cursor:pointer;margin:0}
.ctrl-num{font-family:var(--mono);font-size:.82em;color:var(--text);width:64px;border:1px solid var(--border);border-radius:4px;background:var(--bg2);padding:2px 6px;text-align:right;outline:none;transition:border-color .15s;-moz-appearance:textfield}
.ctrl-num::-webkit-outer-spin-button,.ctrl-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ctrl-num:focus{border-color:var(--teal)}.ctrl-num:focus{border-color:var(--teal)}
.ctrl-select{flex:1;padding:5px 8px;border:1px solid var(--border2);border-radius:6px;background:var(--bg2);color:var(--text);font-size:.8em;font-family:var(--sans);cursor:pointer;outline:none}
.ctrl-select:focus{border-color:var(--teal)}
.ctrl-check-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;cursor:pointer}
.ctrl-check-row input{accent-color:var(--teal);width:14px;height:14px;cursor:pointer;flex-shrink:0}
.ctrl-check-row label{font-size:.82em;color:var(--muted);cursor:pointer}
.ctrl-check-row .badge-block{font-size:.65em;font-family:var(--mono);padding:1px 6px;border-radius:4px;background:rgba(220,38,38,.1);color:#dc2626;border:1px solid rgba(220,38,38,.2)}

/* Sim buttons */
.sim-btns{display:flex;gap:6px;margin-top:14px}
.btn-sim{flex:1;padding:8px 6px;border-radius:7px;border:none;font-size:.8em;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--sans)}
.btn-run{background:var(--teal);color:#fff}
.btn-run:hover{background:#0a6b60}
.btn-run:disabled{background:var(--dimmer);cursor:not-allowed}
.btn-stop{background:var(--bg4);color:var(--muted);border:1px solid var(--border2)}
.btn-stop:hover{color:var(--red);border-color:var(--red)}
.btn-reset{background:var(--bg4);color:var(--muted);border:1px solid var(--border2)}
.btn-reset:hover{color:var(--text);border-color:var(--border2)}

/* Plots panel */
.sim-plots{display:flex;flex-direction:column;background:var(--bg2);overflow:hidden;min-width:0;flex:1;min-height:0}
.plot-wrap{display:flex;flex-direction:column;border-bottom:1px solid var(--border);overflow:hidden;min-width:0;flex:1;min-height:80px}
.plot-wrap:last-child{border-bottom:none}
.plot-label{display:block;padding:5px 12px 3px;font-family:var(--mono);font-size:.63em;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;background:var(--bg3);border-bottom:1px solid var(--border);flex-shrink:0}
/* legend moved to block row above canvas */


canvas{display:block;width:100%;image-rendering:crisp-edges}

/* AP stats bar */
.ap-stats{display:flex;gap:0;border-top:1px solid var(--border);background:var(--bg3)}
.ap-stat{flex:1;padding:8px 12px;text-align:center;border-right:1px solid var(--border)}
.ap-stat:last-child{border-right:none}
.ap-stat-num{font-family:var(--mono);font-size:.92em;color:var(--teal);font-weight:600}
.ap-stat-label{font-size:.62em;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono)}

/* ─── Kinetics & Phase ───────────────────────────────────── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
.canvas-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
.canvas-card-header{padding:10px 16px;background:var(--bg3);border-bottom:1px solid var(--border);display:flex;align-items:baseline;gap:10px}
.canvas-card-title{font-size:.85em;font-weight:600;color:var(--text)}
.canvas-card-sub{font-size:.73em;color:var(--dim)}
.canvas-card canvas{display:block;width:100%}

/* ─── Phase plane ────────────────────────────────────────── */
.phase-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:var(--shadow);margin:24px 0}
.phase-header{padding:12px 18px;background:var(--bg3);border-bottom:1px solid var(--border)}

/* ─── Parameter table ────────────────────────────────────── */
.param-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.85em}
.param-table th{text-align:left;padding:8px 12px;background:var(--bg3);border:1px solid var(--border);font-family:var(--mono);font-size:.75em;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);font-weight:500}
.param-table td{padding:7px 12px;border:1px solid var(--border);color:var(--muted)}
.param-table td:first-child{font-family:var(--mono);color:var(--text);font-weight:500}
.param-table td:nth-child(2){color:var(--teal);font-family:var(--mono)}
.param-table tr:hover td{background:var(--bg3)}

/* ─── References ─────────────────────────────────────────── */
.ref-list{list-style:none;margin:0;padding:0}
.ref-item{padding:12px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:32px 1fr;gap:8px;font-size:.85em;color:var(--muted);line-height:1.55}
.ref-item:last-child{border-bottom:none}
.ref-num{font-family:var(--mono);color:var(--teal);font-weight:600;padding-top:1px}
.ref-item em{color:var(--text);font-style:normal;font-weight:500}

/* ─── Responsive ─────────────────────────────────────────── */
@media(max-width:800px){
  .sim-body{
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
    height:auto;
    min-height:unset;
    overflow:visible;
  }
  .sim-controls{
    border-right:none;
    border-bottom:1px solid var(--border);
    height:auto;
    min-height:unset;
    overflow-y:visible;
    max-height:60vh;
    overflow-y:auto;
  }
  .sim-plots{
    min-height:420px;
    flex:none;
    height:420px;
  }
  .plot-wrap{min-height:80px;flex:1}
  .two-col{grid-template-columns:1fr}
  .page-wrap{padding:0 16px 60px}
  .hero{padding:32px 0 28px}
  .sim-section{margin:20px 0!important;border-radius:8px;width:100%}
}


/* ───────────────────────────────────────────────────────────
   SITE-WIDE ACCESSIBILITY PANEL  +  LIGHT/DARK THEME SYSTEM
   Default: light mode. Dark mode activated by .dark-mode on <body>.
─────────────────────────────────────────────────────────── */

/* ── Floating gear button ── */
.acc-btn{
  position:fixed;bottom:22px;right:22px;z-index:9100;
  width:38px;height:38px;border-radius:50%;
  background:#0b7a6e;color:#fff;border:none;
  cursor:pointer;font-size:1em;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 12px rgba(0,0,0,.2);transition:transform .2s;
}
.acc-btn:hover{transform:scale(1.1)}

/* ── Panel ── */
.acc-panel{
  position:fixed;bottom:70px;right:22px;z-index:9100;
  width:220px;padding:16px 18px 12px;border-radius:12px;
  border:1px solid #d4d9e8;background:#fff;
  box-shadow:0 8px 32px rgba(0,0,0,.13);
  opacity:0;transform:translateY(8px) scale(.97);
  pointer-events:none;transition:all .2s cubic-bezier(.4,0,.2,1);
}
.acc-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:all}
.acc-panel-title{font-size:.77em;font-weight:600;margin-bottom:13px;color:#1a202c}
.acc-row{margin-bottom:12px}
.acc-row-label{font-size:.65em;text-transform:uppercase;letter-spacing:.1em;color:#9ca3af;margin-bottom:6px}
.acc-toggle-row{display:flex;align-items:center;justify-content:space-between}
.acc-toggle-label{font-size:.81em;color:#4a5568}
.acc-switch{position:relative;width:38px;height:20px;flex-shrink:0}
.acc-switch input{opacity:0;width:0;height:0}
.acc-slider{position:absolute;inset:0;background:#d1d5db;border-radius:99px;cursor:pointer;transition:background .18s}
.acc-slider::before{content:'';position:absolute;width:14px;height:14px;border-radius:50%;left:3px;top:3px;background:#fff;transition:transform .18s}
.acc-switch input:checked + .acc-slider{background:#0b7a6e}
.acc-switch input:checked + .acc-slider::before{transform:translateX(18px)}
.acc-btn-group{display:flex;gap:4px}
.acc-opt{flex:1;padding:4px;border:1px solid #d4d9e8;border-radius:5px;
  background:#f5f6f8;color:#718096;font-size:.72em;cursor:pointer;text-align:center;
  transition:all .15s;font-family:inherit;line-height:1.4}
.acc-opt:hover{color:#0b7a6e;border-color:#0b7a6e;background:rgba(11,122,110,.06)}
.acc-opt.active{color:#0b7a6e;border-color:#0b7a6e;background:rgba(11,122,110,.08);font-weight:600}

/* ── Dark mode acc-panel overrides ── */
body.dark-mode .acc-panel{background:#0a1628;border-color:#1c3050}
body.dark-mode .acc-panel-title{color:#e2e8f0}
body.dark-mode .acc-toggle-label{color:#94a3b8}
body.dark-mode .acc-opt{background:#132240;border-color:#1c3050;color:#7a90ae}
body.dark-mode .acc-opt.active{background:rgba(45,212,191,.15);border-color:#2dd4bf;color:#2dd4bf}

/* ── Font variants ── */
body.font-serif,body.font-serif *:not(code):not(pre){font-family:'DM Serif Display',Georgia,serif!important}
body.font-mono,body.font-mono *:not(code):not(pre){font-family:'DM Mono','Courier New',monospace!important}

/* ── Size variants ── */
body.size-sm{font-size:13px!important}
body.size-md{font-size:15px!important}
body.size-lg{font-size:17px!important}

/* ═══════════════════════════════════════════════════════════
   DARK MODE — comprehensive overrides for every page
   All rules use !important to beat any hardcoded backgrounds.
══════════════════════════════════════════════════════════ */
body.dark-mode{
  background:#060e1c!important;
  color:#e2e8f0!important;
}

/* ── Navigation ── */
body.dark-mode .site-nav,
body.dark-mode .topbar{
  background:rgba(6,14,28,.96)!important;
  border-color:#1c3050!important;
}
body.dark-mode .site-nav-link,
body.dark-mode .topbar-link{color:#7a90ae!important}
body.dark-mode .site-nav-link:hover,
body.dark-mode .topbar-link:hover{color:#2dd4bf!important;background:rgba(45,212,191,.08)!important}
body.dark-mode .site-nav-link.curr,
body.dark-mode .topbar-link.active{color:#2dd4bf!important;background:rgba(45,212,191,.08)!important;border-color:rgba(45,212,191,.2)!important}
body.dark-mode .site-nav-logo,
body.dark-mode .topbar-logo{color:#2dd4bf!important}
body.dark-mode .nav-link{color:#7a90ae!important}
body.dark-mode .nav-link:hover,body.dark-mode .nav-link.active{color:#2dd4bf!important;background:rgba(45,212,191,.08)!important}
body.dark-mode .nav-logo{color:#2dd4bf!important}
body.dark-mode .nav{background:rgba(6,14,28,.96)!important;border-color:#1c3050!important}

/* ── Page / layout backgrounds ── */
body.dark-mode main,
body.dark-mode .page-wrap,
body.dark-mode .content,
body.dark-mode .layout,
body.dark-mode .layout-wrapper,
body.dark-mode .main-content{background:transparent!important}

body.dark-mode .sidebar{background:#0a1628!important;border-color:#1c3050!important;color:#e2e8f0!important}
body.dark-mode .nav-item{color:#7a90ae!important}
body.dark-mode .nav-item:hover,body.dark-mode .nav-item.active{color:#2dd4bf!important;background:rgba(45,212,191,.08)!important}
body.dark-mode .nav-section-label{color:#3d5470!important}
body.dark-mode .nav-count{background:#0f1f38!important;color:#3d5470!important}

/* ── Cards & panels ── */
body.dark-mode .card,
body.dark-mode .proj-card,
body.dark-mode .calc-card,
body.dark-mode .sim-section,
body.dark-mode .canvas-card,
body.dark-mode .phase-wrap{background:#0a1628!important;border-color:#1c3050!important}
body.dark-mode .card:hover,
body.dark-mode .proj-card:hover{border-color:#1a8a7d!important}
body.dark-mode .card-title,
body.dark-mode .proj-title{color:#e2e8f0!important}
body.dark-mode .card-desc,
body.dark-mode .proj-desc,
body.dark-mode .card-subtitle{color:#7a90ae!important}
body.dark-mode .card-tag,
body.dark-mode .proj-tag,
body.dark-mode .section-tag,
body.dark-mode .hero-eyebrow,
body.dark-mode .page-eyebrow{color:#2dd4bf!important}

/* ── Hero section ── */
body.dark-mode .hero{border-color:#1c3050!important}
body.dark-mode .hero-title,
body.dark-mode .page-title,
body.dark-mode .hero-name,
body.dark-mode .section-title{color:#e2e8f0!important}
body.dark-mode .hero-sub,
body.dark-mode .section-body,
body.dark-mode .page-desc{color:#7a90ae!important}
body.dark-mode .hero-links .hero-badge,
body.dark-mode .hero-badge{background:rgba(28,48,80,.8)!important;border-color:#1c3050!important;color:#7a90ae!important}
body.dark-mode .hero-badges .pill{background:rgba(45,212,191,.12)!important;border-color:rgba(45,212,191,.2)!important;color:#2dd4bf!important}

/* ── Stats & metrics ── */
body.dark-mode .stats-ribbon,
body.dark-mode .hero-meta{background:transparent!important}
body.dark-mode .stat-card{background:#0a1628!important;border-color:#1c3050!important}
body.dark-mode .stat-label,body.dark-mode .hero-stat-label{color:#3d5470!important}

/* ── Calc page specifics ── */
body.dark-mode .sim-controls{background:#0f1f38!important}
body.dark-mode .sim-plots{background:#0a1628!important}
body.dark-mode .ctrl-group-label{color:#2dd4bf!important}
body.dark-mode .ctrl-label,body.dark-mode .ctrl-val{color:#94a3b8!important}
body.dark-mode .ctrl-select,
body.dark-mode .field,
body.dark-mode select,
body.dark-mode input[type=number],
body.dark-mode input[type=text]{background:#132240!important;border-color:#1c3050!important;color:#e2e8f0!important}
body.dark-mode .card-header,
body.dark-mode .canvas-card-header{background:#0f1f38!important;border-color:#1c3050!important}
body.dark-mode .canvas-card-title{color:#e2e8f0!important}
body.dark-mode .canvas-card-sub{color:#7a90ae!important}
body.dark-mode .formula,body.dark-mode .eq-block{background:#0f1f38!important;border-color:#1c3050!important}
body.dark-mode .output{background:#0f1f38!important;border-color:#1c3050!important}
body.dark-mode .output-header{background:rgba(45,212,191,.07)!important;border-color:#1c3050!important}
body.dark-mode .out-row{border-color:rgba(28,48,80,.6)!important}
body.dark-mode .out-label{color:#7a90ae!important}
body.dark-mode .btn-calc{background:#2dd4bf!important;color:#06111f!important}
body.dark-mode .btn-stop,body.dark-mode .btn-reset{background:#132240!important;color:#7a90ae!important;border-color:#1c3050!important}
body.dark-mode .param-table th{background:#0f1f38!important;border-color:#1c3050!important;color:#3d5470!important}
body.dark-mode .param-table td{border-color:#1c3050!important}
body.dark-mode .conv-table td,body.dark-mode .conv-table th{border-color:#1c3050!important}

/* ── HH page ── */
body.dark-mode .circuit-wrap,
body.dark-mode .callout{background:#0a1628!important;border-color:#1c3050!important}
body.dark-mode .eq-block{color:#f59e0b!important}
body.dark-mode .section-body p,body.dark-mode .section-body{color:#7a90ae!important}
body.dark-mode .section-num{color:#2dd4bf!important}
body.dark-mode .ap-stats{background:#0f1f38!important;border-color:#1c3050!important}
body.dark-mode .ap-stat{border-color:#1c3050!important}
body.dark-mode .ap-stat-label{color:#3d5470!important}
body.dark-mode .sim-header{background:linear-gradient(135deg,#0a6b60 0%,#0d8a7c 100%)!important}
body.dark-mode .ref-item{border-color:#1c3050!important;color:#7a90ae!important}
body.dark-mode .param-table{background:transparent!important}
body.dark-mode .hero-meta .hero-stat-num,body.dark-mode .hero-stat-num{color:#2dd4bf!important}
body.dark-mode .hero-pills .pill{background:rgba(45,212,191,.1)!important;border-color:rgba(45,212,191,.2)!important}

/* ── Modals ── */
body.dark-mode .modal-overlay{background:rgba(2,6,14,.88)!important}
body.dark-mode .modal{background:#0a1628!important;border-color:#1c3050!important}
body.dark-mode .modal-body,.modal-title{color:#e2e8f0!important}
body.dark-mode .modal-subtitle,.modal-text{color:#7a90ae!important}
body.dark-mode .modal-section-label{color:#2dd4bf!important}
body.dark-mode .modal-section-label::after{background:#1c3050!important}
body.dark-mode .modal-metrics{border-color:#1c3050!important}
body.dark-mode .modal-metric{border-color:#1c3050!important;background:transparent!important}
body.dark-mode .modal-link{background:#0f1f38!important;border-color:#1c3050!important}
body.dark-mode .filter-btn{background:#0f1f38!important;border-color:#1c3050!important;color:#7a90ae!important}
body.dark-mode .filter-btn.active{background:#2dd4bf!important;color:#06111f!important;border-color:#2dd4bf!important}
body.dark-mode .modal-close{background:#0f1f38!important;border-color:#1c3050!important;color:#7a90ae!important}
body.dark-mode .modal-media{background:#0f1f38!important}
body.dark-mode .modal-eq{background:#0f1f38!important;border-color:#1c3050!important}

/* ── Projects ── */
body.dark-mode .proj-media{background:#0f1f38!important}
body.dark-mode .ph-icon,.dark-mode .ph-text{color:#3d5470!important}
body.dark-mode .proj-media-badge{background:rgba(6,14,28,.9)!important;border-color:rgba(45,212,191,.25)!important}
body.dark-mode .proj-footer{border-color:#1c3050!important}
body.dark-mode .proj-year{color:#3d5470!important}
body.dark-mode .proj-link{background:#0f1f38!important;border-color:#1c3050!important;color:#7a90ae!important}
body.dark-mode .proj-link:hover{border-color:#2dd4bf!important;color:#2dd4bf!important}
body.dark-mode .page-hero,.dark-mode .projects-wrap{background:transparent!important}

/* ── index landing cards ── */
body.dark-mode .card-chips .chip{background:rgba(45,212,191,.1)!important;border-color:rgba(45,212,191,.2)!important;color:#2dd4bf!important}
body.dark-mode .card::before{opacity:0}
body.dark-mode footer{border-color:#1c3050!important;color:#3d5470!important}
body.dark-mode footer a{color:#3d5470!important}

/* ── Divider / misc ── */
body.dark-mode .section-divider{background:#1c3050!important}
body.dark-mode .callout-amber{background:rgba(245,158,11,.08)!important;border-color:rgba(245,158,11,.25)!important}
body.dark-mode .callout-title{color:#7a90ae!important}
body.dark-mode .callout-amber .callout-title{color:#f59e0b!important}
body.dark-mode .hero{border-color:#1c3050!important}






.plot-wrap canvas{display:block;width:100%;flex:1;min-height:0}

.plot-legend{display:flex;gap:10px;padding:3px 12px 3px;background:var(--bg3);border-bottom:1px solid var(--border);flex-shrink:0}
.legend-item{display:flex;align-items:center;gap:4px;font-size:.65em;color:var(--muted);font-family:var(--mono)}
.legend-dot{width:10px;height:3px;border-radius:2px;flex-shrink:0}
.ctrl-label-txt{color:var(--text);font-size:.84em;font-weight:500;white-space:nowrap;display:flex;align-items:baseline;gap:3px}.ctrl-unit{color:var(--dim);font-size:.72em;font-family:var(--mono);margin-left:3px}

.ctrl-group.full{grid-column:1/-1}
.ctrl-group-label::after{flex:1;height:1px;background:var(--border)}

/* ─── Figure / image blocks ────────────────────────────── */
.fig-row{display:flex;gap:20px;margin:24px 0;align-items:flex-start;flex-wrap:wrap}
.fig-item{flex:1;min-width:140px;max-width:280px}
.fig-item img{width:100%;border-radius:8px;border:1px solid var(--border);display:block;object-fit:cover}
.fig-item .fig-cap{font-size:.75em;color:var(--dim);margin-top:6px;text-align:center;font-family:var(--mono);font-style:italic;line-height:1.4}
.fig-portrait{width:100%;border-radius:8px;border:2px solid var(--border);background:var(--bg3);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 12px;min-height:160px}
.fig-portrait-name{font-family:var(--serif);font-size:1em;color:var(--text);margin-top:8px;text-align:center}
.fig-portrait-dates{font-size:.72em;color:var(--dim);font-family:var(--mono);margin-top:2px}
.fig-portrait-icon{font-size:3em;line-height:1;opacity:.7}
.fig-wrap{margin:24px 0;text-align:center}
.fig-wrap img{max-width:100%;border-radius:8px;border:1px solid var(--border)}
.fig-wrap .fig-cap{font-size:.78em;color:var(--dim);margin-top:8px;font-style:italic;font-family:var(--mono)}
.fig-aside{float:right;margin:0 0 18px 24px;max-width:220px;clear:right}
.fig-aside img{width:100%;border-radius:8px;border:1px solid var(--border)}
.fig-aside .fig-cap{font-size:.72em;color:var(--dim);margin-top:5px;text-align:center;font-family:var(--mono);font-style:italic;line-height:1.4}

.ctrl-row.disabled{opacity:.35;pointer-events:none}

/* ─── Simulator Tabs ──────────────────────────────────────── */
.sim-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);background:var(--bg3);padding:0 24px}
.sim-tab{padding:10px 20px;font-family:var(--mono);font-size:.78em;font-weight:600;letter-spacing:.05em;
  color:var(--dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;
  transition:color .15s,border-color .15s;white-space:nowrap}
.sim-tab:hover{color:var(--text)}
.sim-tab.active{color:var(--teal);border-bottom-color:var(--teal)}
.sim-panel{display:none}.sim-panel.active{display:grid}

/* ─── Voltage Clamp Panel ─────────────────────────────────── */
.vc-controls{padding:12px 14px 14px;border-right:1px solid var(--border);background:var(--bg3);
  overflow-y:hidden;overflow-x:hidden;height:100%;min-height:0;box-sizing:border-box;
  display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-content:start}
.vc-plots{display:flex;flex-direction:column;background:var(--bg2);overflow:hidden;min-width:0;min-height:0}
.iv-panel{padding:12px 14px;display:flex;flex-direction:column;gap:8px;overflow:hidden;flex:1;min-height:0}
.iv-plot-wrap{flex:1;min-height:120px;position:relative}
.iv-controls-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.iv-legend{display:flex;gap:12px;font-family:var(--mono);font-size:.7em;color:var(--dim);flex-wrap:wrap}
.iv-legend span{display:flex;align-items:center;gap:4px}
.iv-legend i{width:20px;height:3px;display:inline-block;border-radius:2px}
.vc-run-strip{display:flex;gap:6px;padding:10px 14px;border-top:1px solid var(--border);background:var(--bg3);flex-wrap:wrap;align-items:center}
.vc-run-strip .vc-step-chip{font-family:var(--mono);font-size:.68em;padding:2px 8px;
  border:1px solid var(--border2);border-radius:4px;cursor:pointer;color:var(--dim);background:var(--bg2)}
.vc-run-strip .vc-step-chip:hover{color:var(--teal);border-color:var(--teal)}
.vc-run-strip .vc-step-chip.active{color:var(--teal);border-color:var(--teal);background:rgba(11,122,110,.08)}
.iv-table{font-family:var(--mono);font-size:.7em;color:var(--dim);overflow-y:auto;max-height:120px;
  border:1px solid var(--border);border-radius:6px;background:var(--bg)}
.iv-table table{width:100%;border-collapse:collapse}
.iv-table th{padding:4px 8px;border-bottom:1px solid var(--border);color:var(--text);font-weight:600;text-align:right;position:sticky;top:0;background:var(--bg3)}
.iv-table td{padding:3px 8px;border-bottom:1px solid var(--border2);text-align:right}
.iv-table tr:last-child td{border-bottom:none}
.vc-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:.65em;font-family:var(--mono);
  font-weight:700;margin-left:6px;vertical-align:middle}
.vc-badge.na{background:rgba(220,38,38,.12);color:#dc2626}
.vc-badge.k{background:rgba(29,78,216,.12);color:#1d4ed8}

/* ─── Simulator Tabs ─────────────────────────────────────── */
.sim-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg3);padding:0 20px}
.sim-tab{padding:10px 20px;font-size:.82em;font-family:var(--mono);font-weight:600;letter-spacing:.04em;color:var(--dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;user-select:none;text-transform:uppercase}
.sim-tab:hover{color:var(--text)}
.sim-tab.active{color:var(--teal);border-bottom-color:var(--teal)}
.sim-tab-panel{display:none}
.sim-tab-panel.active{display:flex;flex-direction:row;height:1100px;overflow:hidden}

/* ─── Voltage Clamp Layout ───────────────────────────────── */
.vc-controls{width:400px;min-width:400px;background:var(--bg3);border-right:1px solid var(--border);padding:12px 14px;box-sizing:border-box;overflow-y:hidden;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-content:start;min-height:0}
.vc-plots{flex:1;display:flex;flex-direction:column;background:var(--bg2);overflow:hidden;min-width:0;min-height:0}
.vc-plot-wrap{display:flex;flex-direction:column;border-bottom:1px solid var(--border);overflow:hidden;min-width:0;flex:1;min-height:60px}
.vc-plot-wrap:last-child{border-bottom:none;flex:1.5}
.vc-plot-wrap canvas{display:block;width:100%;flex:1;min-height:0}
.vc-plot-label{padding:5px 14px 0;font-family:var(--mono);font-size:.67em;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:600;display:flex;align-items:center;gap:8px;flex-shrink:0}
.iv-legend{display:flex;gap:14px;margin-left:auto}
.iv-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ─── Voltage Clamp Controls ─────────────────────────────── */
.vc-btn{padding:7px 12px;border:1px solid var(--border2);border-radius:6px;background:var(--bg2);font-size:.75em;font-family:var(--mono);cursor:pointer;color:var(--muted);transition:all .15s;font-weight:600}
.vc-btn:hover{color:var(--teal);border-color:var(--teal)}
.vc-btn.primary{background:var(--teal);color:#fff;border-color:var(--teal)}
.vc-btn.primary:hover{background:#0a9082}
.vc-btn.danger{border-color:#dc2626;color:#dc2626}
.vc-btn.danger:hover{background:#dc2626;color:#fff}
.vc-btn-row{display:flex;gap:6px;flex-wrap:wrap;grid-column:1/-1;margin-top:4px}
.vc-sweep-status{font-family:var(--mono);font-size:.72em;color:var(--dim);grid-column:1/-1;min-height:18px;margin-top:2px}
.vc-iv-table{grid-column:1/-1;font-family:var(--mono);font-size:.7em;color:var(--dim);overflow-y:auto;max-height:90px;border:1px solid var(--border);border-radius:4px;padding:4px 6px}
.vc-iv-table table{width:100%;border-collapse:collapse}
.vc-iv-table th{color:var(--muted);font-weight:600;padding:1px 4px;text-align:right}
.vc-iv-table td{padding:1px 4px;text-align:right}
.vc-iv-table tr:nth-child(even){background:var(--bg3)}

/* ── Nav dropdown ── */
.nav-dropdown { position: relative; }
.nav-dropdown-menu {
  position: absolute; top: 100%; left: 50%;
  background: rgba(255,255,255,.97); backdrop-filter: blur(16px);
  border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  min-width: 170px; padding: 6px;
  padding-top: 12px;
  margin-top: -6px;
  opacity: 0; pointer-events: none;
  transform: translateX(-50%) translateY(-4px);
  transition: opacity .15s, transform .15s;
  z-index: 9999;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown-menu:hover {
  opacity: 1; pointer-events: all;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-item {
  display: block; padding: 7px 14px; border-radius: 6px;
  font-size: .77em; color: var(--muted); text-decoration: none;
  font-family: var(--sans); white-space: nowrap;
  transition: all .15s;
}
.nav-dropdown-item:hover { color: var(--teal); background: var(--teal-glow); }
body.dark-mode .nav-dropdown-menu { background: rgba(10,22,40,.97); border-color: #1c3050; }
