.header-actions{display:flex;align-items:center;gap:8px}.course-link{text-decoration:none}
.warmup-card{border-top:4px solid #d97706;background:linear-gradient(180deg,#fffbeb,#fff 48%)}.warmup-kicker{margin:0 0 6px;color:#b45309;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.warmup-card h2{margin:0 0 8px;font-size:19px}.warmup-intro{margin:0 0 16px;color:#64748b;font-size:14px}.warmup-item+.warmup-item{margin-top:18px;padding-top:16px;border-top:1px solid #fde68a}.warmup-prompt{margin:0 0 10px;font-weight:800}.warmup-choices{display:flex;flex-wrap:wrap;gap:8px}.warmup-choice{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #fcd34d;border-radius:11px;background:#fff;color:#0f172a;font-weight:750;cursor:pointer}.warmup-choice:hover:not(:disabled){border-color:#d97706;background:#fffbeb}.warmup-choice:disabled{cursor:default}.warmup-mark{font-weight:900;line-height:1}.warmup-choice.is-correct{border-color:#15803d;background:#dcfce7;color:#14532d;box-shadow:0 0 0 2px #86efac}.warmup-choice.is-correct .warmup-mark{color:#15803d}.warmup-choice.is-wrong{border-color:#b91c1c;background:#fee2e2;color:#7f1d1d}.warmup-choice.is-wrong .warmup-mark{color:#dc2626}.warmup-choice.is-muted{opacity:.42;filter:grayscale(.35);background:#f8fafc;border-color:#e2e8f0;color:#64748b}.warmup-verdict{margin:12px 0 0;font-weight:800}.warmup-verdict.is-good{color:#15803d}.warmup-verdict.is-bad{color:#b91c1c}.warmup-explain{margin:8px 0 0;padding:11px 13px;border-radius:11px;background:#ecfeff;border:1px solid #a5f3fc;color:#155e75;font-size:14px}
.equation-card{border-top:4px solid #0891b2}.equation-intro{margin:-5px 0 12px;color:#64748b;font-size:13px}.equation-line{margin:7px 0;padding:10px 12px;border-radius:9px;background:linear-gradient(90deg,#ecfeff,#f8fafc);font-family:"Cambria Math",Cambria,serif;font-size:18px;color:#164e63;text-align:center}
.recap-card{border-top:4px solid #0f766e;background:linear-gradient(180deg,#f0fdfa,#fff 42%)}.recap-kicker{margin:0 0 6px;color:#0f766e;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.recap-card h2{margin:0 0 10px;font-size:19px}.recap-section{margin:14px 0 6px;color:#0f766e;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.recap-section:first-of-type{margin-top:4px}.recap-lead{margin:0 0 4px;color:#334155}.recap-points{margin:0;padding:0 0 0 18px}.recap-points li{margin:6px 0;color:#0f172a}.recap-watch{margin:14px 0 0;padding:11px 13px;border-radius:11px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:14px}.recap-watch strong{color:#c2410c}
.diagram svg{width:100%;height:auto;display:block}.diagram svg.moody-chart{min-height:280px}
.diagram-zoomable{cursor:zoom-in}
.diagram-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.diagram-head h2{margin:0}
.diagram-switch{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fff;flex-shrink:0}
.diagram-switch button{padding:7px 12px;border:0;border-radius:9px;background:none;color:var(--muted);font-weight:800;cursor:pointer}
.diagram-switch button.active{background:var(--blue);color:#fff}
.diagram-hint{margin:8px 0 0;color:var(--muted);font-size:12px;font-weight:700}
@media(max-width:560px){.diagram-head{flex-wrap:wrap}}
body.diagram-fs-open{overflow:hidden}
.diagram[hidden]{display:none!important}
.diagram-fs{position:fixed;inset:0;z-index:35;display:flex;flex-direction:column;width:100vw;height:100vh;height:100dvh;background:#d9edf7}
.diagram-fs[hidden]{display:none!important}
.diagram-fs-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:10px 16px;background:linear-gradient(135deg,#0c4a6eee,#075985ee);color:#fff;backdrop-filter:blur(12px);box-shadow:0 2px 12px #0f172a22}
.diagram-fs-bar strong{font-size:16px;letter-spacing:0.02em}
.diagram-fs-bar .ghost{background:#ffffff18;border-color:#ffffff44;color:#fff;transition:background .15s}
.diagram-fs-bar .ghost:hover{background:#ffffff30}
.diagram-fs-stage{position:relative;flex:1 1 auto;min-height:0;height:100%;cursor:grab;touch-action:none;background:#d9edf7}
.diagram-fs-stage:active{cursor:grabbing}
.diagram-fs-stage canvas{position:absolute;inset:0;z-index:0;display:block;width:100%!important;height:100%!important}
.diagram-fs-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.diagram-fs-label{position:absolute;transform:translate(-50%,-120%);padding:6px 11px;border-radius:10px;background:#ffffffee;color:#0f172a;font-weight:800;font-size:13px;white-space:nowrap;box-shadow:0 4px 16px #0f172a1a,0 1px 3px #0f172a12;backdrop-filter:blur(6px);border:1px solid #e2e8f022;transition:opacity .2s}
.diagram-fs-label.is-force{color:#9f1239;border-color:#fecdd322}
.diagram-fs-label.is-water{color:#075985;border-color:#bae6fd22}
.diagram-fs-hint{margin:0;padding:8px 16px 12px;background:linear-gradient(135deg,#0c4a6eee,#075985ee);color:#e0f2fe;font-size:12px;font-weight:700;backdrop-filter:blur(12px)}
.moody-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:#0f172a99}
.moody-dialog{width:min(1100px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:16px 18px 18px;border-radius:18px;background:#fff;box-shadow:0 24px 60px #0f172a33}
.moody-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.moody-head h2{margin:0;font-size:20px}
.moody-big svg{width:100%;height:auto;display:block}
.moody-cursors{display:grid;gap:12px;margin-top:14px}
.moody-cursors label{display:grid;grid-template-columns:110px 1fr 110px;align-items:center;gap:10px;font-weight:700;color:#0f172a}
.moody-cursors input[type=range]{width:100%;accent-color:#b91c1c}
.moody-cursors output{font-variant-numeric:tabular-nums;color:#0f766e}
.moody-readout{margin:4px 0 0;padding:10px 12px;border-radius:10px;background:#fff7ed;color:#9a3412}
@media(max-width:640px){.moody-cursors label{grid-template-columns:1fr;gap:4px}}
@media(max-width:560px){.course-link{padding:8px 10px;font-size:12px}.brand small{display:none}}
.diagram-zoom-overlay{position:fixed;inset:0;z-index:38;display:flex;align-items:center;justify-content:center;padding:24px;background:#fffffff7;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:manipulation}
.diagram-zoom-close{position:fixed;top:16px;right:16px;z-index:39;width:48px;height:48px;border:none;border-radius:50%;background:#0f172aee;color:#fff;font-size:24px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px #0f172a33;transition:background .15s}
.diagram-zoom-close:hover,.diagram-zoom-close:active{background:#1e293b}
.diagram-zoom-content{width:min(95vw,1200px);max-height:95vh}
.diagram-zoom-content svg{width:100%;height:auto;display:block}
body.pdf-open{overflow:hidden}
.pdf-overlay{position:fixed;inset:0;z-index:42;display:flex;flex-direction:column;width:100%;height:100%;height:100dvh;background:#334155}
.pdf-overlay-bar{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:10px 12px calc(10px + env(safe-area-inset-top,0px));background:linear-gradient(135deg,#0c4a6eee,#075985ee);color:#fff;box-shadow:0 2px 12px #0f172a22}
.pdf-overlay-bar strong{flex:1;font-size:16px;letter-spacing:.02em}
.pdf-status{color:#bae6fd;font-size:12px;font-weight:700;white-space:nowrap}
.pdf-overlay-bar .ghost{background:#ffffff18;border-color:#ffffff44;color:#fff;text-decoration:none}
.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding:8px 8px calc(16px + env(safe-area-inset-bottom,0px))}
.pdf-page{display:block;width:100%;height:auto;margin:0 0 8px;background:#fff;box-shadow:0 8px 24px #00000055}
.pdf-fallback{margin:24px 12px;padding:16px;border-radius:12px;background:#fff;color:#0f172a}
