:root{color-scheme:dark;--bg:#101d29;--panel:#192b39;--ink:#eef4f6;--muted:#b2c3ce;--line:#3b5060;--r1:#b7a0ff;--base:#69d7cc;--collector:#ffbc74;--emitter:#87df96;--warning:#ffc788}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,sans-serif}.shell{max-width:1450px;margin:auto;padding:22px}.page-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.page-tabs a{color:var(--base);border:1px solid var(--line);border-radius:7px;padding:6px 9px;text-decoration:none;font-size:12px}.page-tabs a[aria-current=page]{border-color:var(--base);color:var(--ink)}header{margin-bottom:18px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--base);margin:0}h1{font-size:clamp(24px,3vw,36px);line-height:1.2;margin:4px 0 7px}h2{font-size:18px;margin:0}.subtitle,.note{font-size:12px;color:var(--muted);margin:7px 0}.monitor{display:grid;grid-template-columns:1.1fr 1fr;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.status{border:1px solid var(--base);border-radius:16px;color:var(--base);font-size:12px;padding:3px 9px}.status.saturation{border-color:var(--warning);color:var(--warning)}#circuit,#plot{width:100%;display:block;background:#142531;border:1px solid var(--line);border-radius:8px;margin-top:10px}.wire{fill:none;stroke:#d4e0e5;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.symbol{fill:var(--panel);stroke:#d4e0e5;stroke-width:2.5}.label{font:17px system-ui,sans-serif;fill:var(--ink)}.small{font-size:14px}.node{fill:#d4e0e5}.current{fill:none;stroke-width:6;stroke-dasharray:1 18;stroke-linecap:round;filter:drop-shadow(0 0 3px currentColor)}.current.r1{stroke:var(--r1);color:var(--r1)}.current.base{stroke:var(--base);color:var(--base)}.current.collector{stroke:var(--collector);color:var(--collector)}.current.emitter{stroke:var(--emitter);color:var(--emitter)}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;margin-top:8px}.r1-key{color:var(--r1)}.base-key{color:var(--base)}.collector-key{color:var(--collector)}.emitter-key{color:var(--emitter)}.live-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:12px}.live-table caption{text-align:left;color:var(--muted);font-size:12px;margin-bottom:5px}.live-table th,.live-table td{border-bottom:1px solid var(--line);padding:6px;text-align:left}.live-table th{color:var(--muted);font-weight:500}.live-table td{font-variant-numeric:tabular-nums}.workbench{margin-top:0}.mode-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}button,input{font:inherit}button{background:#233b4d;border:1px solid var(--line);color:var(--ink);padding:7px 10px;border-radius:7px;cursor:pointer}button:hover,button[aria-pressed=true]{border-color:var(--base)}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--base);outline-offset:3px}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.control label{display:block;color:var(--muted);font-size:12px}.control-row{display:flex;align-items:center;gap:6px;margin-top:4px}.control input{width:110px;background:#0e202d;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:5px}.control small{color:var(--muted);font-size:10px}.control.invalid input{border-color:#ff9292}.error{color:#ff9292;font-size:12px}.warning{color:var(--warning)}.theory li{margin:6px 0}.math{font-family:Georgia,serif}.tutorial iframe,.video iframe{width:100%;height:400px;border:1px solid var(--line);border-radius:8px;background:#fff}.sources li{margin:7px 0}a{color:var(--base)}footer{text-align:center;color:var(--muted);font-size:12px;padding:4px}.q-point{fill:var(--base);stroke:var(--ink);stroke-width:2}.axis{stroke:var(--muted);stroke-width:2;fill:none}.load-line{stroke:var(--ink);stroke-width:2.5;fill:none}.guide-line{stroke:var(--warning);stroke-dasharray:6 5}.guide{stroke:var(--base);stroke-dasharray:4 4;fill:none}.plot-label{fill:var(--muted);font:13px system-ui,sans-serif}.plot-warning{fill:var(--warning);font:14px system-ui,sans-serif}.application{margin-bottom:16px}@media(max-width:950px){.monitor{grid-template-columns:1fr}.controls{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.shell{padding:12px}.panel{padding:12px}.controls{grid-template-columns:1fr}.tutorial iframe,.video iframe{height:300px}}@media(prefers-reduced-motion:reduce){.current{stroke-dasharray:none}}
:root{--diagram-height:380px}#circuit{max-height:var(--diagram-height);object-fit:contain}

/* Keep the circuit, load line and readings visible together on desktop. */
#circuit{max-height:310px}#plot{max-height:230px}
@media(max-width:600px){#circuit{max-height:330px}#plot{max-height:none}}

.plot-label{font-size:18px}.plot-warning{font-size:19px}

.tutorial iframe{height:560px}@media(max-width:600px){.tutorial iframe{height:500px}}
