/* OVE LAB: identiteta, kartice sklopov, aktivnost, delovni pult, multimeter. */
:root{--solar:#c98a00;--wind:#2f76b0;--hydro:#138a9e;--biomass:#4f7f31;--heatpump:#c0513a;--storage:#6450c8;--hybrid:#0b7a62;--diagnostics:#56626b;--mod:var(--teal)}
.mod-solar{--mod:var(--solar)}.mod-wind{--mod:var(--wind)}.mod-hydro{--mod:var(--hydro)}.mod-biomass{--mod:var(--biomass)}.mod-heatpump{--mod:var(--heatpump)}.mod-storage{--mod:var(--storage)}.mod-hybrid{--mod:var(--hybrid)}.mod-diagnostics{--mod:var(--diagnostics)}
body{background:var(--bg)}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:12px;top:12px;z-index:200;background:white;padding:10px 14px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.school-header{background:#0f3b33;border-bottom:0;color:white}.school-header .wordmark{color:white}.wordmark small{color:#b9d8cf}.logo-mark{background:#ffd34d;color:#0f3b33;border-radius:8px;font-size:20px}
.school-header .account-meta small{color:#b9d8cf}.school-header .account-meta button{background:transparent;color:white;border-color:#4f7d72}
.lab-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px;padding:34px 36px;border-radius:12px;color:white;background:linear-gradient(120deg,#0f3b33 0%,#135447 55%,#1c6a58 100%);position:relative;overflow:hidden}
.lab-hero:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff08 0 1px,transparent 1px 42px),repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 42px);pointer-events:none}
.lab-hero h1{font-size:52px;letter-spacing:.02em;margin:0 0 6px;font-weight:850}.lab-hero p{margin:0;color:#cfe6de;font-size:18px}.lab-hero .eyebrow{color:#ffd34d}
.lab-hero .safety-note{max-width:360px;font-size:13px;line-height:1.55;color:#e9f4f0;border-left:3px solid #ffd34d;padding-left:14px;position:relative;z-index:1}
.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.module-card{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon title count" "bar bar bar" "meta meta meta";gap:12px 14px;align-items:center;text-align:left;padding:22px;min-height:170px;border:1px solid var(--line);border-top:5px solid var(--mod);border-radius:10px;background:white;font-weight:400}
.module-card:hover{background:white;border-color:var(--mod);box-shadow:0 10px 30px #0f3b3314}
.module-card[aria-disabled=true]{background:#f6f8f9;color:#6f7f88;cursor:default}.module-card[aria-disabled=true] .module-icon{filter:grayscale(1);opacity:.6}
.module-icon{grid-area:icon;font-size:30px;width:52px;height:52px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--mod) 14%,white)}
.module-title{grid-area:title;font-weight:780;font-size:16px;text-transform:uppercase;letter-spacing:.03em;line-height:1.3}
.module-count{grid-area:count;font:700 20px ui-monospace,SFMono-Regular,monospace;color:var(--mod)}
.module-bar{grid-area:bar;font:15px ui-monospace,SFMono-Regular,monospace;letter-spacing:-.05em;color:var(--mod);overflow:hidden;white-space:nowrap}
.module-meta{grid-area:meta;display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.chip-ok{background:#e4f4ec;border-color:#9ccfb4;color:#1b6746}
.preview-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:0}
.module-head{display:flex;gap:18px;align-items:center;margin:20px 0 26px;padding-left:18px;border-left:5px solid var(--mod)}.module-head h1{margin:0 0 4px}.module-head p{margin:0;color:var(--muted)}
.activity-list .lesson-row{background:white}.activity-list .lesson-row:disabled .lesson-status{opacity:.6}
/* Aktivnost */
.activity{max-width:1600px;margin:auto;padding:26px 30px 70px;display:grid;gap:22px}
.activity-head{border-left:5px solid var(--mod);padding-left:22px}.activity-head h1{font-size:34px;margin:6px 0 10px}.activity-head .eyebrow{color:var(--mod);margin:10px 0 0}.goal{font-size:17px;margin:0;max-width:920px}
.steps,.hints,.check,.lab{background:white;border:1px solid var(--line);border-radius:10px;padding:22px 26px}
.steps h2,.hints h2{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.steps ol{margin:0;padding-left:22px;display:grid;gap:6px;font-size:15px;line-height:1.55}
.check{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.check #result{flex-basis:100%}.check .notice{margin:4px 0 12px}
button.big{min-height:52px;padding:12px 38px;font-size:17px;letter-spacing:.06em;text-transform:uppercase}
.hint-buttons{display:flex;gap:10px;flex-wrap:wrap}#hintList{margin:14px 0 0;padding-left:22px;display:grid;gap:8px}#hintList li{background:#fff8e8;border-left:3px solid #c59c45;padding:10px 14px;font-size:14px;line-height:1.55}
.lab{display:grid;gap:18px;padding:20px}
.lab-controls{display:flex;gap:26px;flex-wrap:wrap;padding:14px 18px;background:#f3f7f8;border-radius:8px}
.slider{display:grid;grid-template-columns:auto minmax(200px,340px) 110px;align-items:center;gap:14px;font-size:14px}.slider input{min-height:30px;padding:0;accent-color:var(--mod)}.slider output{font:700 18px ui-monospace,monospace;color:var(--mod)}
.lab-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.bench-wrap{min-width:0;border:1px solid #c9d6db;border-radius:10px;overflow:hidden;background:#fbfcfc}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:white}.toolbar button{min-height:38px;padding:6px 12px;font-size:13px}
.toolbar [aria-checked=true]{background:#0f3b33;border-color:#0f3b33;color:white}.tool-help{font-size:12px;color:var(--muted);margin-left:6px}
.bench{background:radial-gradient(circle,#d7e1e5 1px,transparent 1.2px) 0 0/22px 22px,#f7fafb;min-height:340px;overflow:auto}
.bench svg{display:block;width:100%;min-width:640px;height:auto;max-height:640px;touch-action:none;user-select:none;font-family:Inter,"Segoe UI",system-ui,sans-serif}
.bench-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,40%);gap:14px;padding:12px 14px;border-top:1px solid var(--line);background:white}
.status-strip{display:flex;gap:16px;flex-wrap:wrap;align-content:flex-start}.status-strip span{display:grid;gap:2px}.status-strip small{font-size:11px}.status-strip b{font:700 16px ui-monospace,monospace}
.wire-list summary{font-size:13px;font-weight:700;cursor:pointer}.wire-list ul{list-style:none;padding:0;margin:8px 0 0;max-height:160px;overflow:auto;font-size:12px;display:grid;gap:4px}
.wire-list li{display:flex;justify-content:space-between;align-items:center;gap:8px}.wire-list li button{min-height:28px;width:28px;padding:0}
/* SVG */
.comp-id{font-size:14px;font-weight:800;fill:#243746;text-anchor:middle}
.pv-frame{fill:#e9eef1;stroke:#8d9ba3;stroke-width:3}.pv-cell{fill:#1c3b6e;stroke:#3d64a3;stroke-width:.6}.shade{fill:#1b1f22}
.jbox{fill:#2b2f33}.jbox-t{fill:#d3d9dd;font-size:8px;text-anchor:middle;font-weight:700}
.cable{stroke:#33393d;stroke-width:4;fill:none;stroke-linecap:round}
.box{fill:white;stroke:#7f929b;stroke-width:2}.box-t{font-size:15px;font-weight:800;fill:#243746;text-anchor:middle}.box-s{font-size:12px;fill:#5c707b;text-anchor:middle}
.lcd-mini{fill:#23302d}.lcd-mini-t{fill:#7de0b5;font:700 16px ui-monospace,monospace;text-anchor:middle}
.tower{fill:#cfd8dc;stroke:#8d9ba3}.nacelle{fill:#e8edef;stroke:#8d9ba3;stroke-width:2}.blade{fill:#f7f9fa;stroke:#7f929b;stroke-width:1.5}.hub{fill:#8d9ba3}
.shaft{stroke:#8d9ba3;stroke-width:5;fill:none}.wind-t{font-size:12px;fill:var(--wind);font-weight:700}.wind-line{stroke:#9cc3e0;stroke-width:3;stroke-linecap:round}
.water{fill:#bfe3ec}.dam{stroke:#8d9ba3;stroke-width:8}.penstock{stroke:#8d9ba3;stroke-width:16;fill:none}.flow{stroke:#48b3cc;stroke-width:7;fill:none}.turbine{fill:#e8edef;stroke:#5c707b;stroke-width:3}
.resistor{fill:#f4d7a6;stroke:#9b6b16;stroke-width:2}
.wire{fill:none;stroke-width:5;stroke-linecap:round;cursor:pointer}.wire:hover{stroke-width:8}.w-pos{stroke:#c0392b}.w-neg{stroke:#1f2d3a}.w-other{stroke:#d68910}.wire.drag{stroke:#0b7a62;stroke-dasharray:8 6;pointer-events:none}
.term{cursor:pointer}.term circle{fill:white;stroke-width:3.5}.term.pos circle{stroke:#c0392b}.term.neg circle{stroke:#1f2d3a}.term.neutral circle{stroke:#8a6d1f}
.term text{font-size:12px;font-weight:800;text-anchor:middle;fill:#243746;pointer-events:none}.term:hover circle,.term.pending circle{fill:#fff3b0;stroke-width:5}
.term:focus{outline:none}.term:focus-visible circle{stroke:#12a37f;stroke-width:6}
.probe rect,.probe path{stroke:#fff;stroke-width:1.5;pointer-events:none}.probe.black rect,.probe.black path{fill:#1b1f22}.probe.red rect,.probe.red path{fill:#d0342c}
/* Multimeter */
.meter{background:linear-gradient(#f5c518,#e2ad00);border-radius:18px;padding:16px;display:grid;gap:12px;box-shadow:inset 0 0 0 6px #262a2d,0 10px 26px #0002;color:#1b1f22}
.meter-brand{font:800 11px Inter,sans-serif;letter-spacing:.14em;text-align:center}
.lcd{background:#b9c7a4;border:4px solid #262a2d;border-radius:8px;padding:14px 10px;font:700 30px ui-monospace,SFMono-Regular,monospace;text-align:right;color:#1d2415;min-height:72px}.lcd.beep{background:#d3e7a4}
.meter-warn{font-size:12px;line-height:1.45;background:#fff6d9;border-radius:6px;padding:0 10px;min-height:0}.meter-warn:not(:empty){padding:8px 10px}
.meter fieldset{border:0;margin:0;padding:0}.meter legend{font-size:11px;font-weight:800;margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}
.dial{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.dial label,.jacks label{display:block;cursor:pointer}.dial input,.jacks input{position:absolute;opacity:0;width:1px;height:1px}
.dial span{display:block;text-align:center;background:#262a2d;color:#f5f5f5;border-radius:6px;padding:9px 4px;font:700 14px ui-monospace,monospace}
.dial input:checked+span{background:white;color:#1b1f22;box-shadow:0 0 0 3px #1b1f22}.dial input:focus-visible+span,.jacks input:focus-visible+span{outline:3px solid #0b7a62;outline-offset:2px}
.jacks{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.jack,.jacks span{display:block;text-align:center;border-radius:40px;padding:8px 2px;font:800 14px Inter,sans-serif;background:#262a2d;color:white}
.jack small,.jacks small{display:block;font-size:9px;font-weight:500;opacity:.8}.jack.com{background:#1b1f22}.jacks label span{background:#7a1e18}.jacks input:checked+span{background:#d0342c;box-shadow:0 0 0 3px #1b1f22}
.probes{display:grid;gap:4px;margin:0;font-size:12px;background:#ffffffb0;border-radius:6px;padding:8px 10px}.probes div{display:flex;justify-content:space-between;gap:8px}.probes dd{margin:0;font-weight:700}
.meter .mini-actions button{flex:1;min-height:38px;font-size:13px;padding:6px 8px}
.records{margin:0;padding:8px 10px 8px 26px;max-height:190px;overflow:auto;font-size:11px;line-height:1.5;background:#ffffffb0;border-radius:6px}.records .muted{list-style:none;margin-left:-16px}
.datasheet{border:1px solid #c9d6db;border-radius:8px;padding:12px 16px;background:white}.datasheet summary{font-weight:750;cursor:pointer;font-size:14px}
.datasheet dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 18px;margin:12px 0 0}.datasheet dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.datasheet dd{margin:2px 0 0;font:700 15px ui-monospace,monospace}
.measure-table h3,.answers h3{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.measure-table td{padding:10px 12px}.measure-table td input{max-width:140px;min-height:36px}.measure-table td button{margin-left:6px}.measure-table>button{margin-top:10px}
.answer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.unit-input{display:flex;align-items:center;gap:8px}.unit-input span{font:700 14px ui-monospace,monospace;color:var(--muted);min-width:24px}
.ove-filters{grid-template-columns:repeat(5,minmax(0,1fr))}.section-title{font-size:18px;margin:30px 0 12px}
.history details{background:white;border:1px solid var(--line);border-radius:7px;padding:12px 16px;margin-bottom:8px}.history summary{cursor:pointer;font-size:14px}.history p{font-size:13px;margin:10px 0}
.teacher-dashboard td .chip{display:inline-block;margin:2px 0}
@media(max-width:1400px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-grid{grid-template-columns:minmax(0,1fr) 270px}.lcd{font-size:26px}}
@media(max-width:1000px){.lab-grid{grid-template-columns:1fr}.meter{grid-template-columns:1fr 1fr}.meter>.lcd,.meter>.meter-brand,.meter>.meter-warn,.meter>.records{grid-column:1/-1}.bench-foot{grid-template-columns:1fr}.ove-filters{grid-template-columns:1fr 1fr}.lab-hero{display:block}.lab-hero .safety-note{margin-top:16px}}
@media(max-width:740px){.module-grid{grid-template-columns:1fr}.activity{padding:18px 14px 50px}.lab{padding:12px}.slider{grid-template-columns:1fr;gap:6px}.meter{grid-template-columns:1fr}.lab-hero{padding:24px}.lab-hero h1{font-size:38px}.ove-filters{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
