/* Circuit Lab — experimental, tablet-first circuit workbench. */
#view-circuit-lab:checked ~ .app #circuit-lab{display:block}
#view-circuit-lab:checked ~ .app #circuitLabNav{background:#30291e;color:#f5db9e;box-shadow:inset 3px 0 var(--gold)}
#circuit-lab{min-width:0}
#circuit-lab .section-head{margin-bottom:15px}
#circuit-lab .section-head p{max-width:900px;line-height:1.6}
#circuit-lab .cl-disclaimer{
 border-left:3px solid #be9549;background:var(--panel2);
 border-radius:8px;padding:13px 15px;color:var(--muted);
 line-height:1.65;font-size:12px;margin:0 0 18px
}
#circuit-lab .cl-layout{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,285px);
 gap:14px;align-items:start;max-width:1500px
}
#circuit-lab .cl-work-area,#circuit-lab .cl-tools{min-width:0}
#circuit-lab .cl-work-area{display:grid;gap:15px}
#circuit-lab .cl-tools{display:grid;gap:14px;position:sticky;top:12px}
#circuit-lab .cl-card{
 background:var(--panel);border:1px solid var(--line);
 border-radius:14px;padding:clamp(12px,2vw,20px);min-width:0;
 display:grid;gap:13px
}
#circuit-lab .cl-card h2{margin:0;font-size:clamp(15px,2vw,19px)}
#circuit-lab .cl-card .cl-small{margin:0;line-height:1.65}
#circuit-lab .cl-small{font-size:12px;color:var(--muted)}
#circuit-lab .cl-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
#circuit-lab .cl-header-row{justify-content:space-between;align-items:start}
#circuit-lab .cl-header-row>div{flex:1 1 240px;display:grid;gap:8px}
#circuit-lab .cl-header-row button{min-height:43px}
#circuit-lab .cl-add-row{display:flex;flex-wrap:wrap;gap:8px}
#circuit-lab .cl-add-row button{min-height:44px;white-space:nowrap;font-size:12px}
#circuit-lab .cl-tool-row{padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
#circuit-lab .cl-tool{
 flex:1 1 120px;min-height:47px;border:1px solid transparent;border-radius:9px;
 padding:10px;color:var(--text);font-size:12px;font-weight:730;
 background:transparent;cursor:pointer;line-height:1.35
}
#circuit-lab .cl-tool.cl-tool-active{background:#49391d;color:#ffe0a0;border-color:#b18b49}
#circuit-lab .cl-scroll{
 max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #474f58;
 border-radius:13px;background:#171e25;touch-action:pan-x pan-y;
 -webkit-overflow-scrolling:touch;scrollbar-gutter:stable
}
#circuit-lab #clDiagram{
 display:block;width:1000px;height:570px;max-width:none;min-width:1000px;
 background:#171e25;color:#7a8b93;user-select:none;-webkit-user-select:none;touch-action:none
}
#circuit-lab .cl-grid-bg{pointer-events:none}
#circuit-lab .cl-wire-path{fill:none;stroke:#caa35b;stroke-width:5;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}
#circuit-lab .cl-wire-touch{fill:none;stroke:transparent;stroke-width:23;cursor:pointer;pointer-events:stroke;stroke-linecap:round}
#circuit-lab .cl-wire-group.cl-selected .cl-wire-path{stroke:#87d6eb;stroke-width:7}
#circuit-lab .cl-component-body{
 fill:#29333d;stroke:#84909c;stroke-width:2;cursor:grab
}
#circuit-lab .cl-component.cl-active .cl-component-body{stroke:#8ec8a1;fill:#253d35}
#circuit-lab .cl-component.cl-open .cl-component-body{stroke:#e2ac78}
#circuit-lab .cl-component.cl-selected .cl-component-body{stroke:#e7c077;stroke-width:3.5}
#circuit-lab .cl-component-symbol{
 fill:#e9c075;font-size:28px;font-weight:800;dominant-baseline:middle
}
#circuit-lab .cl-device-name{
 fill:#e0e8eb;font-size:13px;font-weight:750;letter-spacing:.015em;
 paint-order:stroke;stroke:#171e25;stroke-width:4px;stroke-linejoin:round
}
#circuit-lab .cl-device-value-bg{
 fill:#252f39;stroke:#6c7985;stroke-width:1.2
}
#circuit-lab .cl-component-value{fill:#e4edf0;font-size:13px;font-weight:800}
#circuit-lab .cl-terminal-hit{
 fill:transparent;stroke:none;cursor:crosshair;pointer-events:all
}
#circuit-lab .cl-terminal{
 fill:#d7dfe2;stroke:#1c2732;stroke-width:3;
 outline:none;pointer-events:none
}
#circuit-lab .cl-terminal-hit:focus{fill:rgba(224,184,101,.2);stroke:#e0b865;stroke-width:2}
#circuit-lab .cl-terminal.cl-terminal-pending{fill:#ffd57a;stroke:#875f19;stroke-width:4}
#circuit-lab .cl-terminal.cl-terminal-probe{fill:#88d7f7;stroke:#2671a2}
#circuit-lab .cl-terminal-label-bg{
 fill:#1b2630;stroke:#a0b0c0;stroke-width:1.2;
 pointer-events:none
}
#circuit-lab .cl-terminal-label{
 fill:#f1f6fa;font-size:13px;font-weight:850;pointer-events:none
}
#circuit-lab .cl-bottom-row label{font-size:12px;color:var(--muted);font-weight:750}
#circuit-lab .cl-bottom-row select{min-height:44px;flex:1 1 200px;min-width:0;font-size:14px}
#circuit-lab .cl-bottom-row button{min-height:44px}
#circuit-lab #clFeedback{padding:11px 13px;background:var(--panel2);border:1px solid var(--line);border-radius:8px}
#circuit-lab .cl-status-box{display:grid;gap:10px;border:1px solid var(--line);border-radius:11px;padding:13px;background:var(--panel2)}
#circuit-lab .cl-status-box>strong{font-size:15px}
#circuit-lab .cl-status-box>p{margin:0;font-size:12px;line-height:1.65;color:var(--muted)}
#circuit-lab .cl-status-powered{border-color:#3c7559;background:#1e332b}
#circuit-lab .cl-status-powered>strong{color:#a5e2b9}
#circuit-lab .cl-status-open{border-color:#88723e}
#circuit-lab .cl-status-open>strong{color:#f2d08a}
#circuit-lab .cl-status-short,#circuit-lab .cl-status-high-current,
#circuit-lab .cl-status-invalid{border-color:#b06261;background:#382829}
#circuit-lab .cl-status-short>strong,#circuit-lab .cl-status-high-current>strong,
#circuit-lab .cl-status-invalid>strong{color:#ffb6b5}
#circuit-lab .cl-metrics{display:grid;gap:6px}
#circuit-lab .cl-metric{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
#circuit-lab .cl-metric:last-child{border-bottom:0}
#circuit-lab .cl-metric small{font-size:11px;color:var(--muted)}
#circuit-lab .cl-metric b{font-size:12px;text-align:right;font-variant-numeric:tabular-nums}
#circuit-lab #clMeter{display:grid;gap:10px}
#circuit-lab #clMeter strong{font-size:13px}
#circuit-lab .cl-reading{font:800 clamp(23px,3vw,31px)/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--gold);margin:0;overflow-wrap:anywhere}
#circuit-lab .cl-detail-body{display:grid;gap:12px;min-height:70px}
#circuit-lab .cl-detail-body strong{font-size:14px}
#circuit-lab .cl-detail-body .cl-detail-field{display:grid;gap:7px;color:var(--muted);font-size:12px}
#circuit-lab .cl-detail-body input{min-height:46px;font-size:16px;width:100%}
#circuit-lab .cl-detail-body button{min-height:44px;justify-self:start}
#circuit-lab .cl-help ol{margin:0;padding-left:22px;color:var(--muted);font-size:12px;line-height:1.7;display:grid;gap:10px}
#circuit-lab button:focus-visible,#circuit-lab select:focus-visible,
#circuit-lab input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:1140px){
 #circuit-lab .cl-layout{grid-template-columns:minmax(0,1fr)}
 #circuit-lab .cl-tools{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
 #circuit-lab .cl-tools>.cl-card:first-child{grid-column:1/-1}
 #circuit-lab .cl-card{padding:14px}
}
@media(max-width:620px){
 #circuit-lab .cl-tools{grid-template-columns:1fr}
 #circuit-lab .cl-add-row button{flex:1 1 135px}
 #circuit-lab .cl-tool{flex-basis:90px}
 #circuit-lab .cl-bottom-row label{flex:1 1 100%}
 #circuit-lab .cl-bottom-row button{flex:1 1 130px}
}
:root[data-theme="light"] #circuit-lab .cl-status-powered{background:#eaf8ed}
:root[data-theme="light"] #circuit-lab .cl-status-open{background:#fff8e7}
:root[data-theme="light"] #circuit-lab .cl-status-short,
:root[data-theme="light"] #circuit-lab .cl-status-high-current{background:#fff0ee}
:root[data-theme="light"] #circuit-lab .cl-status-powered>strong{color:#276a40}
:root[data-theme="light"] #circuit-lab .cl-status-short>strong{color:#952f32}

/* 3-way training: visible lamp illumination follows the solver, not switch position alone. */
#circuit-lab .cl-three-way .cl-component-body{stroke:#a78ad0}
#circuit-lab .cl-three-way .cl-component-symbol{fill:#d0b8f2}
#circuit-lab .cl-lamp-on .cl-component-body{
 fill:#635024;stroke:#ffe18f;stroke-width:3.5;
 filter:drop-shadow(0 0 13px rgba(255,215,113,.75))
}
#circuit-lab .cl-lamp-on .cl-component-symbol{
 fill:#fff3bd;filter:drop-shadow(0 0 9px rgba(255,226,122,.95))
}
#circuit-lab .cl-lamp-on .cl-component-value{fill:#fff2b0;font-weight:850}
#circuit-lab .cl-lamp-on .cl-device-value-bg{fill:#5d4925;stroke:#f4cc69}
#circuit-lab .cl-lamp-off .cl-device-value-bg{fill:#252c34;stroke:#72808c}
#circuit-lab .cl-lamp-glow{
 fill:rgba(255,205,84,.26);stroke:rgba(255,223,123,.7);stroke-width:2;
 filter:drop-shadow(0 0 18px rgba(255,216,109,.65))
}
#circuit-lab .cl-lamp-off .cl-component-body{fill:#252b30;stroke:#66727e}
#circuit-lab .cl-lamp-off .cl-component-symbol{fill:#8d9aa5}
#circuit-lab .cl-lamp-off .cl-component-value{fill:#b5bec7}
#circuit-lab .cl-light-indicator{
 border:1px solid #77777f;background:#272c32;border-radius:9px;
 padding:12px 14px;font-size:13px;font-weight:850;letter-spacing:.03em;
 color:#b6c2cb;line-height:1.4
}
#circuit-lab .cl-light-indicator-on{
 color:#ffe2a4;background:#504023;border-color:#e5b762;
 box-shadow:0 0 16px rgba(255,207,114,.18)
}
:root[data-theme="light"] #circuit-lab .cl-light-indicator:not(.cl-light-indicator-on){
 color:#454e58;background:#e8e9ea
}
:root[data-theme="light"] #circuit-lab .cl-light-indicator-on{
 background:#fff1c5;color:#7c5007;border-color:#d4a44f
}

/* Source voltage selector: keep native hidden custom entry truly hidden. */
#circuit-lab .cl-detail-body select{min-height:46px;width:100%;font-size:16px}
#circuit-lab .cl-detail-field[hidden]{display:none!important}

/* Full-viewport Circuit Lab workspace; CSS fallback for iOS browsers which
   do not allow element.requestFullscreen(). */
#circuit-lab .cl-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
#circuit-lab .cl-header-actions button{min-height:44px}
#circuit-lab .cl-full-add{display:none;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text)}
#circuit-lab .cl-full-add select{min-height:44px;max-width:230px;min-width:165px;font-size:14px}
body.cl-circuit-fullscreen{overflow:hidden!important}
#circuit-lab.cl-fullscreen,
#circuit-lab:fullscreen{
 position:fixed!important;inset:0!important;z-index:2147483000!important;
 width:100%!important;max-width:none!important;max-height:none!important;
 height:100dvh!important;margin:0!important;
 padding:clamp(10px,1.5vw,18px)!important;box-sizing:border-box!important;
 display:block!important;overflow:auto!important;
 background:var(--bg,#151a20);color:var(--text);overscroll-behavior:contain;
}
#circuit-lab.cl-fullscreen .section-head,
#circuit-lab.cl-fullscreen .cl-disclaimer,
#circuit-lab.cl-fullscreen .cl-help{display:none}
#circuit-lab.cl-fullscreen .cl-add-row{display:none}
#circuit-lab.cl-fullscreen .cl-full-add{display:flex}
#circuit-lab.cl-fullscreen .cl-header-row>div>p{display:none}
#circuit-lab.cl-fullscreen .cl-layout{
 grid-template-columns:minmax(0,1fr) minmax(260px,315px);
 max-width:none;min-height:calc(100dvh - 36px);align-items:stretch
}
#circuit-lab.cl-fullscreen .cl-work-area{grid-template-columns:minmax(0,1fr)}
#circuit-lab.cl-fullscreen .cl-work-area>.cl-card{display:flex;flex-direction:column;height:100%;min-height:0}
#circuit-lab.cl-fullscreen .cl-scroll{flex:1 1 auto;min-height:270px;overflow:auto}
#circuit-lab.cl-fullscreen #clDiagram{margin:0 auto}
#circuit-lab.cl-fullscreen .cl-tools{position:static;display:flex;flex-direction:column;min-width:0}
#circuit-lab.cl-fullscreen .cl-tools>.cl-card:first-child{grid-column:auto}
#circuit-lab.cl-fullscreen .cl-tools>.cl-card{flex-shrink:0}
#circuit-lab .cl-control .cl-component-body{stroke:#8ca6bb;fill:#25343f}
#circuit-lab .cl-control .cl-component-symbol{font-size:29px;color:#e2cd97}
#circuit-lab .cl-control.cl-coil-on .cl-component-body{stroke:#82d7a7;fill:#254438;stroke-width:3}
#circuit-lab .cl-control.cl-coil-on .cl-component-value{fill:#aef2cb}
#circuit-lab .cl-control .cl-device-value-bg{fill:#24303b}
@media(max-width:820px){
 #circuit-lab.cl-fullscreen .cl-layout{grid-template-columns:minmax(0,1fr);min-height:0}
 #circuit-lab.cl-fullscreen .cl-work-area>.cl-card{min-height:0;height:auto}
 #circuit-lab.cl-fullscreen .cl-scroll{min-height:385px;max-height:calc(100dvh - 285px)}
 #circuit-lab.cl-fullscreen .cl-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #circuit-lab.cl-fullscreen .cl-tools>.cl-card:first-child{grid-column:1/-1}
}
@media(max-width:560px){
 #circuit-lab.cl-fullscreen .cl-header-row{align-items:center}
 #circuit-lab.cl-fullscreen .cl-header-actions{width:100%;justify-content:space-between}
 #circuit-lab.cl-fullscreen .cl-header-actions>button{flex:1}
 #circuit-lab.cl-fullscreen .cl-full-add{flex:1 1 100%;justify-content:space-between}
 #circuit-lab.cl-fullscreen .cl-full-add select{flex:1;min-width:0}
 #circuit-lab.cl-fullscreen .cl-scroll{max-height:calc(100dvh - 340px);min-height:280px}
 #circuit-lab.cl-fullscreen .cl-tools{grid-template-columns:1fr}
}

/* Live training-only diagnostics for coil ratings and measured supply voltage. */
#circuit-lab .cl-coil-overview{
 display:grid;gap:9px;padding:12px;border:1px solid #966c44;
 border-radius:10px;background:var(--panel2);min-width:0
}
#circuit-lab .cl-coil-overview>strong{font-size:13px;color:#efbd80}
#circuit-lab .cl-coil-overview>p{font-size:12px;color:var(--muted);margin:0;line-height:1.55}
#circuit-lab .cl-coil-alert{
 display:grid;gap:7px;padding:11px;border:1px solid #aa6750;
 background:rgba(176,91,63,.10);border-radius:9px;min-width:0
}
#circuit-lab .cl-coil-alert>strong{color:#f0ab89;font-size:12px}
#circuit-lab .cl-coil-alert>p{
 color:var(--text);font-size:12px;margin:0;line-height:1.55;
 overflow-wrap:anywhere
}
#circuit-lab .cl-coil-alert>button{justify-self:start;min-height:40px}
#circuit-lab .cl-coil-check{
 display:grid;gap:7px;padding:12px;border:1px solid var(--line);
 background:var(--panel2);border-radius:10px;min-width:0
}
#circuit-lab .cl-coil-check>strong{font-size:12px}
#circuit-lab .cl-coil-check>p{
 font-size:12px;color:var(--text);margin:0;line-height:1.5;
 overflow-wrap:anywhere
}
#circuit-lab .cl-coil-check-warning{border-color:#ad7650}
#circuit-lab .cl-coil-check-warning>strong{color:#edb788}
#circuit-lab .cl-coil-check-ok{border-color:#537962}
#circuit-lab .cl-coil-check-ok>strong{color:#99d4a8}
#circuit-lab .cl-control.cl-coil-issue .cl-component-body{
 stroke:#e89a64;stroke-width:3.5;
 filter:drop-shadow(0 0 6px rgba(220,111,67,.3))
}
#circuit-lab .cl-control.cl-coil-issue .cl-component-value{fill:#ffc99e}
:root[data-theme="light"] #circuit-lab .cl-coil-overview>strong,
:root[data-theme="light"] #circuit-lab .cl-coil-check-warning>strong{color:#87411f}
:root[data-theme="light"] #circuit-lab .cl-coil-alert>strong{color:#873f2e}
:root[data-theme="light"] #circuit-lab .cl-coil-check-ok>strong{color:#245e38}
