:root{color-scheme:light;--bg:#f5f5f7;--surface:#fff;--text:#1d1d1f;--muted:#6e6e73;--line:#e7e7eb;--blue:#006bd6;--blue-soft:#eaf3ff;--sidebar:#fbfbfd;--code:#f5f6f8;--green:#167348;--green-soft:#eaf8ef;--red:#b52d32;--red-soft:#fff0f0;--shadow:0 4px 25px #00000004;--amber:#946000;--amber-soft:#fff6df}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a{touch-action:manipulation}a{color:var(--blue);text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #64aaff;outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:2.65rem;letter-spacing:-.055em;line-height:1.12;font-weight:650}h2{font-size:1.45rem;letter-spacing:-.03em;line-height:1.25;font-weight:650}h3{font-size:1.07rem;letter-spacing:-.02em;font-weight:600}p{line-height:1.65}.muted{color:var(--muted)}.small{font-size:.875rem}.label{font-size:.75rem;font-weight:600;letter-spacing:.09em;color:var(--muted)}.sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:var(--sidebar);border-right:1px solid var(--line);padding:32px 18px 24px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;color:var(--text);margin:0 10px 42px;font-size:1.06rem;letter-spacing:-.025em;font-weight:600}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--text);color:var(--surface);font-size:1rem;font-weight:700;letter-spacing:-.08em}.brand small{display:block;font-size:.75rem;letter-spacing:.1em;margin-top:4px;color:var(--muted);font-weight:500}.sidebar-section{font-size:.75rem;font-weight:600;letter-spacing:.1em;color:var(--muted);padding:0 13px 12px}nav{display:flex;flex-direction:column;gap:5px}.nav-link{display:flex;align-items:center;gap:11px;color:var(--muted);padding:11px 13px;border-radius:10px;font-size:.9rem;font-weight:500}.nav-link.active{color:var(--blue);background:var(--blue-soft)}.nav-link:hover{background:var(--line)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sidebar-bottom{margin-top:auto;padding:24px 13px 0;font-size:.78rem;color:var(--muted)}.sidebar-bottom strong{display:block;color:var(--text);font-size:.9rem;margin:8px 0 3px;font-weight:550}.sidebar-bottom p{margin-top:25px;padding-top:20px;border-top:1px solid var(--line);font-size:.75rem;line-height:1.8}.workspace{margin-left:235px}.topbar{height:75px;display:flex;justify-content:space-between;align-items:center;padding:0 42px;border-bottom:1px solid var(--line);background:var(--sidebar)}.topbar-course{font-size:.75rem;letter-spacing:.1em;color:var(--muted);font-weight:600}.topbar-course span{margin:0 12px;color:#c6c6ca}.topbar-right{display:flex;align-items:center;gap:20px;font-size:.76rem;color:var(--muted)}.icon-button{display:grid;place-items:center;padding:8px;background:transparent;color:var(--muted);border-radius:9px}.icon-button:hover{background:var(--line)}main{max-width:1210px;margin:auto;padding:45px 42px 60px;min-height:calc(100vh - 150px)}footer{max-width:1210px;margin:auto;padding:0 42px 24px;font-size:.75rem;color:var(--muted)}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px}.page-heading p{margin-top:12px;color:var(--muted);max-width:650px;font-size:.98rem}.eyebrow{color:var(--blue);font-size:.75rem;font-weight:600;letter-spacing:.07em;margin-bottom:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 21px;min-height:44px;border-radius:999px;background:var(--blue);color:#fff;font-weight:500;font-size:.9rem;white-space:nowrap}.button:hover{filter:brightness(.94)}.button.secondary{background:var(--surface);border:1px solid var(--line);color:var(--text)}.button.soft{background:var(--blue-soft);color:var(--blue)}.button.ghost{background:transparent;color:var(--blue);padding-left:0}.button.danger{background:var(--red);color:#fff}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.feature-grid{display:grid;grid-template-columns:1.75fr 1fr;gap:20px;margin-bottom:26px}.exam-feature{padding:29px 32px;background:#142742;color:#fff;border-color:transparent;position:relative;overflow:hidden}.exam-feature .label{color:#aabbd1}.exam-feature h2{font-size:1.9rem;letter-spacing:-.035em;margin:15px 0 12px;max-width:370px}.exam-feature p{color:#bdcce0;font-size:.88rem;max-width:380px}.exam-feature .button{background:#fff;color:#142742;margin-top:24px}.exam-meta{display:flex;gap:22px;margin-top:20px;font-size:.8rem;color:#dce6f4}.exam-meta strong{font-size:1.05rem;font-weight:600;color:#fff;margin-right:4px}.next-card{padding:28px;display:flex;flex-direction:column;justify-content:space-between}.next-icon{width:45px;height:45px;border-radius:14px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin-bottom:20px}.next-card h3{font-size:1.15rem;margin:7px 0 12px}.next-card p{font-size:.88rem;color:var(--muted)}.next-card a{font-size:.88rem;font-weight:500;margin-top:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:36px}.stat{background:var(--surface);padding:19px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.stat span{color:var(--muted);font-size:.8rem}.stat strong{font-size:1.45rem;letter-spacing:-.04em;font-weight:600}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 17px}.section-heading h2{font-size:1.15rem}.section-heading a{font-size:.85rem}.units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.unit-card{padding:20px 22px;display:flex;gap:17px;align-items:center;color:var(--text);transition:transform .15s,border-color .15s}.unit-card:hover{border-color:#bacfe5;transform:translateY(-2px)}.unit-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:var(--code);color:var(--blue);font:600 .9rem ui-monospace,SFMono-Regular,Menlo,monospace;flex-shrink:0}.unit-info{flex:1;min-width:0}.unit-info h3{font-size:.97rem}.unit-info p{font-size:.77rem;color:var(--muted);margin-top:5px}.unit-info .meter{margin-top:12px}.unit-card .unit-count{font-size:.75rem;color:var(--muted);text-align:right;white-space:nowrap}.meter{height:4px;border-radius:4px;background:var(--line);overflow:hidden}.meter i{display:block;height:100%;background:var(--blue);border-radius:4px}.notice{padding:15px 19px;border-radius:12px;background:var(--blue-soft);color:var(--blue);font-size:.875rem;line-height:1.6;margin:20px 0}.notice.amber{background:var(--amber-soft);color:var(--amber)}.exam-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mock-card{padding:26px}.mock-letter{font-size:2.6rem;line-height:1;font-weight:650;letter-spacing:-.07em;color:var(--blue);margin:20px 0 14px}.mock-card p{font-size:.87rem;color:var(--muted);margin:12px 0 22px}.mock-card .button{width:100%}.row{display:flex;justify-content:space-between;align-items:center;gap:18px}.spaced{margin-top:22px}.details-card{padding:27px 30px;margin:20px 0}.details-card p{font-size:.93rem;color:var(--muted);margin:12px 0}.details-card ul{margin:15px 0 0;padding-left:20px;color:var(--muted);font-size:.93rem;line-height:1.8}.topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.chip{padding:5px 10px;font-size:.75rem;color:var(--muted);background:var(--code);border-radius:6px}.resume{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:18px 22px;margin-bottom:22px;border-color:#afcfee}.resume p{font-size:.82rem;color:var(--muted)}.quiz-top{position:sticky;top:0;z-index:5;background:var(--bg);padding:5px 0 17px;margin-top:-6px}.quiz-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 13px}.quiz-toolbar h1{font-size:1.65rem;letter-spacing:-.04em}.timer{font:600 1.3rem ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;display:flex;gap:9px;align-items:center;background:var(--surface);border:1px solid var(--line);padding:9px 15px;border-radius:12px}.timer.warning{color:var(--red);border-color:var(--red)}.quiz-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:.8rem;margin-bottom:11px}.quiz-top .meter{height:5px}.question{margin:0 0 18px;padding:27px 30px;scroll-margin-top:200px}.question-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:.76rem;color:var(--muted)}.question-head strong{color:var(--blue);font-weight:600}.question h2{font-size:1.08rem;letter-spacing:-.015em;line-height:1.5;margin-bottom:18px;font-weight:550}.question-type{font-size:.76rem;color:var(--muted);margin-bottom:11px}.options{display:grid;gap:8px}.option{position:relative;display:flex;align-items:center;gap:12px;min-height:47px;padding:12px 15px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:.93rem;cursor:pointer;line-height:1.55;overflow-wrap:anywhere}.option:hover{background:var(--code)}.option.selected{border-color:#87b8eb;background:var(--blue-soft)}.option input{width:17px;height:17px;accent-color:var(--blue);margin:0;flex-shrink:0}.option .option-letter{color:var(--muted);font:500 .75rem ui-monospace,SFMono-Regular,Menlo,monospace;flex-shrink:0}.option.correct{background:var(--green-soft);border-color:#81bf9b}.option.incorrect{background:var(--red-soft);border-color:#deaaaa}.option.disabled{cursor:default}.option.disabled input{opacity:.75}.option .mark{margin-left:auto;color:var(--green);font-weight:600;font-size:.78rem;white-space:nowrap}.option.incorrect .mark{color:var(--red)}pre{background:var(--code);border:1px solid var(--line);padding:19px 21px;border-radius:11px;font-size:.85rem;line-height:1.65;overflow:auto;margin:0 0 20px;tab-size:4;color:var(--text)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.feedback{margin-top:20px;padding:19px 20px;border-radius:12px;background:var(--code);font-size:.9rem}.feedback strong{display:block;color:var(--green);margin-bottom:8px}.feedback.wrong strong{color:var(--red)}.feedback p{margin-bottom:12px}.source{font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}.check-row{display:flex;justify-content:flex-end;margin-top:15px}.page-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}.page-controls .buttons{display:flex;gap:10px}.page-controls small{color:var(--muted);font-size:.8rem}.locked-note{font-size:.8rem;color:var(--muted);margin:0 0 15px}.score-card{padding:34px;display:grid;grid-template-columns:1fr 1.7fr;gap:36px;align-items:center}.score-number{font-size:4.5rem;font-weight:650;letter-spacing:-.075em;line-height:1.15}.score-number small{font-size:1.5rem;color:var(--muted);font-weight:400;letter-spacing:-.03em;margin-left:9px}.score-card p{color:var(--muted);font-size:.9rem;margin-top:12px}.score-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}.breakdown{padding:25px 30px;margin:22px 0}.breakdown-row{display:grid;grid-template-columns:1.2fr 1fr 52px;align-items:center;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.875rem}.breakdown-row:last-child{border:0}.breakdown-row span:last-child{text-align:right;font-variant-numeric:tabular-nums}.filter-row{display:flex;gap:8px;margin:22px 0}.filter-button{background:var(--surface);color:var(--muted);border:1px solid var(--line);padding:8px 15px;border-radius:999px;font-size:.82rem}.filter-button.active{background:var(--blue-soft);color:var(--blue);border-color:#a8cbef}.empty{padding:54px 32px;text-align:center}.empty svg{width:33px;height:33px;color:var(--blue);margin-bottom:17px}.empty p{color:var(--muted);font-size:.9rem;max-width:440px;margin:12px auto 24px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 24px;margin-bottom:10px}.history-row p{color:var(--muted);font-size:.8rem;margin-top:5px}.history-score{font-size:1.5rem;font-weight:600;letter-spacing:-.05em;min-width:65px;text-align:right}.history-meta{display:flex;align-items:center;gap:23px}.source-list{list-style:none;padding:0;margin:0}.source-list li{padding:16px 0;border-bottom:1px solid var(--line);font-size:.875rem}.source-list li:last-child{border:0}.source-list span{display:block;font-size:.78rem;color:var(--muted);margin-top:5px}.study-days{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.study-day{padding:25px}.study-day .label{color:var(--blue)}.study-day h2{margin:15px 0;font-size:1.25rem}.study-day ol{padding-left:19px;color:var(--muted);font-size:.875rem;line-height:1.9}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.backup-actions{display:flex;flex-wrap:wrap;gap:10px}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--surface);padding:12px}.skip:focus{top:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--text);color:var(--surface);padding:12px 20px;border-radius:13px;z-index:50;font-size:.85rem;box-shadow:0 8px 30px #0002;transition:transform .2s,opacity .2s;opacity:0;visibility:hidden;max-width:90vw}.toast.show{transform:translateX(-50%) translateY(0);opacity:1;visibility:visible}dialog{border:1px solid var(--line);border-radius:24px;padding:30px;max-width:490px;width:calc(100% - 32px);background:var(--surface);color:var(--text);box-shadow:0 30px 100px #0003}dialog::backdrop{background:#11182765;backdrop-filter:blur(4px)}dialog h2{margin:8px 0 15px}dialog p{color:var(--muted);font-size:.92rem}dialog .dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:27px;flex-wrap:wrap}dialog .dialog-icon{color:var(--blue)}.end-time{font-size:.8rem;color:var(--muted);margin-top:12px}.mobile-brand{display:none}.storage-warning{color:var(--red)!important}
body.dark{color-scheme:dark;--bg:#131416;--surface:#1d1f23;--text:#f5f5f7;--muted:#a2a4ab;--line:#303239;--blue:#65acfa;--blue-soft:#1b314c;--sidebar:#18191c;--code:#24262b;--green:#75d99f;--green-soft:#173c2b;--red:#ff8d92;--red-soft:#48272b;--amber:#ecc27a;--amber-soft:#3e331e;--shadow:none}.dark .button:not(.secondary):not(.soft):not(.ghost){background:#1778db;color:#fff}.dark .exam-feature .button{background:#fff!important;color:#142742!important}
@media(min-width:1450px){main{padding-top:55px}.feature-grid{grid-template-columns:1.85fr 1fr}.exam-feature{padding:34px 36px}.exam-feature h2{font-size:2.15rem}}
@media(max-width:1100px){.sidebar{width:210px}.workspace{margin-left:210px}.topbar{padding:0 28px}main{padding:35px 28px 50px}footer{padding-left:28px}.feature-grid{grid-template-columns:1.4fr 1fr}.exam-meta{gap:12px}.exam-cards{gap:12px}.mock-card{padding:20px}.stat{padding:16px}.study-days{grid-template-columns:1fr}.unit-card{padding:18px}.score-card{grid-template-columns:1fr 1.4fr}.next-card{padding:24px}}
@media(max-width:800px){.sidebar{position:relative;width:auto;padding:18px 20px 12px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 17px;font-size:1rem}.brand small{display:none}.brand-mark{height:35px;width:38px;border-radius:10px}.sidebar-section,.sidebar-bottom{display:none}nav{display:flex;flex-direction:row;overflow:auto;gap:5px}.nav-link{white-space:nowrap;padding:8px 12px;font-size:.82rem}.nav-link svg{width:16px;height:16px}.workspace{margin:0}.topbar{height:52px;padding:0 22px}.topbar-right{font-size:.75rem;gap:10px}.topbar-course{font-size:.75rem}main{padding:30px 22px 45px}footer{padding:0 22px 25px;font-size:.75rem}.page-heading{margin-bottom:25px}h1{font-size:2.2rem}.feature-grid{grid-template-columns:1.5fr 1fr;gap:13px}.exam-feature{padding:25px}.next-card{padding:22px}.exam-feature h2{font-size:1.7rem}.stat{display:block;padding:15px 18px}.stat strong{display:block;margin-top:6px}.stats{margin-bottom:28px}.score-card{gap:22px}.question{padding:24px}.exam-meta{gap:15px;flex-wrap:wrap}.quiz-top{margin-top:0}.page-controls{align-items:flex-start;flex-wrap:wrap}.two-col{grid-template-columns:1fr}}
@media(max-width:580px){main{padding:28px 17px 40px}.topbar{padding:0 17px}.topbar-course span{margin:0 5px}.topbar-right #save-status{max-width:155px;line-height:1.3;text-align:right}h1{font-size:2rem}.page-heading{display:block}.page-heading .button{margin-top:18px}.feature-grid{grid-template-columns:1fr}.next-card{padding:23px;display:block}.next-icon{float:left;width:39px;height:39px;margin:1px 14px 0 0}.next-card h3{font-size:1.05rem}.next-card p{clear:both;padding-top:6px}.stats .stat{padding:14px 12px}.stat span{font-size:.75rem}.stat strong{font-size:1.3rem}.units{grid-template-columns:1fr}.unit-card{padding:19px 18px}.exam-cards{grid-template-columns:1fr}.mock-card{display:grid;grid-template-columns:56px 1fr;column-gap:14px;padding:23px}.mock-letter{grid-row:1/4;margin:0}.mock-card .label{grid-column:2}.mock-card p{grid-column:2;margin:7px 0 17px}.mock-card .button{grid-column:2;max-width:190px}.mock-card h3{grid-column:2}.details-card{padding:23px}.quiz-toolbar{align-items:flex-start}.quiz-toolbar h1{font-size:1.35rem;padding-top:6px}.timer{font-size:1.12rem;padding:8px 10px}.timer svg{width:16px;height:16px}.quiz-meta{font-size:.75rem}.question{padding:22px 18px;border-radius:17px}.question-head{font-size:.75rem;gap:10px}.question-head span{max-width:55%;text-align:right}.question h2{font-size:1.02rem}.option{padding:11px 12px;font-size:.88rem;gap:8px}.option .option-letter{display:none}.option .mark{font-size:.75rem;white-space:normal}.feedback{padding:17px 15px}.page-controls .buttons{width:100%;justify-content:space-between}.score-card{display:block;padding:28px}.score-number{font-size:3.7rem}.score-card h2{margin-top:20px}.breakdown{padding:20px}.breakdown-row{grid-template-columns:1fr 68px;gap:15px}.breakdown-row .meter{display:none}.resume{align-items:flex-start;flex-direction:column}.history-row{padding:19px}.history-meta{gap:12px}.history-meta .button{padding:8px 14px}.history-score{font-size:1.15rem;min-width:auto}.row{align-items:flex-start;flex-wrap:wrap}.source{font-size:.75rem}.button{padding:10px 18px}.filter-row{flex-wrap:wrap}.study-days{gap:12px}pre{padding:16px;font-size:.78rem}.end-time{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Personal wallpaper with a quiet veil and opaque question panels. */
body{position:relative;isolation:isolate;min-height:100vh;background:linear-gradient(to bottom,#dce6ea 0,#e0e7e3 1100px,#e0e7e3 100%);--muted:#50575e;--sidebar:rgba(251,251,253,.94)}
body::before{content:"";position:absolute;top:0;left:0;right:0;height:max(100vh,1100px);z-index:0;pointer-events:none;background-image:url("assets/571_test1.png");background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.30;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 70%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 70%,transparent)}
.workspace{position:relative;z-index:1}
.sidebar,.topbar{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.brand-mark{width:48px;height:48px;flex:0 0 48px;background:#1d1d1f;border-radius:14px;padding:2px;letter-spacing:normal}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.quiz-top{background:var(--surface);padding:15px 20px 17px;margin-bottom:18px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
body.dark{background:linear-gradient(to bottom,#19262e,#1d2b26 1100px,#1d2b26);--sidebar:rgba(24,25,28,.94);--muted:#b9c0c7}
body.dark::before{opacity:.32}
@media(max-width:800px){.brand-mark{width:42px;height:42px;flex-basis:42px;border-radius:12px}.quiz-top{padding:11px 15px 15px}}

/* Detailed learning is available for correct and missed answers alike. */
.heading-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.feedback .answer-why{font-size:.8rem;font-weight:600;margin:12px 0 7px;color:var(--text)}
.knowledge{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.knowledge h3{margin:7px 0 13px;font-size:1.05rem;color:var(--text)}
.concept-list{padding-left:21px;margin:0 0 21px;line-height:1.75}
.concept-list li{margin-bottom:9px;padding-left:3px}
.knowledge h4{font-size:.8rem;font-weight:650;margin:0 0 9px;color:var(--text)}
.common-trap{padding:16px 18px;background:var(--amber-soft);border-left:3px solid var(--amber);border-radius:0 10px 10px 0;margin:18px 0}
.common-trap p{margin-bottom:0}
.worked-example{margin-top:20px}
.worked-example pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
.recall-check{margin:22px 0 17px;padding:17px 19px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.recall-check p{margin-bottom:9px}
.recall-check summary{font-size:.85rem;color:var(--blue);cursor:pointer;width:fit-content;padding:4px 0}
.recall-check details[open] p{margin-top:11px;margin-bottom:0}
.topic-source{line-height:1.8}
.review-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 22px}
.review-filters .filter-row{margin:0}
.review-unit-filter,.page-select-label{display:flex;align-items:center;gap:9px;font-size:.82rem;color:var(--muted)}
.review-unit-filter select,.page-select-label select{font-size:.85rem;max-width:250px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--surface)}
select:focus-visible{outline:3px solid #64aaff;outline-offset:3px}
.review-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 23px;font-size:.82rem;color:var(--muted)}
.review-pager-controls{display:flex;align-items:center;gap:10px}
.review-pager .button{padding:9px 16px}
#review-start{scroll-margin-top:22px}
@media(max-width:580px){.heading-actions{justify-content:flex-start;margin-top:17px}.heading-actions .button{margin-top:0}.knowledge{padding-top:19px}.common-trap,.recall-check{padding:15px}.review-filters{display:block}.review-unit-filter{margin-top:15px}.review-unit-filter select{max-width:calc(100vw - 90px)}.review-pager{align-items:flex-start;flex-direction:column}.review-pager-controls{width:100%;justify-content:space-between;gap:7px}.review-pager .button{padding:9px 13px}.page-select-label{gap:6px}.page-select-label select{padding:9px 8px}.worked-example pre{font-size:.8rem}}

/* Transparent emblem, course workspaces, and a calm daily agenda. */
.brand-mark{background:transparent;border:0;border-radius:0;padding:0;width:64px;height:44px;flex:0 0 64px;overflow:visible}
.brand-mark img{width:64px;height:64px;max-width:none;object-fit:contain}
.brand{gap:8px;margin-left:2px;margin-right:0}.brand small{font-size:.63rem;letter-spacing:.07em}
.topbar-course{letter-spacing:.035em;max-width:54%;line-height:1.4}
.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:35px 0}
.course-tile{display:flex;flex-direction:column;padding:32px;color:var(--text);min-height:310px;transition:transform .18s,box-shadow .18s}
.course-tile:hover{transform:translateY(-3px);box-shadow:0 12px 35px #0000000c}
.course-emblem{background:var(--blue-soft);color:var(--blue);font-size:1.5rem;font-weight:600;width:56px;height:56px;display:grid;place-items:center;border-radius:16px;margin-bottom:25px}
.course-tile h2{margin:10px 0 14px;line-height:1.35}.course-tile p{color:var(--muted);font-size:.9rem;margin-bottom:28px}.course-open{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:var(--blue);font-weight:500;font-size:.9rem}
.learning-track{margin:25px 0 34px}.track-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}.track-heading p{font-size:.8rem;color:var(--muted);margin-top:3px}.track-dot{width:10px;height:10px;border-radius:50%;background:#3c83d7;flex-shrink:0}.track-dot.purple{background:#9266cf}.track-dot.orange{background:#e6a147}.track-dot.green{background:#5b9c79}.track-dot.pink{background:#d47f96}
.language-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin:22px 0;font-size:.87rem;font-weight:550}
.language-bar small{display:block;color:var(--muted);font-weight:400;font-size:.76rem;margin-top:2px}
.language-bar select{border:1px solid var(--line);border-radius:9px;background:var(--code);color:var(--text);padding:8px 10px;max-width:100%;font-size:.83rem}
.explanation-zh{font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei",sans-serif;letter-spacing:.015em;line-height:1.85}
.feedback .explanation-zh{color:var(--text)}.explanation-en+.explanation-zh{margin-top:7px}.knowledge h3.explanation-zh{margin-top:-6px;font-weight:500;font-size:.97rem;color:var(--muted)}
.concept-list.explanation-zh{padding-top:16px;border-top:1px dashed var(--line)}.feedback .worked-example p{margin-top:13px}
.stamp-shelf{display:flex;align-items:center;flex-wrap:wrap;gap:13px}.stamp-shelf>span{display:grid;place-items:center;min-width:44px;height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface);font-size:1.6rem}.stamp-shelf .stamp-empty{background:transparent;font-size:2.5rem;color:var(--muted);border:0}.stats+.stamp-shelf{margin-top:-15px;margin-bottom:30px}
.calendar-intro{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 28px;margin-bottom:18px}.calendar-intro h2{margin:6px 0 10px;font-size:1.35rem}.calendar-intro p{font-size:.85rem;color:var(--muted);max-width:610px}.calendar-intro .stamp-shelf{max-width:260px;justify-content:flex-end}.calendar-note{font-size:.84rem;color:var(--muted);margin:18px 0 25px;max-width:850px}
.calendar-tabs{display:flex;gap:10px;overflow:auto;padding:2px 0 16px;margin-bottom:7px}.calendar-tab{min-width:86px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--muted);padding:12px 17px;display:flex;flex-direction:column;align-items:center;gap:4px}.calendar-tab span{font-size:.75rem}.calendar-tab strong{font-size:1.6rem;font-weight:550;line-height:1.25}.calendar-tab small{font-size:.75rem;min-height:18px}.calendar-tab.active{background:var(--blue);color:white;border-color:transparent;box-shadow:0 3px 12px #006bd627}.calendar-tab:hover:not(.active){background:var(--blue-soft);color:var(--blue)}
.calendar-agenda{padding:27px 28px}.agenda-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:19px;border-bottom:1px solid var(--line)}.agenda-heading h2{font-size:1.2rem}.day-part{display:flex;gap:12px;align-items:center;margin:27px 0 14px;font-size:.75rem;font-weight:550;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.day-part:after{content:"";height:1px;background:var(--line);flex:1}.calendar-row{display:grid;grid-template-columns:85px minmax(0,1fr);gap:17px;margin:0 0 16px}.calendar-time{padding-top:14px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;font-size:.83rem}.calendar-time strong{font-weight:550}.calendar-time span{color:var(--muted);font-size:.76rem;margin-top:3px}.calendar-time small{color:var(--muted);font-size:.72rem;margin-top:7px}
.calendar-event{border:1px solid var(--line);border-left:4px solid #70a3de;background:var(--blue-soft);border-radius:12px;padding:17px 20px}.calendar-event.purple{border-left-color:#9870ca;background:#f4effb}.calendar-event.orange{border-left-color:#dfac6a;background:#fff6e9}.calendar-event.green{border-left-color:#71ab8b;background:#edf7f1}.calendar-event.pink{border-left-color:#d297ae;background:#fbeff3}
.calendar-event-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.calendar-event-title h3{padding-top:3px;font-size:1.04rem}.calendar-event p{font-size:.84rem;color:var(--muted);margin:9px 0 14px;max-width:660px}.calendar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px}.calendar-actions a{font-size:.79rem;font-weight:500}.calendar-actions .button{font-size:.8rem;min-height:36px;padding:7px 14px}.calendar-actions .text-button{padding:3px 0;min-height:32px;background:transparent;color:var(--muted);margin-left:auto;border-radius:4px}.calendar-actions .text-button:hover{color:var(--blue)}
.stamp-button{display:flex;flex-direction:column;align-items:center;gap:2px;background:transparent;color:var(--muted);border-radius:10px;min-width:63px;min-height:60px;padding:3px 6px;font-size:1.5rem;flex-shrink:0;transition:transform .2s}.stamp-button small{font-size:.66rem;white-space:nowrap}.stamp-button:hover{background:#ffffff80;transform:scale(1.05)}.stamp-button.earned{font-size:1.9rem;color:var(--green);animation:stamp-in .25s ease-out}.completion-time{display:block;color:var(--muted);font-size:.7rem;margin-top:12px}.calendar-row.completed .calendar-event{border-left-color:var(--green)}.calendar-empty{padding:45px 15px;text-align:center}.calendar-empty p{color:var(--muted);margin-top:10px;font-size:.88rem}
.form-field{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:550;margin:17px 0}.form-field input,.form-field select,.form-field textarea,.notes-area{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--code);color:var(--text);font-size:.9rem;min-width:0;width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field textarea{min-height:80px;resize:vertical}.notes-area{min-height:350px;margin:15px 0;resize:vertical;line-height:1.8;font:inherit}.notes-area:focus{outline:2px solid var(--blue)}
body.dark .calendar-event.purple{background:#302439}body.dark .calendar-event.orange{background:#342a1e}body.dark .calendar-event.green{background:#203429}body.dark .calendar-event.pink{background:#35252d}body.dark .stamp-button:hover{background:#ffffff10}
@keyframes stamp-in{from{transform:scale(.8) rotate(-10deg)}to{transform:scale(1) rotate(0)}}
@media(max-width:1000px){.calendar-intro{display:block}.calendar-intro .stamp-shelf{max-width:none;justify-content:flex-start;margin-top:16px}.course-tile{padding:26px}.course-tile h2{font-size:1.3rem}}
@media(max-width:800px){.brand-mark{width:58px;flex-basis:58px;height:38px}.brand-mark img{width:58px;height:58px}.brand{margin-bottom:10px}.calendar-agenda{padding:22px}.topbar-course{font-size:.68rem}.course-grid{gap:15px}.course-tile{min-height:290px}}
@media(max-width:580px){.course-grid{grid-template-columns:1fr}.course-tile{min-height:280px;padding:27px}.course-tile h2{font-size:1.4rem}.language-bar{align-items:flex-start;flex-direction:column;padding:15px}.language-bar select{width:100%}.calendar-intro{padding:21px}.calendar-tabs{gap:8px}.calendar-tab{min-width:66px;padding:10px 12px}.calendar-agenda{padding:20px 15px}.agenda-heading{align-items:flex-start}.agenda-heading h2{font-size:1.05rem}.agenda-heading .chip{font-size:.6rem;white-space:nowrap;padding:5px 8px}.calendar-row{grid-template-columns:58px minmax(0,1fr);gap:10px}.calendar-time{font-size:.73rem}.calendar-time span{font-size:.65rem}.calendar-time small{font-size:.62rem}.calendar-event{padding:13px 12px}.calendar-event-title{gap:7px}.calendar-event-title h3{font-size:.94rem}.calendar-event p{font-size:.79rem}.stamp-button{min-width:46px;padding:2px;font-size:1.2rem}.stamp-button small{font-size:.57rem}.calendar-actions{gap:8px}.calendar-actions a{font-size:.74rem}.calendar-actions .text-button{margin-left:0}.topbar-course{max-width:43%}.stats .stat strong span{font-size:.67rem}.form-row{grid-template-columns:1fr;gap:0}.completion-time{font-size:.64rem}}

main:focus{outline:none}

.unit-prep-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}
.unit-prep-grid .details-card{margin:0}
.prep-card h2{margin-top:13px}
.prep-card .prep-points{padding-left:21px;margin:25px 0 0;color:var(--text);line-height:1.65}
.prep-points li{padding-left:3px;margin-bottom:17px;overflow-wrap:anywhere}
.prep-points li::marker{color:var(--blue)}
.prep-points p{margin:0;color:var(--text);line-height:1.65}
.prep-points p.explanation-zh{color:var(--muted);font-size:.9rem;line-height:1.8}
.prep-points .explanation-en+.explanation-zh{margin-top:5px}
.prep-actions{display:flex;align-items:center;flex-wrap:wrap;gap:13px 20px;border-top:1px solid var(--line);padding-top:24px;margin-top:25px}
@media(max-width:1100px){.unit-prep-grid{grid-template-columns:minmax(0,1fr) 240px;gap:18px}.unit-prep-grid .details-card{padding:25px}}
@media(max-width:900px){.unit-prep-grid{grid-template-columns:1fr}.unit-prep-grid .details-card{padding:25px 27px}}
@media(max-width:580px){.unit-prep-grid .details-card{padding:23px 22px}.prep-card .prep-points{padding-left:18px}.prep-points li{padding-left:1px}}

.prep-point-row{display:flex;align-items:flex-start;gap:10px}.prep-point-copy{flex:1;min-width:0}
.point-marker{width:36px;min-height:36px;display:grid;place-items:center;background:transparent;color:var(--muted);border-radius:10px;flex-shrink:0;margin-top:-5px}.point-marker svg{width:17px;height:17px}.point-marker:hover{background:var(--amber-soft);color:var(--amber)}.point-marker.marked{background:var(--amber-soft);color:var(--amber)}.point-marker.marked svg{fill:currentColor;stroke-width:1.3}
.prep-card .highlight-hint{font-size:.78rem;margin:12px 0 0;color:var(--muted)}
mark.study-highlight{background:#ffeaa0;color:inherit;border-radius:3px;padding:.06em 0;box-decoration-break:clone;-webkit-box-decoration-break:clone}
body.dark mark.study-highlight{background:#76601f;color:#fff4ce}
.highlight-tools{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 35px #0003;border-radius:999px;padding:7px;max-width:calc(100vw - 24px)}.highlight-tools[hidden]{display:none}.highlight-tools .button{background:#ffe399;color:#473910;font-size:.84rem}.highlight-tools .icon-button{width:34px;height:34px;font-size:1.3rem}
.review-note{font-size:.84rem;color:var(--muted);margin:0 0 25px;max-width:850px}
.mistake-entry,.highlight-entry{padding:25px 28px;margin-bottom:14px}.mistake-entry h3{margin:17px 0 10px;line-height:1.55}.last-miss{margin:14px 0 0;color:var(--muted);font-size:.87rem;overflow-wrap:anywhere}.last-miss strong{font-weight:500;color:var(--text)}.mistake-status{font-size:.73rem;white-space:nowrap;border-radius:999px;padding:5px 10px}.mistake-status.needs{background:var(--amber-soft);color:var(--amber)}.mistake-status.correct{background:var(--green-soft);color:var(--green)}
.entry-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}.entry-actions .button{min-height:39px;font-size:.81rem;padding:9px 16px}
.highlight-filter{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.highlight-entry h3{margin-top:7px}.saved-quote{margin-top:19px}.saved-quote p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.94rem;line-height:1.8;margin-top:7px}.quote-language{font-size:.71rem;color:var(--muted)}
@media(max-width:580px){.point-marker{width:40px;min-height:40px}.prep-point-row{gap:5px}.mistake-entry,.highlight-entry{padding:22px}.mistake-entry .row{align-items:flex-start}.mistake-entry .label{max-width:65%}.review-filters .filter-row{flex-wrap:wrap}.highlight-filter{align-items:flex-end}.highlight-tools{bottom:16px}.highlight-tools .button{padding:10px 13px;font-size:.78rem}}
/* Profiles and a small shared study room. */
.friends-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:22px}.friends-grid .details-card{margin:0}.profile-card{text-align:left}.profile-card #profile-preview{margin:24px 0}.profile-avatar{width:44px;height:44px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:inline-grid;place-items:center;font-size:1.2rem;font-weight:600;flex-shrink:0;overflow:hidden}.profile-avatar.large{width:88px;height:88px;font-size:2rem}.profile-avatar img{display:block;object-fit:cover;width:100%;height:100%}.profile-card .small{font-size:.8rem}.ranking-row{display:flex;align-items:center;gap:15px;padding:19px 10px;border-bottom:1px solid var(--line)}.ranking-row:last-child{border:0}.ranking-row.is-you{background:var(--blue-soft);border-radius:12px}.rank-position{width:30px;text-align:center;font-size:1.25rem}.rank-person{flex:1;min-width:0}.rank-person h3{font-size:.98rem;overflow-wrap:anywhere}.rank-person h3 small{color:var(--blue);font-size:.7rem;margin-left:5px}.rank-person p{font-size:.78rem;margin:4px 0}.rank-score{font-size:1.4rem;font-variant-numeric:tabular-nums;white-space:nowrap}.rank-score small{font-size:.7rem;color:var(--muted);font-weight:400;margin-left:3px}.ranking-empty{padding:45px 15px;text-align:center;color:var(--muted);font-size:.9rem}.shared-mock-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.shared-mock-row:last-child{border:0}.shared-mock-row h3{font-size:.97rem}.shared-mock-row p{font-size:.8rem;margin:4px 0}
@media(max-width:800px){.friends-grid{grid-template-columns:1fr}}
@media(max-width:580px){.ranking-row{gap:9px;padding:17px 8px}.rank-position{width:25px;font-size:1.1rem}.rank-score{font-size:1.1rem}.rank-person h3{font-size:.88rem}.rank-person p{font-size:.7rem}.ranking-row .profile-avatar{width:36px;height:36px}.shared-mock-row{flex-wrap:wrap}}
/* Keep the saved learner identity visible beside the studio emblem. */
.brand-copy{min-width:0}
.brand #brand-subtitle{display:flex;align-items:center;gap:6px;font-size:.72rem;letter-spacing:normal;line-height:1.25}
.brand .profile-avatar{width:22px;height:22px;font-size:.68rem}
.brand-profile-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Shared examples keep the code together while each answer stays independent. */
.shared-case{padding:28px 32px;margin:25px 0 18px;border-top:3px solid var(--blue)}
.shared-case h2{font-size:1.3rem;line-height:1.4;margin:12px 0}
.shared-case p{line-height:1.75;color:var(--muted);margin:0 0 18px}
.shared-case pre{margin:18px 0;white-space:pre;overflow-x:auto}
.shared-case small{display:block;line-height:1.6}
.attempt-path{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0}
.attempt-path span{font-size:.73rem;padding:5px 9px;border:1px solid var(--line);border-radius:7px;color:var(--muted)}
.unit-attempts{max-height:280px;overflow-y:auto;margin:12px 0 24px}
.unit-attempts a{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 2px;color:var(--text);font-size:.9rem}
.unit-attempts small{display:block;font-size:.7rem;color:var(--muted);font-weight:400;margin-top:3px}
.unit-attempts strong{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:580px){.shared-case{padding:23px 20px}.shared-case h2{font-size:1.14rem}}

/* The account view shares the existing study cards and spacing. */
.account-shortcut{font-size:12px;font-weight:600;color:var(--blue);text-decoration:none;white-space:nowrap;padding:8px 10px;border-radius:14px;background:var(--blue-soft)}
.account-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;align-items:start}
.account-identity{display:flex;align-items:center;gap:18px;margin:24px 0 20px;min-width:0}
.account-identity h2{margin:0 0 6px;overflow-wrap:anywhere}
.account-identity p{margin:0;overflow-wrap:anywhere}
.account-card>p{margin:18px 0}
.account-grid .entry-actions{flex-wrap:wrap;margin-top:24px}
.google-signin{margin:22px 0;min-height:44px;max-width:100%;overflow:hidden}
@media(max-width:800px){.account-grid{grid-template-columns:1fr}.account-identity{gap:14px}.topbar-right{gap:8px}.topbar-right #save-status{max-width:130px;font-size:10px;line-height:1.3}.account-shortcut{font-size:11px;padding:8px}.topbar-course{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:420px){.topbar-right #save-status{max-width:92px}.account-identity .profile-avatar.large{flex-shrink:0}.account-grid .details-card{padding:24px}}

.room-sharing-toggle{display:flex;gap:12px;align-items:flex-start;margin:24px 0 12px;font-size:.9rem;font-weight:600;line-height:1.5}
.room-sharing-toggle input{width:18px;height:18px;accent-color:var(--blue);flex-shrink:0;margin:3px 0 0}
.room-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:30px}
.member-progress{padding:25px}.room-person{display:flex;align-items:center;gap:12px;min-width:0}.room-person h3,.room-person p{margin:0}.room-person p{font-size:.77rem;color:var(--muted);margin-top:4px}.room-person h3{font-size:.98rem}.room-person h3 small{color:var(--muted);font-size:.7rem;font-weight:400}.room-person>div{min-width:0;overflow-wrap:anywhere}
.room-progress-meta{display:flex;gap:30px;margin:23px 0}.room-progress-meta strong{font-size:1.7rem;letter-spacing:-.035em}.room-progress-meta small{font-size:.68rem;color:var(--muted);font-weight:400;display:block;letter-spacing:normal;margin-top:3px}
.member-progress details{margin:15px 0}.member-progress summary{cursor:pointer;font-size:.85rem;color:var(--blue)}.room-unit-row{display:flex;gap:18px;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0;font-size:.75rem}.room-unit-row:first-of-type{margin-top:15px}.room-unit-row strong{text-align:right;white-space:nowrap}.room-unit-row small{display:block;font-weight:400;color:var(--muted);font-size:.67rem}
.room-highlights,.room-discussion{margin-bottom:25px}.share-passage-controls{display:flex;gap:12px;align-items:center;margin:25px 0}.share-passage-controls select{min-width:0;flex:1;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:12px;font:inherit;font-size:.8rem}
.room-passage,.discussion-message{padding:24px 0;border-top:1px solid var(--line)}.room-passage blockquote{margin:18px 0;padding:12px 18px;background:#fff7d8;color:#383220;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem;line-height:1.7}.room-empty{padding:22px 0;color:var(--muted)}
.discussion-feed{margin-top:25px}.message-copy{white-space:pre-wrap;overflow-wrap:anywhere}.discussion-composer{border-top:1px solid var(--line);padding-top:24px}.discussion-composer textarea{min-height:110px}.reply-reference{font-size:.75rem;color:var(--muted);background:var(--code);padding:10px 12px;border-radius:10px;margin:12px 0}.room-question{margin:15px 0;padding:15px;border:1px solid var(--line);border-radius:14px}.room-question summary{font-size:.75rem;color:var(--blue);cursor:pointer}.room-question summary span{display:block;color:var(--text);margin-top:6px;font-size:.84rem}.room-question p{font-size:.83rem;margin:12px 0}.room-question-options p{margin:5px 0;color:var(--muted)}.room-question pre{font-size:.77rem;max-height:360px;overflow:auto}.room-sharing{margin-bottom:30px}
@media(max-width:580px){.room-members{grid-template-columns:1fr}.share-passage-controls{flex-direction:column;align-items:stretch}.member-progress{padding:22px}.room-person .profile-avatar{flex-shrink:0}.room-question{padding:12px}.room-discussion .row{gap:14px}}

/* Return to the previous study view without losing its place. */
.page-navigation{align-items:flex-start;margin:0 0 20px;gap:0}
.page-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;max-width:100%;padding:8px 12px 8px 7px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--blue);font-size:.84rem;font-weight:500;line-height:1.4;text-align:left}
.page-back svg{width:18px;height:18px}.page-back:hover{background:var(--blue-soft)}
.question-discussion-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.question-discussion-actions .discuss-button{min-height:44px;padding:11px 17px;background:var(--blue-soft);border:0;color:var(--blue)}
.discussion-return-row{margin:0 0 18px}.discussion-return{background:var(--blue-soft)}
.question:focus{outline:none}
@media(max-width:580px){.page-navigation{margin-bottom:16px}.page-back{font-size:.8rem}.question-discussion-actions{margin-top:22px;padding-top:16px}}

/* Sign-in appears at the start of practice, keeping the public guides open. */
dialog.auth-dialog{width:min(440px,calc(100vw - 32px));padding:30px;box-sizing:border-box}.signin-symbol{display:inline-flex;width:48px;height:48px;border-radius:16px;background:var(--blue-soft);color:var(--blue);align-items:center;justify-content:center;margin-bottom:22px}.signin-symbol svg{width:24px;height:24px}.signin-gate h2{font-size:28px;letter-spacing:-.04em;line-height:1.15;margin:10px 0 14px}.signin-gate>p{line-height:1.6}.signin-context{display:flex;gap:9px;align-items:center;border-radius:12px;padding:12px 14px;margin-top:20px;background:var(--code);font-size:13px;font-weight:600}.signin-context svg{width:17px;height:17px;color:var(--blue)}.signin-benefits{display:grid;gap:11px;margin:22px 0;font-size:14px;color:var(--muted)}.signin-benefits span{display:flex;gap:10px;align-items:center}.signin-benefits svg{width:17px;height:17px;color:var(--blue)}.signin-gate .google-signin{min-height:44px;margin:26px 0 14px;display:flex;justify-content:center}.signin-controls{display:flex;gap:8px;justify-content:center;margin-top:12px}.signin-controls .button{min-height:44px}.signin-gate .signin-footnote{font-size:12px;text-align:center;margin:20px 0 0;color:var(--muted)}.room-welcome{max-width:660px}@media(max-width:440px){dialog.auth-dialog{padding:26px 22px}.signin-gate h2{font-size:26px}}

/* One account-wide stamp and an unobtrusive explanation-language control. */
.language-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:18px 0 22px;color:var(--muted);font-size:12px}.language-button{width:44px;height:44px;border:1px solid var(--line);background:var(--surface);color:var(--blue);border-radius:12px}.language-options{display:grid;gap:10px;margin:24px 0}.language-option{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-align:left;color:var(--text)}.language-option.selected{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.language-option strong{font-size:15px;font-weight:600}.language-option small{display:block;margin-top:4px;font-size:12px;color:var(--muted)}.calendar-stamp-setting{display:inline-flex;align-items:center;gap:9px;padding:8px 15px;min-height:44px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:500}.calendar-stamp-setting>span{font-size:22px}.calendar-goal{font-size:12px!important;font-weight:550;color:var(--muted)!important;margin-top:8px!important}.calendar-goal.goal-met{color:var(--green)!important}.auto-stamp:hover{background:transparent;transform:none}.practice-target{font-size:13px;margin-top:16px!important}.practice-target.target-met{color:var(--green)!important}.shared-attempts{margin:16px 0}.shared-attempt-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.shared-attempt-row strong{font-size:13px;font-weight:550}.shared-attempt-row p{font-size:11px;margin:3px 0;color:var(--muted)}.shared-attempt-score{font-size:16px;font-weight:600;white-space:nowrap;text-align:right}.shared-attempt-score small{display:block;font-size:10px;color:var(--muted);font-weight:400}.shared-attempt-score.passed{color:var(--green)}@media(max-width:580px){.language-tools{margin:14px 0 18px}.heading-actions{flex-wrap:wrap}.calendar-stamp-setting{padding:7px 13px}.shared-attempt-row{gap:12px}}

/* A continuous desktop rail also fills the full-page capture below the viewport. */
body{--rail-width:235px;--rail-surface:#f8f9fb}body::after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--rail-width);background:var(--rail-surface);border-right:1px solid var(--line);z-index:0;pointer-events:none}.sidebar{background:var(--rail-surface)}body.dark{--rail-surface:#18191c}@media(max-width:1100px){body{--rail-width:210px}}@media(max-width:800px){body::after{display:none}}
/* A single Google entry point, with profile edits and backups kept separate. */
.signin-gate{position:relative;text-align:center}.signin-close{position:absolute;top:-14px;right:-14px;width:40px;height:40px;color:var(--muted);background:transparent}.signin-gate .signin-symbol{margin:6px 0 10px}.signin-gate h2{font-size:26px}.signin-gate .signin-controls{margin:0}.signin-gate .signin-footnote{margin-top:12px}.account-shell{max-width:720px}.account-shell .details-card{margin:0 0 18px}.account-welcome{text-align:center;max-width:520px;margin:0 auto 18px!important}.account-welcome .google-signin{display:flex;justify-content:center}.account-welcome h2{margin-bottom:12px}.account-status-row{display:flex;gap:18px;align-items:center;justify-content:space-between}.account-email{margin:8px 0 0!important;overflow-wrap:anywhere}.synced-chip{color:var(--green);background:var(--green-soft);white-space:nowrap}.account-records{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0;margin:12px 0 6px;border-bottom:1px solid var(--line)}.account-records>div{display:flex;align-items:baseline;gap:12px}.account-records strong{font-size:42px;letter-spacing:-.05em;font-weight:600}.account-records span{font-size:14px;color:var(--muted)}.account-save-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.account-save-actions .small{font-size:11px}.account-backups>summary{cursor:pointer;color:var(--muted);font-size:14px;font-weight:500}.account-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}.account-tools{padding-top:22px!important;padding-bottom:18px!important}.profile-editor-row{display:flex;align-items:center;gap:20px;margin:22px 0}.profile-photo-button{position:relative;padding:0;border-radius:50%;background:transparent;flex-shrink:0}.profile-photo-button .profile-avatar.large{width:80px;height:80px;display:flex}.profile-edit-badge{position:absolute;bottom:0;right:-2px;display:grid;place-items:center;width:27px;height:27px;border:3px solid var(--surface);border-radius:50%;background:var(--blue);color:white}.profile-edit-badge svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}.profile-editor-row .text-button{display:block;text-align:left;padding:3px 0;min-height:30px}.profile-editor-row .small{font-size:11px;margin:5px 0}.profile-draft-status:empty{display:none}.profile-draft-status{color:var(--blue)!important}.profile-card .entry-actions{margin-top:18px}.profile-card .form-field{margin-bottom:8px}button[hidden]{display:none!important}@media(max-width:580px){.account-status-row{align-items:flex-start}.account-email{font-size:13px!important}.account-records{flex-wrap:wrap;padding:20px 0}.account-records strong{font-size:36px}.account-records .button{padding:10px 14px}.profile-editor-row{gap:16px}.account-shell .details-card{padding:24px}.signin-close{top:-10px;right:-8px}}

.profile-editor-row .text-button{background:transparent;color:var(--blue);font-size:14px;font-weight:500;min-height:40px}.profile-editor-row .text-button.muted{color:var(--muted)}.account-save-actions .button.ghost,.account-footer .button.ghost,.signin-controls .button.ghost{padding:8px 0;min-height:40px}.account-footer .button.ghost{color:var(--muted)}

/* Profile and appearance live together, without a second header row. */
.brand-header{display:grid;grid-template-columns:48px minmax(0,1fr) 32px;align-items:center;gap:6px;margin:0 0 32px}.brand-header .brand-mark{display:grid;place-items:center;width:48px;height:52px}.brand-header .brand-mark img{width:48px;height:48px}.brand-header .brand-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.brand-title{color:var(--text);font-size:1rem;font-weight:600;letter-spacing:-.035em;white-space:nowrap}.profile-link{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:28px;margin:2px 0 0 -4px;padding:3px 4px;border-radius:8px;color:var(--muted);font-size:.75rem;line-height:1.25}.profile-link:hover,.profile-link[aria-current="page"]{background:var(--blue-soft);color:var(--blue)}.profile-link .profile-avatar{width:20px;height:20px;font-size:.65rem;flex-shrink:0}.profile-link.storage-warning::after{content:"";width:6px;height:6px;background:var(--red);border-radius:50%;flex-shrink:0}.brand-header>.icon-button{width:32px;height:36px;padding:6px}.brand-header>.icon-button svg{width:18px;height:18px}main{min-height:calc(100vh - 72px)}
@media(min-width:801px) and (max-width:1100px){.brand-title{font-size:.9rem}.brand-header{grid-template-columns:42px minmax(0,1fr) 30px}.brand-header .brand-mark,.brand-header .brand-mark img{width:42px}}
@media(max-width:800px){.brand-header{grid-template-columns:56px minmax(0,1fr) 44px;gap:10px;margin:0 0 14px}.brand-header .brand-mark{width:56px;height:56px}.brand-header .brand-mark img{width:56px;height:56px}.brand-title{font-size:1.1rem}.profile-link{min-height:32px;font-size:.8rem}.profile-link .profile-avatar{width:22px;height:22px;font-size:.68rem}.brand-header>.icon-button{width:44px;height:44px;padding:10px}.brand-header>.icon-button svg{width:21px;height:21px}main{min-height:0}}

/* Keep each view focused on its next useful action. */
.page-note{font-size:.85rem;color:var(--muted);margin:0 0 24px}
.nav-link{gap:9px;padding:10px 12px;font-size:.86rem}.nav-link>.small{margin-left:auto;font-size:.7rem}.mock-card .button{margin-top:20px}
.quiet-details{margin:24px 0;color:var(--muted);font-size:.85rem}
.quiet-details>summary,.reference-details>summary,.ranking-card>summary{cursor:pointer;font-weight:550;color:var(--text);font-size:.9rem;min-height:36px;line-height:1.5}
.quiet-details>summary{color:var(--muted)}
.quiet-details p{margin:12px 0}.quiet-details[open]>.backup-actions{margin-top:18px}
.reference-details>summary,.ranking-card>summary{font-size:1.06rem}
.reference-details:not([open]),.ranking-card:not([open]){padding-top:20px;padding-bottom:12px}
.reference-details[open]>summary,.ranking-card[open]>summary{margin-bottom:16px}
.account-shell{max-width:560px}.account-shell .profile-card{padding:28px}
main.profile-page{max-width:700px;padding-top:42px;padding-bottom:48px}
.profile-page .account-shell{max-width:none}
.profile-page .account-welcome{max-width:none;margin:0 0 18px!important}
.profile-page .page-heading{margin-bottom:24px}
@media(max-width:800px){main.profile-page{padding:26px 18px 36px}}
.profile-account-line{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.profile-account-line>span:first-child{min-width:0;flex:1}
.account-sync-indicator{display:flex;color:var(--muted);flex-shrink:0}.account-sync-indicator svg{width:16px;height:16px}.account-sync-indicator.is-synced{color:var(--green)}
.account-options{padding:4px 4px 0}.account-options .account-backups>summary{min-height:44px;padding:10px 0}
.account-options .account-backups p{color:var(--muted);font-size:.82rem;margin:14px 0}
.account-options .account-save-actions{padding-top:14px;margin-top:18px;border-top:1px solid var(--line)}
.account-footer{margin:8px 0 0;padding-top:8px}.account-options .entry-actions{margin-top:18px}
.account-welcome .google-signin{margin:10px 0 22px}.account-welcome>p{margin:12px 0}.account-welcome>a.small{display:inline-block;margin-top:8px}
.local-account-access{padding:28px}.local-account-access h2{font-size:1.25rem;letter-spacing:-.025em;margin:0 0 10px}.local-account-access>p{color:var(--muted);font-size:.86rem;line-height:1.6;margin:0}.local-account-access .entry-actions{margin:20px 0 10px;justify-content:flex-start;gap:10px}.local-account-access .button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.local-account-access .button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}.local-account-access #local-signin-note{font-size:.75rem}.account-transfer-help{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.account-transfer-help summary{font-size:.82rem;color:var(--blue);cursor:pointer;line-height:1.5}.account-transfer-help p{font-size:.82rem;line-height:1.7;color:var(--muted);margin:14px 0 0}.account-transfer-help strong{font-weight:600;color:var(--text)}
@media(max-width:580px){.local-account-access{padding:24px}.local-account-access .entry-actions{display:grid;grid-template-columns:1fr}.local-account-access .button{width:100%;min-height:44px}.account-transfer-help summary{padding:5px 0}}
.profile-editor-row{margin:22px 0 26px}.profile-card .entry-actions{justify-content:flex-end}
.next-session{margin-bottom:20px;padding:26px 30px}.next-session h2{margin:10px 0;font-size:1.65rem}.next-session p{max-width:none}.next-session .button{margin-top:22px}
.workspace-shortcuts{display:grid;gap:12px}.workspace-shortcut{display:flex;align-items:center;gap:18px;padding:21px 24px;color:var(--text)}
.workspace-shortcut>svg:first-child{width:23px;height:23px;color:var(--blue)}.workspace-shortcut>div{flex:1;min-width:0}.workspace-shortcut p{font-size:.8rem;color:var(--muted);margin-top:4px}.workspace-shortcut>svg:last-child{width:17px;height:17px;color:var(--muted)}
.workspace-shortcut:hover{border-color:#bacfe5}.course-tile{min-height:290px;padding:28px}.course-tile .course-emblem{margin-bottom:26px}.course-tile h2{margin-top:10px}.course-open{margin-top:26px}
.prep-card>.source{margin-top:20px}.prep-card h2{margin-bottom:12px}.prep-card .prep-points{margin-top:0}.unit-progress-card .score-number{font-size:3rem}.unit-progress-card .quiet-details{margin-top:20px}
.unit-progress-card .unit-attempts{margin-top:22px}.language-tools{margin:0 0 16px}
.page-heading>.language-tools,.heading-actions .language-tools,.quiz-toolbar .language-tools{margin:0;flex-shrink:0}.page-heading>.language-tools{align-self:flex-start}.heading-actions{align-items:center}
.page-heading:has(>.language-tools){display:flex;align-items:flex-start}.page-heading:has(>.language-tools)>div:first-child{min-width:0}
.calendar-summary{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--muted);margin:0 0 20px}.calendar-stamp-setting{width:44px;padding:6px}.calendar-agenda{margin-bottom:0}
.stamp-button.auto-stamp small:empty{display:none}.room-sharing{padding:20px 26px}.room-sharing-toggle{margin:0 0 10px}.room-sharing>p{margin:0}
.room-invite .form-field{margin:20px 0 0}.room-invite .quiet-details{margin-bottom:0}.room-welcome .entry-actions{margin:18px 0}.room-welcome .form-field{margin-top:24px}.shared-mock-controls{margin-top:20px}.ranking-card{margin-bottom:24px!important}
.room-toolbar{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}.room-toolbar>.button{flex-shrink:0}.room-toolbar .quiet-details{margin:0;flex:1;min-width:150px}.room-options>summary{padding:12px 0;min-height:44px}.room-options-content{padding:18px 0}.room-options-content .form-field{margin-top:0}.ranking-card[open]{padding:18px 22px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.ranking-card:not([open]){padding:0!important}.ranking-card[open]>summary{margin-bottom:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:580px){
 h1{font-size:1.9rem}.page-heading{margin-bottom:24px}.page-heading p{font-size:.88rem;margin-top:10px}
 .heading-actions{gap:8px}.account-shell .profile-card{padding:24px}.profile-account-line{font-size:.76rem}
 .next-session{padding:24px}.next-session h2{font-size:1.5rem}.workspace-shortcut{padding:19px 20px;gap:14px}.workspace-shortcut h3{font-size:1rem}
 .workspace-shortcut p{font-size:.77rem}.course-tile{min-height:270px}.mock-card .mock-letter{grid-row:1/4}.mock-card h3{margin-top:2px}.mock-card p{font-size:.8rem}
 .room-invite .row{align-items:center}.room-invite .row h2{font-size:1.1rem}.room-invite .button{font-size:.78rem;padding:8px 13px}
 .history-row{align-items:flex-start;gap:14px}.history-row h3{font-size:.95rem}.history-row p{font-size:.74rem}.history-meta{flex-direction:column;align-items:flex-end;gap:8px}.history-score{font-size:1.18rem}
 .calendar-stamp-setting{min-width:44px}.reference-details:not([open]),.ranking-card:not([open]){padding:18px 23px 10px}
}

/* One concept at a time, with room to think on a phone. */
.guided-entry{display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px;padding:28px;margin-bottom:24px}.guided-entry h2{margin:8px 0}.guided-entry p{color:var(--muted);font-size:.9rem}.lesson-outline{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}.lesson-outline summary{color:var(--blue);cursor:pointer;font-size:.9rem}.lesson-links{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;margin-top:16px}.lesson-links a{display:flex;align-items:center;gap:12px;color:var(--text);padding:12px 8px;border-radius:10px;font-size:.9rem}.lesson-links a:hover{background:var(--code)}.lesson-number{color:var(--muted);font-size:.8rem;min-width:25px;font-variant-numeric:tabular-nums}.lesson-number.done{color:var(--green)}.guided-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.lesson-unit-link{font-size:.9rem;font-weight:550}.guided-heading{display:block;max-width:850px;margin-bottom:25px}.guided-heading h1{font-size:2.15rem}.guided-heading .explanation-zh{font-size:1.15rem;color:var(--muted);letter-spacing:0;margin-top:12px;line-height:1.5}.lesson-stages{display:flex;flex-direction:row;gap:6px;border-radius:14px;padding:5px;background:var(--surface);border:1px solid var(--line);margin-bottom:20px;max-width:700px}.lesson-stages button{display:flex;align-items:center;justify-content:center;gap:9px;flex:1;color:var(--muted);background:transparent;border-radius:10px;padding:12px 10px;font-size:.9rem}.lesson-stages button span{font-size:.75rem;border:1px solid currentColor;border-radius:50%;width:21px;height:21px;display:grid;place-items:center}.lesson-stages button.active{background:var(--blue-soft);color:var(--blue);font-weight:600}.lesson-panel{padding:34px;max-width:850px}.lesson-panel:focus{outline:none}.lesson-panel h2{font-size:1.3rem;margin-bottom:10px}.lesson-facts{display:grid;gap:23px;margin-top:26px}.lesson-fact{display:flex;gap:15px;align-items:flex-start}.lesson-fact-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:11px}.lesson-fact p{font-size:1rem;line-height:1.7}.lesson-fact .explanation-zh{font-size:.92rem;margin-top:7px}.lesson-nav{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding-top:26px;margin-top:28px;border-top:1px solid var(--line);flex-wrap:wrap}.lesson-prompt{margin-top:22px}.example-options{display:grid;gap:10px;margin:20px 0;font-size:.95rem}.example-options span{color:var(--muted);margin-right:8px}.lesson-pause{margin:24px 0}.worked-steps{display:grid;gap:24px;margin-top:28px}.worked-step{border-left:2px solid var(--blue);padding-left:20px}.worked-step .label{margin-bottom:10px}.worked-step .explanation-zh{margin-top:8px;font-size:.94rem}.lesson-question{border-top:1px solid var(--line);padding-top:26px;margin-top:28px}.lesson-question h3{margin-top:13px;font-size:1.1rem;line-height:1.6;letter-spacing:0}.lesson-question fieldset{margin-top:24px}.lesson-check-action{margin:18px 0}.lesson-question .feedback{margin-top:22px}.lesson-question .feedback .explanation-zh{margin-top:8px}.lesson-complete{margin-right:auto;color:var(--green);font-size:.9rem}.lesson-footer{display:flex;align-items:center;gap:24px;max-width:850px;margin-top:24px;font-size:.85rem}.lesson-footer span{margin-left:auto;color:var(--muted)}.lesson-source{max-width:850px;margin-top:28px}.lesson-source p{margin-top:10px;font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.guided-entry{padding:23px;grid-template-columns:1fr;gap:18px}.guided-entry .button{justify-self:start}.lesson-links{grid-template-columns:1fr}.guided-heading h1{font-size:1.7rem}.guided-heading .explanation-zh{font-size:1.05rem}.lesson-panel{padding:24px 19px}.lesson-stages button{padding:10px 5px;font-size:.85rem;gap:7px}.lesson-fact{gap:11px}.lesson-fact p{font-size:.95rem}.lesson-nav{margin-top:24px}.lesson-nav .button{max-width:100%;white-space:normal}.lesson-footer{gap:15px;flex-wrap:wrap}.lesson-footer a{font-size:.8rem}.lesson-question h3{font-size:1rem}.worked-step{padding-left:14px}.lesson-top p{font-size:.8rem}}

.lesson-question .feedback h4{margin:0 0 10px}.lesson-question .feedback.correct>h4{color:var(--green)}.lesson-question .feedback.incorrect>h4{color:var(--red)}.guided-mistakes{margin-top:32px}.guided-mistakes .explanation-en,.guided-mistakes .explanation-zh{margin-top:12px}

/* Personal PDF reading status: one checkbox per recommended page. */
.reading-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.reading-heading .label{margin-bottom:7px}.reading-heading p{margin:0}.reading-count,.reading-total{font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.reading-progress{appearance:none;display:block;width:100%;height:4px;border:0;border-radius:8px;overflow:hidden;background:var(--line);margin:18px 0}.reading-progress::-webkit-progress-bar{background:var(--line)}.reading-progress::-webkit-progress-value{background:var(--blue);border-radius:8px}.reading-progress::-moz-progress-bar{background:var(--blue);border-radius:8px}.reading-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(85px,1fr));gap:7px;border:0;padding:0;margin:0 0 15px;min-width:0}.reading-page{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 10px;background:var(--code);border:1px solid transparent;border-radius:10px;font-size:.85rem;cursor:pointer}.reading-page input{appearance:auto;width:18px;height:18px;margin:0;accent-color:var(--blue);flex-shrink:0}.reading-page.read{color:var(--green)}.reading-page:hover{border-color:var(--line)}.reading-page:focus-within{outline:2px solid var(--blue);outline-offset:2px}.unit-info .unit-reading-status{font-size:.75rem;margin-top:9px;color:var(--blue)}.unit-reading-status.complete{color:var(--green)}
@media(max-width:650px){.reading-heading{align-items:flex-start;gap:12px}.reading-count{font-size:.75rem;padding-top:4px}.reading-checklist{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.reading-page{padding:8px;font-size:.8rem;gap:7px}.reading-total{font-size:.8rem}}
.reading-heading>div{min-width:0}.reading-heading strong{overflow-wrap:anywhere}.reading-count{flex-shrink:0}

/* Slide concepts stay compact; worked examples open only when needed. */
.slide-reading{padding:23px 27px;margin-bottom:24px}.slide-reading .label{margin-bottom:10px}.slide-reading p{line-height:1.7}.slide-reading .small{margin-top:9px;max-width:720px}.slide-open{width:19px;color:var(--muted);flex-shrink:0}.slide-open svg{width:19px;height:19px}
.collection-comparison{padding:28px;margin-bottom:26px}.collection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.collection-heading h2{font-size:1.45rem;margin-top:9px;letter-spacing:-.03em}.collection-heading .explanation-zh{font-size:1rem;margin-top:9px;color:var(--muted)}.collection-heading>a{white-space:nowrap;padding:8px 0}.collection-tabs{display:flex;gap:5px;max-width:440px;background:var(--code);padding:5px;border-radius:12px;margin:24px 0}.collection-tabs button{flex:1;min-height:44px;padding:10px 5px;border-radius:9px;background:transparent;color:var(--muted);font-family:ui-monospace,SFMono-Regular,monospace;font-size:.91rem}.collection-tabs button[aria-pressed=true]{background:var(--surface);color:var(--blue);box-shadow:0 1px 4px #0000000d}
.collection-example{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr);gap:32px}.collection-properties{margin:0}.collection-properties>div{padding:13px 0;border-bottom:1px solid var(--line)}.collection-properties>div:first-child{padding-top:0}.collection-properties dt{font-size:.75rem;color:var(--muted);font-weight:550;margin-bottom:6px}.collection-properties dd{margin:0}.collection-properties p{font-size:.88rem;line-height:1.55}.collection-properties .explanation-zh{margin-top:4px;font-size:.8rem}.collection-code{min-width:0}.collection-code>p{margin-bottom:9px}.collection-code pre{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:0;font-size:.81rem;line-height:1.75;padding:19px}.collection-output>summary,.comparison-terms>summary,.companion-reasoning>summary{cursor:pointer;color:var(--blue);font-size:.87rem;padding:12px 0;min-height:44px}.collection-output>p{margin-top:14px;font-size:.92rem;line-height:1.7}.collection-output .common-trap{margin-top:20px}.comparison-terms{margin-top:24px;border-top:1px solid var(--line);padding-top:10px}.comparison-terms .lesson-facts{gap:12px;margin-top:12px}.comparison-terms p{font-size:.91rem;line-height:1.7}
.companion-concepts{display:grid;gap:12px}.companion-concept>summary{display:flex;align-items:center;gap:16px;padding:21px 24px;cursor:pointer;list-style:none}.companion-concept>summary::-webkit-details-marker{display:none}.concept-number{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:23px}.companion-concept summary strong{font-size:.98rem;line-height:1.55;font-weight:550}.companion-concept summary small{display:block;color:var(--muted);font-size:.75rem;margin-top:6px}.concept-chevron{margin-left:auto;width:18px;flex-shrink:0;color:var(--muted)}.concept-chevron svg{width:18px;height:18px}.companion-concept[open] .concept-chevron{transform:rotate(90deg)}.companion-content{padding:0 28px 28px;border-top:1px solid var(--line)}.companion-content .lesson-facts{gap:16px;margin-top:24px}.companion-content p{line-height:1.75;font-size:.94rem}.companion-content .explanation-zh{font-size:.89rem;margin-top:6px}.companion-worked{margin-top:26px;padding-top:23px;border-top:1px solid var(--line)}.companion-worked h3{font-size:1rem;margin-bottom:13px}.companion-worked pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.84rem}.companion-content .worked-steps{margin:13px 0 22px}.companion-content .common-trap{margin:22px 0}.companion-actions,.companion-footer{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.companion-actions .button{font-size:.86rem}.companion-footer{margin-top:28px}.lesson-panel .collection-comparison{padding:0;border:0;box-shadow:none;background:transparent}.lesson-panel .collection-heading .label,.lesson-panel .collection-heading h2,.lesson-panel .collection-heading>a{display:none}
@media(max-width:650px){.slide-reading{padding:20px}.collection-comparison{padding:22px 19px}.collection-heading{display:block}.collection-heading>a{display:inline-block;margin-top:12px;white-space:normal}.collection-heading h2{font-size:1.3rem}.collection-tabs{margin:20px 0}.collection-example{grid-template-columns:1fr;gap:24px}.collection-properties{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.collection-properties>div:first-child{padding-top:13px}.collection-code pre{font-size:.77rem;padding:16px}.companion-concept>summary{padding:19px 16px;gap:10px}.companion-concept summary strong{font-size:.91rem}.companion-content{padding:0 19px 24px}.companion-content .lesson-facts{margin-top:21px}.companion-footer{gap:17px}.companion-footer a{font-size:.85rem}}

/* Read → predict → review: a single compact code check. */
.slide-check-entry{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.slide-check-entry .button{font-size:.86rem}.slide-check-meta{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.78rem;margin-bottom:24px}.slide-check-panel .lesson-question{border:0;padding:0;margin:0}.slide-check-panel h2{font-size:1.16rem;line-height:1.5;letter-spacing:-.02em;margin:12px 0 18px}.slide-check-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.86rem;line-height:1.7}.slide-check-panel .feedback p{line-height:1.75;margin-top:12px}.slide-check-panel .slide-return{display:inline-block;margin-top:18px;min-height:30px}.slide-check-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.slide-check-scope{margin-top:22px;line-height:1.6}
@media(max-width:650px){.slide-check-meta{font-size:.74rem;gap:8px;margin-bottom:20px}.slide-check-panel pre{font-size:.78rem}.slide-check-entry{align-items:flex-start}.slide-check-entry .button{min-height:44px}.slide-check-panel h2{font-size:1.05rem}.slide-check-footer .button{min-height:44px}}
.slide-check-panel fieldset.options{border:0;margin:0;padding:0;min-width:0}
.slide-test-entry-heading{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.slide-test-entry-status,.unit-test-status{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.slide-test-entry-status{margin-top:16px}.slide-test-history{margin-top:12px}
.slide-test-history a{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.slide-test-question{margin-bottom:20px}.slide-test-question h2{font-size:20px;line-height:1.45;margin:18px 0}
.slide-test-question-meta,.slide-test-progress{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.slide-test-progress{font-size:14px;margin-bottom:20px}.slide-test-question .options{margin-top:22px}
.slide-test-question .feedback{margin-top:24px}.slide-test-question .option:has(input:disabled){cursor:default}
.slide-test-question .options{border:0;padding:0;min-width:0}.slide-test-question .option>span:last-child{white-space:pre-line}
.slide-test-question .slide-answer-correct{border-color:#54a67a}.slide-test-question .slide-answer-missed{border-color:#d58b80}
.slide-test-result{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px;margin-bottom:24px}
.slide-test-result .small{display:inline-block;margin:12px}.slide-test-submit{display:flex;justify-content:flex-end;margin:24px 0}
.slide-test-misses{display:grid;gap:12px}.slide-test-misses a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px}.slide-test-misses small{display:block;color:var(--muted);margin-top:6px}
.slide-feature-example{margin-bottom:24px}.slide-feature-example h2{font-size:23px;margin:12px 0}.slide-feature-example pre{margin:20px 0}
@media(max-width:600px){.slide-test-result{align-items:flex-start;flex-direction:column;padding:22px}.slide-test-question h2{font-size:18px}.slide-test-question-meta{font-size:11px}.slide-test-submit .button{width:100%}.slide-feature-example h2{font-size:20px}}
/* Focused final-day review, with optional detail instead of more navigation. */
.final-review{padding:28px;margin-bottom:34px}.final-review-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.final-review h2{font-size:25px;letter-spacing:-.035em;line-height:1.25;margin-top:10px}.final-review>p,.final-review-details p,.lecture-web-content p{line-height:1.7;font-size:14px}.final-review>p{max-width:820px}.final-review-details>summary{padding:20px 0 4px;cursor:pointer;color:var(--blue);font-size:14px;min-height:44px}.final-review-phases{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.final-review-phases article{border-top:1px solid var(--line);padding-top:18px}.final-review h3{font-size:15px;margin-bottom:10px}.final-focus-heading{margin-top:30px}.final-focus-list{margin:20px 0;display:grid}.final-focus-list>a{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--line);color:var(--text)}.final-focus-list strong{font-size:14px}.final-focus-list span{display:block;font-size:12px;line-height:1.65;margin-top:7px;color:var(--muted)}.final-focus-list small{font-size:11px;color:var(--muted);white-space:nowrap;padding-top:3px}.final-exam-rule{padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:18px}.lecture-websites{margin:24px 0}.lecture-websites>details>summary{padding:24px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px}.lecture-websites summary strong{font-size:16px}.lecture-websites summary>span{font-size:12px;color:var(--muted)}.lecture-web-content{padding:0 24px 24px}.lecture-web-links article{padding:20px 0;border-bottom:1px solid var(--line)}.lecture-web-links a{font-size:14px;font-weight:550}.lecture-web-links small{display:block;margin:7px 0 10px;font-size:11px;color:var(--muted)}.lecture-css-topics{padding:22px 0}.lecture-css-topics .topics{gap:8px;margin-top:14px;display:flex;flex-wrap:wrap}.lecture-web-example{border-top:1px solid var(--line);padding:26px 0 10px}.lecture-web-example h3{font-size:17px;margin-bottom:14px}.lecture-web-example pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;margin:18px 0}.lecture-web-example .example-options p{font-size:13px;margin-bottom:8px}.lecture-web-example>a{display:inline-block;margin-top:12px}
@media(max-width:650px){.final-review{padding:21px}.final-review h2{font-size:22px}.final-review-heading{align-items:flex-start;flex-direction:column;gap:15px}.final-review-phases{grid-template-columns:1fr;gap:18px}.final-focus-list>a{flex-direction:column;gap:5px}.final-focus-list small{white-space:normal}.lecture-websites>details>summary{padding:21px;flex-direction:column;gap:8px}.lecture-web-content{padding:0 21px 21px}.lecture-web-example pre{font-size:12px}.final-review .button{min-height:44px}}

/* The source page stays visually separate from the study notes beneath it. */
#original-slide-host{scroll-margin-top:22px;outline:none}
.original-slide-reader{overflow:hidden;margin-bottom:24px}
.slide-reader-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 28px 12px}
.slide-reader-scopes{display:flex;gap:4px;border-radius:10px;padding:4px;background:var(--code)}
.slide-reader-scopes button{min-height:40px;padding:8px 13px;border-radius:7px;background:transparent;color:var(--muted);font-size:.82rem}
.slide-reader-scopes button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000000d}
.slide-page-picker{display:flex;flex-wrap:wrap;gap:6px;padding:0 28px 18px}
.slide-page-picker button{min-height:38px;padding:7px 12px;font-size:.8rem;background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-variant-numeric:tabular-nums}
.slide-page-picker button[aria-pressed=true]{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.slide-page-picker button span{color:var(--green);font-size:.75rem;margin-left:3px}
.original-slide{margin:0 28px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}
.original-slide figcaption{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f6f7f9;color:#5b6068;padding:10px 16px;font-size:.74rem;border-bottom:1px solid #e4e5e8;line-height:1.5}
.original-slide figcaption span{overflow-wrap:anywhere;min-width:0}
.original-slide figcaption button{background:transparent;color:#006bd6;padding:5px 0;font-size:.75rem;min-height:32px;flex-shrink:0}
.slide-image-button{display:block;padding:0;border:0;width:100%;border-radius:0;background:white;cursor:zoom-in}
.slide-image-button img{display:block;width:100%;height:auto}
.slide-page-notes{padding:30px 32px 25px}
.slide-page-notes h2{font-size:1.6rem;letter-spacing:-.035em;line-height:1.3;margin:0}
.slide-topic-zh{color:var(--muted);font-size:1.03rem;margin-top:7px}
.slide-note-block{margin-top:28px}
.slide-note-block h3{font-size:.87rem;letter-spacing:0;font-weight:650;margin-bottom:12px;color:var(--text)}
.slide-note-block p,.slide-clarification p{line-height:1.7;font-size:.95rem;white-space:pre-line}
.slide-note-block .explanation-zh,.slide-clarification .explanation-zh{color:var(--muted);font-size:.9rem;margin-top:6px}
.slide-key-points{display:grid;gap:13px}
.slide-key-points>div{position:relative;padding-left:16px}
.slide-key-points>div::before{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:var(--blue);left:0;top:11px}
.slide-note-block pre{margin:0 0 16px;font-size:.86rem;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.slide-example-result{padding:15px 18px;border-radius:10px;background:var(--code);border-left:2px solid var(--blue)}
.slide-example-result .label{display:block;font-size:.65rem;margin-bottom:6px}
.slide-note-block>p+p{margin-top:8px}
.slide-clarification{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}
.slide-clarification>strong{font-size:.82rem;display:block;margin-bottom:8px}
.slide-clarification>a{display:inline-block;font-size:.76rem;margin-top:9px}
.slide-reader-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:28px;padding-top:21px}
.slide-reader-bottom .reading-page{background:transparent;padding:8px 0;max-width:100%;font-size:.83rem}
.slide-reader-arrows{display:flex;gap:8px}
.slide-reader-arrows .button{font-size:.81rem;padding:10px 14px;min-height:44px}
.slide-reader-scope-note{margin-top:17px;font-size:.75rem;line-height:1.6}
.extra-worked-example{margin:22px 0}
.extra-worked-example>section{margin-top:16px}
#slide-image-dialog{width:min(1400px,96vw);max-width:96vw;max-height:94dvh;padding:0;border-radius:16px;overflow:hidden;background:var(--surface);color:var(--text)}
.slide-image-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line)}
.slide-image-toolbar h2{font-size:.85rem;line-height:1.5;letter-spacing:0;overflow-wrap:anywhere;margin:0}
.slide-image-toolbar>div{display:flex;align-items:center;gap:8px;flex-shrink:0}
.slide-image-toolbar .button{padding:8px 12px;font-size:.77rem;min-height:40px}
.slide-image-toolbar .icon-button{font-size:1.8rem;line-height:1;min-height:40px;min-width:40px}
.slide-image-pane{max-height:calc(94dvh - 78px);overflow:auto;background:white;overscroll-behavior:contain}
.slide-image-pane img{display:block;width:100%;height:auto;background:white}
.slide-image-pane.original-size img{width:auto;max-width:none}
@media(max-width:650px){
 .slide-reader-controls{padding:17px 16px 12px;gap:8px}
 .slide-reader-controls>.small{font-size:.74rem;white-space:nowrap}
 .slide-reader-scopes button{padding:8px 10px;font-size:.77rem;min-height:40px}
 .slide-page-picker{padding:0 16px 15px;gap:5px}
 .slide-page-picker button{padding:8px 10px;min-height:40px;font-size:.76rem}
 .original-slide{margin:0 10px;border-radius:8px}
 .original-slide figcaption{padding:8px 10px;font-size:.67rem;gap:8px}
 .slide-page-notes{padding:25px 20px 21px}
 .slide-page-notes h2{font-size:1.36rem}
 .slide-topic-zh{font-size:.96rem}
 .slide-note-block{margin-top:23px}
 .slide-note-block p,.slide-clarification p{font-size:.89rem}
 .slide-note-block .explanation-zh,.slide-clarification .explanation-zh{font-size:.84rem}
 .slide-note-block pre{font-size:.77rem;padding:15px}
 .slide-example-result{padding:14px}
 .slide-reader-bottom{display:block;margin-top:24px;padding-top:14px}
 .slide-reader-arrows{justify-content:space-between;margin-top:12px}
 .slide-reader-arrows .button{padding:10px 12px}
 .slide-image-toolbar{padding:10px 12px;align-items:flex-start}
 .slide-image-toolbar h2{font-size:.75rem;padding-top:9px}
 .slide-image-toolbar>div{gap:3px}
 .slide-image-toolbar .button{padding:8px;font-size:.7rem}
}
.common-mixups{padding:0;margin:24px 0;overflow:hidden}
.common-mixups>summary{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.common-mixups>summary::-webkit-details-marker{display:none}
.common-mixups>summary>span{font-size:13px;color:var(--muted)}
.mixups-content{padding:0 24px 24px}
.mixups-list{margin-top:20px}
.mixup-item{border-top:1px solid var(--line)}
.mixup-item>summary{padding:18px 0;cursor:pointer;font-weight:600;line-height:1.5}
.mixup-explanation{padding:0 0 20px;line-height:1.65}
.mixup-explanation>p{margin:8px 0 14px}
.mixup-explanation pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0}
.mixup-explanation .slide-example-result{margin-bottom:18px}
@media(max-width:650px){.common-mixups>summary{padding:18px 16px}.mixups-content{padding:0 16px 20px}.common-mixups>summary>span{flex-shrink:0}}

/* Final exam preparation: a quiet priority queue, compact roadmap and recall cards. */
.priority-panel{padding:26px 28px;margin:24px 0 30px}.priority-panel-heading,.unit-roadmap-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.priority-panel-heading h2{font-size:1.35rem;margin-top:8px}.priority-panel-heading>a{font-size:.82rem;white-space:nowrap}.priority-panel>.small{margin:14px 0 6px;font-size:.8rem}.priority-unit-line{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.priority-unit-line:first-of-type{margin-top:18px}.priority-unit-line strong{font-size:.94rem;color:var(--text)}.priority-unit-line span,.priority-unit-line small{display:block;color:var(--muted);font-size:.8rem;margin-top:5px}.priority-unit-line small{font-size:.73rem}.priority-unit-line .button{font-size:.8rem;padding:9px 16px}.priority-panel>.priority-more{margin:4px 0 0}.priority-complete{font-size:.9rem;padding-top:18px}.plan-guidance{font-size:.88rem;color:var(--muted);margin:12px 0 22px;max-width:790px}.calendar-summary{justify-content:space-between;gap:16px}.calendar-summary a{font-size:.8rem}.calendar-unit-queue{width:100%;display:grid;gap:0;border-top:1px solid #0000000b}.calendar-unit-queue button{display:block;text-align:left;background:transparent;color:var(--text);padding:11px 0;min-height:52px;border-bottom:1px solid #0000000b}.calendar-unit-queue button strong{font-size:.8rem;font-weight:550}.calendar-unit-queue button span{display:block;font-size:.71rem;color:var(--muted);margin-top:3px}.calendar-unit-queue button:hover strong{color:var(--blue)}.earlier-session{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.79rem}.earlier-plan{margin-top:30px}.final-reading-links,.study-route-links,.recap-finish{display:flex;flex-wrap:wrap;gap:12px 24px;margin:20px 0 0;font-size:.84rem}.study-route-links{margin-bottom:28px}.final-review{margin-bottom:24px}.unit-roadmap{padding:23px 26px;margin-bottom:20px}.unit-roadmap-heading strong{font-size:.94rem}.unit-roadmap-heading span{display:block;font-size:.75rem;color:var(--muted);margin-top:5px}.unit-roadmap-heading a{font-size:.8rem;white-space:nowrap}.unit-roadmap>p{font-size:.82rem;margin-top:12px}.unit-roadmap-steps{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;font-size:.76rem;color:var(--muted);margin:19px 0}.unit-roadmap-steps span+span:before{content:'→';color:var(--muted);margin-right:18px}.unit-roadmap-steps .step-done{color:var(--green)}.unit-roadmap>.button{font-size:.8rem}.complete-reading-checklist{margin:20px 0}.complete-reading-checklist>summary{cursor:pointer;font-size:.87rem;font-weight:550;min-height:44px;padding:11px 0}.complete-reading-checklist .reading-checklist{margin-top:10px}.prep-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.recap-exam{padding:23px 26px;margin-bottom:24px}.recap-exam>strong{font-size:.95rem}.recap-exam p{font-size:.85rem;margin-top:13px}.recap-exam .small{font-size:.78rem}.recap-jump{display:flex;flex-direction:row;flex-wrap:wrap;gap:7px;margin:0 0 25px}.recap-jump a{font-size:.75rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 12px;min-height:36px}.recap-all-link{display:inline-block;margin-bottom:20px}.recap-unit{margin-bottom:12px;overflow:hidden}.recap-unit>summary{display:flex;align-items:center;gap:17px;cursor:pointer;list-style:none;padding:22px 25px;min-height:86px}.recap-unit>summary::-webkit-details-marker{display:none}.recap-unit>summary>span:nth-child(2){flex:1;min-width:0}.recap-unit>summary strong{display:block;font-size:1rem}.recap-unit>summary small{display:block;font-size:.75rem;color:var(--muted);margin-top:5px}.recap-unit[open]>summary>svg{transform:rotate(90deg)}.recap-unit-content{padding:0 27px 26px;border-top:1px solid var(--line)}.recap-facts{padding-left:19px;margin:22px 0 28px}.recap-facts li{padding:0 0 17px 5px;font-size:.9rem}.recap-facts li:last-child{padding-bottom:0}.recap-facts p+p{margin-top:6px}.recap-facts .explanation-zh{font-size:.84rem}.recap-example{border-top:1px solid var(--line);padding-top:22px}.recap-example h3{font-size:1rem}.recap-example>.small{font-size:.75rem;margin:10px 0 17px}.recap-example pre{white-space:pre-wrap;overflow-wrap:anywhere}.recap-example summary{cursor:pointer;font-size:.87rem;color:var(--blue);min-height:44px;padding:8px 0}.recap-example details p{font-size:.87rem;margin-top:12px}.recap-unit-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:23px;padding-top:22px}.recap-unit-footer strong{display:block;font-size:.8rem}.recap-unit-footer span{display:block;font-size:.75rem;color:var(--muted);margin-top:5px}.recap-unit-footer .button{font-size:.82rem}.recap-finish{align-items:center;margin-top:25px}body.dark .calendar-unit-queue,body.dark .calendar-unit-queue button{border-color:var(--line)}
@media(max-width:650px){.priority-panel{padding:21px}.priority-panel-heading{align-items:flex-start}.priority-panel-heading h2{font-size:1.2rem}.priority-panel-heading .label{font-size:.63rem}.priority-unit-line{gap:12px;align-items:flex-start}.priority-unit-line>div{min-width:0}.priority-unit-line small{font-size:.69rem;line-height:1.6}.priority-unit-line .button{font-size:.74rem;padding:9px 13px;flex-shrink:0}.unit-roadmap{padding:20px}.unit-roadmap-heading{gap:12px;align-items:flex-start}.unit-roadmap-steps{gap:10px 12px;line-height:1.6}.unit-roadmap-steps span+span:before{margin-right:9px}.unit-roadmap-heading span{font-size:.7rem}.unit-roadmap-heading a{font-size:.74rem}.recap-exam{padding:21px}.recap-unit>summary{padding:18px;gap:12px}.recap-unit>summary strong{font-size:.93rem}.recap-unit>summary small{font-size:.7rem}.recap-unit-content{padding:0 20px 23px}.recap-facts{padding-left:16px}.recap-facts li{font-size:.87rem}.recap-unit-footer{flex-direction:column;align-items:flex-start;gap:15px}.recap-jump a{font-size:.7rem}.prep-heading{align-items:flex-start}.prep-heading>a{font-size:.75rem}.plan-guidance{font-size:.83rem}.calendar-summary{font-size:.78rem}.calendar-unit-queue button span{font-size:.67rem}.earlier-session{font-size:.74rem}}
.recap-exam>details{margin-top:13px}.recap-exam>details>summary{font-size:.8rem;color:var(--blue);cursor:pointer;padding:8px 0;min-height:36px}.recap-unit-content .explanation-zh{color:var(--muted)}
.coding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:26px 0}
.mistake-entry>.button{margin-top:22px}.mistake-retry{margin-top:25px}.mistake-retry .coding-context{margin-top:15px}.mistake-retry pre{margin:20px 0;white-space:pre-wrap;overflow-wrap:anywhere}.mistake-retry fieldset{margin:22px 0}.mistake-retry .feedback{margin-top:22px}.mistake-retry .explanation-zh{margin-top:12px}
.coding-unit{display:flex;align-items:center;gap:18px;padding:25px;color:var(--text);text-decoration:none;min-width:0}
.coding-unit>div{flex:1;min-width:0}.coding-unit h2{font-size:1rem;margin:0 0 8px}.coding-unit p{font-size:.8rem;color:var(--muted);line-height:1.65}.coding-unit small{display:block;font-size:.73rem;color:var(--blue);margin-top:12px}.coding-unit>svg{width:16px;height:16px;flex-shrink:0}.coding-unit:hover{border-color:var(--blue)}
.coding-start{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:24px 0 30px}.coding-start p{font-size:.87rem;color:var(--muted);max-width:600px}.coding-start .button{flex-shrink:0}
.coding-sets{display:flex;gap:4px;padding:4px;border:1px solid var(--line);background:var(--surface);border-radius:999px}.coding-sets a{padding:7px 14px;border-radius:999px;font-size:.8rem;color:var(--muted);text-decoration:none}.coding-sets a[aria-current="page"]{background:var(--blue-soft);color:var(--blue)}
.coding-example{padding:28px 30px;margin-bottom:24px}.coding-example h2{font-size:1.3rem;line-height:1.4;margin:12px 0}.coding-context{font-size:.88rem;color:var(--muted);line-height:1.7}.coding-example pre{margin:22px 0;white-space:pre;overflow-x:auto;max-width:100%}
.coding-questions{border-top:1px solid var(--line)}.coding-questions summary{cursor:pointer;min-height:44px;padding:14px 0;color:var(--blue);font-size:.85rem}.coding-questions>ol{padding-left:22px;margin:15px 0 24px}.coding-questions>ol>li{margin-bottom:26px;padding-left:6px;font-size:.9rem}.coding-questions .question-type{display:block;margin:8px 0}.coding-questions ol ol{padding-left:24px;color:var(--muted)}.coding-questions ol ol li{padding:5px 0}.coding-key{border-top:1px solid var(--line)}.coding-key>ol{padding-left:22px}.coding-key li{margin:14px 0 24px;padding-left:6px;font-size:.88rem}.coding-key p{margin-top:10px;line-height:1.7}.coding-key .explanation-zh{font-size:.84rem}
.coding-footer{display:flex;flex-wrap:wrap;gap:24px;font-size:.86rem;margin:25px 0}.coding-note{max-width:800px;line-height:1.7}
@media(max-width:650px){.coding-grid{grid-template-columns:1fr}.coding-unit{padding:20px;gap:14px}.coding-start{align-items:flex-start;flex-direction:column;gap:16px}.coding-example{padding:23px 20px}.coding-example h2{font-size:1.15rem}.coding-unit>svg{display:none}}
.mock-card .mock-attempt-count{font-size:.77rem;margin:12px 0 8px}.mock-results{max-height:285px;overflow-y:auto;margin:6px 0 4px}.mock-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid var(--line);color:var(--text)}.mock-result strong{display:block;font-size:.87rem;font-weight:600}.mock-result small{display:block;font-size:.68rem;color:var(--muted);margin-top:4px;line-height:1.6}.mock-result-score{font-size:1.2rem;font-weight:600;letter-spacing:-.03em;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.mock-result-score small{color:var(--blue);font-weight:400;letter-spacing:0}.mock-result:hover strong{color:var(--blue)}.mock-account-note{font-size:.84rem;color:var(--muted);margin:-6px 0 24px}.mock-result:focus-visible{outline-offset:-3px;border-radius:8px}
@media(max-width:580px){.mock-results{grid-column:2;max-height:none}.mock-card .mock-attempt-count{grid-column:2;margin-bottom:4px}.mock-card .mock-letter{grid-row:1/7}.mock-result-score{font-size:1.18rem}}
@media(max-width:800px){#navigation .nav-link{order:2}#navigation .nav-link[href="#course/csci571"]{order:0}#navigation .nav-link[href="#coding"]{order:1}}
.study-tool-tabs{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;min-width:0;gap:0;width:100%;max-width:100%;overflow-x:auto;white-space:nowrap;margin:0 0 25px;padding:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.study-tool-tabs a{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;min-height:48px;padding:8px 16px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--muted);font-size:.84rem;font-weight:500;text-decoration:none}.study-tool-tabs a:first-child{padding-left:4px;padding-right:18px}.study-tool-tabs a:hover{color:var(--text)}.study-tool-tabs a[aria-current="page"]{border-bottom-color:var(--blue);color:var(--blue);font-weight:600}.coding-unit-progress{display:block;margin-top:9px;color:var(--blue);font-size:.77rem;font-weight:550}.coding-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:20px 24px;margin:20px 0}.coding-progress>div+div{border-left:1px solid var(--line);padding-left:20px}.coding-progress strong{display:block;margin-top:6px;font-size:1.65rem;line-height:1.2;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.coding-progress small{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;line-height:1.5}
@media(max-width:650px){.study-tool-tabs{margin:0 -2px 21px;border-radius:0}.study-tool-tabs a{min-height:46px;padding:8px 13px;font-size:.78rem}.study-tool-tabs a:first-child{padding-left:3px;padding-right:15px}.coding-progress{gap:13px;padding:17px}.coding-progress>div+div{padding-left:13px}.coding-progress strong{font-size:1.4rem}.coding-progress small{font-size:.7rem}}
.website-intro{padding:24px 27px;margin:12px 0 30px}.website-intro h2{font-size:1.12rem}.website-intro p{max-width:850px;margin:12px 0 0;line-height:1.7;font-size:.9rem}.website-intro .small{font-size:.74rem}.website-section-heading{margin:30px 0 7px;font-size:1.18rem}.website-caption{margin:0 0 15px}.website-resource-list{display:grid;gap:9px}.website-resource{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.5fr);gap:15px 22px;align-items:start;padding:16px 20px}.website-resource>div>a{display:block;font-size:.87rem;font-weight:600;overflow-wrap:anywhere}.website-resource>div>small{display:block;color:var(--muted);font-size:.68rem;line-height:1.5;margin-top:5px}.website-resource>p{font-size:.8rem;line-height:1.65;margin:0}.website-resource .explanation-zh{display:block;margin-top:5px;color:var(--muted);font-size:.75rem}.website-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.website-role{padding:19px 21px}.website-role h3{font-size:.95rem}.website-role>a{display:inline-block;margin-top:5px;overflow-wrap:anywhere}.website-role>p{font-size:.79rem;line-height:1.65;margin:11px 0 0}.website-role .explanation-zh{display:block;margin-top:5px;color:var(--muted)}.website-directory{margin:30px 0;padding:19px 22px}.website-directory>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;list-style:none;min-height:35px}.website-directory>summary::-webkit-details-marker,.website-decks>details>summary::-webkit-details-marker{display:none}.website-directory>summary>strong{font-size:.92rem}.website-directory>summary>span{font-size:.73rem;color:var(--muted)}.website-decks{margin-top:14px;border-top:1px solid var(--line)}.website-decks>details{border-bottom:1px solid var(--line)}.website-decks>details>summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer;min-height:46px;align-items:center;font-size:.82rem;font-weight:550}.website-decks>details>summary>span{color:var(--muted);font-size:.7rem;font-weight:400}.website-decks ul{columns:2;column-gap:24px;padding:0 0 14px 18px;margin:0}.website-decks li{break-inside:avoid;padding:4px 10px 4px 0;font-size:.72rem;color:var(--muted)}.website-decks li a{overflow-wrap:anywhere;line-height:1.55}
.website-priority-list{display:grid;gap:10px}.website-priority{padding:18px 21px}.website-priority h3{font-size:.96rem;margin:0}.website-priority>p{font-size:.78rem;line-height:1.55;color:var(--muted);margin:6px 0 10px}.website-priority-links{display:flex;flex-wrap:wrap;gap:6px 16px}.website-priority-links>a{font-size:.77rem;font-weight:550}.website-priority-links small{font-size:.67rem;color:var(--muted);font-weight:400}.website-skim{padding:15px 20px;margin-top:12px}.website-skim>summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer;font-size:.82rem}.website-skim>summary span{font-size:.72rem;color:var(--muted)}.website-skim>p{font-size:.78rem;line-height:1.6;color:var(--muted);margin:12px 0 2px}.website-quick-check{margin:34px 0}.website-quick-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.website-quick-heading h2{font-size:1.35rem;margin:5px 0 0}.website-quick-heading>p{font-size:.78rem;color:var(--muted);margin:0}.website-quiz-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.website-quiz-item{padding:18px 20px}.website-question-number{color:var(--blue);font-size:.68rem;font-weight:700;letter-spacing:.08em;margin:0 0 5px}.website-quiz-item h3{font-size:.91rem;line-height:1.4;margin:0 0 10px}.website-quiz-item pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem;line-height:1.5;padding:12px;border-radius:9px;background:var(--code);margin:10px 0}.website-quiz-item ol{font-size:.76rem;line-height:1.55;padding-left:22px}.website-quiz-item li{padding:2px 0}.website-quiz-item details{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.website-quiz-item details summary{color:var(--blue);cursor:pointer;font-size:.78rem;min-height:34px}.website-quiz-item details p{font-size:.77rem;line-height:1.6;margin:8px 0}.website-quiz-item .explanation-zh{display:block;color:var(--muted);margin-top:5px}
@media(max-width:650px){.website-intro{padding:20px}.website-resource{grid-template-columns:1fr;gap:8px;padding:15px 17px}.website-role-grid,.website-quiz-list{grid-template-columns:1fr}.website-role{padding:17px}.website-priority{padding:16px}.website-priority-links{display:grid;gap:9px}.website-skim>summary{align-items:flex-start;flex-direction:column;gap:4px}.website-quick-heading{align-items:flex-start;flex-direction:column;gap:5px}.website-quiz-item{padding:16px}.website-directory{padding:16px}.website-directory>summary{align-items:flex-start;flex-direction:column;justify-content:center;gap:4px}.website-decks ul{columns:1}}
.passed-score{color:var(--green)!important}.meter.passed i{background:var(--green)!important}
