/* ELFAG v0.26 design system — dark navigation, calm light workspace. */
:root{
  color-scheme:light;
  --nav:#0b2438;--nav-2:#102e45;--canvas:#f4f7fa;--paper:#fff;
  --ink:#10243a;--muted:#60758a;--line:#d9e2ea;--soft:#eef3f7;
  --active:#11a779;--active-2:#20c6a0;--blue:#1678cf;--warn:#f1a12a;
  --danger:#d84c5b;--shadow:0 12px 32px rgba(21,48,72,.10)
}
html{background:var(--canvas)}
body{background:var(--canvas);color:var(--ink)}
.app{background:var(--canvas);color:var(--ink);max-width:1480px}
.app>header{background:linear-gradient(100deg,var(--nav),#143b58);height:68px;margin:0 -40px 26px;padding:0 32px;border-bottom:1px solid #294b63;box-shadow:0 4px 18px #10243a22}
.brand b,.app>header .brand b{color:#fff}.brand small{color:#c0d1dd}.brand>span{background:linear-gradient(145deg,#17c6a0,#09866b);box-shadow:0 0 22px #20c6a066}
.pill{background:#ffffff12;border-color:#ffffff2b;color:#d9e8f0}.pill:before{background:#3fe0af}
.header-right .icon-button{background:#ffffff0e;border-color:#ffffff2c;color:#e4f1f6}
.sidebar{background:linear-gradient(180deg,#091f31,#0c2a40 70%,#0a2234);border-color:#254157;box-shadow:8px 0 28px #10243a20}
.sidebar .side-brand{color:#fff}.side-caption,.side-foot{color:#7894a8}.side-link{color:#c1d0da}.side-link:hover,.side-link.selected{background:linear-gradient(90deg,#087d66,#10977a);border-color:#36d6b0;color:#fff;box-shadow:0 7px 18px #001a1538}.side-link.selected .ico{color:#caffef}.side-foot{border-color:#28455a}
.view h1,.view h2,.view h3,.page-title h1,.section-heading h2,.bar h2{color:var(--ink)}
.page-title p,.section-heading span,.helper,.lead,.hint,.footnote{color:var(--muted)}
.eyebrow{color:#0b906c}.icon-button,.bar button{background:#fff;color:#31546d;border-color:#cddae3;box-shadow:0 5px 14px #18364c12}
.panel,.tool-card,.project-row,.bank-card,.network-card,.flow-aside,.workflow-panel,.schematic-panel,.circuit-branch,.saved-circuit,.assignment-review,.h1-course-head,.h1-question,.h1-summary,.dimension-step,.dimension-chain,.chain-fuse-panel{
  background:var(--paper);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow)
}
.panel p,.tool-card small,.project-row small,.bank-card small,.bank-card span,.flow-aside p,.network-raw,.case-text{color:var(--muted)}
.primary{background:linear-gradient(120deg,#0a9f78,#19b98e);border-color:#0a8d6c;box-shadow:0 8px 20px #0a9f7830;color:#fff}
.secondary{background:#fff;color:#29485f;border-color:#cbd8e1}.subtle{color:#087c63}.section-heading .subtle{background:#eef8f5;border-color:#bfe4d8;color:#087c63}
.tabs,.seg{background:#e9eff4;border-color:#d0dce5}.tabs button,.seg button{color:#526a7e}.tabs button.selected,.seg button.sel{background:#fff;color:#087c63;box-shadow:0 3px 10px #193c5320}
input:not([type=checkbox]),select,textarea,.form input,.form select,.form textarea,.study-search input,.guide-search input,.converter-panel input,.converter-panel select{background:#fff!important;color:#142b3e!important;border:1px solid #bdccd7!important;box-shadow:inset 0 1px 3px #18364b0d}
input:focus,select:focus,textarea:focus{outline:3px solid #23b99233!important;border-color:#0da67d!important}
.view label,.form label,.form-grid label,.dimension-step label{color:#3c566c}
.result,.metric{background:linear-gradient(145deg,#eaf9f4,#f7fffc);border-color:#a7dccb;box-shadow:none}.result strong,.metric strong{color:#0a775c}.result p,.result small,.metric span,.metric small{color:#587669}
.answer-grid>div,.factor-grid>div{background:#f5f8fa;border:1px solid var(--line);color:#28465c;box-shadow:none}.factor-grid b{color:#087c63}
.work,.explain,.dim-formula,.dim-equation,.dimension-live,.readable-equation{background:#f2f6f8;color:#27465b;border-color:#d3dee6}.formula,.formula-expression,.study-equation{background:#edf5fb!important;color:#10283a!important;border-color:#bfd2df!important}
.status,.status.info{background:#edf6fb;border-color:#b8d7e8;color:#285d7b}.status.good,.check.ok,.dim-check.pass,.dimension-final.pass{background:#e8f8f1;border-color:#a6ddc8;color:#08704f}.status.bad,.check.no,.dim-check.fail,.dimension-final.fail{background:#fff0f1;border-color:#efbcc2;color:#9e2d3a}.status.conditional,.check.conditional,.dim-check.waiting,.dimension-final.waiting{background:#fff7e8;border-color:#efd39a;color:#82580f}.notice{background:#fff8e8;border-color:#ead5a5;color:#765317}.notice p{color:#765f34}
.hero{background:#dae6ed url('assets/hero.png') center/cover;border-color:#c7d7e1;box-shadow:var(--shadow);min-height:360px}.hero:before{background:linear-gradient(90deg,#fffffffa 0,#fffffff0 36%,#ffffff60 68%,transparent 88%)}.hero-copy h1{color:#0d2338;text-shadow:none}.hero-copy p:not(.eyebrow){color:#4c6478}
.module{background:#fff!important;border-color:#d9e3ea!important;color:#153047!important;box-shadow:var(--shadow);min-height:158px}.module:after{display:none}.module b,.module small,.module .arrow{color:#153047}.module small{color:#64798b}.module .module-icon{background:#e8f8f3;border-color:#bde9db;color:#0a9670;box-shadow:none}.module:hover{border-color:#1ab58d!important;box-shadow:0 16px 34px #173c551a}.module.orange .module-icon{background:#fff2df;color:#bc6b0d;border-color:#f3d2a3}.module.purple .module-icon{background:#f1ecff;color:#6f55ba;border-color:#d9cef8}.module.gold .module-icon{background:#fff7d9;color:#9d7500;border-color:#eadc9d}
.ask-banner,.ai-roadmap,.practice-hero{background:linear-gradient(110deg,#0c6b75,#109b7c);border-color:#42ccb0;box-shadow:var(--shadow)}
.installation-figure{background:#fff;border-color:#d6e2e9}.installation-figure figcaption{background:#0c2b41;color:#eaf6fb}.route-stage{background:#fff;border-color:#d7e1e8;color:#496277}.route-stage.selected{background:#e8f8f2;border-color:#42c8a3;color:#087558}.visual-route{background:#f1f6f8;border-color:#d3e0e7}.visual-route small{color:#60778a}.wire{background:linear-gradient(90deg,#0a9e78,#37d8b0)}
.step i,.dimension-rail button i{background:#fff;border-color:#c7d5de;color:#60778b}.step.active i,.dimension-rail button.active i,.dimension-rail button.done i{background:#0ca77e;border-color:#0a8e6b;color:#fff;box-shadow:0 0 0 5px #16b68a18}.dimension-rail,.chain-map{background:#eef3f6;border-color:#d2dee6}.dimension-rail button,.chain-map b{color:#506a7d}.dimension-rail button.active{background:#e3f7f0;color:#086f54}
.schematic-panel,.mixed-vector{background:#f7fafb;border-color:#d7e2e8}.schematic-bg{fill:#f7fafb}.schematic-wire,.branch-wire,.symbol,.coil-symbol,.capacitor-symbol{stroke:#117fba}.circuit-svg text,.mixed-vector text{fill:#173349}
.formula-card,.formula-layout>aside{background:#fff;color:#183246;border-color:#d6e1e8;box-shadow:var(--shadow)}.formula-card h2,.formula-card p,.formula-card-top span,.formula-source{color:#304b60}.formula-hero{background:linear-gradient(120deg,#0c6f78,#11a27f);border-color:#40cab0}.formula-filters button,.study-categories button,.study-modes button,.road-filters button{background:#f0f4f7;color:#476176;border-color:#d2dce4}.formula-filters button.selected,.study-categories button.selected,.study-modes button.selected,.road-filters button.selected{background:#0da57d;color:#fff;border-color:#0a8c6a}
.toast{background:#0c2b40;color:#fff;border-color:#2e596f}.reference{background:#f8fafb;color:#3f596c;border-color:#d7e1e8}.reference summary{color:#0a8062}.curve{background:#f5f8fa;border-color:#d4dfe6}.curve-label{color:#496377}

/* AC legacy calculator: neutralise the former dark-theme overrides. */
#formulary .bar{background:transparent!important;color:var(--ink)!important;border:0!important}
#formulary .bar h2{color:var(--ink)!important}
#formulary .form{background:transparent!important;color:#38556a!important;border:0!important;padding:0!important}
#formulary .helper,#formulary>p,#formulary label,#formulary details p{color:#536c7f!important}
#formulary .helper,#formulary>p.helper,#formulary details p.helper{background:transparent!important;border:0!important;padding-left:0!important;padding-right:0!important}
#formulary details{background:#fff!important;color:var(--ink)!important;border:1px solid #d6e1e8!important;box-shadow:0 8px 22px #173b5310}
#formulary details summary{color:#18364b!important}
#formulary .simple-grid label{color:#38556a!important}
#formulary .simple-grid b{color:#087c63!important}
#formulary .simple-value{background:#fff!important;border-color:#bdccd7!important}
#formulary .simple-value input{background:#fff!important;color:#142b3e!important;-webkit-text-fill-color:#142b3e!important}
#formulary .simple-value select,#formulary .simple-value>span{background:#edf3f6!important;color:#25475e!important;-webkit-text-fill-color:#25475e!important}
#formulary #simpleStatus{background:#e9f7f2!important;color:#175e4b!important;border:1px solid #b9e2d4}
#formulary #simpleResults article{background:#fff!important;color:#234359!important;border-color:#d7e2e9!important;box-shadow:0 7px 18px #173b530d}
#formulary #simpleResults strong{color:#087c63!important}
#formulary #simpleResults span{color:#657c8d!important}
#formulary .ac-calculate{background:linear-gradient(120deg,#0a9f78,#19b98e)!important;border-color:#0a8d6c!important}
#formulary .simple-actions button:not(.ac-calculate),#formulary .study-open,#formulary .guide-open{background:#fff!important;color:#29485f!important;border-color:#bdccd7!important}
#formulary .work,#formulary .prework{background:#f2f6f8!important;color:#27465b!important;border-color:#d3dee6!important}

/* Reference-page visual framing. */
.reference-visual{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:0;overflow:hidden;margin:0 0 24px;background:#fff;border:1px solid #d7e2e9;border-radius:18px;box-shadow:var(--shadow)}
.reference-visual img{width:100%;height:280px;object-fit:cover;display:block}.reference-visual-copy{padding:26px;display:flex;flex-direction:column;justify-content:center}.reference-visual-copy h2{margin:4px 0 10px}.reference-visual-copy p{margin:0;color:#61778a;font-size:13px}.reference-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.reference-tags span{background:#e8f8f2;color:#087459;border:1px solid #bce7d9;border-radius:99px;padding:5px 10px;font-size:11px;font-weight:700}

/* PLC workshop. */
.plc-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-6px 0 18px}.plc-toolbar .primary,.plc-toolbar .secondary{display:flex;gap:8px;align-items:center}.plc-mode{margin-left:auto;padding:7px 12px;border-radius:99px;background:#eef3f6;color:#526b7d;font-size:12px;font-weight:750}.plc-mode.running{background:#e5f8ef;color:#087252}.plc-workspace{display:grid;grid-template-columns:minmax(430px,.95fr) minmax(480px,1.05fr);gap:18px}.plc-card{background:#fff;border:1px solid #d6e1e8;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.plc-card-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid #dfe7ec}.plc-card-head h2{font-size:16px;margin:0}.plc-card-head small{color:#718596}.ladder{padding:18px;background:linear-gradient(90deg,#f4f7f9 0 34px,#fff 34px calc(100% - 34px),#f4f7f9 calc(100% - 34px))}.rung{position:relative;display:grid;grid-template-columns:36px 1fr 1fr 1fr 1fr 42px;align-items:center;gap:9px;min-height:112px;border-top:2px solid #20384a}.rung:before,.rung:after{content:'';position:absolute;top:-2px;width:2px;height:112px;background:#20384a}.rung:before{left:17px}.rung:after{right:17px}.rung-number{font-size:11px;color:#7a8f9e;text-align:center}.ladder-node{position:relative;text-align:center;padding-top:32px;font-size:11px;color:#40596c}.ladder-node b{display:block;color:#173349}.ladder-symbol{position:absolute;left:8%;right:8%;top:9px;height:24px;border-left:2px solid #213d50;border-right:2px solid #213d50}.ladder-symbol:before{content:'';position:absolute;left:50%;top:-8px;width:2px;height:40px;background:#fff;transform:rotate(24deg);display:none}.ladder-node.nc .ladder-symbol:before{display:block;background:#20384a}.ladder-node:before,.ladder-node:after{content:'';position:absolute;top:20px;width:18%;height:2px;background:#20384a}.ladder-node:before{left:-9%}.ladder-node:after{right:-9%}.ladder-node.coil .ladder-symbol{border:2px solid #20384a;border-top-color:transparent;border-bottom-color:transparent;border-radius:50%;left:24%;right:24%}.ladder-node.active{color:#07805f}.ladder-node.active b{color:#087253}.ladder-node.active .ladder-symbol,.ladder-node.active.coil .ladder-symbol{border-color:#18b488;box-shadow:0 0 12px #1bd09c99}.ladder-node.active:before,.ladder-node.active:after,.rung.energized{border-top-color:#19b989}.plc-process{position:relative;background:#dce4e9;min-height:390px;overflow:hidden}.plc-process img{display:block;width:100%;height:390px;object-fit:cover}.process-overlay{position:absolute;inset:0;pointer-events:none}.process-badge{position:absolute;background:#0b263bdc;color:#fff;border:1px solid #ffffff55;border-radius:8px;padding:7px 9px;font-size:11px;font-weight:700;box-shadow:0 5px 12px #0018}.process-badge.pump{left:9%;bottom:17%}.process-badge.high{right:12%;top:29%}.process-badge.low{right:12%;bottom:25%}.process-badge.alarm{right:4%;top:7%}.process-badge.active{background:#087b5ee8;border-color:#6cf0c7}.process-badge.alarm.active{background:#b62e39e8;border-color:#ff9299}.flow-glow{position:absolute;left:5%;bottom:16%;width:42%;height:8px;border-radius:99px;background:#28d9ff;box-shadow:0 0 16px #1ecdfd;opacity:0}.flow-glow.active{opacity:1;animation:plcflow .8s linear infinite}.level-gauge{position:absolute;left:63%;bottom:9%;width:10px;height:70%;border:1px solid #ffffffcc;border-radius:7px;background:#0b243866;overflow:hidden}.level-gauge i{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(#42dcff,#087fca);transition:height .3s}.level-gauge span{position:absolute;left:15px;top:45%;background:#fff;color:#173349;border-radius:6px;padding:3px 6px;font-size:10px;white-space:nowrap}
.plc-io{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid #dbe4ea}.io-cell{padding:14px 8px;text-align:center;border-right:1px solid #e0e7ec;background:#f8fafb}.io-cell:last-child{border:0}.io-cell b,.io-cell small{display:block}.io-cell b{font-size:12px}.io-cell small{font-size:10px;color:#6f8393}.io-lamp{display:block;width:22px;height:22px;margin:9px auto 0;border-radius:50%;background:#c7d1d8;border:2px solid #758a99;box-shadow:inset 0 2px 5px #0002}.io-cell.active .io-lamp{background:#25d996;border-color:#09835c;box-shadow:0 0 14px #19d593}.io-cell.alarm.active .io-lamp{background:#f04451;border-color:#a8202d;box-shadow:0 0 14px #ef4352}.plc-explain{grid-column:1/-1;padding:22px}.logic-chain{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.logic-step{padding:13px;border-radius:10px;background:#f3f7f9;border:1px solid #d8e3e9;color:#4d6678;font-size:11px}.logic-step b{display:block;color:#183449;font-size:12px}.logic-step.ok{background:#e8f8f1;border-color:#a9dfcc}.logic-step.stop{background:#fff0f1;border-color:#efbbc1}.plc-disclaimer{font-size:11px;color:#697f90;margin:12px 0 0}.plc-inputs{display:flex;gap:8px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid #dce5ea;background:#f7fafb}.plc-inputs button{border:1px solid #bdccd7;background:#fff;color:#29485f;border-radius:9px;padding:9px 14px}.plc-inputs button.start{background:#e7f8f1;color:#087052;border-color:#a8ddc9}.plc-inputs button.stop{background:#fff0f1;color:#9f303b;border-color:#e9b5bb}
@keyframes plcflow{50%{filter:brightness(1.5)}}

@media(max-width:1100px){.app>header{margin-left:-25px;margin-right:-25px}.reference-visual{grid-template-columns:1fr}.reference-visual img{height:230px}.plc-workspace{grid-template-columns:1fr}}
@media(max-width:720px){.app{background:var(--canvas)}.app>header{margin:0 -18px 18px;padding:0 18px}.app>nav{background:#0b2438;border-color:#315065}.app>nav button{color:#9db2c0}.app>nav button.active{color:#48dfb5}.module-grid{grid-template-columns:1fr 1fr}.hero{min-height:325px}.reference-visual img{height:190px}.reference-visual-copy{padding:20px}.plc-toolbar .plc-mode{width:100%;margin:0}.plc-process,.plc-process img{height:300px;min-height:300px}.ladder{padding:12px}.rung{grid-template-columns:28px repeat(4,1fr) 30px;gap:3px}.ladder-node{font-size:9px}.plc-io{grid-template-columns:repeat(3,1fr)}.logic-chain{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.module-grid{grid-template-columns:1fr}.plc-process,.plc-process img{height:245px;min-height:245px}.plc-card-head{align-items:flex-start;gap:7px}.plc-card-head small{text-align:right}.logic-chain{grid-template-columns:1fr}.plc-io{grid-template-columns:repeat(2,1fr)}}
