/* Shared application stylesheet. Base, course, and lesson rules in cascade order. */
:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#363636;background:#f5f5f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,.import:focus-within{outline:3px solid #a2a2a2;outline-offset:3px}aside{position:fixed;inset:0 auto 0 0;width:280px;background:#333333;color:#e3e3e3;padding:30px 20px;overflow:auto;display:flex;flex-direction:column}.brand{display:flex;gap:12px;font-size:34px;color:white;text-decoration:none;padding:0 12px 34px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px}.path-label{font-size:10px;letter-spacing:1.8px;color:#adadad;padding:0 12px;margin-bottom:22px}details{margin-bottom:18px}summary{cursor:pointer;font-size:12px;color:#bcbcbc;letter-spacing:.5px;padding:10px 8px}nav button{display:block;width:100%;background:none;color:#dddddd;border:0;text-align:left;padding:12px;border-radius:7px;font-size:13px;margin:3px 0}nav button.active{background:#505050;color:white}nav .topic{padding-left:26px;color:#c2c2c2;font-size:12px}nav .topic.active{background:#454545}nav .upcoming{opacity:.6}.badge{float:right;color:#d2d2d2}.sidebar-bottom{margin-top:auto;padding:24px 10px 0;font-size:12px;line-height:1.8}.sidebar-bottom button{background:transparent;color:#d5d5d5;border:1px solid #696969;border-radius:5px;padding:6px 9px;display:inline-block;font-size:11px;margin-top:12px}main{margin-left:280px}header{height:80px;border-bottom:1px solid #e4e4e4;display:flex;align-items:center;justify-content:space-between;padding:0 48px;font-size:10px;letter-spacing:1.5px;color:#828282}.local{letter-spacing:0;color:#797979}#menu{display:none}#content{max-width:1100px;margin:auto;padding:42px 48px 80px}.eyebrow{font-size:11px;letter-spacing:1.8px;color:#7e7e7e;text-transform:uppercase}h1{font:normal 42px Georgia,serif;letter-spacing:-1px;margin:14px 0}h2{font:normal 27px Georgia,serif;margin:24px 0 15px}h3{font-size:17px}p,li{line-height:1.8;color:#656565;font-size:15px}.lead{max-width:650px;font-size:16px}.hero{display:flex;align-items:center;gap:30px}.hero-art{flex:0 0 200px;width:200px;height:160px}.stats{display:flex;gap:30px;margin:28px 0;border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:18px 0;font-size:12px;color:#777777}.stats strong{color:#363636;font-size:19px;margin-right:6px}.primary{background:#4c4c4c;color:white;border:0;padding:13px 20px;border-radius:6px}.secondary{background:white;color:#4b4b4b;border:1px solid #dedede;padding:12px 18px;border-radius:6px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:#fff;border:1px solid #e3e3e3;border-radius:10px;padding:22px;text-align:left}.card .num{color:#8d8d8d;font-size:11px;letter-spacing:1px}.card h3{margin:13px 0 7px}.card p{font-size:13px;margin:0}.card .foot{margin-top:20px;font-size:11px;color:#696969;display:flex;justify-content:space-between}.tabs{display:flex;gap:22px;border-bottom:1px solid #dedede;margin:28px 0}.tabs button{background:none;border:0;padding:13px 0;color:#838383}.tabs button.selected{border-bottom:2px solid #535353;color:#535353}.paper{background:#fff;padding:32px 40px;border:1px solid #e3e3e3;border-radius:10px;max-width:800px}.paper h2:first-child{margin-top:0}.callout{background:#f1f1f1;border-left:3px solid #8e8e8e;padding:16px 20px;margin:22px 0;line-height:1.8;font-size:14px}.formula{font:24px Georgia,serif;text-align:center;background:#f5f5f5;padding:24px;border-radius:8px;margin:20px 0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.option{display:block;border:1px solid #e1e1e1;background:#fff;border-radius:7px;padding:14px;margin:10px 0;cursor:pointer}.option:has(input:checked){background:#f1f1f1;border-color:#898989}.option input{margin-right:10px}.feedback{padding:16px;border-radius:7px;background:#f2f2f2;margin-top:18px;line-height:1.7}.feedback.wrong{background:#f2f2f2}.quiet{font-size:12px;color:#848484}.progress{height:5px;background:#e3e3e3;border-radius:5px;margin:13px 0}.progress div{height:100%;background:#909090;border-radius:5px}.lab{background:#f6f6f6;border:1px solid #e1e1e1;padding:24px;border-radius:8px;margin-top:22px}.lab label{display:block;margin:15px 0;font-size:13px}.lab input{width:100%;accent-color:#535353}.readout{font-size:27px;color:#535353}.exam-choice{margin:12px 0}.toast{position:fixed;bottom:24px;right:24px;background:#333333;color:white;padding:16px;border-radius:8px;z-index:10}svg{max-width:100%}#navigation button:hover,.primary:hover{filter:brightness(1.12)}.card:hover{border-color:#a7a7a7}footer{margin-top:30px;font-size:11px;color:#848484}.score{font:52px Georgia,serif;color:#535353}.question-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:25px}
@media(max-width:900px){aside{width:235px}main{margin-left:235px}#content{padding:30px 24px}header{padding:0 24px}.hero-art{display:none}.grid{grid-template-columns:1fr}.paper{padding:25px}.stats{gap:15px;flex-wrap:wrap}h1{font-size:34px}}@media(max-width:650px){aside{display:none;z-index:20;width:280px;top:65px}body.nav-open aside{display:flex}main{margin:0}header{height:65px;padding:0 20px;font-size:9px}#menu{display:block;border:0;background:none;font-size:20px}.local{display:none}#content{padding:28px 20px}.paper{padding:22px 18px}h1{font-size:31px}}

nav .subject-group{margin:4px 0 12px}nav .subject-title{font-size:13px;line-height:1.6;color:#dddddd;border-radius:7px;padding:12px 8px}nav .subject-overview{padding-left:25px;font-size:11px}nav .topic-group{margin:3px 0 3px 12px}nav .topic-title{font-size:12px;line-height:1.5;color:#c2c2c2;letter-spacing:0;border-radius:7px;padding:10px 8px}nav .topic-title.active{background:#454545;color:white}nav .topic-section{padding:8px 12px 8px 30px;font-size:11px}nav summary:hover{background:#454545}nav summary:focus-visible{outline:3px solid #a2a2a2;outline-offset:2px}

nav .topic-title{position:relative;padding-left:23px}nav .read-dot{position:absolute;left:5px;top:14px;width:9px;height:9px;border:1.5px solid #c0c0c0;border-radius:50%;background:transparent}nav .read-dot.is-read{background:#d2d2d2;border-color:#d2d2d2}nav .pass-icon{color:#d2d2d2;margin-left:7px;font-size:11px}

nav .read-dot{width:12px;height:12px;left:4px;top:13px;border:2px solid #b4b4b4;background:transparent}nav .read-dot.is-read{background:#70f04b;border-color:#70f04b}nav .subject-title{position:relative;padding-left:23px}nav .subject-title .read-dot{top:16px}nav .pass-icon,nav .badge{color:#d4d4d4}.subject-reading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:16px 0 22px;font-size:13px;color:#707070}.subject-reading button{font-size:12px;padding:9px 13px}

nav .planned-title{padding-left:8px;color:#cecece}nav .planned-label{display:block;margin:4px 0 0 14px;font-size:9px;color:#999;letter-spacing:.4px}nav .planned-topic{font-size:11px;line-height:1.6;padding:8px 10px 8px 25px;color:#b6b6b6}.outline-list{padding-left:22px}.outline-list li{padding:5px 0}.outline-link{border:0;background:transparent;color:#4b4b4b;text-align:left;font-size:14px;line-height:1.7;padding:4px;cursor:pointer}.outline-link:hover{text-decoration:underline}

.recall{margin:14px 0;border:1px solid #dedede;border-radius:7px;background:#fafafa}.recall summary{color:#444;font-size:14px;letter-spacing:0;padding:13px}.recall p{padding:0 16px 12px;margin:0}.reading-reference{margin-top:28px;padding:15px 20px;border:1px solid #ddd;border-radius:8px;background:#eee}.reading-reference summary{color:#555;font-size:12px;letter-spacing:0}.reading-reference p{font-size:12px}.reading-reference a{color:#444}.formula{overflow-wrap:anywhere;font-size:22px;line-height:1.7}.lesson-diagram{margin:24px 0;background:#f7f7f7;border:1px solid #ddd;border-radius:8px;padding:15px}.lesson-diagram svg{display:block;width:100%;height:auto}.lesson-diagram figcaption{font-size:11px;line-height:1.7;color:#666;margin-top:10px}.truth-table{width:100%;border-collapse:collapse;text-align:center;font-size:13px}.truth-table caption{text-align:left;padding:0 0 14px;color:#555}.truth-table th,.truth-table td{border-bottom:1px solid #ddd;padding:10px}.attempt-list{background:white;border:1px solid #ddd;border-radius:8px;padding:8px 20px}.attempt-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eee;font-size:12px;color:#666}.attempt-list>div:last-child{border:0}.attempt-list b{white-space:nowrap}nav .course-home{margin-bottom:16px;font-size:12px;border:1px solid #555}aside .brand{flex-shrink:0}aside .sidebar-bottom{flex-shrink:0}.paper .recall summary:hover{background:#eee}button:disabled{cursor:default;opacity:.6}@media(max-width:650px){.formula{font-size:18px}.lesson-diagram{padding:7px;margin:18px 0}.attempt-list{padding:8px 12px}}

.question-tools{margin:0;justify-content:flex-end}.question-tools button{padding:8px 12px;font-size:12px}.question-nav{flex-wrap:wrap;align-items:center}.question-nav>.eyebrow{white-space:nowrap}

.deep-section{margin-top:34px;padding-top:6px;border-top:1px solid #eee}.deep-section p{max-width:70ch}.paper p{margin:15px 0}.paper h2{line-height:1.3}.deep-section h2{font-size:25px}

.sidebar-bottom{max-height:48vh;overflow-y:auto}

#drawer-close,#drawer-backdrop,.mobile-title{display:none}
@media(max-width:900px){
 body.nav-open{overflow:hidden}
 #sidebar{display:flex;position:fixed;inset:0 auto 0 0;top:0;width:min(320px,86vw);height:100vh;height:100dvh;z-index:40;padding:calc(22px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));transform:translateX(-105%);visibility:hidden;transition:transform .2s ease;overscroll-behavior:contain;box-shadow:4px 0 20px #0003}
 body.nav-open #sidebar{transform:translateX(0);visibility:visible}
 #drawer-close{display:block;position:absolute;top:calc(12px + env(safe-area-inset-top));right:10px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:white;font-size:30px;line-height:1}
 #drawer-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:30;border:0;background:#0007;cursor:pointer}
 main{margin-left:0;width:100%;min-width:0}
 header{position:sticky;top:0;z-index:20;height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0 8px;justify-content:flex-start;gap:12px;background:#f5f5f5;box-shadow:0 1px 4px #0001}
 #menu{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;border:0;background:transparent;border-radius:50%;font-size:26px;color:#363636;padding:0}
 .desktop-title{display:none}.mobile-title{display:block;font-size:21px;letter-spacing:0;font-weight:600;color:#363636}.local{display:none}
 #content{padding:24px 16px calc(40px + env(safe-area-inset-bottom));overflow-wrap:anywhere}
 #sidebar .brand{padding:4px 42px 24px 10px;font-size:29px}
 #sidebar .path-label{margin-bottom:12px}
 #sidebar .sidebar-bottom{max-height:none;overflow:visible;padding-top:16px}
 #sidebar nav button,#sidebar summary{min-height:44px}
 .paper{padding:22px 18px;width:100%;min-width:0}.grid{grid-template-columns:1fr}.card{min-width:0;padding:20px}.card .foot{gap:12px}
 h1{font-size:30px;line-height:1.2}h2,.deep-section h2{font-size:24px}p,li{font-size:16px;line-height:1.75}
 .stats{gap:12px;flex-wrap:wrap}.stats>span{flex:1 1 120px}.actions{gap:10px}.actions button{min-height:44px;white-space:normal}.primary,.secondary{min-height:44px}
 .tabs{gap:20px}.tabs button{min-height:48px}.option{min-height:52px;padding:16px 12px;line-height:1.6}.option input{width:18px;height:18px;vertical-align:middle}
 .question-nav{align-items:flex-start}.question-nav>.eyebrow{white-space:normal}.question-tools{justify-content:flex-start;width:100%}.question-tools button{font-size:13px;min-height:44px}
 .formula{padding:18px 12px;font-size:20px}.callout{padding:14px 16px}.truth-table{font-size:12px}.truth-table th,.truth-table td{padding:8px 4px}
 .toast{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:50;font-size:14px}
 input[type=range]{min-height:44px}.subject-reading{align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){#sidebar{transition:none}}

.instant-feedback{margin:22px 0;padding:18px;border:1px solid #d5d5d5;border-left:4px solid #4d7a40;border-radius:8px;background:#f5faf3}.instant-feedback.is-incorrect{border-left-color:#ab513f;background:#fff7f4}.instant-feedback h3{margin:0 0 12px;line-height:1.5}.instant-feedback p{margin:10px 0}.answer-correct,.option.answer-correct:has(input:checked){border-color:#5b864c;background:#f2f8ef}.answer-incorrect,.option.answer-incorrect:has(input:checked){border-color:#b96552;background:#fff5f1}.answer-marker{display:block;font-size:12px;font-weight:600;margin-top:6px}.feedback-lesson{margin:16px 0 0;border-top:1px solid #ddd;padding-top:8px}.feedback-lesson summary{color:#444;font-size:14px;letter-spacing:0;line-height:1.5;padding:12px 0}.feedback-lesson p{font-size:14px}.instant-feedback h3:focus{outline:none}

.sync-pill{margin-left:auto;border:1px solid #ccc;border-radius:18px;background:#fff;color:#444;padding:8px 12px;min-height:40px;font-size:12px;max-width:220px;white-space:normal;line-height:1.3}header .local{display:none}#cloud-dialog{width:calc(100% - 32px);max-width:480px;border:1px solid #ccc;border-radius:12px;padding:24px;color:#333;background:#fff}#cloud-dialog::backdrop{background:#0008}#cloud-dialog h2{margin-top:0}#cloud-dialog button[hidden]{display:none}@media(max-width:900px){.sync-pill{font-size:11px;max-width:165px;min-height:44px}}

.term-definition{color:#555;font-weight:normal}.paper>h2:first-child{font-size:24px}

.paper .prerequisite-link{border:0;background:transparent;padding:4px 0;color:#444;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer;text-align:left;min-height:36px}.paper .prerequisite-link:hover{color:#111}.paper .prerequisite-link:focus-visible{outline:2px solid #555;outline-offset:3px}.worked-steps{padding-left:26px}.worked-steps li{padding-left:6px;margin:12px 0}.worked-steps li p{margin:0}.graph-scroll{overflow-x:auto;overscroll-behavior-x:contain}.graph-scroll svg{min-width:520px}.paper .truth-table{text-align:left}.paper .lesson-diagram figcaption{font-size:13px}.paper .recall p{padding:0 16px 12px;margin:12px 0}
.mobile-graph-hint{display:none}@media(max-width:650px){.paper .mobile-graph-hint{display:block;font-size:13px;color:#555;margin:10px 0}}


.reference-trigger{margin-left:auto;flex-shrink:0;border:1px solid #bbb;border-radius:6px;background:white;color:#444;padding:9px 14px;min-height:40px;font-size:13px;letter-spacing:0}.reference-trigger+.sync-pill{margin-left:12px}
#reference-dialog{width:calc(100% - 32px);max-width:880px;max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;border:1px solid #bbb;border-radius:12px;padding:24px 28px;background:#fff;color:#363636}#reference-dialog::backdrop{background:#0008}.reference-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.reference-heading h2{margin:0;font-size:27px}.reference-heading button{flex-shrink:0;width:44px;height:44px;background:#f3f3f3;border:1px solid #ddd;border-radius:6px;font-size:27px;color:#444}.reference-intro{margin:8px 0 18px;line-height:1.6}.reference-controls{display:flex;gap:12px;position:sticky;top:-24px;padding:12px 0;background:white;z-index:1;border-bottom:1px solid #ddd}.reference-controls label{display:block;font-size:12px;color:#555}.reference-controls label:first-child{flex:1;min-width:0}.reference-controls input,.reference-controls select{display:block;width:100%;border:1px solid #bbb;background:white;color:#333;border-radius:6px;padding:11px;margin-top:5px;min-height:44px;font-size:15px}.reference-group{margin:28px 0}.reference-group h3{font-size:18px;margin:0 0 10px}.reference-entry{display:grid;grid-template-columns:minmax(150px,1fr) 1.8fr;gap:18px;padding:16px 0;border-bottom:1px solid #e5e5e5;break-inside:avoid}.reference-key{font:20px/1.6 Georgia,serif;color:#292929;overflow-wrap:anywhere}.reference-entry.units .reference-key,.reference-entry.terms .reference-key{font:600 16px/1.6 Segoe UI,Arial,sans-serif}.reference-entry strong{font-size:14px}.reference-entry p{font-size:14px;line-height:1.6;margin:5px 0}.reference-entry .reference-units{color:#333;font-weight:600}
@media(max-width:900px){header{gap:6px}.mobile-title{font-size:18px}.reference-trigger{min-height:44px;font-size:12px;padding:8px 10px}.reference-trigger+.sync-pill{margin-left:0;max-width:105px}#reference-dialog{padding:18px 16px;max-height:calc(100dvh - 32px)}.reference-controls{top:-18px}.reference-heading h2{font-size:23px}.reference-entry{grid-template-columns:1fr;gap:5px;padding:16px 0}.reference-entry.units{grid-template-columns:65px 1fr;gap:10px}.reference-controls label:last-child{max-width:145px}.reference-controls input,.reference-controls select{font-size:16px}.reference-controls input{padding-left:8px;padding-right:6px}.reference-key{font-size:21px}.reference-entry p{font-size:15px}}

.teaching-visual{margin:26px 0;padding:14px;background:#f7f9fa;border:1px solid #d9e0e4;border-radius:8px}.teaching-visual svg{display:block;width:100%;height:auto;max-width:760px;margin:auto}.paper .teaching-visual figcaption{font-size:15px;line-height:1.65;margin:12px 0 0}.lesson-code{overflow-x:auto;background:#f3f5f6;border:1px solid #d5dce0;border-radius:8px;padding:18px;font-size:16px;line-height:1.6;white-space:pre;tab-size:4}.paper .lesson-code code{font-family:Consolas,monospace}.teaching-visual text{font-weight:400}@media(max-width:650px){.teaching-visual{padding:8px;margin:22px -6px}.teaching-visual svg{min-width:0}.paper .teaching-visual figcaption{font-size:14px}.lesson-code{font-size:14px;padding:12px}}

.diagram-enlarge{display:block;margin:10px 0 0 auto;font-size:13px;min-height:36px;padding:6px 12px}#diagram-dialog{width:calc(100% - 24px);max-width:1000px;max-height:90dvh;overflow:auto;border:1px solid #bbb;border-radius:10px;padding:20px;background:#fff;color:#333}#diagram-dialog::backdrop{background:#0008}#diagram-view{overflow-x:auto}#diagram-view svg{display:block;width:100%;min-width:640px;height:auto}#diagram-view p{line-height:1.7;font-size:16px}.learning-activity{border:1px solid #cad5dc;border-radius:8px;padding:20px;margin:26px 0;background:#f7f9fa}.learning-activity input[type=range]{display:block;width:100%;margin:14px 0}.light-state{font-size:23px;font-weight:600;margin:18px 0}.light-state::before{content:'';display:inline-block;vertical-align:middle;width:22px;height:22px;border:2px solid #87929a;border-radius:50%;margin-right:12px;background:#dce1e5}.light-state.led-on::before{background:#f4c74e;border-color:#aa7c16;box-shadow:0 0 10px #f4c74e70}#light-history li{margin:8px 0}@media(max-width:650px){.learning-activity{padding:14px}.diagram-enlarge{min-height:44px}}

.paper .divider-formula{margin:20px 0;padding:22px 12px;background:#f7f9fa;border:1px solid #d9e0e4;border-radius:8px;color:#27333d;text-align:center}.divider-formula math{font-size:1.15em;margin:0}.paper .divider-symbols{table-layout:fixed}.divider-symbols th:first-child{width:22%}.divider-symbols th:last-child{width:15%}.divider-symbols td:first-child{overflow-wrap:anywhere}@media(max-width:650px){.paper .divider-formula{font-size:20px;padding:20px 6px}.paper .divider-symbols{font-size:13px}}

.lesson-parts{flex-direction:column;align-items:stretch}.lesson-parts button{text-align:left}.lesson-parts button[aria-current="page"]{background:#30363b;color:#fff;border-color:#30363b;box-shadow:inset 5px 0 #71ef87;font-weight:700}

.lab-workbench{margin:2rem 0;padding:1.25rem;border:1px solid #ccd1d4;border-radius:8px;background:#f8f9fa}.lab-workbench label{display:block;margin:1rem 0}.lab-workbench textarea,.lab-workbench select{display:block;width:100%;max-width:100%;padding:.7rem;font:inherit;color:#26313a;background:white;border:1px solid #a7afb4;border-radius:5px}.lab-complete input{width:auto}.course-path{margin:1rem 0;padding:1rem;border:1px solid #ccd1d4}.course-path .prerequisite-link{display:block;margin:.4rem 0}


/* Reading-term pilot: quiet inline cues, compact definitions. */
.paper .lesson-term{display:inline;border:0;border-radius:3px;padding:1px 2px;margin:0;background:transparent;color:#315c46;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:underline dotted;text-underline-offset:4px;text-decoration-thickness:1px;cursor:pointer;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.paper .lesson-term:hover,.paper .lesson-term[aria-expanded=true]{background:transparent;color:#214733}.paper .lesson-term:focus-visible{outline:2px solid #397b54;outline-offset:3px}
.paper .lesson-term-hint{font-size:13px;line-height:1.5;color:#68766c;margin:0 0 24px;padding-bottom:14px;border-bottom:1px solid #e7ece8}
.lesson-term-popup{position:fixed;inset:auto;margin:0;z-index:100;width:330px;max-width:calc(100vw - 24px);padding:18px 20px;background:#fff;color:#303b34;border:1px solid #c8d8ce;border-radius:12px;box-shadow:0 8px 32px #172a2226;overflow:auto;overscroll-behavior:contain}.lesson-term-popup[hidden]{display:none}.lesson-term-popup::backdrop{background:transparent}.lesson-term-popup:focus{outline:none}.lesson-term-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.lesson-term-heading h3{font:600 17px/1.4 Segoe UI,Arial,sans-serif;margin:0}.lesson-term-close{flex:0 0 40px;width:40px;height:40px;border:0;border-radius:6px;background:#f1f5f2;color:#47584c;font:25px/1 Arial,sans-serif;cursor:pointer}.lesson-term-popup p{font:15px/1.65 Segoe UI,Arial,sans-serif;color:#536158;margin:10px 0 0}.lesson-term-close:focus-visible{outline:2px solid #397b54;outline-offset:2px}
@media(max-width:650px){.paper .lesson-term{padding-top:3px;padding-bottom:3px}.lesson-term-close{flex-basis:44px;width:44px;height:44px}.lesson-term-popup{padding:15px 17px}.lesson-term-popup p{font-size:16px}}

.lesson-updated{font-size:12px;line-height:1.6;color:#788078;margin:-6px 0 16px}.lesson-updated time{white-space:nowrap}.updated-zone{white-space:nowrap}

.equation-work{margin:22px 0;padding:18px 20px;border:1px solid #d9e0e4;border-radius:8px;background:#f7f9fa}.equation-work figcaption{font-size:14px;line-height:1.6;color:#53636b;margin-bottom:12px}.equation-scroll{overflow-x:auto}.equation-stack{border-collapse:collapse;margin:0 auto;font:21px/1.7 Georgia,serif;white-space:nowrap}.equation-stack td{padding:3px 10px;border:0}.equation-stack td:first-child{text-align:right}.equation-stack td:nth-child(2){text-align:center}.equation-stack td:last-child{text-align:left}.equation-stack .equation-result td{border-top:2px solid #798c96;padding-top:9px}.cancel-term{text-decoration:line-through;text-decoration-color:#4a7a60;text-decoration-thickness:2px}@media(max-width:650px){.equation-work{padding:14px 10px;margin:20px -4px}.equation-stack{font-size:18px}.equation-stack td{padding-left:5px;padding-right:5px}}

.kvl-calculation{padding:14px 18px;border-left:3px solid #8d9ba3;background:#f7f9fa;margin:18px 0}.kvl-calculation p{font:22px/1.7 Georgia,serif;color:#303b43;margin:8px 0;overflow-wrap:normal}.kvl-crossings li{line-height:1.7}@media(max-width:650px){.kvl-calculation{padding:12px}.kvl-calculation p{font-size:20px}.kvl-crossings li{margin:16px 0}}

.level-cards{display:grid;gap:16px;margin:24px 0}.level-card{border:1px solid #d7dfda;border-radius:8px;padding:20px;background:#fbfcfb}.level-card h3{font-size:21px;margin:0 0 10px}.level-card p{margin:8px 0 16px}.level-status{font-size:13px!important;font-weight:600;color:#4a6553}.level-explanation{white-space:pre-line}.level-diagram{max-width:540px;margin:20px auto}.level-diagram svg{max-width:500px}.level-picker .primary{min-height:44px}@media(max-width:650px){.level-card{padding:16px}.level-card .primary{width:100%}.level-diagram{margin:18px -6px}}

/* Number and colour represent the highest passed difficulty, independently of retakes. */
nav .read-dot.tier-dot{width:18px;height:18px;left:1px;top:11px;display:inline-flex;align-items:center;justify-content:center;font:700 12px/1 Arial,sans-serif;color:#242424;border-width:2px}nav .tier-dot.tier-1{background:#d2d2d2;border-color:#d2d2d2}nav .tier-dot.tier-2{background:#70f04b;border-color:#70f04b}nav .tier-dot.tier-3{background:#f4d44d;border-color:#f4d44d}

.debug-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:24px 0}.debug-toolbar label{display:grid;gap:7px;font-size:13px}.debug-toolbar input{padding:11px;border:1px solid #bcc3c7;border-radius:6px;min-width:240px}.debug-table-scroll{overflow-x:auto;max-width:100%;border:1px solid #d4d8da;border-radius:8px;background:white}.debug-table{width:100%;min-width:720px;border-collapse:collapse;font-size:13px}.debug-table th,.debug-table td{padding:12px 10px;border-bottom:1px solid #e1e4e6;text-align:center}.debug-table th:first-child{text-align:left;min-width:260px}.debug-table thead th{background:#e9edef;font-size:12px}.debug-table tbody th[scope="row"]{font-weight:400}.debug-table .debug-subject th{background:#f0f2f3;padding:18px 12px}.debug-subject span{display:block;margin-bottom:10px}.debug-subject label{display:inline-flex;align-items:center;gap:8px;font-weight:400}.debug-table input[type="checkbox"]{width:20px;height:20px;accent-color:#4c7453;cursor:pointer;vertical-align:middle}.debug-table td{color:#757b7e}.debug-table tr[hidden],.debug-table tbody[hidden]{display:none}@media(max-width:650px){.debug-toolbar>label,.debug-toolbar input{width:100%}.debug-toolbar button{flex:1}}

.level-question{white-space:pre-line}.level-question{overflow-wrap:break-word}
.diode-drawing{overflow-x:auto;overscroll-behavior-x:contain}.diode-visual .diode-drawing svg{min-width:640px}.diode-pan-hint{display:none}@media(max-width:650px){.diode-visual .diode-pan-hint{display:block;margin-top:6px}.diode-visual .diode-drawing{border-bottom:1px solid #d9e0e4}}
.rectifier-drawing{overflow-x:auto;overscroll-behavior-x:contain}.rectifier-visual .rectifier-drawing svg{min-width:640px}.rectifier-visual.rectifier-compact .rectifier-drawing svg{min-width:0;max-width:430px}.rectifier-pan-hint{display:none}@media(max-width:650px){.rectifier-visual .rectifier-pan-hint{display:block;margin-top:6px}.rectifier-visual .rectifier-drawing{border-bottom:1px solid #d9e0e4}}
.bjt-visual svg,.level-diagram svg.bjt-switch{max-width:460px}.bjt-visual figcaption{max-width:680px}.bjt-state-check{margin:18px 0}
.mosfet-visual svg,.level-diagram svg.mosfet-switch{max-width:460px}
.timer-drawing{overflow-x:auto;overscroll-behavior-x:contain}.timer-visual svg{max-width:460px;width:100%;height:auto}.timer-wide svg{min-width:720px;max-width:none}.timer-visual figcaption{line-height:1.5}
.dc-intro-visual svg{max-width:460px;width:100%;height:auto}.dc-intro-visual figcaption{line-height:1.5}
.ohms-visual svg{max-width:460px;width:100%;height:auto}.ohms-visual figcaption{line-height:1.5}
.power-energy-visual svg{max-width:460px;width:100%;height:auto}.power-energy-visual figcaption{line-height:1.5}
.series-body-visual svg{max-width:460px;width:100%;height:auto}.series-body-visual figcaption{line-height:1.5}
.parallel-body-visual svg{max-width:460px;width:100%;height:auto}.parallel-body-visual figcaption{line-height:1.5}
.datasheet-main-idea{margin:18px 0 24px}.teaching-spec{margin:18px 0;padding:14px;border:1px solid #d9e0e4;border-radius:8px;background:#f7f9fa}.paper .teaching-spec h3{margin-top:0}.paper .teaching-spec p{margin:8px 0}.teaching-spec table{margin-bottom:0}.datasheet-pinout svg,.level-diagram svg.teaching-pinout{max-width:460px}@media(max-width:650px){.teaching-spec{padding:10px}.teaching-spec th,.teaching-spec td{padding:8px 5px}}

/* DC6: keep the already staged circuit geometry and readable labels in flow. */
.measurement-visual .measurement-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.measurement-visual .measurement-drawing svg{display:block;width:100%;min-width:600px;max-width:none;}
.measurement-pan-hint{font-size:.9rem;color:var(--muted);margin:.3rem 0 .7rem;}
@media(min-width:760px){.measurement-pan-hint{display:none;}}

/* DC7: preserve all reduction stages with readable in-flow phone labels. */
.mixed-visual .mixed-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.mixed-visual .mixed-drawing svg{display:block;width:100%;min-width:600px;max-width:none;}
.mixed-pan-hint{font-size:.9rem;color:var(--muted);margin:.3rem 0 .7rem;}
@media(min-width:760px){.mixed-pan-hint{display:none;}}

/* DC9: retain polarity geometry while keeping its sign labels readable. */
.kvl-visual .kvl-drawing,.level-diagram .kvl-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.kvl-visual .kvl-drawing svg,.level-diagram .kvl-drawing svg{display:block;width:100%;min-width:600px;max-width:none;}
.kvl-pan-hint{font-size:.9rem;color:var(--muted);margin:.3rem 0 .7rem;}
@media(min-width:760px){.kvl-pan-hint{display:none;}}

/* DC10: preserve common-reference networks with readable in-flow labels. */
.node-voltage-visual .node-voltage-drawing,.level-diagram .node-voltage-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.node-voltage-visual .node-voltage-drawing svg,.level-diagram .node-voltage-drawing svg{display:block;width:100%;min-width:640px;max-width:none;}
.node-voltage-pan-hint{font-size:.9rem;color:var(--muted);margin:.3rem 0 .7rem;}
@media(min-width:760px){.node-voltage-pan-hint{display:none;}}

/* DC11: retain mesh orientation with readable in-flow directions and labels. */
.mesh-visual .mesh-drawing,.level-diagram .mesh-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.mesh-visual .mesh-drawing svg,.level-diagram .mesh-drawing svg{display:block;width:100%;min-width:640px;max-width:none;}
.mesh-pan-hint{font-size:.9rem;color:var(--muted);margin:.3rem 0 .7rem;}
@media(min-width:760px){.mesh-pan-hint{display:none;}}

.thevenin-visual .thevenin-drawing,.level-diagram .thevenin-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.thevenin-visual .thevenin-drawing svg,.level-diagram .thevenin-drawing svg{display:block;width:100%;min-width:530px;max-width:none;}
.thevenin-pan-hint{font-size:.9rem;color:var(--muted);}
@media(min-width:760px){.thevenin-pan-hint{display:none;}}

.norton-visual .norton-drawing,.level-diagram .norton-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.norton-visual .norton-drawing svg,.level-diagram .norton-drawing svg{display:block;width:100%;min-width:530px;max-width:none;}
.norton-pan-hint{font-size:.9rem;color:var(--muted);}
@media(min-width:760px){.norton-pan-hint{display:none;}}

.superposition-visual .superposition-drawing,.level-diagram .superposition-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.superposition-visual .superposition-drawing svg,.level-diagram .superposition-drawing svg{display:block;width:100%;min-width:530px;max-width:none;}
.superposition-pan-hint{font-size:.9rem;color:var(--muted);}
@media(min-width:760px){.superposition-pan-hint{display:none;}}

.units-decimal{white-space:nowrap;}
.units-prefix-table td:nth-child(2){min-width:9.5ch;}

.algebra-flow svg{display:block;width:100%;max-width:420px;margin-inline:auto;}

.graphs-visual .graphs-drawing,.level-diagram .graphs-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.graphs-visual .graphs-drawing svg,.level-diagram .graphs-drawing svg{display:block;width:100%;min-width:560px;max-width:none;}
.graphs-pan-hint{font-size:.9rem;color:var(--muted);}
.graphs-distance-heading{white-space:nowrap;min-width:8ch;}
@media(min-width:760px){.graphs-pan-hint{display:none;}}

.trig-circle svg{display:block;width:100%;max-width:420px;margin-inline:auto;}
.trig-circle-notes{font-size:1rem;}
.trig-wave-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.trig-wave-drawing svg{display:block;width:100%;min-width:560px;max-width:none;}
.trig-pan-hint{font-size:.9rem;color:var(--muted);}
@media(min-width:760px){.trig-pan-hint{display:none;}}

.complex-plane svg{display:block;width:100%;max-width:440px;margin-inline:auto;}
.complex-wave-drawing,.complex-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.complex-wave-drawing svg{display:block;width:100%;min-width:560px;max-width:none;}
.complex-test-drawing svg{display:block;width:100%;min-width:440px;max-width:none;}
.complex-pan-hint{font-size:.9rem;color:var(--muted);}
@media(min-width:760px){.complex-pan-hint{display:none;}}
.polar-visual svg{display:block;width:100%;max-width:420px;margin-inline:auto;}
.polar-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.polar-test-drawing svg{display:block;width:100%;min-width:440px;max-width:none;}
.field-visual svg{display:block;width:100%;max-width:455px;margin-inline:auto;}
.induction-visual svg{display:block;width:100%;max-width:445px;margin-inline:auto;}

/* Scope phone panning to this lesson so labels retain a readable size. */
@media(max-width:600px){.magnetism-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.magnetism-diagram-scroll svg{width:520px;min-width:520px;max-width:none}.magnetism-visual:after{content:"Swipe diagram sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}
/* Physics: preserve the branching energy flow while keeping labels readable. */
.efficiency-flow-scroll{overflow-x:auto;max-width:100%;padding-bottom:.5rem;}
.efficiency-flow-scroll svg{min-width:560px;width:100%;display:block;}

/* Keep time, distance and response labels readable in this lesson on phones. */
@media(max-width:600px){.waves-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.waves-diagram-scroll svg{width:520px;min-width:520px;max-width:none}.waves-visual:after{content:"Swipe graph sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}

.waves-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.waves-test-drawing svg{display:block;width:100%;min-width:520px;max-width:640px;margin:0 auto 1rem}

/* Readable staged loading diagrams, scoped to the meter-error lesson. */
@media(max-width:600px){.meter-errors-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.meter-errors-diagram-scroll svg{width:520px;min-width:520px;max-width:none}.meter-errors-visual:after{content:"Swipe circuit sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}
.meter-errors-test-drawing{max-width:100%;overflow-x:auto}.meter-errors-test-drawing svg{display:block;width:100%;min-width:520px;max-width:640px;margin:auto}
/* Schematic-reading diagrams keep wire and component labels legible on phones. */
.schematic-symbol-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.schematic-symbol-grid .schematic-symbol-card{margin:0;min-width:0;}
.schematic-card-scroll,.schematic-drawing,.schematic-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.schematic-card-scroll svg{display:block;min-width:360px;width:100%;max-width:none;}
.schematic-drawing svg{display:block;min-width:640px;width:100%;max-width:none;}
.level-diagram .schematic-test-drawing svg{display:block;min-width:560px;width:100%;max-width:none;}
@media(max-width:850px){.schematic-symbol-grid{grid-template-columns:minmax(0,1fr);}}

.level-diagram:has(.schematic-test-drawing){max-width:650px;}
.level-diagram .schematic-test-drawing.schematic-component svg{min-width:0;width:100%;}

/* Scope reading labels retain useful size on a phone; captions expose scales. */
@media(max-width:600px){.scope-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.scope-diagram-scroll svg{width:560px;min-width:560px;max-width:none}.scope-visual:after{content:"Swipe trace sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}
.scope-test-drawing{max-width:100%;overflow-x:auto}.scope-test-drawing svg{display:block;width:100%;min-width:560px;max-width:700px;margin:auto}

/* Generator/supply panels retain their setting/readout distinction at a readable scale. */
.generator-supply-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.generator-supply-drawing svg{display:block;width:100%;min-width:700px;max-width:none;}

/* Breadboard hole coordinates must remain readable on phones. */
@media(max-width:600px){.breadboard-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.breadboard-diagram-scroll svg{width:600px;min-width:600px;max-width:none}.breadboard-visual:after{content:"Swipe board sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}
.breadboard-test-drawing{max-width:100%;overflow-x:auto}.breadboard-test-drawing svg{display:block;width:100%;min-width:600px;max-width:700px;margin:auto}

/* Protected bench: conceptual mechanisms and specified reference paths stay readable. */
.protected-bench-drawing,.protected-bench-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.protected-bench-drawing svg,.level-diagram .protected-bench-test-drawing svg{display:block;width:100%;min-width:640px;max-width:none;}
.level-diagram:has(.protected-bench-test-drawing){max-width:700px;}

/* Simulation schematics and frequency/time axes remain readable on phones. */
@media(max-width:600px){.simulation-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.simulation-diagram-scroll svg{width:600px;min-width:600px;max-width:none}.simulation-visual:after{content:"Swipe plot sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}
.simulation-test-drawing{max-width:100%;overflow-x:auto}.simulation-test-drawing svg{display:block;width:100%;min-width:600px;max-width:700px;margin:auto}

/* Keep repeated-reading markers and axes readable on phones. */
@media(max-width:600px){.uncertainty-diagram-scroll{overflow-x:auto;overscroll-behavior-x:contain}.uncertainty-diagram-scroll svg{width:600px;min-width:600px;max-width:none}.uncertainty-visual:after{content:"Swipe plot sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}
.uncertainty-test-drawing{max-width:100%;overflow-x:auto}.uncertainty-test-drawing svg{display:block;width:100%;min-width:600px;max-width:700px;margin:auto}

/* CAD stages: keep numbered pads, dimensions and net labels readable. */
.cad-drawing,.cad-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.cad-drawing svg,.level-diagram .cad-test-drawing svg{display:block;width:100%;min-width:640px;max-width:none;}
.cad-table td{overflow-wrap:anywhere;}
.cad-table th{overflow-wrap:normal;word-break:normal;}
.cad-table th:first-child,.cad-table th:last-child{white-space:nowrap;}
.level-diagram:has(.cad-test-drawing){max-width:700px;}

/* AC1: retain readable waveform labels and non-colour trace identity on phones. */
.ac-sine-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.ac-sine-scroll svg{display:block;width:100%;min-width:640px;max-width:none}
.ac-sine-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.ac-sine-test-drawing svg{display:block;width:100%;min-width:640px;max-width:700px;margin:auto}
@media(max-width:700px){.ac-sine-visual:after,.level-diagram:has(.ac-sine-test-drawing):after{content:"Swipe graph sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}

/* RC timing: retain the accurate original geometry and readable reference/curve labels. */
.rc-timing-drawing,.rc-timing-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.rc-timing-drawing svg,.level-diagram .rc-timing-test-drawing svg{display:block;width:100%;min-width:700px;max-width:none;}
.level-diagram:has(.rc-timing-test-drawing){max-width:760px;}

/* AC3: readable switching paths, tau axes and a compact state table. */
.rl-reviewed-scroll,.rl-reviewed-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.rl-reviewed-scroll svg{display:block;width:100%;min-width:640px;max-width:none}
.rl-reviewed-test-drawing svg{display:block;width:100%;min-width:640px;max-width:700px;margin:auto}
.rl-state-table th,.rl-state-table td{word-break:normal;overflow-wrap:normal}
.rl-state-table th:nth-child(2){white-space:nowrap}
@media(max-width:700px){.rl-reviewed-visual:after,.level-diagram:has(.rl-reviewed-test-drawing):after{content:"Swipe diagram sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}.rl-state-table th,.rl-state-table td{padding:.45rem .3rem;font-size:.85rem}}

/* AC5: fixed-L/C trends and separate transformer loops stay readable on phones. */
.level-diagram:has(.ac-power-reviewed-test-drawing){max-width:700px}
.ac-power-reviewed-scroll,.ac-power-reviewed-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.ac-power-reviewed-scroll svg{display:block;width:100%;min-width:640px;max-width:none}
.ac-power-reviewed-test-drawing svg{display:block;width:100%;min-width:640px;max-width:700px;margin:auto}
@media(max-width:700px){.ac-power-reviewed-visual:after,.level-diagram:has(.ac-power-reviewed-test-drawing):after{content:"Swipe diagram sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}

/* Series RLC: retain timing/triangle scales while keeping reference labels readable. */
.rlc-drawing,.rlc-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.rlc-drawing svg,.level-diagram .rlc-test-drawing svg{display:block;width:100%;min-width:700px;max-width:none;}
.level-diagram:has(.rlc-test-drawing){max-width:760px;}

/* AC6: shared nodes and RMS component axes retain readable labels on phones. */
.parallel-ac-scroll,.parallel-ac-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.parallel-ac-scroll svg{display:block;width:100%;min-width:640px;max-width:none}
.parallel-ac-test-drawing svg{display:block;width:100%;min-width:640px;max-width:700px;margin:auto}
.level-diagram:has(.parallel-ac-test-drawing){max-width:740px}
@media(max-width:740px){.parallel-ac-visual:after,.level-diagram:has(.parallel-ac-test-drawing):after{content:"Swipe diagram sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}

/* Digital1: readable place-value labels, independent of ordered-list indentation. */
.binary-reviewed-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.binary-reviewed-scroll svg{display:block;width:100%;min-width:640px;max-width:none}
.binary-group-table th,.binary-group-table td{word-break:normal;overflow-wrap:normal}
@media(max-width:700px){.binary-reviewed-visual:after{content:"Swipe place values sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}}

/* Frequency response: keep log-axis and phase labels legible at phone widths. */
.frequency-response-drawing,.frequency-response-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.frequency-response-drawing svg,.level-diagram .frequency-response-test-drawing svg{display:block;width:100%;min-width:700px;max-width:none;}
.level-diagram:has(.frequency-response-test-drawing){max-width:760px;}

/* Digital2: independent inputs and intermediate gate outputs remain readable. */
.logic-gates-scroll,.logic-gates-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.logic-gates-scroll svg{display:block;width:100%;min-width:640px;max-width:none}
.logic-gates-test-drawing svg{display:block;width:100%;min-width:640px;max-width:700px;margin:auto}
.level-diagram:has(.logic-gates-test-drawing){max-width:740px}
.logic-gates-table th,.logic-gates-table td{word-break:normal;overflow-wrap:normal}
@media(max-width:740px){.logic-gates-visual:after,.level-diagram:has(.logic-gates-test-drawing):after{content:"Swipe gate connections sideways or choose Enlarge diagram.";display:block;font-size:.85rem;margin-top:.5rem}.logic-gates-table th,.logic-gates-table td{padding:.45rem .25rem}}

/* Digital3: retain full-size proof text on narrow screens. */
.boolean-proof{overflow-x:auto}.boolean-proof table{min-width:100%;font-size:16px}.boolean-proof th,.boolean-proof td{padding:.6rem;white-space:normal}.boolean-proof th{min-width:3.6rem}

.boolean-proof th,.boolean-proof td{overflow-wrap:normal;word-break:normal}.boolean-proof-wide table{min-width:600px}

/* Digital5: full-size state/timing labels with phone panning. */
.sequential-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.sequential-drawing svg{width:640px;min-width:640px;max-width:none}.sequential-table{overflow-x:auto}.sequential-table table{font-size:16px}.sequential-table th,.sequential-table td{overflow-wrap:normal;word-break:normal}.sequential-table table{min-width:460px}

/* Digital8: voltage guarantee references remain readable at phone widths. */
.logic-level-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.logic-level-drawing svg{width:640px;min-width:640px;max-width:none}.logic-level-table{overflow-x:auto}.logic-level-table table{font-size:16px;min-width:500px}.logic-level-table th,.logic-level-table td{overflow-wrap:normal;word-break:normal}

/* Digital10: retain original state-graph geometry and full-size phone labels. */
.fsm-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.fsm-drawing svg{width:640px;min-width:640px;max-width:none}.fsm-table{overflow-x:auto}.fsm-table table{font-size:16px;min-width:560px}.fsm-table th,.fsm-table td{overflow-wrap:normal;word-break:normal}

.ce-bias-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.ce-bias-drawing svg{width:640px;min-width:640px;max-width:none}

.conditioning-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.conditioning-drawing svg{width:640px;min-width:640px;max-width:none}

.opamp-app-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.opamp-app-drawing svg{width:640px;min-width:640px;max-width:none}

.mcu-role-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.mcu-role-drawing svg{width:640px;min-width:640px;max-width:none}

.timer-pwm-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.timer-pwm-drawing svg{width:640px;min-width:640px;max-width:none}

.serial-link-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.serial-link-drawing svg{width:640px;min-width:640px;max-width:none}

.sample-value-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.sample-value-drawing svg{width:640px;min-width:640px;max-width:none}

.alias-observation-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.alias-observation-drawing svg{width:640px;min-width:640px;max-width:none}

.noise-response-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.noise-response-drawing svg{width:640px;min-width:640px;max-width:none}

.sensor-calibration-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.sensor-calibration-drawing svg{width:640px;min-width:640px;max-width:none}

.sensor-interface-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.sensor-interface-drawing svg{width:var(--sensor-width,640px);min-width:var(--sensor-width,640px);max-width:none}

.daq-chain-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.daq-chain-drawing svg{width:320px;min-width:320px;max-width:none}

.modulation-review-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.modulation-review-drawing svg{width:640px;min-width:640px;max-width:none}

.link-review-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.link-review-drawing svg{width:640px;min-width:640px;max-width:none}

.receiver-review-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.receiver-review-drawing svg{width:640px;min-width:640px;max-width:none}

.power-switch-drawing{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
.power-switch-drawing svg{width:640px;min-width:640px;max-width:none}

/* Reviewed battery concepts: readable native diagrams with local phone pan. */
.battery-concept-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.battery-concept-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

/* Reviewed steady-state thermal concepts: native labels and local phone pan. */
.thermal-concept-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.thermal-concept-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

/* Reviewed introductory feedback: native readable signals with local pan. */
.control-loop-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.control-loop-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

/* Reviewed setpoints: readable signed comparison and bias stages. */
.setpoint-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.setpoint-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

/* Reviewed quantitative response: readable native graph with local phone pan. */
.response-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.response-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

/* Reviewed PID: parallel contributions, native labels and local phone pan. */
.pid-action-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.pid-action-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

/* Reviewed sensor/actuator integration: native algorithm and local trace pan. */
.sensor-actuator-drawing,.sensor-control-trace{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.sensor-actuator-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}.sensor-control-trace table{min-width:640px;width:640px}

.fault-test-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.fault-test-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

.fault-path-drawing{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.fault-path-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}

.schematic-record-drawing,.schematic-measure-log{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.schematic-record-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}
.schematic-measure-log table{min-width:1100px;width:1100px}

.project-plan-drawing,.project-acceptance{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.project-plan-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}
.project-acceptance table{min-width:800px;width:800px}

.verification-drawing,.verification-record{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.verification-drawing svg{display:block!important;width:640px!important;min-width:640px!important;max-width:none!important;height:auto!important}
.verification-record table{min-width:950px;width:950px}

/* One algebra step per line in the node-voltage lesson. */
.node-voltage-calculation{margin:14px 0;padding:12px 16px;border-left:3px solid #b8cdd1;background:#f5f8f9;max-width:100%;overflow-wrap:anywhere;}
.node-voltage-calculation p{font-family:Georgia,serif;font-size:20px;line-height:1.6;margin:5px 0;color:#303b40;}
.node-voltage-extension{margin-top:22px;}
.node-voltage-extension>summary{font-size:15px;line-height:1.5;color:#414d54;}
@media(max-width:650px){.node-voltage-calculation{padding:10px 12px;}.node-voltage-calculation p{font-size:18px;}}

/* Preserve authored line breaks in tier answer combinations. */
.level-question ~ fieldset .option{white-space:pre-line;}

/* Optional video links: one compact list, comfortable on narrow screens. */
.lesson-videos{margin:1.5rem 0 2rem;padding:1rem 0;border-block:1px solid var(--line,#d9d9d9)}
.lesson-videos h2{margin-top:0}.lesson-videos ol{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.lesson-videos li{margin:0}.lesson-videos a{display:block;color:inherit;text-decoration:none;padding:.5rem 0;overflow-wrap:anywhere}.lesson-videos a b{display:block;text-decoration:underline;text-underline-offset:3px}.lesson-videos a:hover strong{text-decoration-thickness:2px}.lesson-videos a:focus-visible{outline:2px solid currentColor;outline-offset:4px}.lesson-videos .video-channel,.lesson-videos .video-action{display:block;font-size:.85rem}.lesson-videos .video-action{margin-top:.3rem}.lesson-videos li p{margin:.25rem 0 0}

.expansion-page fieldset{border:0;padding:0;margin:0}.expansion-page .level-diagram{max-width:100%}.expansion-page .level-diagram>div{overflow:auto}.expansion-page svg{max-width:none}.expansion-summary{margin:1rem 0}#expansion-term-dialog{max-width:min(36rem,90vw)}
.expansion-page [data-expansion-term]{display:inline;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:#315c46;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:underline dotted;text-underline-offset:4px;text-decoration-thickness:1px;cursor:pointer}.expansion-page [data-expansion-term]:focus-visible{outline:2px solid #397a2e;outline-offset:3px}

/* Shared lesson and test classes provide the same typography and controls. */
.expansion-page .level-card{min-width:0}.expansion-page .option{overflow-wrap:anywhere}.expansion-page .level-explanation{white-space:pre-line}#expansion-term-dialog{width:330px;max-width:calc(100vw - 24px);padding:18px 20px;background:#fff;color:#303b34;border:1px solid #c8d8ce;border-radius:12px;box-shadow:0 8px 32px #172a2226}#expansion-term-dialog h2{font:600 17px/1.4 Segoe UI,Arial,sans-serif;margin:0}#expansion-term-dialog p{font:15px/1.65 Segoe UI,Arial,sans-serif;color:#536158}

/* Reading theme: one sans-serif family and a white document surface. */
:root{--app-font:"Segoe UI",Arial,sans-serif;--sidebar-width:420px;font-family:var(--app-font);color:#252525;background:#fff}
body,button,input,select,textarea{font-family:var(--app-font)}
h1,h2,h3,.score,.formula,.reference-key,.equation-stack{font-family:var(--app-font)}
h1{font-size:40px;font-weight:400;line-height:1.25;letter-spacing:-.5px;text-align:center;margin:10px 0 24px}
h2{font-size:29px;font-weight:400;line-height:1.3;letter-spacing:0}h3{font-weight:600}
p,li{font-size:18px;line-height:1.7;color:#292929}.lead{font-size:19px;max-width:none}.quiet{color:#737373}
a,.paper .prerequisite-link,.paper .lesson-term,.expansion-page [data-expansion-term]{color:#0075c9}
.paper svg text{font-family:var(--app-font)}
main{margin-left:var(--sidebar-width);background:#fff}header{background:#fff;border-color:#ececec;padding-inline:48px}
#content{max-width:1150px;padding:40px 52px 80px;overflow-wrap:anywhere}
.paper{background:#fff;border:0;border-radius:0;box-shadow:none;padding:0;max-width:none}
.paper p{margin:17px 0}.paper .teaching-visual{background:#fafafa;border-color:#ddd}
.eyebrow{letter-spacing:1px}.tabs{border-color:#e5e5e5}.tabs button{color:#707070}.tabs button.selected{color:#222;border-color:#555}
.primary{background:#393939;color:#fff;border-radius:5px}.secondary{background:#fff;color:#333;border-color:#d6d6d6;border-radius:5px}
.card,.level-card{background:#fff;border:1px solid #ddd;border-radius:6px}.level-card h3{font-family:var(--app-font)}
.level-status{color:#4b4b4b}.option{border-color:#ddd;border-radius:5px}.instant-feedback{background:#f5faf3}.instant-feedback.is-incorrect{background:#fff7f4}
.lesson-updated{text-align:center}.level-question{font-size:26px!important;text-align:left;line-height:1.45}.score{font-size:48px}

/* Single-line navigation; full names remain available in each row's title. */
#sidebar{width:var(--sidebar-width);background:#2c2c2c;color:#bbb;padding:24px 20px;overflow-x:hidden}
#sidebar .brand{font:400 25px/1.3 var(--app-font);padding:0 12px 24px;justify-content:center;letter-spacing:0}
#sidebar .brand small{font-size:9px;color:#aaa;letter-spacing:1.5px}
#sidebar .path-label{font-size:11px;letter-spacing:1px;color:#bcbcbc;padding:0 10px;margin:24px 0 12px}
#progress-toggle{display:block;flex-shrink:0;width:100%;padding:11px 16px;min-height:44px;border:1px solid #464646;border-radius:3px;background:transparent;color:#ddd;font-size:14px}
#progress-toggle:hover{background:#393939}
#navigation button,#navigation summary{font:400 12px/1.5 var(--app-font);letter-spacing:0;color:#bdbdbd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#navigation>details>summary{font-size:12px;font-weight:600;text-transform:uppercase;margin-top:16px}
#navigation .subject-title,#navigation .topic-title{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:3px;min-width:0}
#navigation .subject-title{font-weight:600;color:#c8c8c8}
#navigation .subject-title::before,#navigation .topic-title::before{content:'›';font:18px/1 var(--app-font);flex:0 0 10px;transform-origin:center}
#navigation details[open]>.subject-title::before,#navigation details[open]>.topic-title::before{transform:rotate(90deg)}
#navigation summary::marker{content:''}#navigation summary::-webkit-details-marker{display:none}
#navigation .nav-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
#navigation .subject-group{margin:5px 0 12px}#navigation .topic-group{margin:2px 0 2px 9px}
#navigation .topic-section,#navigation .subject-overview{padding:7px 12px 7px 28px;font-size:11.5px;border-radius:3px}
#navigation .course-home{font-size:12px;color:#c7c7c7;border-color:#484848}
#navigation .active,#navigation summary:hover,#navigation button:hover{background-color:#4a4a4a;color:#eee}
#navigation .read-dot,#navigation .pass-icon,#navigation .badge{display:none!important}
#overall,.progress-legend{display:none}
body.show-progress #overall{display:block}
body.show-progress .progress-legend{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-size:11px;color:#ddd}
.progress-legend span:nth-child(1){color:#6db4d5}.progress-legend span:nth-child(2){color:#8cba77}.progress-legend span:nth-child(3){color:#d1c66d}
body.show-progress #navigation [data-progress-rank="1"]{background-image:linear-gradient(90deg,rgba(20,125,166,.75),rgba(20,125,166,.05) 90%,transparent)}
body.show-progress #navigation [data-progress-rank="2"]{background-image:linear-gradient(90deg,rgba(61,134,49,.75),rgba(61,134,49,.05) 90%,transparent)}
body.show-progress #navigation [data-progress-rank="3"]{background-image:linear-gradient(90deg,rgba(181,165,35,.8),rgba(181,165,35,.05) 90%,transparent)}
#sidebar .sidebar-bottom{padding:18px 10px 0}#sidebar .sidebar-bottom button{font-size:11px}
@media(min-width:901px) and (max-width:1200px){:root{--sidebar-width:360px}#content{padding:36px 32px 70px}header{padding-inline:32px}}
@media(max-width:900px){main{margin-left:0}#sidebar{width:min(420px,calc(100vw - 24px));padding:calc(24px + env(safe-area-inset-top)) 14px 20px}#sidebar .brand{font-size:25px;padding:0 36px 24px 12px}#navigation summary,#navigation button{min-height:40px}#content{padding:28px 20px 60px}header{background:#fff;padding-inline:8px}h1{font-size:31px;text-align:left}h2{font-size:25px}p,li{font-size:17px;line-height:1.7}.lead{font-size:17px}.paper{padding:0}.lesson-updated{text-align:left}.level-question{font-size:24px!important}.level-card{padding:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

#navigation .subject-title::before,#navigation .topic-title::before{order:2}

/* Lesson rows are links into Learn; subject and semester groups still expand. */
#navigation button.topic-title{display:flex;text-align:left;min-height:40px;margin:0;width:100%}#navigation .topic-title::before{content:none}#navigation .topic-title{padding-inline:19px 10px}

/* Keep the study interface focused on lessons and controls. */
#cloud-sync[hidden]{display:none!important}
.lesson-videos>p.quiet{display:none}

/* Prerequisites are a compact, initially collapsed section before the videos. */
.paper .lesson-prerequisites{margin:0 0 1.25rem;padding:0;border:1px solid #dedede;border-radius:6px;background:#fafafa;color:#333}
.paper .lesson-prerequisites>summary{padding:10px 14px;font-size:14px;font-weight:400;line-height:1.5;color:#333;cursor:pointer;list-style-type:disclosure-closed;list-style-position:inside}
.paper .lesson-prerequisites[open]>summary{list-style-type:disclosure-open;border-bottom:1px solid #e6e6e6}
.paper .lesson-prerequisites>summary:focus-visible{outline:2px solid #0075c9;outline-offset:3px;border-radius:4px}
.paper .lesson-prerequisites .prerequisite-content{padding:2px 14px 8px}
.paper .lesson-prerequisites ul,.paper .lesson-prerequisites ol{margin:8px 0;padding-left:22px}
.paper .lesson-prerequisites li,.paper .lesson-prerequisites .prerequisite-link{font-size:15px;line-height:1.6}
