.mastery-page{max-width:960px;margin:0 auto}.mastery-page>h1{margin:0 0 18px;font-size:22px}.mastery-board,.lecture-mastery{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:0 0 18px;background:var(--surface)}.mastery-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.mastery-heading h2{font-size:15px;margin:0}.mastery-heading label,.mastery-caption,.lecture-mastery p{font-size:12px}.mastery-caption,.lecture-mastery small,.mastery-list small{color:var(--ink-2)}.mastery-list{list-style:none;padding:0;margin:0;max-height:400px;overflow:auto}.mastery-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}.mastery-list li>div:first-child{min-width:0;overflow-wrap:anywhere}.mastery-list a{font-size:13px}.mastery-list small{display:block;font-size:11px;margin-top:4px}.mastery-row-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.mastery-badge{display:inline-block;white-space:nowrap;font-size:11px;padding:3px 7px;border-radius:5px;color:var(--ink-2);background:var(--surface-2)}.mastery-badge.is-needs_review{color:#a54a10;background:#fff0db}.mastery-badge.is-not_started{color:#8c3b32;background:#fcece9}.mastery-badge.is-mastered{color:#176d55;background:#e4f5ec}.lecture-mastery progress{width:100%;height:7px;accent-color:var(--cat-lecture);margin-top:12px}.lecture-mastery small{display:block;font-size:11px;line-height:1.6}.mastery-details{margin-top:10px;font-size:12px;color:var(--ink-2)}.mastery-details summary{cursor:pointer}.mastery-details small{margin-top:8px}.exam-plan{border-top:1px solid var(--line);padding:14px 0}.exam-plan>.mastery-heading>strong{font-size:14px}.study-plan-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.study-plan-stats div{background:var(--surface-2);border-radius:8px;padding:12px}.study-plan-stats small{display:block;font-size:11px;color:var(--ink-2)}.study-plan-stats strong{display:block;margin-top:5px;font-size:22px}.study-plan-help{font-size:12px;color:var(--ink-2);line-height:1.7}.study-plan-help summary{cursor:pointer}.study-plan-limit{font-size:12px;padding:10px;border-left:3px solid #c98927;background:var(--surface-2)}.daily-goal{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:18px;background:var(--surface-2)}.daily-goal.is-complete{border-color:#62a78c;background:#e4f5ec;color:#176d55}.daily-goal .mastery-heading{font-size:14px}.daily-goal .mastery-heading span,.daily-goal p,.daily-goal details{font-size:12px;line-height:1.6}.daily-goal small{display:block;font-size:11px}.daily-goal details{margin-top:10px}.daily-goal summary{cursor:pointer}.daily-goal-collapsible>summary{display:flex;align-items:center;gap:12px;list-style:none}.daily-goal-collapsible>summary::-webkit-details-marker{display:none}.daily-goal-collapsible>summary .mastery-heading{flex:1}.daily-goal-chevron{width:16px;height:16px;flex-shrink:0;color:var(--ink-2);transition:transform .16s ease}.daily-goal-collapsible[open]>summary .daily-goal-chevron{transform:rotate(180deg)}.daily-goal button{margin-top:12px}.daily-goal-main{display:inline-block;border-radius:6px;padding:10px 16px;background:#176d55;color:#fff;font-weight:600;text-decoration:none}.daily-goal.is-complete .mastery-heading h2{font-size:22px;line-height:1.5}.daily-goal.is-complete:has(.daily-goal-celebration){padding:24px;text-align:center}.daily-goal.is-complete:has(.daily-goal-celebration) .mastery-heading{justify-content:center}.daily-goal.is-complete:has(.daily-goal-celebration) .mastery-heading span{display:none}.daily-goal-celebration{margin:18px 0}.daily-goal-celebration .daily-goal-check{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:#176d55;color:#fff;font-size:32px}.daily-goal-celebration p{margin:8px 0;font-size:16px}.daily-goal-celebration .daily-goal-message{font-size:14px}.daily-goal-actions{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:10px;margin-top:20px}.daily-goal-actions .daily-goal-main,.daily-goal-continue{display:flex;flex-direction:column;justify-content:center;min-height:56px;margin:0;padding:10px 16px;font-size:14px}.daily-goal-continue{border:1px solid #176d55;border-radius:6px;background:#fff;color:#176d55;font-weight:600}.daily-goal .daily-goal-continue{margin:0}.daily-goal-actions .daily-goal-main small{color:inherit;font-size:11px;font-weight:400}.daily-goal-continue:disabled{opacity:.6;cursor:wait}.daily-goal-actions a:focus-visible,.daily-goal-continue:focus-visible{outline:3px solid #176d55;outline-offset:3px}.bank-complete>details{margin:16px 0;font-size:13px}.bank-complete>details>summary{cursor:pointer}.daily-goal-progress{display:block;width:100%;height:9px;margin:12px 0;accent-color:#238563}@media(max-width:600px){.daily-goal-actions{flex-direction:column}.mastery-list li{align-items:flex-start;flex-direction:column;gap:8px}.mastery-row-actions{width:100%;justify-content:space-between}}.feedback-toolbar{position:absolute;top:4px;right:20px;z-index:30}.feedback-launch{min-height:28px;white-space:nowrap;font-size:12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:24px;padding:4px 12px}.feedback-dialog{width:min(540px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-sizing:border-box}.feedback-dialog::backdrop{background:#0006}.feedback-dialog header,.feedback-board>header,.feedback-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.feedback-dialog h2{margin:0 0 12px;font-size:20px}.feedback-dialog textarea{display:block;width:100%;box-sizing:border-box;margin-top:10px;resize:vertical}.feedback-context,.feedback-hint{color:var(--ink-2);font-size:12px;overflow-wrap:anywhere}.feedback-question{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.feedback-category{display:grid;gap:6px;margin:16px 0}.feedback-category select{width:100%;box-sizing:border-box}.feedback-attach{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:20px}.feedback-attach input{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.feedback-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.feedback-shots{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.feedback-shots figure{margin:0;width:140px}.feedback-shots img{display:block;width:100%;height:100px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.feedback-shots figcaption{font-size:11px;overflow-wrap:anywhere;margin:4px 0}.feedback-card{padding:20px;margin:16px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.feedback-card header{overflow-wrap:anywhere}.feedback-card header span,.feedback-card small{font-size:12px;color:var(--ink-2)}.feedback-card details{margin:12px 0}.feedback-message{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:600px){.feedback-toolbar{right:10px}.feedback-launch{padding:4px 8px}.feedback-dialog{padding:18px}}:root{--bg: #fbfbfc;--surface: #ffffff;--surface-2: #f6f7f9;--surface-3: #eceef1;--line: #e4e6ea;--line-soft: #eef0f3;--line-strong: #d3d7dd;--ink: #16181d;--ink-2: #565b64;--ink-3: #878d97;--accent: #3e63dd;--accent-ink: #3a5bc7;--accent-soft: #edf2fe;--accent-line: #c1d0ff;--on-accent: #ffffff;--cat-lecture: #3e63dd;--cat-practice: #12a594;--cat-exam: #e5484d;--fam-preview: #6e56cf;--fam-pre: #12a594;--fam-main: #3e63dd;--fam-review: var(--ink-3);--fam-bank: #f76b15;--warn: #9a3412;--warn-soft: #fdf3ec;--warn-line: #f0d9c8;--ok: #14683f;--ok-soft: #f0f8f3;--ok-line: #c4e2d2;--r-1: 6px;--r-2: 8px;--r-3: 10px;--r-4: 14px;--shadow-1: 0 1px 2px rgb(16 18 29 / 6%);--shadow-2: 0 1px 2px rgb(16 18 29 / 6%), 0 6px 16px -6px rgb(16 18 29 / 12%);--shadow-3: 0 12px 40px -12px rgb(16 18 29 / 28%), 0 2px 6px rgb(16 18 29 / 6%);--ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent-line);color-scheme:light;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,system-ui,sans-serif;font-size:15px;font-feature-settings:"cv05" 1;color:var(--ink);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #0d0e11;--surface: #15171b;--surface-2: #1a1d22;--surface-3: #23262c;--line: #272a31;--line-soft: #1f2229;--line-strong: #363a43;--ink: #eceef1;--ink-2: #a8aeb8;--ink-3: #757c88;--accent: #3e63dd;--accent-ink: #9eb1ff;--accent-soft: #182449;--accent-line: #304384;--on-accent: #ffffff;--warn: #f0a06a;--warn-soft: #251a13;--warn-line: #4a3221;--ok: #5fc794;--ok-soft: #10201a;--ok-line: #244434;--shadow-1: 0 1px 2px rgb(0 0 0 / 40%);--shadow-2: 0 1px 2px rgb(0 0 0 / 40%), 0 6px 16px -6px rgb(0 0 0 / 50%);--shadow-3: 0 12px 40px -12px rgb(0 0 0 / 70%), 0 2px 6px rgb(0 0 0 / 40%);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.021em}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}time,.tabular{font-variant-numeric:tabular-nums}button{display:inline-flex;gap:6px;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-2);color:var(--ink-2);background:var(--surface);font-size:13px;font-weight:550;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}button:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink);background:var(--surface-2)}button:active:not(:disabled){background:var(--surface-3)}button:disabled{opacity:.45;cursor:default}button.is-quiet{border-color:transparent;background:transparent}button.is-quiet:hover:not(:disabled){border-color:transparent;background:var(--surface-3)}button.is-active{border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-soft)}button.is-primary{border-color:transparent;color:var(--on-accent);background:var(--accent)}button.is-primary:hover:not(:disabled){border-color:transparent;color:var(--on-accent);background:var(--accent-ink)}input{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);font-size:13px}input::placeholder{color:var(--ink-3)}input:focus-visible,button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring)}input:focus-visible{border-color:var(--accent)}.row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.app-bar{position:sticky;top:0;z-index:30;display:grid;height:52px;padding:0 20px;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px)}.app-brand{font-size:14px;font-weight:700;letter-spacing:-.03em}.app-bar nav{display:flex;min-width:0;gap:2px;overflow-x:auto}.app-bar nav a{flex-shrink:0;white-space:nowrap;padding:5px 9px;border-radius:var(--r-1);color:var(--ink-3);font-size:13px;font-weight:550}.app-bar nav a:hover{color:var(--ink);background:var(--surface-3)}.app-user{display:flex;gap:6px;align-items:center;color:var(--ink-3);font-size:12px}.app-user button{min-height:28px;font-size:12px}.app-main{max-width:1240px;margin:0 auto;padding:18px 20px 40px}.app-main.is-wide{max-width:1720px}.app-main.is-bare{max-width:700px;padding-top:40px}.app-main.is-bare.is-solving{max-width:1200px;padding-bottom:96px}.study-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.study-nav nav{display:flex;align-items:center;gap:18px;font-size:13px}.study-nav a{color:var(--ink-2);text-decoration:none}.study-nav a:hover{color:var(--ink)}.study-nav+.app-main.is-bare{padding-top:24px}.prequiz-narrow{max-width:700px;margin-right:auto;margin-left:auto}.is-solving .lecture-head{text-align:center}.is-solving .lecture-crumb{justify-content:center}.notice{margin:16px 0;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-3);color:var(--ink-2);background:var(--surface-2);font-size:13px;line-height:1.55}.notice.is-error,.notice.is-warning{border-color:var(--warn-line);color:var(--warn);background:var(--warn-soft)}.notice p{margin:0}.notice p+p{margin-top:4px}.badge,.tag{display:inline-flex;align-items:center;height:19px;margin:2px 4px 2px 0;padding:0 7px;border:1px solid var(--line);border-radius:999px;color:var(--ink-3);background:var(--surface);font-size:11px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.tag.is-ok{border-color:var(--ok-line);color:var(--ok);background:var(--ok-soft)}.tag.is-warn{border-color:var(--warn-line);color:var(--warn);background:var(--warn-soft)}.gate{max-width:340px;margin:16vh auto;padding:0 20px;text-align:center}.gate h1{margin-bottom:24px;font-size:22px}.gate form{display:grid;gap:8px;text-align:left}.gate label{color:var(--ink-3);font-size:12px;font-weight:600}.gate button[type=submit]{margin-top:4px;border-color:transparent;color:var(--on-accent);background:var(--accent)}.gate button[type=submit]:hover:not(:disabled){border-color:transparent;color:var(--on-accent);background:var(--accent-ink)}.gate-note{color:var(--ink-2);font-size:13px;line-height:1.6}.gate-error{color:var(--warn);font-size:12px}.gate-switch{display:flex;margin-top:14px;gap:4px;justify-content:center}.gate-switch button{font-size:12px}.gate-fineprint{margin-top:32px;color:var(--ink-3);font-size:11px;line-height:1.6}.admin-users table{max-width:620px}.lecture-head{padding-bottom:18px;border-bottom:1px solid var(--line)}.lecture-crumb{display:flex;margin:0 0 8px;gap:6px;flex-wrap:wrap;align-items:center;color:var(--ink-3);font-size:12px;font-weight:550}.lecture-crumb i{width:3px;height:3px;border-radius:50%;background:currentcolor;opacity:.55}.lecture-head h1{font-size:25px;line-height:1.3;word-break:keep-all}.lecture-meta{margin:8px 0 0;color:var(--ink-2);font-size:13px}.lecture-section{margin-top:30px}.lecture-section h2{display:flex;margin-bottom:12px;gap:8px;align-items:center;color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.lecture-section h2:after{height:1px;flex:1;background:var(--line);content:""}.resource,.resource-group{display:grid;width:100%;margin-bottom:7px;gap:2px;text-align:left}.resource{min-height:0;padding:12px 14px;grid-template-columns:1fr auto;align-items:center;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface);box-shadow:var(--shadow-1)}.resource>*{grid-column:1}a.resource:after,button.resource:after{grid-column:2;grid-row:1 / -1;color:var(--ink-3);font-size:15px;content:"→";transition:transform .14s ease}a.resource:hover:after,button.resource:hover:not(:disabled):after{transform:translate(3px)}a.resource:hover,button.resource:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-2)}.resource strong{font-size:14px;font-weight:600}.resource small{color:var(--ink-3);font-size:11.5px;overflow-wrap:anywhere}.resource.is-primary{border-color:var(--accent-line);background:var(--accent-soft)}.resource.is-primary strong,.resource.is-primary:after{color:var(--accent-ink)}.resource.is-primary:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.resource.is-empty{border-style:dashed;border-color:var(--line);color:var(--ink-3);background:transparent;box-shadow:none;font-size:13px}.resource.is-secondary{background:transparent;box-shadow:none}.resource.is-download:after{content:"↓"}button.resource.is-download:hover:not(:disabled):after{transform:translateY(3px)}.resource-group{margin-bottom:8px;gap:8px}.missed{margin-top:30px;padding:18px 20px;border:1px solid var(--accent-line);border-radius:var(--r-4);background:var(--accent-soft)}.missed h2{margin-bottom:12px;color:var(--accent-ink);font-size:14px}.missed ol{margin:0;padding-left:18px}.missed li{margin-bottom:14px}.missed li::marker{color:var(--accent);font-size:12px;font-weight:700}.missed-stem{margin:0;font-size:13.5px;line-height:1.6;word-break:keep-all}.missed-target{margin:4px 0 0;color:var(--ink-2);font-size:12px}.quiz{text-align:center}.quiz-progress{margin:0 0 12px;color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.04em}.quiz-stem{margin:0 0 4px;font-size:20px;line-height:1.6;word-break:keep-all}.quiz-why{margin:0 0 10px;line-height:1.55}.quiz-why-back{width:fit-content;max-width:100%;margin:0 auto 8px;color:var(--ink-2);font-size:14px;line-height:1.6;text-align:left;word-break:keep-all}.quiz-support-note,.quiz-hint,.quiz-takeaways{max-width:640px;margin:16px auto;color:var(--ink-2);font-size:14px;line-height:1.65;text-align:left;overflow-wrap:anywhere}.quiz-hint{text-align:center}.quiz-hint summary{display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;min-height:42px;margin:0 auto;padding:8px 18px;border:1px solid color-mix(in srgb,var(--fam-pre) 35%,var(--line));border-radius:999px;color:color-mix(in srgb,var(--fam-pre) 65%,var(--ink));background:color-mix(in srgb,var(--fam-pre) 9%,var(--surface));font-size:13px;font-weight:650;list-style:none;cursor:pointer;transition:background .15s ease,border-color .15s ease}.quiz-hint summary::-webkit-details-marker{display:none}.quiz-hint summary:hover{border-color:var(--fam-pre);background:color-mix(in srgb,var(--fam-pre) 16%,var(--surface))}.quiz-hint summary:focus-visible{outline:2px solid var(--fam-pre);outline-offset:4px}.quiz-hint-icon{width:18px;height:18px;flex-shrink:0}.quiz-hint-chevron{width:14px;height:14px;flex-shrink:0}.quiz-hint-open,.quiz-hint[open] .quiz-hint-closed{display:none}.quiz-hint[open] .quiz-hint-open{display:inline}.quiz-hint[open] .quiz-hint-chevron{transform:rotate(180deg)}.quiz-hint>p{margin:12px 0 0;padding:16px 20px;border:1px solid color-mix(in srgb,var(--fam-pre) 25%,var(--line));border-radius:var(--r-2);background:color-mix(in srgb,var(--fam-pre) 6%,var(--surface));white-space:pre-wrap}.quiz-takeaways{padding-bottom:24px}.quiz-takeaways li{margin-bottom:12px}.quiz-takeaways li p{margin:4px 0}.quiz-why-label{margin-right:8px;color:var(--ink-3);font-size:12px;font-weight:700}.badge.is-basic{border-color:transparent;color:var(--ink-2);background:var(--surface-2);font-weight:700}.badge.is-advanced{border-color:transparent;color:var(--accent-ink);background:var(--accent-soft);font-weight:700}.badge.is-challenge{border-color:transparent;color:#ea580c;background:color-mix(in srgb,#f97316 14%,var(--surface));font-weight:700}.quiz-why .badge{margin-right:6px;vertical-align:1px}.badge.why-exam{border-color:transparent;color:var(--cat-exam);background:color-mix(in srgb,var(--cat-exam) 12%,var(--surface))}.badge.why-clinical{border-color:transparent;color:var(--cat-practice);background:color-mix(in srgb,var(--cat-practice) 12%,var(--surface))}.badge.why-later{border-color:transparent;color:var(--accent-ink);background:var(--accent-soft)}.badge.why-annotation{border-color:transparent;color:#7c3aed;background:color-mix(in srgb,#8b5cf6 13%,var(--surface))}.quiz-line{width:100%;height:1px;margin:18px 0;border:0;background:var(--line)}.quiz-focus{margin-left:8px;color:var(--ink-3);font-weight:600;letter-spacing:0}.quiz-focus .badge{margin-left:6px}.quiz-submit{border-color:transparent;color:var(--on-accent);background:var(--accent)}.quiz-submit:hover:not(:disabled){border-color:transparent;color:var(--on-accent);background:var(--accent-ink)}.quiz-answer{width:fit-content;max-width:100%;margin:0 auto 10px;font-size:18px;font-weight:600;line-height:1.62;white-space:pre-wrap;text-align:left;word-break:keep-all}.quiz-explanation{width:fit-content;max-width:100%;margin:4px auto 10px;padding:12px 16px;border-radius:10px;color:var(--ink);background:var(--surface-2);font-size:16px;line-height:1.65;white-space:pre-wrap;text-align:left;word-break:keep-all}.quiz-slide{display:block;max-width:100%;max-height:75vh;margin:14px auto 0;border:1px solid var(--line);border-radius:var(--r-2)}.quiz-bar{position:fixed;right:0;bottom:0;left:0;z-index:5;display:flex;padding:12px 20px;gap:10px;justify-content:center;border-top:1px solid var(--line);background:var(--surface)}.quiz-bar button{min-width:0;min-height:46px;flex:0 1 190px;font-size:14px}.quiz-grade{display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center;line-height:1.25}.quiz-grade-name{font-weight:650}.quiz-grade-when{color:var(--ink-3);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.quiz-bar kbd{margin-left:7px;padding:1px 5px;border:1px solid var(--line);border-radius:4px;opacity:.7;font-family:inherit;font-size:11px}@media(max-width:560px){.quiz-bar kbd,.quiz-undo kbd{display:none}.quiz-bar{padding:10px 12px;gap:6px}.quiz-bar button{padding-right:6px;padding-left:6px;font-size:13px}.quiz-grade-when{font-size:10px}}.quiz-queue>span+span:before{margin:0 5px;color:var(--ink-3);content:"·"}.quiz-queue .is-new{color:var(--accent-ink)}.quiz-queue .is-learning{color:var(--cat-exam)}.quiz-queue .is-review{color:var(--ok)}.quiz-queue .is-cram{color:var(--fam-preview)}.quiz-undo{min-height:0;margin-left:10px;padding:1px 7px;border-color:transparent;color:var(--ink-3);background:none;font-size:11px;font-weight:700;letter-spacing:.04em}.quiz-undo:hover:not(:disabled){border-color:var(--line);color:var(--ink);background:var(--surface-2)}.quiz-undo kbd{margin-left:5px;opacity:.7;font-family:inherit}.badge.is-relearn{border-color:transparent;color:var(--cat-exam);background:color-mix(in srgb,var(--cat-exam) 12%,var(--surface))}.quiz-done{max-width:700px;margin:0 auto;padding:28px 20px;border:1px solid var(--line);border-radius:var(--r-4);background:var(--surface);text-align:center}.quiz-done-note{margin:6px 0 0;color:var(--ink-2);font-size:13px}.quiz-done-next{margin:14px 0 0;padding:10px 14px;border:1px solid var(--ok-line);border-radius:var(--r-2);color:var(--ok);background:var(--ok-soft);font-size:13px}.quiz-done .row{margin-top:18px;gap:8px;justify-content:center;flex-wrap:wrap}.admin-summary{color:var(--ink-2);font-size:13px}.admin-filters{display:flex;margin-bottom:12px;gap:6px;flex-wrap:wrap}.admin-tabs{display:flex;margin:14px 0 12px;gap:2px;border-bottom:1px solid var(--line)}.admin-tabs a{display:inline-flex;padding:7px 12px;gap:6px;align-items:center;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--ink-3);font-size:13px;font-weight:550}.admin-tabs a:hover{color:var(--ink)}.admin-tabs a.is-active{border-bottom-color:var(--accent);color:var(--ink)}.admin-tab-count{padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:11px;font-variant-numeric:tabular-nums}.admin-tabs a.is-active .admin-tab-count{background:var(--accent-soft);color:var(--accent-ink)}.runner-board{margin-bottom:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}.runner-board h2{margin:0 0 8px;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.04em}.runner-job{display:flex;padding:6px 0;border-top:1px solid var(--line-soft);gap:10px;align-items:baseline;font-size:12.5px}.runner-job:first-of-type{border-top:0}.runner-job small{color:var(--ink-3);font-size:11px}.runner-ask{flex-wrap:wrap;margin:0 -8px;padding:8px;border-radius:var(--r-3);background:var(--warn-soft)}.runner-ask small{color:var(--ink-2)}.runner-ask .runner-move{flex-wrap:wrap;gap:4px}.runner-ask .runner-move button:not(.is-quiet):not(.is-danger){border:1px solid var(--warn-line);color:var(--ink);background:var(--surface)}.runner-rule{margin:0;padding:6px 0 0;color:var(--ink-3);font-size:11px}.runner-move{display:flex;margin-left:auto;gap:2px;flex:none}.runner-move button{min-height:26px;padding:0 8px;color:var(--ink-3);font-size:11px}.runner-move button.is-danger{border-color:var(--warn-line);color:var(--warn);background:var(--warn-soft)}.runner-bar{height:4px;margin-top:4px;border-radius:2px;background:var(--line-soft);overflow:hidden}.runner-bar>span{display:block;height:100%;border-radius:2px;background:var(--accent);transition:width 1s linear}.admin-table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-table th{padding:8px;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:11px;font-weight:600;text-align:left}.admin-table td{padding:10px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}.admin-table tr.is-unmatched{background:var(--warn-soft)}.admin-table td small{display:block;margin-top:2px;color:var(--ink-3);font-size:11px}.admin-table input{width:100%;margin-bottom:4px;font-size:12px}.admin-usage .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-usage-name{padding:0;border:0;color:inherit;background:none;font:inherit;text-align:left;cursor:pointer}.admin-usage-name:hover{text-decoration:underline}.admin-usage tr.is-idle td{color:var(--ink-3)}.admin-usage-detail>td{padding:4px 8px 12px 20px;background:var(--surface-2)}.admin-note{margin:0 0 10px;color:var(--ink-3);font-size:11.5px}.admin-window{display:flex;margin-bottom:10px;gap:6px;flex-wrap:wrap}.admin-window button{padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-3);background:var(--surface);font-size:11.5px;cursor:pointer}.admin-window button.is-active{border-color:var(--ink-2);color:var(--ink);font-weight:600}.admin-usage .num small{color:var(--ink-3);font-size:11px;font-weight:400}.admin-usage-detail q{color:var(--ink-2)}.admin-usage-detail .admin-table{max-width:720px}.admin-preview{max-width:380px}.admin-section{margin:22px 0 10px;font-size:14px}.admin-more{display:flex;margin-top:10px;gap:8px;align-items:center}.admin-more small{color:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.admin-group{margin-bottom:8px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}.admin-group>summary{display:flex;padding:10px 14px;gap:8px;align-items:baseline;border-radius:var(--r-3);cursor:pointer;list-style:none}.admin-group>summary::-webkit-details-marker{display:none}.admin-group>summary:before{content:"▸";color:var(--ink-3);font-size:10px;transition:transform .12s ease}.admin-group[open]>summary:before{transform:rotate(90deg)}.admin-group>summary:hover{background:var(--surface-2)}.admin-group-name{font-size:14px;font-weight:600}.admin-group>summary small{color:var(--ink-3);font-size:11px}.admin-group>summary .admin-tab-count{margin-left:auto}.admin-group-body{padding:0 10px 10px}.lecture-card{display:grid;padding:10px 12px;border-top:1px solid var(--line-soft);gap:8px 14px;grid-template-columns:minmax(200px,1.2fr) auto;align-items:start}.lecture-card:first-of-type{border-top:0}.lecture-card.is-unmatched{border-radius:var(--r-2);background:var(--warn-soft)}.lecture-card-head a{font-size:13.5px;font-weight:550}.lecture-card-head small{display:block;margin-top:2px;color:var(--ink-3);font-size:11px}.lecture-card .checklist{justify-self:end}.lecture-card-facts{display:flex;grid-column:1 / -1;gap:6px 14px;align-items:baseline;flex-wrap:wrap}.lecture-fact{display:flex;gap:6px;align-items:baseline;min-width:0}.lecture-fact small{color:var(--ink-3);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.lecture-card-actions{display:flex;margin-left:auto;gap:4px}.lecture-card-actions button{min-height:26px;padding:0 9px;font-size:11.5px}.lecture-preview{display:flex;grid-column:1 / -1;gap:6px;align-items:center;flex-wrap:wrap}.lecture-preview input{flex:1 1 220px;min-width:160px;font-size:12px}.lecture-card .candidates{grid-column:1 / -1;max-width:520px}@media(max-width:720px){.lecture-card{grid-template-columns:1fr}.lecture-card .checklist{justify-self:start}}.checklist{display:flex;margin:0 0 4px;padding:0;gap:4px;flex-wrap:wrap;list-style:none}.checklist button{padding:1px 6px;border:1px solid var(--line);border-radius:5px;color:var(--ink-3);background:none;font-size:10.5px}.checklist li.is-done button{border-color:var(--line);color:var(--ink-2);background:var(--surface-2);opacity:1}.checklist li.is-todo button{border-color:var(--warn-line);color:var(--warn);background:var(--warn-soft);font-weight:600}.checklist li.is-waived button{border-style:dashed;color:var(--ink-3);text-decoration:line-through}.uploads{display:flex;margin:0 0 4px;padding:0;gap:4px;flex-wrap:wrap;list-style:none}.uploads li{padding:1px 6px;border:1px solid var(--line);border-radius:5px;color:var(--ink-3);font-size:10.5px}.uploads li.is-on{border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-soft)}.candidates{margin:6px 0 0;padding:0;list-style:none}.candidates button{width:100%;margin-bottom:3px;font-size:11.5px;text-align:left}.admin-aliases{margin-top:36px}.admin-aliases h2{margin-bottom:10px;font-size:14px}.admin-aliases table{max-width:520px;margin-bottom:10px}.policy-page{min-height:100vh;padding:28px 20px 72px;background:var(--canvas)}.policy-page>header,.policy-page>article{width:min(720px,100%);margin-inline:auto}.policy-page>header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:42px;gap:18px}.policy-page>header p,.policy-page footer{color:var(--ink-3);font-size:12px}.policy-page article{padding:clamp(24px,5vw,52px);border:1px solid var(--line);border-radius:var(--r-4);background:var(--surface);box-shadow:var(--shadow-1)}.policy-page h1{margin:0 0 18px;font-size:clamp(28px,5vw,40px);letter-spacing:-.04em}.policy-page h2{margin:32px 0 10px;font-size:17px}.policy-page p,.policy-page li{color:var(--ink-2);line-height:1.75}.policy-page .policy-lead{color:var(--ink-1);font-size:16px}.policy-page ul{padding-left:21px}.policy-page footer{margin-top:42px;padding-top:18px;border-top:1px solid var(--line-soft)}@media(max-width:560px){.policy-page>header{display:block}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.bank-edit-fields{border:0;padding:0;margin:0;display:grid;gap:12px;min-width:0}.bank-edit-fields>fieldset,.bank-edit-pairs{min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px}.bank-edit-fields input:not([type=checkbox]),.bank-edit-fields select{width:100%;min-width:0;padding:8px}.bank-edit-pairs>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:8px;margin-bottom:8px}.bank-prerequisites{max-height:200px;overflow:auto;margin-top:8px}.bank-prerequisites label{display:flex;align-items:flex-start;gap:8px;margin:6px 0}.bank-edit-error{white-space:pre-wrap}.bank-card-review h3{margin-top:28px}.card-review-note{margin:0 0 12px;color:var(--ink-3);font-size:12px}.card-review-row{margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}.card-review-row.is-deleted{background:var(--surface-2);opacity:.7}.card-review-row.is-deleted .card-review-card dd{text-decoration:line-through}.card-review-head{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-bottom:6px}.card-review-where{color:var(--ink-2);font-size:12px;font-weight:550}.card-review-head button{margin-left:auto}.card-review-why{margin:2px 0;color:var(--ink-2);font-size:12px}.card-review-card{display:grid;grid-template-columns:36px 1fr;gap:4px 10px;margin:8px 0}.card-review-card dt{color:var(--ink-3);font-size:12px}.card-review-card dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}.card-review-was{display:block;margin-top:2px;color:var(--ink-3)}.card-review-edit{display:grid;gap:8px;margin:8px 0}.card-review-edit label{display:grid;gap:3px;color:var(--ink-3);font-size:12px}.card-review-edit textarea{width:100%;padding:6px 8px;border:1px solid var(--line-strong);border-radius:var(--r-1);color:var(--ink);background:var(--surface);font:inherit;font-size:14px;resize:vertical}.card-review-slide img{display:block;max-width:100%;margin-top:6px;border:1px solid var(--line);border-radius:var(--r-1)}.card-review-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.card-review-by{margin-right:auto;color:var(--ink-3);font-size:12px}.lecture-cards-kinds{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.lecture-cards-kinds button{display:inline-flex;gap:6px;align-items:center}.lecture-cards-kinds button.is-selected{border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-soft)}.card-fix-links{display:flex;flex-wrap:wrap;gap:6px}.card-fix-link{display:inline-flex;flex-direction:column;padding:6px 10px;border:1px dashed var(--line-strong);border-radius:var(--r-2);color:var(--ink-2);font-size:12px;font-weight:550}.card-fix-link small{color:var(--ink-3);font-weight:400}.card-fix-link.is-flagged{border-style:solid;border-color:var(--warn-line);color:var(--warn);background:var(--warn-soft)}.card-fix-link.is-flagged small{color:var(--warn)}.quiz-fix{margin-left:10px;color:var(--ink-3);font-weight:500;letter-spacing:0;text-decoration:underline dotted}.quiz-fix:hover{color:var(--ink)}.card-review-row.is-focus{border-color:var(--accent-line);box-shadow:var(--ring)}.app-bar nav a.is-active{color:var(--ink);background:var(--surface-3)}.app-bar nav a{position:relative;white-space:nowrap}.nav-dot{position:absolute;top:4px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.doc-page{max-width:760px;margin:0 auto}.doc-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:8px 0 20px}.doc-head h1{margin:0;font-size:22px;letter-spacing:-.03em}.doc-empty{padding:40px 0;color:var(--ink-3);font-size:14px;text-align:center}.notice-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.notice-list>li{border-bottom:1px solid var(--line)}.notice-item.is-pinned{background:var(--surface-2)}button.notice-title{display:flex;width:100%;min-height:52px;padding:12px 10px;gap:8px;justify-content:flex-start;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:14px;text-align:left}button.notice-title:hover:not(:disabled){background:var(--surface-2)}.notice-title .badge{margin:0;border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-soft)}.notice-title strong{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}.notice-title time{flex:none;color:var(--ink-3);font-size:12px;font-weight:500}.notice-body{padding:2px 10px 16px}.notice-text{margin:0;color:var(--ink-2);font-size:14px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.notice-text a{color:var(--accent-ink);text-decoration:underline}.notice-admin{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin-top:12px}.notice-admin small{margin-right:auto;color:var(--ink-3);font-size:12px}.notice-editor{display:grid;gap:8px;margin:0 0 16px;padding:14px;border:1px solid var(--accent-line);border-radius:var(--r-3);background:var(--surface)}.notice-list .notice-editor{margin:10px 0}.notice-editor input{font-size:14px;font-weight:600}.notice-editor textarea{min-height:160px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-2);color:inherit;background:var(--surface);font:inherit;font-size:14px;line-height:1.6;resize:vertical}.notice-editor textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.notice-editor-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.notice-pin{display:inline-flex;gap:6px;align-items:center;margin-right:auto;color:var(--ink-2);font-size:13px}.notice-pin input{min-height:0}.guide-page section{padding:4px 0 8px;scroll-margin-top:64px}.guide-page h2{margin:28px 0 10px;font-size:17px;letter-spacing:-.02em}.guide-page p,.guide-page li,.guide-page dd,.guide-page td{color:var(--ink-2);font-size:14px;line-height:1.75}.guide-page b{color:var(--ink);font-weight:600}.guide-page ul,.guide-page ol{padding-left:20px}.guide-page a{color:var(--accent-ink);text-decoration:underline}.guide-page code{padding:1px 5px;border-radius:4px;background:var(--surface-3);font-size:12px}.guide-toc{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:16px;border-bottom:1px solid var(--line)}.guide-page .guide-toc a{padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);font-size:12px;text-decoration:none}.guide-page .guide-toc a:hover{border-color:var(--line-strong);color:var(--ink)}.guide-marks{display:grid;gap:6px;margin:12px 0 0}.guide-marks>div{display:flex;gap:14px;align-items:baseline}.guide-marks dt{display:flex;flex:none;gap:5px;width:44px;justify-content:center;zoom:1.7}.guide-marks dd{margin:0}.guide-keys{margin:12px 0;border-collapse:collapse}.guide-keys th,.guide-keys td{padding:6px 14px 6px 0;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle}.guide-keys th{white-space:nowrap}.guide-keys kbd{display:inline-block;min-width:20px;padding:1px 6px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;color:var(--ink);background:var(--surface);font-family:inherit;font-size:12px;text-align:center}.guide-note{padding:10px 12px;border-radius:var(--r-2);background:var(--surface-2)}@media(max-width:560px){.app-bar{padding:0 12px;gap:8px}.app-bar nav a{padding:5px 6px}.app-email{display:none}}.guide-page .flow-map{margin:16px -60px 0}@media(max-width:900px){.guide-page .flow-map{margin-inline:0}}.flow-map{margin:16px 0 0;padding:16px;border:1px solid var(--line);border-radius:var(--r-4);background:var(--surface)}.flow-phases{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,.8fr) 18px minmax(0,1.15fr) 18px minmax(0,1fr);align-items:stretch;margin:0;padding:0;list-style:none}.guide-page .flow-phases li{font-size:13px;line-height:1.45}.flow-phase{display:flex;flex-direction:column;gap:6px;min-width:0}.flow-when{color:var(--ink-3);font-size:11px;font-weight:650;letter-spacing:.02em}.flow-step{--fam: var(--ink-3);display:flex;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--fam) 35%,var(--line));border-left:3px solid var(--fam);border-radius:var(--r-2);background:color-mix(in srgb,var(--fam) 7%,var(--surface))}.flow-step.is-preview{--fam: var(--fam-preview)}.flow-step.is-pre{--fam: var(--fam-pre)}.flow-step.is-main{--fam: var(--fam-main)}.flow-step.is-exam{--fam: var(--cat-exam)}.flow-step.is-class{border-style:dashed;border-left-style:solid;background:var(--surface-2)}.guide-page .flow-step b{display:flex;gap:6px;align-items:center;color:color-mix(in srgb,var(--fam) 75%,var(--ink));font-size:14px;font-weight:700}.flow-step>span{color:var(--ink-2)}.flow-step small{color:var(--ink-3);font-size:11.5px}.flow-map .chip-slot{display:inline-block;zoom:1.5;vertical-align:middle}.flow-step .chip-slot{--cat: var(--fam)}.flow-loop{display:inline-flex;gap:5px;align-items:center;align-self:flex-start;margin-top:6px;padding:3px 8px 3px 6px;border-radius:999px;color:var(--fam-main);background:color-mix(in srgb,var(--fam-main) 12%,var(--surface));font-size:11.5px;font-weight:600}.flow-loop svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.flow-source{margin-top:auto;padding-top:4px;color:var(--ink-3);font-size:11.5px}.flow-arrow{position:relative}.flow-arrow:before{position:absolute;top:52px;left:3px;right:3px;height:1.5px;background:var(--line-strong);content:""}.flow-arrow:after{position:absolute;top:48.5px;right:2px;width:6px;height:6px;border-top:1.5px solid var(--line-strong);border-right:1.5px solid var(--line-strong);transform:rotate(45deg);content:""}.flow-down{align-self:center;width:1.5px;height:8px;background:var(--line-strong)}.flow-map figcaption{margin-top:14px;padding-top:10px;border-top:1px solid var(--line-soft);color:var(--ink-3);font-size:12px;line-height:1.6}@media(max-width:720px){.flow-phases{grid-template-columns:minmax(0,1fr)}.flow-arrow{height:22px}.flow-arrow:before{top:3px;bottom:3px;left:calc(50% - .75px);right:auto;width:1.5px;height:auto}.flow-arrow:after{top:auto;bottom:3px;right:auto;left:calc(50% - 3.5px);transform:rotate(135deg)}.flow-source{margin-top:0}}.bank-progress{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between}.bank-note{margin:8px 0;color:var(--ink-2);font-size:14px;line-height:1.6}.bank-start-row select{margin-left:6px;padding:4px 8px;border:1px solid var(--line-strong);border-radius:var(--r-2);color:var(--ink);background:var(--surface);font:inherit}.bank-tags{color:var(--ink-3);font-size:12px}.bank-conflict{margin:0 0 12px;padding:8px 12px;border:1px solid var(--warn-line);border-radius:var(--r-2);color:var(--warn);background:var(--warn-soft);font-size:13px}.bank-blank{display:inline-block;min-width:3.5em;margin:0 2px;padding:0 6px;border-bottom:2px solid var(--fam-bank);color:var(--ink-3);text-align:center}.bank-blank.is-filled{color:var(--ink);font-weight:650;background:color-mix(in srgb,var(--fam-bank) 10%,var(--surface))}.bank-options{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.bank-option{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-3);color:var(--ink);background:var(--surface);text-align:left}.bank-option b{margin-right:8px;color:var(--ink-3)}.bank-option.is-picked{border-color:var(--accent-line);background:var(--accent-soft)}.bank-option:disabled{opacity:1;cursor:default}.bank-option.is-correct{border-color:var(--ok);color:var(--ok);font-weight:650;background:var(--ok-soft)}.bank-option.is-correct:after{content:" ✓"}.bank-match{display:grid;grid-template-columns:auto auto;justify-content:center;gap:4px 56px;max-width:760px;margin:16px auto 0}.bank-progress-actions{display:inline-flex;gap:10px}.bank-match li{overflow-wrap:anywhere}.bank-match b,.bank-units b{display:inline-block;min-width:1.4em;color:var(--accent-ink)}.bank-items,.bank-units{margin:0;padding:0;list-style:none;line-height:1.8}.bank-match ul{margin:0;padding:0;list-style:none;text-align:left;line-height:1.8}.bank-units{margin-top:8px;color:var(--ink-2)}.bank-order{color:var(--ink-2)}.bank-answer-point{color:var(--accent-ink);font-weight:700}.bank-short-answer{padding-left:1.25em}.bank-short-answer li+li{margin-top:6px}.bank-answer-context{max-width:760px;margin:12px auto;color:var(--ink-2);font-size:14px;line-height:1.65}.bank-answer-context summary{width:fit-content;margin:0 auto;cursor:pointer}.bank-answer-context p{margin:8px 0 0;white-space:pre-wrap}.bank-ox-explanation,.bank-choice-explanation{width:min(100%,720px);margin-top:16px;padding:18px 22px;border:1px solid var(--line-strong)}.bank-ox-explanation h2,.bank-choice-explanation h2{margin:0 0 10px;font-size:16px;line-height:1.5}.bank-ox-explanation ul,.bank-choice-explanation ul{margin:0;padding:0;list-style:none}.bank-ox-explanation li+li,.bank-choice-explanation li+li{margin-top:10px}.bank-ox-explanation p,.bank-choice-explanation p{margin:0}.bank-choice-explanation p+p{margin-top:4px;white-space:pre-wrap}.bank-review{margin:14px 0;padding:10px 14px;border-radius:var(--r-2);font-size:14px;line-height:1.7}.bank-review.is-doubt{border:1px solid var(--warn-line);color:var(--warn);background:var(--warn-soft)}.bank-review.is-wrong{border:1px solid color-mix(in srgb,var(--cat-exam) 40%,var(--line));color:color-mix(in srgb,var(--cat-exam) 75%,var(--ink));background:color-mix(in srgb,var(--cat-exam) 9%,var(--surface))}.bank-question-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;font-size:13px}.bank-question-actions .quiz-fix{margin:0}.bank-question-actions [role=status]{color:var(--ink-3)}.bank-feedback-dialog{width:min(640px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box;padding:24px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:16px}.bank-feedback-dialog::backdrop{background:#0006}.bank-feedback-dialog header{display:flex;justify-content:space-between;align-items:center}.bank-feedback-dialog h2{margin:0;font-size:20px}.bank-feedback-id{color:var(--ink-3);font-size:13px}.bank-feedback-dialog label{display:block;margin-top:16px;font-size:14px}.bank-feedback-dialog select,.bank-feedback-dialog textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}.bank-feedback-dialog textarea{min-height:150px;resize:vertical;line-height:1.6}.bank-feedback-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.bank-personal-hint{font-size:14px;color:var(--ink-2)}.bank-report-highlighted{border-color:var(--accent-line);border-left:4px solid var(--accent)}.bank-report-entry{white-space:pre-wrap;overflow-wrap:anywhere}.bank-report-entry.is-highlighted{padding:10px 12px;border-radius:8px;background:var(--accent-soft)}.bank-personal-answer,.bank-personal-original{margin-top:16px}.bank-personal-original p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.bank-feedback-dialog small{display:block;margin-top:6px;color:var(--ink-3)}.bank-feedback-dialog .bank-personal-report{display:flex;gap:8px;align-items:center}.bank-feedback-dialog footer{flex-wrap:wrap}.bank-feedback-dialog button[type=submit]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}@media(max-width:600px){.bank-feedback-dialog{padding:18px}}.bank-start h2{margin:18px 0 6px}.bank-start{text-align:left}.bank-start-heading,.bank-cmap-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.bank-start-heading{margin:16px 0}.bank-start-heading h2{margin:0}.bank-start-heading .quiz-submit{width:auto;min-width:130px;padding:0 24px}.bank-secondary-actions,.bank-download-details,.bank-session-details,.bank-cmap-details{font-size:13px;color:var(--ink-2)}.bank-start summary{cursor:pointer}.bank-options label{display:block;margin-top:10px}.bank-session-details,.bank-download-details{margin-top:16px}.bank-download-details .resource{margin-top:12px}.bank-start-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0}.bank-start-row .quiz-submit{width:auto;padding:0 28px}.bank-summary{margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface-2)}.bank-summary h3,.bank-summary h4{margin:0 0 6px}.bank-summary ul{margin:0;padding:0;list-style:none;line-height:1.8}@media(max-width:640px){.bank-match{grid-template-columns:1fr}}.bank-cmap{--cmap-yellow-fill: #f8d65a;--cmap-yellow-line: #977316;--cmap-yellow-halo: #fcf1ce;--cmap-green-fill: #d1e5d8;--cmap-green-line: #63846e;--cmap-blue-fill: #e1e9f6;--cmap-blue-line: #7c91ae;--cmap-blue-badge: #526f96;margin:20px 0 8px;text-align:left}@media(prefers-color-scheme:dark){.bank-cmap{--cmap-yellow-fill: #705719;--cmap-yellow-line: #edc751;--cmap-yellow-halo: #362d17;--cmap-green-fill: #203e31;--cmap-green-line: #578166;--cmap-blue-fill: #26374d;--cmap-blue-line: #66819f;--cmap-blue-badge: #86a5cc}}.bank-cmap-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;color:var(--ink-2);font-size:11px}.bank-cmap-legend span{display:inline-flex;align-items:center;gap:5px}.bank-cmap-legend i{width:9px;height:9px;border:1px solid var(--ink-3);border-radius:50%;background:var(--surface-2)}.bank-cmap-legend .is-attention{background:var(--cmap-yellow-fill);border-color:var(--cmap-yellow-line)}.bank-cmap-legend .is-growing{background:var(--cmap-green-fill);border-color:var(--cmap-green-line)}.bank-cmap-legend .is-reached{background:var(--cmap-blue-fill);border-color:var(--cmap-blue-line)}.bank-cmap h3{margin:0;font-size:16px}.bank-cmap-heading>span,.bank-cmap-hint{font-size:12px;color:var(--ink-2)}.bank-cmap-hint{margin:8px 0}.bank-cmap-details{margin:12px 0}.bank-cmap-details summary{cursor:pointer}.bank-cmap-details p{line-height:1.7}.bank-cmap-details .bank-cmap-cards{margin-top:12px;color:var(--ink)}.bank-cmap-graph{display:block;width:100%;height:auto;margin:12px 0 20px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}.bank-cmap-graph line{stroke:var(--line-strong);stroke-width:1;stroke-opacity:.45;transition:stroke-opacity .16s,stroke .16s;pointer-events:none}.bank-cmap-graph line.is-focus{stroke:var(--accent);stroke-width:1.5;stroke-opacity:.85}.bank-cmap-graph line.is-muted{stroke-opacity:.12}.bank-cmap-node{cursor:pointer;transition:opacity .16s}.bank-cmap-node.is-muted{opacity:.4}.bank-cmap-hit{fill:transparent;stroke:none}.bank-cmap-dot{stroke-width:1}.bank-cmap-node.is-attention .bank-cmap-dot{stroke-width:1.8}.bank-cmap-node.is-attention .bank-cmap-hit{fill:var(--cmap-yellow-halo)}.bank-cmap-node.is-optional .bank-cmap-dot{stroke-dasharray:3 3}.bank-cmap-node.is-focus .bank-cmap-dot,.bank-cmap-node:focus-visible .bank-cmap-dot{stroke:var(--accent);stroke-width:2}.bank-cmap-node.is-focus .bank-cmap-hit,.bank-cmap-node:focus-visible .bank-cmap-hit{fill:var(--accent-soft)}.bank-cmap-node:focus{outline:none}.bank-cmap-percent{fill:var(--ink);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;text-anchor:middle;pointer-events:none}.bank-cmap-achieved{pointer-events:none}.bank-cmap-achieved circle{fill:var(--cmap-blue-badge);stroke:var(--surface);stroke-width:2}.bank-cmap-achieved path{fill:none;stroke:var(--surface);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.bank-cmap-label{fill:var(--ink-2);font-size:10.5px;font-weight:500;text-anchor:middle;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}@media(prefers-reduced-motion:reduce){.bank-cmap-node,.bank-cmap-graph line{transition:none}}.bank-cmap-cards{display:grid;gap:10px}.bank-cmap-card{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface);scroll-margin-top:80px}.bank-cmap-card.is-focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.bank-cmap-card header{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}.bank-cmap-meta{color:var(--ink-3);font-size:12px}.bank-cmap-facts{margin:8px 0 4px;padding-left:18px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.bank-cmap-why{margin:4px 0;color:var(--ink-2);font-size:12px}.bank-cmap-dirs{display:grid;gap:4px;margin:8px 0 2px}.bank-cmap-dir{display:grid;grid-template-columns:48px 1fr 84px;gap:8px;align-items:center;font-size:12px}.bank-cmap-dir small{color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}.bank-cmap-bar{position:relative;height:8px;border-radius:4px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.bank-cmap-fill{position:absolute;inset:0 auto 0 0;border-radius:4px;background:var(--ok)}.bank-cmap-target{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink-2)}.bank-cmap-related{margin:6px 0 0;color:var(--ink-3);font-size:12px}.prequiz-bar .quiz-grade{max-width:280px;font-size:15px;padding:14px 10px}.prequiz-bar .is-listen{color:var(--ink-2);border-color:var(--line)}.prequiz-page-head{max-width:42rem;margin:0 auto 14px}.prequiz-page-head h1{margin:0;font-size:14px;font-weight:550;line-height:1.5;overflow-wrap:anywhere}.prequiz-page-head a{color:var(--ink-3);text-decoration:none}.prequiz-page-head a:hover{color:var(--ink);text-decoration:underline}.prequiz-page>.lecture-section{margin-top:0}.prequiz-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;max-width:42rem;margin:0 auto 18px;text-align:left}.prequiz-status .prequiz-progress{margin:0}.prequiz-status .prequiz-progress>p{margin:0;justify-content:flex-start;font-size:12px}.prequiz-status .quiz-why{margin:0}.prequiz-status .badge{font-size:11px}.prequiz-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;max-width:42rem;margin:24px auto 0;font-size:12px}.prequiz-tools:empty{display:none}.prequiz-tools .quiz-undo,.prequiz-tools .quiz-fix{margin:0}.prequiz-text{display:block;white-space:pre-line;word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty;text-align:left}.prequiz-text-paragraph{display:block}.prequiz-text-paragraph+.prequiz-text-paragraph{margin-top:.65em}.prequiz .quiz-stem{max-width:42rem;margin:0 auto 20px;line-height:1.75;text-align:left}.prequiz .quiz-answer,.prequiz .quiz-explanation,.prequiz .quiz-support-note,.prequiz .quiz-why-back,.prequiz .quiz-hint{width:100%;max-width:42rem;margin-inline:auto;text-align:left}.prequiz .quiz-support-note>strong{display:block;margin-bottom:6px}.prequiz-progress{margin:0 auto 16px;text-align:center}.prequiz-progress>p{display:flex;gap:10px;justify-content:center;align-items:baseline;margin:0 0 10px;font-size:13px}.prequiz-progress>p>span{color:var(--ink-3)}.prequiz-progress strong{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}.prequiz-bar .prequiz-choice{border-color:var(--line-strong);color:var(--ink);background:var(--surface-2);border-radius:var(--r-3)}.prequiz-bar .prequiz-choice:hover:not(:disabled){border-color:var(--ink-3);background:var(--surface-3)}.prequiz-difficult{margin:24px 0;text-align:left}.prequiz-difficult h3{margin:0 0 6px;font-size:18px}.prequiz-review-note{margin:0 0 16px;color:var(--ink-2);font-size:13px;line-height:1.6}.prequiz-review-list{display:grid;gap:14px}.prequiz-review-card{padding:20px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}.prequiz-review-number{display:block;margin-bottom:8px;color:var(--ink-3);font-size:11px}.prequiz-review-card .quiz-why{margin-bottom:10px}.prequiz-review-card h4{margin:0 0 16px;font-size:16px;font-weight:650;line-height:1.6;overflow-wrap:anywhere}.prequiz-review-answer,.prequiz-review-explanation,.prequiz-review-focus{margin:12px 0 0;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.prequiz-review-explanation,.prequiz-review-focus{color:var(--ink-2)}.prequiz-review-card b{display:block;margin-bottom:4px;color:var(--ink-3);font-size:11px;font-weight:600}.prequiz-review-start{display:block;width:100%;margin-top:16px;min-height:44px;border-color:var(--accent-line);color:var(--ink);background:var(--accent-soft);font-weight:650}.prequiz-review-start:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.bank-cmap-related button{padding:0 4px;font-size:12px}.calendar-page{--panel-w: 374px;--time-col: 56px;--time-col-split: 50px;display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 0;column-gap:0;row-gap:12px;align-items:start;overflow-x:clip;overflow-y:visible;transition:grid-template-columns .26s cubic-bezier(.32,.72,0,1),column-gap .26s cubic-bezier(.32,.72,0,1)}.calendar-page.is-split{grid-template-columns:minmax(0,1fr) var(--panel-w);column-gap:14px}.calendar-main{display:flex;min-width:0;height:calc(100dvh - 110px);gap:12px;flex-direction:column}.calendar-page.is-split .week-calendar{grid-template-columns:var(--time-col-split) repeat(5,minmax(0,1fr))}.calendar-toolbar{display:grid;padding:2px 2px 6px;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.calendar-heading{display:flex;min-width:0;gap:10px;justify-content:center;align-items:center}.calendar-toolbar h1{min-width:0;overflow:hidden;font-size:clamp(17px,2vw,21px);font-variant-numeric:tabular-nums;text-align:center;text-overflow:ellipsis;white-space:nowrap}.calendar-step{width:34px;min-height:34px;flex:none;padding:0;border-radius:var(--r-3);color:var(--ink-2);font-size:22px;line-height:1}.calendar-step:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-soft)}.calendar-actions{display:flex;gap:8px;align-items:center}.calendar-actions.is-right{justify-content:flex-end}.calendar-mode{display:flex;padding:2px;gap:2px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface-2)}.calendar-mode button{min-width:38px;min-height:26px;padding:0 8px;border:1px solid transparent;border-radius:var(--r-1);color:var(--ink-3);background:transparent;font-size:12.5px}.calendar-mode button:hover:not(:disabled){border-color:transparent;color:var(--ink-2);background:transparent}.calendar-mode button.is-selected{color:var(--ink);background:var(--surface);box-shadow:var(--shadow-1)}.week-calendar,.month-calendar{--row-min: 62px;min-height:0;flex:1;overflow:auto;border:1px solid var(--line);border-radius:var(--r-4);background:var(--surface);box-shadow:var(--shadow-1);overscroll-behavior:contain}.week-calendar{display:grid;grid-template-columns:var(--time-col) repeat(5,minmax(0,1fr));grid-template-rows:46px;grid-auto-rows:minmax(var(--row-min),1fr)}.week-head{position:sticky;top:0;z-index:5;display:grid;min-height:46px;gap:1px;place-content:center;border-bottom:1px solid var(--line);background:var(--surface);text-align:center}.week-head.is-spacer{left:0;z-index:7;border-right:1px solid var(--line-soft)}.week-head span{color:var(--ink-3);font-size:10px;font-weight:650;letter-spacing:.04em}.week-head strong{font-size:14px;font-variant-numeric:tabular-nums;font-weight:600}.week-head.is-today span{color:var(--accent)}.week-head.is-today strong,.month-day.is-today .month-date{display:grid;min-width:24px;height:24px;padding-inline:5px;place-items:center;justify-self:center;border-radius:999px;color:var(--on-accent);background:var(--accent)}.week-row{display:contents}.calendar-time{position:sticky;left:0;z-index:3;display:grid;padding:0 8px;align-content:start;justify-items:end;border-right:1px solid var(--line-soft);background:var(--surface)}.calendar-time strong{transform:translateY(-6px);color:var(--ink-3);font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:550}.calendar-time.is-first{padding-top:5px}.calendar-time.is-first strong{transform:none}.week-cell{min-width:0;border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft)}.week-cell.is-today{background:color-mix(in srgb,var(--accent) 3%,transparent)}.calendar-lunch-divider{z-index:4;height:0;align-self:start;border-top:1px dashed var(--line-strong);pointer-events:none}.week-event-span{z-index:2;min-width:0;padding:3px;container:cell / size}.week-event-span .calendar-event{height:100%;min-height:0}.month-calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:min-content;grid-auto-rows:minmax(min-content,auto)}.month-weekday{position:sticky;top:0;z-index:5;display:grid;min-height:36px;place-items:center;border-bottom:1px solid var(--line);color:var(--ink-3);background:var(--surface);font-size:10px;font-weight:650;letter-spacing:.04em}.month-day{display:grid;min-height:112px;min-width:0;padding:7px 6px;grid-template-rows:24px auto;gap:4px;align-content:start;border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft)}.month-day.is-outside{color:var(--ink-3);background:var(--surface-2)}.month-day.is-outside .month-date{opacity:.6}.month-date{justify-self:start;padding-left:3px;font-size:11.5px;font-variant-numeric:tabular-nums;font-weight:600}.month-events{display:grid;gap:3px}.calendar-event{--cat: var(--ink-3);--rail: 100%;position:relative;display:grid;width:100%;min-height:0;min-width:0;padding:7px 9px 7px 12px;grid-template-columns:minmax(0,1fr);grid-auto-rows:min-content;gap:1px;align-content:start;align-items:start;justify-items:stretch;overflow:hidden;border:1px solid color-mix(in srgb,var(--cat) 16%,var(--line));border-radius:var(--r-2);color:var(--ink);background:var(--surface);text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.calendar-event:before{position:absolute;top:0;bottom:0;left:0;width:3px;background:color-mix(in srgb,var(--cat) var(--rail),var(--line-strong));content:""}.calendar-event:hover:not(:disabled){border-color:color-mix(in srgb,var(--cat) 34%,var(--line));background:color-mix(in srgb,var(--cat) 7%,var(--surface));box-shadow:var(--shadow-1)}.calendar-event.is-lecture{--cat: var(--cat-lecture)}.calendar-event.is-practice{--cat: var(--cat-practice)}.calendar-event.is-exam{--cat: var(--cat-exam)}.calendar-event.state-todo .calendar-event-primary{font-weight:650}.calendar-event.is-open,.calendar-event.is-open:hover:not(:disabled){border-color:color-mix(in srgb,var(--cat) 55%,var(--line));background:color-mix(in srgb,var(--cat) 15%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--cat) 26%,transparent),var(--shadow-1)}.calendar-event-primary{display:-webkit-box;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:1.32;overflow:hidden;word-break:keep-all;-webkit-box-orient:vertical;-webkit-line-clamp:3}.calendar-event-meta{display:block;min-width:0;overflow:hidden}.calendar-event-professor,.calendar-event-series{display:block;max-width:100%;overflow:hidden;color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap}.calendar-event-professor{font-size:10.5px;font-weight:500}.calendar-event-series{display:none;font-size:9.5px}@container cell (max-width: 120px){.calendar-event{padding-inline:8px 7px}}@container cell (max-height: 89px){.calendar-event-primary{-webkit-line-clamp:2}}@container cell (min-height: 77px){.calendar-event-meta{display:contents}.calendar-event-series{display:block}}@container cell (max-height: 66px){.calendar-event{padding-block:3px}}@container cell (max-height: 53px){.calendar-event-meta{display:none}}.calendar-event.is-exam .calendar-event-primary{font-weight:700}.calendar-event.is-holiday,.calendar-event.is-study,.calendar-event.is-elective{--cat: var(--ink-3);--rail: 0%;border-style:dashed;color:var(--ink-3)}.calendar-event.is-holiday .calendar-event-primary,.calendar-event.is-study .calendar-event-primary,.calendar-event.is-elective .calendar-event-primary{font-weight:550}.calendar-event.is-compact{min-height:22px;padding:3px 7px;border-radius:var(--r-1)}.calendar-event.is-compact .calendar-event-primary{font-size:10.5px;-webkit-line-clamp:1}.legend-group.is-learning{flex-wrap:wrap}.learning-legend-track{display:inline-block;width:18px;height:5px;border-radius:99px}.learning-legend-track.is-empty{border:1px solid var(--line-strong)}.learning-legend-track.is-progress{background:#238563}.learning-legend-track.is-complete{background:#3984d5}.calendar-event.has-learning{padding-bottom:32px}.calendar-event-footer{position:absolute;bottom:5px;left:12px;right:12px}.chip-learning-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chip-learning{display:grid;min-width:0;gap:3px;align-items:center}.chip-learning-bars{display:flex;flex:1;min-width:0;gap:3px}.chip-learning-track{--learning-color: #238563;display:block;flex:1;height:6px;overflow:hidden;border-radius:99px;border:1px solid var(--line-strong);background:transparent}.chip-learning-track.is-complete{--learning-color: #3984d5}.chip-learning.is-unavailable,.chip-learning-track.is-unavailable{visibility:hidden}.chip-learning-fill{display:block;height:100%;border-radius:inherit;background:var(--learning-color)}.chip-learning-value{min-width:0;text-align:left;font-size:10px;font-weight:650;line-height:12px;font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.chip-learning-label{font-weight:500;color:var(--ink-3)}.calendar-event.is-compact.has-learning{padding-bottom:29px}.calendar-event.is-compact.has-learning .calendar-event-footer{left:7px;right:7px;bottom:3px}.calendar-event.is-compact.has-learning .chip-learning-label{display:none}.month-day{container:month-cell / inline-size}@container cell (max-width: 240px){.chip-learning-label{display:none}}@container cell (max-width: 120px){.calendar-event-footer{left:8px;right:8px}.chip-learning-pair{gap:6px}}@container cell (max-width: 110px){.chip-learning-value{display:none}}@container month-cell (max-width: 110px){.chip-learning-value{display:none}.chip-learning-pair{gap:6px}}@container cell (max-height: 106px){.calendar-event.has-learning .calendar-event-primary{-webkit-line-clamp:2}.calendar-event.has-learning .calendar-event-meta{display:block}.calendar-event.has-learning .calendar-event-series{display:none}}@container cell (max-height: 85px){.calendar-event.has-learning{padding-top:4px}.calendar-event.has-learning .calendar-event-primary{-webkit-line-clamp:1;padding-right:0}}@container cell (max-width: 90px) and (min-height: 66px){.calendar-event.has-learning .calendar-event-primary{-webkit-line-clamp:2}.calendar-event.has-learning .calendar-event-meta{display:none}}@container cell (max-height: 66px){.calendar-event.has-learning .calendar-event-meta{display:none}}.calendar-legend{display:flex;margin:0;padding:0 4px;gap:8px 18px;flex-wrap:wrap;align-items:center;color:var(--ink-3);font-size:11.5px}.legend-group{display:flex;gap:10px;align-items:center}.legend-group span{display:flex;gap:5px;align-items:center}.legend-swatch{width:11px;height:11px;border:1px solid color-mix(in srgb,var(--cat) 16%,var(--line));border-left:3px solid var(--cat);border-radius:3px;background:var(--surface)}.legend-swatch.is-lecture{--cat: var(--cat-lecture)}.legend-swatch.is-practice{--cat: var(--cat-practice)}.legend-swatch.is-exam{--cat: var(--cat-exam)}.legend-swatch.is-off{--cat: var(--ink-3);border-style:dashed;border-left-width:1px;background:transparent}.panel-scrim{display:none}.event-panel{position:sticky;top:66px;width:var(--panel-w);max-height:calc(100dvh - 110px);padding:16px 18px 22px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-4);background:var(--surface);box-shadow:var(--shadow-1);animation:panel-in .26s cubic-bezier(.32,.72,0,1);overscroll-behavior:contain}.event-panel:focus{outline:none}.event-panel-head{display:flex;margin-bottom:14px;justify-content:space-between;align-items:center}.event-panel-kind{--cat: var(--ink-3);display:inline-flex;align-items:center;height:21px;padding:0 9px;border:1px solid color-mix(in srgb,var(--cat) 30%,var(--line));border-radius:999px;color:color-mix(in srgb,var(--cat) 72%,var(--ink));background:color-mix(in srgb,var(--cat) 13%,var(--surface));font-size:11px;font-weight:600}.event-panel-kind.is-lecture{--cat: var(--cat-lecture)}.event-panel-kind.is-practice{--cat: var(--cat-practice)}.event-panel-kind.is-exam{--cat: var(--cat-exam)}.event-panel-close{width:28px;min-height:28px;padding:0;color:var(--ink-3);font-size:13px}.event-panel-title{margin-bottom:18px;font-size:20px;line-height:1.34;word-break:keep-all}.event-panel-facts{display:grid;margin:0;gap:0;border-top:1px solid var(--line-soft)}.event-panel-fact{display:grid;padding:9px 0;grid-template-columns:62px 1fr;gap:12px;align-items:baseline;border-bottom:1px solid var(--line-soft)}.event-panel-fact dt{color:var(--ink-3);font-size:11.5px;font-weight:600}.event-panel-fact dd{margin:0;color:var(--ink);font-size:13px;line-height:1.5;word-break:keep-all}.event-panel-section h3{margin-bottom:10px;color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.event-panel-switch{display:flex;margin-bottom:16px;padding:2px;gap:2px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface-2)}.event-panel-switch button{min-width:0;min-height:26px;flex:1;padding:0 8px;overflow:hidden;border-color:transparent;border-radius:var(--r-1);color:var(--ink-3);background:transparent;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.event-panel-switch button.is-selected{color:var(--ink);background:var(--surface);box-shadow:var(--shadow-1)}.event-panel-byline{margin:0 0 16px;color:var(--ink-2);font-size:12.5px}.event-panel-actions{margin-bottom:22px}.panel-group{--fam: var(--accent);--fam-ink: color-mix(in srgb, var(--fam) 72%, var(--ink));--fam-soft: color-mix(in srgb, var(--fam) 9%, var(--surface));--fam-hover: color-mix(in srgb, var(--fam) 16%, var(--surface));--fam-line: color-mix(in srgb, var(--fam) 30%, var(--line));margin-bottom:15px}@media(prefers-color-scheme:dark){.panel-group{--fam-soft: color-mix(in srgb, var(--fam) 18%, var(--surface));--fam-hover: color-mix(in srgb, var(--fam) 28%, var(--surface));--fam-line: color-mix(in srgb, var(--fam) 42%, var(--line))}}.panel-group.is-preview,.panel-group.is-review{--fam: var(--fam-preview)}.panel-group.is-pre{--fam: var(--fam-pre)}.panel-group.is-main{--fam: var(--fam-main)}.panel-group.is-main .panel-action.is-key strong{color:var(--fam-main)}.legacy-main{color:var(--ink-3)}.legacy-main.panel-hint{color:var(--ink-3);background:var(--surface-2)}.legacy-main a,.legacy-main button,.legacy-main .resource strong{color:var(--ink-2)}.legacy-main .resource{border-color:var(--line);background:var(--surface-2)}.panel-group.is-bank{--fam: var(--fam-bank)}.panel-group.is-plain{--fam: var(--ink-3)}.panel-group.is-fold>.panel-group-head{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.panel-group.is-fold>.panel-group-head::-webkit-details-marker{display:none}.panel-group.is-fold>.panel-group-head:after{flex:0 0 auto;margin-left:auto;color:var(--ink-3);content:"▾";font-size:10px;transition:transform .12s ease}.panel-group.is-fold[open]>.panel-group-head:after{transform:rotate(180deg)}.panel-group.is-fold>.panel-group-head:hover{color:var(--ink-2)}.panel-group.is-fold:not([open])>.panel-group-head{margin-bottom:0}.panel-group-head{display:flex;margin:0 0 6px;padding:0 2px;gap:7px;align-items:center;color:var(--fam-ink);font-size:12px;font-weight:700}.panel-group-head:before{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--fam);content:""}.panel-group-head small{color:var(--ink-3);font-size:10.5px;font-weight:500}.prompt-editor-model{display:flex;margin:0 0 2px;gap:10px;justify-content:space-between;align-items:center;color:var(--ink-2);font-size:11.5px;font-weight:600}.prompt-editor-model select{min-height:26px;padding:0 24px 0 8px;border:1px solid var(--line);border-radius:var(--r-1);color:var(--ink-2);background:var(--surface);font:inherit;font-size:11px;font-weight:600}.panel-action{position:relative;display:block;width:100%;margin-bottom:5px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface-2);text-align:left;transition:background .12s ease,border-color .12s ease}.panel-action-hit{display:flex;width:100%;min-height:0;padding:0;gap:8px;align-items:baseline;border:0;border-radius:0;color:inherit;background:transparent;font:inherit;text-align:left}.panel-action-hit:before{position:absolute;inset:0;border-radius:inherit;content:""}.panel-action strong{overflow:hidden;flex:0 1 auto;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.panel-action small{overflow:hidden;flex:1 1 auto;color:var(--ink-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}a.panel-action-hit:after,button.panel-action-hit:after{flex:0 0 auto;margin-left:auto;color:var(--ink-3);font-size:14px;content:"→";transition:transform .14s ease}.panel-action:has(a.panel-action-hit:hover),.panel-action:has(button.panel-action-hit:hover:not(:disabled)){border-color:var(--fam-line);color:var(--ink);background:var(--fam-hover)}a.panel-action-hit:hover:after,button.panel-action-hit:hover:not(:disabled):after{color:var(--fam);transform:translate(3px)}button.panel-action-hit:hover:not(:disabled),button.panel-action-hit:active:not(:disabled){border-color:transparent;background:transparent}.panel-action.is-key{margin-bottom:7px;padding:12px 14px;border-color:var(--fam-line);background:var(--fam-soft)}.panel-action.is-key strong{font-size:14px}.panel-action.is-key .panel-action-hit:after{color:var(--fam);font-size:15px}.panel-action.is-key:has(a.panel-action-hit:hover),.panel-action.is-key:has(button.panel-action-hit:hover:not(:disabled)){border-color:var(--fam);background:var(--fam-hover);box-shadow:var(--shadow-2)}.panel-action.is-key.is-faint{border-color:var(--line);background:var(--surface-2)}.panel-action.is-download .panel-action-hit:after{content:"↓"}.panel-action.is-download button.panel-action-hit:hover:not(:disabled):after{transform:translateY(3px)}.panel-action.is-empty{border-style:dashed;border-color:var(--line);background:transparent;box-shadow:none}.panel-action.is-empty strong{color:var(--ink-2);font-weight:600}.panel-action.is-key.is-review{border-color:var(--fam-line);background:var(--fam-soft)}.panel-action.is-key.is-review strong{color:var(--ink)}.panel-group:not(.is-plain) .panel-action:has(>button.panel-action-hit:disabled){border-color:var(--line);background:var(--surface-2)}.panel-group:not(.is-plain) .panel-action:has(>a.panel-action-hit[href],>button.panel-action-hit:not(:disabled)){border-color:var(--fam-line);background:var(--fam-soft)}.panel-group:not(.is-plain) .panel-action:has(>a.panel-action-hit[href],>button.panel-action-hit:not(:disabled)) strong,.panel-group:not(.is-plain) .panel-action:has(>a.panel-action-hit[href],>button.panel-action-hit:not(:disabled)) .panel-action-hit:after{color:var(--fam-ink)}.panel-group:not(.is-plain) .panel-action:has(>a.panel-action-hit:hover,>button.panel-action-hit:hover:not(:disabled)){border-color:var(--fam);background:var(--fam-hover)}.panel-action.is-line{color:var(--ink-3);font-size:12.5px}.panel-nested{position:relative;z-index:1;display:flex;flex-wrap:wrap;margin-top:8px;gap:4px 14px}.panel-pair{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.panel-pair>.panel-action{min-width:0;margin-bottom:0}.panel-pair .panel-action strong{flex-shrink:0}.panel-aside{display:flex;margin:7px 0 2px;gap:14px;justify-content:flex-end}.panel-combo{display:flex;overflow:hidden;margin-bottom:7px;align-items:stretch;border:1px solid var(--fam-line);border-radius:var(--r-2);background:var(--fam-soft)}.panel-combo>.panel-action{margin:0;padding:12px 13px;border:0;border-radius:0;background:transparent}.panel-combo>.panel-action+.panel-action{border-left:1px solid var(--fam-line)}.panel-combo>a.panel-action:hover,.panel-combo>button.panel-action:hover:not(:disabled){background:var(--fam-hover);box-shadow:none}.panel-combo>.panel-action.is-lead{flex:1;min-width:0}.panel-combo>.panel-action.is-lead strong{font-size:14px}.panel-combo>.panel-action.is-compact{flex:0 0 auto;width:116px}.panel-combo>.panel-action.is-empty{color:var(--ink-3)}.panel-tool{position:relative;min-height:0;padding:0;gap:4px;border:0;border-radius:0;color:var(--ink-3);background:transparent;font-size:11px;font-weight:500;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 45%,transparent);text-underline-offset:3px}.panel-tool:hover:not(:disabled),.panel-tool:active:not(:disabled){border:0;color:var(--fam-ink);background:transparent;text-decoration-color:currentcolor}.panel-tool.is-active{color:var(--fam-ink);background:transparent;text-decoration-color:currentcolor}.panel-tool-icon{font-size:11px}.panel-tool.is-dot:after{width:4px;height:4px;margin-left:1px;align-self:center;border-radius:50%;background:var(--fam);content:""}.panel-tool.is-busy .panel-tool-icon{animation:remake-spin .9s linear infinite}@keyframes remake-spin{to{transform:rotate(360deg)}}.panel-hint{margin:-2px 0 9px;padding:9px 12px;border-radius:var(--r-2);color:var(--fam-ink, var(--accent-ink));background:var(--fam-soft, var(--accent-soft));font-size:11.5px;line-height:1.5}.panel-hint b{font-weight:650;overflow-wrap:anywhere}.panel-confirm{display:grid;margin:0 0 8px;padding:11px 12px;gap:9px;border:1px solid var(--warn-line);border-radius:var(--r-2);background:var(--warn-soft)}.panel-confirm p{margin:0;color:var(--warn);font-size:11.5px;line-height:1.55;word-break:keep-all}.panel-confirm-actions{display:flex;gap:5px}.panel-confirm-actions button{min-height:26px;font-size:12px}.panel-steps{margin:0 0 10px;padding:0 0 0 20px;color:var(--ink-2);font-size:11.5px;line-height:1.75}.panel-steps li::marker{color:var(--ink-3);font-weight:700}.panel-steps code{padding:1px 5px;border-radius:4px;background:var(--surface-3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px}.prompt-editor,.link-editor{display:grid;margin:4px 0 10px;gap:7px}.link-editor-model{display:flex;margin:0 0 2px;gap:10px;justify-content:space-between;align-items:center;color:var(--ink-2);font-size:11.5px;font-weight:600}.link-editor-model select{min-height:26px;padding:0 24px 0 8px;border:1px solid var(--line);border-radius:var(--r-1);color:var(--ink-2);background:var(--surface);font:inherit;font-size:11px;font-weight:600}.link-editor-field{display:grid;gap:3px}.link-editor-field span{color:var(--ink-3);font-size:10.5px;font-weight:700;letter-spacing:.03em}.link-editor-field input{min-height:30px;font-size:11.5px}.link-editor-actions{display:flex;gap:8px;align-items:center}.link-editor-actions button{min-height:28px;font-size:12px}.link-editor-actions small{color:var(--ink-3);font-size:10.5px}.event-panel-notes{display:grid;margin:14px 0 0;padding:0;gap:1px;list-style:none}.event-panel-note{display:grid;width:calc(100% + 12px);min-height:0;margin-left:-6px;padding:4px 6px;grid-template-columns:30px minmax(0,1fr) auto;gap:7px;align-items:baseline;border:0;border-radius:var(--r-2);background:transparent;text-align:left}button.event-panel-note:hover{color:var(--accent-ink);background:var(--accent-soft)}.event-panel-note span{color:var(--ink-3);font-size:11px;font-weight:600}.event-panel-note b{overflow:hidden;font-size:12.5px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.event-panel-note small{color:var(--ink-3);font-size:10.5px}.event-panel-note.is-empty{color:var(--ink-3)}.event-panel-note.is-empty b{color:var(--ink-3);font-size:12px;font-weight:400}.prompt-editor-label{margin:3px 0 0;color:var(--ink-3);font-size:10.5px;font-weight:700;letter-spacing:.03em}.prompt-editor-text{min-height:220px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-2);color:var(--ink);background:var(--surface-2);font-family:inherit;font-size:11.5px;line-height:1.6;resize:vertical}.prompt-editor-text:focus-visible{border-color:var(--accent);outline:none;box-shadow:var(--ring)}.prompt-editor-tokens{display:flex;margin:0;gap:4px;flex-wrap:wrap;align-items:center}.prompt-editor-tokens button{min-height:22px;padding:0 7px;border-radius:var(--r-1);color:var(--ink-2);background:var(--surface-2);font-size:10.5px;font-weight:600}.prompt-editor-tokens span{color:var(--ink-3);font-size:10.5px}.prompt-editor-actions{display:flex;gap:5px}.prompt-editor-actions button{min-height:28px;font-size:12px}.prompt-editor-error{margin:0;color:var(--warn);font-size:11.5px}.prompt-editor-preview summary{color:var(--ink-3);font-size:11.5px;cursor:pointer}.prompt-editor-preview pre{max-height:200px;margin:6px 0 0;padding:10px 11px;overflow:auto;border:1px solid var(--line-soft);border-radius:var(--r-2);color:var(--ink-2);background:var(--surface-2);font-family:inherit;font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:keep-all}.event-panel-more{display:block;margin-top:18px;padding-top:14px;border-top:1px solid var(--line-soft);color:var(--accent-ink);font-size:12px;font-weight:600}.event-panel-loading{margin:0;padding:20px 0;color:var(--ink-3);font-size:12.5px;text-align:center}.event-panel-empty{display:grid;margin:0;padding:18px 16px;gap:5px;border:1px dashed var(--line);border-radius:var(--r-3);color:var(--ink-2);font-size:13px;text-align:center}.event-panel-empty small{color:var(--ink-3);font-size:11.5px;line-height:1.5}@keyframes fade-in{0%{opacity:0}}@keyframes panel-in{0%{transform:translate(14px);opacity:0}}@media(max-width:900px){.calendar-page,.calendar-page.is-split{grid-template-columns:minmax(0,1fr);column-gap:0;overflow-x:visible}.calendar-page.is-split .week-calendar{grid-template-columns:var(--time-col) repeat(5,minmax(0,1fr))}.panel-scrim{position:fixed;inset:0;z-index:50;display:block;background:#0c0e1452;animation:fade-in .14s ease}.event-panel{position:fixed;top:auto;bottom:0;left:0;z-index:51;width:100%;max-height:82dvh;padding:18px 20px 26px;border-bottom:0;border-radius:var(--r-4) var(--r-4) 0 0;box-shadow:var(--shadow-3);animation-name:slide-up}.calendar-legend small{width:100%;margin-left:0}}@media(max-width:720px){.calendar-page{--time-col: 38px;--time-col-split: 38px}.calendar-time{padding:0 5px}.app-main.is-wide{padding-inline:10px}}@media(max-width:640px){.calendar-toolbar{grid-template-columns:1fr auto;row-gap:10px}.calendar-heading{grid-row:1;grid-column:1 / -1}.calendar-actions.is-left{grid-row:2;grid-column:1}.calendar-actions.is-right{grid-row:2;grid-column:2}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}}.panel-bundles{display:grid;gap:0}.bundle{--fam: var(--accent)}.bundle.is-pre{--fam: var(--fam-pre)}.bundle.is-main{--fam: var(--fam-main)}.panel-bundles .bundle{--fam: var(--ink-3)}.bundle-hit{position:relative;display:flex;width:100%;margin-bottom:5px;padding:10px 12px;gap:8px;align-items:baseline;border:1px solid color-mix(in srgb,var(--fam) 30%,var(--line));border-radius:var(--r-2);color:inherit;background:color-mix(in srgb,var(--fam) 9%,var(--surface));font:inherit;text-align:left;transition:background .12s ease,border-color .12s ease}.bundle-hit strong{overflow:hidden;flex:0 1 auto;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.bundle-hit small{overflow:hidden;flex:1 1 auto;color:var(--ink-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.bundle-hit:hover:not(:disabled){border-color:color-mix(in srgb,var(--fam) 44%,var(--line));background:color-mix(in srgb,var(--fam) 16%,var(--surface))}.bundle-hit:disabled{cursor:progress}.bundle-hit.is-spent{border-color:var(--line);background:transparent}.bundle-hit.is-spent strong{color:var(--ink-3);font-weight:500}.bundle-note{margin:-1px 0 8px;padding:8px 11px;border-radius:var(--r-2);color:color-mix(in srgb,var(--fam) 72%,var(--ink));background:color-mix(in srgb,var(--fam) 9%,var(--surface));font-size:11px;line-height:1.5}.bundle-note.is-error{color:var(--warn);background:var(--warn-soft)}.week-foot{container:foot / inline-size;min-width:0;padding:4px 3px 5px;border-top:1px solid var(--line);border-left:1px solid var(--line-soft);background:var(--surface)}.week-foot.is-label{position:sticky;left:0;z-index:3;display:grid;padding-right:8px;align-content:center;justify-items:end;border-left:0;border-right:1px solid var(--line-soft)}.week-foot.is-label strong{color:var(--ink-3);font-size:10.5px;font-weight:550}.week-foot.is-today{background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.day-bundles{display:grid;gap:3px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.bundle.is-compact .bundle-hit{display:grid;margin:0;padding:5px 7px 5px 10px;gap:0;grid-template-columns:minmax(0,1fr);align-items:start;overflow:hidden;border-color:color-mix(in srgb,var(--fam) 16%,var(--line));background:var(--surface)}.bundle.is-compact .bundle-hit:before{position:absolute;top:0;bottom:0;left:0;width:3px;background:color-mix(in srgb,var(--fam) 100%,var(--line-strong));content:""}.bundle.is-compact .bundle-hit:hover:not(:disabled){border-color:color-mix(in srgb,var(--fam) 34%,var(--line));background:color-mix(in srgb,var(--fam) 7%,var(--surface));box-shadow:var(--shadow-1)}.bundle.is-compact .bundle-hit.is-spent:before{background:var(--line-strong)}.bundle-hit.is-none{border-style:dashed;border-color:var(--line);background:transparent;cursor:default}.bundle-hit.is-none strong,.bundle-hit.is-none small{color:var(--ink-3);font-weight:500;opacity:.75}.bundle.is-compact .bundle-hit.is-none:before{background:transparent}.bundle.is-compact .bundle-hit strong{font-size:11.5px;font-weight:600;letter-spacing:-.015em;line-height:1.3}.bundle.is-compact .bundle-hit small{font-size:10px;line-height:1.35}@container foot (max-width: 200px){.bundle-size{display:none}}.bundle.is-compact .bundle-note{margin:2px 0 0;padding:4px 7px;font-size:10px;line-height:1.35}.bank-paste{display:grid;gap:6px;margin:6px 0 8px}.bank-paste textarea{width:100%;padding:6px 8px;border:1px solid var(--line-strong);border-radius:var(--r-1);color:var(--ink);background:var(--surface);font:inherit;font-size:12px;resize:vertical}.bank-paste-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.bank-paste-actions small{margin-right:auto;color:var(--ink-3)}
