@font-face{font-family:Fraunces;font-style:normal;font-weight:500 800;font-display:swap;src:url(/fonts/fraunces-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:italic;font-weight:500 700;font-display:swap;src:url(/fonts/fraunces-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/hanken-grotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f6f1e6;--bg2: #f1ebdd;--surface: #fdfaf2;--surface2: #f7f2e6;--surface3: #efe7d3;--surface4: #e7dcc4;--primary: #bc4a22;--primary-hover: #9d3a17;--primary-dim: rgba(188, 74, 34, .1);--success: #28714a;--success-dim: rgba(40, 113, 74, .11);--warning: #8a6207;--warning-dim: rgba(138, 98, 7, .12);--danger: #b23a2e;--danger-dim: rgba(178, 58, 46, .1);--info: #3d6488;--info-dim: rgba(61, 100, 136, .11);--text: #221c12;--text2: #51483a;--text2-bright: #38301f;--text3: #6a604b;--border: rgba(54, 44, 28, .16);--border-strong: rgba(54, 44, 28, .34);--ink: #221c12;--rule: rgba(54, 44, 28, .22);--on-accent: #fff;--wash-strong: rgba(255, 253, 246, .58);--wash: rgba(255, 253, 246, .45);--wash-soft: rgba(255, 253, 246, .34);--wash-faint: rgba(255, 253, 246, .2);--topbar-bg: rgba(252, 248, 239, .92);--popover-bg: rgba(253, 250, 242, .98);--scrim-bg: rgba(20, 16, 11, .58);--google-button-bg: #fff;--google-button-text: #1f1f1f;--google-button-border: #747775;--field-bg: #fffdf8;--ink-wash: rgba(54, 44, 28, .07);--focus-ring: rgba(188, 74, 34, .14);--accent-border-soft: rgba(188, 74, 34, .24);--accent-border-strong: rgba(188, 74, 34, .55);--success-border: rgba(40, 113, 74, .28);--warning-border: rgba(138, 98, 7, .28);--danger-border: rgba(178, 58, 46, .24);--shadow-soft: 0 1px 0 rgba(70, 56, 34, .05);--shadow-float: 0 12px 18px rgba(70, 56, 34, .06);--shadow-card: 0 14px 24px rgba(70, 56, 34, .06);--shadow-card-hover: 0 20px 30px rgba(70, 56, 34, .09);--shadow-popover: 0 24px 40px rgba(70, 56, 34, .16);--shadow-accent: 0 4px 12px rgba(188, 74, 34, .25);--page-glow-warm: rgba(188, 74, 34, .05);--page-glow-cool: rgba(61, 100, 136, .05);--page-gradient-top: #f8f3e9;--page-gradient-bottom: #f2ecdd;--paper-grain-opacity: .28;--paper-grain-blend: multiply;--paper-grain-texture: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");--panel-tint: linear-gradient(135deg, var(--wash), transparent 45%);--sheen-top: inset 0 1px 0 var(--wash-strong);--sheen-top-soft: inset 0 1px 0 var(--wash-soft);--font: "Hanken Grotesk", "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.5rem;--space-10: 3rem;--setup-welcome-max: 66rem;--setup-benefit-icon: 2.25rem;--tap-target: 2.75rem;--r: 8px;--r2: 12px;--r3: 16px;--glow: 0 1px 2px rgba(70, 56, 34, .06), 0 14px 34px rgba(70, 56, 34, .11);--type-eyebrow: .6875rem;--type-meta: .8125rem;--type-body-sm: .875rem;--type-body: 1rem;--type-title: 1.1875rem;--type-headline: clamp(1.375rem, 1.15rem + 1.1vw, 1.625rem);--type-display: clamp(1.875rem, 1.4rem + 2.2vw, 2.5rem);--lh-tight: 1.15;--lh-snug: 1.35;--lh-body: 1.6;--fw-label: 700;--fw-title: 600;--fw-body: 400;--ls-eyebrow: .06em;--ls-title: -.01em;--ls-display: -.02em;--card-pad: var(--space-5);--card-pad-compact: var(--space-4);--card-pad-lg: var(--space-6);--card-gap: var(--space-3);--card-gap-tight: var(--space-2);--card-grid-gap: var(--space-4);--card-min: 17rem;--card-radius: var(--r3);--card-radius-row: var(--r2);--card-radius-chip: 999px;--elev-row: var(--shadow-soft);--elev-card: var(--shadow-card);--elev-float: var(--shadow-popover);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.3, .5, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--dur-0: .06s;--dur-1: .12s;--dur-2: .18s;--dur-3: .32s;color-scheme:light}[data-theme=dark]{--bg: #18140f;--bg2: #14100b;--surface: #201a12;--surface2: #251e15;--surface3: #2b2318;--surface4: #32291c;--primary: #e0703f;--primary-hover: #ef8a5d;--primary-dim: rgba(224, 112, 63, .14);--success: #79b890;--success-dim: rgba(121, 184, 144, .13);--warning: #d2a648;--warning-dim: rgba(210, 166, 72, .13);--danger: #de7568;--danger-dim: rgba(222, 117, 104, .12);--info: #84aac8;--info-dim: rgba(132, 170, 200, .13);--text: #efe7d6;--text2: #c3b7a0;--text2-bright: #ddd2bc;--text3: #96896f;--border: rgba(239, 231, 214, .13);--border-strong: rgba(239, 231, 214, .22);--ink: #efe7d6;--rule: rgba(239, 231, 214, .18);--on-accent: #1d1409;--wash-strong: rgba(255, 240, 214, .09);--wash: rgba(255, 240, 214, .06);--wash-soft: rgba(255, 240, 214, .04);--wash-faint: rgba(255, 240, 214, .025);--topbar-bg: rgba(24, 20, 15, .9);--scrim-bg: rgba(8, 6, 4, .72);--popover-bg: rgba(32, 26, 18, .96);--field-bg: #1c170f;--ink-wash: rgba(239, 231, 214, .07);--focus-ring: rgba(224, 112, 63, .18);--accent-border-soft: rgba(224, 112, 63, .28);--accent-border-strong: rgba(224, 112, 63, .52);--success-border: rgba(121, 184, 144, .26);--warning-border: rgba(210, 166, 72, .28);--danger-border: rgba(222, 117, 104, .26);--shadow-soft: 0 1px 0 rgba(0, 0, 0, .28);--shadow-float: 0 12px 18px rgba(0, 0, 0, .22);--shadow-card: 0 14px 24px rgba(0, 0, 0, .24);--shadow-card-hover: 0 20px 30px rgba(0, 0, 0, .32);--shadow-popover: 0 24px 40px rgba(0, 0, 0, .36);--shadow-accent: 0 4px 14px rgba(224, 112, 63, .22);--page-glow-warm: transparent;--page-glow-cool: transparent;--page-gradient-top: var(--bg);--page-gradient-bottom: var(--bg);--paper-grain-opacity: .11;--paper-grain-blend: screen;--panel-tint: transparent;--sheen-top: 0 0 0 0 transparent;--sheen-top-soft: 0 0 0 0 transparent;--glow: 0 1px 2px rgba(0, 0, 0, .32), 0 18px 42px rgba(0, 0, 0, .38);color-scheme:dark}::selection{background:#bc4a222e}[data-theme=dark] ::selection{background:#e0703f59}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;overflow-y:scroll;scrollbar-gutter:stable;background:var(--bg)}body{position:relative;font-family:var(--font);background:radial-gradient(circle at 14% 8%,var(--page-glow-warm) 0%,transparent 30%),radial-gradient(circle at 88% 16%,var(--page-glow-cool) 0%,transparent 26%),linear-gradient(180deg,var(--page-gradient-top) 0%,var(--bg) 40%,var(--page-gradient-bottom) 100%);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;line-height:1.6;letter-spacing:-.005em;background-attachment:fixed}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.18 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:soft-light}a{color:var(--primary)}a:hover{color:var(--primary-hover)}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a,button,[role=button],summary,label,select,input[type=checkbox],input[type=radio],input[type=submit],input[type=button],input[type=reset]{cursor:pointer}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.studio-msg-body,.finish-summary,.finish-step-body,.finish-block,.finish-bullets,.finish-req-text,.finish-estimate,.guide-section-heading,.guide-section-summary,.guide-points,.guide-term,.guide-terms,.plan-task-text,.plan-focus,.wb-q-text,.wb-fc-front,.wb-fc-back,.wb-source-chunk,.nested-source-name,.nested-source-child,.finish-unlocked-doc,.canvas-html-content,.finish-desc,.account-copy,.account-privacy-note,.account-profile-email,.account-delete-note,input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.fade-in{animation:fadeSlideUp .4s cubic-bezier(.2,.8,.2,1) both}.delay-children .fade-in,.delay-children .mo-enter,.delay-children .mo-stagger,.delay-children .mo-stagger-fast{animation:none!important;opacity:0;pointer-events:none}.mo-enter{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards}.mo-stagger{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms)}.mo-stagger-fast{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.mo-lift{transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.mo-lift:hover{transform:translateY(var(--lift, -2px))}@media(hover:none){.mo-lift:hover{transform:none}}.mo-press{transition:transform var(--dur-0) var(--ease-spring)}.mo-press:active:not(:disabled){transform:scale(var(--press, .97))}.mo-reveal{animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.mo-reveal-up{animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:bottom center}.mo-settle{animation:countSettle var(--dur-3) var(--ease-out) backwards}.mo-rise{animation:pair-rise var(--dur-2) var(--ease-out) backwards}.mo-scrim{animation:fadeIn var(--dur-2) var(--ease-out)}.mo-chars>span,.mo-chars>.mo-word>span{display:inline-block;white-space:pre;animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * var(--char-step, 42ms))}.mo-chars>.mo-word{animation:none;will-change:auto}[aria-expanded=true] .mo-rotate,.open .mo-rotate,details[open] .mo-rotate,.flip.mo-rotate{transform:rotate(180deg)}.mo-meta-settle{animation:fadeIn var(--dur-2) var(--ease-out) backwards}.mo-field{transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.mo-exit{animation-timing-function:var(--ease-in)}.mo-arrow-nudge{transition:transform var(--dur-2) var(--ease-out)}.mo-menu-stagger .styled-select-option{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.mt-2{margin-top:var(--space-2)}.error-text{color:var(--danger);font-size:.85rem;margin:0}.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 calc(max(0px,100% - 1600px) / 2 + var(--space-6));background:var(--topbar-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:2px solid var(--ink)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--rule);pointer-events:none}.topbar-brand{display:flex;align-items:center;gap:var(--space-3)}.topbar-center{position:absolute;left:50%;transform:translate(-50%)}.logo{font-family:var(--font-display);font-size:1.5rem;font-weight:500;letter-spacing:-.015em;color:var(--ink)}.wm-dot{color:var(--primary)}.logo-small{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text2);letter-spacing:-.03em}.brand-wordmark{font-family:var(--font-display);font-weight:inherit;white-space:nowrap;letter-spacing:-.015em}.topbar-tag{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;background:var(--wash);border:1px solid var(--border);color:var(--text3);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.user-chip{display:flex;align-items:center;gap:var(--space-2);padding:.35rem .85rem .35rem .4rem;background:var(--wash);border:1px solid var(--border);border-radius:999px;font-size:.82rem;color:var(--text2);box-shadow:var(--sheen-top-soft);font-family:var(--font);cursor:pointer;transition:transform var(--dur-1) var(--ease-out),opacity var(--dur-1) var(--ease-out)}.user-chip:hover{transform:translateY(-1px)}.user-chip:active{transform:translateY(1px)}.user-chip:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-color:var(--primary)}.av-sm{width:28px;height:28px;border-radius:50%;overflow:hidden;background:linear-gradient(180deg,#bc4a223d,#bc4a2214);display:flex;align-items:center;justify-content:center;color:var(--primary)}.av-sm img{width:100%;height:100%;object-fit:cover}.uname{font-weight:700;color:var(--text2-bright)}.back-btn,.ghost-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--wash);border:1px solid var(--border);color:var(--text2);font-family:var(--font);font-size:.85rem;font-weight:700;cursor:pointer;padding:.72rem 1.05rem;border-radius:999px;box-shadow:var(--sheen-top-soft);transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}.back-btn:hover,.ghost-btn:hover{color:var(--text);background:var(--wash-strong);border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 10px 18px #46382214}.back-btn:active,.ghost-btn:active{transform:scale(.97);box-shadow:none}.ghost-btn.sm{padding:.55rem .9rem;font-size:.78rem}html:not([data-theme=dark]) .theme-toggle:hover{background:#18140fe6;color:#efe7d6;border-color:#efe7d638}html[data-theme=dark] .theme-toggle:hover{background:#fcf8efeb;color:#221c12;border-color:#362c1c57}.content{max-width:1460px;width:100%;margin:0 auto;padding:var(--space-7) var(--space-6) var(--space-10)}.dashboard-content{display:flex;flex-direction:column;gap:var(--space-9)}.welcome{margin-bottom:0}.dashboard-welcome{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.95fr);gap:var(--space-5);align-items:stretch}.welcome-copy{padding:var(--space-4) 0 var(--space-2)}.welcome h1{font-family:var(--font-display);font-size:clamp(2.6rem,5vw,4.2rem);font-weight:600;line-height:1.02;letter-spacing:-.03em;text-wrap:balance;margin-bottom:var(--space-3)}.welcome p{max-width:34rem;font-size:1.05rem;line-height:1.7;color:var(--text2)}.glance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--card-grid-gap);align-self:end;padding-bottom:var(--space-2)}.glance-card{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--card-gap-tight);min-height:116px;padding:var(--card-pad);border-radius:var(--card-radius);border:1px solid var(--border-strong);background:transparent;box-shadow:none}button.glance-card{text-align:left;color:inherit;cursor:pointer;--lift: -1px;--press: .985}button.glance-card:hover{border-color:var(--primary);background:var(--primary-dim)}.glance-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--type-display);line-height:var(--lh-tight);letter-spacing:var(--ls-display);color:var(--text)}.glance-label{font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text3)}.glance-card-attention .glance-value{color:var(--danger)}.glance-card-attention{border-color:color-mix(in srgb,var(--danger) 45%,var(--border-strong))}.glance-sub{font-size:var(--type-meta);font-weight:600;color:var(--text3)}.glance-cluster{display:flex;flex-direction:column;gap:var(--card-gap);align-self:end}.dash-help-cta{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:.7rem 1.15rem;background:var(--primary);color:var(--on-accent);border:1px solid var(--primary);border-radius:999px;font-family:var(--font);font-size:.92rem;font-weight:700;cursor:pointer;transition:background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.dash-help-cta:hover{background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #bc4a2240}.dash-help-cta:active{transform:scale(.97);box-shadow:none}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--card-min),1fr));gap:var(--card-grid-gap);align-items:stretch}.course-card{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:92px;padding:var(--card-pad);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--card-radius);cursor:pointer;font-family:var(--font);color:var(--text);text-align:left;position:relative;overflow:hidden;transition:transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out);box-shadow:var(--elev-card)}.course-card:hover{border-color:var(--c);transform:translateY(-2px);box-shadow:var(--shadow-card-hover),0 0 0 1px var(--c)}.course-card:active{transform:scale(.985)}.cc-color{position:absolute;left:0;top:0;bottom:0;width:5px;height:auto;border-radius:0;flex-shrink:0}.course-card .cc-top{padding-left:var(--space-2)}.cc-name{flex:1;font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);text-wrap:balance;min-width:0}.cc-top{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.cc-grade-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);flex-shrink:0}.cc-grade-cap{font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text3)}.cc-grade{font-size:var(--type-body);font-weight:800;font-variant-numeric:tabular-nums;padding:.4rem .65rem;border-radius:var(--card-radius-chip);flex-shrink:0;border:1px solid transparent}.cc-grade.good{background:var(--success-dim);color:var(--success);border-color:#28714a4d}.cc-grade.okay{background:var(--warning-dim);color:var(--warning);border-color:#8a62074d}.cc-grade.bad{background:var(--danger-dim);color:var(--danger);border-color:#b23a2e4d}.cc-arrow{color:var(--text3);flex-shrink:0}.refresh-row{text-align:center;margin-top:var(--space-6)}.dashboard-content{counter-reset:dashsec}.section-heading{display:flex;align-items:center;gap:var(--space-3);font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text);margin-bottom:var(--space-5)}.dashboard-content .section-heading:before{counter-increment:dashsec;content:counter(dashsec,decimal-leading-zero);font-family:var(--font-display);font-style:italic;font-weight:600;font-size:.95rem;letter-spacing:0;color:var(--text3)}.section-heading:after{content:"";flex:1;height:1px;background:var(--rule);margin-left:var(--space-2)}.section-heading svg{display:none}.courses-section,.deadlines-section{margin:0}.deadlines-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);color:var(--text3);background:linear-gradient(180deg,var(--wash),var(--wash-soft));border:1px solid var(--border);border-radius:var(--card-radius-row);text-align:center}.deadlines-empty p{font-size:var(--type-body);margin:0}.deadline-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--card-radius-row);overflow:hidden;box-shadow:var(--elev-row)}.deadline-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--card-pad-compact);background:transparent;border:none;border-left:3px solid transparent;font-family:var(--font);cursor:pointer;text-align:left;width:100%;transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.deadline-item+.deadline-item{border-top:1px solid var(--border)}.deadline-item:hover{background:var(--primary-dim);border-left-color:var(--primary)}.deadline-item.overdue{border-left-color:var(--danger)}.deadline-item.is-locked .dl-name{color:var(--text2);font-weight:600}.deadline-item.is-locked .asgn-points-bubble{opacity:.65}.attention-section .section-heading:before{color:var(--danger)}.deadline-more{padding:var(--card-pad-compact);border-top:1px solid var(--border);font-size:var(--type-meta);letter-spacing:var(--ls-eyebrow);color:var(--text3)}.deadline-note{margin:var(--space-2) 0 0;font-size:.8rem;color:var(--text3)}.courses-break-note{margin:0 0 var(--space-3);max-width:64ch;line-height:1.55}.deadline-skeleton{cursor:default;justify-content:space-between}.deadline-skeleton .skeleton-bar{display:inline-block;height:.85em;border-radius:3px;background:var(--ink-wash);animation:skeletonPulse 1.6s ease-in-out infinite}.deadline-skeleton .skeleton-bar-meta{width:3.4rem;flex-shrink:0}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.deadline-skeleton .skeleton-bar{animation:none}}.deadlines-error{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.deadlines-error svg{color:var(--danger)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes countSettle{0%{transform:scale(1)}40%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes successPop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.glance-value.is-updated,.hero-stat-value.is-updated,.mo-settle.is-updated{animation:countSettle var(--dur-3) var(--ease-out)}.copy-pop{animation:popIn var(--dur-2) var(--ease-out)}.success-pop{animation:successPop var(--dur-3) var(--ease-out)}.dl-color{width:10px;height:10px;border-radius:2px;flex-shrink:0;align-self:flex-start;margin-top:6px;animation:popIn var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms)}.dl-info{flex:1;min-width:0}.dl-name{display:block;font-size:var(--type-body);font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-course{display:block;font-size:var(--type-eyebrow);color:var(--text3);margin-top:var(--space-1);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.dl-lock{margin-top:var(--space-2);max-width:fit-content}.dl-right{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);flex-shrink:0}.ai-workshop-section{margin:0}.workshop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.workshop-header .section-heading{margin-bottom:0}.workshop-tabs{display:flex;gap:var(--space-2)}.workshop-tabs button{background:var(--surface2);border:1px solid var(--border);color:var(--text2);padding:var(--space-2) var(--space-4);border-radius:var(--card-radius-chip);font-family:var(--font);font-size:var(--type-meta);font-weight:600;cursor:pointer;display:flex;align-items:center;gap:var(--card-gap-tight);transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s}.workshop-tabs button:hover{background:var(--surface3);color:var(--text);border-color:var(--border-strong)}.workshop-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--glow)}.workshop-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-pad-lg);position:relative;overflow:visible}.styled-select{position:relative;flex:1;min-width:0}.styled-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--space-2);background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:var(--space-2) var(--space-4);border-radius:999px;font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;outline:none;transition:border-color .2s,background .2s,box-shadow .2s;text-align:left}.styled-select-trigger:hover{border-color:var(--border-strong);background:var(--surface3)}.styled-select.open .styled-select-trigger{border-color:var(--primary);box-shadow:0 0 0 3px #bc4a221f}.styled-select-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.styled-select-label.placeholder{color:var(--text3);font-weight:500}.styled-select-chevron{flex-shrink:0;color:var(--text3);transition:transform .2s ease,color .2s}.styled-select.open .styled-select-chevron{transform:rotate(180deg);color:var(--primary)}.styled-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:200;background:var(--surface2);border:1px solid var(--border-strong);border-radius:var(--r);padding:var(--space-1);max-height:min(320px,calc(100vh - 24px));overflow-y:auto;box-shadow:0 8px 32px #4638222e,0 2px 8px #46382221;animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:top center;scrollbar-width:thin;scrollbar-color:var(--surface3) transparent;display:flex;flex-direction:column;gap:4px}.styled-select-menu.menu-flip{top:auto;bottom:calc(100% + 6px);transform-origin:bottom center}.assignment-ai-menu{overflow:hidden;scrollbar-width:none}.assignment-ai-menu::-webkit-scrollbar{display:none}.styled-select-menu::-webkit-scrollbar{width:6px}.styled-select-menu::-webkit-scrollbar-track{background:transparent}.styled-select-menu::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:3px}@keyframes selectSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.styled-select.searchable .styled-select-trigger{cursor:text}.styled-select-input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--font);font-size:inherit;font-weight:inherit;padding:0}.styled-select-input::placeholder{color:var(--text3)}.styled-select-empty{padding:var(--space-3);text-align:center;color:var(--text3);font-size:.82rem}.styled-select-option{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:transparent;border:none;color:var(--text2);padding:.4rem var(--space-3);border-radius:12px;font-family:var(--font);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .12s,color .12s;flex-shrink:0;line-height:1.5;overflow:hidden}.styled-select-option-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.styled-select-option:hover:not(:disabled){background:#bc4a221a;color:var(--text)}.styled-select-option.active{background:var(--primary-dim);color:var(--primary);font-weight:600}.styled-select-option:disabled{color:var(--text3);cursor:default}.styled-select-option .asgn-lock-label{margin-left:auto;flex-shrink:0;font-size:.6rem;padding:.1rem .45rem}.styled-select-group{padding:var(--space-2) var(--space-3) 4px;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text3);flex-shrink:0}.styled-select-group:not(:first-child){margin-top:4px;border-top:1px solid var(--border);padding-top:var(--space-3)}.cal-menu{width:290px;padding:var(--space-4)!important;max-height:none!important;height:auto!important;overflow:hidden!important;right:auto;z-index:300!important;background:var(--surface2)!important;border:1px solid var(--border-strong)!important;box-shadow:0 12px 48px #46382238,0 4px 16px #46382229!important;border-radius:var(--r2)!important;animation:none!important;opacity:0;transform:scale(.96) translateY(8px);transform-origin:top center;transition:opacity .22s ease,transform .22s ease;pointer-events:none}.cal-menu.cal-visible{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}.cal-menu.cal-flip{top:auto!important;bottom:calc(100% + 6px);transform-origin:bottom center;transform:scale(.96) translateY(-8px)}.cal-menu.cal-flip.cal-visible{transform:scale(1) translateY(0)}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.cal-title{font-weight:700;font-size:.95rem;color:var(--text)}.cal-nav{padding:var(--space-1)!important;color:var(--text2)!important}.cal-nav:hover{color:var(--text)!important}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-day-name{text-align:center;font-size:.75rem;font-weight:700;color:var(--text3);margin-bottom:var(--space-1);min-width:0}.cal-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);font-family:var(--font);font-size:.85rem;font-weight:500;cursor:pointer;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out);padding:0!important;margin:0!important;min-width:0!important}.cal-day:not(.empty):hover{background:var(--surface3);border-color:var(--border-strong)}.cal-day.today{color:var(--primary);font-weight:700;background:var(--primary-dim)}.cal-day.selected{background:var(--primary);color:#fff;font-weight:700;box-shadow:0 2px 8px #bc4a2266}.cal-day.empty{cursor:default}.ai-summary-text{font-size:.95rem;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-word}.ai-link{color:var(--primary);text-decoration:underline;text-decoration-color:#bc4a2266;text-underline-offset:3px;font-weight:600;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s}.ai-link:hover{text-decoration-color:var(--primary);color:var(--primary-hover)}.ai-summary-empty{color:var(--text3)!important;font-style:italic}.ai-summary-loading{display:flex;align-items:center;gap:.75rem;color:var(--text3);padding:.5rem 0}.ai-summary-loading p{font-size:.85rem;margin:0}.ai-summary-error{color:var(--danger);font-size:.85rem;margin:0}.course-hero{margin-bottom:1.75rem}.hero-bar{width:40px;height:4px;border-radius:3px;margin-bottom:.75rem}.hero-name{font-size:2.2rem;font-weight:800;margin-bottom:.5rem;line-height:1.1;color:var(--text)!important;letter-spacing:-.02em}.hero-grade{font-size:1.75rem;font-weight:800;display:flex;align-items:baseline;gap:.4rem}.hero-grade span{font-size:.8rem;font-weight:600;color:var(--text3)}.hero-grade.good{color:var(--success)}.hero-grade.okay{color:var(--warning)}.hero-grade.bad{color:var(--danger)}.section{margin-bottom:1.75rem}.section-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem;display:flex;align-items:center;gap:.35rem;padding-left:.25rem}.section-title.overdue{color:var(--danger)}.section-title.todo{color:var(--warning)}.section-title.submitted{color:var(--info)}.section-title.graded{color:var(--success)}.asgn-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-pad-compact);margin-bottom:var(--card-grid-gap);border-left:3px solid transparent;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.asgn-card.clickable{cursor:pointer}.asgn-card.clickable:hover{border-color:var(--border-strong);background:var(--surface2)}.asgn-card.overdue{border-left-color:var(--danger)}.asgn-card.todo{border-left-color:var(--warning)}.asgn-card.submitted{border-left-color:var(--info)}.asgn-card.graded{border-left-color:var(--success)}.asgn-card.is-locked{border-left-color:var(--border-strong)}.asgn-card.is-locked h4{color:var(--text2)}.asgn-card.is-locked .asgn-points-bubble{opacity:.65}.asgn-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.asgn-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--card-gap-tight)}.asgn-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.asgn-left h4{font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);text-wrap:balance;margin:0}.asgn-meta{font-size:var(--type-meta);color:var(--text3)}.asgn-open{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;align-self:center;color:var(--text3)}.asgn-open-hint{font-size:var(--type-meta);font-weight:var(--fw-title)}.asgn-card.clickable:hover .asgn-open{color:var(--primary)}.expand-icon{color:var(--text3);transition:transform .2s}.expand-icon.open{transform:rotate(180deg)}.asgn-desc{margin-top:var(--card-gap);padding-top:var(--card-gap);border-top:1px solid var(--border);font-size:var(--type-body-sm);line-height:var(--lh-body);color:var(--text2);white-space:pre-wrap;word-break:break-word}.grade-pill{font-size:var(--type-meta);font-weight:var(--fw-label);padding:var(--space-1) var(--space-2);border-radius:var(--card-radius-chip);white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.grade-pill.good{background:var(--success-dim);color:var(--success)}.grade-pill.okay{background:var(--warning-dim);color:var(--warning)}.grade-pill.bad{background:var(--danger-dim);color:var(--danger)}.setup-page{min-height:100vh;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:var(--space-7);background:radial-gradient(circle at 12% 12%,var(--page-glow-warm),transparent 34%),radial-gradient(circle at 88% 90%,var(--page-glow-cool),transparent 36%),linear-gradient(160deg,var(--page-gradient-top),var(--page-gradient-bottom))}.setup-page:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:var(--paper-grain-opacity);background-image:var(--paper-grain-texture);mix-blend-mode:var(--paper-grain-blend)}.setup-card{border:1px solid var(--border-strong);border-radius:var(--card-radius);padding:var(--space-7);max-width:640px;width:100%;position:relative}.setup-page .setup-card{background:var(--surface);box-shadow:var(--elev-float),var(--sheen-top)}.setup-paper-edge{position:absolute;z-index:2;inset:var(--space-7) auto var(--space-7) calc(var(--space-3) * -1);display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.setup-paper-edge span{width:var(--space-5);height:var(--space-5);border:1px solid var(--border-strong);border-radius:50%;background:var(--bg2);box-shadow:inset 0 1px 2px var(--ink-wash)}.setup-card.setup-card-welcome{max-width:var(--setup-welcome-max)}.setup-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(var(--primary),var(--primary)) top / 100% 4px no-repeat;pointer-events:none}.setup-card h1{font-family:var(--font-display);font-size:var(--type-display);font-weight:var(--fw-title);margin-bottom:var(--space-3);line-height:var(--lh-tight);letter-spacing:var(--ls-display);text-wrap:balance}.setup-card .sub{font-size:var(--type-body);color:var(--text2-bright);margin-bottom:var(--space-6);line-height:var(--lh-body);text-wrap:balance}.setup-step{animation:fadeSlideUp .35s ease-out}.setup-account-link{display:block;width:fit-content;margin:var(--space-3) auto 0;padding:var(--space-1) var(--space-2);border:0;background:transparent;color:var(--text3);font:700 var(--type-meta)/var(--lh-snug) var(--font);text-decoration:underline;text-underline-offset:.18em;cursor:pointer}.setup-account-link:hover{color:var(--primary)}.setup-account-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r)}.setup-welcome-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-8);align-items:start}.setup-start{min-width:0}.setup-benefits{min-width:0;padding-left:var(--space-8);border-left:1px solid var(--rule)}.setup-benefits-label{margin:0 0 var(--space-2);color:var(--text3);font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);line-height:var(--lh-snug);text-transform:uppercase}.setup-benefits ul{list-style:none}.setup-benefit{display:grid;grid-template-columns:var(--setup-benefit-icon) minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-3) 0;border-top:1px solid var(--border)}.setup-benefit-icon{width:var(--setup-benefit-icon);height:var(--setup-benefit-icon);display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:var(--primary-dim);border:1px solid var(--accent-border-soft);border-radius:var(--r)}.setup-benefit strong,.setup-benefit strong+span{display:block}.setup-benefit strong{color:var(--text);font-size:var(--type-body-sm);font-weight:var(--fw-label);line-height:var(--lh-snug)}.setup-benefit strong+span{margin-top:var(--space-1);color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-snug)}@media(max-width:720px){.setup-welcome-layout{grid-template-columns:1fr;gap:var(--space-6)}.setup-benefits{padding:var(--space-5) 0 0;border-top:1px solid var(--rule);border-left:0}}@media(max-width:480px){.setup-page .setup-card{padding:var(--space-5)}.setup-progress{margin-bottom:var(--space-4)}.setup-card .sub{margin-bottom:var(--space-3)}.setup-start .field{margin-bottom:var(--space-2)}}.ext-connect{margin:var(--space-4) 0 var(--space-2)}.ext-btn{margin-bottom:var(--space-2)}.ext-sub{font-size:.86rem;color:var(--text3);line-height:1.5;margin:0}.ext-connect .err{margin-top:var(--space-2)}.ext-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-1);color:var(--text3)}.ext-divider:before,.ext-divider:after{content:"";flex:1;height:1px;background:var(--border)}.ext-divider span{font-size:.78rem;letter-spacing:.04em}.progress-bar{display:flex;gap:var(--space-2);margin-bottom:var(--space-6)}.setup-progress{margin-bottom:var(--space-6)}.setup-progress .progress-bar{margin-bottom:var(--space-2)}.setup-progress-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.progress-label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.01em;color:var(--text3)}.dot{flex:1;height:4px;border-radius:999px;background:var(--border);transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease,opacity .3s ease}.dot.now{background:var(--primary)}.dot.done{background:var(--success)}.setup-controls{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-2)}.setup-controls .lang-switch{margin-bottom:0}.setup-controls .theme-toggle,.setup-controls .lang-switch-btn{min-width:var(--tap-target);min-height:var(--tap-target)}.lang-switch{display:flex;justify-content:flex-end;gap:var(--space-1);margin-bottom:var(--space-4)}.lang-switch-btn{appearance:none;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-family:var(--font);font-size:.9rem;font-weight:600;padding:.45rem .9rem;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease;white-space:nowrap}.lang-switch-btn:hover{color:var(--text);border-color:var(--text3)}.lang-switch-btn.active{background:var(--primary);border-color:var(--primary);color:var(--on-accent)}.lang-switch.compact{margin-bottom:0}.theme-toggle-label{font-size:.82rem;font-weight:600}.icon-box{width:52px;height:52px;border-radius:var(--r);background:var(--primary-dim);display:flex;align-items:center;justify-content:center;color:var(--primary);margin-bottom:var(--space-4)}.field{margin-bottom:var(--space-5)}.field label{display:block;font-size:var(--type-eyebrow);font-weight:var(--fw-label);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--text2);margin-bottom:var(--space-2)}.field label.label-plain{text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:600;color:var(--text)}.setup-reassure{font-size:.92rem;line-height:1.55;color:var(--text2);margin:0 0 var(--space-4)}.setup-steps{list-style:none;padding:0;margin:0 0 var(--space-5);gap:var(--space-2)}.setup-steps .ms{padding:var(--space-3);font-size:.9rem;line-height:1.5;align-items:center}.connect-hint{margin:var(--space-2) 0 0;font-size:.82rem;color:var(--text3);text-align:center}.setup-agree{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);font-size:.9rem;line-height:1.5;color:var(--text2);cursor:pointer}.setup-agree input[type=checkbox]{width:1.05rem;height:1.05rem;margin-top:.15rem;flex:none;accent-color:var(--primary);cursor:pointer}.setup-agree a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.setup-agree a:hover{text-decoration:none}.app-legal{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:var(--space-6) 0 var(--space-5)}.app-legal a,.app-legal button{color:var(--text3);text-decoration:none;font-size:.8rem}.app-legal button{background:none;border:0;padding:0;font-family:inherit;cursor:pointer}.app-legal a:hover,.app-legal button:hover{color:var(--primary);text-decoration:underline}.app-legal>span{color:var(--text3)}.field input{width:100%;padding:.95rem 1rem;border:2px solid var(--border);border-radius:var(--r);font-size:var(--type-body);font-family:var(--font);color:var(--text);background:var(--bg);outline:none;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease}.field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #bc4a222e}.field input::placeholder{color:var(--text3)}.hint{display:block;font-size:.88rem;color:var(--text3);margin-top:var(--space-2);line-height:1.55}.school-search,.school-search-box{position:relative}.school-search-box input{padding-right:2.7rem}.school-search-icon{position:absolute;right:1rem;top:50%;transform:translateY(-50%);display:flex;color:var(--text3);pointer-events:none}.school-search .styled-select-menu{max-height:264px}.school-opt-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:2px 0}.school-opt-name{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.school-opt-place{color:var(--text);font-weight:500;font-size:.8rem}.school-opt-host{font-size:.7rem;color:var(--text3);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.styled-select-option.kb-active{background:var(--primary-dim);color:var(--text)}.school-picked{display:flex;align-items:baseline;gap:6px;font-size:.88rem;color:var(--text2);margin-top:var(--space-2);line-height:1.55}.school-picked svg{flex-shrink:0;align-self:center;color:var(--primary)}.school-deep-row{display:flex;align-items:center;justify-content:center;gap:6px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.link-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:.95rem 1rem;background:var(--primary-dim);color:var(--primary);border:1px solid rgba(188,74,34,.2);border-radius:var(--r);font-family:var(--font);font-size:1rem;font-weight:700;text-decoration:none;margin-bottom:var(--space-4);transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease;cursor:pointer}.link-btn:hover{background:#bc4a2233}.mini-steps{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.ms{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--wash-soft);border:1px solid var(--border);border-radius:var(--r);font-size:.97rem;color:var(--text2-bright);line-height:1.62}.ms strong{color:var(--text)}.num{min-width:28px;height:28px;border-radius:999px;background:var(--primary);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.82rem;flex-shrink:0}.err{background:var(--danger-dim);border:1px solid var(--danger-border);border-radius:var(--r);padding:var(--space-3);color:var(--danger);font-size:.9rem;display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);line-height:1.5}.center-content{text-align:center;display:flex;flex-direction:column;align-items:center}.check-circle{width:64px;height:64px;border-radius:50%;background:var(--success-dim);display:flex;align-items:center;justify-content:center;color:var(--success);margin-bottom:var(--space-4)}.user-preview{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--wash-soft);border:1px solid var(--border);border-radius:var(--r2);margin:var(--space-3) 0 var(--space-4);text-align:left;font-size:.9rem}.user-preview .muted{font-size:.78rem;color:var(--text3)}.avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;background:var(--primary-dim);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.9rem 1.35rem;background:var(--primary);color:var(--on-accent);border:1px solid var(--primary);border-radius:var(--r);font-family:var(--font);font-size:.96rem;font-weight:700;cursor:pointer;--lift: -1px;--press: .97;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.primary-btn.sm{padding:var(--space-2) var(--space-3);font-size:.78rem}.primary-btn:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(var(--lift));box-shadow:0 4px 12px #bc4a2240}.primary-btn:active:not(:disabled){transition:transform var(--dur-0) var(--ease-spring);transform:scale(var(--press));box-shadow:none}@media(hover:none){.primary-btn:hover:not(:disabled){transform:none}}.primary-btn:disabled{background:var(--surface3);border-color:var(--border);color:var(--text3);cursor:not-allowed}.primary-btn.full{width:100%}.btn-pair{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.btn-pair .primary-btn,.btn-pair.single .ghost-btn{flex:1}.loader{display:flex;flex-direction:column;align-items:center;padding:var(--space-9);gap:var(--space-2)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.loader p{font-size:.82rem;color:var(--text3)}.empty{text-align:center;padding:var(--space-9);color:var(--text3)}.empty p{margin-top:var(--space-2);font-size:.88rem}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#362c1c47;border-radius:12px}::-webkit-scrollbar-thumb:hover{background:#362c1c6b}.asgn-list{display:flex;flex-direction:column;gap:.4rem}.asgn-title-row{display:flex;align-items:center;gap:.4rem}.asgn-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.62rem;font-weight:700;text-transform:uppercase;padding:.14rem .5rem;border-radius:var(--r);letter-spacing:.06em;border:1px solid currentColor}.asgn-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.asgn-badge.overdue{background:var(--danger-dim);color:var(--danger)}.asgn-badge.todo{background:var(--warning-dim);color:var(--warning)}.asgn-badge.submitted{background:var(--info-dim);color:var(--info)}.asgn-badge.graded{background:var(--success-dim);color:var(--success)}.asgn-lock-label,.dl-lock{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;padding:.14rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--text2);background:var(--wash)}.asgn-lock-label svg,.dl-lock svg,.lock-detail-chip svg{flex-shrink:0;opacity:.75}.asgn-lock-label.closed,.dl-lock.closed,.lock-detail-chip.closed{background:var(--danger-dim);color:var(--danger);border-color:var(--border)}.asgn-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.asgn-grade-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}.asgn-points-bubble{background:transparent;padding:.55rem .9rem .45rem;border-radius:var(--r);font-weight:800;font-size:1rem;font-variant-numeric:tabular-nums;color:var(--text);display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;gap:.3rem;border:1px solid var(--border-strong);line-height:1}.asgn-points-bubble span{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}.asgn-points-bubble.bubble-md{width:100px;justify-content:center}.asgn-points-bubble.bubble-lg{width:130px;justify-content:center}.asgn-points-bubble.bubble-compact{font-size:.9rem;padding:.45rem 0 .35rem}.asgn-points-bubble.graded{background:var(--success-dim);color:var(--success);border-color:#28714a59}.asgn-points-bubble.graded span{color:var(--success)}.asgn-points-bubble.submitted{background:var(--info-dim);color:var(--info);border-color:#3d648859}.asgn-points-bubble.submitted span{color:var(--info)}.asgn-points-bubble.danger{background:var(--danger-dim);color:var(--danger);border-color:#b23a2e59}.asgn-points-bubble.danger span{color:var(--danger)}.asgn-grade-bar{width:50px;height:3px;background:#362c1c24;border-radius:999px;overflow:hidden}.asgn-grade-fill{height:100%;border-radius:999px;transition:width .3s}.asgn-grade-fill.good{background:var(--success)}.asgn-grade-fill.okay{background:var(--warning)}.asgn-grade-fill.bad{background:var(--danger)}.asgn-desc{padding-top:.6rem;border-top:1px solid var(--border);margin-top:.5rem}.asgn-summary{font-size:.78rem;color:var(--text2);line-height:1.5;margin:0 0 .4rem}.asgn-links{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.3rem}.empty-filter{text-align:center;padding:2rem;color:var(--text3);font-size:.82rem}.asgn-detail-view{display:flex;flex-direction:column;gap:var(--space-8)}.detail-back-btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface2);border:1px solid var(--border);color:var(--text2);font-family:var(--font);font-size:.85rem;font-weight:600;cursor:pointer;padding:.5rem 1rem;border-radius:999px;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s;align-self:flex-start}.detail-back-btn:hover{color:var(--text);background:var(--surface3);border-color:var(--border-strong);transform:translate(-3px)}.detail-header-card{--detail-accent-height: 4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);position:relative;box-shadow:var(--elev-card)}.detail-header-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent, var(--primary)),color-mix(in srgb,var(--accent, var(--primary)) 58%,var(--surface3)));background-position:top;background-size:100% var(--detail-accent-height);background-repeat:no-repeat;pointer-events:none}.detail-header-body{padding:var(--card-pad-lg);display:flex;flex-direction:column;gap:var(--card-gap)}.detail-header-body .asgn-badge{font-size:var(--type-eyebrow);align-self:flex-start}.detail-title{font-size:var(--type-display);font-weight:var(--fw-title);line-height:var(--lh-snug);color:var(--text);letter-spacing:var(--ls-title);text-wrap:balance}.detail-info-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.detail-chip{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--type-meta);font-weight:var(--fw-title);color:var(--text2);background:var(--wash);border:1px solid var(--border);padding:var(--space-1) var(--space-3);border-radius:var(--card-radius-chip)}.locked-submission-card .locked-submission-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--card-gap);padding:var(--card-pad-lg)}.locked-submission-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--wash);border:1px solid var(--border);color:var(--text2)}.locked-submission-title{margin:0;font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);color:var(--text);text-wrap:balance}.locked-submission-inner p{margin:0;max-width:46ch;color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-body);overflow-wrap:anywhere}.locked-submission-inner .detail-canvas-link-plain{margin-top:var(--space-2)}.detail-grade-row{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border)}.detail-grade-badge{font-size:1.4rem;font-weight:800;padding:var(--space-1) var(--space-3);border-radius:999px}.detail-grade-badge.good{background:var(--success-dim);color:var(--success)}.detail-grade-badge.okay{background:var(--warning-dim);color:var(--warning)}.detail-grade-badge.bad{background:var(--danger-dim);color:var(--danger)}.detail-grade-frac{font-size:.85rem;font-weight:600;color:var(--text3)}.detail-grade-bar{flex:1;height:6px;background:var(--wash);border-radius:999px;overflow:hidden}.detail-grade-fill{height:100%;border-radius:999px;transition:width var(--dur-3) var(--ease-out)}.detail-grade-fill.good{background:var(--success)}.detail-grade-fill.okay{background:var(--warning)}.detail-grade-fill.bad{background:var(--danger)}.detail-body-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-pad-lg);box-shadow:var(--elev-card)}.detail-section-label{font-size:var(--type-eyebrow);font-weight:var(--fw-label);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--text3);margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.detail-empty-desc{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text3);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.detail-empty-desc p{font-size:var(--type-body-sm);margin:0}.detail-cta-row{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--border);text-align:center}.detail-canvas-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-7);background:var(--primary);color:var(--on-accent);border:none;border-radius:999px;font-family:var(--font);font-size:.9rem;font-weight:700;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s;box-shadow:0 2px 12px #bc4a2233}.detail-canvas-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #bc4a2259;filter:brightness(1.1);color:var(--on-accent)}.canvas-html-content{color:var(--text2-bright)!important;font-size:var(--type-body);line-height:var(--lh-body)}.canvas-html-content>*:last-child{margin-bottom:0!important}.canvas-html-content *{max-width:100%!important;font-family:var(--font)!important}.canvas-html-content span,.canvas-html-content p,.canvas-html-content div,.canvas-html-content font,.canvas-html-content li,.canvas-html-content td,.canvas-html-content th,.canvas-html-content h1,.canvas-html-content h2,.canvas-html-content h3,.canvas-html-content h4,.canvas-html-content h5,.canvas-html-content h6{color:var(--text)!important;background-color:transparent!important}.canvas-html-content h1,.canvas-html-content h2,.canvas-html-content h3,.canvas-html-content h4{margin:1.5rem 0 .8rem!important;font-weight:700!important;padding:0!important}.canvas-html-content h1{font-size:1.5rem!important}.canvas-html-content h2{font-size:1.3rem!important}.canvas-html-content h3{font-size:1.1rem!important}.canvas-html-content p,.canvas-html-content div{margin:0 0 1rem!important;padding:0!important}.canvas-html-content a:not(.btn):not(.Button):not([class*=Button--]):not([class*=btn-]):not(.home-btn-link):not([style*=background]):not([style*=padding]):not([style*=border]):not(:has(img)){background:var(--primary-dim);color:var(--primary);padding:.1rem .45rem;border-radius:999px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-weight:600;font-size:.9em;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease;margin:1px 4px 1px 0;border:1px solid rgba(188,74,34,.2);vertical-align:middle;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;white-space:normal}.canvas-html-content a:not(.btn):not(.Button):not([class*=Button--]):not([class*=btn-]):not(.home-btn-link):not([style*=background]):not([style*=padding]):not([style*=border]):not(:has(img)):hover{background:var(--primary);color:var(--on-accent);border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px #bc4a2240}.canvas-html-content a.home-btn-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--primary-dim);color:var(--primary);border:1px solid rgba(188,74,34,.2);border-radius:999px;padding:.55rem 1.15rem;margin:.3rem .5rem .3rem 0;font-weight:600;font-size:.9rem;text-decoration:none;vertical-align:middle;max-width:100%;box-sizing:border-box;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease}.canvas-html-content a.home-btn-link:hover{background:var(--primary);border-color:var(--primary);color:var(--on-accent);transform:translateY(-1px);box-shadow:0 4px 14px #bc4a2240}.canvas-html-content .btn,.canvas-html-content .Button{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:.5rem 1rem!important;font-size:.9rem!important;font-weight:600!important;border-radius:999px!important;text-decoration:none!important;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease!important;border:1px solid rgba(188,74,34,.2)!important;background:var(--primary-dim)!important;color:var(--primary)!important;margin:4px!important;cursor:pointer!important;box-sizing:border-box!important;vertical-align:middle!important}.canvas-html-content .btn:hover,.canvas-html-content .Button:hover{background:var(--primary)!important;border-color:var(--primary)!important;color:var(--on-accent)!important;box-shadow:0 4px 12px #bc4a2240!important}.canvas-html-content .btn-primary,.canvas-html-content .Button--primary{background:var(--primary)!important;color:var(--on-accent)!important;border-color:var(--primary)!important}.canvas-html-content .btn-primary:hover,.canvas-html-content .Button--primary:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important}.canvas-html-content .btn-success,.canvas-html-content .Button--success{background:var(--success-dim)!important;color:var(--success)!important;border-color:#28714a4d!important}.canvas-html-content .btn-danger,.canvas-html-content .Button--danger{background:var(--danger-dim)!important;color:var(--danger)!important;border-color:#fca5a54d!important}.canvas-html-content ul,.canvas-html-content ol{margin:0 0 1rem 1.5rem!important;padding:0!important}.canvas-html-content li{margin-bottom:.5rem}.canvas-html-content img{max-width:100%;height:auto;border-radius:var(--r);margin-top:1rem;margin-bottom:1rem}.canvas-html-content img.is-centered{display:block;margin-left:auto;margin-right:auto}.canvas-html-content img.is-float-left{float:left;margin:.25rem 1.25rem .75rem 0}.canvas-html-content img.is-float-right{float:right;margin:.25rem 0 .75rem 1.25rem}.canvas-html-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;background:var(--surface2);border-radius:var(--r);overflow:hidden}.canvas-html-content th,.canvas-html-content td{border:1px solid var(--border);padding:.8rem 1rem;text-align:left}.canvas-html-content th{background:var(--wash);font-weight:600}.submission-tabs{display:flex;gap:var(--space-2);margin-top:calc(var(--space-2) - var(--space-6));margin-bottom:var(--space-5);border-bottom:1px solid var(--border);padding-bottom:var(--space-2)}.submission-tab-btn{background:transparent;border:none;color:var(--text3);font-family:var(--font);font-size:.85rem;font-weight:600;padding:var(--space-2) var(--space-4);cursor:pointer;border-radius:var(--r);transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease;display:flex;align-items:center;gap:var(--space-2)}.submission-tab-btn:hover{color:var(--text);background:var(--wash)}.submission-tab-btn.active{color:var(--primary);background:var(--primary-dim);font-weight:700}.submission-form{display:flex;flex-direction:column;gap:var(--space-4);animation:fadeIn .25s ease-out}.submission-input-group{display:flex;flex-direction:column;gap:var(--space-2)}.submission-input-group label{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--text3);letter-spacing:.03em}.submission-textarea{min-height:180px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);padding:var(--space-4);font-family:var(--font);font-size:.95rem;resize:vertical;line-height:1.5;transition:border-color .2s ease,box-shadow .2s ease}.submission-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #bc4a2226}.submission-url-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease}.submission-url-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #bc4a2226}.submission-dropzone{border:2px dashed var(--border);background:var(--wash-faint);border-radius:var(--r2);padding:var(--space-8) var(--space-4);text-align:center;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3)}.submission-dropzone:hover,.submission-dropzone.dragover{border-color:var(--primary);background:#bc4a2208}.dropzone-icon{color:var(--text3);transition:color .2s}.submission-dropzone:hover .dropzone-icon,.submission-dropzone.dragover .dropzone-icon{color:var(--primary)}.dropzone-title{font-weight:600;font-size:.95rem;color:var(--text);margin:0}.dropzone-subtitle{font-size:.8rem;color:var(--text3);margin:0}.selected-file-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--card-radius-row);padding:var(--card-pad-compact);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);animation:fadeIn var(--dur-2) var(--ease-out) backwards}.selected-file-details{display:flex;align-items:center;gap:var(--space-3);min-width:0}.selected-file-icon{color:var(--primary);flex-shrink:0}.selected-file-text{display:flex;flex-direction:column;min-width:0}.selected-filename{font-weight:var(--fw-title);font-size:var(--type-body);line-height:var(--lh-snug);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-filesize{font-size:var(--type-meta);color:var(--text3);font-variant-numeric:tabular-nums}.remove-file-btn{background:transparent;border:none;color:var(--text3);cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out),transform var(--dur-0) var(--ease-spring)}.remove-file-btn:hover{color:var(--danger);background:var(--danger-dim)}.selected-file-list{display:flex;flex-direction:column;gap:var(--card-gap-tight);margin-top:var(--space-3)}.submission-canvas-note{margin-top:var(--space-4);font-size:.8rem;color:var(--text3);text-align:center}.submission-canvas-note a{color:var(--primary);font-weight:600;text-decoration:none;white-space:nowrap}.submission-canvas-note a:hover{text-decoration:underline}.submission-canvas-redirect{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-4);text-align:center}.submission-canvas-redirect p{color:var(--text2);font-size:.9rem;line-height:1.55;max-width:46ch;margin:0}.detail-canvas-link-plain{display:inline-flex;align-items:center;gap:4px;color:var(--primary);font-size:.82rem;font-weight:600;text-decoration:none;margin-top:var(--space-1)}.detail-canvas-link-plain:hover{text-decoration:underline}.submission-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2)}.submission-status-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-pad-lg);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--card-gap);animation:fadeIn .3s ease-out;margin-top:var(--space-6)}.status-card-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;width:52px;height:52px;background:var(--success-dim);color:var(--success)}.status-card-icon.loading{background:var(--primary-dim);color:var(--primary)}.status-card-icon.error{background:var(--danger-dim);color:var(--danger)}.status-card-title{font-size:var(--type-headline);font-weight:var(--fw-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);text-wrap:balance;color:var(--text);margin:0}.status-card-body{font-size:var(--type-body);color:var(--text2);max-width:400px;margin:0;line-height:var(--lh-body);overflow-wrap:anywhere}.course-page-layout{display:flex;flex-direction:column;min-height:100vh}.course-main-wrap{display:flex;flex:1;max-width:1600px;margin:0 auto;width:100%;padding:var(--space-7) var(--space-6);gap:var(--space-9)}.course-sidebar{width:200px;flex-shrink:0}.course-sidebar-title{font-size:1rem;font-weight:700;margin-bottom:var(--space-6);line-height:1.4}.course-nav{display:flex;flex-direction:column;gap:var(--space-1)}.course-nav-btn{background:transparent;border:none;color:var(--text2);text-align:left;padding:var(--space-2) var(--space-4);font-size:.95rem;font-family:var(--font);cursor:pointer;border-radius:999px;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease}.course-nav-btn:hover{background:var(--ink-wash);color:var(--text)}.course-nav-btn.active{color:var(--on-accent);font-weight:600;background:var(--primary-dim);color:var(--primary)}.course-content-area{flex:1;min-width:0}.asgn-group{margin-bottom:var(--space-8)}.asgn-group-title{font-size:1.2rem;font-weight:600;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);color:var(--text)}.module-item-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-radius:var(--r);text-decoration:none;color:var(--text);transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .2s;border:1px solid transparent}.module-item-link:hover{background:var(--surface3);border-color:var(--border);transform:translateY(-1px)}.module-icon{color:var(--primary);opacity:.8;display:flex}.module-title{flex:1;font-size:.95rem;font-weight:500}.module-points{font-size:.8rem;color:var(--text2);font-weight:600;background:var(--wash);padding:var(--space-1) var(--space-2);border-radius:999px}.module-arrow{color:var(--text3);opacity:0;transition:opacity .2s,transform .2s;transform:translate(-4px)}.module-item-link:hover .module-arrow{opacity:1;transform:translate(0)}@media(max-width:768px){.course-main-wrap{flex-direction:column;padding:1rem;gap:1.5rem}.course-sidebar{width:100%}.course-nav{flex-direction:row;overflow-x:auto;padding-bottom:.5rem}.course-nav-btn.active{background:var(--primary-dim);border-bottom:none}}@media(max-width:600px){.content{padding:1rem}.setup-page{padding:var(--space-4)}.setup-card{padding:1.5rem;max-width:100%}.setup-card h1{font-size:1.55rem}.setup-card .sub{font-size:.98rem}.ms{font-size:.92rem;padding:var(--space-3)}.welcome h1{font-size:1.25rem}.uname,.theme-toggle-label{display:none}.topbar{padding:0 1rem}.dashboard-content{gap:var(--space-7)}}.workbench .wb-classpick{min-width:220px;display:flex;align-items:center;gap:var(--space-2)}.workbench .wb-classpick .styled-select{flex:1}.wb-sync-btn{white-space:nowrap;flex-shrink:0}.wb-muted{color:var(--text3);font-size:.85rem}.wb-center{text-align:center}.wb-sync-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);font-size:.85rem;color:var(--text2)}.wb-sync-banner.danger{color:var(--danger);border-color:var(--danger)}.wb-controls{display:flex;align-items:center;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4)}.wb-tabs{display:flex;gap:var(--space-2)}.wb-tabs button{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--surface2);border:1px solid var(--border);color:var(--text2);padding:var(--space-2) var(--space-4);border-radius:999px;font-family:var(--font);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.wb-tabs button:hover{background:var(--surface3);color:var(--text)}.wb-tabs button.active{background:var(--primary);color:var(--on-accent);border-color:var(--primary);box-shadow:var(--glow)}.wb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--card-grid-gap);align-items:stretch}@media(max-width:900px){.wb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.wb-grid{grid-template-columns:minmax(0,1fr)}}.wb-card{display:flex;align-items:center;gap:var(--card-gap);text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:var(--card-radius);width:100%;padding:var(--card-pad);cursor:pointer;--lift: -3px;--press: .985}.wb-card:hover{border-color:#bc4a2273;background:var(--surface3)}.wb-card-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--card-radius-row);background:var(--primary-dim);color:var(--primary)}.wb-card-txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--card-gap-tight)}.wb-card-title{font-size:var(--type-title);font-weight:var(--fw-title);color:var(--text)}.wb-card-tagline{font-size:var(--type-meta);color:var(--text3);overflow-wrap:anywhere}.wb-card-cta{flex:0 0 auto;align-self:center}.wb-panel-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.wb-panel-title{display:inline-flex;align-items:center;gap:var(--space-2);font-size:1.05rem;font-weight:700;color:var(--text)}.wb-form{display:flex;flex-direction:column;gap:var(--space-4)}.wb-row{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:flex-end}.wb-field{display:flex;flex-direction:column;gap:var(--space-2);flex:1 1 auto}.wb-field-sm{flex:0 0 110px}.wb-field>span{font-size:.82rem;font-weight:600;color:var(--text2)}.wb-field input,.wb-textarea,.wb-field .styled-select-trigger{background:var(--surface2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:.9rem;font-weight:400;width:100%}.wb-field input:focus,.wb-textarea:focus,.wb-field .styled-select.open .styled-select-trigger{outline:none;border-color:var(--primary)}.wb-field input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity .2s}.wb-field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.wb-textarea{min-height:110px;resize:vertical;line-height:1.5}.wb-output{min-height:220px}.wb-check{display:flex;align-items:center;gap:var(--space-2);font-size:.85rem;color:var(--text2);cursor:pointer}.wb-check input{accent-color:var(--primary)}.wb-toggle{display:inline-flex;gap:4px;background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:3px;width:fit-content}.wb-toggle-wide{width:100%}.wb-toggle button{flex:1;background:transparent;border:none;color:var(--text2);padding:var(--space-2) var(--space-4);border-radius:999px;font-family:var(--font);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;text-transform:capitalize}.wb-toggle button.active{background:var(--primary);color:var(--on-accent)}.wb-toggle button.easy.active{background:var(--success);color:var(--on-accent)}.wb-toggle button.medium.active{background:var(--warning);color:var(--on-accent)}.wb-toggle button.hard.active{background:var(--danger);color:var(--on-accent)}.wb-result{margin-top:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.finish-pending{flex-direction:row;align-items:center;gap:var(--space-2);font-size:.9rem;color:var(--text2)}.wb-result-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wb-result-head h3{font-size:1rem;color:var(--text);display:flex;align-items:center;gap:var(--space-2)}.wb-badge{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--info-dim);color:var(--info);padding:2px 8px;border-radius:999px}.wb-recap-section h4{font-size:.9rem;color:var(--primary);margin-bottom:var(--space-1)}.wb-recap-section ul{padding-left:1.1rem;color:var(--text2);font-size:.9rem;line-height:1.6}.wb-recap-section{margin-bottom:var(--space-2)}.wb-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);color:var(--text2)}.wb-empty svg{color:var(--text3)}.wb-chat-log{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) 0}.wb-msg{max-width:85%}.wb-msg.user{align-self:flex-end}.wb-msg.assistant{align-self:flex-start}.wb-msg-text{padding:var(--space-3) var(--space-4);border-radius:12px;font-size:.9rem;line-height:1.55;white-space:pre-wrap}.wb-msg.user .wb-msg-text{background:var(--primary);color:var(--on-accent);border-bottom-right-radius:4px}.wb-msg.assistant .wb-msg-text{background:var(--surface3);color:var(--text);border-bottom-left-radius:4px}.wb-sources{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:6px}.wb-sources-label{font-size:.66rem;color:var(--text3);align-self:center}.wb-ai-note{display:block;flex-basis:100%;font-size:.66rem;color:var(--text3);margin-top:2px}.wb-source-wrap{display:inline-block;max-width:100%;position:relative}.wb-source-tag{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;color:var(--text3);background:var(--surface2);border:1px solid var(--border);padding:2px 8px;border-radius:999px}.wb-source-tag.clickable{cursor:pointer;transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-0) var(--ease-spring)}.wb-source-tag.clickable:hover{color:var(--text);border-color:var(--primary)}.wb-source-tag.clickable:active{transform:scale(.97)}.wb-source-tag.active{color:var(--primary);border-color:var(--primary);background:var(--primary-dim)}.wb-source-chev{transition:transform .18s}.wb-source-chev.flip{transform:rotate(180deg)}.wb-source-detail{position:absolute;bottom:calc(100% + 8px);left:0;width:320px;max-width:85vw;max-height:250px;overflow-y:auto;z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);box-shadow:0 8px 24px #46382221}.wb-source-chunk{font-size:.75rem;line-height:1.5;color:var(--text2);white-space:pre-wrap;word-break:break-word;font-family:var(--font);margin:0;background:var(--surface2);padding:8px 10px;border-radius:8px;border:1px solid var(--border)}.nested-sources{display:flex;flex-direction:column;gap:8px}.nested-source-row,.nested-source-child{display:flex;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.nested-source-row{flex-direction:column}.nested-source-main,.nested-source-child{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.nested-source-head{display:inline-flex;align-items:center;gap:6px;min-width:0}.nested-source-head svg{flex-shrink:0;color:var(--text3)}.nested-source-name{font-size:.82rem;font-weight:600;color:var(--text);word-break:break-word}.nested-source-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.nested-source-tag{font-size:.68rem;color:var(--text3);background:var(--surface3);border:1px solid var(--border);padding:2px 7px;border-radius:999px}.nested-source-tag.ok{color:var(--success);border-color:#28714a4d;background:#28714a14}.nested-source-tag.warn{color:var(--warning);border-color:#8a62074d;background:var(--warning-dim)}.nested-source-open,.nested-source-toggle{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--primary);background:transparent;border:none;padding:0;cursor:pointer;text-decoration:none}.nested-source-toggle svg{transition:transform .18s}.nested-source-toggle.open svg{transform:rotate(180deg)}.nested-source-children{display:flex;flex-direction:column;gap:8px;padding-left:14px;border-left:2px solid var(--border)}.nested-sources.compact .nested-source-row,.nested-sources.compact .nested-source-child{padding:8px 10px}.nested-sources.compact .nested-source-name{font-size:.78rem}.wb-chat-input{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.wb-chat-input input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:.9rem}.wb-chat-input input:focus{outline:none;border-color:var(--primary)}.wb-followups{display:flex;flex-direction:column;gap:var(--space-3)}.wb-progress{height:5px;background:var(--surface3);border-radius:999px;overflow:hidden}.wb-progress-bar{height:100%;background:var(--primary);transition:width .3s}.wb-fc-meta{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text3)}.wb-flashcard{perspective:1200px;height:200px;cursor:pointer;margin-bottom:var(--space-2)}.wb-fc-inner{position:relative;width:100%;height:100%;transition:transform .6s var(--ease-out);transform-style:preserve-3d}.wb-flashcard.flipped .wb-fc-inner{transform:rotateY(180deg)}.wb-fc-front,.wb-fc-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-5);border-radius:var(--r);border:1px solid var(--border);font-size:1rem;line-height:1.5;box-shadow:0 4px 12px #00000026;transition:box-shadow .2s}.wb-fc-front{background:var(--surface2);color:var(--text);font-weight:600}.wb-fc-back{background:var(--surface3);color:var(--text2);transform:rotateY(180deg)}.wb-flashcard:hover .wb-fc-front,.wb-flashcard:hover .wb-fc-back{box-shadow:var(--glow)}.wb-flashcard.is-known .wb-fc-front{border-color:var(--success)}.wb-flashcard.is-unknown .wb-fc-front{border-color:var(--danger)}.wb-fc-actions{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}.wb-q{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:var(--space-4)}.wb-q.q-right{border-color:var(--success)}.wb-q.q-wrong{border-color:var(--danger)}.wb-q-text{font-weight:600;color:var(--text);margin-bottom:var(--space-3)}.wb-options{display:flex;flex-direction:column;gap:var(--space-2)}.wb-option{display:flex;align-items:center;gap:var(--space-2);font-size:.88rem;color:var(--text2);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:12px;border:1px solid transparent}.wb-option input{accent-color:var(--primary)}.wb-option.is-picked{background:var(--primary-dim)}.wb-option.is-answer{background:var(--success-dim);border-color:var(--success);color:var(--text)}.wb-short{width:100%;min-height:70px;background:var(--surface3);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:var(--space-3);font-family:var(--font);font-size:.88rem;resize:vertical}.wb-explain{margin-top:var(--space-3);font-size:.85rem;color:var(--text2);line-height:1.5}.wb-explain>span{display:inline-flex;align-items:center;gap:4px;font-weight:600;margin-bottom:4px}.wb-explain p{margin-top:4px}.wb-score{font-size:1rem;color:var(--text);background:var(--primary-dim);border-radius:12px;padding:var(--space-3) var(--space-4);text-align:center}.wb-explain-simple{font-size:.95rem;color:var(--text);line-height:1.6}.wb-callout{display:flex;gap:var(--space-2);background:var(--warning-dim);border-radius:12px;padding:var(--space-3) var(--space-4);font-size:.88rem;color:var(--text2);line-height:1.5}.wb-callout svg{color:var(--warning);flex-shrink:0;margin-top:2px}.plan-deadlines{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:var(--space-3) var(--space-4)}.plan-deadlines-head{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text3);margin-bottom:var(--space-3)}.plan-deadlines-head svg{color:var(--primary)}.plan-deadline-list{display:flex;flex-direction:column;gap:var(--space-2)}.plan-deadline{display:flex;align-items:center;gap:var(--space-3);font-size:.85rem}.plan-deadline-when{flex:0 0 70px;font-weight:700;font-size:.78rem;color:var(--primary)}.plan-deadline.urgent .plan-deadline-when{color:var(--danger)}.plan-deadline-name{flex:1 1 auto;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-deadline-date{flex:0 0 auto;color:var(--text3);font-size:.8rem}.plan-presets{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.plan-chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:999px;padding:7px 14px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.plan-chip:hover{border-color:var(--primary);color:var(--text)}.plan-chip:active{transform:scale(.97)}.plan-chip.active{background:var(--primary-dim);border-color:var(--primary);color:var(--primary)}.plan-datepick{margin-left:auto;min-width:170px}.plan-focus{display:flex;align-items:flex-start;gap:var(--space-2);background:var(--primary-dim);border-radius:12px;padding:var(--space-3) var(--space-4);font-size:.9rem;color:var(--text);line-height:1.5}.plan-focus svg{color:var(--primary);flex-shrink:0;margin-top:2px}.plan-progress{display:flex;align-items:center;gap:var(--space-3)}.plan-progress-bar{flex:1 1 auto;height:8px;background:var(--surface3);border-radius:999px;overflow:hidden}.plan-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:999px;transition:width var(--dur-3) var(--ease-out)}.plan-progress-label{flex:0 0 auto;font-size:.82rem;font-weight:600;color:var(--text2);white-space:nowrap}.plan-timeline{display:flex;flex-direction:column}.plan-day{position:relative;display:flex;gap:var(--space-3);padding:0 0 var(--space-4) var(--space-2)}.plan-day:not(:last-child) .plan-day-dot:after{content:"";position:absolute;left:50%;top:14px;transform:translate(-50%);width:2px;height:calc(100% + var(--space-4) - 14px);background:var(--border)}.plan-day-dot{position:relative;flex:0 0 12px;width:12px;height:12px;margin-top:3px;border-radius:50%;background:var(--surface3);border:2px solid var(--border)}.plan-day.is-today .plan-day-dot{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-dim)}.plan-day.complete .plan-day-dot{background:var(--success);border-color:var(--success)}.plan-day.rest{opacity:.6}.plan-day-body{flex:1 1 auto;min-width:0}.plan-day-label{display:flex;align-items:center;gap:var(--space-2);font-weight:700;color:var(--text);font-size:.9rem;margin-bottom:var(--space-2)}.plan-day.is-today .plan-day-label{color:var(--primary)}.plan-today-tag{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--primary);color:var(--on-accent);padding:2px 7px;border-radius:6px}.plan-day-count{margin-left:auto;font-size:.75rem;font-weight:600;color:var(--text3)}.plan-rest-note{font-style:italic}.plan-tasks{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.plan-tasks li label{display:flex;align-items:flex-start;gap:var(--space-3);font-size:.88rem;color:var(--text2);cursor:pointer;line-height:1.45}.plan-tasks li.checked .plan-task-text{color:var(--text3);text-decoration:line-through}.plan-tasks input{accent-color:var(--primary);margin-top:4px;flex-shrink:0}.plan-task-text{flex:1 1 auto}.plan-task-est{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:.72rem;font-weight:600;color:var(--text3);background:var(--surface3);padding:3px 8px;border-radius:6px;white-space:nowrap;line-height:1;margin-top:2px}.plan-tasks li.checked .plan-task-est{opacity:.5}.good{color:var(--success)}.danger{color:var(--danger)}.ghost-btn.good:hover{color:var(--success);border-color:var(--success)}.ghost-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.studio{display:flex;flex-direction:column;gap:var(--space-3)}.studio-feed{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2)}.studio-feed::-webkit-scrollbar{width:5px}.studio-feed::-webkit-scrollbar-track{background:transparent}.studio-feed::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:999px}.studio-bottom-anchor{height:1px;width:100%}.studio-jump-actions{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:40;display:flex;flex-direction:column;gap:var(--space-2);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease}.studio-jump-actions.show{opacity:1;pointer-events:auto;transform:translateY(0)}.studio-jump-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--surface3);border-radius:999px;background:var(--primary);color:var(--on-accent);cursor:pointer;box-shadow:0 4px 16px #00000059;--lift: -2px;transition:transform var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.studio-jump-btn:hover{transform:translateY(var(--lift, -2px));background:var(--primary-hover)}@media(hover:none){.studio-jump-btn:hover{transform:none}}.studio-empty{text-align:center;padding:var(--space-6) var(--space-4);color:var(--text3);font-size:.88rem;line-height:1.6}.studio-starters{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-4)}.studio-starter{font:inherit;font-size:.85rem;font-weight:600;color:var(--text2);padding:8px 14px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.studio-starter:hover{border-color:var(--accent-border-strong);color:var(--text)}.studio-starter:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.studio-msg{background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-strong);border-radius:var(--card-radius);overflow:hidden;--lift: -2px;animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;box-shadow:var(--elev-card);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.studio-msg:hover{transform:translateY(var(--lift, -2px));border-color:var(--border-strong);box-shadow:var(--shadow-card-hover)}.studio-msg.has-error{border-color:var(--danger)}.studio-msg.loading{opacity:.7}@keyframes studioMsgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.studio-msg-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--card-pad-compact);background:var(--wash-soft);border-bottom:1px solid var(--border);flex-wrap:wrap}.studio-msg-tool{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--type-eyebrow);font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);flex-shrink:0}.studio-msg-query{flex:1;font-size:var(--type-body-sm);color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.studio-msg-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.studio-msg-content{padding:var(--card-pad-compact);font-size:var(--type-body-sm);line-height:var(--lh-body);color:var(--text);display:flex;flex-direction:column;gap:var(--card-gap)}.studio-msg-body{word-wrap:break-word}.studio-markdown{line-height:var(--lh-body)}.studio-markdown h1,.studio-markdown h2,.studio-markdown h3,.studio-markdown h4{color:var(--text);font-weight:700;margin:.8em 0 .4em;line-height:1.3}.studio-markdown h1:first-child,.studio-markdown h2:first-child,.studio-markdown h3:first-child,.studio-markdown h4:first-child{margin-top:0}.studio-markdown h1{font-size:var(--type-title)}.studio-markdown h2{font-size:var(--type-body)}.studio-markdown h3{font-size:var(--type-body-sm);color:var(--primary)}.studio-markdown h4{font-size:var(--type-meta);color:var(--text2)}.studio-markdown p{margin:0 0 .6em}.studio-markdown p:last-child{margin-bottom:0}.studio-markdown strong{color:var(--text);font-weight:700}.studio-markdown em{color:var(--text2);font-style:italic}.studio-markdown ul,.studio-markdown ol{margin:.4em 0 .7em;padding-left:1.4em}.studio-markdown li{margin-bottom:.3em;line-height:1.55}.studio-markdown li::marker{color:var(--primary)}.studio-markdown code{background:#bc4a221a;border:1px solid rgba(188,74,34,.15);color:var(--primary);padding:.15em .4em;border-radius:5px;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.85em;word-break:break-word}.studio-markdown pre{background:var(--ink-wash);border:1px solid var(--border);border-radius:var(--card-radius-row);padding:var(--space-3) var(--space-4);overflow-x:auto;margin:.5em 0 .7em}.studio-markdown pre code{background:none;border:none;color:var(--text2);padding:0;font-size:var(--type-meta);line-height:var(--lh-snug)}.studio-markdown blockquote{margin:.5em 0;padding:var(--space-2) var(--space-4);border-left:3px solid var(--primary);background:var(--primary-dim);border-radius:0 8px 8px 0;color:var(--text2)}.studio-markdown blockquote p{margin:0}.studio-markdown hr{border:none;height:1px;background:var(--border);margin:.8em 0}.studio-markdown table{width:100%;border-collapse:collapse;margin:.5em 0;font-size:var(--type-body-sm)}.studio-markdown th,.studio-markdown td{border:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:left}.studio-markdown th{background:var(--surface3);font-weight:700;color:var(--text)}.studio-markdown td{color:var(--text2)}.studio-markdown a{color:var(--primary);text-decoration:underline;text-decoration-color:#bc4a224d;text-underline-offset:2px;transition:text-decoration-color .15s}.studio-markdown a:hover{text-decoration-color:var(--primary)}.studio-msg-error{color:var(--danger);font-size:var(--type-body-sm)}.studio-clear-btn{align-self:flex-end;margin-top:calc(-1 * var(--space-1));opacity:.6;font-size:.78rem}.studio-clear-btn:hover{opacity:1}.studio-toolbar{display:flex;gap:6px;padding:var(--space-2);background:var(--surface2);border:1px solid var(--border);border-radius:999px;overflow-x:auto;scrollbar-width:none}.studio-toolbar::-webkit-scrollbar{display:none}.studio-tool-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:999px;border:1px solid transparent;background:transparent;color:var(--text2);font-family:var(--font);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;white-space:nowrap;flex-shrink:0}.studio-tool-btn:hover{background:var(--surface3);color:var(--text)}.studio-tool-btn.active{background:var(--primary);color:var(--on-accent);border-color:var(--primary);box-shadow:var(--glow)}.studio-tool-btn.danger{color:var(--text3)}.studio-tool-btn.danger:hover{background:var(--danger-dim);color:var(--danger);border-color:var(--danger-border)}.studio-composer{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2)}.studio-controls-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.studio-control-group{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0}.studio-control-group-end{margin-left:auto}.studio-mode-toggle,.studio-setting-toggle,.studio-clear-toggle{min-height:38px}.studio-mode-btn,.studio-clear-control{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1)}.studio-context-label{font-size:.8rem;font-weight:600;color:var(--text3);flex-shrink:0}.studio-clear-control{color:var(--text2)}.studio-clear-control:hover{color:var(--danger)}.studio-input-row{display:flex;gap:var(--space-2);align-items:center}@media(max-width:720px){.studio-composer{padding:var(--space-2) 0 0}.studio-controls-row{gap:var(--space-2)}.studio-control-group-end{margin-left:0}}.studio-priority-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--primary-dim);border:1px solid rgba(188,74,34,.2);border-radius:20px;padding:5px var(--space-3);font-size:.8rem;color:var(--text);max-width:100%}.studio-priority-label{color:var(--primary);font-weight:700;text-transform:uppercase;font-size:.72rem;letter-spacing:.03em;white-space:nowrap}.studio-priority-name{color:var(--text);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.studio-priority-icon{color:var(--primary);flex-shrink:0}.studio-priority-clear{background:transparent;border:none;color:var(--text3);cursor:pointer;padding:2px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.studio-priority-clear:hover{background:var(--wash-strong);color:var(--text)}.studio-nested-sources{display:flex;flex-direction:column;gap:8px;margin-top:12px}.studio-nested-label,.finish-nested-head{font-size:.74rem;font-weight:700;color:var(--text3)}.studio-context-select-container{position:relative;flex-shrink:0;display:flex;align-items:center}.studio-plus-btn{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.studio-plus-btn:hover{background:var(--surface3);color:var(--text);border-color:var(--border-strong)}.studio-plus-btn.active{background:var(--primary-dim);border-color:var(--primary);color:var(--primary)}.studio-assignment-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;width:320px;z-index:200;background:var(--surface2);border:1px solid var(--border-strong);border-radius:var(--r);box-shadow:0 8px 32px #4638222e,0 2px 8px #46382221;animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:bottom center;display:flex;flex-direction:column;gap:4px;padding:var(--space-1);max-height:280px;overflow:hidden}.studio-dropdown-search{display:flex;align-items:center;gap:var(--space-2);min-height:36px;padding:.35rem var(--space-3);border:1px solid var(--border);border-radius:var(--r2);background:var(--field-bg);transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.studio-dropdown-search:focus-within{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--focus-ring)}.studio-dropdown-search .search-icon{color:var(--text3);flex-shrink:0}.studio-search-input{flex:1;background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:.85rem;font-weight:500;line-height:1.35;outline:none;padding:0}.studio-dropdown-search .studio-search-input:focus,.studio-dropdown-search .studio-search-input:focus-visible{background:transparent;border-color:transparent;box-shadow:none;outline:none!important}.studio-search-input::placeholder{color:var(--text3)}.studio-dropdown-search .clear-search-btn{background:transparent;border:none;color:var(--text3);cursor:pointer;padding:2px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.studio-dropdown-search .clear-search-btn:hover{background:var(--wash-strong);color:var(--text)}.studio-dropdown-list{overflow-y:auto;padding:0;display:flex;flex-direction:column;gap:2px;max-height:230px;scrollbar-width:none}.studio-dropdown-list::-webkit-scrollbar{display:none}.studio-dropdown-list::-webkit-scrollbar-track{background:transparent}.studio-dropdown-list::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:999px}.studio-dropdown-empty{padding:var(--space-4);text-align:center;color:var(--text3);font-size:.85rem}.studio-dropdown-header{padding:var(--space-2) var(--space-4) 2px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.studio-dropdown-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:20px;color:var(--text2);cursor:pointer;text-align:left;font-family:var(--font);transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;width:100%}.studio-dropdown-option:hover:not(:disabled){background:var(--surface3);color:var(--text)}.studio-dropdown-option.active{background:var(--primary);color:var(--on-accent)}.studio-dropdown-option .option-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.studio-dropdown-option .option-due{font-size:.72rem;color:var(--text3)}.studio-dropdown-option.active .option-due{color:var(--on-accent);opacity:.75}.studio-dropdown-option .option-sub{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.3rem .45rem;max-width:100%}.studio-dropdown-option .asgn-lock-label{flex-shrink:0;font-size:.6rem;padding:.1rem .45rem}.studio-dropdown-option:disabled{cursor:default}.studio-dropdown-option:disabled .option-name{color:var(--text3)}.studio-input-wrapper{position:relative;flex:1;display:flex;align-items:center}.studio-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:.9rem;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.studio-input:focus{outline:none;border-color:var(--primary)}.studio-input:disabled{opacity:.5}.studio-mic-btn{position:absolute;right:8px;width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out,transform .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out;z-index:10}.studio-mic-btn:hover{background:var(--surface3);color:var(--text)}.studio-mic-btn:disabled{opacity:.3;cursor:not-allowed}.studio-mic-btn.listening{color:var(--danger);background:var(--danger-dim);box-shadow:0 0 0 3px #b23a2e33;animation:moStudioMicPulse 1.5s infinite var(--ease-out)}@keyframes moStudioMicPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.78}}.studio-send-btn{flex-shrink:0;align-self:center;width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}@media(max-width:520px){.studio-controls-row{align-items:stretch}.studio-control-group,.studio-control-group .wb-toggle,.studio-mode-btn,.studio-clear-control{width:100%}.studio-mode-btn span,.studio-clear-control span{white-space:nowrap}}.vault{display:flex;flex-direction:column;gap:var(--space-4);margin-top:calc(var(--space-4) - var(--space-6))}.vault-intro{align-self:center;width:fit-content;max-width:100%;margin:0;padding:var(--space-2) var(--space-4);font-size:.88rem;line-height:1.5;color:var(--text2);text-align:center;background:color-mix(in srgb,var(--surface2) 75%,transparent);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:999px}.vault-add{display:flex;flex-direction:column;gap:var(--space-3)}.vault-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;border:1.5px dashed color-mix(in srgb,var(--primary) 24%,var(--border));border-radius:var(--r);padding:var(--space-5) var(--space-4);cursor:pointer;color:var(--text2);background:color-mix(in srgb,var(--surface2) 82%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface3) 50%,transparent);transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out);animation:vault-drop-settle var(--dur-3) var(--ease-out) backwards}.vault-drop:hover{border-color:#bc4a227a;background:color-mix(in srgb,var(--surface2) 92%,var(--primary-dim));box-shadow:inset 0 0 0 1px #bc4a221f,0 8px 24px #0000001f;transform:translateY(-1px)}.vault-drop.dragging{border-color:var(--primary);background:color-mix(in srgb,var(--primary-dim) 75%,var(--surface2));box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 16%,transparent);transform:scale(1.01)}.vault-drop:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.vault-drop-icon{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:color-mix(in srgb,var(--primary-dim) 78%,transparent);color:var(--primary);transition:transform .18s ease,background .18s ease}.vault-drop:hover .vault-drop-icon{transform:translateY(-1px) scale(1.03);background:color-mix(in srgb,var(--primary-dim) 92%,transparent)}.vault-drop-copy{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:520px}.vault-drop-title{margin:0;font-size:.98rem;font-weight:700;color:var(--text)}.vault-drop-hint{margin:0;font-size:.84rem;line-height:1.5;color:var(--text3)}.vault-drop.sm{padding:var(--space-4)}.vault-drop.sm p{font-size:.82rem;color:var(--text2)}.vault-drop-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.vault-drop-note{margin:var(--space-1) 0 0;font-size:.78rem;line-height:1.45;color:var(--text3);cursor:default}.vault-paste{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface2);border:1px solid var(--border);border-radius:16px;animation:vault-paste-open var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.vault-paste-label{margin:0;font-size:.85rem;font-weight:600;color:var(--text2)}.vault-paste-input{min-height:150px}@keyframes vault-drop-settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes vault-paste-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.vault-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.vault-section-head h3{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.95rem;font-weight:700;color:var(--text)}.vault-section-head h3 svg{color:var(--text3)}.vault-list{list-style:none;display:flex;flex-direction:column;background:var(--surface2);border:1px solid var(--border);border-radius:12px;overflow:hidden}.vault-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);transition:background .15s}.vault-item:last-child{border-bottom:none}.vault-item:hover{background:var(--surface3)}.vault-item.status-error{background:color-mix(in srgb,var(--danger) 7%,transparent)}.vault-item-icon{display:inline-flex;color:var(--text3);flex-shrink:0}.vault-item-main{flex:1;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.vault-item-name{font-size:var(--type-body-sm);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-item-meta{font-size:var(--type-meta);color:var(--text3)}.vault-item-error{font-size:var(--type-meta);color:var(--danger);display:inline-flex;align-items:center;gap:var(--space-1)}.vault-status{font-size:var(--type-meta);font-weight:600;display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap;flex-shrink:0;color:var(--warning)}.vault-dot-spin{width:10px;height:10px;border:2px solid var(--warning);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.vault-item-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;opacity:.55;transition:opacity .15s}.vault-item:hover .vault-item-actions{opacity:1}.vault-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:8px;color:var(--text3);cursor:pointer;transition:color .15s,background .15s}.vault-iconbtn:hover{color:var(--text);background:var(--surface3)}.vault-iconbtn.danger:hover{color:var(--danger)}.vault-item-editing{flex-direction:column;align-items:stretch;gap:var(--space-2)}.vault-edit-head{display:flex;align-items:center;gap:var(--space-2)}.vault-edit-text{min-height:150px}.vault-locked{display:flex;flex-direction:column;gap:var(--card-gap);background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--card-radius-row);padding:var(--card-pad-compact)}.vault-locked-head{display:flex;align-items:center;gap:var(--card-gap)}.vault-locked-warn{color:var(--warning);flex-shrink:0}.vault-locked.info{border-left-color:var(--border-strong)}.vault-locked-info-icon{color:var(--text3);flex-shrink:0}.vault-locked-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--type-body);font-weight:var(--fw-title);line-height:var(--lh-snug);color:var(--text)}.vault-locked-sub{font-size:var(--type-meta);font-weight:var(--fw-body);color:var(--text3)}.vault-locked-help-link{appearance:none;background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.vault-locked-help-link:hover{color:var(--primary-hover)}.vault-locked-help-body{margin-top:var(--space-2);font-size:var(--type-meta);font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--text2)}.vault-locked-dl{flex-shrink:0}.vault-locked-actions{display:flex;align-items:center;gap:var(--card-gap-tight);flex-shrink:0}.vault-locked-count{flex-shrink:0;white-space:nowrap;padding:2px 10px;font-size:var(--type-eyebrow);font-weight:600;font-variant-numeric:tabular-nums;color:var(--warning);background:var(--warning-dim);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:999px}.vault-locked-note{margin:0;font-size:var(--type-meta);color:var(--text3);line-height:var(--lh-snug)}@media(max-width:560px){.vault-locked-head{flex-wrap:wrap}.vault-locked-title{flex-basis:calc(100% - 16px - var(--space-3))}.vault-locked-actions{margin-left:calc(16px + var(--space-3));flex-wrap:wrap}}.vault-unlock-done{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md, 10px);background:var(--surface2, transparent);color:var(--text2)}.vault-library{display:flex;flex-direction:column;gap:var(--space-5)}.vault-groups{display:flex;flex-direction:column;gap:var(--space-3)}.vault-group{display:flex;flex-direction:column;gap:var(--space-2)}.vault-unit-groups{gap:var(--space-4)}details.vault-unit{border:1px solid var(--border);border-radius:14px;background:var(--surface2);overflow:hidden}.vault-unit summary{list-style:none}.vault-unit-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none}.vault-unit-head::-webkit-details-marker{display:none}details.vault-unit[open]>.vault-unit-head .vault-kind-chev{transform:rotate(180deg)}.vault-unit-head:hover{background:var(--surface3)}.vault-unit-titlewrap{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0}.vault-unit-title{font-size:1rem;font-weight:700;color:var(--text)}.vault-unit-meta{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.75rem;color:var(--text3);flex-shrink:0}.vault-unit-body{display:flex;flex-direction:column;gap:var(--space-4);padding:0 var(--space-4) var(--space-4)}.vault-unit-section{display:flex;flex-direction:column;gap:var(--space-2)}.vault-unit-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0}.vault-unit-section-label{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}.vault-coursewide .vault-kind-head{background:color-mix(in srgb,var(--surface3) 55%,transparent)}.vault-coursewide-body{gap:var(--space-4)}details.vault-kind{border:1px solid var(--border);border-radius:12px;background:var(--surface2);overflow:hidden}.vault-kind-head{display:flex;align-items:center;gap:var(--space-2);margin:0;padding:var(--space-3) var(--space-4);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;font-size:.95rem;font-weight:700;color:var(--text)}.vault-kind-head::-webkit-details-marker{display:none}.vault-kind-head:hover{background:var(--surface3)}.vault-kind-head svg{color:var(--text3)}.vault-kind-chev{margin-left:auto;transition:transform .15s}details.vault-kind[open]>.vault-kind-head .vault-kind-chev{transform:rotate(180deg)}.vault-kind-body{display:flex;flex-direction:column;gap:var(--space-4);padding:0 var(--space-4) var(--space-4)}.vault-kind-count{font-weight:600;color:var(--text3);background:var(--surface3);border-radius:999px;padding:1px 8px;font-size:.7rem}.vault-kind.is-assess .vault-kind-head,.vault-kind.is-assess .vault-kind-head>svg:first-child{color:var(--info)}.vault-needs-notes{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.6rem;color:var(--warning);background:var(--warning-dim);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:4px;padding:1px 7px;white-space:nowrap}.vault-kind-subs{display:flex;flex-direction:column;gap:var(--space-4);margin-left:6px;padding-left:var(--space-3);border-left:1px solid var(--border)}.vault-group-head{display:flex;align-items:center;gap:var(--space-2);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);margin:0}.vault-danger{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border);display:flex;justify-content:flex-end}.vault-reset-trigger{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);width:100%}.vault-reset-caption{font-size:.78rem;color:var(--text3);line-height:1.4}.vault-danger-confirm{display:flex;flex-direction:column;gap:var(--space-3);width:100%;background:color-mix(in srgb,var(--danger) 8%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:12px;padding:var(--space-4)}.vault-danger-warn{display:flex;align-items:flex-start;gap:var(--space-2);font-size:.85rem;line-height:1.45;color:var(--text2)}.vault-danger-warn svg{color:var(--danger);flex-shrink:0;margin-top:2px}.danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--danger);color:var(--on-accent);border:none;border-radius:999px;font-family:var(--font);font-size:.88rem;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease}.danger-btn.sm{padding:var(--space-2) var(--space-3);font-size:.78rem}.danger-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.danger-btn:disabled{opacity:.5;cursor:not-allowed}.vault-coverage{display:flex;flex-wrap:wrap;align-items:center;font-size:.75rem;color:var(--text3)}.vault-coverage span{display:inline-flex;align-items:center;gap:5px}.vault-coverage span:not(:last-child):after{content:"·";margin:0 var(--space-2);color:var(--text3)}.vault-coverage-proc{color:var(--warning)}.vault-depth{display:inline-block;margin-left:var(--space-2);padding:1px 7px;border-radius:999px;font-size:.66rem;font-weight:700;letter-spacing:.02em;vertical-align:middle}.vault-depth-full{background:var(--success-dim);color:var(--success)}.vault-depth-brief{background:var(--surface3);color:var(--text3)}.vault-depth-titles{background:var(--warning-dim);color:var(--warning)}.vault-depth-note{display:block;margin-top:2px;font-size:.7rem;line-height:1.4;color:var(--text3)}.vault-unit-pick{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:4px;font-size:.72rem;color:var(--text3)}.vault-unit-pick select{background:var(--surface3);color:var(--text2);border:1px solid var(--border);border-radius:8px;padding:2px 6px;font-family:var(--font);font-size:.72rem;max-width:220px;cursor:pointer}.vault-unit-pick select:focus{border-color:var(--primary);outline:none}.vault-current-pill{font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.6rem;color:var(--primary);background:var(--primary-dim);border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);border-radius:4px;padding:1px 7px;white-space:nowrap}.vault-group-head.is-assess,.vault-group-head .vault-group-tested-icon{color:var(--info)}details.vault-past-course>.vault-unit-head{background:color-mix(in srgb,var(--surface3) 40%,transparent)}details.vault-past-course>.vault-unit-head:hover{background:var(--surface3)}.vault-past-term{font-style:normal;font-weight:700;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--text2);border:1px solid var(--border);border-radius:4px;padding:1px 7px;white-space:nowrap}.vault-past-body{gap:var(--space-2);padding-top:var(--space-2)}.vault-past-row{cursor:default}.vault-past-note{margin:0;font-size:.75rem;color:var(--text3);line-height:1.5}.wb-coverage-note{display:flex;align-items:flex-start;gap:var(--space-2);font-size:.8rem;color:var(--text2);background:var(--warning-dim);border:1px solid var(--warning-border);border-radius:12px;padding:var(--space-3)}.wb-coverage-note svg{color:var(--warning);flex-shrink:0;margin-top:1px}.wb-linkbtn{background:none;border:none;color:var(--primary);font:inherit;cursor:pointer;padding:0;text-decoration:underline}.wb-standing{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4);margin-bottom:var(--space-5);border-radius:var(--r);border:1px solid var(--border);background:var(--surface2);border-left:3px solid var(--text3)}.wb-standing.band-good{border-left-color:var(--success)}.wb-standing.band-ok{border-left-color:var(--info)}.wb-standing.band-warn{border-left-color:var(--warning)}.wb-standing.band-danger{border-left-color:var(--danger)}.wb-standing.calm{border-left-color:var(--success)}.wb-standing-main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.wb-standing-icon{display:inline-flex;flex-shrink:0;color:var(--text2)}.wb-standing.band-good .wb-standing-icon,.wb-standing.calm .wb-standing-icon{color:var(--success)}.wb-standing.band-warn .wb-standing-icon{color:var(--warning)}.wb-standing.band-danger .wb-standing-icon{color:var(--danger)}.wb-standing-text{display:flex;flex-direction:column;gap:2px;min-width:0}.wb-standing-text strong{font-size:1rem;color:var(--text)}.wb-standing-sub{font-size:.82rem;color:var(--text2)}.wb-standing-cta{flex-shrink:0}.finish-integrity{display:flex;align-items:center;gap:var(--space-2);font-size:.8rem;color:var(--text2);background:var(--primary-dim);border:1px solid rgba(188,74,34,.25);border-radius:12px;padding:var(--space-3)}.finish-integrity svg{color:var(--primary);flex-shrink:0}.finish-quick{display:flex;flex-direction:column;gap:var(--space-2)}.finish-quick-label{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text3)}.finish-quick-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.finish-quick-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 200px;padding:var(--space-2) var(--space-3);border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;text-align:left}.finish-quick-chip:hover{border-color:var(--primary);color:var(--text)}.finish-quick-chip.active{border-color:var(--primary);background:var(--primary-dim)}.finish-quick-name{font-size:.85rem;color:var(--text);font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finish-quick-when{font-size:.72rem;color:var(--text3)}.finish-quick-chip.overdue .finish-quick-when,.finish-quick-chip.urgent .finish-quick-when{color:var(--danger)}.finish-quick-chip.soon .finish-quick-when{color:var(--warning)}.finish-link{display:inline-flex;align-items:center;gap:4px;color:var(--primary);text-decoration:none;font-size:.8rem}.finish-link:hover{text-decoration:underline}.finish-card{display:flex;flex-direction:column;gap:var(--card-gap);padding:var(--card-pad-compact);border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface2);position:relative}.finish-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.finish-card-pts{font-size:var(--type-meta);color:var(--text3)}.finish-card-name{font-size:var(--type-title);font-weight:var(--fw-title);color:var(--text);line-height:var(--lh-snug);letter-spacing:var(--ls-title);text-wrap:balance}.finish-card-due{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--type-meta);color:var(--text3)}.finish-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:var(--card-radius-chip);font-size:var(--type-eyebrow);font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text2)}.finish-badge.overdue,.finish-badge.urgent{color:var(--danger);border-color:var(--danger-border);background:var(--danger-dim)}.finish-badge.soon{color:var(--warning);border-color:var(--warning-border);background:var(--warning-dim)}.finish-badge.submitted,.finish-badge.graded{color:var(--success);border-color:var(--success-border);background:var(--success-dim)}.finish-badge.open{color:var(--primary);border-color:var(--accent-border-soft);background:var(--primary-dim)}.finish-desc-toggle{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--primary);background:none;border:none;padding:0;cursor:pointer;align-self:flex-start}.finish-desc-toggle svg{transition:transform .15s}.finish-desc-toggle svg.rot{transform:rotate(180deg)}.finish-desc{font-size:var(--type-meta);color:var(--text2);line-height:var(--lh-body);padding:var(--space-3);border-radius:var(--card-radius-row);background:var(--surface);border:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere}.finish-unlocked-doc{display:flex;flex-direction:column;gap:4px}.finish-unlocked-head{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;color:var(--success)}.finish-links{display:flex;flex-direction:column;gap:var(--card-gap-tight)}.finish-link-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:8px;border:1px solid var(--border);background:var(--surface)}.finish-link-row.unlocked{flex-direction:row;align-items:center;gap:7px;border-color:#28714a66;background:#28714a0f;color:var(--success)}.finish-link-row.unlocked svg{color:var(--success);flex-shrink:0}.finish-link-top{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.finish-link-top svg{color:var(--text3);flex-shrink:0}.finish-link-name{font-size:.85rem;font-weight:600;color:var(--text);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finish-link-tag{font-size:.7rem;font-weight:600;padding:1px 7px;border-radius:999px}.finish-link-tag.ok{color:var(--success);background:#28714a1a}.finish-link-tag.warn{color:var(--warning);background:var(--warning-dim)}.finish-unlock-btn{margin-left:auto}.finish-unlock{display:flex;flex-direction:column;gap:var(--space-3)}.finish-unlock-help{font-size:.78rem;color:var(--text3);line-height:1.45}.finish-unlock-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.finish-download-btn{display:inline-flex;align-items:center;gap:var(--space-2)}.finish-unlock-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);text-align:center;border:1.5px dashed var(--border);border-radius:var(--r);padding:var(--space-4);cursor:pointer;color:var(--text2);transition:border-color .15s,background .15s}.finish-unlock-drop:hover{border-color:#bc4a2280;background:var(--surface2)}.finish-unlock-drop.dragging{border-color:var(--primary);background:var(--primary-dim)}.finish-unlock-drop svg{color:var(--primary)}.finish-unlock-drop p{font-size:.85rem;margin:0}.finish-unlock-hint{font-size:.75rem!important;color:var(--text3)}.finish-unlock-drop.has-file{border-color:#28714a80;background:#28714a0a}.finish-unlock-drop.has-file svg{color:var(--success)}.finish-unlock-filename{font-weight:600;color:var(--text);font-size:.88rem!important}.finish-unlock-change{font-size:.72rem!important;color:var(--text3)}.finish-modeseg{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.finish-modeseg.finish-modeseg-three{grid-template-columns:repeat(3,minmax(0,1fr))}.finish-modeopt{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s;text-align:left}.finish-modeopt:hover{border-color:var(--primary);color:var(--text)}.finish-modeopt.active{border-color:var(--primary);background:var(--primary-dim);color:var(--primary)}.finish-modeopt svg{color:var(--primary)}.finish-modeopt-label{font-size:.85rem;font-weight:600;color:var(--text)}.finish-modeopt.active .finish-modeopt-label{color:var(--primary)}.finish-modeopt-blurb{font-size:.72rem;color:var(--text3);line-height:1.35}@media(max-width:760px){.finish-modeseg.finish-modeseg-three{grid-template-columns:1fr}}@media(max-width:560px){.finish-modeseg{grid-template-columns:1fr}.finish-modeopt{flex-direction:row;align-items:center;flex-wrap:wrap}.finish-modeopt-blurb{flex-basis:100%}}.finish-draft{min-height:160px}.finish-draft-label{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.finish-draft-count{font-style:normal;font-size:.75rem;color:var(--text3)}.finish-progress{display:flex;flex-direction:column;gap:5px}.finish-progress-bar{height:7px;border-radius:999px;background:var(--surface2);overflow:hidden}.finish-progress-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .4s ease}.finish-progress-fill.done{background:var(--success)}.finish-progress-label{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text3)}.finish-step-num{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:999px;background:var(--primary-dim);color:var(--primary);font-size:var(--type-meta);font-weight:var(--fw-label);line-height:1;font-variant-numeric:tabular-nums}.finish-sources{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-3)}.finish-nested-block{display:flex;flex-direction:column;gap:8px;margin-top:var(--space-3)}.wb-result>.wb-sources{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border)}.finish-sources-read,.finish-sources-locked{display:flex;align-items:flex-start;gap:6px;font-size:.78rem;line-height:1.45;padding:var(--space-2) var(--space-3);border-radius:8px}.finish-sources-read{color:var(--text3);background:var(--surface2)}.finish-sources-read svg,.finish-sources-locked svg{flex-shrink:0;margin-top:2px}.finish-sources-locked{color:var(--warning);background:var(--warning-dim)}.finish-summary{font-size:.9rem;color:var(--text);line-height:1.55;padding:var(--space-4);background:var(--surface2);border:1px solid var(--border);border-radius:12px}.finish-estimate{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--text3)}.finish-steps-card{position:relative;padding:var(--card-pad-compact);background:var(--surface2);border:1px solid var(--border);border-radius:var(--card-radius-row);margin-bottom:var(--space-3)}.finish-steps-card .finish-ask-tutor{position:absolute;top:var(--space-4);right:var(--space-4)}.finish-steps{display:flex;flex-direction:column;gap:var(--space-3);list-style:none}.finish-steps li{display:flex;align-items:flex-start;gap:var(--card-gap);font-size:var(--type-body);color:var(--text);line-height:var(--lh-body)}.finish-steps li .finish-step-num{margin-top:1px}.finish-steps li:first-child{padding-right:10.5rem}.finish-block{display:flex;flex-direction:column;gap:var(--card-gap-tight);border:1px solid var(--border);border-radius:var(--card-radius-row);padding:var(--card-pad-compact);background:var(--surface2)}.finish-block h4{display:flex;align-items:center;gap:var(--space-1);font-size:var(--type-meta);color:var(--text2)}.finish-block.warn{border-color:#fcd34d4d}.finish-block.warn h4 svg{color:var(--warning)}.finish-block.good{border-color:#28714a4d}.finish-block.good h4 svg{color:var(--success)}.finish-bullets{display:flex;flex-direction:column;gap:var(--space-1);padding-left:var(--space-5)}.finish-bullets li{font-size:var(--type-body-sm);color:var(--text2);line-height:1.5}.finish-questions li{color:var(--text);font-style:italic}.finish-reqs{display:flex;flex-direction:column;gap:var(--space-2);list-style:none}.finish-reqs li{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:12px;border:1px solid var(--border);background:var(--surface2)}.finish-reqs li.met{border-color:#28714a4d}.finish-reqs li.unmet{border-color:#fca5a54d}.finish-req-icon{display:inline-flex;flex-shrink:0;margin-top:1px}.finish-reqs li.met .finish-req-icon{color:var(--success)}.finish-reqs li.unmet .finish-req-icon{color:var(--danger)}.finish-req-text{display:flex;flex-direction:column;gap:2px;font-size:.88rem;color:var(--text)}.finish-req-note{font-size:.78rem;color:var(--text3)}.quiz-drill-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:12px;background:var(--primary-dim);border:1px solid rgba(188,74,34,.25);font-size:.85rem;color:var(--text)}.quiz-drill-banner>span:first-child{display:inline-flex;align-items:center;gap:6px}.quiz-drill-banner svg{color:var(--primary)}.quiz-drill-label{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--primary);margin-bottom:var(--space-2)}.quiz-shuffle{gap:var(--space-2)}.quiz-shuffle svg{color:var(--text3)}.wb-fc-tag{position:absolute;top:var(--space-3);left:var(--space-4);font-size:.6rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.wb-fc-front .wb-fc-tag{color:var(--primary)}.wb-fc-back .wb-fc-tag{color:var(--info)}.wb-fc-level{position:absolute;top:var(--space-3);right:var(--space-4);display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border:1px solid var(--border);border-radius:6px;font-size:.6rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3)}.wb-fc-level i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--primary)}.quiz-fc-tally{display:inline-flex;align-items:center;gap:var(--space-3)}.quiz-fc-tally>span{display:inline-flex;align-items:center;gap:3px;font-weight:700}.quiz-kbd-hints{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);margin-top:var(--space-1);font-size:.72rem;color:var(--text3)}.quiz-kbd-hints span{display:inline-flex;align-items:center;gap:4px}.quiz-kbd-hints kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:1px 5px;background:var(--surface3);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;font-family:var(--font);font-size:.66rem;font-weight:700;color:var(--text2)}.quiz-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-5) var(--space-4) var(--space-4)}.quiz-done-ring{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--primary-dim);border:1px solid rgba(188,74,34,.3);color:var(--primary);margin-bottom:var(--space-1)}.quiz-done-ring.good{background:var(--success-dim);border-color:#28714a4d;color:var(--success)}.quiz-done-score{font-size:2.2rem;font-weight:800;color:var(--text);line-height:1}.quiz-done-score span{font-size:1.1rem;font-weight:600;color:var(--text3)}.quiz-done-sub{font-size:.95rem;color:var(--text2)}.quiz-done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-3)}.quiz-test-score{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:12px;background:var(--primary-dim);border:1px solid rgba(188,74,34,.25)}.quiz-test-score.good{background:var(--success-dim);border-color:#28714a4d}.quiz-test-score.low{background:var(--danger-dim);border-color:#fca5a54d}.quiz-test-score-num{font-size:1.6rem;font-weight:800;color:var(--text);line-height:1}.quiz-test-score-num span{font-size:.95rem;font-weight:600;color:var(--text3)}.quiz-test-score-meta{display:flex;flex-direction:column;gap:2px}.quiz-test-score-meta strong{font-size:1rem;color:var(--text)}.quiz-test-score-meta span{font-size:.85rem;color:var(--text2)}.quiz-test-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.quiz-selfgrade{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border)}.quiz-sg-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--text3);font-family:var(--font);font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.quiz-sg-btn:hover{color:var(--text2)}.quiz-sg-btn.good.active{background:var(--success-dim);border-color:var(--success);color:var(--success)}.quiz-sg-btn.danger.active{background:var(--danger-dim);border-color:var(--danger);color:var(--danger)}.viz-mode-toggle{display:flex;align-items:center;gap:6px;padding:var(--space-2);background:var(--surface2);border:1px solid var(--border);border-radius:999px;overflow-x:auto;scrollbar-width:none}.viz-mode-toggle::-webkit-scrollbar{display:none}.viz-options-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-1);margin-bottom:var(--space-2)}.viz-difficulty{display:flex;align-items:center;gap:var(--space-3)}.viz-difficulty>span{font-size:.78rem;font-weight:600;color:var(--text3)}.viz-diff-pills{display:inline-flex;gap:4px;padding:4px;background:var(--surface2);border:1px solid var(--border);border-radius:999px}.viz-diff-pill{padding:4px 14px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--text2);font-family:var(--font);font-size:.75rem;font-weight:600;text-transform:capitalize;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.viz-diff-pill:hover{color:var(--text)}.viz-diff-pill.easy.active{background:var(--success);border-color:var(--success);color:var(--on-accent)}.viz-diff-pill.medium.active{background:var(--warning);border-color:var(--warning);color:var(--on-accent)}.viz-diff-pill.hard.active{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.viz-feed{display:flex;flex-direction:column;gap:var(--space-4);max-height:max(560px,calc(100vh - 260px));overflow-y:auto;padding:var(--space-2);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--surface3) transparent}.viz-feed::-webkit-scrollbar{width:5px}.viz-feed::-webkit-scrollbar-track{background:transparent}.viz-feed::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:999px}.viz-intro{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-7) var(--space-4)}.viz-intro-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--primary-dim);color:var(--primary);margin-bottom:var(--space-2)}.viz-intro-title{font-size:1rem;font-weight:700;color:var(--text)}.viz-intro-sub{font-size:.85rem;color:var(--text3);max-width:420px;line-height:1.55}.viz-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin-top:var(--space-3)}.viz-chip{padding:6px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-family:var(--font);font-size:.78rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.viz-chip:hover{border-color:var(--primary);background:var(--primary-dim);color:var(--text)}.viz-result{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;animation:studioMsgIn .3s ease-out}.viz-result.has-error{border-color:var(--danger)}.viz-result-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--wash-soft);border-bottom:1px solid var(--border);flex-wrap:wrap}.viz-mode-badge{display:inline-flex;align-items:center;gap:5px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary);background:var(--primary-dim);padding:3px 9px;border-radius:999px;flex-shrink:0}.viz-result-query{flex:1;min-width:100px;font-size:.82rem;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-result-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;margin-left:auto}.viz-result-body{padding:0;margin:0}.viz-image-stage{padding:var(--space-4);display:flex;justify-content:center;align-items:center;background:var(--bg)}.viz-image{width:100%;height:auto;max-height:520px;object-fit:contain;border-radius:8px;display:block}.viz-launch{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--bg)}.viz-launch-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border-radius:10px;color:var(--primary);background:var(--primary-dim)}.viz-launch-text{flex:1;min-width:0}.viz-launch-title{margin:0;font-size:.9rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-launch-sub{margin:3px 0 0;font-size:.76rem;color:var(--text3)}.viz-launch-btn{flex-shrink:0}.viz-input-row{display:flex;gap:var(--space-2);align-items:center}.viz-input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:.9rem;transition:border-color .15s}.viz-input:focus{outline:none;border-color:var(--primary)}.viz-input:disabled{opacity:.5}.viz-send-btn{flex-shrink:0;width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.viz-error{color:var(--danger);font-size:.88rem;padding:var(--space-4)}@media(max-width:520px){.viz-image{max-height:320px}.viz-result-query{min-width:0}}.interactives,.int-form{display:flex;flex-direction:column;gap:var(--space-4)}.int-field{display:flex;flex-direction:column;gap:var(--space-2);flex:1 1 auto}.int-field>span{font-size:.82rem;font-weight:600;color:var(--text2)}.int-field input,.int-field textarea{background:var(--surface2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:.9rem;font-weight:400;width:100%}.int-field input:focus,.int-field textarea:focus{outline:none;border-color:var(--primary)}.int-field textarea{min-height:70px;resize:vertical;line-height:1.5}.int-difficulty{display:flex;align-items:center;gap:var(--space-3)}.int-difficulty>span{font-size:.82rem;font-weight:600;color:var(--text2);flex-shrink:0}.int-activities{display:flex;flex-direction:column;gap:var(--space-3)}.int-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text3);font-size:.88rem;line-height:1.6}.int-activity{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;animation:studioMsgIn .3s ease-out}.int-activity.has-error{border-color:var(--danger)}.int-activity-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--wash-soft);border-bottom:1px solid var(--border);flex-wrap:wrap}.int-activity-title{flex:1;font-size:.9rem;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.int-activity-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.int-badge{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;flex-shrink:0}.int-badge.easy{background:#28714a26;color:var(--success)}.int-badge.medium{background:var(--warning-dim);color:var(--warning)}.int-badge.hard{background:#fca5a526;color:var(--danger)}.int-activity-desc{padding:var(--space-3) var(--space-4);font-size:.85rem;color:var(--text2);line-height:1.5;border-bottom:1px solid var(--border)}.int-iframe-wrap{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface2);border-radius:var(--r2);border:1px solid var(--border);box-shadow:inset 0 2px 12px var(--ink-wash)}.int-iframe{width:100%;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface3);transition:height .4s var(--ease-out);box-shadow:0 4px 16px #4638221a}.int-expand-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--text3);font-family:var(--font);font-size:.75rem;cursor:pointer;padding:2px 4px;transition:color .15s}.int-expand-btn:hover{color:var(--text)}.int-clear-btn{align-self:flex-end;opacity:.6;font-size:.78rem}.int-clear-btn:hover{opacity:1}.int-error{color:var(--danger);font-size:.88rem;padding:var(--space-3) var(--space-4)}@media(max-width:520px){.int-iframe{min-height:280px}}.course-home-body{background:var(--surface);padding:var(--space-7);border-radius:var(--r2);border:1px solid var(--border)}.course-home-body h2{margin-bottom:var(--space-6);color:var(--text);font-size:1.5rem}.course-home-empty{border:none;padding:var(--space-7) 0}.course-home-empty p{color:var(--text3)}.module-group{background:var(--surface2);border-radius:var(--r2);padding:var(--space-6);margin-bottom:var(--space-6);border:1px solid var(--border)}.module-group h3{font-size:1.2rem;margin-bottom:var(--space-4);color:var(--text)}.module-group-items{display:flex;flex-direction:column;gap:var(--space-2)}.module-subheader{padding:var(--space-4) var(--space-2) var(--space-2);color:var(--text);font-size:1.1rem;font-weight:800}.module-subheader:first-child{padding-top:0}.module-subheader:not(:first-child){border-top:1px solid var(--border);margin-top:var(--space-2);padding-top:var(--space-4)}.module-empty{color:var(--text3);font-size:.9rem}.section-page-title{margin-bottom:var(--space-7)}.field-mono{font-family:monospace;font-size:.85rem}.asgn-group-list{display:flex;flex-direction:column;gap:var(--space-2)}.file-preview-container{margin-top:var(--space-4);width:100%}.image-preview{display:flex;justify-content:center;align-items:center;padding:var(--space-4);background:var(--surface2);border-radius:var(--r2);border:1px solid var(--border);overflow:hidden}.image-preview img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:var(--r);box-shadow:0 4px 16px #46382229}.pdf-preview{background:var(--surface2);border-radius:var(--r2);border:1px solid var(--border);overflow:hidden;box-shadow:0 4px 16px #46382221}.generic-file-view{background:var(--surface2);border-radius:var(--r2);border:1px solid var(--border);padding:var(--space-6)}.office-preview{background:var(--surface2);border-radius:var(--r2);border:1px solid var(--border);overflow:hidden;box-shadow:0 4px 16px #46382221}.preview-zoom-group{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:4px;overflow:hidden}.preview-zoom-btn{background:transparent;border:none;width:28px;height:28px;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.preview-zoom-btn:hover{background:var(--surface3);color:var(--text)}.preview-zoom-divider{width:1px;height:14px;background:var(--border)}.course-selector-container{position:relative;margin-bottom:var(--space-6)}.course-selector-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2) var(--space-3);background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-family:var(--font);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out),transform .2s var(--ease-out),box-shadow .2s var(--ease-out),opacity .2s var(--ease-out);text-align:left}.course-selector-trigger:hover{background:var(--surface3);border-color:var(--accent-color);box-shadow:0 0 12px var(--wash-soft),0 0 0 1px var(--accent-color)}.course-selector-trigger.open{background:var(--surface3);border-color:var(--accent-color);box-shadow:0 0 0 1px var(--accent-color)}.course-trigger-content{display:flex;align-items:center;gap:.5rem;min-width:0}.course-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.course-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-trigger-chevron{color:var(--text3);transition:transform .2s var(--ease-out);flex-shrink:0;margin-left:.5rem}.course-selector-trigger.open .course-trigger-chevron{transform:rotate(180deg);color:var(--text)}.course-selector-menu{position:absolute;top:calc(100% + 6px);left:0;width:240px;max-height:280px;overflow-y:auto;background:var(--popover-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--r2);box-shadow:var(--shadow-popover);z-index:100;padding:.4rem;display:flex;flex-direction:column;gap:4px;animation:courseMenuFadeIn .2s var(--ease-out)}@keyframes courseMenuFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.course-selector-option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .8rem;background:transparent;border:none;border-radius:var(--r);color:var(--text2);font-family:var(--font);font-size:.88rem;font-weight:550;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease;text-align:left;flex-shrink:0}.course-selector-option:hover{background:var(--wash);color:var(--text);transform:translate(3px)}.course-selector-option:active:not(:disabled){transform:scale(.985);transition:transform var(--dur-0) var(--ease-spring)}.course-selector-option.active{background:var(--wash-strong);color:var(--text);font-weight:700}.course-option-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-option-grade{font-size:.72rem;font-weight:700;padding:2px 6px;border-radius:999px;flex-shrink:0}.course-option-grade.good{background:var(--success-dim);color:var(--success)}.course-option-grade.okay{background:var(--warning-dim);color:var(--warning)}.course-option-grade.bad{background:var(--danger-dim);color:var(--danger)}@media(max-width:768px){.course-selector-container{margin-bottom:.5rem}.course-selector-menu{width:100%;position:absolute;box-sizing:border-box}}.dashboard-topbar,.course-page-layout .topbar{background:var(--topbar-bg)}.setup-card,.workshop-card,.course-home-body,.module-group,.detail-header-card,.detail-body-card,.vault-paste,.vault-locked,.details.vault-unit,.details.vault-kind,.finish-card,.finish-summary,.finish-steps-card,.finish-block,.finish-reqs li,.submission-status-card,.selected-file-card,.quiz-drill-banner,.quiz-test-score,.wb-q,.studio-msg,.viz-result,.int-activity,.course-sidebar{background:var(--surface);border:1px solid var(--border-strong);box-shadow:0 1px #4638220d}.setup-page{padding:clamp(1.2rem,3vw,2rem)}.setup-card{max-width:700px;padding:clamp(1.6rem,4vw,2.8rem)}.setup-card:before{background:linear-gradient(var(--primary),var(--primary)) top / 100% 4px no-repeat}.setup-card h1,.detail-title,.hero-name,.course-home-body h2,.status-card-title,.wb-card-title,.wb-panel-title,.finish-card-name,.asgn-group-title,.module-group h3{font-family:var(--font-display);letter-spacing:-.04em}.setup-card h1{font-size:var(--type-display);line-height:var(--lh-tight)}.setup-card h1.welcome-title{font-size:clamp(2.4rem,5.4vw,3.4rem);margin-top:var(--space-4)}.setup-card .sub,.hint,.welcome p{color:var(--text2)}.icon-box,.check-circle,.vault-drop-icon,.wb-card-icon{box-shadow:var(--sheen-top),0 14px 24px #46382214}.detail-canvas-btn{background:var(--primary);color:var(--on-accent);border:1px solid var(--primary);box-shadow:none;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.detail-canvas-btn:hover{background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #bc4a2240}.danger-btn{background:var(--danger);color:var(--on-accent);border:1px solid var(--danger);box-shadow:none}.link-btn{background:var(--primary-dim);border-color:var(--accent-border-soft)}.field input,.submission-textarea,.submission-url-input,.wb-textarea,.wb-field input,.wb-field .styled-select-trigger,.styled-select-trigger,.studio-input,.course-selector-trigger,.wb-short,.int-field input,.int-field textarea,.wb-chat-input input{background:var(--field-bg);border:1px solid var(--border);box-shadow:var(--sheen-top-soft);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.field input:focus,.submission-textarea:focus,.submission-url-input:focus,.wb-textarea:focus,.wb-field input:focus,.studio-input:focus,.wb-short:focus,.int-field input:focus,.int-field textarea:focus,.wb-chat-input input:focus,.styled-select.open .styled-select-trigger,.wb-field .styled-select.open .styled-select-trigger,.course-selector-trigger.open{border-color:#bc4a228c;background:var(--field-bg);box-shadow:0 0 0 3px #bc4a2224}.dashboard-welcome{align-items:stretch}.glance-card{position:relative;overflow:hidden}.glance-card{background:var(--panel-tint)}.detail-header-card,.workshop-card,.finish-card{background:var(--panel-tint),var(--surface)}.section-heading,.detail-section-label,.vault-unit-section-label,.vault-group-head,.finish-nested-head,.studio-nested-label,.wb-field>span,.submission-input-group label{letter-spacing:.08em;text-transform:uppercase}.ai-workshop-section{display:flex;flex-direction:column;gap:var(--space-4)}.workshop-header{margin-bottom:0}.workshop-card{padding:var(--card-pad-lg);overflow:visible}.wb-controls{flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface)}.wb-tabs button,.workshop-tabs button,.course-nav-btn,.studio-tool-btn,.viz-chip,.finish-modeopt,.plan-chip,.theme-toggle{min-height:var(--tap-target)}.wb-toggle button,.submission-tab-btn{transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}.wb-tabs button.active,.workshop-tabs button.active,.studio-tool-btn.active,.wb-toggle button.active{color:var(--on-accent);box-shadow:none}.wb-grid{gap:var(--card-grid-gap)}.wb-card{position:relative;min-height:96px;padding:var(--card-pad);border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--elev-card)}.wb-card:hover{transform:translateY(-2px);border-color:var(--ink);box-shadow:var(--shadow-card-hover)}.wb-card-title{font-size:var(--type-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);text-wrap:balance}.wb-card-tagline{font-size:var(--type-body-sm);line-height:var(--lh-body);color:var(--text2)}.wb-card-cta{display:inline-flex;align-items:center;gap:var(--card-gap-tight);font-size:var(--type-meta);font-weight:700;letter-spacing:.01em;color:var(--primary)}.wb-card-cta svg{transition:transform .15s ease}.wb-panel-head{justify-content:space-between;align-items:flex-start}.wb-panel-title{font-size:1.35rem}.wb-result{margin-top:0;padding-top:0;border-top:none}.wb-result-head{padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.wb-empty{padding:var(--space-8);border:1px dashed rgba(54,44,28,.2);border-radius:var(--r2);background:var(--wash-soft)}.studio-feed{gap:var(--space-4);padding:0}.studio-msg{border-radius:22px;overflow:hidden}.studio-msg-head,.viz-result-head,.int-activity-head{background:var(--wash-soft);padding:var(--space-3) var(--space-4)}.studio-msg-tool,.viz-mode-badge{color:var(--primary-hover)}.studio-msg-content{padding:var(--space-5)}.studio-input-row{align-items:stretch}.studio-plus-btn,.studio-send-btn,.studio-mic-btn{transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.studio-plus-btn,.studio-send-btn{background:var(--wash);border:1px solid var(--border)}.studio-plus-btn:hover,.studio-send-btn:hover,.studio-mic-btn:hover{transform:translateY(-1px)}.studio-priority-badge,.quiz-drill-banner,.finish-quick-chip,.wb-standing,.plan-focus,.finish-sources-read,.finish-sources-locked,.vault-coverage-note,.home-view-notice{border-radius:16px;border:1px solid var(--border);background:var(--wash)}.home-view-notice{display:flex;gap:8px;align-items:center;margin-bottom:20px;padding:10px 14px;color:var(--text2);font-size:.85rem}.home-view-notice svg{color:var(--primary)}.course-main-wrap{align-items:flex-start;gap:var(--space-7);padding-top:var(--space-8)}.course-sidebar{position:sticky;top:96px;width:240px;padding:var(--space-4);border-radius:var(--r2)}.course-nav{gap:var(--space-2)}.course-nav-btn{padding:.9rem 1rem;font-weight:700}.course-nav-btn:hover{transform:translate(2px)}.course-nav-btn.active{background:var(--primary);color:var(--on-accent)}.course-content-area{display:flex;flex-direction:column;gap:var(--space-6)}.course-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:stretch;margin-bottom:0}.hero-copy,.hero-stat-card{border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);box-shadow:0 1px #4638220d}.hero-copy{padding:clamp(1.5rem,3vw,2.3rem);display:flex;flex-direction:column;align-items:flex-start}.hero-next-due{margin-top:auto;padding:var(--space-3) 0 0;width:100%;display:flex;align-items:baseline;gap:var(--space-3);background:none;border:0;border-top:1px solid var(--border);font:inherit;text-align:left;cursor:pointer}.hero-next-due-label{flex:0 0 auto;font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text3)}.hero-next-due-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--text);transition:color var(--dur-2) var(--ease-out)}.hero-next-due-when{flex:0 0 auto;margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary);white-space:nowrap}.hero-next-due:hover .hero-next-due-name{color:var(--primary)}.hero-next-due:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}.hero-kicker{font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:var(--space-2)}.hero-name{font-size:clamp(2.2rem,4.6vw,3.8rem);color:var(--text)!important;margin-bottom:var(--space-3)}.hero-bar{width:56px;height:5px;margin-bottom:var(--space-3);border-radius:999px}.hero-stats{display:grid;grid-template-columns:auto auto;gap:var(--space-3);align-items:stretch;justify-content:center}.hero-stat-col{display:grid;grid-template-rows:1fr 1fr;gap:var(--space-3);min-width:0}.hero-stat-card{display:flex;flex-direction:column;justify-content:space-between;min-height:160px;padding:1.2rem}.hero-stat-col .hero-stat-card{min-height:0}.hero-grade-card{position:relative;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:1fr auto auto 1fr;grid-template-areas:".         .    ." "current   vdiv letter" "potential vdiv letter" ".         .    .";justify-content:center;column-gap:var(--space-3);row-gap:0;text-align:center}.hero-grade-card:not(:has(.hero-grade-potential)){grid-template-rows:1fr auto 1fr;grid-template-areas:".       .    ." "current vdiv letter" ".       .    ."}.hero-grade-title{position:absolute;top:1.2rem;left:0;right:0;text-align:center;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);white-space:nowrap}.hero-grade-current{grid-area:current}.hero-grade-potential{grid-area:potential;border-top:1px solid var(--border)}.hero-grade-fig{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2) var(--space-3)}.hero-grade-vdiv{grid-area:vdiv;align-self:stretch;justify-self:center;width:1px;background:var(--border)}.hero-grade-vlabel{font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);white-space:nowrap}.hero-grade-num{font-family:var(--font-display);font-size:clamp(1.7rem,2.5vw,2.3rem);font-weight:700;line-height:1;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.hero-grade-num.good{color:var(--success)}.hero-grade-num.okay{color:var(--warning)}.hero-grade-num.bad{color:var(--danger)}.hero-grade-num-potential{color:var(--success)}.hero-stat-label{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.hero-stat-value{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.7rem);line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.hero-stat-value.good{color:var(--success)}.hero-stat-value.okay{color:var(--warning)}.hero-stat-value.bad{color:var(--danger)}.hero-grade-letter{grid-area:letter;align-self:center;justify-self:center;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:clamp(4.25rem,5vw,5.75rem);font-weight:800;line-height:.8}.hero-grade-letter.good{color:var(--success)}.hero-grade-letter.okay{color:var(--warning)}.hero-grade-letter.bad{color:var(--danger)}@media(max-width:760px){.hero-grade-card{grid-template-rows:auto auto auto;grid-template-areas:"title     title title" "current   vdiv  letter" "potential vdiv  letter";align-content:center}.hero-grade-card:not(:has(.hero-grade-potential)){grid-template-rows:auto auto;grid-template-areas:"title   title title" "current vdiv  letter"}.hero-grade-title{position:static;grid-area:title;top:auto;justify-self:center;margin-bottom:var(--space-2)}}.hero-stat-meta{font-size:.82rem;color:var(--text2)}.hero-potential-meta{display:block;margin-top:6px;font-size:.78rem;line-height:1.35;color:var(--text2)}.asgn-group-title,.module-group h3{font-size:1.45rem}.asgn-card{padding:var(--card-pad-compact);box-shadow:var(--elev-card);transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.asgn-card.clickable:hover{transform:translateY(-2px);border-color:#bc4a2247;box-shadow:var(--shadow-card-hover)}.asgn-left h4{font-size:var(--type-title)}.asgn-points-bubble,.module-points{background:var(--wash);border-color:#362c1c29;box-shadow:0 12px 18px #4638220f}.detail-back-btn{padding:.7rem 1rem;border-radius:999px;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}.detail-back-btn:hover{transform:translate(-2px)}.detail-header-card{overflow:hidden;--detail-accent-height: 5px}.detail-header-card:has(.styled-select.open){overflow:visible}.detail-header-body,.detail-body-card,.course-home-body,.module-group{padding:clamp(1.1rem,2.8vw,1.8rem)}.detail-title{font-size:clamp(2rem,3.8vw,3rem);color:var(--text)}.detail-chip,.asgn-lock-label,.dl-lock,.finish-badge,.int-badge,.course-option-grade{border-color:#362c1c33}.canvas-html-content{color:var(--text2-bright)!important;line-height:1.78}.canvas-html-content h1,.canvas-html-content h2,.canvas-html-content h3,.canvas-html-content h4,.canvas-html-content h5,.canvas-html-content h6{font-family:var(--font-display)!important;letter-spacing:-.03em}.canvas-html-content a:not(.btn):not(.Button):not([class*=Button--]):not([class*=btn-]):not(.home-btn-link):not([style*=background]):not([style*=padding]):not([style*=border]):not(:has(img)),.canvas-html-content a.home-btn-link,.canvas-html-content .btn,.canvas-html-content .Button{border-color:#bc4a2238!important;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease,border-color .16s ease!important}.submission-dropzone{background:var(--wash-soft);border-color:#362c1c38;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.submission-dropzone:hover,.submission-dropzone.dragover{background:#bc4a2214;box-shadow:0 16px 28px #46382212;transform:translateY(-1px)}.module-group,.course-home-body,.file-preview-container,.generic-file-view,.image-preview,.pdf-preview,.office-preview{overflow:hidden}.module-item-link{padding:.9rem 1rem;border-radius:18px;background:var(--wash);border:1px solid rgba(54,44,28,.1);transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.module-item-link:hover{border-color:#bc4a223d;box-shadow:0 14px 22px #46382212}.vault-drop,.vault-paste,.vault-locked,.vault-list,.vault-item,.vault-kind-body,.vault-unit-body,.vault-source-detail{box-shadow:none}.vault-list,.details.vault-unit,.details.vault-kind{background:var(--wash-soft)}.course-selector-menu,.styled-select-menu,.studio-assignment-dropdown,.wb-source-detail{background:var(--popover-bg);border-color:#362c1c29;box-shadow:0 24px 40px #46382229}@media(max-width:1260px){.course-hero{grid-template-columns:1fr}}@media(max-width:1100px){.dashboard-welcome,.course-hero{grid-template-columns:1fr}.course-main-wrap{flex-direction:column;align-items:stretch}.course-sidebar{position:static;width:100%}}@media(max-width:760px){.topbar{min-height:auto;padding:.65rem 1rem .8rem;flex-wrap:wrap;row-gap:var(--space-2);column-gap:var(--space-2)}.topbar-brand{gap:var(--space-2)}.topbar-center{position:static;left:auto;transform:none;order:3;width:100%;display:flex;justify-content:center}.topbar-right{margin-left:auto;gap:var(--space-2);justify-content:flex-end}.dash-refresh-btn{min-width:min(100%,11.5rem)}.topbar-tag,.uname,.course-page-layout .topbar-center,.dashboard-topbar .user-chip{display:none}.content{padding:1.1rem 1rem 2.5rem}.hero-stats,.course-grid,.deadline-list{grid-template-columns:1fr}.hero-stat-col{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}.glance-cluster{align-self:stretch}.glance-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch;padding-bottom:0}.glance-card{min-height:104px}.course-main-wrap{padding:1rem;gap:1rem}.wb-controls{align-items:stretch}.wb-classpick{width:100%}.wb-tabs,.course-nav{width:100%;overflow-x:auto}.course-nav-btn,.wb-tabs button{white-space:nowrap}.detail-grade-row,.topbar-right{flex-wrap:wrap}.deadline-item{flex-wrap:wrap;row-gap:var(--space-2)}.dl-info{flex:1 1 calc(100% - 10px - var(--space-4) - 26px)}.dl-name{white-space:normal}.dl-course{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-right{margin-left:calc(10px + var(--space-4))}}@media(max-width:520px){.asgn-top{flex-wrap:wrap}.asgn-left{flex:1 1 100%}.asgn-right{width:100%;justify-content:flex-start}}@media(max-width:400px){.course-sidebar{padding:var(--space-3)}.course-nav{gap:var(--space-1)}.course-nav-btn{padding:.7rem .55rem;font-size:.9rem}}.wb-card-status{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-eyebrow);font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--text2);background:var(--surface2);border:1px solid var(--border-strong);border-radius:var(--card-radius-chip);padding:var(--space-1) 10px;margin-top:2px}.wb-card-status.urgent{color:var(--primary);background:var(--primary-dim);border-color:var(--primary)}.finish-steps li .finish-step-body{flex:1;min-width:0}.finish-ask-tutor{gap:5px;color:var(--primary);border-color:var(--primary)}.finish-ask-tutor:hover{color:var(--surface1);background:var(--primary);border-color:var(--primary)}.guide-sections{display:flex;flex-direction:column;gap:var(--space-3)}.guide-section{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface2);border:1px solid var(--border);border-radius:12px}.guide-section-heading{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--text);text-wrap:balance}.guide-section-summary{font-size:.88rem;color:var(--text2);line-height:1.6}.guide-terms{display:flex;flex-direction:column;gap:6px;margin:0;padding-top:var(--space-2);border-top:1px dashed var(--border)}.guide-term{display:flex;align-items:baseline;gap:var(--space-2);font-size:.85rem;line-height:1.55}.guide-term dt{flex-shrink:0;font-weight:700;color:var(--text)}.guide-term dd{margin:0;color:var(--text2)}.guide-next{display:flex;justify-content:flex-end;margin-top:var(--space-3)}:focus-visible{outline:2px solid var(--primary)!important;outline-offset:2px}button,a,[role=button],input,select,textarea,summary{touch-action:manipulation}.styled-select-menu,.studio-dropdown-list,.course-selector-menu{overscroll-behavior:contain}.pair-scrim{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#221c126b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:pair-fade .16s ease-out}@keyframes pair-fade{0%{opacity:0}to{opacity:1}}.pair-modal{position:relative;width:min(440px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-popover);padding:var(--space-7) var(--space-6) var(--space-6);text-align:center;animation:pair-rise .2s cubic-bezier(.22,1,.36,1)}@keyframes pair-rise{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.pair-close{position:absolute;top:var(--space-3);right:var(--space-3);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:10px;background:transparent;color:var(--text3);cursor:pointer;touch-action:manipulation;transition:background .15s,color .15s}.pair-close:hover{background:var(--ink-wash);color:var(--text)}.pair-head{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.pair-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;background:var(--primary-dim);color:var(--primary);margin-bottom:var(--space-1)}.pair-title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:1.4rem;line-height:1.15;margin:0;color:var(--text);text-wrap:balance}.pair-intro{margin:0;max-width:32ch;font-size:.92rem;line-height:1.45;color:var(--text2);text-wrap:pretty}.pair-code-wrap{margin-top:var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.pair-code-label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.pair-code{font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:clamp(2.1rem,9vw,2.8rem);font-weight:700;letter-spacing:.12em;color:var(--primary);background:var(--surface2);border:1.5px dashed var(--accent-border-soft);border-radius:14px;padding:var(--space-3) var(--space-5);font-variant-numeric:tabular-nums;-webkit-user-select:all;user-select:all}.pair-code.is-expired{color:var(--text3);border-color:var(--border);letter-spacing:.2em}.pair-code-ch{display:inline-block;white-space:pre;will-change:transform,opacity,filter}.pair-code--in .pair-code-ch{animation:pair-code-in var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i) * 42ms)}@keyframes pair-code-in{0%{opacity:0;filter:blur(5px);transform:translateY(5px) scale(.96)}to{opacity:1;filter:blur(0);transform:none}}.pair-code--out .pair-code-ch{animation:pair-code-dust .42s var(--ease-in) forwards;animation-delay:calc(var(--i) * 26ms)}@keyframes pair-code-dust{0%{opacity:1;filter:blur(0);transform:translateZ(0) scale(1)}to{opacity:0;filter:blur(6px);transform:translate3d(calc((var(--i) - 3) * 3px),-9px,0) scale(1.22) rotate(calc((var(--i) - 3) * 2deg))}}.pair-expiry{font-size:.82rem;color:var(--text3);font-variant-numeric:tabular-nums}.pair-expiry.expired{color:var(--danger)}.pair-actions{margin-top:var(--space-5);display:flex;justify-content:center;gap:var(--space-2);flex-wrap:wrap}.pair-namenote{margin:var(--space-5) auto 0;max-width:34ch;font-size:.84rem;line-height:1.4;color:var(--text2)}.pair-loading{margin-top:var(--space-6);display:flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text2);font-size:.92rem}.pair-note{margin-top:var(--space-5);display:flex;align-items:flex-start;gap:var(--space-2);text-align:left;font-size:.88rem;line-height:1.45;color:var(--text2);background:var(--warning-dim);border:1px solid var(--warning-border);border-radius:12px;padding:var(--space-3) var(--space-4)}.pair-note svg{flex-shrink:0;margin-top:2px;color:var(--warning)}.danger-btn:active:not(:disabled),.detail-canvas-btn:active,.studio-jump-btn:active,.studio-tool-btn:active,.studio-plus-btn:active,.studio-send-btn:active,.studio-clear-btn:active,.link-btn:active,.detail-back-btn:active,.lang-switch-btn:active,.int-expand-btn:active,.int-clear-btn:active,.workshop-tabs button:active,.submission-tab-btn:active,.course-nav-btn:active,.wb-tabs button:active,.styled-select-trigger:active,.course-selector-trigger:active,.wb-toggle button:active,.wb-source-tag.clickable:active,.finish-quick-chip:active,.finish-modeopt:active,.viz-chip:active,.viz-diff-pill:active,.cal-day:not(.empty):active,.quiz-sg-btn:active{transform:scale(.97)}.danger-btn:active:not(:disabled),.detail-canvas-btn:active,.studio-jump-btn:active{box-shadow:none}.asgn-card.clickable:active,.deadline-item:active,.module-item-link:active,.vault-item:active,.submission-dropzone:active{transform:scale(.985)}.remove-file-btn:active,.vault-iconbtn:active,.studio-mic-btn:active:not(:disabled),.studio-priority-clear:active,.preview-zoom-btn:active,.pair-close:active{transform:scale(.9)}.mo-screen{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards}.mo-screen[data-variant=page]{animation-duration:var(--dur-3)}.mo-screen[data-variant=tab]{animation-duration:var(--dur-2)}.mo-settle{animation:countSettle var(--dur-3) var(--ease-out)}.mo-pop{animation:popIn var(--dur-2) var(--ease-out) backwards}.mo-success{animation:successPop var(--dur-3) var(--ease-out) backwards}.mo-chars>*{display:inline-block;white-space:pre;will-change:transform,opacity,filter;animation:pair-code-in var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * var(--char-step, 42ms))}.mo-icon-spin{animation:spin .8s linear infinite}.mo-rotate{transition:transform var(--dur-1) var(--ease-out)}.mo-rotate.is-open,[open]>*>.mo-rotate,[aria-expanded=true] .mo-rotate{transform:rotate(180deg)}.mo-scrim{animation:pair-fade var(--dur-2) var(--ease-out) backwards}.mo-rise{animation:pair-rise var(--dur-3) var(--ease-out) backwards}.mo-exit{animation:fadeIn var(--dur-2) var(--ease-in) reverse forwards}.delay-children .mo-enter,.delay-children .mo-stagger,.delay-children .mo-stagger-fast,.delay-children .mo-chars,.delay-children .mo-pop{animation:none!important;opacity:0;pointer-events:none}@keyframes mo-accent-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes mo-spine-draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes mo-plan-rail{0%{transform:translate(-50%) scaleY(0)}to{transform:translate(-50%) scaleY(1)}}@keyframes mo-plan-day-dot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}@keyframes mo-studio-msg-in{0%{opacity:0;filter:blur(4px);transform:translateY(8px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes mo-wb-panel-title-in{0%{opacity:0;filter:blur(4px);transform:translateY(6px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes mo-paircode-expire{0%{opacity:.45;filter:blur(2px)}to{opacity:1;filter:blur(0)}}@keyframes mo-connect-shimmer{to{transform:translate(120%)}}@keyframes mo-mic-pulse{0%{opacity:.45;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.setup-step{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards}.course-home-body,.office-preview{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards}.topbar{animation:fadeIn var(--dur-3) var(--ease-out) backwards}.mo-course-swap{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards}.primary-btn,.back-btn,.ghost-btn,.link-btn,.ext-btn,.detail-canvas-btn,.lang-switch-btn,.studio-tool-btn,.studio-mode-btn,.finish-modeopt,.plan-chip,.danger-btn,.workshop-tabs button,.wb-tabs button{--lift: -1px;--press: .97}.course-card,.deadline-item,.asgn-card,.module-item-link,.studio-msg,.vault-item,.cal-day,.submission-dropzone{--lift: -2px;--press: .985}.wb-card,.wb-grid-three-up>.wb-card{--lift: -3px;--press: .985}.theme-toggle,.pair-close,.pair-phone-btn,.studio-mic-btn,.studio-send-btn,.studio-plus-btn,.studio-priority-clear,.preview-zoom-btn,.cal-nav,.vault-iconbtn,.studio-jump-btn,.remove-file-btn,.nested-source-toggle{--press: .9}.wb-toggle button,.vault-unit-head{--lift: 0}.active.wb-tabs button,.wb-tabs button.active{--lift: 0px}.primary-btn,.back-btn,.ghost-btn,.link-btn,.detail-canvas-btn{transition:transform var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.primary-btn:hover:not(:disabled),.detail-canvas-btn:hover:not(:disabled){transform:translateY(var(--lift, -1px))}.back-btn:hover,.ghost-btn:hover,.link-btn:hover{transform:translateY(var(--lift, -1px))}.primary-btn:active:not(:disabled),.back-btn:active:not(:disabled),.ghost-btn:active:not(:disabled),.link-btn:active:not(:disabled),.detail-canvas-btn:active:not(:disabled){transition:transform var(--dur-0) var(--ease-spring);transform:scale(var(--press, .97))}@media(hover:none){.primary-btn:hover:not(:disabled),.back-btn:hover,.ghost-btn:hover,.link-btn:hover,.detail-canvas-btn:hover:not(:disabled){transform:none}}.link-btn:hover{background:#bc4a2233;border-color:#bc4a2252;box-shadow:0 4px 14px -8px #bc4a2273}.theme-toggle:active:not(:disabled),.pair-phone-btn:active:not(:disabled),.studio-send-btn:active:not(:disabled),.studio-plus-btn:active:not(:disabled),.studio-jump-btn:active:not(:disabled){transform:scale(var(--press, .9));box-shadow:none}.field input,.submission-textarea,.submission-url-input,.wb-textarea,.wb-field input,.styled-select-trigger,.course-selector-trigger,.studio-input,.vault-edit-text,.vault-unit-pick select{transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.studio-input:focus{box-shadow:0 0 0 3px var(--primary-dim, rgba(178, 58, 46, .16))}.submission-dropzone:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #bc4a2238}.submission-dropzone:hover,.submission-dropzone.dragover{transform:translateY(var(--lift, -1px))}.submission-dropzone:active:not(.dragging){transition:transform var(--dur-0) var(--ease-spring);transform:scale(var(--press, .985))}@media(hover:none){.submission-dropzone:hover{transform:none}}.pair-close:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg, #fff),0 0 0 4px var(--accent)}.pair-close{transition:background .15s,color .15s,transform var(--dur-0) var(--ease-spring)}.styled-select-menu,.school-search .styled-select-menu,.course-selector-menu{animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.styled-select-menu.menu-flip,.studio-assignment-dropdown{transform-origin:bottom center}.studio-assignment-dropdown{animation:selectSlideIn var(--dur-2) var(--ease-out) backwards}.vault-paste{animation:vault-paste-open var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.styled-select-chevron,.course-trigger-chevron,.vault-kind-chev,.wb-source-chev,.nested-source-toggle svg{transition:transform var(--dur-1) var(--ease-out)}.cal-menu{transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}.cal-menu:not(.cal-visible){transition:opacity var(--dur-2) var(--ease-in),transform var(--dur-2) var(--ease-in)}.lang-switch-btn,.studio-tool-btn,.course-nav-btn,.wb-toggle button{transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.lang-switch-btn:hover,.studio-tool-btn:hover{transform:translateY(var(--lift, -1px))}.lang-switch-btn:active:not(:disabled),.studio-tool-btn:active:not(:disabled),.wb-toggle button:active:not(:disabled),.course-nav-btn:active:not(:disabled){transition:transform var(--dur-0) var(--ease-spring);transform:scale(var(--press, .97))}@media(hover:none){.lang-switch-btn:hover,.studio-tool-btn:hover{transform:none}}.module-arrow,.vault-item-actions,.preview-zoom-btn,.vault-iconbtn,.remove-file-btn,.detail-back-btn{transition:opacity var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-0) var(--ease-spring)}@media(hover:none){.module-arrow{opacity:1;transform:none}}.vault-item{transition:background var(--dur-2) var(--ease-out)}.vault-drop{transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.vault-drop:active:not(.dragging){transform:scale(var(--press, .985))}.vault-drop-icon{transition:transform var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}@media(hover:none){.vault-drop:hover .vault-drop-icon{transform:none}}.loader,.ai-summary-loading,.pair-loading,.submission-status-card,.submission-form,.vault-locked,.vault-locked-note,.vault-item-editing,.vault-edit-head,.detail-empty-desc,.err,.wb-sync-banner{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards}.vault-locked-help-body,.school-deep-row,.prep-practice{display:flex;flex-direction:column;gap:var(--space-4);animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.wb-empty.mo-enter>*{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards}.wb-empty.mo-enter>*:nth-child(1){animation-delay:0ms}.wb-empty.mo-enter>*:nth-child(2){animation-delay:50ms}.wb-empty.mo-enter>*:nth-child(3){animation-delay:.1s}.wb-empty.mo-enter>*:nth-child(4){animation-delay:.15s}.wb-empty.mo-enter>*:nth-child(n+5){animation-delay:.2s}.deadline-skeleton .skeleton-bar{animation-delay:calc(var(--i, 0) * -42ms)}.studio-msg{animation:mo-studio-msg-in var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}@media(hover:hover){.studio-msg:hover{transform:translateY(var(--lift, -2px))}}@media(hover:none){.studio-msg:hover{transform:none}}.studio-msg-tool{animation:popIn var(--dur-2) var(--ease-out) var(--dur-1) backwards}.studio-msg-body{animation:fadeIn var(--dur-2) var(--ease-out) 60ms backwards}.wb-panel-title{animation:mo-wb-panel-title-in var(--dur-3) var(--ease-out) backwards;animation-delay:60ms;will-change:transform,opacity,filter}.setup-card:before,.hero-bar,.detail-header-card:before{transform-origin:left center;animation:mo-accent-draw var(--dur-3) var(--ease-out) backwards}.setup-card:before{animation-delay:.22s}.detail-header-card:before{animation-delay:var(--dur-0)}.setup-card{animation:pair-rise var(--dur-3) var(--ease-out) backwards}.cc-color{transform-origin:top center;animation:mo-spine-draw var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms);will-change:transform}.cc-arrow,.course-card .cc-arrow,.wb-card-cta svg{transition:transform var(--dur-2) var(--ease-out)}.course-card:hover .cc-arrow,.course-card:focus-visible .cc-arrow{transform:translate(3px);color:var(--c)}.deadline-item:hover .cc-arrow{transform:translate(3px);color:var(--text2)}.wb-card:hover .wb-card-cta svg{transform:translate(3px)}.wb-card:hover .wb-card-cta{color:var(--accent, var(--primary))}.wb-card-cta{transition:color var(--dur-2) var(--ease-out)}@media(hover:none){.course-card:hover .cc-arrow,.deadline-item:hover .cc-arrow,.wb-card:hover .wb-card-cta svg{transform:none}}.primary-btn .btn-chev{transition:transform var(--dur-2) var(--ease-out)}.primary-btn:hover:not(:disabled) .btn-chev{transform:translate(2px)}.pair-phone-btn svg{transition:transform var(--dur-2) var(--ease-out)}.pair-phone-btn:hover svg{transform:translateY(-1px)}.detail-back-btn:hover{transform:translate(-3px)}@media(hover:none){.primary-btn:hover:not(:disabled) .btn-chev,.pair-phone-btn:hover svg,.detail-back-btn:hover{transform:none}}.studio-plus-btn>svg{transition:transform var(--dur-1) var(--ease-out)}.studio-plus-btn.active>svg,.studio-plus-btn[aria-expanded=true]>svg{transform:rotate(45deg)}.primary-btn[data-busy=true]{position:relative;overflow:hidden}.primary-btn[data-busy=true]:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translate(-120%);animation:mo-connect-shimmer 1.1s var(--ease-out) infinite}.wb-fc-inner{transition:transform .6s cubic-bezier(.34,.85,.36,1)}.wb-fc-front,.wb-fc-back{transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.plan-timeline .plan-day{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms)}.plan-timeline .plan-day:not(:last-child) .plan-day-dot:after{transform-origin:top center;animation:mo-plan-rail var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms)}.plan-day.is-today .plan-day-dot{animation:mo-plan-day-dot-pulse 2.4s var(--ease-out) infinite;will-change:transform}.plan-day.complete .plan-day-dot{animation:popIn var(--dur-3) var(--ease-out) backwards}.plan-tasks>li{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.plan-task-text{position:relative}.plan-task-text:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--dur-2) var(--ease-out);pointer-events:none}.plan-tasks li.checked .plan-task-text:after{transform:scaleX(1)}.plan-task-est{transform-origin:center;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.plan-tasks li.checked .plan-task-est{opacity:.5;transform:scale(.94)}.finish-progress-fill,.plan-progress-fill,.detail-grade-fill{transition:width var(--dur-3) var(--ease-out),background var(--dur-3) var(--ease-out)}.finish-progress-fill.done{transform-origin:center;animation:successPop var(--dur-3) var(--ease-out) backwards}.plan-progress-label,.detail-grade-frac,.detail-grade-badge{font-variant-numeric:tabular-nums}.detail-grade-frac{display:inline-block}.cc-grade.is-updated,.vault-kind-count.is-updated,.asgn-points-bubble.is-updated,.cc-grade.mo-settle,.vault-kind-count.mo-settle,.asgn-points-bubble.mo-settle,.pair-expiry.expired,.wb-toggle button.active{animation:countSettle var(--dur-3) var(--ease-out)}.vault-kind-count,.asgn-points-bubble{font-variant-numeric:tabular-nums}.hero-stat-meta.mo-meta-settle{animation:fadeIn var(--dur-3) var(--ease-out) backwards}.pair-scrim.mo-scrim{animation:pair-fade .16s var(--ease-out) backwards}.pair-code{transition:color var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease-out),letter-spacing var(--dur-3) var(--ease-out)}.pair-code.is-expired{animation:mo-paircode-expire var(--dur-3) var(--ease-out) backwards}.pair-note{animation:popIn var(--dur-2) var(--ease-out) backwards}.pair-namenote{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;animation-delay:.21s}.school-picked svg.mo-pop{animation-delay:.12s}.icon-box.mo-pop{animation-delay:42ms}.mini-steps .ms .num.mo-pop{animation-delay:calc(var(--i, 0) * 42ms + 90ms)}.check-circle.mo-success{animation-delay:var(--dur-1)}.check-circle .mo-pop{animation-delay:.3s}.user-preview .avatar.mo-pop{animation-delay:var(--dur-1)}.user-preview strong.mo-pop{display:inline-block}.locked-submission-card .locked-submission-icon.mo-pop{animation-delay:.1s}.module-points.mo-pop{animation-delay:90ms}.dl-lock.mo-pop{animation-delay:.08s}.vault-item-icon.mo-pop{animation-delay:calc(var(--i, 0) * 30ms)}.vault-past-term.mo-pop{animation-delay:.1s}.course-option-grade.mo-pop{animation-delay:var(--dur-2)}.submission-status-card.is-success .status-card-icon{animation:popIn var(--dur-2) var(--ease-out) var(--dur-2) backwards}.submission-status-card.is-success{animation:successPop var(--dur-3) var(--ease-out) backwards}.submission-status-card.is-error,.status-card-icon.error{animation:popIn var(--dur-2) var(--ease-out) backwards}.asgn-points-bubble.bubble-compact.danger{animation:popIn var(--dur-2) var(--ease-out) backwards;animation-delay:.14s}.selected-file-card{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.styled-select-menu.mo-menu-stagger>.styled-select-option{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.locked-submission-card .locked-submission-icon{animation:popIn var(--dur-2) var(--ease-out) backwards}.studio-mic-btn.listening{color:var(--danger);background:var(--danger-dim);animation:none;position:relative}.studio-mic-btn.listening:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--danger);opacity:0;transform:scale(1);pointer-events:none;will-change:transform,opacity;animation:mo-mic-pulse 1.5s var(--ease-out) infinite}.studio-mic-btn .mic-swap-icon,.studio-mic-btn .mic-listening-icon{animation:popIn var(--dur-2) var(--ease-out) backwards}button.glance-card-attention:focus-visible{outline:2px solid color-mix(in srgb,var(--danger) 70%,transparent);outline-offset:2px;border-color:var(--danger)}.course-selector-option:hover{transform:translate(3px)}.course-selector-option{transition:transform var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.course-selector-option:active:not(:disabled){transition:transform var(--dur-0) var(--ease-spring);transform:scale(.985)}.course-selector-option{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 42ms)}.course-selector-option:hover,.course-selector-option:focus-visible{background:color-mix(in srgb,var(--accent-hover, var(--primary)) 16%,var(--surface) 84%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-hover, var(--primary)) 42%,transparent);color:var(--text)}.course-selector-option:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-hover, var(--primary)) 52%,transparent);outline-offset:2px}.course-selector-option.active{background:color-mix(in srgb,var(--accent-hover, var(--primary)) 13%,var(--surface) 87%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-hover, var(--primary)) 34%,transparent);color:var(--text)}@media(hover:none){.course-selector-option:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}.account-shell{min-height:100dvh;position:relative;display:grid;grid-template-columns:minmax(18rem,.88fr) minmax(22rem,1.12fr);align-items:center;gap:clamp(var(--space-8),7vw,calc(var(--space-10) * 2));padding:clamp(var(--space-8),7vw,calc(var(--space-10) * 2));overflow:hidden;background:radial-gradient(circle at 12% 12%,var(--page-glow-warm),transparent 34%),radial-gradient(circle at 88% 90%,var(--page-glow-cool),transparent 36%),linear-gradient(160deg,var(--page-gradient-top),var(--page-gradient-bottom));color:var(--text);font-family:var(--font)}.account-shell button,.account-shell a,.account-dialog button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.account-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}.account-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--paper-grain-opacity);background-image:var(--paper-grain-texture);mix-blend-mode:var(--paper-grain-blend)}.account-tools{position:absolute;z-index:2;top:var(--space-5);right:var(--space-5);display:flex;gap:var(--space-2)}.account-intro,.account-pass{position:relative;z-index:1}.account-intro{max-width:35rem}.account-wordmark{display:inline-block;margin-bottom:clamp(var(--space-8),9vh,calc(var(--space-10) * 2));color:var(--text);font-family:var(--font-display);font-size:var(--type-headline);font-weight:600;letter-spacing:var(--ls-title)}.account-wordmark span{color:var(--primary)}.account-kicker{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);color:var(--primary);font-size:var(--type-meta);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.account-intro h1{max-width:10ch;margin:0;color:var(--text);font-family:var(--font-display);font-size:clamp(2.7rem,5.6vw,5.6rem);font-weight:600;line-height:.96;letter-spacing:-.045em;text-wrap:balance}.account-copy{max-width:38rem;margin:var(--space-6) 0 0;color:var(--text2);font-size:clamp(var(--type-body),1.4vw,var(--type-title));line-height:var(--lh-body)}.account-privacy-note{display:flex;align-items:flex-start;gap:var(--space-3);max-width:34rem;margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--rule);color:var(--text3)}.account-privacy-note svg{flex:0 0 auto;margin-top:.15rem;color:var(--success)}.account-privacy-note p{display:grid;gap:var(--space-1);margin:0;line-height:var(--lh-snug)}.account-privacy-note strong{color:var(--text2-bright);font-size:var(--type-body-sm)}.account-privacy-note span{font-size:var(--type-meta)}.account-pass{width:min(100%,35rem);justify-self:end;padding:clamp(var(--space-5),4vw,var(--space-8));border:1px solid var(--border-strong);border-radius:var(--r3);background:var(--surface);box-shadow:var(--elev-float),var(--sheen-top);animation:account-pass-in var(--dur-3) var(--ease-out) both}.account-pass-edge{position:absolute;inset:var(--space-7) auto var(--space-7) calc(var(--space-3) * -1);display:flex;flex-direction:column;justify-content:space-between}.account-pass-edge span{width:var(--space-5);height:var(--space-5);border:1px solid var(--border-strong);border-radius:50%;background:var(--bg2);box-shadow:inset 0 1px 2px var(--ink-wash)}.account-mode{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);margin-bottom:var(--space-7);padding:var(--space-1);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface2)}.account-mode button{min-height:2.75rem;border:0;border-radius:var(--r);background:transparent;color:var(--text3);font:700 var(--type-body-sm)/1 var(--font);cursor:pointer}.account-mode button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--elev-row)}.account-mode button:hover{color:var(--text)}.account-pass-heading{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:start;margin-bottom:var(--space-5)}.account-pass-heading.compact{grid-template-columns:1fr}.account-pass-number{padding-top:.2rem;color:var(--primary);font-size:var(--type-meta);font-weight:800;font-variant-numeric:tabular-nums}.account-pass-heading h2{margin:0;color:var(--text);font-family:var(--font-display);font-size:var(--type-headline);font-weight:var(--fw-title);letter-spacing:var(--ls-title)}.account-pass-heading p{margin:var(--space-1) 0 0;color:var(--text3);font-size:var(--type-body-sm)}.account-google,.account-submit{width:100%;min-height:3rem;display:flex;align-items:center;justify-content:center;gap:var(--space-3);border-radius:var(--r2);font:700 var(--type-body)/1 var(--font);cursor:pointer;transition:transform var(--dur-1) var(--ease-out),opacity var(--dur-1) var(--ease-out)}.account-google{border:1px solid var(--google-button-border);background:var(--google-button-bg);color:var(--google-button-text);font:500 14px/20px Google Sans,Roboto,Arial,sans-serif}.account-google-mark{flex:0 0 auto}.account-submit{margin-top:var(--space-2);border:1px solid var(--primary);background:var(--primary);color:var(--on-accent);box-shadow:var(--shadow-accent)}.account-google:hover:not(:disabled),.account-submit:hover:not(:disabled){transform:translateY(-1px)}.account-google:active:not(:disabled),.account-submit:active:not(:disabled){transform:translateY(1px) scale(.99)}.account-google:disabled,.account-submit:disabled{cursor:wait;opacity:.62}.account-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0;color:var(--text3);font-size:var(--type-meta)}.account-divider:before,.account-divider:after{content:"";height:1px;flex:1;background:var(--rule)}.account-form{display:grid;gap:var(--space-4)}.account-form>label:not(.account-agree),.account-profile-form label{display:grid;gap:var(--space-2);color:var(--text2-bright);font-size:var(--type-body-sm);font-weight:700}.account-form input,.account-profile-form input{width:100%;min-height:3rem;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--r);background:var(--field-bg);color:var(--text);font:500 var(--type-body)/1 var(--font)}.account-form small{color:var(--text3);font-size:var(--type-meta);font-weight:400;line-height:var(--lh-snug)}.account-password-field{position:relative;display:block}.account-password-field input{padding-right:3rem}.account-password-field button{position:absolute;top:50%;right:var(--space-1);width:2.5rem;height:2.5rem;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:var(--r);background:transparent;color:var(--text3);cursor:pointer}.account-password-field button:hover{color:var(--text);background:var(--ink-wash)}.account-agree{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3);align-items:start;color:var(--text2);font-size:var(--type-meta);line-height:var(--lh-snug)}.account-agree input{width:1.15rem;min-height:1.15rem;margin-top:.12rem;padding:0;accent-color:var(--primary)}.account-agree a{color:var(--primary);text-underline-offset:.16em}.account-error{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--danger-border);border-radius:var(--r);background:var(--danger-dim);color:var(--danger);font-size:var(--type-body-sm);line-height:var(--lh-snug)}.account-error svg{flex:0 0 auto;margin-top:.1rem}.account-error:focus{outline:2px solid var(--danger);outline-offset:2px}.account-notice{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--success-border);border-radius:var(--r);background:var(--success-dim);color:var(--success);font-size:var(--type-body-sm);line-height:var(--lh-snug)}.account-switch{margin:var(--space-5) 0 0;text-align:center;color:var(--text3);font-size:var(--type-body-sm)}.account-switch button{padding:0;border:0;background:transparent;color:var(--primary);font:700 inherit;cursor:pointer;text-decoration:underline;text-underline-offset:.18em}.account-pass-foot{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin:var(--space-4) 0 0;color:var(--text3);font-size:var(--type-meta)}.account-pass-foot svg{color:var(--success)}.account-loading{grid-template-columns:1fr;place-items:center;align-content:center;gap:var(--space-4);text-align:center}.account-loading .account-wordmark{margin:0}.account-loading p{margin:0;color:var(--text3)}.account-loader{width:1.75rem;height:1.75rem;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:account-spin .8s linear infinite}.account-dialog-scrim{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:var(--space-4);background:var(--scrim-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:account-fade var(--dur-2) var(--ease-out) both}.account-gate-scrim{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:var(--space-4);overflow-y:auto;background:var(--scrim-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:account-fade var(--dur-2) var(--ease-out) both}.account-shell-dialog{width:min(100%,72rem);min-height:0;max-height:calc(100dvh - (var(--space-4) * 2));padding:clamp(var(--space-6),5vw,var(--space-10));border:1px solid var(--border-strong);border-radius:var(--r3);box-shadow:var(--elev-float);overflow-y:auto;overscroll-behavior:contain}.account-shell-dialog .account-wordmark{margin-bottom:var(--space-7)}.account-shell-dialog .account-intro h1{font-size:clamp(2.5rem,4.4vw,4.5rem)}.account-gate-close{position:absolute;z-index:4;top:var(--space-4);left:var(--space-4);width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface2);color:var(--text2);cursor:pointer}.account-gate-close:hover{background:var(--surface3);color:var(--text)}.account-dialog{width:min(100%,31rem);max-height:min(90dvh,46rem);overflow-y:auto;overscroll-behavior:contain;padding:var(--space-6);border:1px solid var(--border-strong);border-radius:var(--r3);background:var(--surface);color:var(--text);box-shadow:var(--elev-float);font-family:var(--font);animation:account-dialog-in var(--dur-3) var(--ease-out) both}.account-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.account-dialog>header p{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);color:var(--primary);font-size:var(--type-meta);font-weight:800;letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.account-dialog>header h2{margin:0;font:600 var(--type-headline)/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-title)}.account-dialog-close{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface2);color:var(--text2);cursor:pointer}.account-dialog-close:hover{background:var(--surface3);color:var(--text)}.account-identity-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface2)}.account-avatar{width:3rem;height:3rem;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--primary-dim);color:var(--primary)}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-identity-card>div{min-width:0;display:grid;gap:var(--space-1)}.account-identity-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-profile-email{overflow-wrap:anywhere;color:var(--text3);font-size:var(--type-body-sm)}.account-profile-form{display:grid;grid-template-columns:1fr auto;gap:var(--space-3);align-items:end;margin-top:var(--space-5)}.account-profile-form button{min-height:3rem;padding:0 var(--space-4);border:1px solid var(--primary);border-radius:var(--r);background:var(--primary);color:var(--on-accent);font:700 var(--type-body-sm)/1 var(--font);cursor:pointer;transition:transform var(--dur-1) var(--ease-out),opacity var(--dur-1) var(--ease-out)}.account-profile-form button:disabled{opacity:.55;cursor:default}.account-profile-form button:hover:not(:disabled){transform:translateY(-1px)}.account-canvas-link{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0;padding:var(--space-4) 0;border-block:1px solid var(--rule)}.account-connection-dot{width:.65rem;height:.65rem;flex:0 0 auto;border-radius:50%;background:var(--success);box-shadow:0 0 0 .25rem var(--success-dim)}.account-canvas-link div{display:grid;gap:var(--space-1)}.account-canvas-link span{color:var(--text3);font-size:var(--type-meta);overflow-wrap:anywhere}.account-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-5)}.account-dialog-actions button{min-height:2.8rem;display:flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface2);color:var(--text2-bright);font:700 var(--type-body-sm)/1 var(--font);cursor:pointer}.account-dialog-actions button.danger{border-color:var(--danger-border);background:var(--danger-dim);color:var(--danger)}.account-dialog-actions button:disabled{opacity:.55;cursor:wait}.account-dialog-actions button:hover:not(:disabled){background:var(--surface3)}.account-dialog-actions button.danger:hover:not(:disabled){border-color:var(--danger)}.account-delete-note{margin:var(--space-3) 0 0;color:var(--text3);font-size:var(--type-meta);line-height:var(--lh-snug)}.subscription-dialog{width:min(100%,54rem);max-height:92dvh}.subscription-dialog>header{position:sticky;z-index:4;top:calc(0px - var(--space-6));margin:calc(0px - var(--space-6)) calc(0px - var(--space-6)) var(--space-5);padding:var(--space-5) var(--space-6) var(--space-3);border-bottom:1px solid var(--rule);background:var(--surface);box-shadow:var(--shadow-soft)}.subscription-header-actions{display:flex;align-items:center;gap:var(--space-2)}.subscription-refresh{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--text3);cursor:pointer}.subscription-refresh:hover:not(:disabled){color:var(--primary);border-color:var(--accent-border-strong)}.subscription-refresh:active:not(:disabled){transform:scale(.96)}.subscription-refresh:disabled{opacity:.55;cursor:wait}.subscription-loading{min-height:16rem;display:grid;place-items:center;align-content:center;gap:var(--space-3);color:var(--text3)}.subscription-loading p{margin:0}.subscription-wallet{position:relative;overflow:hidden;padding:var(--space-6);border:1px solid var(--accent-border-strong);border-radius:var(--r3);background:var(--panel-tint),var(--surface2);box-shadow:var(--sheen-top-soft)}.subscription-wallet:after{content:"";position:absolute;inset:var(--space-3) var(--space-3) auto auto;width:3rem;border-top:1px solid var(--accent-border-strong);transform:rotate(-8deg)}.subscription-wallet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);color:var(--primary)}.subscription-wallet-head>div{display:grid;gap:var(--space-1)}.subscription-eyebrow{color:var(--text3);font-size:var(--type-eyebrow);font-weight:800;letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.subscription-plan-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.subscription-plan-line>strong{color:var(--text);font:600 var(--type-headline)/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-title)}.subscription-demo-stamp{padding:.18rem var(--space-2);border:1px solid var(--accent-border-strong);border-radius:var(--card-radius-chip);color:var(--primary);font-size:var(--type-eyebrow);font-weight:800;letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.subscription-balance{margin:var(--space-6) 0 var(--space-2);font:600 var(--type-display)/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-display);font-variant-numeric:tabular-nums;text-wrap:balance}.subscription-meter{height:.55rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--card-radius-chip);background:var(--surface4)}.subscription-meter>span{display:block;width:var(--usage-progress);height:100%;border-radius:inherit;background:var(--primary);transition:transform var(--dur-3) var(--ease-out);transform-origin:left}.subscription-wallet-meta{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2);color:var(--text3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-explainer{max-width:46rem;margin:var(--space-4) 0 0;color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-body)}.subscription-actual{margin-top:var(--space-5)}.subscription-actual h3,.subscription-section-heading h3,.subscription-recent h3{margin:0;font:600 var(--type-title)/var(--lh-snug) var(--font-display);letter-spacing:var(--ls-title);text-wrap:balance}.subscription-actual dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:var(--space-3) 0 0;border-block:1px solid var(--rule)}.subscription-actual dl>div{min-width:0;padding:var(--space-3) var(--space-4);border-left:1px solid var(--rule)}.subscription-actual dl>div:first-child{border-left:0}.subscription-actual dt{color:var(--text3);font-size:var(--type-meta)}.subscription-actual dd{margin:var(--space-1) 0 0;color:var(--text);font-size:var(--type-title);font-weight:800;font-variant-numeric:tabular-nums}.subscription-plans,.subscription-school-year,.subscription-packs,.subscription-recent{margin-top:var(--space-7)}.subscription-section-heading>div{display:grid;gap:var(--space-1)}.subscription-section-heading .subscription-eyebrow{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--primary)}.subscription-section-heading>span{max-width:26rem;color:var(--text3);font-size:var(--type-meta);text-align:right}.subscription-plan-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--space-4);margin-top:var(--space-3)}.subscription-plan-card{display:flex;flex-direction:column;min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--r3);background:var(--surface2);box-shadow:var(--elev-row)}.subscription-plan-card.current{border-color:var(--accent-border-strong);background:var(--primary-dim)}.subscription-plan-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.subscription-plan-card-head h4{margin:0;font:600 var(--type-headline)/var(--lh-tight) var(--font-display)}.subscription-plan-card-head p{margin:var(--space-2) 0 0;color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-snug)}.subscription-plan-card-head>span{display:inline-flex;align-items:center;gap:var(--space-1);flex:0 0 auto;color:var(--success);font-size:var(--type-meta);font-weight:800}.subscription-price{margin:var(--space-5) 0 0;font-size:var(--type-title);font-weight:800;font-variant-numeric:tabular-nums}.subscription-annual{margin:var(--space-1) 0 0;color:var(--text3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-plan-card ul{display:grid;gap:var(--space-2);margin:var(--space-4) 0 var(--space-5);padding:0;list-style:none}.subscription-plan-card li{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-snug)}.subscription-plan-card li svg{flex:0 0 auto;margin-top:.12rem;color:var(--success)}.subscription-plan-card>button{min-height:2.75rem;margin-top:auto;border:1px solid var(--border);border-radius:var(--r);background:var(--surface3);color:var(--text3);font:800 var(--type-body-sm)/1 var(--font);cursor:not-allowed;opacity:.75}.subscription-term-ticket{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(15rem,.8fr);margin-top:var(--space-3);overflow:hidden;border:1px solid var(--accent-border-strong);border-radius:var(--r3);background:var(--surface2);box-shadow:var(--sheen-top-soft)}.subscription-month-picker{min-width:0;padding:var(--space-5)}.subscription-month-picker>label{display:block;color:var(--text2-bright);font-size:var(--type-body-sm);font-weight:800}.subscription-month-stepper{display:grid;grid-template-columns:auto minmax(8rem,1fr) auto;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.subscription-month-stepper button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface);color:var(--primary);cursor:pointer;transition:transform var(--dur-1) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.subscription-month-stepper button:hover:not(:disabled){border-color:var(--accent-border-strong);transform:translateY(-1px)}.subscription-month-stepper button:active:not(:disabled){transform:translateY(0) scale(.96)}.subscription-month-stepper button:disabled{color:var(--text3);cursor:default;opacity:.45}.subscription-month-stepper output{color:var(--text);font:600 var(--type-headline)/1 var(--font-display);text-align:center;font-variant-numeric:tabular-nums}.subscription-month-picker input[type=range]{width:100%;height:.55rem;margin:var(--space-5) 0 0;border:1px solid var(--border);border-radius:var(--card-radius-chip);appearance:none;-webkit-appearance:none;background:linear-gradient(to right,var(--primary) 0 var(--term-progress),var(--surface4) var(--term-progress) 100%);cursor:pointer}.subscription-month-picker input[type=range]::-webkit-slider-thumb{width:1.25rem;height:1.25rem;border:3px solid var(--surface);border-radius:50%;-webkit-appearance:none;background:var(--primary);box-shadow:0 0 0 1px var(--accent-border-strong)}.subscription-month-picker input[type=range]::-moz-range-thumb{width:.95rem;height:.95rem;border:3px solid var(--surface);border-radius:50%;background:var(--primary);box-shadow:0 0 0 1px var(--accent-border-strong)}.subscription-month-range{display:flex;justify-content:space-between;margin-top:var(--space-2);color:var(--text3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-school-quote{position:relative;display:grid;align-content:center;gap:var(--space-2);padding:var(--space-5);border-left:1px dashed var(--accent-border-strong);background:var(--primary-dim)}.subscription-school-quote:before,.subscription-school-quote:after{content:"";position:absolute;left:-.55rem;width:1rem;height:1rem;border:1px solid var(--accent-border-strong);border-radius:50%;background:var(--surface)}.subscription-school-quote:before{top:-.55rem}.subscription-school-quote:after{bottom:-.55rem}.subscription-discount-stamp{width:fit-content;padding:.2rem var(--space-2);border:1px solid var(--accent-border-strong);border-radius:var(--card-radius-chip);color:var(--primary);font-size:var(--type-eyebrow);font-weight:800;letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.subscription-school-quote>strong{color:var(--text);font:600 var(--type-display)/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-display);font-variant-numeric:tabular-nums}.subscription-school-quote>span:not(.subscription-discount-stamp){color:var(--text2);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-school-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-3)}.subscription-school-foot p{margin:0;color:var(--text3);font-size:var(--type-meta)}.subscription-school-foot button{min-height:2.6rem;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--r);background:var(--surface3);color:var(--text3);font:800 var(--type-meta)/1 var(--font);cursor:not-allowed;opacity:.75}.subscription-packs>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-3)}.subscription-packs button{min-height:2.8rem;padding:0 var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--r2);background:transparent;color:var(--text3);font:800 var(--type-meta)/1.2 var(--font);cursor:not-allowed}.subscription-recent>p{margin:var(--space-3) 0 0;padding:var(--space-4);border-block:1px solid var(--rule);color:var(--text3);font-size:var(--type-body-sm)}.subscription-recent ol{margin:var(--space-3) 0 0;padding:0;border-top:1px solid var(--rule);list-style:none}.subscription-recent li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--rule)}.subscription-recent li>div{display:grid;gap:var(--space-1)}.subscription-recent li>div:last-child{justify-items:end;text-align:right}.subscription-recent li strong{overflow-wrap:anywhere;font-size:var(--type-body-sm)}.subscription-recent li span{color:var(--text3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-recent li>div:last-child strong{color:var(--primary);font-variant-numeric:tabular-nums}.subscription-dialog{width:min(100%,36rem)}.subscription-dialog>header{box-shadow:none}.subscription-content{display:grid;gap:var(--space-5)}.subscription-summary{padding:var(--space-4);border:1px solid var(--accent-border-strong);border-radius:var(--r2);background:var(--primary-dim)}.subscription-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.subscription-summary-head>div{display:grid;gap:var(--space-1)}.subscription-summary-head>div>span{color:var(--text3);font-size:var(--type-meta);font-weight:800}.subscription-summary-head>div>strong{font:600 var(--type-title)/var(--lh-snug) var(--font-display)}.subscription-current-badge{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--success);font-size:var(--type-meta);font-weight:800}.subscription-summary>p{margin:var(--space-4) 0 var(--space-2);font:600 var(--type-headline)/var(--lh-tight) var(--font-display);font-variant-numeric:tabular-nums}.subscription-summary-meta{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2);color:var(--text3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-plans,.subscription-school-year{display:grid;gap:var(--space-3);margin-top:0}.subscription-plans h3,.subscription-section-heading h3{margin:0;font:600 var(--type-title)/var(--lh-snug) var(--font-display);letter-spacing:var(--ls-title)}.subscription-plan-list{overflow:hidden;border:1px solid var(--border);border-radius:var(--r2)}.subscription-plan-list article{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface2)}.subscription-plan-list article+article{border-top:1px solid var(--rule)}.subscription-plan-list article.current{background:var(--primary-dim)}.subscription-plan-list article>div{display:grid;gap:var(--space-1)}.subscription-plan-list article>div:last-child{flex:0 0 auto;justify-items:end;text-align:right}.subscription-plan-list article strong{font-size:var(--type-body-sm);font-variant-numeric:tabular-nums}.subscription-plan-list article span{color:var(--text3);font-size:var(--type-meta)}.subscription-plan-list article.current>div:last-child span{color:var(--success);font-weight:800}.subscription-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.subscription-section-heading>span{max-width:20rem;color:var(--text3);font-size:var(--type-meta);text-align:right}.subscription-school-year>label{color:var(--text2-bright);font-size:var(--type-body-sm);font-weight:800}.subscription-month-stepper{margin-top:0}.subscription-school-year input[type=range]{width:100%;height:.5rem;margin:0;border:1px solid var(--border);border-radius:var(--card-radius-chip);appearance:none;-webkit-appearance:none;background:linear-gradient(to right,var(--primary) 0 var(--term-progress),var(--surface4) var(--term-progress) 100%);cursor:pointer}.subscription-school-year input[type=range]::-webkit-slider-thumb{width:1.25rem;height:1.25rem;border:3px solid var(--surface);border-radius:50%;-webkit-appearance:none;background:var(--primary);box-shadow:0 0 0 1px var(--accent-border-strong)}.subscription-school-year input[type=range]::-moz-range-thumb{width:.95rem;height:.95rem;border:3px solid var(--surface);border-radius:50%;background:var(--primary);box-shadow:0 0 0 1px var(--accent-border-strong)}.subscription-quote{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--accent-border-soft);border-radius:var(--r2);background:var(--primary-dim)}.subscription-quote>div{display:grid;gap:var(--space-1)}.subscription-quote strong{font:600 var(--type-title)/var(--lh-snug) var(--font-display);font-variant-numeric:tabular-nums}.subscription-quote span{color:var(--text3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-quote>span{flex:0 0 auto;color:var(--primary);font-weight:800;text-align:right}.subscription-demo-action{width:100%;min-height:2.8rem;border:1px solid var(--border);border-radius:var(--r);background:var(--surface3);color:var(--text3);font:800 var(--type-body-sm)/1 var(--font);cursor:not-allowed;opacity:.75}.account-shell button:focus-visible,.account-shell a:focus-visible,.account-shell input:focus-visible,.account-dialog button:focus-visible,.account-dialog input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-color:var(--primary)}@keyframes account-pass-in{0%{opacity:0;transform:translateY(1rem) rotate(.4deg)}to{opacity:1;transform:none}}@keyframes account-dialog-in{0%{opacity:0;transform:translateY(.75rem) scale(.985)}to{opacity:1;transform:none}}@keyframes account-fade{0%{opacity:0}to{opacity:1}}@keyframes account-spin{to{transform:rotate(360deg)}}@media(max-width:820px){.account-shell{grid-template-columns:1fr;align-content:start;gap:var(--space-7);padding:calc(var(--space-8) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom,0px));overflow-y:auto}.account-tools{position:relative;inset:auto;justify-self:end;grid-row:1}.account-intro{grid-row:2}.account-wordmark{margin-bottom:var(--space-7)}.account-intro h1{max-width:12ch;font-size:clamp(2.5rem,13vw,4rem)}.account-copy{margin-top:var(--space-4);font-size:var(--type-body)}.account-privacy-note{margin-top:var(--space-5)}.account-pass{grid-row:3;justify-self:stretch;width:100%;padding:var(--space-5)}.account-pass-edge{display:none}.account-shell-dialog{align-content:start;max-height:calc(100dvh - (var(--space-2) * 2));padding-top:var(--space-8)}.account-shell-dialog .account-tools{margin-left:var(--space-10)}}@media(max-width:480px){.account-shell{gap:var(--space-3);padding-top:calc(var(--space-6) + env(safe-area-inset-top,0px))}.account-wordmark{margin-bottom:var(--space-3)}.account-intro h1{font-size:clamp(2.25rem,12vw,3.2rem)}.account-copy{margin-top:var(--space-3);line-height:1.45}.account-privacy-note{display:none}.account-pass{padding:var(--space-4)}.account-mode,.account-pass-heading{margin-bottom:var(--space-4)}.account-form{gap:var(--space-3)}.account-dialog{padding:var(--space-5)}.subscription-dialog>header{top:calc(0px - var(--space-5));margin:calc(0px - var(--space-5)) calc(0px - var(--space-5)) var(--space-5);padding:var(--space-4) var(--space-5) var(--space-3)}.account-profile-form,.account-dialog-actions{grid-template-columns:1fr}.subscription-content{gap:var(--space-4)}.subscription-summary-meta{display:grid;gap:var(--space-1)}.subscription-quote{gap:var(--space-2)}.subscription-wallet{padding:var(--space-5)}.subscription-balance{margin-top:var(--space-5);font-size:var(--type-headline)}.subscription-wallet-meta{display:grid;gap:var(--space-1)}.subscription-actual dl{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-actual dl>div:nth-child(3){border-left:0;border-top:1px solid var(--rule)}.subscription-actual dl>div:nth-child(4){border-top:1px solid var(--rule)}.subscription-section-heading{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.subscription-section-heading>span{text-align:left}.subscription-plan-grid,.subscription-term-ticket{grid-template-columns:1fr}.subscription-school-quote{border-top:1px dashed var(--accent-border-strong);border-left:0}.subscription-school-quote:before,.subscription-school-quote:after{top:-.55rem;bottom:auto}.subscription-school-quote:before{left:-.55rem}.subscription-school-quote:after{right:-.55rem;left:auto}.subscription-school-foot{align-items:stretch;flex-direction:column;gap:var(--space-3)}.subscription-school-foot button{width:100%}.subscription-packs>div:last-child{grid-template-columns:1fr}.subscription-recent li{grid-template-columns:1fr;gap:var(--space-2)}.subscription-recent li>div:last-child{justify-items:start;text-align:left}.account-gate-scrim{padding:var(--space-2)}.account-shell-dialog{border-radius:var(--r2)}.account-shell-dialog .account-intro h1{font-size:clamp(2rem,10vw,2.8rem)}}@media(prefers-reduced-motion:reduce){.account-pass,.account-dialog,.account-dialog-scrim,.account-gate-scrim,.account-loader{animation-duration:.01ms!important;animation-iteration-count:1!important}}
