:root{--navy:#16345c;--navy-2:#1c3f6e;--navy-ink:#0f2747;--navy-deep:#0b1d36;--sky:#6ea8fe;--sky-ink:#2f6fd6;--sky-soft:#e8f0fe;--on-navy:#ffffff;--on-navy-muted:#c3d4ec;--measure:62rem;--radius:10px;--sidebar-w:15.5rem}:root,:root[data-theme=light]{--bg:#f4f7fb;--bg-deep:#ffffff;--sidebar:linear-gradient(180deg,var(--navy),var(--navy-ink));--surface:#ffffff;--surface-2:#eef3fa;--text:#0f2747;--text-muted:#4a5d78;--text-faint:#5d6f88;--border:#d9e2ee;--border-strong:#7d8fa8;--accent:#16345c;--accent-text:#ffffff;--accent-quiet:#2a63c0;--eyebrow:#2a63c0;--chip-bg:var(--sky-soft);--chip-text:#2a63c0;--lit-bg:linear-gradient(135deg,var(--navy),var(--navy-2));--ring-fill:var(--sky-ink);--ring-track:var(--sky-soft);--bar-track:var(--sky-soft);--bar-from:var(--navy);--bar-to:var(--sky);--warning-text:#7a4a10;--warning-bg:#fdf3e3;--warning-border:#edd9b5;--danger-text:#8a2d20;--danger-bg:#fdeeeb;--danger-border:#e8bcb3;--good:#2f6b45}:root[data-theme=dark]{--bg:#16345c;--bg-deep:#0f2747;--sidebar:linear-gradient(180deg,var(--navy-ink),var(--navy-deep));--surface:#1c3f6e;--surface-2:#23497d;--text:#ffffff;--text-muted:#c3d4ec;--text-faint:#a9bedb;--border:#2b5288;--border-strong:#7f9cc4;--accent:#ffffff;--accent-text:#16345c;--accent-quiet:#9cc3ff;--eyebrow:#6ea8fe;--chip-bg:#2a5590;--chip-text:#ffffff;--lit-bg:linear-gradient(135deg,#23497d,#2a5590);--ring-fill:var(--sky);--ring-track:#2a4b78;--bar-track:#2a4b78;--bar-from:var(--sky);--bar-to:var(--on-navy-muted);--warning-text:#f0c98a;--warning-bg:#3b3424;--warning-border:#6b5a33;--danger-text:#f6aaa0;--danger-bg:#402632;--danger-border:#74404a;--good:#7fd6a4}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--sidebar);color:var(--on-navy);border-right:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;padding:1.4rem .9rem 1rem;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}.brand{display:flex;gap:.7rem;align-items:center;padding:0 .4rem}.brand-mark{width:2.1rem;height:2.1rem;flex:0 0 2.1rem;border:1px solid rgba(255,255,255,.3);border-radius:7px;background:rgba(255,255,255,.12);color:var(--on-navy);display:grid;place-items:center;font-weight:700;font-size:.95rem}.brand-name{font-size:1.02rem;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.brand-sub{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-navy-muted);line-height:1.5}.sidebar-head{display:block}.menu-toggle{display:none}.sidebar-panel{display:contents}.sidebar hr{border:0;border-top:1px solid rgba(255,255,255,.09);margin:1.15rem .2rem}.side-nav{display:flex;flex-direction:column;gap:.15rem}.side-link{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;border-radius:999px;color:var(--on-navy-muted);text-decoration:none;font-size:.94rem}.side-link:hover{background:rgba(255,255,255,.08);color:var(--on-navy)}.side-link[aria-current=page]{background:#ffffff;color:var(--navy);font-weight:600}.sidebar :focus-visible{outline-color:var(--sky)}.side-link .ico{flex:0 0 1.1rem;display:grid;place-items:center}.side-link .soon{margin-left:auto;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--on-navy-muted)}.side-link[aria-current=page] .soon{color:#4a5d78}.sidebar-foot{margin-top:auto}.side-user{display:flex;gap:.65rem;align-items:center;padding:.5rem .75rem}.side-avatar{width:1.85rem;height:1.85rem;flex:0 0 1.85rem;border-radius:999px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:.8rem;font-weight:600}.side-user-name{font-size:.84rem;max-width:9.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-power{font-size:.68rem;color:var(--on-navy-muted);line-height:1.5}.brand-add,.brand-power a,.side-user-link{color:var(--on-navy-muted);text-decoration:underline}.brand-add,.side-user-link{font-size:.68rem}.side-user-role{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-navy-muted)}.side-action{display:flex;align-items:center;gap:.7rem;width:100%;padding:.5rem .75rem;border:0;border-radius:999px;background:none;color:var(--on-navy-muted);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.side-action:hover{background:rgba(255,255,255,.08);color:var(--on-navy)}.content{flex:1 1 auto;min-width:0}.topbar{border-bottom:1px solid var(--border);background:var(--bg-deep);padding:.85rem 2rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;gap:.5rem 1rem}.module-picker,.topbar{display:flex;flex-wrap:wrap;align-items:center}.module-picker{position:relative;gap:.5rem;letter-spacing:normal;text-transform:none}.module-picker select{width:auto;max-width:100%;font-size:.85rem;padding:.35rem .6rem}.module-picker-go{font-size:.8rem;padding:.35rem .9rem}.module-name{letter-spacing:normal;text-transform:none;font-size:.85rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}main{max-width:var(--measure);padding:2.5rem 2rem 5rem}.eyebrow{display:flex;align-items:center;gap:.5rem;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--eyebrow);margin:0 0 .7rem}.eyebrow:before,.up-next-eyebrow:not(.up-next-eyebrow-start):before{content:"";flex:none;width:1.1rem;height:2px;border-radius:2px;background:currentColor}h1{font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.05;letter-spacing:-.03em;font-weight:700;margin:0 0 .7rem}h2{font-size:1.55rem;line-height:1.2;letter-spacing:-.02em;margin:2.5rem 0 .6rem}h3{font-size:1.02rem;margin:1.6rem 0 .4rem}p{margin:0 0 1rem;max-width:44rem}.lede{font-size:1.06rem}.lede,small{color:var(--text-muted)}small{font-size:.85rem}strong{font-weight:600}hr{border:0;border-top:1px solid var(--border);margin:2.25rem 0}a{color:var(--accent-quiet);text-underline-offset:3px}a:hover{color:var(--accent)}ol,ul{margin:0 0 1rem;padding-left:1.35rem;max-width:44rem}li{margin-bottom:.35rem}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.6rem .7rem;max-width:100%}input[type=date],input[type=number]{width:auto}input[type=email],input[type=text],select{width:min(26rem,100%)}textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;line-height:1.6;resize:vertical}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label{display:block;font-size:.88rem;font-weight:600;margin-bottom:.3rem}button{font:inherit;font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;padding:.55rem 1.15rem;cursor:pointer}button:hover:not(:disabled){border-color:var(--text-muted)}button:disabled{opacity:.55;cursor:default}.primary{color:var(--accent-text);background:var(--accent);border-color:var(--accent);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;padding:.7rem 1.4rem}.primary:hover:not(:disabled){filter:brightness(1.07)}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--accent-quiet);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-button:hover{color:var(--accent)}.back{display:inline-block;font-size:.9rem;margin-bottom:1.4rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.85rem;margin:2rem 0 1rem}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.15rem .95rem}.metric-value{font-size:2.4rem;line-height:1;font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.metric-label{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-top:.55rem}.metric.lit{background:var(--lit-bg);border-color:transparent;color:var(--on-navy)}.metric.lit .metric-label{color:var(--on-navy-muted)}.metric-ring{float:right;width:2.9rem;height:2.9rem;margin-left:.5rem;border-radius:50%;background:conic-gradient(var(--ring-fill) calc(var(--ring-done, 0) / max(var(--ring-total, 1), 1) * 100%),var(--ring-track) 0);display:grid;place-items:center}.metric-ring:after{content:"";width:2.15rem;height:2.15rem;border-radius:50%;background:var(--surface)}.up-next{border-left:1px solid var(--accent);border:1px solid var(--accent);border-left-width:4px;border-radius:var(--radius);padding:1rem 1.25rem;margin:1.5rem 0}.up-next-eyebrow{display:flex;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--eyebrow)}.up-next-eyebrow-start{display:block;font-weight:400;font-size:.95rem;letter-spacing:normal;text-transform:none}.up-next-title{margin:0 0 .25rem;font-size:1.35rem}.up-next-reason{margin:0 0 .9rem;font-size:.9rem;color:var(--text-muted)}.up-next-actions{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.9rem}.up-next-actions .primary{text-decoration:none;display:inline-block;border:1px solid var(--accent);border-radius:999px}.competence-track{fill:var(--bar-track)}.competence-fill{fill:url(#competence-fill)}.competence-from{stop-color:var(--bar-from)}.competence-to{stop-color:var(--bar-to)}.rings{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0 0 1.1rem}.ring svg{display:block;width:8.25rem;height:auto}.ring-label{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);text-align:center;margin-top:.4rem}.cards{list-style:none;margin:0;padding:0}.series-heading{font-weight:inherit;margin-top:1.6rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem;margin-bottom:.7rem}.slides .slide-heading{color:var(--text-faint);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .4rem}.slides .slide-line{margin:0 0 .35rem;overflow-wrap:anywhere}.slides ul{margin:0 0 .35rem}.deck{--deck-red:#D4374A;--deck-ink:#1A1A1A;--deck-paper:#ffffff;--deck-text:var(--text);margin:0 0 2rem}:root[data-theme=light] .deck{--deck-text:var(--deck-ink)}.deck-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;background:var(--deck-red);color:var(--deck-paper);padding:.55rem .9rem;border-radius:var(--radius) var(--radius) 0 0;font-size:.9rem;font-weight:600}.deck-bar-title{min-width:0;overflow-wrap:anywhere}.deck-bar-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.deck-stage{border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius);overflow:hidden}.deck-image,.deck-stage{background:var(--deck-paper)}.deck-image{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.deck-stage .deck-text{margin:0;border:0;border-radius:0}.deck-text{color:var(--deck-text)}.deck-controls{display:flex;align-items:center;gap:.5rem;margin:.8rem 0}.deck-controls button{min-height:2.75rem;white-space:nowrap;flex:none}.deck-dots{flex:1 1 auto;min-width:0;flex-wrap:wrap;list-style:none;margin:0}.deck-controls .deck-dot,.deck-dots{display:flex;justify-content:center;padding:0}.deck-controls .deck-dot{min-height:0;width:.95rem;height:1.5rem;border:0;border-radius:0;background:none;align-items:center}.deck-dot:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--border-strong)}.deck-dot:hover:before{background:var(--text-muted)}.deck-dot[aria-current=step]:before{background:var(--deck-red);transform:scale(1.3)}.deck-counter{display:none;flex:1 1 auto;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.9rem}.deck-controls .deck-explain-button{background:var(--deck-red);border-color:var(--deck-red);color:var(--deck-paper);font-weight:600}.deck-controls .deck-explain-button:hover:not(:disabled){border-color:var(--deck-red);filter:brightness(1.08)}.deck-explain{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--deck-red);border-radius:var(--radius);padding:.9rem 1.1rem;margin:0 0 .8rem;color:var(--deck-text)}.deck-explain p{margin:0 0 .5rem;overflow-wrap:anywhere}.deck-explain-label{font-size:.8rem;color:var(--text-muted)}.deck-explain-heading{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin:.7rem 0 .25rem}.deck-explain-loading{color:var(--text-muted)}.deck-explain-error{color:var(--danger-text)}.deck-explain .link-button,.deck-text-toggle{min-height:2.75rem}.deck-text-toggle{display:block;margin:0 0 .5rem}.deck-stage{position:relative}.deck-answers{position:absolute;left:.6rem;right:.6rem;bottom:.6rem;max-height:60%;overflow-y:auto;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--border);border-left:4px solid var(--deck-red);border-radius:var(--radius);padding:.7rem .9rem;color:var(--deck-text);box-shadow:0 2px 10px rgb(0 0 0/.15)}.deck-answers.deck-answers-under{position:static;max-height:none;margin:.6rem;box-shadow:none}.deck-answers p{margin:0 0 .4rem;overflow-wrap:anywhere}.deck-answer{margin:0 0 .6rem}.deck-answer-question{font-size:.8rem;color:var(--text-muted)}.deck-answers .link-button{min-height:2.75rem}@media (max-width:30rem){.deck-dots{display:none}.deck-counter{display:block}.deck-controls{gap:.35rem;flex-wrap:wrap}.deck-controls button{padding:.5rem .75rem;font-size:.9rem}.deck-bar{font-size:.82rem}}.flashcard-due{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flashcard-bar{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin:1.5rem 0 .6rem;font-size:.9rem;color:var(--text-muted)}.flashcard-bar-title{font-weight:600;color:var(--text);min-width:0;overflow-wrap:anywhere}.flashcard-progress{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.flashcard{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:1.5rem 1.25rem;min-height:12rem;display:flex;flex-direction:column;justify-content:center}.flashcard-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.15rem;line-height:1.5;margin:0}.flashcard .flashcard-asked{font-size:.9rem;color:var(--text-muted);padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid var(--border)}.flashcard-label{font-size:.8rem;color:var(--text-muted);margin:0 0 .75rem}.flashcard-controls{display:flex;gap:.6rem;margin:.9rem 0 .4rem}.flashcard-controls button{flex:1 1;min-height:3rem}.flashcard-controls .flashcard-got{border-color:var(--good);color:var(--good);font-weight:600}.flashcard-keys{margin:0 0 .5rem}.flashcard-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:.5rem}.flashcard-close{min-height:2.75rem}.flashcard-row-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.flashcard-kind{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.flashcard-kind-label{font-weight:600;min-width:6.5rem}.flashcard-error{color:var(--danger-text);font-size:.9rem;margin:.5rem 0 0;flex-basis:100%}.flashcard-form{margin-bottom:1.5rem}.flashcard-form textarea{font-family:inherit;font-size:.95rem}.flashcard-own .flashcard-text{font-size:1rem}.flashcard-own .flashcard-own-back{color:var(--text-muted);margin:.35rem 0 .4rem}.flashcard-typed{display:block;width:100%;margin-top:.75rem;font-family:inherit;font-size:.95rem}.flashcard-compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.flashcard-compare .flashcard-text{font-size:1rem}.flashcard-panel{min-width:0}.flashcard-panel-title{font-size:.8rem;font-weight:600;color:var(--text-muted);margin:0 0 .35rem}.flashcard-check{margin-top:.75rem}.flashcard-check-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}@media (max-width:30rem){.flashcard-keys{display:none}.flashcard{min-height:10rem;padding:1.15rem 1rem}.flashcard-compare{grid-template-columns:1fr}}.card-title{font-weight:600;font-size:1.02rem;display:flex;gap:.55rem;align-items:baseline;flex-wrap:wrap}.card-rank{color:var(--text-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:400;min-width:1.4rem}.card-meta{color:var(--text-muted);font-size:.85rem;margin:.25rem 0 .6rem}.card-actions{font-size:.9rem}.cards.ranked .card-actions,.cards.ranked .card-meta{margin-left:1.95rem}.card-actions .sep{color:var(--text-faint)}.subtopics{margin:.5rem 0 0;padding-left:1.15rem;font-size:.85rem;color:var(--text-muted);max-width:40rem}.subtopics li{margin-bottom:.2rem}.badge{display:inline-block;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:.15rem .55rem;border-radius:999px;border:1px solid transparent;background:var(--chip-bg);color:var(--chip-text);white-space:nowrap}.badge-warn{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.notice{border:1px solid var(--border);border-left:3px solid var(--border-strong);background:var(--surface);padding:.8rem 1rem;margin:0 0 1.4rem;font-size:.92rem;max-width:44rem}.notice-warn{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border);border-left-color:var(--warning-text)}.notice-danger{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border);border-left-color:var(--danger-text)}.lecture-code,.statistical-tables{margin:1.6rem 0}.lecture-code-text{padding:.8rem 1rem;margin:0;max-width:100%;overflow-x:auto;font-size:.85rem;line-height:1.45}.lecture-code-text,.prose-block{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius)}.prose-block{white-space:pre-wrap;padding:1rem 1.15rem;margin-bottom:1.4rem}details{margin-bottom:.4rem}summary{cursor:pointer;font-weight:500}.remove-module{margin-top:2.5rem;font-size:.9rem;color:var(--text-muted)}.remove-module summary{font-weight:400}.steps{list-style:none;margin:0 0 2rem;padding:0}.steps li{display:flex;gap:.7rem;align-items:baseline;padding:.25rem 0}.steps .step-n{color:var(--text-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:1.3rem}.steps .current{font-weight:600}.steps .unavailable{color:var(--text-faint)}.form-hint,.hint{font-size:.85rem;color:var(--text-muted);margin-top:.35rem}.form-hint{display:block;max-width:40rem}.field{margin-bottom:1.2rem}table{border-collapse:collapse;width:100%;font-size:.92rem}th{text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-weight:600;padding:0 .7rem .5rem 0}td,th{border-bottom:1px solid var(--border)}td{padding:.7rem .7rem .7rem 0;vertical-align:top}.table-wrap{overflow-x:auto}.chat{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem;max-width:46rem}.chat,.chat-log{margin-bottom:1rem}.chat-log{display:flex;flex-direction:column;gap:.7rem}.bubble{padding:.6rem .85rem;border-radius:var(--radius);max-width:85%;font-size:.95rem}.bubble-me{align-self:flex-end;background:var(--accent);color:var(--accent-text)}.bubble-bot{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border)}.chat-form{display:flex;gap:.6rem;align-items:flex-end}.chat-form textarea{flex:1 1 auto}.coursework-section{margin-top:2.2rem}.coursework-brief p{margin:0 0 .5rem;overflow-wrap:anywhere}.coursework-brief ul{margin:0 0 .5rem}.coursework-brief li{overflow-wrap:anywhere}.coursework-subheading{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin:1rem 0 .35rem}.coursework-heading{margin:1.2rem 0 .4rem;overflow-wrap:anywhere}.coursework-heading-1{font-size:1.1rem}.coursework-heading-2{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin-top:1.4rem}.coursework-heading-3{font-size:.95rem;margin-top:1rem}.coursework-heading-4{font-size:.9rem;color:var(--text-muted);margin-top:.8rem}.coursework-brief>.coursework-heading:first-child{margin-top:0}.coursework-group{margin-bottom:1rem}.coursework-group .coursework-subheading{margin-top:0}.coursework-group p{margin:0 0 .6rem;overflow-wrap:anywhere}.coursework-group-form label{margin-bottom:.8rem}.coursework-group-form select{display:block;margin-top:.3rem}.coursework-group-chosen{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline}.coursework-group-chosen p{margin:0;flex:1 1 16rem}.coursework-group-actions{display:flex;gap:1rem;align-items:center}.coursework-yours{font-weight:600}.coursework-yours-chip{display:inline-block;margin-left:.5rem;padding:0 .45rem;border-radius:999px;background:var(--chip-bg);color:var(--chip-text);font-size:.75rem;font-weight:700;white-space:nowrap}.coursework-rubric{margin-top:1rem}.coursework-rubric table{min-width:48rem;font-size:.85rem}.coursework-rubric tbody th{text-transform:none;letter-spacing:normal;font-size:inherit;color:var(--text);padding:.7rem .7rem .7rem 0;vertical-align:top}.coursework-caption{text-align:left;font-weight:600;margin-bottom:.6rem}.coursework-chat .bubble{white-space:pre-wrap;overflow-wrap:anywhere}.coursework-chat .bubble .coursework-ai-label{white-space:normal}.coursework-ai-label{font-size:.8rem;color:var(--text-muted);margin:0 0 .4rem}.coursework-error{margin:.8rem 0 0}.coursework-draft{max-width:46rem}.coursework-draft .primary{margin-top:.6rem}.coursework-feedback{margin-top:1.4rem}.coursework-feedback p{overflow-wrap:anywhere}.coursework-wordcount{font-weight:600}.coursework-criterion dl{margin:0}.coursework-criterion dt{font-size:.85rem;color:var(--text-muted);margin-top:.5rem}.coursework-criterion dd{margin:.1rem 0 0;overflow-wrap:anywhere}.coursework-muted{color:var(--text-muted);margin:0}.coursework-start-again{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}.coursework-start-again p{flex-basis:100%;margin:0}.coursework-start-again button{min-height:2.75rem}@media (max-width:30rem){.coursework-chat .chat-form{flex-direction:column;align-items:stretch}.coursework-chat .bubble{max-width:100%}}.tutorial-sheet{margin-top:2rem}.tutorial-sheet .prose-block{overflow-wrap:anywhere;margin-bottom:.8rem}.tutorial-official{margin-top:.8rem}.tutorial-official-label{font-size:.8rem;color:var(--text-muted);margin:.6rem 0 .4rem}.tutorial-muted{color:var(--text-muted);font-size:.85rem;margin:.6rem 0 0}.deadline-section{margin-top:2rem}.deadline-days{color:var(--accent-quiet);font-weight:500}.deadline-muted{color:var(--text-muted)}.deadline-list{margin:.5rem 0 0;padding-left:1.15rem}.deadline-list li{margin-bottom:.3rem;overflow-wrap:anywhere}.deadline-items{list-style:none;margin:.6rem 0 0;padding:0}.deadline-items>li{border-top:1px solid var(--border);padding:.7rem 0 .2rem}.deadline-item-title{display:flex;flex-wrap:wrap;gap:.45rem;align-items:baseline;font-weight:500}.deadline-line{margin:0 0 .4rem;font-size:.9rem;overflow-wrap:anywhere}.note-photos{margin-bottom:1rem}.note-photo-list{list-style:none;display:flex;flex-wrap:wrap;gap:1rem;padding:0;margin:0 0 1rem}.note-photo-item{max-width:16rem}.note-photo-upload .form-hint,.note-photo-upload label{display:block;margin-bottom:.4rem}.saw-in-image{font-size:.85rem;background:var(--surface);border:1px solid var(--border);padding:.5rem .7rem;margin:0 0 .5rem}.chat-photo,.saw-in-image{border-radius:var(--radius)}.chat-photo{display:block;max-width:100%;max-height:16rem;margin-bottom:.5rem}.photo-picker{border-top:1px solid var(--border);padding-top:.75rem;margin-top:.75rem}.photo-picker .chat-photo-preview{max-height:10rem}.photo-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.chat-progress{border-bottom:1px solid var(--border);padding-bottom:.75rem;margin-bottom:1rem}.chat-progress .metrics{margin-bottom:.75rem}.criterion-bar{list-style:none;padding:0;margin:0 0 .5rem;display:flex;flex-wrap:wrap;gap:.4rem}.criterion{font-size:.82rem;border:1px solid var(--border);border-radius:999px;padding:.15rem .6rem;color:var(--text-muted)}.criterion.done{border-color:var(--accent);color:var(--text);font-weight:600}.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}.topic-switch{max-width:46rem;line-height:1.9}.placeholder{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;color:var(--text-muted);max-width:44rem}@media (max-width:52rem){.shell{flex-direction:column}.sidebar{width:100%;flex:none;height:auto;position:static;padding:1rem}.side-nav{flex-direction:row;flex-wrap:wrap}.sidebar hr{display:none}.sidebar-foot{margin-top:1rem}.sidebar{padding:.6rem 1rem}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.menu-toggle{display:inline-block;flex:none;padding:.45rem 1rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:none;color:inherit;font:inherit;font-size:.9rem;cursor:pointer}.menu-toggle:hover{background:rgba(255,255,255,.06)}.sidebar-panel{display:block;padding-top:.75rem}.sidebar-panel[data-ready=true][data-open=false]{display:none}main{padding:1.75rem 1.15rem 4rem}.topbar{padding:.75rem 1.15rem}}.content:has(.workspace){display:flex;flex-direction:column;height:100vh}.workspace{display:flex;min-height:0;flex:1 1 auto}.workspace-main{flex:1 1 auto;min-width:0;max-width:none;padding:0;display:flex;flex-direction:column}.workspace-head{flex:0 0 auto;padding:1.25rem 1.5rem 0;border-bottom:1px solid var(--border)}.workspace-title{font-size:1.75rem;line-height:1.15;margin:0 0 .35rem}.workspace-meta{font-size:.85rem;color:var(--text-muted);margin:0 0 .9rem}.workspace-body{flex:1 1 auto;overflow-y:auto;padding:1.25rem 1.5rem}.workspace-blurb{font-size:.9rem;color:var(--text-muted);margin:0 0 1.2rem}.workspace-tutor{flex:0 0 22.5rem;min-width:0;border-left:1px solid var(--border);background:var(--bg-deep);display:flex;flex-direction:column;overflow-y:auto;padding:1.25rem 1.1rem}.workspace-tutor .chat{max-width:none;margin-bottom:0}.workspace-tutor .metrics{margin-top:0}.workspace-tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding-bottom:.9rem}.workspace-tab{font:inherit;font-size:.82rem;line-height:1.2;padding:.42rem .8rem;border-radius:999px;border:1px solid var(--border);background:none;color:var(--text-faint);cursor:pointer}.workspace-tab:hover:not([aria-disabled=true]){border-color:var(--border-strong)}.workspace-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.workspace-tab:focus-visible .workspace-tab-reason{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}.workspace-tab.is-current{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.workspace-tab.is-done{color:var(--good);border-color:var(--border-strong)}.workspace-tab.is-upcoming{color:var(--text-faint)}.workspace-tab.is-unavailable{color:var(--text-faint);border-style:dashed;cursor:not-allowed}@media (max-width:68rem){.content:has(.workspace){height:auto}.workspace{flex-direction:column}.workspace-body,.workspace-tutor{overflow-y:visible}.workspace-tutor{flex:1 1 auto;border-left:none;border-top:1px solid var(--border)}}.topbar-actions{display:flex;align-items:center;gap:.6rem}.ask-toggle{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .9rem}.ask-toggle[aria-expanded=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.ask-panel{position:fixed;top:var(--ask-top,0);right:0;bottom:0;z-index:50;width:24rem;display:flex;flex-direction:column;overflow-y:auto;background:var(--surface);border-left:1px solid var(--border-strong);padding:.9rem 1rem 1rem;box-shadow:-8px 0 28px rgba(0,0,0,.3);font-size:1rem;letter-spacing:normal;text-transform:none;color:var(--text)}.ask-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.ask-close{padding:.1rem .6rem;line-height:1.4}.ask-label{font-size:.8rem;color:var(--text-muted);margin:.3rem 0 .8rem}.ask-label+.ask-slide{margin-top:-.5rem}.ask-log{flex:1 0 auto}.ask-log .bubble{white-space:pre-wrap;overflow-wrap:anywhere}.ask-form{flex-direction:column;align-items:stretch}.ask-error{margin:.8rem 0 0}@media (max-width:30rem){.ask-panel{width:100%;border-left:0}.ask-log .bubble{max-width:100%}}