.lecture-duration{color:var(--muted);margin:0;padding:0 30px;font-size:14px;line-height:1.7}.lecture-practice{border:1px solid var(--line);background:linear-gradient(130deg,color-mix(in srgb,var(--blue) 5%,var(--glass)),var(--glass));border-radius:20px;min-width:0;max-width:900px;margin:28px 0 34px;padding:clamp(18px,3vw,28px)}.lecture-practice>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.practice-ungraded{color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:4px 9px;font-size:12px}.lecture-practice>h3{font-size:calc(21px * var(--reading-scale,1));letter-spacing:-.02em;margin:12px 0 16px;line-height:1.35}.lecture-practice>label{font-size:calc(13px * var(--reading-scale,1));color:var(--muted);margin:24px 0 9px;display:block}.lecture-practice>textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--line);background:var(--glass);width:100%;min-height:130px;max-height:500px;color:var(--ink);font:calc(14px * var(--reading-scale,1))/1.7 Consolas,monospace;tab-size:4;border-radius:12px;padding:14px 16px;display:block}.lecture-practice>textarea::placeholder{color:var(--muted);opacity:1;font-family:inherit}.lecture-practice>textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.lecture-practice>.practice-draft-note{color:var(--muted);margin:9px 0 18px;font-size:12px;line-height:1.5}.lecture-practice>details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.lecture-practice>details>summary{color:var(--blue);cursor:pointer;font-size:calc(14px * var(--reading-scale,1));padding:5px 0}.lecture-practice>details[open]>.lecture-markdown{animation:.2s lecture-reveal}.practice-editor{border:1px solid var(--line);background:var(--glass);border-radius:15px;margin:22px 0;overflow:hidden}.practice-editor-heading{border-bottom:1px solid var(--line);color:var(--muted);padding:10px 16px;font-size:12px}.concept-section .practice-editor pre{color:var(--muted);font:calc(14px * var(--reading-scale,1))/1.65 Consolas,monospace;white-space:pre;background:0 0;border:0;border-radius:0;margin:0;padding:14px 18px;overflow:auto}.practice-editor>label{background:color-mix(in srgb,var(--blue) 9%,transparent);color:var(--blue);padding:7px 18px;font-size:12px;display:block}.practice-editor>textarea{box-sizing:border-box;border:0;border-left:3px solid var(--blue);background:color-mix(in srgb,var(--blue) 9%,var(--glass));width:100%;min-height:80px;color:var(--ink);font:calc(14px * var(--reading-scale,1))/1.75 Consolas,monospace;resize:vertical;tab-size:4;border-radius:0;padding:12px 18px;display:block}.practice-editor>textarea:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.practice-editor>small{color:var(--muted);padding:0 18px 14px;font-size:12px;line-height:1.5;display:block}.practice-options{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0;padding:0;display:grid}.practice-options legend{color:var(--muted);margin-bottom:12px;font-size:14px}.practice-options label{text-align:left;border:1px solid var(--line);background:var(--glass);cursor:pointer;border-radius:12px;flex-direction:row;align-items:center;gap:12px;min-width:0;padding:14px 16px;display:flex}.practice-options label.selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,var(--glass))}.practice-options input{width:17px;height:17px;accent-color:var(--blue);flex:none;margin:0;padding:0}.practice-options label>span{white-space:pre-wrap;overflow-wrap:anywhere;font:calc(15px * var(--reading-scale,1))/1.6 Consolas,monospace}.practice-actions{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.practice-actions button{padding:10px 18px;font-size:14px}.practice-actions button:disabled{opacity:.5;cursor:default}.practice-feedback{border:1px solid var(--line);border-radius:14px;margin:18px 0;padding:16px 20px;line-height:1.65}.practice-feedback.correct{background:color-mix(in srgb,var(--blue) 10%,var(--glass));border-color:color-mix(in srgb,var(--blue) 40%,var(--line))}.practice-feedback.retry{background:color-mix(in srgb,#c59453 8%,var(--glass))}.practice-feedback p{margin:5px 0}.practice-feedback dl{gap:7px;margin:14px 0 0;display:grid}.practice-feedback dl>div{grid-template-columns:140px minmax(0,1fr);gap:12px;display:grid}.practice-feedback dt{color:var(--muted);font-size:13px}.practice-feedback dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font:14px/1.5 Consolas,monospace}.practice-feedback pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}@media (max-width:600px){.practice-options{grid-template-columns:1fr}.practice-feedback dl>div{grid-template-columns:1fr;gap:3px}}@media (prefers-reduced-motion:reduce){.lecture-practice>details[open]>.lecture-markdown{animation:none}}.modal.reading .modal-heading h2{flex:1;min-width:0}.modal.reading .modal-heading h2:focus{outline:none}.reading-size{border:1px solid var(--line);background:var(--glass);border-radius:12px;flex-shrink:0;align-items:center;padding:3px;display:flex}.reading-size button{min-width:36px;min-height:34px;color:var(--ink);box-shadow:none;background:0 0;border:0;border-radius:8px;padding:5px 8px;font-size:14px;line-height:1.3}.reading-size button:nth-child(2){font-variant-numeric:tabular-nums;min-width:50px;color:var(--muted);font-size:12px}.reading-size button:hover:not(:disabled){background:color-mix(in srgb,var(--blue) 10%,transparent)}.reading-size button:disabled{opacity:.35;cursor:default}.reading-size{-webkit-user-select:none;user-select:none}.modal-header-actions{flex-shrink:0;align-items:center;display:flex}.modal-header-actions .board-link{position:relative}.modal-header-actions .board-link>button{min-height:40px;font-size:13px}.modal-header-actions .board-link>small{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:240px;padding:10px;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #0002}@media (max-width:600px){.modal.reading .modal-header-actions{order:2}.modal.reading .reading-size{margin-left:auto}}.reading-size button:is(:focus,:focus-visible,:active){box-shadow:none;outline:none}.reading-size button:focus-visible{text-underline-offset:4px;text-decoration:underline}.modal.reading .topic-body,.modal.reading .markdown{font-size:calc(16px * var(--reading-scale));line-height:1.75}.modal.reading .concept-hero>p,.modal.reading .topic-summary{font-size:calc(16px * var(--reading-scale))}.modal.reading .concept-section>h2{font-size:calc(clamp(21px,2.3vw,29px) * var(--reading-scale))}.modal.reading .lecture-markdown h3{font-size:calc(20px * var(--reading-scale))}.modal.reading .concept-contents a{font-size:calc(15px * var(--reading-scale))}.modal.reading .lecture-markdown table,.modal.reading .lecture-check summary,.modal.reading .concept-section .lecture-code pre,.modal.reading .concept-section .io-experiment .trace-source,.modal.reading .trace-source,.modal.reading .trace-output{font-size:calc(14px * var(--reading-scale))}.modal.reading .io-experiment header h3{font-size:calc(21px * var(--reading-scale))}.modal.reading .io-experiment header p,.modal.reading .io-note,.modal.reading .concept-section .io-output{font-size:calc(16px * var(--reading-scale))}.modal.reading .io-panel-heading{height:auto;min-height:42px;font-size:calc(12px * var(--reading-scale));padding-top:10px;padding-bottom:10px}.modal.reading .io-variable-list dt{font-size:calc(13px * var(--reading-scale))}.modal.reading .io-variable-list dd{font-size:calc(20px * var(--reading-scale))}.io-experiment .trace-source .scaffold code{color:var(--muted)}@media (max-width:600px){.modal.reading .modal-heading{flex-wrap:wrap;gap:8px}.modal.reading .modal-heading h2{flex-basis:calc(100% - 50px);font-size:18px}.modal.reading .modal-heading>.icon-button{order:1}.modal.reading .reading-size{order:2}.modal.reading .concept-section{scroll-margin-top:140px}}.io-experiment{border:1px solid var(--line);background:linear-gradient(125deg,color-mix(in srgb,var(--blue) 6%,var(--glass)),var(--glass));border-radius:22px;min-width:0;max-width:900px;margin:24px 0 32px;padding:clamp(16px,3vw,26px)}.io-experiment header h3{letter-spacing:-.02em;margin:8px 0 10px;font-size:21px}.io-experiment header p{color:var(--muted);margin:0 0 22px;line-height:1.6}.io-settings{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin:22px 0;display:grid}.io-range-control{-webkit-user-select:none;user-select:none;min-width:0;display:block}.io-range-heading{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;font-size:13px;display:flex}.io-range-heading output{font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;min-width:30px;font:600 18px/1.3 Consolas,monospace}.io-range-track{height:32px;margin-top:8px;display:block;position:relative}.io-range-rail{background:linear-gradient(to right,var(--blue) 0 var(--range-progress),color-mix(in srgb,var(--muted) 20%,transparent) var(--range-progress) 100%);pointer-events:none;border-radius:99px;height:6px;position:absolute;top:13px;left:9px;right:9px}.io-experiment .io-range-track input[type=range]{appearance:none;width:100%;min-width:0;height:32px;box-shadow:none;cursor:pointer;touch-action:pan-y;background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:0;display:block;position:relative}.io-experiment .io-range-track input[type=range]:is(:focus,:focus-visible,:active){box-shadow:none;background:0 0;border:0;outline:none}.io-range-track input::-webkit-slider-runnable-track{background:0 0;border:0;height:6px}.io-range-track input::-webkit-slider-thumb{appearance:none;border:2px solid var(--blue);background:var(--blue);border-radius:50%;width:18px;height:18px;margin-top:-6px;box-shadow:0 1px 3px #122b4d20}.io-range-track input::-moz-range-track{background:0 0;border:0;height:6px}.io-range-track input::-moz-range-progress{background:0 0}.io-range-track input::-moz-range-thumb{border:2px solid var(--blue);background:var(--blue);border-radius:50%;width:14px;height:14px}.io-range-track input:focus-visible::-webkit-slider-thumb{filter:brightness(.85)}.io-range-track input:focus-visible::-moz-range-thumb{filter:brightness(.85)}.io-range-ends{color:var(--muted);justify-content:space-between;font:11px/1.3 Consolas,monospace;display:flex}.io-range-ends>span{text-align:center;width:18px}.concept-controls input[type=range]{height:32px;box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;padding:0}.io-variant{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin:20px 0;font-size:13px;display:flex}.io-variant select{min-width:180px;max-width:100%}.io-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.io-grid.io-entry{grid-template-columns:1fr}.io-panel{border:1px solid var(--line);background:var(--glass);border-radius:14px;min-width:0;overflow:hidden}.io-panel-heading{border-bottom:1px solid var(--line);height:42px;color:var(--muted);justify-content:space-between;align-items:center;padding:0 16px;font-size:12px;display:flex}.io-panel-heading small{letter-spacing:.04em;font-size:10px}.concept-section .io-experiment .trace-source{background:0 0;border:0;border-radius:0;margin:0;padding:10px 0;font-size:14px;line-height:1.85;overflow:auto}.io-experiment .trace-source span{align-items:center;min-height:36px}.io-experiment .trace-source code{color:var(--ink);background:0 0}.io-variable-list{min-width:0;margin:0;padding:0 16px;display:block}.io-variable-list>div{justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 0;display:flex}.io-variable-list>div+div{border-top:1px solid var(--line)}.io-variable-list dt{color:var(--muted);font:13px/1.5 Consolas,monospace}.io-variable-list dd{font-variant-numeric:tabular-nums;color:var(--ink);overflow-wrap:anywhere;text-align:right;min-width:0;margin:0;font:600 20px/1.5 Consolas,monospace;animation:.18s io-value}.io-variable-list .pending dd{color:var(--muted);opacity:.55}.concept-section .io-output{white-space:pre-wrap;background:0 0;border:0;border-radius:0;min-height:96px;margin:0;padding:16px;font:16px/1.8 Consolas,monospace}.io-label{color:var(--muted);font-size:11px}.io-shelf{border:1px solid var(--line);background:var(--glass);border-radius:14px;margin:16px 0 0;padding:12px 16px}.io-shelf-content{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px;height:56px;margin-top:4px;display:grid}.io-shelf-content>p{color:var(--muted);grid-column:1/-1;padding-top:16px;font-size:12px;line-height:1.5}.io-shelf-row{border-bottom:2px solid color-mix(in srgb,var(--muted) 22%,transparent);grid-template-columns:repeat(10,minmax(0,1fr));align-items:end;gap:4px;height:48px;margin-bottom:6px;padding:0 3px 3px;display:grid}.io-book{border:1px solid color-mix(in srgb,var(--blue) 48%,transparent);background:color-mix(in srgb,var(--blue) 18%,var(--glass));height:31px;box-shadow:inset 3px 0 0 color-mix(in srgb,var(--blue) 12%,transparent);border-radius:3px 4px 2px 2px;animation:.22s io-book-in;display:block;position:relative}.io-book:after{content:"";border-top:1px solid color-mix(in srgb,var(--blue) 45%,transparent);position:absolute;top:6px;left:3px;right:3px}.io-book:nth-child(3n){background:color-mix(in srgb,#b08bde 24%,var(--glass));border-color:#b08bde7a;height:35px}.io-book:nth-child(3n+2){background:color-mix(in srgb,#6aa9c9 22%,var(--glass));border-color:#6aa9c97a;height:28px}.io-note{min-height:3.3em;color:var(--ink);margin:18px 0;line-height:1.65}.io-controls{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding-top:16px;display:flex}.io-controls button{align-items:center;gap:8px;padding:9px 13px;font-size:13px;display:inline-flex}.io-controls>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.io-controls button:disabled{opacity:.4;cursor:default}.io-model-note{color:var(--muted);margin-top:12px;font-size:11px;display:block}.io-input{flex-wrap:wrap;align-items:center;gap:14px;margin:18px 0;display:flex}.io-input>span:first-child{color:var(--muted);font-size:12px}.io-input>span:not(:first-child){border:1px solid var(--line);color:var(--blue);background:var(--glass);border-radius:12px;padding:9px 16px;font:600 18px Consolas,monospace}.io-input small{color:var(--muted);margin-top:4px;font:11px system-ui;display:block}.io-input .consumed{opacity:.5}.io-experiment :is(button,select):focus-visible{outline:2px solid var(--blue);outline-offset:4px}@keyframes io-value{0%{opacity:.4}to{opacity:1}}@keyframes io-book-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (max-width:650px){.io-grid{grid-template-columns:1fr}.io-experiment header h3{font-size:18px}.io-controls{gap:8px}.io-controls button{padding:9px 11px}.io-shelf-content{grid-template-columns:1fr;max-width:320px;height:104px}}@media (prefers-reduced-motion:reduce){.io-variable-list dd,.io-book{animation:none}}.lecture-markdown{min-width:0}.lecture-markdown p{margin:1.1em 0}.lecture-markdown h3{margin-top:2em;font-size:20px}.lecture-markdown table{border-collapse:collapse;max-width:100%;font-size:14px;display:block;overflow:auto}.lecture-markdown th,.lecture-markdown td{border:1px solid var(--line);padding:12px 16px}.lecture-markdown th{background:var(--glass);text-align:left}.lecture-markdown :not(pre)>code{background:color-mix(in srgb,var(--blue) 9%,transparent);color:var(--ink);border-radius:5px;padding:.14em .36em;font-size:.91em}.lecture-code{border:1px solid var(--line);background:#f1f5fc;border-radius:17px;max-width:100%;margin:24px 0;overflow:hidden;box-shadow:0 8px 30px #23365d08}.lecture-code figcaption{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font:12px/1.4 system-ui;display:flex}.lecture-code figcaption>div{flex-wrap:wrap;gap:8px;display:flex}.lecture-code button{align-items:center;gap:6px;padding:6px 9px;font-size:12px;display:inline-flex}.concept-section .lecture-code pre{tab-size:4;color:#253448;background:0 0;border:0;border-radius:0;max-width:100%;margin:0;padding:22px;font-size:14px;line-height:1.75;overflow:auto}.lecture-code code{color:inherit;background:0 0;padding:0;font-family:Consolas,Cascadia Code,monospace}.lecture-code .hljs-keyword,.lecture-code .hljs-type{color:#8052ae}.lecture-code .hljs-string,.lecture-code .hljs-char{color:#147457}.lecture-code .hljs-number,.lecture-code .hljs-literal{color:#a84e21}.lecture-code .hljs-comment{color:#63718a;font-style:italic}.lecture-code .hljs-meta{color:#2466b5}.lecture-code .hljs-title{color:#186394}.lecture-code .hljs-built_in{color:#946426}[data-theme=dark] .lecture-code{background:#141f31}[data-theme=dark] .lecture-code pre{color:#dce7f6}[data-theme=dark] .lecture-code .hljs-keyword,[data-theme=dark] .lecture-code .hljs-type{color:#cba7f4}[data-theme=dark] .lecture-code .hljs-string,[data-theme=dark] .lecture-code .hljs-char{color:#87d9b4}[data-theme=dark] .lecture-code .hljs-number,[data-theme=dark] .lecture-code .hljs-literal{color:#ffbf90}[data-theme=dark] .lecture-code .hljs-comment{color:#98a7bf}[data-theme=dark] .lecture-code .hljs-meta,[data-theme=dark] .lecture-code .hljs-title{color:#88c5ff}[data-theme=dark] .lecture-code .hljs-built_in{color:#e4ca8a}.lecture-check{border:1px solid var(--line);background:linear-gradient(110deg,#a5a8f51a,#0000);border-radius:18px;margin:24px 0;padding:20px 24px}.lecture-check details{border-top:1px solid var(--line);padding-top:14px}.lecture-check summary{cursor:pointer;color:var(--blue);padding:5px 0;font-size:14px}.lecture-check details[open]>div{animation:.2s lecture-reveal}.lecture-check p{margin:.7em 0}.concept-section{min-width:0;max-width:100%}.concept-section .markdown{max-width:900px}@keyframes lecture-reveal{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.lecture-check details[open]>div{animation:none}}@media (max-width:600px){.lecture-duration{padding:0}.lecture-code figcaption{align-items:flex-start}.lecture-code figcaption>div{justify-content:flex-end}.concept-section .lecture-code pre{padding:14px;font-size:13px}.lecture-check{padding:16px}}.lecture-lab{border:1px solid var(--line);background:linear-gradient(135deg,#738de210,#b995dc08);border-radius:22px;min-width:0;margin:30px 0;padding:28px}.lecture-lab>p{line-height:1.75}.lecture-lab form{align-items:end;gap:12px;margin:24px 0;display:flex}.lecture-lab form label{flex:1;font-size:13px}.lecture-lab input:not([type=range]){width:100%;margin-top:8px;display:block}.lecture-lab-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.trace-source{background:var(--glass);border:1px solid var(--line);border-radius:14px;margin:0;padding:14px 0;font:13px/1.85 Consolas,monospace;overflow:auto}.trace-source>span{border-left:3px solid #0000;min-width:max-content;padding:3px 12px;display:flex}.trace-source>span.current{border-left-color:var(--blue);background:#7498f12b}.trace-source b{opacity:.5;-webkit-user-select:none;user-select:none;flex-shrink:0;width:27px;font-weight:400}.trace-source code{white-space:pre}.trace-cells{flex-wrap:wrap;gap:7px;min-height:62px;display:flex}.trace-cells>div{border:1px solid var(--line);text-align:center;border-radius:9px;min-width:45px;padding:7px 10px;transition:background .2s,border-color .2s}.trace-cells small{color:var(--muted);font-size:10px;display:block}.trace-cells strong{font:600 16px/1.5 Consolas,monospace}.trace-cells .active{border-color:var(--blue);background:#7498f123}.trace-cells .changed strong{color:var(--blue)}.trace-cells.matrix{grid-template-columns:repeat(3,1fr);display:grid}.trace-vars{flex-wrap:wrap;gap:10px;display:flex}.trace-vars>div{border:1px solid var(--line);border-radius:10px;padding:8px 12px}.trace-vars dt{color:var(--muted);font:12px Consolas,monospace}.trace-vars dd{margin:4px 0 0;font:600 16px Consolas,monospace}.trace-vars .changed{background:#7498f118}.trace-output{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--glass);border-radius:10px;min-height:46px;padding:12px;font:13px/1.5 Consolas,monospace}.trace-state>label{color:var(--muted);font-size:12px}.trace-caption{border-left:2px solid var(--blue);background:#7498f10b;min-height:4.7em;padding:16px}.lecture-lab .concept-controls{flex-wrap:wrap}.lecture-lab select{max-width:120px;font-size:12px}.lecture-lab .concept-controls input{min-width:80px}@media (max-width:750px){.lecture-lab{padding:17px}.lecture-lab-grid{grid-template-columns:1fr}.lecture-lab form{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.trace-cells>div{transition:none}}.lecture-progress{top:var(--lecture-sticky-top,80px);z-index:4;background:var(--surface);border-bottom:1px solid var(--line);margin:0 0 22px;padding:12px 0 10px;position:sticky}.lecture-progress-caption{color:var(--muted);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.lecture-progress-caption strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:5px}.lecture-progress-track{background:var(--line);border-radius:8px;height:4px;overflow:hidden}.lecture-progress-track>span{border-radius:inherit;background:linear-gradient(90deg,var(--blue),#9c79db);height:100%;transition:width .12s linear;display:block}.answer-save-status{color:var(--muted);align-items:center;gap:10px;min-height:18px;margin:10px 0;font-size:12px;display:flex}.answer-save-status button{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.answer-save-status.failed{color:var(--ink)}.lecture-problem-link{margin:20px 0 28px}@media (prefers-reduced-motion:reduce){.lecture-progress-track>span{transition:none}}.modal.reading .concept-lesson .concept-section{scroll-margin-top:var(--lecture-anchor-offset,160px)}.lecture-progress-caption{flex-wrap:wrap;align-items:center;row-gap:8px}.lecture-reading-count{margin-left:auto}.lecture-contents-toggle{border:1px solid var(--line);background:var(--glass);color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:7px 10px;font-weight:600;display:inline-flex}.lecture-contents-toggle:hover,.lecture-contents-toggle[aria-expanded=true]{background:color-mix(in srgb,var(--blue) 9%,var(--surface));border-color:var(--blue)}.lecture-contents-toggle .expanded{transform:rotate(180deg)}.lecture-floating-contents{overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:16px;width:min(440px,100%);max-height:min(58dvh,540px);padding:12px;animation:.15s lecture-reveal;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 16px 48px #15244026}.lecture-floating-contents>p{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 10px 10px;font-size:11px}.lecture-floating-contents ol{gap:3px;margin:0;padding:0;list-style:none;display:grid}.lecture-floating-contents a{color:var(--ink);border-radius:10px;align-items:baseline;gap:12px;padding:10px;font-size:14px;line-height:1.5;text-decoration:none;display:flex}.lecture-floating-contents a>span:first-child{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;font-size:11px}.lecture-floating-contents a:hover,.lecture-floating-contents a[aria-current]{background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--blue)}.lecture-floating-contents a:focus-visible,.lecture-contents-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.concept-section:focus{outline:none}.lecture-review-toolbar{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:8px;font-size:12px;display:flex}.lecture-review-toolbar button,.lecture-review-actions button,.lecture-review-comment button,.lecture-review-expand{border:1px solid var(--line);background:var(--glass);color:var(--ink);border-radius:9px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;line-height:1.4;display:inline-flex}.lecture-review-toolbar button[aria-pressed=true]{color:var(--blue);border-color:var(--blue)}.lecture-review-toolbar label{cursor:pointer;flex-direction:row;align-items:center;gap:7px;display:flex}.lecture-review-toolbar input{width:14px;height:14px;accent-color:var(--blue);flex:none;margin:0;padding:0}.lecture-review-toolbar small{flex-basis:100%;font-size:11px}.lecture-review-toolbar a{color:var(--blue)}.lecture-review-actions{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;padding:12px 0;display:flex}.lecture-review-status{color:var(--muted);flex:1;align-items:center;gap:6px;min-width:180px;font-size:12px;display:inline-flex}.lecture-review-section.approved .lecture-review-status{color:var(--blue)}.lecture-review-section.changes .lecture-review-status{color:var(--lightningcss-light,#966316)var(--lightningcss-dark,#e3b76d)}.lecture-review-note{background:color-mix(in srgb,var(--blue) 7%,transparent);white-space:pre-wrap;border-radius:12px;padding:12px 16px;font-size:14px;line-height:1.6}.lecture-review-comment{border:1px solid var(--line);background:var(--glass);border-radius:14px;margin-bottom:18px;padding:14px}.lecture-review-comment label{font-size:13px;display:block}.lecture-review-comment textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--line);border-radius:9px;width:100%;min-height:100px;max-height:350px;margin:10px 0;padding:12px;font-size:14px;line-height:1.6;display:block}.lecture-review-comment button+button{margin-left:8px}.lecture-review-expand{margin-bottom:12px}.concept-contents .lecture-review-mark,.lecture-floating-contents .lecture-review-mark{background:var(--line);border-radius:50%;flex:none;align-self:center;width:8px;height:8px;margin-left:auto}.concept-contents .lecture-review-mark.approved,.lecture-floating-contents .lecture-review-mark.approved{background:var(--blue)}.concept-contents .lecture-review-mark.changes,.lecture-floating-contents .lecture-review-mark.changes{background:#c98c39}@media (max-width:480px){.lecture-progress-caption{column-gap:8px;font-size:11px}.lecture-contents-toggle{gap:5px;padding:6px}.lecture-floating-contents{max-height:52dvh}}@media (prefers-reduced-motion:reduce){.lecture-floating-contents{animation:none}}.lecture-progress,.lecture-floating-contents{overflow-anchor:none}.lecture-revision-notes{border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));background:color-mix(in srgb,var(--blue) 5%,var(--surface));border-radius:14px;margin:10px 0 18px;padding:16px 20px;font-size:14px;line-height:1.6}.lecture-revision-notes ul{margin:8px 0 0;padding-left:20px}.lecture-revision-notes li+li{margin-top:6px}.review-change-index{flex-basis:100%;font-size:14px}.review-change-index summary{cursor:pointer;color:var(--blue)}.review-change-index ol{overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:38vh;padding:0;list-style:none;display:grid;overflow-y:auto}.review-change-index a{background:var(--glass);border-radius:8px;padding:7px 10px;text-decoration:none;display:block}.lecture-task-link,.lecture-contest{border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));background:linear-gradient(125deg,color-mix(in srgb,var(--blue) 9%,var(--surface)),var(--surface));border-radius:18px;justify-content:space-between;align-items:center;gap:24px;margin:26px 0;padding:24px;display:flex}.lecture-task-link h3,.lecture-contest h2{margin:8px 0 10px}.lecture-task-status{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.lecture-task-link.solved .lecture-task-status,.practice-ungraded.solved{color:var(--blue)}.lecture-task-link .board-link button,.lecture-contest .board-link button{background:var(--blue);color:#fff;white-space:nowrap;border:0;border-radius:12px;padding:12px 18px}.lecture-contest progress{width:min(300px,100%);height:7px;accent-color:var(--blue)}.io-variant{border:0;margin:20px 0;padding:0}.io-variant legend{color:var(--muted);margin-bottom:8px;font-size:14px}.io-variant-buttons{flex-wrap:wrap;gap:8px;display:flex}.io-variant-buttons button{border:1px solid var(--line);background:var(--glass);color:var(--muted);border-radius:10px;padding:10px 14px;transition:background .18s,color .18s,border-color .18s}.io-variant-buttons button[aria-pressed=true]{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 55%,var(--line));background:color-mix(in srgb,var(--blue) 10%,var(--glass))}.practice-options label{transition:background .18s,border-color .18s,box-shadow .18s}.practice-feedback{animation:.2s lecture-reveal}.lecture-reveal{border:1px solid var(--line);background:var(--glass);border-radius:14px;margin:16px 0;padding:18px 22px}.lecture-reveal summary{cursor:pointer;color:var(--blue);font-weight:600;line-height:1.6}.lecture-reveal[open]>.lecture-markdown{animation:.2s lecture-reveal}@media (max-width:600px){.review-change-index ol{grid-template-columns:1fr}.lecture-task-link,.lecture-contest{flex-direction:column;align-items:stretch;gap:14px}}@media (prefers-reduced-motion:reduce){.practice-options label,.io-variant-buttons button{transition:none}.practice-feedback,.lecture-reveal[open]>.lecture-markdown{animation:none}}.lecture-markdown :is(ul,ol){margin:1em 0;padding-inline-start:1.5em;list-style-position:outside}.lecture-markdown ul{list-style-type:disc}.lecture-markdown ol{list-style-type:decimal}.lecture-markdown li{padding-inline-start:.35em;line-height:1.75}.lecture-markdown li+li{margin-top:.55em}.lecture-markdown li::marker{color:var(--blue);font-variant-numeric:tabular-nums;font-size:.92em}.lecture-markdown li>p{margin:.35em 0}.lecture-markdown li>:first-child{margin-top:0}.lecture-markdown li>:last-child{margin-bottom:0}.lecture-markdown li :is(ul,ol){margin:.5em 0;padding-inline-start:1.35em}.lecture-markdown li ul{list-style-type:circle}.lecture-markdown .contains-task-list{padding-inline-start:0;list-style:none}.lecture-markdown .task-list-item{padding-inline-start:0}.lecture-markdown .task-list-item>input{width:auto;margin-inline-end:.6em}.concept-lesson :is(button,summary){-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.concept-lesson :is(button,summary,select):focus:not(:focus-visible){outline:none}.concept-lesson :is(button,summary,select):focus-visible{outline:2px solid var(--blue);outline-offset:3px}.lecture-code figcaption{font-family:inherit}.chess-demo{border:1px solid var(--line);background:var(--glass);min-width:0;max-width:900px;font-size:calc(16px * var(--reading-scale,1));border-radius:20px;margin:28px 0;padding:clamp(16px,3vw,28px);line-height:1.75}.chess-toolbar{flex-wrap:wrap;align-items:end;gap:12px 18px;display:flex}.chess-toolbar label{min-width:160px;color:var(--muted);gap:7px;font-size:14px;line-height:1.4;display:grid}.chess-toolbar :is(button,select){box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:auto;min-height:44px;color:var(--ink);box-shadow:none;border-radius:10px;margin:0;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.5;transition:background .15s,border-color .15s}.chess-toolbar select{width:100%;padding-right:30px}.chess-toolbar button:hover{background:color-mix(in srgb,var(--blue) 6%,var(--surface));border-color:color-mix(in srgb,var(--blue) 35%,var(--line))}.chess-toolbar button[aria-pressed=true]{color:var(--blue);background:color-mix(in srgb,var(--blue) 8%,var(--surface));border-color:color-mix(in srgb,var(--blue) 40%,var(--line))}.chess-demo .chess-instruction{font:inherit;color:var(--muted);margin:20px 0 24px}.chess-layout{grid-template-columns:minmax(220px,390px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.chess-grid{-webkit-user-select:none;user-select:none;min-width:0}.chess-row{grid-template-columns:24px repeat(8,minmax(0,1fr));display:grid}.chess-coordinate,.chess-axis span{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.chess-axis{height:28px}.chess-demo .chess-cell{aspect-ratio:1;width:100%;min-width:0;box-shadow:none;touch-action:manipulation;border:0;border-radius:0;outline:none;place-items:center;margin:0;padding:0;display:grid;position:relative}.chess-cell.light{background:#e9effa}.chess-cell.dark{background:#718cb5}.chess-demo .chess-cell.selected:after{content:"";pointer-events:none;border:2px solid #fff;border-radius:3px;position:absolute;inset:3px;box-shadow:0 0 0 2px #345c9a}.chess-demo .chess-cell:hover:before{content:"";pointer-events:none;background:#ffffff20;position:absolute;inset:0}.chess-demo .chess-cell:focus-visible{outline:2px solid var(--blue);outline-offset:2px;z-index:2}.chess-grid.placing .chess-cell{cursor:crosshair}.chess-piece{color:#152844;text-shadow:0 1px 2px #fffa;pointer-events:none;font:36px/1 Segoe UI Symbol,serif}.chess-dot{aspect-ratio:1;pointer-events:none;background:#102c5780;border-radius:50%;width:22%}.chess-description{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-width:0;padding:20px}.chess-description h4{margin:0;font-size:1em;font-weight:600;line-height:1.5}.chess-description p{font:inherit;overflow-wrap:anywhere;margin:14px 0 0}.chess-description .chess-route{color:var(--muted);font-variant-numeric:tabular-nums;margin:6px 0 18px}[data-theme=dark] .chess-cell.light{background:#8495b1}[data-theme=dark] .chess-cell.dark{background:#394e70}[data-theme=dark] .chess-piece{color:#fff;text-shadow:0 2px 3px #0b152a}[data-theme=dark] .chess-dot{background:#e8eefc99}@media (max-width:720px){.chess-layout{grid-template-columns:1fr}.chess-grid{width:100%;max-width:390px;margin-inline:auto}.chess-toolbar label{flex:1}.chess-piece{font-size:30px}}@media (prefers-reduced-motion:reduce){.chess-toolbar :is(button,select){transition:none}}.interval-diagram{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:18px;margin:26px 0;padding:22px}.interval-diagram>figcaption{margin-bottom:16px;font-weight:650}.interval-diagram-row+.interval-diagram-row{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.interval-diagram-row>svg{width:100%;max-width:620px;margin:0 auto;font-family:inherit;display:block}.interval-diagram-row .lecture-markdown p{margin:8px 0}@media (max-width:600px){.interval-diagram{padding:14px}.interval-diagram-row>svg{min-height:110px}}.concept-contest-section>.lecture-contest,.concept-contest-section .lecture-contest{margin:16px 0 0}.concept-contest-section>h2{margin-bottom:16px}
.math-experiment{--math-blue:#4c70d8;--math-pink:#b86291;border:1px solid var(--line);background:linear-gradient(135deg, #779af410, #c58bb709), var(--glass);border-radius:24px;margin:28px 0;padding:clamp(18px,3vw,30px)}[data-theme=dark] .math-experiment{--math-blue:#95b2ff;--math-pink:#e1a0c2}.math-experiment header h3{margin:10px 0;font-size:1.18em;line-height:1.4}.math-experiment header p{color:var(--muted);margin-bottom:24px;line-height:1.7}.math-settings{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:28px;display:grid}.math-experiment .io-range-track input[type=range]{appearance:none;width:100%;min-width:0;height:32px;box-shadow:none;cursor:pointer;touch-action:pan-y;background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:0;display:block;position:relative}.math-experiment .io-range-track input[type=range]:is(:focus,:focus-visible,:active){box-shadow:none;background:0 0;border:0;outline:none}.math-box{animation:.22s ease-out math-box-in}@keyframes math-box-in{0%{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.math-presets{flex-wrap:wrap;gap:8px;margin:10px 0 18px;display:flex}.math-presets button{border:1px solid var(--line);color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border-radius:9px;padding:7px 12px}.math-presets button[aria-pressed=true]{border-color:var(--math-blue);color:var(--math-blue);background:#799bed18}.math-stage{border:1px solid var(--line);border-radius:16px;margin-top:16px;overflow:hidden}.math-picture{background:var(--glass);align-items:center;min-height:190px;padding:clamp(16px,3vw,26px);display:grid}.math-explanation{border-top:1px solid var(--line);padding:14px 22px 18px}.math-formula .markdown{max-width:100%}.math-formula .katex-display{margin:10px 0 18px;overflow:auto hidden}.math-explanation p{min-height:3.5em;margin:0;line-height:1.65}.math-experiment .io-controls{flex-wrap:wrap;gap:10px;margin-top:20px}.math-experiment .io-controls>span{font-variant-numeric:tabular-nums}.math-boxes{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.math-box{border:1.5px solid var(--math-blue);background:#7295ed09;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;display:flex}.math-box.remainder{border-color:var(--math-pink)}.math-dots{flex-wrap:wrap;gap:6px;max-width:400px;display:flex}.math-box .math-dots{max-width:72px}.math-dots i{border:1px solid var(--math-blue);border-radius:50%;flex-shrink:0;width:13px;height:13px}.math-dots i.filled{background:var(--math-blue)}.math-dots.pink i{border-color:var(--math-pink)}.math-dots.pink i.filled{background:var(--math-pink)}.math-loose{gap:12px;padding:14px 0;display:grid}.math-loose>span{color:var(--muted);font-size:.85em}.math-line{width:100%;overflow:visible}.math-line text,.math-cycle text{fill:var(--ink);text-anchor:middle;font-family:inherit;font-size:15px}.math-line .axis{stroke:var(--muted);stroke-width:1px}.math-line .start{fill:var(--math-pink)}.math-line .finish{fill:var(--math-blue)}.math-jump{fill:none;stroke:var(--math-blue);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.math-fractions{gap:18px;display:grid}.math-fraction-row{font-variant-numeric:tabular-nums;grid-template-columns:95px 1fr;align-items:center;gap:12px;display:grid}.math-fraction{gap:3px;display:grid}.math-fraction i{border:1px solid var(--math-blue);border-radius:4px;height:34px}.math-fraction i.filled{background:var(--math-blue)}.math-sum-tiles{border-top:1px solid var(--line);gap:12px;padding-top:16px;display:grid}.math-sum-tiles>div{gap:8px;display:grid}.math-sum-tiles>span{color:var(--muted);font-size:.85em}.math-sum-tiles.pending{opacity:.4}.math-price-bars{gap:20px;display:grid}.math-price-bars>div{grid-template-columns:160px 1fr 100px;align-items:center;gap:14px;font-size:.85em;display:grid}.math-price-bars>div>div{background:#799bed13;border-radius:5px;height:18px}.math-price-bars i{background:var(--math-blue);border-radius:inherit;height:100%;transition:width .2s;display:block}.math-price-bars>div:last-child i{background:var(--math-pink)}.math-price-bars strong{text-align:right;font-variant-numeric:tabular-nums}.math-price-bars .pending i{visibility:hidden}.math-price-bars .pending{color:var(--muted)}.math-digit-strip{justify-content:center;gap:8px;display:flex}.math-digit-strip>span{text-align:center;border:1px solid var(--line);border-radius:10px;gap:6px;min-width:60px;padding:12px 8px;display:grid}.math-digit-strip b{font-variant-numeric:tabular-nums;font-size:2em}.math-digit-strip small{color:var(--muted);font-size:.72em}.math-digit-strip .active{border-color:var(--math-blue);color:var(--math-blue);background:#799bed18}.math-readouts{flex-wrap:wrap;justify-content:center;gap:16px;margin:16px 0;display:flex}.math-readouts>div{text-align:center;gap:8px;min-width:70px;display:grid}.math-readouts small{color:var(--muted);font-size:.8em}.math-readouts b{font-variant-numeric:tabular-nums;font-size:1.6em}.math-clock-scene>p{text-align:center;color:var(--muted);min-height:2em;font-size:.85em}.math-cycle{justify-self:center;width:100%;max-width:320px}.math-cycle .orbit{stroke:var(--line);fill:none;stroke-width:2px}.math-cycle g circle{fill:var(--glass);stroke:var(--line);stroke-width:1.5px}.math-cycle .origin circle{stroke:var(--math-pink)}.math-cycle .current circle{fill:var(--math-blue);stroke:var(--math-blue)}.math-cycle .current text{fill:#fff}[data-theme=dark] .math-cycle .current text{fill:#142344}.math-cycle .cycle-count{font-size:24px;font-weight:600}.checked-practice .practice-options .markdown{font-size:inherit;flex:1;line-height:1.4}.checked-practice .practice-options .markdown p{margin:0}@media (max-width:600px){.math-price-bars>div{grid-template-columns:1fr 90px;gap:8px}.math-price-bars>div>div{grid-area:auto/1}.math-price-bars>div>span{grid-column:1/-1}.math-fraction-row{grid-template-columns:65px 1fr;gap:8px}.math-digit-strip>span{flex:1;min-width:0;padding:10px 4px}.math-explanation{padding:12px}}@media (prefers-reduced-motion:reduce){.math-box{animation:none}.math-price-bars i{transition:none}}.division-demo{container-type:inline-size}.division-demo header h3{margin:0 0 12px}.division-presets{gap:10px;margin-top:16px;display:flex}.division-presets button{border:1px solid var(--line);background:var(--glass);color:var(--ink);font:inherit;border-radius:10px;padding:7px 16px}.division-presets button[aria-pressed=true]{background:color-mix(in srgb,var(--math-blue) 12%,transparent);border-color:var(--math-blue)}.division-presets button:focus:not(:focus-visible){outline:none}.rounding-line{width:100%;height:auto;max-height:185px;margin-top:20px;overflow:visible}.rounding-line text{text-anchor:middle;fill:var(--ink);font-family:inherit;font-size:15px}.division-axis{stroke:var(--muted);stroke-width:1.5px}.rounding-span{stroke:var(--math-blue);stroke-width:5px;opacity:.4}.rounding-bound{fill:var(--math-blue)}.rounding-point{transition:transform .1s linear}.rounding-point circle{fill:var(--math-pink)}.rounding-point line{stroke:var(--math-pink);stroke-width:2px;stroke-dasharray:3 3}.division-readouts{grid-template-columns:1fr 1fr;gap:16px;display:grid}.division-readouts>div{border:1px solid var(--line);background:var(--glass);border-radius:14px;gap:8px;padding:16px;display:grid}.division-readouts span{color:var(--muted);font-size:.85em}.division-readouts strong{font-variant-numeric:tabular-nums;font-size:1.6em}.division-inputs{flex-wrap:wrap;gap:16px;margin:22px 0;display:flex}.division-inputs label{flex:160px;gap:10px;font-size:.9em;display:grid}.division-inputs input{width:100%;min-width:0;font:inherit;border:1px solid var(--line);background:var(--glass);color:var(--ink);border-radius:10px;padding:10px 12px}.division-packing-comparison{grid-template-columns:1fr 1fr;gap:20px;display:grid}.division-packing-comparison>section{border:1px solid var(--line);background:var(--glass);border-radius:16px;min-width:0;padding:16px}.division-packing-comparison h4{margin:0 0 18px;font-size:1em}.division-boxes{flex-wrap:wrap;align-content:start;gap:10px;min-height:112px;display:flex}.division-box{border:1px solid var(--line);border-radius:8px;align-self:start;gap:4px;padding:7px;display:grid}.division-box i{border:1px solid var(--line);border-radius:2px;width:8px;height:8px}.division-box i.filled.tone-0{background:var(--math-blue);border-color:var(--math-blue)}.division-box i.filled.tone-1{background:var(--math-pink);border-color:var(--math-pink)}.division-empty{color:var(--muted);font-size:.9em}.division-demo .katex-display{overflow:auto hidden}.division-demo>p{margin-bottom:0}@container (max-width:540px){.division-packing-comparison{grid-template-columns:1fr}.division-readouts{gap:10px}.division-readouts>div{padding:12px}.division-boxes{min-height:70px}}@media (prefers-reduced-motion:reduce){.rounding-point{transition:none}}@container (max-width:540px){.rounding-line{min-height:120px}.rounding-line text{font-size:30px}.rounding-point text{font-size:32px}}.packing-model-options{grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;display:grid}.packing-model-options>button{text-align:left;border:1px solid var(--line);background:var(--glass);min-width:0;color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:12px;padding:18px;display:flex}.packing-model-options>button[aria-pressed=true]{border-color:var(--math-blue);background:color-mix(in srgb,var(--math-blue) 10%,var(--glass))}.packing-model-options button:focus:not(:focus-visible){outline:none}.packing-model-options .lecture-markdown{max-width:100%}.packing-model-options p{margin:0}.packing-model-feedback{border:1px solid var(--line);background:var(--glass);border-radius:16px;margin:20px 0;padding:20px}.packing-model-feedback h4{margin:0 0 12px;font-family:inherit;font-size:1.05em;font-weight:600;line-height:1.4}.packing-result-scene{margin-top:20px}.packing-result-scene>span{color:var(--muted);margin-bottom:16px;font-size:.85em;line-height:1.6;display:block}.packing-case-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.packing-case-nav>span{color:var(--muted);font-size:.85em}.packing-case-nav button{font:inherit;color:var(--ink);background:var(--glass);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.packing-case-nav button:disabled{opacity:.4;cursor:default}@container (max-width:540px){.packing-model-options{grid-template-columns:1fr}.packing-model-feedback{padding:14px}.packing-case-nav{justify-content:start}}.packing-choice .lecture-markdown{width:100%;min-width:0}.packing-choice .katex-display{text-align:left;margin:.4em 0;padding:6px 0}.packing-choice .katex-display>.katex{text-align:left}.packing-choice .division-boxes{min-height:0;margin-bottom:18px}.packing-model-options .lecture-markdown p{margin:0}.packing-result-scene>.lecture-markdown{overflow-x:auto}
.brand-icon{box-shadow:none;background:0 0;border-color:#0000}.brand-icon svg{width:34px;height:38px}.landing-nav .brand{flex-shrink:0;gap:9px}.landing-nav .brand-wordmark{letter-spacing:-.9px;font-size:23px;font-weight:750}.landing-page a:focus-visible,.landing-page button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.landing-nav a:not(.brand):hover{color:var(--blue)}.landing-cta{transition:transform .25s,box-shadow .25s}.landing-cta:hover{transform:translateY(-2px);box-shadow:0 14px 36px #526bdd38}.landing-features{color:var(--ink);gap:14px;margin:26px 0;padding:0;font-size:14px;line-height:1.5;list-style:none;display:grid}.landing-features li{align-items:center;gap:10px;display:flex}.landing-features svg{color:var(--blue);flex-shrink:0}.landing-text-link{color:var(--blue);align-items:center;gap:9px;padding:8px 0;font-size:14px;font-weight:650;text-decoration:none;display:inline-flex}.landing-text-link svg{transition:transform .25s}.landing-text-link:hover svg{transform:translate(2px,-2px)}.product-preview-header{color:var(--ink);justify-content:space-between;align-items:center;gap:12px;display:flex}.product-preview-header>span:first-child{align-items:center;gap:10px;display:flex}.product-preview-header b{letter-spacing:-.4px;white-space:nowrap;font-size:14px}.product-preview-header em{color:var(--muted);margin-left:3px;font-style:normal;font-weight:450}.product-preview-header .sportsprog-mark{width:25px;height:29px;margin:0}.preview-caption{color:var(--muted);white-space:nowrap;font-size:10px}.landing-board-art{background:radial-gradient(circle, var(--line) 1px, transparent 1px) 0 0 / 22px 22px, var(--surface);position:relative}.landing-board-art .board-graph{width:100%;margin:30px 0;display:block}.board-route{stroke-dasharray:370;stroke-dashoffset:370px;opacity:.65}.landing-board-art.seen .board-route{animation:1.8s .65s both board-route-draw}.board-demo-cursor{color:var(--blue);pointer-events:none;flex-direction:column;align-items:flex-start;gap:3px;display:flex;position:absolute;bottom:65px;right:12%}.board-demo-cursor span{background:var(--blue);color:var(--surface);border:1px solid var(--line);border-radius:3px 9px 9px;margin-left:18px;padding:5px 8px;font-size:10px}.landing-board-art.seen .board-demo-cursor{animation:1.6s .4s both board-cursor-arrive}.landing-ide-art,.landing-judge-art{background:var(--surface);border:1px solid var(--line);min-width:0;box-shadow:0 35px 80px var(--shadow);border-radius:26px;overflow:hidden}.landing-ide-art>.product-preview-header{padding:22px 24px}.ide-preview-tabs{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:0 24px 12px;display:flex}.ide-preview-tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 12px;font-size:12px}.ide-preview-tabs button[aria-pressed=true]{color:var(--blue);background:var(--raised)}.ide-preview-tabs>span{color:var(--muted);margin-left:auto;font:11px/1.5 Consolas,monospace}.preview-code{min-height:275px;color:var(--ink);tab-size:4;margin:0;padding:26px;font:13px/1.85 Cascadia Code,Consolas,monospace;overflow-x:auto}.code-comment{color:var(--muted)}.code-keyword{color:#7e39ac}.code-type{color:#165eaa}.code-string{color:#147360}[data-theme=dark] .code-keyword{color:#d4a4ff}[data-theme=dark] .code-type{color:#9fc6ff}[data-theme=dark] .code-string{color:#8ee0c1}.preview-console{border-top:1px solid var(--line);background:var(--glass);padding:18px 24px 22px}.preview-console-title{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.preview-io{grid-template-columns:1fr 1fr;gap:16px;margin:18px 0;display:grid}.preview-io label,.preview-io>div{color:var(--muted);gap:8px;min-width:0;font-size:11px;display:grid}.preview-io input,.preview-io output{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;height:42px;color:var(--ink);border-radius:9px;padding:10px 12px;font:14px/20px Consolas,monospace}.preview-io input:focus{outline:2px solid var(--blue);outline-offset:2px}.preview-io output{color:var(--success);display:block}.preview-run{background:var(--blue);color:var(--surface);font:inherit;cursor:pointer;border:0;border-radius:9px;align-items:center;gap:9px;padding:10px 15px;font-size:12px;font-weight:650;display:inline-flex}.landing-page .preview-error{color:var(--danger);font-size:12px;line-height:1.5}.landing-judge-art{padding:26px}.judge-example-label{color:var(--muted);letter-spacing:.13em;margin:34px 0 14px;font-size:9px}.landing-judge-art h3{letter-spacing:-.6px;margin:0 0 24px;font-size:24px}.judge-test-rows{gap:4px;display:grid}.judge-test-rows>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;font-size:12px;display:flex}.judge-test-rows span{align-items:center;gap:14px;display:flex}.judge-test-rows i{color:var(--muted);font:10px Consolas,monospace}.judge-test-rows svg{color:var(--success)}.landing-judge-art.seen .judge-test-rows svg{animation:result-check .55s calc(.3s + var(--test-order) * .15s) both}.judge-accepted{color:var(--success);background:var(--success-bg);border-radius:12px;align-items:center;gap:9px;margin-top:24px;padding:16px;font-size:13px;display:flex}.judge-accepted b{margin-left:auto;font-family:Consolas,monospace}.footer-brand{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.footer-brand .sportsprog-mark{width:19px;height:23px}@keyframes board-route-draw{to{stroke-dashoffset:0}}@keyframes board-cursor-arrive{0%{opacity:0;transform:translate(25px,15px)}to{opacity:1;transform:none}}@keyframes result-check{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@media (max-width:1100px){.landing-nav{gap:14px;padding-inline:4vw}.landing-nav nav{gap:18px}.landing-chapter{gap:5vw;padding-inline:6vw}}@media (max-width:850px){.landing-nav nav a:nth-child(4){display:none}.landing-nav .brand-wordmark{font-size:20px}.landing-chapter{gap:40px}.landing-ide-art,.landing-board-art,.landing-judge-art{width:100%;max-width:560px}}@media (max-width:650px){.landing-nav nav{display:none}.landing-nav .theme-toggle{margin-left:auto}.landing-nav{gap:10px;height:74px;padding-inline:16px}.landing-nav .brand-icon{width:32px}.landing-nav .brand-wordmark{font-size:19px}.landing-nav .landing-login{padding:9px 12px}.landing-chapter{padding-inline:7vw}.landing-board-art{padding:20px;transform:none}.preview-caption{display:none}.preview-code{min-height:245px;padding:20px;font-size:11px}.landing-ide-art>.product-preview-header,.preview-console{padding-inline:20px}.landing-judge-art{padding:20px}}@media (prefers-reduced-motion:reduce){.landing-board-art.seen .board-route{stroke-dashoffset:0;animation:none}.landing-board-art.seen .board-demo-cursor,.landing-judge-art.seen .judge-test-rows svg{animation:none}.landing-cta,.landing-text-link svg{transition:none}}
.schedule-page,.chat-page{flex:1;width:100%;min-height:0;padding:clamp(18px,3vw,42px);overflow:auto}@media (max-width:1250px){.app-header{gap:12px;padding-inline:18px}.app-header .account-button>span:last-child{display:none}.app-header .main-nav{gap:4px;min-width:0}.app-header .main-nav button{white-space:nowrap;padding:9px 8px;font-size:12px}}@media (max-width:980px){.app-header{gap:8px;padding-inline:12px}.app-header>.board-link>button{gap:0;width:36px;height:36px;padding:8px;font-size:0}.app-header .main-nav button{gap:5px;padding-inline:6px}}@media (max-width:700px){.app-header .main-nav{scrollbar-width:none;flex-basis:100%;order:10;overflow-x:auto}.app-header .main-nav button{flex-shrink:0;font-size:11px}.app-header>.board-link{order:0}.app-header .account-button{margin-left:auto}}.schedule-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.schedule-heading h1{letter-spacing:-.045em;margin:8px 0;font-size:clamp(28px,3vw,42px)}.schedule-heading p{color:var(--muted);margin:0}.schedule-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.schedule-actions button,.schedule-form-actions button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.soft-button{border:1px solid var(--line);background:var(--glass);color:var(--ink);border-radius:12px;align-items:center;gap:8px;padding:10px 14px;display:inline-flex}.soft-button:hover{background:var(--raised)}.schedule-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.schedule-views{background:var(--raised);border:1px solid var(--line);border-radius:14px;padding:4px;display:flex}.schedule-views button{color:var(--muted);background:0 0;border:0;border-radius:10px;padding:9px 14px}.schedule-views button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 3px 10px var(--shadow)}.schedule-period{align-items:center;gap:8px;display:flex}.schedule-period strong{text-transform:capitalize;text-align:center;min-width:155px;font-size:14px}.schedule-filters{flex-wrap:wrap;gap:8px;display:flex}.schedule-filters select{background:var(--surface);border:1px solid var(--line);max-width:210px;color:var(--ink);border-radius:10px;padding:9px 12px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.calendar-day{border:1px solid var(--line);background:var(--glass);border-radius:18px;min-width:0;min-height:170px;padding:10px}.calendar-grid.week .calendar-day{min-height:380px}.calendar-day.today{border-color:var(--blue);background:linear-gradient(155deg, color-mix(in srgb, var(--blue) 9%, transparent), transparent 65%), var(--glass)}.calendar-day.outside{background:color-mix(in srgb, var(--surface) 55%, transparent)}.calendar-day>header{align-items:center;gap:7px;padding:5px 3px 15px;display:flex}.calendar-day>header>span{color:var(--muted);font-size:12px}.calendar-day>header>strong{font-size:19px}.calendar-day>header>button{margin-left:auto;padding:3px}.calendar-day.today>header>strong{color:var(--blue)}.calendar-free{text-align:center;color:var(--muted);opacity:.7;margin-top:44px;font-size:12px;display:block}.calendar-lesson{text-align:left;border:1px solid color-mix(in srgb, var(--blue) 35%, var(--line));background:linear-gradient(130deg, color-mix(in srgb, var(--blue) 13%, var(--surface)), var(--surface));overflow-wrap:anywhere;border-radius:13px;flex-direction:column;align-items:flex-start;gap:9px;width:100%;margin:0 0 8px;padding:12px;transition:transform .18s,background .18s;display:flex}.calendar-lesson:hover{background:var(--raised);transform:translateY(-2px)}.calendar-lesson>strong{font-size:13px;line-height:1.45}.lesson-time{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:5px;font-size:12px;display:flex}.lesson-badge{background:var(--raised);color:var(--muted);border-radius:6px;padding:4px 6px;font-size:10px;line-height:1.3;display:inline-flex}.calendar-lesson.cancelled{background:var(--surface);opacity:.75;border-style:dashed}.calendar-lesson.cancelled .lesson-time{text-decoration:line-through}.calendar-lesson.cancelled .lesson-badge,.lesson-badge.cancelled{color:var(--danger);background:var(--danger-bg)}.calendar-lesson.completed{border-color:color-mix(in srgb, var(--success) 45%, var(--line))}.calendar-lesson.completed .lesson-badge,.lesson-badge.completed{color:var(--success);background:var(--success-bg)}.lesson-homework{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.calendar-move{border:1px dashed var(--line);text-align:left;width:100%;color:var(--muted);background:0 0;border-radius:10px;margin-bottom:8px;padding:9px;font-size:11px;line-height:1.6}.calendar-move span{color:var(--blue);align-items:center;gap:4px;display:flex}.schedule-empty{min-height:240px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.homework-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.homework-entry{background:var(--glass);border:1px solid var(--line);text-align:left;border-radius:20px;padding:22px}.homework-entry>span:first-child{flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;display:flex}.homework-entry small{color:var(--muted);width:100%;font-weight:400}.homework-entry p{white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;line-height:1.7;overflow:hidden}.homework-entry>span:last-child{align-items:center;gap:5px;font-size:12px;display:flex}.schedule-form{gap:18px;padding-top:8px;display:grid}.schedule-form label{gap:8px;font-size:13px;font-weight:600;display:grid}.schedule-form input,.schedule-form select,.schedule-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--surface);border-radius:11px;min-width:0;padding:11px 13px}.schedule-form textarea{resize:vertical;line-height:1.6}.schedule-form small{color:var(--muted);font-weight:400;line-height:1.5}.schedule-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.schedule-form .schedule-checkbox{align-items:center;font-weight:400;display:flex}.schedule-form .schedule-checkbox input{width:auto}.schedule-form-actions{justify-content:flex-end;gap:10px;padding-top:10px;display:flex}.lesson-detail{padding:15px 0}.lesson-detail-date{align-items:center;gap:15px;display:flex}.lesson-detail-date h3{margin:0}.lesson-detail-date p{color:var(--muted);font-size:13px}.lesson-detail section{border-top:1px solid var(--line);margin-top:22px;padding-top:10px}.schedule-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.schedule-text a{color:var(--blue)}.lesson-history{border-top:1px solid var(--line);color:var(--muted);margin-top:22px;padding-top:15px;font-size:12px}.lesson-history summary{cursor:pointer}.google-panel{gap:16px;line-height:1.65;display:grid}.google-panel h3,.google-panel p{margin:0}.google-panel>p{color:var(--muted)}.google-symbol{background:var(--raised);width:66px;height:66px;color:var(--blue);border-radius:19px;place-items:center;display:grid}.schedule-notice{background:var(--raised);border-radius:13px;padding:15px;font-size:13px}.schedule-notice small{color:var(--muted);display:block}.calendar-conflict{border:1px solid var(--notice);border-radius:14px;padding:16px;font-size:13px}.calendar-conflict button{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px}.chat-page{flex-direction:column;display:flex}.chat-layout{border:1px solid var(--line);background:var(--glass);border-radius:24px;flex:1;grid-template-columns:290px minmax(0,1fr);min-height:480px;max-height:calc(100dvh - 225px);display:grid;overflow:hidden}.chat-sidebar{border-right:1px solid var(--line);padding:12px;overflow:auto}.chat-sidebar>p{padding:12px;font-size:13px;line-height:1.7}.chat-person{text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;padding:14px 10px;display:flex}.chat-person.active,.chat-person:hover{background:var(--raised)}.chat-person>span:nth-child(2){flex:1;min-width:0}.chat-person strong{font-size:13px}.chat-person small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);max-width:180px;margin-top:6px;font-size:12px;display:block;overflow:hidden}.chat-person .avatar{flex-shrink:0}.chat-placeholder{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:30px;display:flex}.chat-placeholder h2{color:var(--ink);font-size:23px;font-weight:500}.chat-thread{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-thread>header{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:17px 22px;display:flex}.chat-thread>header small{color:var(--muted);margin-top:5px;font-size:12px;display:block}.chat-messages{overscroll-behavior:contain;flex:1;min-height:0;padding:18px 25px;overflow-y:auto}.chat-date{text-align:center;color:var(--muted);padding:10px;font-size:11px}.chat-message{border:1px solid var(--line);background:var(--surface);border-radius:17px 17px 17px 5px;width:fit-content;max-width:85%;margin:5px 0;padding:12px 16px}.chat-message.own{background:color-mix(in srgb, var(--blue) 12%, var(--surface));border-color:color-mix(in srgb, var(--blue) 24%, var(--line));border-radius:17px 17px 5px;margin-left:auto}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.65}.chat-message time{text-align:right;color:var(--muted);margin-top:5px;font-size:10px;display:block}.chat-compose{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:10px;padding:14px 20px;display:grid}.chat-compose textarea{resize:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:13px;min-width:0;padding:12px;line-height:1.5}.chat-compose small{color:var(--muted);grid-column:1/-1;font-size:10px}.chat-compose button{border-radius:13px;align-self:stretch;min-width:48px}.chat-first{text-align:center;color:var(--muted);font-size:13px}.chat-older{margin:auto;display:flex}.chat-thread>.form-error{padding:0 20px;font-size:12px}.chat-back{display:none}.chat-contacts{max-height:55vh;overflow:auto}@media (max-width:1100px){.calendar-grid{gap:5px}.calendar-day{padding:5px}.calendar-lesson{padding:8px}.chat-layout{grid-template-columns:230px minmax(0,1fr)}}@media (max-width:760px){.schedule-heading{flex-wrap:wrap;align-items:flex-start}.schedule-actions{gap:6px}.schedule-actions button{padding:9px;font-size:12px}.calendar-grid.week{flex-direction:column;display:flex}.calendar-grid.week .calendar-day{min-height:90px}.calendar-grid.month{grid-template-columns:repeat(7,minmax(105px,1fr));overflow-x:auto}.calendar-free{margin:10px}.schedule-period{flex-wrap:wrap}.schedule-form-row{grid-template-columns:1fr}.chat-layout{min-height:450px;max-height:calc(100dvh - 245px);display:flex}.chat-sidebar{border:0;width:100%}.chat-placeholder,.chat-layout.has-active .chat-sidebar{display:none}.chat-thread{width:100%}.chat-back{display:inline-flex}.chat-messages{padding:12px}.chat-compose{padding:10px}.schedule-filters select{max-width:100%}.schedule-page,.chat-page{padding:18px}.chat-message{max-width:94%}}@media (prefers-reduced-motion:reduce){.calendar-lesson{transition:none}.calendar-lesson:hover{transform:none}}
.app-header{flex-shrink:0;gap:18px;min-width:0}.main-nav{gap:3px;min-width:0}.main-nav button{white-space:nowrap;padding-inline:10px}.account-button{flex-shrink:0;min-width:0}.service-menu{z-index:30;flex-shrink:0;position:relative}.service-menu>summary{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:var(--surface);-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;list-style:none;display:flex}.service-menu>summary::-webkit-details-marker{display:none}.service-menu>summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.service-menu[open]>summary{background:var(--raised)}.service-menu-panel{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:5px;width:235px;padding:12px;display:grid;position:absolute;top:calc(100% + 9px);right:0;box-shadow:0 15px 45px #0003}.service-menu-panel>small{color:var(--muted);padding:5px 8px 9px;font-size:11px}.service-menu-panel .board-link{min-width:0;display:block}.service-menu-panel .board-link>button{width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;justify-content:flex-start;gap:10px;padding:11px 10px;font-size:13px;display:flex}.service-menu-panel .board-link>button:hover{background:var(--raised)}.service-menu-panel .board-link small{white-space:normal;display:block}.plan-toolbar{flex-wrap:wrap;gap:16px;min-width:0}.plan-toolbar>.secondary{border-radius:10px;margin-left:auto;padding:9px 13px;font-size:13px}.plan-owner{min-width:0}@media (max-width:1350px){.app-header{gap:12px;padding-inline:18px}.app-header .account-button>span:last-child{display:none}}@media (max-width:850px){.app-header{flex-wrap:wrap;gap:10px;height:auto;min-height:66px;padding:10px 14px}.app-header .main-nav{scrollbar-width:none;flex:0 0 100%;order:10;overflow-x:auto}.app-header .main-nav button{flex-shrink:0}.app-header .service-menu{margin-left:auto}.app-header .account-button{margin-left:0}.plan-toolbar{gap:10px;padding:12px}.plan-toolbar .plan-owner{flex:1}.plan-toolbar>.secondary{margin-left:0}}.student-tools{border:1px solid var(--line);background:var(--surface);border-radius:13px;flex-shrink:0;align-items:center;gap:3px;padding:4px;display:flex}.student-tools .board-link{display:block;position:relative}.student-tools .board-link>button,.student-tools>.secondary{min-height:34px;box-shadow:none;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:8px 11px;font-size:13px;transition:background .15s,color .15s;display:flex}.student-tools .board-link>button:hover,.student-tools>.secondary:hover{color:var(--ink);background:var(--raised);transform:none}.student-tools>.secondary{border-left:1px solid var(--line);color:var(--blue);border-radius:0 9px 9px 0;margin-left:3px}.student-tools .board-link>small{z-index:50;background:var(--surface);border:1px solid var(--line);white-space:normal;border-radius:10px;width:240px;padding:10px;position:absolute;top:100%;right:0}.plan-toolbar .plan-owner{margin-right:auto}.plan-toolbar .zoom-control{margin-left:0}.plan-toolbar .student-tools{order:2}.teacher-workspace-heading{justify-content:space-between;align-items:center;gap:24px;margin:12px 0 32px;display:flex}.teacher-workspace-heading h1{letter-spacing:-1px;margin:10px 0;font-size:32px}.teacher-workspace-heading p{color:var(--muted);margin:0;font-size:14px}.teacher-workspace-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-workspace-actions .secondary{padding:10px 13px;font-size:13px}.student-roster{border:1px solid var(--line);background:var(--surface);border-radius:18px;overflow:hidden}.student-roster-row{border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:18px 20px;display:flex}.student-roster-row:last-child{border-bottom:0}.student-roster-identity{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:13px;min-width:0;padding:4px 0;display:flex}.student-roster-identity>.avatar{border-radius:15px;flex:none;width:46px;height:46px;font-size:26px}.student-roster-identity>span:nth-child(2){gap:5px;min-width:0;display:grid}.student-roster-identity strong{font-size:15px;font-weight:600}.student-roster-identity small{color:var(--muted);text-overflow:ellipsis;font-size:12px;overflow:hidden}.student-roster-identity>svg{color:var(--muted);flex:none;margin-left:8px}.student-roster-identity:hover strong{color:var(--blue)}.student-roster-status{min-width:110px;color:var(--muted);font-variant-numeric:tabular-nums;gap:7px;font-size:12px;display:grid}.student-roster-status .request-pill{padding:4px 7px;font-size:11px}.modal:has(>.activity-report){scrollbar-gutter:stable;width:min(900px,100vw - 32px);height:min(760px,100dvh - 48px);max-height:calc(100dvh - 48px)}.modal:has(>.activity-report)>.modal-heading{background:var(--surface);border-bottom:1px solid var(--line);padding:18px 24px}.modal:has(>.activity-report)>.modal-heading h2{letter-spacing:-.3px;font-size:18px}.modal>.activity-report{padding:20px 24px}.activity-report .study-time{background:0 0;border:0;border-radius:0;margin:0;padding:0}.activity-report .study-time>header h3{align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.activity-report .study-time>header p{margin:5px 0 0;font-size:12px}.activity-range-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.activity-range-caption{color:var(--muted);font-size:11px}.study-time-presets{background:var(--raised);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:flex}.study-time-presets button{color:var(--muted);box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:7px;min-height:32px;padding:6px 10px;font-size:12px}.study-time-presets button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0001}.activity-report .study-time-filter{gap:10px;margin:12px 0}.study-loading-state{height:20px;color:var(--muted);padding-top:4px;font-size:11px}.study-loading-placeholder{background:var(--raised);border-radius:10px;height:200px;margin:16px 0}.activity-view-tabs{border-bottom:1px solid var(--line);gap:20px;display:flex}.activity-view-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:12px 0;font-size:13px;position:relative}.activity-view-tabs button[aria-pressed=true]{color:var(--blue)}.activity-view-tabs button[aria-pressed=true]:after{content:"";background:var(--blue);border-radius:2px;height:2px;position:absolute;inset:auto 0 -1px}.activity-view-body{min-height:265px}.activity-metrics{flex-wrap:wrap;gap:28px;margin-bottom:6px;padding:18px 0;display:flex}.activity-metrics>div{gap:6px;display:grid}.activity-metrics span{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.activity-metrics strong{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.activity-metric-total{border-right:1px solid var(--line);padding-right:24px}.activity-metric-total strong{color:var(--blue)}.activity-dot{background:#7299ef;border-radius:50%;width:6px;height:6px;display:inline-block}.activity-dot.problem{background:#b48ce2}.activity-dot.ide{background:#65b8b0}.activity-dot.board{background:#d58daa}.activity-report .study-activity-days{border-bottom:1px solid var(--line);gap:0;margin:0}.activity-report .study-time details{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0}.activity-report .study-activity-day>summary{gap:10px;padding:12px 2px}.activity-report .study-activity-day>summary>span{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.activity-report .study-time summary strong,.activity-report .study-time summary b{font-size:13px}.activity-report .study-activity-list{padding:0 0 12px}.activity-report .study-activity-entry{gap:14px;padding:11px 8px}.activity-report .study-activity-description{gap:3px}.activity-report .study-activity-description strong{font-size:13px;font-weight:500}.activity-report .study-activity-gap{padding:9px 8px}.activity-report .study-time-resources{gap:0}.activity-report .study-time-resources summary{padding:12px 2px}.activity-daily-table{padding:0}.activity-report .study-time-empty{color:var(--muted);max-width:500px;padding:26px 8px;line-height:1.7}.activity-report .study-time-method{margin-top:16px}.activity-report .study-time-method>summary{color:var(--muted);padding:12px 0;font-size:12px}.activity-report .study-time-method .study-time-note{margin:0 0 12px}.activity-results{border-top:1px solid var(--line);margin-top:4px;padding-top:12px}.activity-results>summary{cursor:pointer;color:var(--muted);padding:4px 0;font-size:12px}.activity-results .student-insights{padding:0}.activity-results .insight-stats{flex-wrap:wrap;gap:20px;margin:18px 0;display:flex}.activity-results .insight-stats>div{background:0 0;border:0;border-radius:0;flex:1;min-width:105px;padding:0}.activity-results .insight-stats strong{letter-spacing:0;font-size:18px}.activity-results .insight-stats span{font-size:11px}@media (max-width:1100px){.student-roster-row{flex-wrap:wrap;gap:16px}.student-roster-status{min-width:90px}.plan-toolbar .student-tools{margin-left:auto}}@media (max-width:650px){.teacher-workspace-heading{flex-direction:column;align-items:flex-start;gap:16px}.student-roster-row{padding:14px}.student-roster-identity{flex-basis:65%}.student-roster-status{min-width:0}.student-roster-row .student-tools{width:100%}.student-tools .board-link{flex:1}.student-tools .board-link>button{width:100%}.student-tools>.secondary{flex:1}.plan-toolbar .student-tools{width:100%}.activity-metrics{gap:18px}.activity-metric-total{padding-right:15px}.modal>.activity-report{padding:16px}.modal:has(>.activity-report)>.modal-heading{padding:14px 16px}.activity-view-tabs{gap:18px}.activity-range-caption{width:100%}.activity-report .study-activity-entry{grid-template-columns:minmax(0,1fr) auto}.activity-report .study-activity-time{grid-column:1/-1}.activity-report .study-activity-day>summary>span{flex-direction:column;align-items:flex-start;gap:4px}}.teaching-access-panel{border:1px solid var(--line);background:var(--panel);border-radius:20px;margin:24px 0;padding:24px}.teaching-access-panel>label{gap:8px;max-width:460px;display:grid}.teaching-access-panel select{background:var(--panel);color:inherit;border-radius:10px;padding:10px}.teaching-students{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;max-height:320px;margin:20px 0;display:grid;overflow:auto}.teaching-students label{border:1px solid var(--line);cursor:pointer;border-radius:12px;flex-direction:row;justify-content:flex-start;align-items:center;gap:12px;padding:12px 14px;display:flex}.teaching-students label:has(input:checked){background:#6375ef17;border-color:#6375ef}.teaching-students input{accent-color:#6375ef;flex:none;width:18px;height:18px;margin:0}
