:root,[data-theme=light]{--bg: #FAF8F5;--surface: #FFFFFF;--surface-hover: #F3F0EB;--border: #DCD6CC;--text: #181B20;--text-muted: #525967;--accent: #0F4FF0;--accent-hover: #0A3FCC;--on-accent: #FFFFFF;--success: #036C2B;--warning: #954500;--danger: #BD0D1A;--tint: 13%;--warning-fill: #F28A00;--on-warning-fill: #181B20;--shadow-ink: #1F2328;--shadow-soft: 0 1px 0 rgba(31, 35, 40, .05);--shadow-float: 0 12px 18px rgba(31, 35, 40, .06);--shadow-card: 0 14px 24px rgba(31, 35, 40, .06);--shadow-card-hover: 0 20px 30px rgba(31, 35, 40, .09);--shadow-popover: 0 24px 40px rgba(31, 35, 40, .14);--glow: 0 1px 2px rgba(31, 35, 40, .06), 0 14px 34px rgba(31, 35, 40, .1);--scrim-bg: rgba(15, 23, 42, .5);--sheen-top: inset 0 1px 0 var(--wash-strong);--sheen-top-soft: inset 0 1px 0 var(--wash-soft);--paper-grain-opacity: .18;--paper-grain-blend: multiply;--backdrop: none;--media-scrim: rgba(250, 248, 245, .88);--on-media: #181B20;--preview-bg: #0F172A;--preview-text: #EEF2F7;--preview-border: #52627A;--preview-surface: #1E293B;--course-1: #0891B2;--course-2: #EA580C;--course-3: #16A34A;--course-4: #C27C00;--course-5: #7C3AED;--course-6: #0D9488;--course-7: #DB2777;--course-8: #5E9A0C;--course-9: #B45309;--course-10: #4F46E5;--google-button-bg: #FFFFFF;--google-button-text: #1F1F1F;--google-button-border: #747775;color-scheme:light}[data-theme=dark]{--bg: #0F172A;--surface: #1E293B;--surface-hover: #273549;--border: #3D4C63;--text: #EEF2F7;--text-muted: #AAB6C6;--accent: #6AAAFF;--accent-hover: #8CBEFF;--on-accent: #0F172A;--success: #2EE59D;--warning: #FFC53D;--danger: #FF7D7D;--tint: 14%;--warning-fill: var(--warning);--on-warning-fill: #0F172A;--shadow-ink: #020617;--shadow-soft: 0 1px 0 rgba(2, 6, 23, .3);--shadow-float: 0 12px 18px rgba(2, 6, 23, .26);--shadow-card: 0 14px 24px rgba(2, 6, 23, .28);--shadow-card-hover: 0 20px 30px rgba(2, 6, 23, .36);--shadow-popover: 0 24px 40px rgba(2, 6, 23, .44);--glow: 0 1px 2px rgba(2, 6, 23, .34), 0 18px 42px rgba(2, 6, 23, .4);--scrim-bg: rgba(2, 6, 23, .72);--sheen-top: 0 0 0 0 transparent;--sheen-top-soft: 0 0 0 0 transparent;--paper-grain-opacity: .06;--paper-grain-blend: screen;--backdrop: none;--media-scrim: rgba(15, 23, 42, .8);--on-media: #EEF2F7;--preview-bg: #FAF8F5;--preview-text: #181B20;--preview-border: #BDB6AA;--preview-surface: #FFFFFF;--course-1: #22D3EE;--course-2: #FF8A3D;--course-3: #3DE87A;--course-4: #FFD21F;--course-5: #A98BFF;--course-6: #2EE6C8;--course-7: #FF6BB5;--course-8: #B0F03A;--course-9: #F0A462;--course-10: #8A93FF;--google-button-bg: #131314;--google-button-text: #E3E3E3;--google-button-border: #8E918F;color-scheme:dark}[data-style=glass][data-theme=light]{--bg: #DCE6F3;--surface: rgba(255, 255, 255, .56);--surface-hover: rgba(255, 255, 255, .76);--border: rgba(255, 255, 255, .55);--text: #0A0F18;--text-muted: #3D4454;--accent: #00489F;--accent-hover: #003A82;--on-accent: #FFFFFF;--success: #055A24;--warning: #723800;--danger: #A0142A;--tint: 12%;--warning-fill: #F5A524;--on-warning-fill: #0A0F18;--shadow-ink: #12305A;--shadow-soft: inset 1px 1px 0 rgba(255, 255, 255, .7), 0 1px 2px rgba(18, 48, 90, .08);--shadow-card: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .95), inset -1px -1px 1px -.5px rgba(255, 255, 255, .7), inset 0 0 14px rgba(255, 255, 255, .32), 0 10px 30px rgba(18, 48, 90, .12);--shadow-card-hover: inset 1.5px 1.5px 1px -.5px #FFFFFF, inset -1px -1px 1px -.5px rgba(255, 255, 255, .8), inset 0 0 18px rgba(255, 255, 255, .42), 0 16px 40px rgba(18, 48, 90, .16);--shadow-float: inset 1.5px 1.5px 1px -.5px #FFFFFF, inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .8), inset 0 0 16px rgba(255, 255, 255, .45), 0 10px 32px rgba(18, 48, 90, .18);--shadow-popover: inset 1.5px 1.5px 1px -.5px #FFFFFF, inset -1px -1px 1px -.5px rgba(255, 255, 255, .7), inset 0 0 18px rgba(255, 255, 255, .4), 0 24px 60px rgba(18, 48, 90, .26);--glow: inset 1.5px 1.5px 1px -.5px #FFFFFF, inset 0 0 16px rgba(255, 255, 255, .4), 0 14px 34px rgba(18, 48, 90, .16);--scrim-bg: rgba(14, 30, 56, .3);--sheen-top: inset 0 1px 0 rgba(255, 255, 255, .9);--sheen-top-soft: inset 0 1px 0 rgba(255, 255, 255, .6);--paper-grain-opacity: 0;--media-scrim: rgba(255, 255, 255, .86);--on-media: #0A0F18;--preview-bg: #04070D;--preview-text: #F2F5FA;--preview-border: #4A5670;--preview-surface: #141B2A;--glass-edge: rgba(255, 255, 255, .7);--glass-1: #AFC8EA;--glass-2: #F3F7FD;--glass-3: #C4D6EF;--topbar-bg: rgba(255, 255, 255, .34);--popover-bg: rgba(246, 249, 254, .78);--field-bg: rgba(255, 255, 255, .7);--ctl-fill-edge: inset 1px 1px 0 rgba(255, 255, 255, .4), inset 0 0 8px rgba(255, 255, 255, .18), 0 4px 12px rgba(0, 60, 140, .22);--backdrop: radial-gradient(75% 65% at 0% 0%, var(--glass-1), transparent 70%), radial-gradient(60% 70% at 100% 25%, var(--glass-2), transparent 70%), radial-gradient(85% 60% at 35% 105%, var(--glass-3), transparent 70%), linear-gradient(160deg, #E6EEF8, #D2DFF0);color-scheme:light}[data-style=glass][data-theme=dark]{--bg: #04070D;--surface: rgba(18, 22, 32, .56);--surface-hover: rgba(34, 40, 56, .66);--border: rgba(255, 255, 255, .12);--text: #F2F5FA;--text-muted: #AEB7C8;--accent: #7DBBFF;--accent-hover: #9CCBFF;--on-accent: #04101F;--success: #3DDB8C;--warning: #FFC94D;--danger: #FF9A9A;--tint: 16%;--warning-fill: #FFC94D;--on-warning-fill: #04070D;--shadow-ink: #000000;--shadow-soft: inset 1px 1px 0 rgba(255, 255, 255, .1), 0 1px 2px rgba(0, 0, 0, .4);--shadow-card: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .3), inset -1px -1px 1px -.5px rgba(255, 255, 255, .12), inset 0 0 14px rgba(255, 255, 255, .05), 0 12px 32px rgba(0, 0, 0, .45);--shadow-card-hover: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .4), inset -1px -1px 1px -.5px rgba(255, 255, 255, .16), inset 0 0 18px rgba(255, 255, 255, .07), 0 18px 44px rgba(0, 0, 0, .55);--shadow-float: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .42), inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .16), inset 0 0 16px rgba(255, 255, 255, .08), 0 12px 32px rgba(0, 0, 0, .5);--shadow-popover: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .36), inset -1px -1px 1px -.5px rgba(255, 255, 255, .12), inset 0 0 18px rgba(255, 255, 255, .06), 0 24px 60px rgba(0, 0, 0, .6);--glow: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .36), inset 0 0 16px rgba(255, 255, 255, .06), 0 18px 42px rgba(0, 0, 0, .5);--scrim-bg: rgba(0, 0, 0, .5);--sheen-top: inset 0 1px 0 rgba(255, 255, 255, .12);--sheen-top-soft: inset 0 1px 0 rgba(255, 255, 255, .08);--paper-grain-opacity: 0;--media-scrim: rgba(4, 7, 13, .82);--on-media: #F2F5FA;--preview-bg: #DCE6F3;--preview-text: #0A0F18;--preview-border: #8A9BB5;--preview-surface: #FFFFFF;--glass-edge: rgba(255, 255, 255, .2);--glass-1: #12305E;--glass-2: #0B1D3B;--glass-3: #0E2547;--topbar-bg: rgba(40, 48, 66, .36);--popover-bg: rgba(22, 28, 42, .82);--field-bg: rgba(6, 10, 18, .5);--ctl-fill-edge: inset 1px 1px 0 rgba(255, 255, 255, .45), inset 0 0 8px rgba(255, 255, 255, .16), 0 4px 14px rgba(0, 0, 0, .4);--backdrop: radial-gradient(75% 65% at 0% 0%, var(--glass-1), transparent 70%), radial-gradient(60% 70% at 100% 25%, var(--glass-2), transparent 70%), radial-gradient(85% 60% at 35% 105%, var(--glass-3), transparent 70%), linear-gradient(160deg, #060B16, #03060C);color-scheme:dark}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){[data-style=glass][data-theme=light]{--surface: #F8FAFD;--surface-hover: #FFFFFF;--border: #A9B4C6;--glass-edge: #A9B4C6;--topbar-bg: #F3F6FB;--popover-bg: #FFFFFF;--field-bg: #FFFFFF}[data-style=glass][data-theme=dark]{--surface: #151B29;--surface-hover: #212A3B;--border: #46526A;--glass-edge: #46526A;--topbar-bg: #101624;--popover-bg: #151B29;--field-bg: #0D1220}}[data-style=cozy][data-theme=light]{--bg: #F9F1F5;--surface: #FFFFFF;--surface-hover: #F8EAF1;--border: #EAD5E0;--text: #2D2130;--text-muted: #67536C;--accent: #A8296E;--accent-hover: #8C1F5A;--on-accent: #FFFFFF;--success: #1A7240;--warning: #864500;--danger: #B3211A;--tint: 12%;--warning-fill: #FFB547;--on-warning-fill: #2D2130;--shadow-ink: #3A2340;--shadow-soft: 0 2px 0 rgba(150, 80, 125, .1);--shadow-float: 0 3px 0 rgba(150, 80, 125, .1), 0 14px 26px rgba(120, 50, 95, .1);--shadow-card: 0 3px 0 #EDD9E4, 0 14px 30px rgba(120, 50, 95, .07);--shadow-card-hover: 0 4px 0 #E6CADA, 0 20px 36px rgba(120, 50, 95, .12);--shadow-popover: 0 4px 0 #EDD9E4, 0 26px 48px rgba(90, 35, 75, .18);--glow: 0 3px 0 #EDD9E4, 0 14px 34px rgba(120, 50, 95, .12);--scrim-bg: rgba(45, 33, 48, .42);--sheen-top: inset 0 1px 0 rgba(255, 255, 255, .9);--sheen-top-soft: inset 0 1px 0 rgba(255, 255, 255, .9), 0 2px 0 #EAD5E0;--ctl-fill-edge: 0 3px 0 #741A4B;--shadow-accent: 0 3px 0 #741A4B, 0 10px 20px rgba(168, 41, 110, .24);--paper-grain-opacity: 0;--media-scrim: rgba(249, 241, 245, .9);--on-media: #2D2130;--preview-bg: #1C1620;--preview-text: #F8EEF5;--preview-border: #6A5670;--preview-surface: #292030;--backdrop: radial-gradient(circle, rgba(168, 41, 110, .17) 1.2px, transparent 1.7px) 0 0 / 22px 22px;color-scheme:light}[data-style=cozy][data-theme=dark]{--bg: #1C1620;--surface: #292030;--surface-hover: #34293C;--border: #4B3D52;--text: #F8EEF5;--text-muted: #C8B5C8;--accent: #FFA3D0;--accent-hover: #FFC0DF;--on-accent: #2B0E1E;--success: #82E3A8;--warning: #FFD074;--danger: #FF8E80;--tint: 15%;--warning-fill: #FFD074;--on-warning-fill: #1C1620;--shadow-ink: #0B070D;--shadow-soft: 0 2px 0 rgba(0, 0, 0, .3);--shadow-float: 0 3px 0 rgba(0, 0, 0, .3), 0 14px 26px rgba(0, 0, 0, .3);--shadow-card: 0 3px 0 #120D15, 0 14px 30px rgba(0, 0, 0, .28);--shadow-card-hover: 0 4px 0 #120D15, 0 20px 36px rgba(0, 0, 0, .36);--shadow-popover: 0 4px 0 #120D15, 0 26px 48px rgba(0, 0, 0, .5);--glow: 0 3px 0 #120D15, 0 18px 42px rgba(0, 0, 0, .4);--scrim-bg: rgba(10, 6, 12, .66);--sheen-top: 0 0 0 0 transparent;--sheen-top-soft: 0 2px 0 #120D15;--ctl-fill-edge: 0 3px 0 #B5638D;--shadow-accent: 0 3px 0 #B5638D, 0 10px 22px rgba(0, 0, 0, .35);--paper-grain-opacity: 0;--media-scrim: rgba(28, 22, 32, .84);--on-media: #F8EEF5;--preview-bg: #F9F1F5;--preview-text: #2D2130;--preview-border: #C9AFBE;--preview-surface: #FFFFFF;--backdrop: radial-gradient(circle, rgba(255, 163, 208, .1) 1.2px, transparent 1.7px) 0 0 / 22px 22px;color-scheme:dark}[data-style=focus][data-theme=light]{--bg: #FFFFFF;--surface: #FFFFFF;--surface-hover: #F0F0EB;--border: #8A8A8A;--text: #0A0A0A;--text-muted: #383838;--accent: #0A0A0A;--accent-hover: #333333;--on-accent: #FFFFFF;--success: #00662A;--warning: #814100;--danger: #AD0019;--tint: 11%;--warning-fill: #FFC21A;--on-warning-fill: #0A0A0A;--shadow-ink: transparent;--shadow-soft: 0 0 0 0 transparent;--shadow-float: 0 0 0 0 transparent;--shadow-card: 0 0 0 0 transparent;--shadow-card-hover: 0 0 0 0 transparent;--shadow-popover: 0 0 0 2px #0A0A0A;--glow: 0 0 0 0 transparent;--scrim-bg: rgba(0, 0, 0, .45);--sheen-top: 0 0 0 0 transparent;--sheen-top-soft: 0 0 0 0 transparent;--paper-grain-opacity: 0;--media-scrim: rgba(255, 255, 255, .92);--on-media: #0A0A0A;--preview-bg: #0A0A0A;--preview-text: #FFFFFF;--preview-border: #7C7C7C;--preview-surface: #141414;--highlight: #FFE45E;--accent-dim: var(--highlight);--selection-bg: var(--highlight);--shadow-accent: 0 0 0 0 transparent;color-scheme:light}[data-style=focus][data-theme=dark]{--bg: #0A0A0A;--surface: #141414;--surface-hover: #242424;--border: #7C7C7C;--text: #FFFFFF;--text-muted: #D2D2D2;--accent: #FFFFFF;--accent-hover: #DADADA;--on-accent: #0A0A0A;--success: #5DE391;--warning: #FFD447;--danger: #FF8F8F;--tint: 18%;--warning-fill: #FFD447;--on-warning-fill: #0A0A0A;--shadow-ink: transparent;--shadow-soft: 0 0 0 0 transparent;--shadow-float: 0 0 0 0 transparent;--shadow-card: 0 0 0 0 transparent;--shadow-card-hover: 0 0 0 0 transparent;--shadow-popover: 0 0 0 2px #FFFFFF;--glow: 0 0 0 0 transparent;--scrim-bg: rgba(0, 0, 0, .75);--sheen-top: 0 0 0 0 transparent;--sheen-top-soft: 0 0 0 0 transparent;--paper-grain-opacity: 0;--media-scrim: rgba(10, 10, 10, .88);--on-media: #FFFFFF;--preview-bg: #FFFFFF;--preview-text: #0A0A0A;--preview-border: #8A8A8A;--preview-surface: #FFFFFF;--highlight: rgba(255, 228, 94, .3);--accent-dim: var(--highlight);--selection-bg: rgba(255, 228, 94, .42);--shadow-accent: 0 0 0 0 transparent;color-scheme:dark}:root,[data-theme]{--bg2: color-mix(in srgb, var(--bg) 60%, var(--surface-hover));--surface2: color-mix(in srgb, var(--surface) 50%, var(--surface-hover));--surface3: var(--surface-hover);--surface4: color-mix(in srgb, var(--surface-hover) 55%, var(--border));--field-bg: var(--surface);--popover-bg: var(--surface);--topbar-bg: color-mix(in srgb, var(--bg) 92%, transparent);--text2: color-mix(in srgb, var(--text) 45%, var(--text-muted));--text2-bright: color-mix(in srgb, var(--text) 72%, var(--text-muted));--border-strong: color-mix(in srgb, var(--text-muted) 70%, var(--border));--rule: var(--border);--ink-wash: color-mix(in srgb, var(--text) 6%, transparent);--wash-strong: color-mix(in srgb, var(--surface) 60%, transparent);--wash: color-mix(in srgb, var(--surface) 45%, transparent);--wash-soft: color-mix(in srgb, var(--surface) 34%, transparent);--wash-faint: color-mix(in srgb, var(--surface) 20%, transparent);--panel-tint: linear-gradient(135deg, var(--wash), transparent 45%);--accent-dim: color-mix(in srgb, var(--accent) var(--tint), transparent);--accent-border-soft: color-mix(in srgb, var(--accent) 45%, transparent);--accent-border-strong: color-mix(in srgb, var(--accent) 60%, transparent);--focus-ring: color-mix(in srgb, var(--accent) 24%, transparent);--shadow-accent: 0 4px 14px color-mix(in srgb, var(--accent) 28%, transparent);--ctl-fill-edge: 0 0 0 0 transparent;--selection-bg: color-mix(in srgb, var(--accent) 26%, transparent);--success-dim: color-mix(in srgb, var(--success) var(--tint), transparent);--warning-dim: color-mix(in srgb, var(--warning) var(--tint), transparent);--danger-dim: color-mix(in srgb, var(--danger) var(--tint), transparent);--success-border: color-mix(in srgb, var(--success) 55%, transparent);--warning-border: color-mix(in srgb, var(--warning) 55%, transparent);--danger-border: color-mix(in srgb, var(--danger) 55%, transparent);--danger-hover: color-mix(in srgb, var(--danger) 82%, var(--text));--google-g-blue: #4285F4;--google-g-green: #34A853;--google-g-yellow: #FBBC05;--google-g-red: #EA4335;--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")}[data-theme-switching] *,[data-theme-switching] *:before,[data-theme-switching] *:after{transition:none!important}::selection{background:var(--selection-bg)}:root{--ctl-h-sm: 2rem;--ctl-h-md: 2.5rem;--ctl-h-lg: 3rem;--ctl-px-sm: var(--space-3);--ctl-px-md: var(--space-4);--ctl-px-lg: var(--space-6);--ctl-fs-sm: var(--type-body-sm);--ctl-fs-md: var(--type-body);--ctl-fs-lg: 1.0625rem;--ctl-icon-sm: .875rem;--ctl-icon-md: 1rem;--ctl-icon-lg: 1.125rem;--ctl-gap-sm: .375rem;--ctl-gap: var(--space-2);--ctl-weight: 600;--ctl-radius: var(--r);--ctl-track-pad: 3px;--ctl-radius-inset: calc(var(--r) - 3px);--ctl-radius-token: calc(var(--ctl-h-sm) / 2);--ctl-lift: -1px;--ctl-press: .97;--ctl-press-icon: .92;--ctl-press-card: .985;--ctl-press-y: 0px}@media(pointer:coarse){:root{--ctl-h-sm: 2.5rem;--ctl-h-md: 2.75rem}}:is(.primary-btn,.ghost-btn,.back-btn,.detail-back-btn,.danger-btn,.detail-canvas-btn,.link-btn,.user-chip){--ctl-h: var(--ctl-h-md);--ctl-px: var(--ctl-px-md);--ctl-fs: var(--ctl-fs-md);--ctl-icon: var(--ctl-icon-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--ctl-gap);min-height:var(--ctl-h);padding:0 var(--ctl-px);border:1px solid transparent;border-radius:var(--ctl-radius);font-family:var(--font);font-size:var(--ctl-fs);font-weight:var(--ctl-weight);line-height:1.2;letter-spacing:0;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-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)}:is(.primary-btn,.ghost-btn,.back-btn,.detail-back-btn,.danger-btn,.detail-canvas-btn,.link-btn,.user-chip)>svg{flex:none;width:var(--ctl-icon);height:var(--ctl-icon)}:is(.primary-btn,.ghost-btn,.back-btn,.detail-back-btn,.danger-btn,.link-btn).sm{--ctl-h: var(--ctl-h-sm);--ctl-px: var(--ctl-px-sm);--ctl-fs: var(--ctl-fs-sm);--ctl-icon: var(--ctl-icon-sm);gap:var(--ctl-gap-sm)}:is(.primary-btn,.ghost-btn,.danger-btn,.detail-canvas-btn,.link-btn).lg{--ctl-h: var(--ctl-h-lg);--ctl-px: var(--ctl-px-lg);--ctl-fs: var(--ctl-fs-lg);--ctl-icon: var(--ctl-icon-lg)}:is(.primary-btn,.ghost-btn,.danger-btn,.link-btn).full{width:100%}.primary-btn,.detail-canvas-btn{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--ctl-fill-edge)}.primary-btn:hover:not(:disabled),.detail-canvas-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent);box-shadow:var(--shadow-accent)}.danger-btn{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.danger-btn:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover);color:var(--on-accent);box-shadow:0 4px 12px var(--danger-dim)}.ghost-btn,.back-btn,.detail-back-btn,.user-chip{background:var(--wash);border-color:var(--border);color:var(--text2);box-shadow:var(--sheen-top-soft)}.ghost-btn:hover:not(:disabled),.back-btn:hover:not(:disabled),.detail-back-btn:hover:not(:disabled),.user-chip:hover:not(:disabled){background:var(--wash-strong);border-color:var(--border-strong);color:var(--text);box-shadow:var(--sheen-top-soft),var(--shadow-float)}:is(.ghost-btn,.back-btn).open,:is(.ghost-btn,.back-btn)[aria-expanded=true]{background:var(--wash-strong);border-color:var(--accent-border-strong);color:var(--text)}.ghost-btn.good{color:var(--success)}.ghost-btn.danger{color:var(--danger)}.ghost-btn.good:hover:not(:disabled){color:var(--success);border-color:var(--success)}.ghost-btn.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.ghost-btn.theme-toggle:hover:not(:disabled){background:var(--preview-under, var(--preview-bg));color:var(--preview-text);border-color:var(--preview-border)}.link-btn{background:var(--accent-dim);border-color:var(--accent-border-soft);color:var(--accent)}.link-btn:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent-border-strong);color:var(--accent-hover);box-shadow:var(--shadow-float)}@media(hover:hover){:is(.primary-btn,.ghost-btn,.back-btn,.detail-back-btn,.danger-btn,.detail-canvas-btn,.link-btn,.user-chip):hover:not(:disabled){transform:translateY(var(--ctl-lift))}}:is(.primary-btn,.ghost-btn,.back-btn,.detail-back-btn,.danger-btn,.detail-canvas-btn,.link-btn,.user-chip):active:not(:disabled){transform:translateY(var(--ctl-press-y)) scale(var(--ctl-press));box-shadow:none;transition:transform var(--dur-0) var(--ease-spring)}:is(.btn-chev,.ai-followup-go){transition:transform var(--dur-2) var(--ease-out)}:is(.back-btn,.detail-back-btn)>svg:first-child{transition:transform var(--dur-2) var(--ease-out)}@media(hover:hover){:hover:not(:disabled)>:is(.btn-chev,.ai-followup-go){transform:translate(2px)}:is(.back-btn,.detail-back-btn):hover>svg:first-child{transform:translate(-2px)}}:is(.primary-btn,.detail-canvas-btn,.danger-btn):disabled{background:var(--surface3);border-color:var(--border);color:var(--text-muted);box-shadow:none;cursor:not-allowed}:is(.ghost-btn,.back-btn,.detail-back-btn,.link-btn,.icon-btn,.chip,.text-btn,.seg>button,.course-nav-btn,.styled-select-trigger,.course-selector-trigger):disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.text-btn{display:inline-flex;align-items:center;gap:var(--ctl-gap-sm);padding:0;border:0;background:none;color:var(--accent);font-family:var(--font);font-size:var(--ctl-fs-sm);font-weight:var(--ctl-weight);line-height:var(--lh-snug);text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--accent-border-soft);text-underline-offset:3px;cursor:pointer;transition:color var(--dur-2) var(--ease-out),text-decoration-color var(--dur-2) var(--ease-out)}.text-btn>svg{flex:none;width:var(--ctl-icon-sm);height:var(--ctl-icon-sm)}.text-btn:hover:not(:disabled){color:var(--accent-hover);text-decoration-color:currentColor}.text-btn.quiet{color:var(--text-muted);text-decoration-color:var(--border-strong)}.text-btn.quiet:hover:not(:disabled){color:var(--text);text-decoration-color:currentColor}.text-btn.danger:hover:not(:disabled){color:var(--danger)}.text-btn.inline{display:inline;font:inherit}@media(pointer:coarse){.text-btn:not(.inline){min-height:var(--ctl-h-sm)}}.icon-btn{--ctl-h: var(--ctl-h-md);--ctl-icon: var(--ctl-icon-lg);display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--ctl-h);height:var(--ctl-h);padding:0;border:1px solid transparent;border-radius:var(--ctl-radius);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-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)}.icon-btn.sm{--ctl-h: var(--ctl-h-sm);--ctl-icon: var(--ctl-icon-md)}.icon-btn.lg{--ctl-h: var(--ctl-h-lg)}.icon-btn>svg{flex:none;width:var(--ctl-icon);height:var(--ctl-icon)}.icon-btn:hover:not(:disabled){background:var(--ink-wash);color:var(--text)}.icon-btn.danger{color:var(--text-muted)}.icon-btn.danger:hover:not(:disabled){background:var(--danger-dim);color:var(--danger)}.icon-btn.outlined.danger{color:var(--text2)}.icon-btn.outlined{background:var(--wash);border-color:var(--border);color:var(--text2);box-shadow:var(--sheen-top-soft)}.icon-btn.outlined:hover:not(:disabled){background:var(--wash-strong);border-color:var(--border-strong);color:var(--text)}.icon-btn.outlined.danger:hover:not(:disabled){background:var(--danger-dim);border-color:var(--danger);color:var(--danger)}.icon-btn.filled{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.icon-btn.filled:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent);box-shadow:var(--shadow-accent)}.icon-btn.filled:disabled{opacity:1;background:var(--surface3);border-color:var(--border);color:var(--text-muted)}.icon-btn.active,.icon-btn[aria-pressed=true]{background:var(--accent-dim);border-color:var(--accent-border-soft);color:var(--accent)}.icon-btn:active:not(:disabled){transform:scale(var(--ctl-press-icon));box-shadow:none;transition:transform var(--dur-0) var(--ease-spring)}.seg{display:inline-flex;align-items:stretch;gap:2px;width:fit-content;max-width:100%;padding:var(--ctl-track-pad);background:var(--surface2);border:1px solid var(--border);border-radius:var(--ctl-radius)}.seg>button{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:var(--ctl-gap-sm);min-height:calc(var(--ctl-h-md) - 2 * var(--ctl-track-pad) - 2px);padding:0 var(--ctl-px-sm);border:0;border-radius:var(--ctl-radius-inset);background:transparent;color:var(--text2);font-family:var(--font);font-size:var(--ctl-fs-md);font-weight:var(--ctl-weight);line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.seg>button>svg{flex:none;width:var(--ctl-icon-sm);height:var(--ctl-icon-sm)}.seg>button:hover:not(.active):not([aria-pressed=true]):not(:disabled){background:var(--ink-wash);color:var(--text)}.seg>button:is(.active,[aria-pressed=true]){background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-soft)}.seg.ink>button:is(.active,[aria-pressed=true]){background:var(--surface4);color:var(--text);box-shadow:inset 0 0 0 1px var(--border-strong)}.seg.wide{display:flex;width:100%}.seg.wide>button{flex:1 1 0;min-width:0}.seg>button.easy.active{background:var(--success);color:var(--on-accent);box-shadow:none}.seg>button.medium.active{background:var(--warning-fill);color:var(--on-warning-fill);box-shadow:none}.seg>button.hard.active{background:var(--danger);color:var(--on-accent);box-shadow:none}.seg>button:active:not(:disabled){transform:scale(var(--ctl-press));transition:transform var(--dur-0) var(--ease-spring)}.course-nav-btn{display:flex;align-items:center;gap:var(--ctl-gap);min-height:var(--ctl-h-md);padding:0 var(--ctl-px-md);border:0;border-radius:var(--ctl-radius);background:transparent;color:var(--text2);font-family:var(--font);font-size:var(--ctl-fs-md);font-weight:var(--ctl-weight);text-align:left;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.course-nav-btn:hover:not(.active){background:var(--ink-wash);color:var(--text)}.course-nav-btn.active{background:var(--accent);color:var(--on-accent)}.course-nav-btn:active{transform:scale(var(--ctl-press));transition:transform var(--dur-0) var(--ease-spring)}.styled-select-trigger,.course-selector-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--ctl-gap);width:100%;min-height:var(--ctl-h-md);padding:0 var(--ctl-px-sm);background:var(--field-bg);border:1px solid var(--border);border-radius:var(--ctl-radius);box-shadow:var(--sheen-top-soft);color:var(--text);font-family:var(--font);font-size:var(--ctl-fs-md);font-weight:var(--ctl-weight);text-align:left;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.styled-select-trigger:hover,.course-selector-trigger:hover{border-color:var(--border-strong)}.styled-select.open .styled-select-trigger,.course-selector-trigger.open{border-color:var(--accent-border-strong);box-shadow:0 0 0 3px var(--focus-ring)}.styled-select-trigger:active,.course-selector-trigger:active{transform:scale(var(--ctl-press));transition:transform var(--dur-0) var(--ease-spring)}.styled-select.lg .styled-select-trigger{min-height:var(--ctl-h-lg);padding:0 var(--ctl-px-md)}.ai-field,.wb-field>input,.wb-textarea,.wb-short{width:100%;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--ctl-radius);box-shadow:var(--sheen-top-soft);color:var(--text);font-family:var(--font);font-size:var(--type-body);font-weight:400;transition:border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.ai-field{position:relative;display:flex;align-items:center;gap:var(--space-1);min-height:var(--ctl-h-lg);padding:0 var(--space-1)}.wb-field>input{height:var(--ctl-h-lg);padding:0 var(--ctl-px-md)}.wb-textarea,.wb-short{padding:var(--space-3) var(--ctl-px-md);line-height:var(--lh-body);resize:vertical;border-radius:min(var(--ctl-radius),var(--r2))}.wb-textarea{min-height:7rem}.wb-short{min-height:4.5rem}:is(.ai-field,.wb-field>input,.wb-textarea,.wb-short):hover{border-color:var(--border-strong)}:is(.wb-field>input,.wb-textarea,.wb-short):focus,.ai-field:has(>.ai-field-input:focus){border-color:var(--accent-border-strong);box-shadow:0 0 0 3px var(--focus-ring)}:is(.wb-field>input,.wb-textarea,.wb-short,.ai-field-input,.styled-select-input):focus-visible{outline:none!important}:is(.wb-field>input,.wb-textarea,.wb-short):disabled,.ai-field:has(>.ai-field-input:disabled){background:var(--surface2);color:var(--text-muted);cursor:default}.ai-field-input{flex:1;min-width:0;height:calc(var(--ctl-h-lg) - 2px);padding:0 var(--space-2);background:transparent;border:0;border-radius:0;color:inherit;font:inherit}.ai-field-input:disabled{background:transparent;color:inherit}.ai-field.ai-composer{align-items:flex-end;padding:calc((var(--ctl-h-lg) - 2px - var(--ctl-h-sm)) / 2) var(--space-1)}.ai-field.ai-composer>.ai-field-input{height:auto;min-height:var(--ctl-h-sm);max-height:8.5rem;padding:var(--space-1) var(--space-2);line-height:1.5;resize:none;overflow-y:auto}.ai-composer-end{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.ai-field>.ai-field-input:first-child{padding-left:calc(var(--ctl-px-md) - var(--space-1))}:is(.ai-field-input,.wb-field>input,.wb-textarea,.wb-short)::placeholder{color:var(--text-muted)}.styled-select-menu,.course-selector-menu,.studio-assignment-dropdown{display:flex;flex-direction:column;gap:2px;padding:var(--space-1);background:var(--popover-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--r2);box-shadow:var(--shadow-popover);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--surface3) transparent;animation:selectSlideIn var(--dur-2) var(--ease-out) backwards}.styled-select-group,.studio-dropdown-header{flex-shrink:0;padding:var(--space-2) var(--ctl-px-sm) var(--space-1);font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}:is(.styled-select-group,.studio-dropdown-header):not(:first-child){margin-top:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--border)}.styled-select-empty,.studio-dropdown-empty{padding:var(--space-4) var(--space-3);text-align:center;color:var(--text-muted);font-size:var(--type-meta)}.styled-select-option,.course-selector-option,.studio-dropdown-option{width:100%;min-height:var(--ctl-h-sm);padding:var(--space-2) var(--ctl-px-sm);border:0;border-radius:var(--ctl-radius-inset);background:transparent;color:var(--text2);font-family:var(--font);font-size:var(--ctl-fs-md);font-weight:500;text-align:left;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}:is(.styled-select-option,.course-selector-option,.studio-dropdown-option):hover:not(:disabled),.styled-select-option.kb-active{background:var(--ink-wash);color:var(--text)}:is(.styled-select-option,.course-selector-option,.studio-dropdown-option).active{background:var(--accent-dim);color:var(--accent);font-weight:var(--ctl-weight)}:is(.styled-select-option,.studio-dropdown-option):disabled{color:var(--text-muted);cursor:default}.course-selector-option:hover:not(:disabled){background:color-mix(in srgb,var(--course, var(--accent)) 16%,var(--surface) 84%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--course, var(--accent)) 42%,transparent);color:var(--text)}.course-selector-option.active{background:color-mix(in srgb,var(--course, var(--accent)) 13%,var(--surface) 87%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--course, var(--accent)) 34%,transparent);color:var(--text)}.chip{display:inline-flex;align-items:center;gap:var(--ctl-gap-sm);min-height:var(--ctl-h-sm);padding:0 var(--ctl-px-sm);background:var(--surface2);border:1px solid var(--border);border-radius:var(--ctl-radius-token);color:var(--text2);font-family:var(--font);font-size:var(--ctl-fs-sm);font-weight:var(--ctl-weight);line-height:1.25;text-decoration:none;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.chip>svg{flex:none;width:var(--ctl-icon-sm);height:var(--ctl-icon-sm)}.chip:not(.static):hover:not(:disabled){border-color:var(--border-strong);color:var(--text);background:var(--surface3)}.chip.active,.chip.open,.chip[aria-pressed=true]{background:var(--accent-dim);border-color:var(--accent-border-strong);color:var(--accent)}.chip:is(.good,.danger):not(.active){color:var(--text2)}.chip.good.active{background:var(--success-dim);border-color:var(--success);color:var(--success)}.chip.danger.active{background:var(--danger-dim);border-color:var(--danger);color:var(--danger)}.chip.static{cursor:default}.chip:not(.static):active:not(:disabled){transform:scale(var(--ctl-press));transition:transform var(--dur-0) var(--ease-spring)}@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{--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-column: 34rem;--tap-target: 2.75rem;--r: 8px;--r2: 12px;--r3: 16px;--type-eyebrow: .8125rem;--type-meta: .875rem;--type-body-sm: .9375rem;--type-body: 1rem;--type-body-lg: 1.125rem;--type-title: 1.25rem;--type-headline: clamp(1.5rem, 1.25rem + 1.1vw, 1.75rem);--type-display: clamp(2rem, 1.5rem + 2.4vw, 2.75rem);--type-hero: clamp(2.25rem, 1rem + 3vw, 3.375rem);--type-wordmark: 1.5rem;--lh-tight: 1.15;--lh-snug: 1.35;--lh-body: 1.65;--fw-label: 700;--fw-title: 600;--fw-body: 400;--ls-eyebrow: .06em;--ls-title: -.01em;--ls-display: -.025em;--type-section: .9375rem;--ls-section: .08em;--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;--tag-pad: .125rem var(--space-2);--tag-radius: var(--card-radius-chip);--elev-row: var(--shadow-soft);--elev-card: var(--shadow-card);--elev-float: var(--shadow-popover);--ease-out: cubic-bezier(.16, 1, .3, 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;--stagger-step: 30ms;--stagger-step-fast: 20ms;--stagger-cap: 7}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:100%;overflow-y:scroll;scrollbar-gutter:stable;background:var(--bg)}html[data-role=parent],html[data-role=teacher]{font-size:112.5%}body{position:relative;font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal;line-height:var(--lh-body);letter-spacing:0}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.3 0 0 0 0 0.3 0 0 0 0 0.3 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(--accent)}a:hover{color:var(--accent-hover)}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--accent);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,.canvas-html-content,.account-profile-email,input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.fade-in{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards}.delay-children .fade-in,.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}.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(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step))}.mo-stagger-fast{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}.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:where(:not(.mo-lift)){transition:transform var(--dur-2) var(--ease-out)}.mo-press:active:not(:disabled){transform:scale(var(--press, .97));transition:transform var(--dur-0) var(--ease-spring)}.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-pop{animation:popIn var(--dur-2) var(--ease-out) backwards}.mo-success{animation:successPop var(--dur-3) var(--ease-out) backwards}.mo-settle{animation:countSettle var(--dur-3) var(--ease-out) backwards}.mo-rise{animation:pair-rise var(--dur-3) var(--ease-out) backwards}.mo-scrim{animation:pair-fade var(--dur-2) var(--ease-out) backwards}.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}.mo-chars.mo-stagger{animation:none}.mo-rotate{transition:transform var(--dur-1) var(--ease-out)}[aria-expanded=true] .mo-rotate,.open .mo-rotate,.mo-rotate.is-open,details[open] .mo-rotate,[open]>*>.mo-rotate,.flip.mo-rotate{transform:rotate(180deg)}.mo-icon-spin{animation:spin .8s linear infinite}.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:fadeIn var(--dur-2) var(--ease-in) reverse forwards}.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(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}.mt-2{margin-top:var(--space-2)}.error-text{color:var(--danger);font-size:var(--type-meta);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(--text)}.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)}@media(min-width:761px){.topbar{display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);column-gap:var(--space-4);justify-items:start}.topbar-right{justify-self:end}}.logo{font-family:var(--font-display);font-size:var(--type-wordmark);font-weight:500;letter-spacing:-.015em;color:var(--text)}.wm-dot{color:var(--text2)}.logo-small{font-family:var(--font-display);font-size:var(--type-body);font-weight:700;color:var(--text2);letter-spacing:-.015em}.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(--text-muted);font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.av-sm{width:28px;height:28px;border-radius:50%;overflow:hidden;background:var(--surface3);display:flex;align-items:center;justify-content:center;color:var(--text2)}.av-sm img{width:100%;height:100%;object-fit:cover}.uname{color:var(--text2-bright)}.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-10)}.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:var(--type-hero);font-weight:var(--fw-title);line-height:var(--lh-tight);letter-spacing:var(--ls-display);text-wrap:balance;margin-bottom:var(--space-3)}.welcome p{max-width:34rem;font-size:var(--type-body);line-height:var(--lh-body);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(--accent);background:var(--accent-dim)}.glance-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--type-display);font-weight:var(--fw-title);line-height:var(--lh-tight);letter-spacing:var(--ls-display);color:var(--text)}.glance-label{font-size:var(--type-eyebrow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.glance-card-attention .glance-value{color:var(--danger)}.glance-grid.has-gpa{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.glance-sub{font-size:var(--type-meta);font-weight:600;color:var(--text-muted)}.glance-cluster{display:flex;flex-direction:column;gap:var(--card-gap);align-self:end}.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{flex-shrink:0;width:10px;height:10px;border-radius:2px}.course-card .cc-top{gap: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;overflow-wrap:anywhere;padding-right:var(--space-2);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(--text-muted)}.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;margin-left:auto;border:1px solid transparent;white-space:nowrap}.cc-grade.good{background:var(--success-dim);color:var(--success);border-color:var(--success-border)}.cc-grade.okay{background:var(--warning-dim);color:var(--warning);border-color:var(--warning-border)}.cc-grade.bad{background:var(--danger-dim);color:var(--danger);border-color:var(--danger-border)}.cc-tograde{flex-shrink:0;padding:.4rem .65rem;border:1px solid var(--warning-border);border-radius:var(--card-radius-chip);background:var(--warning-dim);color:var(--warning);font-size:var(--type-meta);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.cc-tograde.is-clear{background:var(--success-dim);color:var(--success);border-color:var(--success-border)}.cc-arrow{color:var(--text-muted);flex-shrink:0}.refresh-row{text-align:center;margin-top:var(--space-6)}.dashboard-content,.asgn-group-list{counter-reset:dashsec}.section-heading{display:flex;align-items:center;gap:var(--space-3);font-size:var(--type-section);font-weight:var(--fw-label);letter-spacing:var(--ls-section);text-transform:uppercase;color:var(--text);margin-bottom:var(--space-5)}.dashboard-content .section-heading:before,.asgn-group-list .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:var(--type-body);letter-spacing:0;color:var(--text-muted)}.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}.welcome-copy>.role-chip{margin-bottom:var(--space-3)}.role-card{margin:0}.workshop-header.role-card-head{gap:var(--space-4);margin-bottom:var(--space-5)}.dashboard-content:has(>.parent-home){max-width:72rem}.dashboard-content:has(>.parent-class),.parent-class-content{max-width:48rem}.parent-home{display:flex;flex-direction:column;gap:var(--space-9)}.parent-welcome>.role-chip{margin-bottom:var(--space-4)}.welcome .parent-verdict{display:flex;align-items:flex-start;gap:var(--space-3);margin:0;font-size:var(--type-headline);line-height:var(--lh-tight);letter-spacing:var(--ls-title);text-wrap:balance}.parent-verdict svg{flex-shrink:0;width:.8em;height:.8em;margin-top:.12em}.parent-verdict.is-missing svg{color:var(--danger)}.parent-verdict.is-clear svg{color:var(--success)}.welcome .parent-summary{margin:var(--space-3) 0 0;max-width:40rem;font-size:var(--type-body-lg);line-height:var(--lh-snug);color:var(--text2);text-wrap:pretty}.welcome .parent-note,.parent-note{margin:var(--space-3) 0 0;max-width:none;font-size:var(--type-body);line-height:var(--lh-body);color:var(--text2)}.parent-section>.parent-note:first-of-type{margin:0 0 var(--space-4)}.parent-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-9);align-items:start}@media(min-width:960px){.parent-columns{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);grid-auto-flow:row dense;column-gap:var(--space-8)}.parent-col-main{grid-column:1}.parent-col-side{grid-column:2;grid-row:1 / span 2}}.parent-section{margin:0;min-width:0}.parent-heading{font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);line-height:var(--lh-tight);letter-spacing:var(--ls-title);color:var(--text);text-wrap:balance;margin:0 0 var(--space-3)}.parent-empty{margin:0;padding:var(--space-5);font-size:var(--type-body);color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius-row)}.parent-list,.parent-day-items{list-style:none;margin:0;padding:0}.parent-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius-row);overflow:hidden}.parent-list>li+li,.parent-day-items>li+li{border-top:1px solid var(--border)}.parent-row{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:4rem;padding:var(--space-3) var(--space-5);background:transparent;border:none;font-family:var(--font);text-align:left;color:var(--text);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}.parent-row:hover{background:var(--accent-dim)}.parent-row:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.parent-row:active{background:var(--accent-dim)}.parent-row-text{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.parent-row-title{font-size:var(--type-body-lg);font-weight:var(--fw-title);line-height:var(--lh-snug);color:var(--text)}.parent-row-title,.parent-row-meta{overflow-wrap:anywhere}.parent-row-meta{font-size:var(--type-body);line-height:var(--lh-snug);color:var(--text2)}.parent-flag{flex-shrink:0;font-size:var(--type-body);font-weight:700;color:var(--danger)}.parent-pct{flex-shrink:0;font-size:var(--type-body-lg);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.parent-pct.bad{color:var(--danger)}.parent-status{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--type-body);font-weight:600;line-height:var(--lh-snug);color:var(--text2)}.parent-status-dot{flex-shrink:0;width:.625rem;height:.625rem;border-radius:50%;background:var(--text-muted)}.parent-status.is-good .parent-status-dot{background:var(--success)}.parent-status.is-okay .parent-status-dot{background:var(--warning)}.parent-status.is-bad .parent-status-dot{background:var(--danger)}.parent-row-go{color:var(--text-muted);flex-shrink:0}.parent-day-head{margin:0;padding:var(--space-3) var(--space-5) var(--space-2);font-family:var(--font);font-size:var(--type-body);font-weight:700;line-height:var(--lh-snug);color:var(--text);background:var(--surface2);border-bottom:1px solid var(--border)}.parent-more{margin-top:var(--space-3);font-size:var(--type-body)}.parent-class-head{display:flex;flex-direction:column;gap:var(--space-3)}.parent-class-title{display:flex;align-items:baseline;gap:var(--space-3);margin:0;font-family:var(--font-display);font-size:var(--type-headline);font-weight:var(--fw-title);line-height:var(--lh-tight);letter-spacing:var(--ls-title);text-wrap:balance}.parent-class-dot{flex-shrink:0;width:.5em;height:.5em;border-radius:50%;transform:translateY(-.08em)}.parent-class-grade{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-4);row-gap:var(--space-1)}.parent-class-pct{font-family:var(--font-display);font-size:var(--type-headline);font-weight:var(--fw-title);font-variant-numeric:tabular-nums;color:var(--text)}.parent-class-letter{color:var(--text2)}.parent-class-grade .parent-status{font-size:var(--type-body-lg)}.parent-class-links{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--border)}.parent-back{margin-bottom:var(--space-5);font-size:var(--type-body)}@media(max-width:600px){.parent-home,.parent-columns{gap:var(--space-8)}.welcome .parent-verdict{gap:var(--space-2)}.welcome .parent-summary{font-size:var(--type-body)}.parent-heading{font-size:var(--type-body-lg)}.parent-row{padding:var(--space-3) var(--space-4);gap:var(--space-3)}.parent-day-head{padding-inline:var(--space-4)}}.cc-text{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.cc-note{font-size:var(--type-meta);font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--card-radius-row);box-shadow:var(--elev-row);overflow:hidden}.week-day{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;min-height:12rem;padding:var(--space-3)}.week-day+.week-day{border-left:1px solid var(--border)}.week-day.is-empty{background:var(--surface2)}.week-day-head{display:flex;align-items:baseline;gap:var(--space-2);margin:0 0 var(--space-1);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.week-date{font-family:var(--font-display);font-size:var(--type-headline);font-weight:var(--fw-title);line-height:1;letter-spacing:var(--ls-title);font-variant-numeric:tabular-nums;color:var(--text)}.week-dow{font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.week-day.is-today .week-date,.week-day.is-today .week-dow{color:var(--accent)}.week-day.is-today .week-day-head{border-bottom-color:var(--accent)}.week-items{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.week-item{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);font-family:var(--font);text-align:left;cursor:pointer;transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.week-item:hover{background:var(--accent-dim);border-color:var(--accent)}.week-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.week-item-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--type-body-sm);font-weight:700;line-height:var(--lh-snug);color:var(--text);overflow-wrap:anywhere}.week-item-course{overflow:hidden;font-size:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis}.week-item-course:before{content:"";display:inline-block;width:8px;height:8px;margin-right:var(--space-1);border-radius:2px;background:var(--c, var(--border-strong));vertical-align:.05em}.week-none{margin:0;font-size:var(--type-meta);color:var(--text-muted)}.week-more{align-self:flex-start}@media(max-width:1180px){.week-grid{grid-template-columns:1fr}.week-day{display:grid;grid-template-columns:3.5rem minmax(0,1fr);column-gap:var(--space-3);row-gap:var(--space-2);min-height:0}.week-day+.week-day{border-left:none;border-top:1px solid var(--border)}.week-day-head{grid-row:1 / span 2;flex-direction:column;align-items:flex-start;gap:var(--space-1);margin:0;padding:0;border-bottom:none}.week-items,.week-none,.week-more{grid-column:2}.week-none{align-self:center}}.deadlines-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);color:var(--text-muted);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;gap:var(--card-grid-gap)}.deadline-rows{display:flex;flex-direction:column;gap:var(--space-2)}.deadline-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--elev-card);font-family:var(--font);color:var(--text);cursor:pointer;text-align:left;width:100%;--dl-title: var(--type-body-lg);transition:background 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)}.deadline-item .dl-color,.deadline-item .mo-settle,.deadline-item .dl-lock{animation:none}.deadline-item:hover{background:var(--surface2);border-color:var(--border-strong);box-shadow:var(--shadow-card-hover)}.deadline-item.is-locked .dl-name{color:var(--text2)}.deadline-item.is-locked .asgn-points-bubble,.asgn-card.is-locked .asgn-points-bubble{background:transparent;border-color:var(--border);color:var(--text2)}.deadline-item.is-locked .asgn-points-bubble span,.asgn-card.is-locked .asgn-points-bubble span{color:var(--text-muted)}.deadline-group-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-3) 0 0;padding:0 var(--space-1)}.deadline-group-head:first-child{margin-top:0}.deadline-group-label{display:flex;align-items:baseline;gap:var(--space-2);margin:0;font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.deadline-group-count{font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--text-muted)}.attention-section .section-heading:before,.asgn-group.past-due .section-heading:before{color:var(--danger)}.deadline-note{margin:var(--space-2) 0 0;font-size:var(--type-meta);color:var(--text-muted)}.courses-break-note{margin:0 0 var(--space-3);max-width:64ch;line-height:var(--lh-body)}.deadline-skeleton{cursor:default;justify-content:space-between;pointer-events:none}.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(8px)}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:calc((var(--dl-title, var(--type-body)) * var(--lh-snug) - 10px) / 2);animation:popIn var(--dur-2) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step))}.dl-info{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--space-3)}.dl-name{display:block;min-width:0;font-family:var(--font-display);font-size:var(--dl-title);font-weight:var(--fw-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-meta{display:flex;align-items:baseline;gap:var(--space-3);min-width:0;flex-shrink:3}.dl-course{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-eyebrow);color:var(--text-muted);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.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;flex:1;min-width:0}.workshop-card{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-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.styled-select-label.placeholder{color:var(--text-muted);font-weight:500}.styled-select-chevron{flex-shrink:0;color:var(--text-muted);transition:transform var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.styled-select.open .styled-select-chevron{transform:rotate(180deg);color:var(--accent)}.styled-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:200;max-height:min(320px,calc(100vh - 24px));overflow-y:auto;transform-origin:top center}.styled-select-menu.menu-flip{top:auto;bottom:calc(100% + 6px);transform-origin:bottom center}.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(--text-muted)}.styled-select-option{display:flex;align-items:center;gap:.5rem;flex-shrink:0;line-height:var(--lh-body);overflow:hidden}.styled-select-option-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.styled-select-option .asgn-lock-label{margin-left:auto;flex-shrink:0;font-size:var(--type-meta);padding:var(--tag-pad)}.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 color-mix(in srgb,var(--shadow-ink) 22%,transparent),0 4px 16px color-mix(in srgb,var(--shadow-ink) 16%,transparent)!important;border-radius:var(--r2)!important;animation:none!important;opacity:0;transform:scale(.96) translateY(8px);transform-origin:top center;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);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:var(--type-body);color:var(--text)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-day-name{text-align:center;font-size:var(--type-eyebrow);font-weight:700;color:var(--text-muted);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:var(--r);color:var(--text);font-family:var(--font);font-size:var(--type-meta);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(--accent);font-weight:700;background:var(--accent-dim)}.cal-day.selected{background:var(--accent);color:var(--on-accent);font-weight:700;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 40%,transparent)}.cal-day.empty{cursor:default}.ai-summary-text{font-size:var(--type-body);line-height:var(--lh-body);color:var(--text);white-space:pre-wrap;word-break:break-word}.ai-link{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-border-strong);text-underline-offset:3px;font-weight:600;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-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.ai-link:hover{text-decoration-color:var(--accent);color:var(--accent-hover)}.ai-summary-empty{color:var(--text-muted)!important;font-style:italic}.ai-summary-loading{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);padding:.5rem 0}.ai-summary-loading p{font-size:var(--type-meta);margin:0}.ai-summary-error{color:var(--danger);font-size:var(--type-meta);margin:0}.course-hero{margin-bottom:1.75rem}.hero-bar{width:40px;height:4px;border-radius:3px;margin-bottom:.75rem}.hero-name{font-size:var(--type-hero);font-weight:var(--fw-title);line-height:var(--lh-tight);color:var(--text)!important}.hero-grade{font-size:var(--type-headline);font-weight:800;display:flex;align-items:baseline;gap:.4rem}.hero-grade span{font-size:var(--type-meta);font-weight:600;color:var(--text-muted)}.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:var(--type-eyebrow);font-weight:var(--fw-label);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);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,.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);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-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.asgn-card.clickable{cursor:pointer}.asgn-card.clickable:hover{border-color:var(--border-strong);background:var(--surface2)}.asgn-card.is-locked h4{color:var(--text2)}.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(--text-muted)}.asgn-open{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;align-self:center;color:var(--text-muted)}.asgn-open-hint{font-size:var(--type-meta);font-weight:var(--fw-title)}.asgn-card.clickable:hover .asgn-open{color:var(--accent)}.expand-icon{color:var(--text-muted);transition:transform var(--dur-2) var(--ease-out)}.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;background:var(--bg)}.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)}.topbar.setup-topbar{display:flex}.setup-topbar .topbar-right{gap:var(--space-2)}.setup-topbar .lang-switch{margin-bottom:0}@media(max-width:360px){.topbar.setup-topbar{padding-inline:var(--space-3)}.setup-topbar .topbar-brand{flex-shrink:0}.setup-topbar .topbar-right{gap:var(--space-1)}.setup-topbar .seg>button{padding-inline:var(--space-1)}}.setup-page:has(>.setup-restoring){display:flex;align-items:center;justify-content:center}.setup-main{width:100%;max-width:calc(var(--setup-column) + 2 * var(--space-6));margin:0 auto;padding:clamp(var(--space-7),9vh,6rem) var(--space-6) var(--space-8)}.setup-main :is(input,button,a,video){scroll-margin-top:calc(64px + var(--space-4))}.setup-step-label{margin-bottom:var(--space-5)}.setup-step-num,.setup-step-total{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:var(--type-body);letter-spacing:0;text-transform:none;color:var(--text-muted);font-variant-numeric:tabular-nums}.setup-step-label:after{order:1}.setup-step-total{order:2}.setup-main 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-main h1+.link-btn{margin-top:var(--space-5)}.setup-main h1.welcome-title{font-size:var(--type-hero)}.setup-main .sub{font-size:var(--type-body);color:var(--text2);margin-bottom:var(--space-6);line-height:var(--lh-body);text-wrap:pretty}.setup-step{animation:fadeSlideUp var(--dur-3) var(--ease-out)}.setup-start>.setup-account-link{display:flex;width:fit-content;margin:var(--space-4) 0 0}.setup-gist{list-style:none;margin:var(--space-4) 0 var(--space-6);padding:0;display:grid;gap:var(--space-2)}.setup-gist li{display:flex;align-items:flex-start;gap:var(--space-3);color:var(--text);font:500 var(--type-body)/var(--lh-snug) var(--font)}.setup-gist svg{flex:none;margin-top:.1em;color:var(--text-muted)}.setup-role{margin:var(--space-4) auto 0;max-width:38ch;color:var(--text-muted);font:600 var(--type-meta)/var(--lh-snug) var(--font);text-align:center;text-wrap:balance}.setup-restoring{margin:0;color:var(--text2);font:600 var(--type-body)/var(--lh-snug) var(--font)}@media(max-width:480px){.setup-main .sub,.setup-gist{margin-bottom:var(--space-4)}.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:var(--type-meta);color:var(--text-muted);line-height:var(--lh-body);margin:0}.ext-connect .err{margin-top:var(--space-2)}.ext-progress{height:6px;margin:0 0 var(--space-2);border-radius:999px;background:var(--surface3);overflow:hidden}.ext-progress-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width var(--dur-3) var(--ease-out)}.ext-hint{color:var(--text)}.ext-recommend{margin-bottom:var(--space-5)}.ext-recommend .ext-btn{white-space:normal;text-wrap:balance;padding-block:var(--space-2)}.ext-waiting{display:flex;align-items:flex-start;gap:var(--space-2)}.ext-waiting svg{flex:none;margin-top:.3em}.setup-manual-link{display:flex;width:fit-content;max-width:100%;margin:var(--space-4) 0 0;white-space:normal;text-align:left;text-wrap:pretty}.ext-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-1);color:var(--text-muted)}.ext-divider:before,.ext-divider:after{content:"";flex:1;height:1px;background:var(--border)}.ext-divider span{font-size:var(--type-meta);letter-spacing:.04em}.lang-switch{margin-bottom:var(--space-4)}.lang-switch.compact{margin-bottom:0}.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:var(--type-body-sm);font-weight:600;color:var(--text)}.setup-steps{list-style:none;padding:0;margin:0 0 var(--space-5);gap:0;border-top:1px solid var(--rule)}.setup-steps .ms{padding:var(--space-3) 0;background:none;border:0;border-bottom:1px solid var(--rule);border-radius:0;font-size:var(--type-body-sm);line-height:var(--lh-body);align-items:baseline}.setup-steps .num{min-width:1.5rem;height:auto;justify-content:flex-start;background:none;color:var(--text-muted);font-family:var(--font-display);font-style:italic;font-weight:600;font-size:var(--type-body);font-variant-numeric:tabular-nums}.setup-watch{margin:0 0 var(--space-4)}.setup-watch-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);background:var(--wash-soft);border:1px solid var(--border);border-radius:var(--r);font-family:var(--font);font-size:var(--type-body-sm);font-weight:600;color:var(--text2-bright);text-align:left;cursor:pointer;transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.setup-watch-btn:hover{background:var(--accent-dim);border-color:var(--border-strong);color:var(--text)}.setup-watch-thumb{position:relative;flex:none;width:96px;aspect-ratio:16 / 9;border-radius:calc(var(--r) - 4px);overflow:hidden;background:var(--surface3)}.setup-watch-thumb img{display:block;width:100%;height:100%;object-fit:cover}.setup-watch-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:var(--accent);color:var(--on-accent);box-shadow:0 1px 4px color-mix(in srgb,var(--shadow-ink) 35%,transparent)}.setup-watch-video{display:block;width:100%;aspect-ratio:16 / 9;border:1px solid var(--border);border-radius:var(--r);background:var(--surface3)}.setup-watch-foot{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2);font-size:var(--type-meta);color:var(--text-muted)}.setup-watch-hide{flex:none}.setup-agree{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);font-size:var(--type-body-sm);line-height:var(--lh-body);color:var(--text2);cursor:pointer}.setup-agree input[type=checkbox]{width:1.05rem;height:1.05rem;margin-top:.15rem;flex:none;accent-color:var(--accent);cursor:pointer}.setup-agree a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.setup-agree a:hover{text-decoration:none}.app-legal{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin:var(--space-6) 0 var(--space-5)}.app-legal-mark{font-size:var(--type-title)}.app-legal-links{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.app-legal-links>span{color:var(--text-muted)}.field input{width:100%;height:var(--ctl-h-lg);padding:0 var(--space-4);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}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}::placeholder{color:var(--text-muted);opacity:1}.field input::placeholder{color:var(--text-muted)}.hint{display:block;font-size:var(--type-body-sm);color:var(--text-muted);margin-top:var(--space-2);line-height:var(--lh-body)}.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(--text-muted);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:var(--type-meta)}.school-opt-host{font-size:var(--type-meta);color:var(--text-muted);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.school-picked{display:block;font-size:var(--type-body-sm);color:var(--text2);margin-top:var(--space-2);line-height:var(--lh-body);text-wrap:pretty}.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{width:100%;margin-bottom:var(--space-4)}.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:var(--type-body);color:var(--text2-bright);line-height:var(--lh-body)}.ms strong{color:var(--text)}.num{min-width:28px;height:28px;border-radius:999px;background:var(--text);color:var(--bg);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--type-meta);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:var(--type-body-sm);display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);line-height:var(--lh-body)}.err>svg{flex-shrink:0}.setup-connected{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-5);padding:var(--space-3) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.setup-connected-text{display:flex;flex-direction:column;min-width:0}.setup-connected-text strong{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);overflow-wrap:anywhere}.setup-connected-text span{font-size:var(--type-meta);line-height:var(--lh-snug);color:var(--text-muted);overflow-wrap:anywhere}.avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--surface3);display:flex;align-items:center;justify-content:center;color:var(--text2);flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.btn-pair{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.btn-pair .primary-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(--text-muted);border-radius:50%;animation:spin .7s linear infinite}.loader p{font-size:var(--type-meta);color:var(--text-muted)}.empty{text-align:center;padding:var(--space-9);color:var(--text-muted)}.empty p{margin-top:var(--space-2);font-size:var(--type-body-sm)}.reconnect{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--text-muted)}.reconnect p{max-width:42ch;margin:var(--space-2) 0 0;font-size:var(--type-body-sm);text-wrap:pretty}.reconnect .reconnect-title{margin-top:var(--space-3);font-size:var(--type-body);font-weight:var(--fw-title);color:var(--text)}.reconnect-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-5)}.reconnect-actions>.link-btn{width:auto;margin-bottom:0}.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:var(--border-strong);border-radius:12px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.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;font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;padding:var(--tag-pad);border-radius:var(--tag-radius);border:1px solid transparent}.asgn-badge.submitted{background:var(--success-dim);color:var(--success);border-color:var(--success-border)}.asgn-lock-label,.dl-lock{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--type-meta);font-weight:600;color:var(--text2)}.asgn-lock-label svg,.dl-lock svg{flex-shrink:0}.asgn-lock-label.closed,.dl-lock.closed{color:var(--danger)}.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:var(--type-body);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:var(--type-eyebrow);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.asgn-points-bubble.bubble-md{width:6.25rem;justify-content:center}.asgn-points-bubble.bubble-lg{width:8.125rem;justify-content:center}.asgn-points-bubble.bubble-compact{font-size:var(--type-body-sm);padding:.45rem 0 .35rem}.asgn-points-bubble.graded{background:var(--success-dim);color:var(--success);border-color:var(--success-border)}.asgn-points-bubble.graded span{color:var(--success)}.asgn-points-bubble.submitted{background:var(--success-dim);color:var(--success);border-color:var(--success-border)}.asgn-points-bubble.submitted span{color:var(--success)}.asgn-points-bubble.danger{background:var(--danger-dim);color:var(--danger);border-color:var(--danger-border)}.asgn-points-bubble.danger span{color:var(--danger)}.asgn-grade-bar{width:50px;height:3px;background:var(--border);border-radius:999px;overflow:hidden}.asgn-grade-fill{height:100%;border-radius:999px;transition:width var(--dur-3) var(--ease-out)}.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:var(--type-meta);color:var(--text2);line-height:var(--lh-body);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(--text-muted);font-size:var(--type-meta)}.asgn-detail-view{display:flex;flex-direction:column;gap:var(--space-8)}.detail-back-btn{align-self:flex-start}.detail-header-card{border:1px solid var(--border);border-radius:var(--card-radius);position:relative;box-shadow:var(--elev-card)}.detail-header-body{padding:var(--card-pad-lg);display:flex;flex-direction:column;gap:var(--card-gap)}.detail-title{font-size:var(--type-display);font-weight:var(--fw-title);line-height:var(--lh-snug);color:var(--text);text-wrap:balance}.detail-header-body>.hero-bar{margin-bottom:0}.detail-ledger{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);margin-top:var(--space-1);padding-top:var(--space-4);border-top:1px solid var(--border)}.detail-ledger-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);min-width:0}.detail-ledger-item{display:inline-flex;align-items:baseline;gap:var(--space-3);min-width:0}.detail-ledger-label{font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.detail-ledger-value{min-width:0;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);overflow-wrap:anywhere}.detail-ledger-value.muted{font-weight:var(--fw-title);color:var(--text2)}.detail-ledger-stamps{display:flex;gap:var(--space-2);margin-left:auto}.detail-help{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);margin-top:var(--space-1);padding-top:var(--space-4);border-top:1px solid var(--border)}.detail-help-text{flex:1 1 18rem;margin:0;font-size:var(--type-meta);color:var(--text2)}.locked-submission-inner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.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;color:var(--text2);font-size:var(--type-body);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:var(--type-headline);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:var(--type-meta);font-weight:600;color:var(--text-muted)}.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(--text-muted);margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.detail-empty-desc{color:var(--text2);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.detail-empty-desc p{font-size:var(--type-body);line-height:var(--lh-body);margin:0}.detail-cta-row{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--border);text-align:center}.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:var(--type-headline)!important}.canvas-html-content h2{font-size:var(--type-title)!important}.canvas-html-content h3{font-size:var(--type-body-lg)!important}.canvas-html-content p,.canvas-html-content div{margin:0 0 1rem!important;padding:0!important}.canvas-html-content:not(.assignment-prose) 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(--accent-dim);color:var(--accent);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 var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out);margin:1px 4px 1px 0;border:1px solid var(--accent-border-soft);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:not(.assignment-prose) 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(--accent);color:var(--on-accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 25%,transparent)}.canvas-html-content a.home-btn-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border-soft);border-radius:999px;padding:.55rem 1.15rem;margin:.3rem .5rem .3rem 0;font-weight:600;font-size:var(--type-body-sm);text-decoration:none;vertical-align:middle;max-width:100%;box-sizing:border-box;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-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.canvas-html-content a.home-btn-link:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent);transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 25%,transparent)}.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:var(--type-body-sm)!important;font-weight:600!important;border-radius:999px!important;text-decoration:none!important;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-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)!important;border:1px solid var(--accent-border-soft)!important;background:var(--accent-dim)!important;color:var(--accent)!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(--accent)!important;border-color:var(--accent)!important;color:var(--on-accent)!important;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 25%,transparent)!important}.canvas-html-content .btn-primary,.canvas-html-content .Button--accent{background:var(--accent)!important;color:var(--on-accent)!important;border-color:var(--accent)!important}.canvas-html-content .btn-primary:hover,.canvas-html-content .Button--accent:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}.canvas-html-content .btn-success,.canvas-html-content .Button--success{background:var(--success-dim)!important;color:var(--success)!important;border-color:var(--success-border)!important}.canvas-html-content .btn-danger,.canvas-html-content .Button--danger{background:var(--danger-dim)!important;color:var(--danger)!important;border-color:var(--danger-border)!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{margin-top:calc(var(--space-2) - var(--space-6));margin-bottom:var(--space-5)}.submission-form{display:flex;flex-direction:column;gap:var(--space-4);animation:fadeIn var(--dur-3) var(--ease-out)}.submission-input-group{display:flex;flex-direction:column;gap:var(--space-2)}.submission-input-group label{font-size:var(--type-eyebrow);font-weight:var(--fw-label);text-transform:uppercase;color:var(--text-muted);letter-spacing:var(--ls-eyebrow)}.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:var(--type-body);resize:vertical;line-height:var(--lh-body)}.submission-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.submission-url-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);height:var(--ctl-h-lg);padding:0 var(--space-4);font-family:var(--font);font-size:var(--type-body)}.submission-url-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.submission-dropzone{border:1.5px dashed var(--border-strong);background:var(--wash-faint);border-radius:var(--r);padding:var(--space-8) var(--space-4);text-align:center;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-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3)}.submission-dropzone:hover,.submission-dropzone.dragover{border-color:var(--accent);background:var(--surface3)}.dropzone-icon{box-sizing:content-box;width:22px;height:22px;padding:11px;border-radius:var(--r2);background:var(--surface3);color:var(--text2);box-shadow:var(--sheen-top),0 14px 24px color-mix(in srgb,var(--shadow-ink) 8%,transparent);transition:transform var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.submission-dropzone:hover .dropzone-icon,.submission-dropzone.dragover .dropzone-icon{transform:translateY(-1px) scale(1.03);background:color-mix(in srgb,var(--accent-dim) 92%,transparent)}@media(hover:none){.submission-dropzone:hover .dropzone-icon{transform:none}}.dropzone-title{font-weight:700;font-size:var(--type-body);color:var(--text);margin:0}.dropzone-subtitle{font-size:var(--type-meta);line-height:var(--lh-body);color:var(--text-muted);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(--accent);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(--text-muted);font-variant-numeric:tabular-nums}.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:var(--type-meta);color:var(--text-muted);text-align:center}.submission-canvas-note a{color:var(--accent);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:var(--type-body-sm);line-height:var(--lh-body);max-width:46ch;margin:0}.detail-canvas-link-plain{margin-top:var(--space-1)}.my-submission-meta{margin:0;font-size:var(--type-meta);color:var(--text2);font-variant-numeric:tabular-nums}.my-submission-late{color:var(--danger);font-weight:600}ul.my-submission-files{list-style:none;padding:0;margin:var(--space-3) 0 0}.my-submission-files .ghost-btn{flex-shrink:0}.my-submission-text{margin-top:var(--space-3);padding:var(--card-pad-compact);background:var(--surface2);border:1px solid var(--border);border-radius:var(--card-radius-row);max-height:20rem;overflow:auto}.my-submission-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);max-width:100%;color:var(--accent);font-weight:600;text-decoration:none}.my-submission-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-submission-link:hover span{text-decoration:underline}.my-submission-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.submission-resubmit-note{margin:0 0 var(--space-2);font-size:var(--type-meta);color:var(--text2)}.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 var(--dur-3) var(--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(--warning-dim);color:var(--warning)}.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:var(--type-body);font-weight:700;margin-bottom:var(--space-6);line-height:var(--lh-snug)}.course-nav{display:flex;flex-direction:column;gap:var(--space-1)}.course-content-area{flex:1;min-width:0}.asgn-group{margin-bottom:var(--space-8)}.module-item-link{display:flex;align-items:center;gap:var(--space-3);background:var(--surface);text-decoration:none;color:var(--text);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-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out);border:1px solid transparent}.module-item-link:hover{background:var(--surface3);border-color:var(--border);transform:translateY(-1px)}.module-icon{color:var(--text2);opacity:.8;display:flex}.module-title{flex:1;font-size:var(--type-body);font-weight:500}.module-points{font-size:var(--type-meta);color:var(--text2);font-weight:600;background:var(--wash);padding:var(--space-1) var(--space-2);border-radius:999px}.module-arrow{color:var(--text-muted);opacity:0;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);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}}@media(max-width:600px){.content{padding:1rem}.setup-main{max-width:none;padding:var(--space-6) var(--space-4) var(--space-7)}.setup-main h1,.setup-main h1.welcome-title,.welcome h1,.hero-name{font-size:var(--type-display)}.ms{font-size:var(--type-body-sm);padding:var(--space-3)}.uname,.theme-toggle-label{display:none}.theme-toggle{width:var(--ctl-h);padding-inline:0}.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(--text-muted);font-size:var(--type-meta)}.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:var(--type-meta);color:var(--text2)}.wb-sync-banner.danger{color:var(--danger);border-color:var(--danger)}.wb-sync-banner.org-bar{position:relative;flex-direction:column;align-items:stretch;gap:2px;overflow:hidden;padding-bottom:calc(var(--space-2) + 3px)}.org-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.org-label{flex:1 1 auto;min-width:0}.org-count{flex:0 0 auto;font-size:var(--type-meta);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text2)}.org-item{margin-left:calc(10px + var(--space-2));font-size:var(--type-meta);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-pause{width:10px;height:10px;flex-shrink:0;box-sizing:border-box;border-left:3px solid var(--text-muted);border-right:3px solid var(--text-muted)}.org-track{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--surface3)}.org-fill{height:100%;background:var(--success);transition:width var(--dur-3) var(--ease-out)}.org-bar.paused .org-fill{background:var(--text-muted)}.wb-controls{display:flex;align-items:center;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4)}.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:flex-start;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:var(--border-strong);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(--surface3);color:var(--text2)}.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(--text-muted);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:var(--type-title);font-weight:var(--fw-title);color:var(--text)}.wb-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.wb-bar .course-selector-container{flex:0 1 26rem;min-width:0;margin-bottom:0}.wb-files-btn{flex:0 0 auto;margin-left:auto}.wb-files-count{padding:0 6px;font-size:var(--type-eyebrow);font-weight:var(--fw-label);line-height:var(--lh-body);font-variant-numeric:tabular-nums;color:var(--warning);background:var(--warning-dim);border:1px solid var(--warning);border-radius:var(--card-radius-chip)}.wb-stage{min-width:0;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--card-pad-lg);background:var(--panel-tint),var(--surface);border:1px solid var(--border-strong);border-radius:var(--card-radius);box-shadow:0 1px color-mix(in srgb,var(--shadow-ink) 5%,transparent)}.wb-stage-blurb{align-self:center;max-width:44rem;margin:0;padding:var(--space-3) var(--space-5);font-size:var(--type-body-sm);line-height:var(--lh-body);color:var(--text2);text-align:center;text-wrap:pretty;background:var(--surface2);border:1px solid var(--border);border-radius:var(--card-radius)}.wb-stage .wb-coverage-note{margin:0}.workbench .wb-field>span{font-size:var(--type-eyebrow);font-weight:var(--fw-label)}.workbench .wb-field>span .wb-muted{font-size:inherit}.wb-stage .vault-intro{display:none}.wb-focus{display:flex;flex-direction:column;gap:var(--space-2)}@media(max-width:560px){.wb-bar{gap:var(--space-2)}.wb-bar .course-selector-container{flex:1 1 auto}.wb-switch>button>svg{display:none}}.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:var(--type-meta);font-weight:600;color:var(--text2)}.int-field>input{height:var(--ctl-h-lg);padding-block:0}.wb-field input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity var(--dur-2) var(--ease-out)}.wb-field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.wb-output{min-height:220px}.wb-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--type-meta);color:var(--text2);cursor:pointer}.wb-check input{accent-color:var(--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:var(--type-body-sm);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:var(--type-body);color:var(--text);display:flex;align-items:center;gap:var(--space-2)}.wb-badge{font-size:var(--type-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-eyebrow);background:var(--surface3);color:var(--text2);padding:var(--tag-pad);border-radius:var(--tag-radius)}.wb-recap-section h4{font-size:var(--type-body-sm);color:var(--text);margin-bottom:var(--space-1)}.wb-recap-section ul{padding-left:1.1rem;color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-body)}.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(--text-muted)}.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:var(--r2);font-size:var(--type-body-sm);line-height:var(--lh-body);white-space:pre-wrap}.wb-msg.user .wb-msg-text{background:var(--text);color:var(--bg);border-bottom-right-radius:calc(var(--r) / 2)}.wb-msg.assistant .wb-msg-text{background:var(--surface3);color:var(--text);border-bottom-left-radius:calc(var(--r) / 2)}.wb-sources{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:6px}.wb-sources-label{font-size:var(--type-meta);color:var(--text-muted);align-self:center}.wb-ai-note{display:block;flex-basis:100%;font-size:var(--type-meta);color:var(--text-muted);margin-top:2px}.wb-source-wrap{display:inline-block;max-width:100%;position:relative}.wb-source-chev{transition:transform var(--dur-2) var(--ease-out)}.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:var(--r2);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);box-shadow:0 8px 24px color-mix(in srgb,var(--shadow-ink) 13%,transparent)}.wb-source-chunk{font-size:var(--type-meta);line-height:var(--lh-body);color:var(--text2);white-space:pre-wrap;word-break:break-word;font-family:var(--font);margin:0;background:var(--surface2);padding:var(--space-2) var(--space-3);border-radius:var(--r);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:var(--space-3);border:1px solid var(--border);border-radius:var(--r2);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(--text-muted)}.nested-source-name{font-size:var(--type-meta);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:var(--type-eyebrow);color:var(--text-muted);background:var(--surface3);border:1px solid var(--border);padding:var(--tag-pad);border-radius:var(--tag-radius)}.nested-source-tag.ok{color:var(--success);border-color:var(--success-border);background:var(--success-border)}.nested-source-tag.warn{color:var(--warning);border-color:var(--warning-border);background:var(--warning-dim)}.nested-source-toggle svg{transition:transform var(--dur-2) var(--ease-out)}.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:var(--space-2) var(--space-3)}.nested-sources.compact .nested-source-name{font-size:var(--type-meta)}.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:var(--ctl-radius);color:var(--text);height:var(--ctl-h-lg);padding:0 var(--space-4);font-family:var(--font);font-size:var(--type-body)}.wb-chat-input input:focus{outline:none;border-color:var(--accent)}.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(--success);transition:width var(--dur-3) var(--ease-out)}.wb-fc-meta{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--type-meta);color:var(--text-muted);font-variant-numeric:tabular-nums}.wb-fc-repeats{color:var(--text2)}.wb-flashcard{display:flex;flex-direction:column;gap:var(--space-4);min-height:12rem;padding:var(--space-4) var(--space-5) var(--space-5);background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);box-shadow:0 4px 12px color-mix(in srgb,var(--shadow-ink) 15%,transparent)}.wb-fc-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wb-fc-front{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--type-title);line-height:var(--lh-snug);letter-spacing:var(--ls-title);color:var(--text);text-wrap:balance}.wb-fc-back{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border);animation:fadeSlideUp var(--dur-2) var(--ease-out) both}.wb-fc-front,.wb-fc-answer{overflow-wrap:anywhere}.wb-fc-answer{font-size:var(--type-body);line-height:var(--lh-body);color:var(--text)}.wb-fc-show{margin-top:var(--space-1)}.wb-fc-grades{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-1)}.wb-fc-grade{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);min-width:0}.wb-fc-grade-hint{font-size:var(--type-meta);line-height:var(--lh-snug);color:var(--text-muted);text-align:center}.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);min-height:var(--ctl-h-md);font-size:var(--type-body-sm);color:var(--text2);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--ctl-radius);border:1px solid transparent;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.wb-option:hover{background:var(--ink-wash)}.wb-option input{accent-color:var(--accent)}.wb-option.is-picked{background:var(--accent-dim)}.wb-option.is-answer{background:var(--success-dim);border-color:var(--success);color:var(--text)}.wb-explain{margin-top:var(--space-3);font-size:var(--type-meta);color:var(--text2);line-height:var(--lh-body)}.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:var(--type-body);color:var(--text);background:var(--surface3);border-radius:var(--r2);padding:var(--space-3) var(--space-4);text-align:center}.wb-explain-simple{font-size:var(--type-body);color:var(--text);line-height:var(--lh-body)}.wb-callout{display:flex;gap:var(--space-2);background:var(--warning-dim);border-radius:var(--r2);padding:var(--space-3) var(--space-4);font-size:var(--type-body-sm);color:var(--text2);line-height:var(--lh-body)}.wb-callout svg{color:var(--warning);flex-shrink:0;margin-top:2px}.plan-deadlines{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2);padding:var(--space-3) var(--space-4)}.plan-deadlines-head{display:flex;align-items:center;gap:6px;font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-3)}.plan-deadlines-head svg{color:var(--text2)}.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:var(--type-meta)}.plan-deadline-when{flex:0 0 70px;font-weight:700;font-size:var(--type-meta);color:var(--text)}.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(--text-muted);font-size:var(--type-meta)}.plan-presets{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.plan-datepick{margin-left:auto;min-width:170px}.plan-focus{display:flex;align-items:flex-start;gap:var(--space-2);background:var(--surface3);padding:var(--space-3) var(--space-4);font-size:var(--type-body-sm);color:var(--text);line-height:var(--lh-body)}.plan-focus svg{color:var(--text2);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:var(--success);border-radius:999px;transition:width var(--dur-3) var(--ease-out)}.plan-progress-label{flex:0 0 auto;font-size:var(--type-meta);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(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim)}.plan-day.complete .plan-day-dot{background:var(--success);border-color:var(--success)}.plan-day.rest .plan-day-label{color:var(--text-muted)}.plan-day.rest .plan-day-dot{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:var(--type-body-sm);margin-bottom:var(--space-2)}.plan-day.is-today .plan-day-label{color:var(--accent)}.plan-today-tag{font-size:var(--type-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-eyebrow);background:var(--accent);color:var(--on-accent);padding:var(--tag-pad);border-radius:var(--tag-radius)}.plan-day-count{margin-left:auto;font-size:var(--type-meta);font-weight:600;color:var(--text-muted)}.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:var(--type-body-sm);color:var(--text2);cursor:pointer;line-height:var(--lh-snug)}.plan-tasks li.checked .plan-task-text{color:var(--text-muted);text-decoration:line-through}.plan-tasks input{accent-color:var(--accent);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:var(--type-meta);font-weight:600;color:var(--text-muted);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)}.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}.scroll-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 var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}.scroll-jump-actions.show{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-jump-btn{box-shadow:0 4px 16px color-mix(in srgb,var(--shadow-ink) 35%,transparent);--lift: -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(--text2);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:var(--lh-snug)}.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(--text)}.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:var(--lh-body)}.studio-markdown li::marker{color:var(--text2)}.studio-markdown code{background:var(--surface3);border:1px solid var(--border);color:var(--text2);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(--border-strong);background:var(--surface3);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(--accent);text-decoration:underline;text-decoration-color:var(--accent-border-soft);text-underline-offset:2px;transition:text-decoration-color var(--dur-2) var(--ease-out)}.studio-markdown a:hover{text-decoration-color:var(--accent)}.studio-msg-error{color:var(--danger);font-size:var(--type-body-sm)}.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-composer{display:flex;flex-direction:column;gap:var(--space-3)}.ai-input{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.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}@media(max-width:720px){.studio-controls-row{gap:var(--space-2)}}.studio-priority-badge{display:inline-flex;align-items:center;gap:var(--space-2);align-self:flex-start;max-width:100%;min-height:var(--ctl-h-sm);padding:0 0 0 var(--ctl-px-sm);background:var(--surface2);border:1px solid var(--border);border-radius:var(--ctl-radius-token);font-size:var(--type-body-sm);color:var(--text)}.studio-priority-label{color:var(--text-muted);white-space:nowrap}.studio-priority-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.studio-priority-clear{margin-block:-1px}.studio-nested-sources{display:flex;flex-direction:column;gap:8px;margin-top:12px}.studio-nested-label{font-size:var(--type-meta);font-weight:700;color:var(--text-muted)}.studio-context-select-container{display:contents}.studio-assignment-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:200;max-height:20rem;overflow:hidden;transform-origin:top center}.studio-assignment-dropdown.menu-flip{top:auto;bottom:calc(100% + 6px);transform-origin:bottom center}.studio-dropdown-search{flex-shrink:0;min-height:var(--ctl-h-md);margin-bottom:var(--space-1);padding-left:var(--ctl-px-sm)}.studio-dropdown-search .search-icon{color:var(--text-muted);flex-shrink:0}.studio-dropdown-search .ai-field-input{height:calc(var(--ctl-h-md) - 2px)}.studio-dropdown-list{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--surface3) transparent}.studio-dropdown-option{display:flex;align-items:center;flex-shrink:0;gap:var(--space-3)}.studio-dropdown-option .option-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-dropdown-option .option-due{font-size:var(--type-meta);font-weight:400;color:var(--text-muted)}.studio-dropdown-option .option-sub{display:inline-flex;align-items:center;flex-shrink:0;gap:var(--space-2);max-width:55%}.studio-dropdown-option .asgn-lock-label{flex-shrink:0;font-size:var(--type-meta);padding:var(--tag-pad)}.studio-dropdown-option:disabled .option-name{color:var(--text-muted)}@media(max-width:560px){.studio-dropdown-option{flex-direction:column;align-items:flex-start;gap:2px}.studio-dropdown-option .option-name{width:100%}.studio-dropdown-option .option-sub{max-width:100%;flex-wrap:wrap}}@media(max-width:520px){.studio-controls-row{align-items:stretch}.studio-control-group{width:100%}.studio-control-group>.ghost-btn{width:100%}}.vault{display:flex;flex-direction:column;gap:var(--space-4);margin-top:calc(var(--space-4) - var(--space-6))}.vault-intro{align-self:center;max-width:46rem;margin:0;padding:0 var(--space-4);font-size:var(--type-meta);line-height:var(--lh-body);color:var(--text-muted);text-align:center}.vault-add{display:flex;flex-direction:column;gap:var(--space-3)}.wb-locked-summary>span{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--type-body-sm);font-weight:var(--fw-title);color:var(--warning)}.vault-drop-pick{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:0;border-radius:var(--r);background:transparent;color:var(--text2);cursor:pointer;font:inherit}.vault-drop-pick:active{transform:scale(.99)}.vault-drop-pick:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.vault-import-help{margin-left:var(--space-2)}.wb-locked-summary{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--type-meta)}.wb-locked-summary p{flex-basis:100%;margin:0;color:var(--text-muted);overflow-wrap:anywhere}.vault-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;border:1.5px dashed var(--border-strong);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:var(--border-strong);background:color-mix(in srgb,var(--surface2) 92%,var(--accent-dim));box-shadow:inset 0 0 0 1px transparent,0 8px 24px color-mix(in srgb,var(--shadow-ink) 12%,transparent);transform:translateY(-1px)}.vault-drop.dragging{border-color:var(--accent);background:color-mix(in srgb,var(--accent-dim) 75%,var(--surface2));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent);transform:scale(1.01)}.vault-drop:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.vault-drop-icon{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r2);background:var(--surface3);color:var(--text2);transition:transform var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.vault-drop:hover .vault-drop-icon{transform:translateY(-1px) scale(1.03);background:color-mix(in srgb,var(--accent-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:var(--type-body);font-weight:700;color:var(--text)}.vault-drop-hint{margin:0;font-size:var(--type-meta);line-height:var(--lh-body);color:var(--text-muted)}.vault-drop.sm{padding:var(--space-4)}.vault-drop.sm p{font-size:var(--type-meta);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:var(--type-meta);line-height:var(--lh-snug);color:var(--text-muted);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:var(--r3);animation:vault-paste-open var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.vault-paste-label{margin:0;font-size:var(--type-meta);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:var(--type-section);font-weight:var(--fw-label);letter-spacing:var(--ls-section);text-transform:uppercase;color:var(--text)}.vault-section-head h3 svg{display:none}.vault-list{list-style:none;display:flex;flex-direction:column;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden}.vault-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);min-height:40px;border-bottom:1px solid var(--border);transition:background var(--dur-2) var(--ease-out)}.vault-item:last-child{border-bottom:none}.vault-item:hover,.vault-item:focus-within{background:var(--surface3)}.vault-item.status-error{background:color-mix(in srgb,var(--danger) 7%,transparent)}.vault-item-icon{display:inline-flex;color:var(--text-muted);flex-shrink:0}.vault-item-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.vault-item-name{font-size:var(--type-body-sm);font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-outline-row>.vault-item-name{flex:1;min-width:0}.vault-item-sub{font-size:var(--type-meta);color:var(--text-muted);line-height:var(--lh-snug)}.vault-item-meta{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0;white-space:nowrap;font-size:var(--type-meta);color:var(--text-muted);font-variant-numeric:tabular-nums}.vault-item-name a{color:inherit;text-decoration:none}.vault-item-name a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.vault-item-name a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.vault-unit-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);font-size:var(--type-meta);color:var(--text-muted)}.vault-unit-foot .ghost-btn{margin-left:auto}.vault-item-error{font-size:var(--type-meta);color:var(--danger);display:inline-flex;align-items:center;gap:var(--space-1)}.vault-item-fix{align-self:flex-start;margin-top: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;margin-right:calc(var(--space-2) * -1)}@media(hover:hover)and (pointer:fine){.vault-item{position:relative}.vault-item-actions{position:absolute;right:var(--space-4);top:50%;translate:0 -50%;margin-right:0;padding-left:var(--space-3);background:var(--surface3);opacity:0;pointer-events:none}.vault-item:hover .vault-item-actions,.vault-item:focus-within .vault-item-actions{opacity:1;pointer-events:auto}}.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(--warning-border);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-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(--text-muted)}.vault-locked-blocked{color:var(--text);font-weight:600}.vault-locked-actions{display:flex;align-items:center;gap:var(--card-gap-tight);flex-shrink:0}.vault-locked .setup-watch-video{max-width:100%}.vault-locked-note{margin:0;font-size:var(--type-meta);color:var(--text-muted);line-height:var(--lh-snug)}.vault-unlock-progress{display:flex;align-items:center;gap:var(--space-3);margin-left:calc(16px + var(--card-gap))}.vault-unlock-progress .plan-progress-label{font-size:var(--type-meta);font-variant-numeric:tabular-nums}.ai-locked-need{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);background:var(--surface2);border:1px solid var(--warning-border);border-radius:var(--card-radius-row);padding:var(--card-pad-compact)}.ai-locked-need-head{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;font-size:var(--type-body);font-weight:var(--fw-title);line-height:var(--lh-snug);color:var(--text)}.ai-locked-need-head svg{flex-shrink:0;margin-top:3px;color:var(--warning)}.ai-locked-need-head span{min-width:0;overflow-wrap:anywhere}.ai-locked-need-sub{margin:0;font-size:var(--type-meta);color:var(--text-muted);line-height:var(--lh-snug);overflow-wrap:anywhere}@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:1 1 auto;min-width:0;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-unit-groups{gap:var(--space-4)}details.vault-unit{border:1px solid var(--border);border-radius:var(--card-radius-row);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}.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-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);letter-spacing:var(--ls-display);line-height:var(--lh-tight);color:var(--text);text-wrap:balance}.vault-unit-meta{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--type-meta);color:var(--text-muted);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:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.vault-kind-chev{margin-left:auto;transition:transform var(--dur-2) var(--ease-out)}details.vault-unit[open]>.vault-unit-head .vault-kind-chev{transform:rotate(180deg)}.vault-kind-count{font-weight:600;color:var(--text-muted);background:var(--surface3);border-radius:999px;padding:1px 8px;font-size:var(--type-eyebrow)}.vault-needs-notes{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-size:var(--type-eyebrow);color:var(--warning);background:var(--warning-dim);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:var(--tag-radius);padding:var(--tag-pad);white-space:nowrap}.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:var(--type-meta);color:var(--text-muted);line-height:var(--lh-snug)}.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:var(--r2);padding:var(--space-4)}.vault-danger-warn{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--type-meta);line-height:var(--lh-snug);color:var(--text2)}.vault-danger-warn svg{color:var(--danger);flex-shrink:0;margin-top:2px}.vault-coverage{display:flex;flex-wrap:wrap;align-items:center;font-size:var(--type-meta);color:var(--text-muted)}.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(--text-muted)}.vault-coverage-proc{color:var(--warning)}.vault-depth{display:inline-block;padding:var(--tag-pad);border-radius:var(--tag-radius);font-size:var(--type-eyebrow);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(--text-muted)}.vault-depth-titles{background:var(--warning-dim);color:var(--warning)}.vault-depth-note{white-space:normal}.vault-unit-pick{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:2px}.vault-unit-pick select{background:var(--surface3);color:var(--text2);border:1px solid var(--border);border-radius:var(--ctl-radius);padding:2px 6px;font-family:var(--font);font-size:var(--type-meta);max-width:220px;cursor:pointer}.vault-unit-pick select:focus{border-color:var(--accent);outline:none}.vault-current-pill{font-style:normal;font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-size:var(--type-eyebrow);color:color-mix(in srgb,var(--accent) 78%,var(--text));background:var(--accent-dim);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:var(--tag-radius);padding:var(--tag-pad);white-space:nowrap}.vault-past-term{font-style:normal;font-weight:var(--fw-label);font-size:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--text2);border:1px solid var(--border);border-radius:var(--tag-radius);padding:var(--tag-pad);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:var(--type-meta);color:var(--text-muted);line-height:var(--lh-body)}.wb-coverage-note{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--type-meta);line-height:var(--lh-snug);color:var(--text2)}.wb-coverage-note svg{color:var(--warning);flex-shrink:0;margin-top:2px}.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:1px solid var(--border);background:var(--surface2)}.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:var(--type-body);color:var(--text)}.wb-standing-sub{font-size:var(--type-meta);color:var(--text2)}.wb-standing-cta{flex-shrink:0}.finish-integrity{display:flex;align-items:center;gap:var(--space-2);font-size:var(--type-meta);color:var(--text2);background:var(--surface3);border:1px solid var(--border);border-radius:var(--r2);padding:var(--space-3)}.finish-integrity svg{color:var(--text2);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:var(--type-meta);color:var(--text-muted)}.finish-quick-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.finish-quick-name{font-size:var(--type-meta);color:var(--text);font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finish-quick-when{font-size:var(--type-meta);color:var(--text-muted)}.finish-link{display:inline-flex;align-items:center;gap:4px;color:var(--accent);text-decoration:none;font-size:var(--type-meta)}.finish-link:hover{text-decoration:underline}.finish-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.finish-meta-link,.finish-unlock-btn{margin-left:auto}.finish-unlock{display:flex;flex-direction:column;gap:var(--space-3)}.finish-unlock-help{font-size:var(--type-meta);color:var(--text-muted);line-height:var(--lh-snug)}.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 var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.finish-unlock-drop:hover{border-color:var(--border-strong);background:var(--surface2)}.finish-unlock-drop.dragging{border-color:var(--accent);background:var(--accent-dim)}.finish-unlock-drop svg{color:var(--text2)}.finish-unlock-drop p{font-size:var(--type-meta);margin:0}.finish-unlock-hint{font-size:var(--type-meta)!important;color:var(--text-muted)}.finish-unlock-drop.has-file{border-color:var(--success-border);background:var(--success-border)}.finish-unlock-drop.has-file svg{color:var(--success)}.finish-unlock-filename{font-weight:600;color:var(--text);font-size:var(--type-body-sm)!important}.finish-unlock-change{font-size:var(--type-meta)!important;color:var(--text-muted)}.finish-draft-panel{display:flex;flex-direction:column;gap:var(--space-3)}.finish-draft-panel>.primary-btn{align-self:flex-end}@media(max-width:560px){.finish-draft-panel>.primary-btn{align-self:stretch}}.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:var(--type-meta);color:var(--text-muted)}.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(--success);transition:width .4s var(--ease-out)}.finish-progress-fill.done{background:var(--success)}.finish-progress-label{display:inline-flex;align-items:center;gap:5px;font-size:var(--type-meta);color:var(--text-muted)}.finish-step-num{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:999px;background:var(--surface3);color:var(--text2);font-size:var(--type-meta);font-weight:var(--fw-label);line-height:1;font-variant-numeric:tabular-nums}.wb-result>.wb-sources{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border)}.finish-summary{font-size:var(--type-body-sm);color:var(--text);line-height:var(--lh-body);padding:var(--space-4);background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2)}.finish-estimate{display:inline-flex;align-items:center;gap:5px;font-size:var(--type-meta);color:var(--text-muted)}.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-ask-tutor{align-self:flex-start}.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:var(--warning-border)}.finish-block.warn h4 svg{color:var(--warning)}.finish-block.good{border-color:var(--success-border)}.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:var(--lh-body)}.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:var(--r2);border:1px solid var(--border);background:var(--surface2)}.finish-reqs li.met{border-color:var(--success-border)}.finish-reqs li.unmet{border-color:var(--danger-border)}.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:var(--type-body-sm);color:var(--text)}.finish-req-note{font-size:var(--type-meta);color:var(--text-muted)}.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);font-size:var(--type-meta);color:var(--text)}.quiz-drill-banner>span:first-child{display:inline-flex;align-items:center;gap:6px}.quiz-drill-banner>.wb-row{gap:var(--space-2)}.quiz-drill-banner svg{color:var(--text2)}.quiz-drill-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--type-meta);color:var(--text2);margin-bottom:var(--space-2)}.quiz-shuffle{gap:var(--space-2)}.quiz-shuffle svg{color:var(--text-muted)}.wb-fc-tag{font-size:var(--type-eyebrow);font-weight:700;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.wb-fc-level{display:inline-flex;align-items:center;gap:5px;padding:var(--tag-pad);border:1px solid var(--border);border-radius:var(--tag-radius);font-size:var(--type-eyebrow);font-weight:700;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.wb-fc-level i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--text2)}.quiz-kbd-hints{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);margin-top:var(--space-1);font-size:var(--type-meta);color:var(--text-muted)}.quiz-kbd-hints span{display:inline-flex;align-items:center;gap:4px}@media(max-width:600px),(pointer:coarse){.quiz-kbd-hints{display:none}}.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:var(--ctl-radius-inset);font-family:var(--font);font-size:var(--type-eyebrow);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(--surface3);border:1px solid var(--border);color:var(--text2);margin-bottom:var(--space-1)}.quiz-done-ring.good{background:var(--success-dim);border-color:var(--success-border);color:var(--success)}.quiz-done-score{font-size:var(--type-display);font-family:var(--font-display);font-weight:var(--fw-title);letter-spacing:var(--ls-display);font-variant-numeric:tabular-nums;color:var(--text);line-height:1}.quiz-done-score span{font-size:var(--type-body-lg);font-weight:600;color:var(--text-muted)}.quiz-done-first{font-size:var(--type-meta);color:var(--text-muted)}.quiz-done-sub{font-size:var(--type-body);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:var(--r2);background:var(--surface3);border:1px solid var(--border)}.quiz-test-score.good{background:var(--success-dim);border-color:var(--success-border)}.quiz-test-score.low{background:var(--danger-dim);border-color:var(--danger-border)}.quiz-test-score-num{font-size:var(--type-headline);font-family:var(--font-display);font-weight:var(--fw-title);letter-spacing:var(--ls-display);font-variant-numeric:tabular-nums;color:var(--text);line-height:1}.quiz-test-score-num span{font-size:var(--type-body);font-weight:600;color:var(--text-muted)}.quiz-test-score-meta{display:flex;flex-direction:column;gap:2px}.quiz-test-score-meta strong{font-size:var(--type-body);color:var(--text)}.quiz-test-score-meta span{font-size:var(--type-meta);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)}.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:var(--type-meta);font-weight:600;color:var(--text-muted)}.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:var(--r2);display:grid;place-items:center;background:var(--surface3);color:var(--text2);margin-bottom:var(--space-2)}.viz-intro-title{font-size:var(--type-body);font-weight:700;color:var(--text)}.viz-intro-sub{font-size:var(--type-meta);color:var(--text-muted);max-width:420px;line-height:var(--lh-body)}.viz-result{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;animation:studioMsgIn var(--dur-3) var(--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:var(--type-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--text2);background:var(--surface3);padding:var(--tag-pad);border-radius:var(--tag-radius);flex-shrink:0}.viz-result-query{flex:1;min-width:100px;font-size:var(--type-meta);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:var(--r);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:var(--r2);color:var(--text2);background:var(--surface3)}.viz-launch-text{flex:1;min-width:0}.viz-launch-title{margin:0;font-size:var(--type-body-sm);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-launch-sub{margin:3px 0 0;font-size:var(--type-meta);color:var(--text-muted)}.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:var(--ctl-radius);color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:var(--type-body);transition:border-color var(--dur-2) var(--ease-out)}.viz-input:focus{outline:none;border-color:var(--accent)}.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:var(--type-body-sm);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:var(--type-meta);font-weight:600;color:var(--text2)}.int-field input,.int-field textarea{background:var(--surface2);border:1px solid var(--border);border-radius:var(--ctl-radius);color:var(--text);padding:var(--space-3) var(--space-4);font-family:var(--font);font-size:var(--type-body);font-weight:400;width:100%}.int-field input:focus,.int-field textarea:focus{outline:none;border-color:var(--accent)}.int-field textarea{min-height:70px;resize:vertical;line-height:var(--lh-body)}.int-difficulty{display:flex;align-items:center;gap:var(--space-3)}.int-difficulty>span{font-size:var(--type-meta);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(--text-muted);font-size:var(--type-body-sm);line-height:var(--lh-body)}.int-activity{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;animation:studioMsgIn var(--dur-3) var(--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:var(--type-body-sm);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:var(--type-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-eyebrow);padding:var(--tag-pad);border-radius:var(--tag-radius);flex-shrink:0}.int-badge.easy{background:var(--success-dim);color:var(--success)}.int-badge.medium{background:var(--warning-dim);color:var(--warning)}.int-badge.hard{background:var(--danger-dim);color:var(--danger)}.int-activity-desc{padding:var(--space-3) var(--space-4);font-size:var(--type-meta);color:var(--text2);line-height:var(--lh-body);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:var(--r2);background:var(--surface3);transition:height .4s var(--ease-out);box-shadow:0 4px 16px color-mix(in srgb,var(--shadow-ink) 10%,transparent)}.int-error{color:var(--danger);font-size:var(--type-body-sm);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:var(--type-headline)}.course-home-empty{border:none;padding:var(--space-7) 0}.course-home-empty p{color:var(--text-muted)}.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:var(--type-headline);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:var(--type-body-lg);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(--text-muted);font-size:var(--type-body-sm)}.section-page-title{margin-bottom:var(--space-7)}.field-mono{font-family:monospace;font-size:var(--type-meta)}.asgn-group-list{display:flex;flex-direction:column;gap:var(--space-8)}.asgn-group{margin-bottom:0}.asgn-group>.asgn-card:last-child{margin-bottom:0}.file-preview-container{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 color-mix(in srgb,var(--shadow-ink) 16%,transparent)}.pdf-preview,.office-preview{background:var(--surface2);border-radius:var(--r2);border:1px solid var(--border);overflow:hidden;box-shadow:0 4px 16px color-mix(in srgb,var(--shadow-ink) 13%,transparent)}.preview-zoom-group{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--ctl-radius);overflow:hidden}.preview-zoom-divider{width:1px;height:14px;background:var(--border)}.course-selector-container{position:relative;margin-bottom:var(--space-6)}.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(--text-muted);transition:transform var(--dur-2) 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;min-width:100%;max-height:280px;overflow-y:auto;z-index:100}.course-selector-option{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.course-option-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-option-grade{font-size:var(--type-meta);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)}.workshop-card,.course-home-body,.module-group,.detail-header-card,.detail-body-card,.vault-paste,.vault-locked,.finish-summary,.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 color-mix(in srgb,var(--shadow-ink) 5%,transparent)}.detail-title,.hero-name,.course-home-body h2,.status-card-title,.wb-card-title,.wb-panel-title,.module-group h3{font-family:var(--font-display);letter-spacing:var(--ls-title)}.hint,.welcome p{color:var(--text2)}.vault-drop-icon,.wb-card-icon{box-shadow:var(--sheen-top),0 14px 24px color-mix(in srgb,var(--shadow-ink) 8%,transparent)}.field input,.submission-textarea,.submission-url-input,.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)}.field input:focus,.submission-textarea:focus,.submission-url-input:focus,.int-field input:focus,.int-field textarea:focus,.wb-chat-input input:focus{border-color:var(--accent-border-strong);background:var(--field-bg);box-shadow:0 0 0 3px var(--focus-ring)}.dashboard-welcome{align-items:stretch}.glance-card{position:relative;overflow:hidden}.glance-card{background:var(--panel-tint)}.detail-header-card,.workshop-card{background:var(--panel-tint),var(--surface)}.section-heading{letter-spacing:var(--ls-section);text-transform:uppercase}.detail-section-label,.vault-unit-section-label,.studio-nested-label,.wb-field>span,.submission-input-group label{letter-spacing:var(--ls-eyebrow);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-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(--text);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-panel-head{justify-content:space-between;align-items:flex-start}.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 var(--border);border-radius:var(--r2);background:var(--wash-soft)}.studio-feed{gap:var(--space-4);padding:0}.studio-msg{border-radius:var(--card-radius);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(--accent-hover)}.studio-msg-content{padding:var(--space-5)}.quiz-drill-banner,.wb-standing,.plan-focus,.vault-coverage-note,.home-view-notice{border-radius:var(--r2);border:1px solid var(--border);background:var(--wash)}.home-view-notice{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);color:var(--text2);font-size:var(--type-meta)}.home-view-notice svg{color:var(--text2)}.course-main-wrap{align-items:flex-start;gap:var(--card-grid-gap);padding-top:var(--space-8)}.course-sidebar{position:sticky;top:96px;width:15rem;padding:var(--card-pad-compact);border-radius:var(--card-radius)}.course-nav{gap:var(--space-2)}@media(min-width:1101px){.course-sidebar{min-height:var(--course-hero-h, auto)}}.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(--card-radius);border:1px solid var(--border-strong);background:var(--surface);box-shadow:0 1px color-mix(in srgb,var(--shadow-ink) 5%,transparent)}.hero-copy{min-width:0;padding:var(--card-pad-lg);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;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) 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:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.hero-next-due-name{flex:1 1 6rem;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(--text);white-space:nowrap}.hero-next-due:hover .hero-next-due-name{color:var(--accent)}.hero-next-due:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.account-dialog.msg-dialog{width:min(100%,36rem)}.msg-head{display:flex;align-items:center;gap:var(--space-2);min-width:0}.msg-head>.icon-btn{margin-left:calc(-1 * var(--space-3))}.msg-body{display:flex;flex-direction:column;gap:var(--space-4)}.msg-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.wb-field>span .msg-field-note{font-weight:400;color:var(--text-muted);text-transform:none;letter-spacing:normal}.msg-note{min-height:96px}.msg-draft{min-height:180px}.msg-hint{margin:0;color:var(--text-muted);font-size:var(--type-body-sm);line-height:var(--lh-body)}.msg-actions{display:flex;flex-direction:row-reverse;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-5);border-top:1px solid var(--rule)}.msg-actions>.link-btn{width:auto;margin-bottom:0}.msg-threads+.msg-actions{margin-top:0;padding-top:var(--space-2);border-top:0}@media(max-width:480px){.msg-actions{display:grid;grid-template-columns:1fr}.msg-actions.split{grid-template-columns:1fr 1fr}.msg-actions.split>.primary-btn{grid-column:1 / -1}.msg-actions.split>.primary-btn+:last-child{grid-column:1 / -1}}.msg-new-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent)}.msg-threads{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.msg-threads>li{border-bottom:1px solid var(--rule)}.msg-thread{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-3) var(--space-2);border:0;border-radius:var(--ctl-radius);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.msg-thread:hover{background:var(--ink-wash)}.msg-thread:active{transform:scale(var(--ctl-press-card));transition:transform var(--dur-0) var(--ease-spring)}.msg-thread:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.msg-thread-top{display:flex;align-items:center;gap:var(--space-2);min-width:0}.msg-thread-subject{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.msg-thread.unread .msg-thread-subject{font-weight:700}.msg-thread-top time{flex:none;color:var(--text-muted);font-size:var(--type-body-sm);font-variant-numeric:tabular-nums}.msg-thread-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-muted);font-size:var(--type-body-sm);line-height:var(--lh-snug);overflow-wrap:anywhere}.msg-thread.unread .msg-thread-preview{color:var(--text2)}.msg-bubbles{display:flex;flex-direction:column;gap:var(--space-4);max-height:min(36dvh,20rem);overflow-y:auto;overscroll-behavior:contain;padding:var(--space-1) 2px}.msg-bubbles:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r)}.msg-bubble{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);max-width:85%;align-self:flex-start}.msg-bubble.mine{align-self:flex-end;align-items:flex-end}.msg-bubble-meta{margin:0;color:var(--text-muted);font-size:var(--type-body-sm)}.msg-bubble-meta time{font-variant-numeric:tabular-nums}.msg-bubble-text{padding:var(--space-3) var(--space-4);border-radius:var(--r2);border-bottom-left-radius:calc(var(--r) / 2);background:var(--surface3);color:var(--text);line-height:var(--lh-body);white-space:pre-wrap;overflow-wrap:anywhere}.msg-bubble.mine .msg-bubble-text{background:var(--text);color:var(--bg);border-bottom-left-radius:var(--r2);border-bottom-right-radius:calc(var(--r) / 2)}.msg-bubble-file{font-size:var(--type-body-sm);overflow-wrap:anywhere}.msg-reply-box{min-height:72px;max-height:40dvh}.hero-name{letter-spacing:var(--ls-display);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:var(--card-pad)}.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:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted);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:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted);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:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.hero-stat-value{font-family:var(--font-display);font-size:var(--type-display);font-weight:var(--fw-title);line-height:1;letter-spacing:var(--ls-display);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:var(--type-meta);color:var(--text2)}.hero-potential-meta{display:block;margin-top:6px;font-size:var(--type-meta);line-height:var(--lh-snug);color:var(--text2)}.asgn-card{padding:var(--card-pad-compact);box-shadow:var(--elev-card);transition:transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.asgn-card.clickable:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-card-hover)}.asgn-left h4{font-size:var(--type-title)}.asgn-points-bubble,.module-points{background:var(--wash);border-color:var(--border);box-shadow:0 12px 18px color-mix(in srgb,var(--shadow-ink) 6%,transparent)}.detail-header-card{overflow:hidden}.detail-header-card:has(.styled-select.open){overflow:visible}.detail-header-body,.detail-body-card,.course-home-body,.module-group{padding:var(--card-pad-lg)}.detail-title{letter-spacing:var(--ls-display)}.int-badge,.course-option-grade{border-color:var(--border)}.canvas-html-content{color:var(--text2-bright)!important;line-height:var(--lh-body)}.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:var(--ls-title)}.canvas-html-content:not(.assignment-prose) 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:var(--accent-border-soft)!important;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)!important}.submission-dropzone{background:var(--wash-soft);transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.submission-dropzone:hover,.submission-dropzone.dragover{background:var(--accent-dim);box-shadow:0 16px 28px color-mix(in srgb,var(--shadow-ink) 7%,transparent);transform:translateY(-1px)}.module-group,.course-home-body,.file-preview-container,.image-preview,.pdf-preview,.office-preview{overflow:hidden}.module-item-link{padding:var(--space-3) var(--space-4);border-radius:var(--card-radius-row);background:var(--wash);border:1px solid var(--border);transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.module-item-link:hover{border-color:var(--border-strong);box-shadow:0 14px 22px color-mix(in srgb,var(--shadow-ink) 7%,transparent)}.vault-drop,.vault-paste,.vault-locked,.vault-list,.vault-item,.vault-unit-body,.vault-source-detail{box-shadow:none}.vault-list{background:var(--wash-soft)}.wb-source-detail{background:var(--popover-bg);border-color:var(--border);box-shadow:0 24px 40px color-mix(in srgb,var(--shadow-ink) 16%,transparent)}@media(max-width:1260px){.course-hero{grid-template-columns:minmax(0,1fr)}.hero-stats{grid-template-columns:minmax(0,1fr) minmax(0,2fr);justify-content:stretch}}@media(max-width:1100px){.course-hero{grid-template-columns:minmax(0,1fr)}.dashboard-welcome{grid-template-columns:minmax(0,1fr) auto}.course-main-wrap{flex-direction:column;align-items:stretch}.course-sidebar{position:static;width:100%}}@media(max-width:760px){.topbar{min-height:auto;padding:var(--space-2) var(--space-4);flex-wrap:nowrap;column-gap:var(--space-2)}.topbar>:first-child{margin-right:auto}.topbar-brand{gap:var(--space-2);min-width:0}.topbar-center{position:static;left:auto;transform:none;display:flex}.topbar-right{gap:var(--space-2);justify-content:flex-end}.dash-refresh-btn{width:var(--ctl-h);padding-inline:0}.topbar-btn-label,.topbar-tag,.uname{display:none}.user-chip{width:var(--ctl-h);padding-inline:0}.course-page-layout .topbar-center{display:none}.dashboard-topbar .user-chip{display:inline-flex}.dashboard-topbar{display:grid;grid-template-columns:1fr auto 1fr}.dashboard-topbar .topbar-right{justify-self:end}.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))}.dashboard-welcome{grid-template-columns: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{white-space:nowrap}.detail-grade-row{flex-wrap:wrap}.deadline-item{padding-right:var(--space-3)}.dl-info{display:block}.dl-meta{margin-top:2px}}@media(max-width:600px){.asgn-top{align-items:flex-start}:is(.dl-right,.asgn-right){flex-direction:column;align-items:flex-end;gap:var(--space-1)}:is(.dl-right,.asgn-right)>.asgn-points-bubble{width:auto;min-width:4.75rem;padding:var(--space-2) var(--space-2) .3rem;font-size:var(--type-body-sm)}:is(.dl-right,.asgn-right)>.asgn-points-bubble+.asgn-points-bubble{min-width:0;padding:0;background:none;border:0;box-shadow:none;color:var(--text2);font-weight:700}}@media(max-width:400px){.course-nav-btn{padding-inline:var(--ctl-px-sm)}}@media(min-width:601px)and (max-width:1100px){.course-main-wrap{gap:var(--card-grid-gap)}.course-sidebar{display:flex;align-items:center;gap:var(--space-4)}.course-selector-container{flex:0 1 18rem;min-width:0;margin-bottom:0}.course-selector-menu{min-width:100%}.course-nav{flex-direction:row;width:auto;margin-left:auto;padding-bottom:0;overflow:visible}}.wb-card-status{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-meta);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(--warning);background:var(--warning-dim);border-color:var(--warning)}.finish-steps li .finish-step-body{flex:1;min-width:0}.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:var(--r2)}.guide-section-heading{font-family:var(--font-display);font-size:var(--type-body);font-weight:600;letter-spacing:var(--ls-title);color:var(--text);text-wrap:balance}.guide-section-summary{font-size:var(--type-body-sm);color:var(--text2);line-height:var(--lh-body)}.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:var(--type-meta);line-height:var(--lh-body)}.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(--accent)!important;outline-offset:2px}button,a,[role=button],input,select,textarea,summary{touch-action:manipulation}.studio-dropdown-list{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:var(--scrim-bg);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:pair-fade var(--dur-2) var(--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:var(--card-radius);box-shadow:var(--shadow-popover);padding:var(--space-7) var(--space-6) var(--space-6);text-align:center;animation:pair-rise var(--dur-2) 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);touch-action:manipulation}.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:var(--r2);background:var(--surface3);color:var(--text2);margin-bottom:var(--space-1)}.pair-title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:var(--type-headline);line-height:var(--lh-tight);margin:0;color:var(--text);text-wrap:balance}.pair-intro{margin:0;max-width:32ch;font-size:var(--type-body-sm);line-height:var(--lh-snug);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:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.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(--text2);background:var(--surface2);border:1.5px dashed var(--border);border-radius:var(--r2);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(--text-muted);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:var(--type-meta);color:var(--text-muted);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:var(--type-meta);line-height:var(--lh-snug);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:var(--type-body-sm)}.pair-note{margin-top:var(--space-5);display:flex;align-items:flex-start;gap:var(--space-2);text-align:left;font-size:var(--type-body-sm);line-height:var(--lh-snug);color:var(--text2);background:var(--warning-dim);border:1px solid var(--warning-border);border-radius:var(--r2);padding:var(--space-3) var(--space-4)}.pair-note svg{flex-shrink:0;margin-top:2px;color:var(--warning)}.cal-day:not(.empty):active{transform:scale(.97)}.asgn-card.clickable:active,.deadline-item:active,.module-item-link:active,.vault-item:active,.submission-dropzone:active{transform:scale(.985)}.mo-screen{animation:fadeIn var(--dur-2) var(--ease-out) backwards}.mo-screen[data-variant=page]{animation:none}.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))}@keyframes mo-accent-draw{0%{transform:scaleX(0)}to{transform:scaleX(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,.topbar :is(.mo-enter,.mo-stagger,.mo-stagger-fast,.mo-pop){animation:none}.mo-course-swap{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards}.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}.vault-unit-head{--lift: 0}.field input,.submission-textarea,.submission-url-input,.int-field input,.int-field textarea,.wb-chat-input 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)}.submission-dropzone:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.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}}.styled-select-menu,.school-search .styled-select-menu{animation:selectSlideIn var(--dur-2) var(--ease-out) backwards;transform-origin:top center}.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)}.module-arrow,.vault-item-actions{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}.school-deep-row,.prep-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.prep-choice:not(:disabled)>svg{color:var(--accent)}.prep-actions.two{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:560px){.prep-actions,.prep-actions.two{grid-template-columns:1fr}}.prep-priority{align-self:flex-start}.prep-saved{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.prep-saved-label,.prep-plan-offer-label,.nested-sources-heading{font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}.ai-followups{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}.ai-followups-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ai-followups-next{margin-left:auto}.ai-followup-go{color:var(--text-muted)}@media(max-width:520px){.ai-followups-group{flex-basis:100%;flex-wrap:nowrap;gap:6px}.ai-followups-next{margin-left:0}.ai-followups-group>.ghost-btn{flex:1 1 auto;padding-inline:var(--space-2)}.ai-followups-group>.ghost-btn>svg:first-child{display:none}}.studio-answer-sources{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.wb-sources.is-folded{align-items:center;column-gap:var(--space-3);row-gap:var(--space-2)}.wb-sources.is-folded>.wb-ai-note{flex-basis:auto;margin-top:0}.wb-sources-panel{flex-basis:100%;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface2)}.wb-sources-chips{display:flex;flex-wrap:wrap;gap:6px}.prep-plan-offer{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface2)}.prep-plan-offer>.primary-btn{align-self:flex-start}.prep-setup{display:flex;flex-direction:column;gap:var(--space-3)}.prep-setup-row{display:grid;grid-template-columns:9.5rem minmax(0,1fr);align-items:center;gap:var(--space-2) var(--space-3)}.prep-setup-go{align-self:flex-end}@media(max-width:560px){.prep-setup-row{grid-template-columns:1fr}.prep-setup-go{align-self:stretch}.prep-setup .seg>button{padding-inline:var(--space-1)}}.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(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step));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}.hero-bar{transform-origin:left center;animation:mo-accent-draw var(--dur-3) var(--ease-out) backwards}.cc-arrow,.course-card .cc-arrow{transition:transform var(--dur-2) var(--ease-out),color 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,.asgn-card.clickable:hover .cc-arrow,.asgn-card.clickable:focus-visible .cc-arrow{transform:translate(3px);color:var(--text2)}.wb-card:hover .cc-arrow,.wb-card:focus-visible .cc-arrow{transform:translate(3px);color:var(--text2)}@media(hover:none){.course-card:hover .cc-arrow,.deadline-item:hover .cc-arrow,.asgn-card.clickable:hover .cc-arrow,.wb-card:hover .cc-arrow{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%,color-mix(in srgb,var(--on-accent) 22%,transparent) 50%,transparent 70%);transform:translate(-120%);animation:mo-connect-shimmer 1.1s var(--ease-out) infinite}.plan-timeline .plan-day{animation:fadeSlideUp var(--dur-3) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step))}.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(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step))}.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(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}.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{animation:countSettle var(--dur-3) var(--ease-out)}:is(.asgn-card,.deadline-item) .asgn-points-bubble.mo-settle{animation:none}.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 var(--dur-2) 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}.mini-steps .ms .num.mo-pop{animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast) + 90ms)}.module-points.mo-pop{animation-delay:90ms}.vault-item-icon.mo-pop{animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}.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(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}.styled-select-menu.mo-menu-stagger>.styled-select-option{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}.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:inherit;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}.course-selector-option{animation:fadeSlideUp var(--dur-2) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-step-fast))}@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}}.deadline-switch,.list-more{display:flex;justify-content:center;margin-top:var(--space-2)}.ai-resource-actions,.ai-resource-action{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block:var(--space-3)}.ai-resource-action{min-width:0;max-width:100%}.ai-resource-action a{white-space:normal;overflow-wrap:anywhere}.assignment-detail-nav{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.assignment-detail-nav .detail-back-btn{margin-bottom:0}.canvas-html-content.assignment-prose :is(p,div){margin-bottom:var(--space-2)!important}.canvas-html-content.assignment-prose .canvas-empty-block,.canvas-html-content.assignment-prose :is(p,div):empty{display:none}.canvas-html-content.assignment-prose a[href]{display:inline;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:.18em;box-shadow:none;overflow-wrap:anywhere;white-space:normal}.canvas-html-content.assignment-prose a[href]:hover{color:var(--accent-hover);transform:none;box-shadow:none;background:transparent}.canvas-html-content.assignment-prose a[href]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:600px){:root{--card-pad: var(--space-4);--card-pad-lg: var(--space-4);--card-pad-compact: var(--space-3);--card-grid-gap: var(--space-3)}.topbar .logo{font-size:var(--type-title)}.welcome-copy{padding:var(--space-2) 0 0}.welcome h1{margin-bottom:var(--space-2)}.welcome p{font-size:var(--type-body);line-height:var(--lh-body)}.glance-card{min-height:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.glance-value{font-size:var(--type-display)}.glance-grid.has-gpa{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.glance-grid.has-gpa .glance-card-gpa{grid-column:1 / -1}.course-grid{gap:0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--card-radius-row);box-shadow:var(--elev-row);overflow:hidden}.course-card{min-height:56px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-5);background:transparent;border:0;border-radius:0;box-shadow:none;--lift: 0}.course-card+.course-card{border-top:1px solid var(--border)}.course-card:hover{border-color:var(--border);background:var(--surface2);box-shadow:none}.course-card .cc-top{padding-left:0}.course-card .cc-name{font-size:var(--type-body-lg)}.cc-grade{padding:var(--space-1) var(--space-2);font-size:var(--type-body-sm)}.wb-controls{margin-bottom:0;padding:0;border:0;background:none;box-shadow:none}.ai-workshop-section .workshop-card{padding:0;border:0;background:none;box-shadow:none}.wb-card-icon{width:40px;height:40px}.app-legal{padding:0 var(--space-4)}.app-legal-links{flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.app-legal-links>span{display:none}.app-legal-links .text-btn{white-space:nowrap}.course-main-wrap{padding:var(--space-3) var(--space-4) var(--space-8);gap:var(--space-4)}.course-sidebar{display:flex;flex-direction:column;gap:var(--space-2);padding:0;border:0;background:none;box-shadow:none}.course-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1);padding:var(--space-1);overflow:visible;background:var(--surface);border:1px solid var(--border);border-radius:var(--r2)}.course-nav-btn{justify-content:center}.course-content-area{gap:var(--space-5)}.course-hero{gap:var(--space-3)}.hero-copy{padding:var(--space-2) 0 0;background:none;border:0;box-shadow:none}.hero-bar{margin-bottom:var(--space-2)}.hero-stat-card{min-height:0;padding:var(--space-3) var(--space-4);gap:var(--space-1)}.hero-stat-value{font-size:var(--type-display)}.hero-grade-card{grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;grid-template-areas:"title   title     letter" "current potential letter";column-gap:var(--space-5);text-align:left}.hero-grade-card:not(:has(.hero-grade-potential)){grid-template-columns:auto 1fr;grid-template-areas:"title   letter" "current letter"}.hero-grade-title{justify-self:start;margin-bottom:var(--space-1)}.hero-grade-vdiv{display:none}.hero-grade-fig{align-items:flex-start;padding:0}.hero-grade-potential{border-top:0;border-left:1px solid var(--border);padding-left:var(--space-5)}@media(max-width:430px){.course-nav{grid-template-columns:repeat(3,auto)}.course-nav-btn{padding-inline:var(--space-3)}}@media(max-width:360px){.course-nav-btn{padding-inline:var(--space-1)}.hero-grade-card{column-gap:var(--space-3)}.hero-grade-potential{padding-left:var(--space-3)}}.hero-grade-letter{justify-self:end;font-size:3.25rem}.asgn-left h4{font-size:var(--type-body-lg)}.asgn-group-list{gap:var(--space-6)}.asgn-detail-view{gap:var(--space-5)}.detail-ledger-stamps{flex:1 1 100%;margin-left:0}.detail-ledger-stamps>.asgn-points-bubble{flex:1 1 0;width:auto}.detail-help-btn{width:100%}.my-submission-dl-label{display:none}.my-submission-files .ghost-btn{width:var(--ctl-h);min-height:var(--ctl-h);padding-inline:0}}@media(max-width:430px){.course-page-layout .topbar-label-narrow{display:none}.course-page-layout .topbar>.back-btn{width:var(--ctl-h);padding-inline:0}}@media(max-width:360px){.topbar-label-narrow{display:none}.topbar-plan-btn,.topbar>.back-btn{width:var(--ctl-h);padding-inline:0}}@media(max-width:400px){.deadline-item>.cc-arrow,.asgn-top>.cc-arrow{display:none}}.account-page{min-height:100dvh;position:relative;display:grid;place-items:center;padding:calc(var(--space-8) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom,0px));background:var(--bg);color:var(--text);font-family:var(--font)}.account-page: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:calc(var(--space-4) + env(safe-area-inset-top,0px));right:var(--space-4);display:flex;gap:var(--space-2)}.account-shell{position:relative;z-index:1;width:min(100%,24rem);padding:var(--space-6);border:1px solid var(--border-strong);border-radius:var(--r3);background:var(--surface);color:var(--text);font-family:var(--font);box-shadow:var(--elev-float),var(--sheen-top);animation:account-dialog-in var(--dur-3) var(--ease-out) both}.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-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--ctl-h-md);margin-bottom:var(--space-5)}.account-wordmark{display:inline-block;color:var(--text);font-family:var(--font-display);font-size:var(--type-title);font-weight:600;letter-spacing:var(--ls-title)}.account-wordmark span{color:var(--text2)}.account-shell h1{margin:0;color:var(--text);font-family:var(--font-display);font-size:var(--type-headline);font-weight:var(--fw-title);line-height:var(--lh-tight);letter-spacing:var(--ls-title);text-wrap:balance}.account-sub{margin:var(--space-1) 0 var(--space-5);color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-snug);text-wrap:pretty}.account-google,.account-submit{width:100%;min-height:var(--ctl-h-md);padding:0 var(--ctl-px-md);display:flex;align-items:center;justify-content:center;gap:var(--ctl-gap);border-radius:var(--ctl-radius);font:var(--ctl-weight) var(--ctl-fs-md)/1.2 var(--font);cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-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)}.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-1);border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}.account-submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-accent)}.account-google:hover:not(:disabled){box-shadow:var(--shadow-float)}@media(hover:hover){.account-google:hover:not(:disabled),.account-submit:hover:not(:disabled){transform:translateY(var(--ctl-lift))}}.account-google:active:not(:disabled),.account-submit:active:not(:disabled){transform:scale(var(--ctl-press));box-shadow:none;transition:transform var(--dur-0) var(--ease-spring)}.account-google:disabled{cursor:wait;opacity:.5}.account-submit:disabled{cursor:wait;background:var(--surface3);border-color:var(--border);color:var(--text-muted)}.account-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0;color:var(--text-muted);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-3)}.account-form>label:not(.account-agree),.account-field{display:grid;gap:var(--space-1);color:var(--text2-bright);font-size:var(--type-meta);font-weight:700}.account-profile-form label{display:grid;gap:var(--space-2);color:var(--text2-bright);font-size:var(--type-body-sm);font-weight:700}.account-field-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 var(--space-3)}.account-form input,.account-profile-form input{width:100%;min-height:var(--ctl-h-lg);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 input{min-height:var(--ctl-h-md)}.account-form small{color:var(--text-muted);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:var(--ctl-h-md)}.account-password-field button{position:absolute;top:50%;right:2px;width:var(--ctl-h-sm);height:var(--ctl-h-sm);display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:var(--ctl-radius);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.account-password-field button:hover{color:var(--text);background:var(--ink-wash)}.account-agree{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2);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(--accent)}.account-agree a{color:var(--accent);text-underline-offset:.16em}.account-error{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--danger-border);border-radius:var(--r);background:var(--danger-dim);color:var(--danger);font-size:var(--type-meta);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-2) var(--space-3);border:1px solid var(--success-border);border-radius:var(--r);background:var(--success-dim);color:var(--success);font-size:var(--type-meta);line-height:var(--lh-snug)}.account-switch{margin:var(--space-5) 0 0;text-align:center;color:var(--text-muted);font-size:var(--type-meta)}.account-link{padding:0;border:0;background:transparent;color:var(--accent);font:var(--ctl-weight) var(--type-meta)/var(--lh-snug) var(--font);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--accent-border-soft);text-underline-offset:3px;transition:color var(--dur-2) var(--ease-out),text-decoration-color var(--dur-2) var(--ease-out)}.account-link:hover{color:var(--accent-hover);text-decoration-color:currentColor}.account-loading{display:grid;place-items:center;gap:var(--space-4);padding-block:var(--space-8);text-align:center}.account-loading p{margin:0;color:var(--text-muted)}.account-loader{width:1.75rem;height:1.75rem;border:2px solid var(--border-strong);border-top-color:var(--text-muted);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;overscroll-behavior:contain;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{max-height:calc(100dvh - (var(--space-4) * 2));overflow-y:auto;overscroll-behavior:contain}.account-gate-close{margin-right:calc(var(--space-2) * -1)}.account-gate-close,.account-dialog-close{width:var(--ctl-h-md);height:var(--ctl-h-md);flex:0 0 auto;display:grid;place-items:center;border:1px solid transparent;border-radius:var(--ctl-radius);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.account-gate-close>svg,.account-dialog-close>svg{width:var(--ctl-icon-lg);height:var(--ctl-icon-lg)}.account-gate-close:hover,.account-dialog-close:hover{background:var(--ink-wash);color:var(--text)}.account-gate-close:active,.account-dialog-close:active{transform:scale(var(--ctl-press-icon));transition:transform var(--dur-0) var(--ease-spring)}.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(--text2);font-size:var(--type-eyebrow);font-weight:var(--fw-label);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-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(--surface3);color:var(--text2)}.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(--text-muted);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-2)}.account-profile-form button{min-height:var(--ctl-h-lg);padding:0 var(--ctl-px-md);border:1px solid var(--accent);border-radius:var(--ctl-radius);background:var(--accent);color:var(--on-accent);font:var(--ctl-weight) var(--ctl-fs-md)/1.2 var(--font);cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-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)}.account-profile-form button:disabled{background:var(--surface3);border-color:var(--border);color:var(--text-muted);cursor:not-allowed}.account-profile-form button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-accent)}.account-profile-form:has(.account-form-cancel){grid-template-columns:1fr auto auto}.account-profile-form .account-form-cancel{border-color:var(--border);background:var(--wash);color:var(--text2);box-shadow:var(--sheen-top-soft)}.account-profile-form .account-form-cancel:hover:not(:disabled){border-color:var(--border-strong);background:var(--wash-strong);color:var(--text);box-shadow:var(--sheen-top-soft),var(--shadow-float)}.account-canvas-link{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-canvas-link>div{flex:1;min-width:0;display:grid;gap:var(--space-1)}.account-canvas-link strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-canvas-link>div>span{color:var(--text-muted);font-size:var(--type-meta);overflow-wrap:anywhere}.account-canvas-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text2);font-style:normal;font-size:var(--type-meta);font-weight:600;white-space:nowrap}.account-connection-dot{width:.5rem;height:.5rem;flex:0 0 auto;border-radius:50%;background:var(--success);box-shadow:0 0 0 .1875rem var(--success-dim)}.account-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--rule)}.account-dialog-actions button{min-height:var(--ctl-h-md);padding:0 var(--ctl-px-md);display:flex;align-items:center;justify-content:center;gap:var(--ctl-gap);border:1px solid var(--border);border-radius:var(--ctl-radius);background:var(--wash);color:var(--text2);box-shadow:var(--sheen-top-soft);font:var(--ctl-weight) var(--ctl-fs-md)/1.2 var(--font);cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-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)}.account-dialog-actions button>svg{width:var(--ctl-icon-md);height:var(--ctl-icon-md)}.account-dialog-actions button:disabled{opacity:.5;cursor:wait}.account-dialog-actions button:hover:not(:disabled){background:var(--wash-strong);border-color:var(--border-strong);color:var(--text);box-shadow:var(--sheen-top-soft),var(--shadow-float)}.account-dialog-actions button.danger{color:var(--danger)}.account-dialog-actions button.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}@media(hover:hover){.account-profile-form button:hover:not(:disabled),.account-dialog-actions button:hover:not(:disabled){transform:translateY(var(--ctl-lift))}}.account-profile-form button:active:not(:disabled),.account-dialog-actions button:active:not(:disabled){transform:scale(var(--ctl-press));box-shadow:none;transition:transform var(--dur-0) var(--ease-spring)}.subscription-dialog{width:min(100%,32rem);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-4);border-bottom:1px solid var(--rule);background:var(--surface)}.subscription-loading{min-height:12rem;display:grid;place-items:center;align-content:center;gap:var(--space-3);color:var(--text-muted)}.subscription-loading p{margin:0}.subscription-content{display:grid;gap:var(--space-6)}.subscription-content h3{margin:0}.subscription-pending{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--warning-border);border-radius:var(--r2);background:var(--warning-dim)}.subscription-pending .account-loader{width:1.1rem;height:1.1rem;flex:0 0 auto}.subscription-pending p{flex:1;margin:0;color:var(--text2-bright);font-size:var(--type-body-sm);font-weight:600}.subscription-balance>p:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-3);color:var(--text2);font-size:var(--type-body)}.subscription-balance>p:first-child 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-balance.is-empty>p:first-child strong{color:var(--danger)}.subscription-meter{height:.5rem;overflow:hidden;border-radius:var(--card-radius-chip);background:var(--surface4)}.subscription-meter>span{display:block;width:var(--usage-left);height:100%;border-radius:inherit;background:var(--text2)}.subscription-balance-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-1) var(--space-3);margin-top:var(--space-2);color:var(--text-muted);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.subscription-extra{margin:var(--space-2) 0 0;color:var(--text2);font-size:var(--type-meta)}.subscription-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.subscription-row-head h3{flex:0 0 auto;color:var(--text);font-size:var(--type-section);font-weight:var(--fw-label);letter-spacing:var(--ls-section);text-transform:uppercase}.subscription-row-head:after{content:"";order:1;flex:1 1 1rem;height:1px;background:var(--rule)}.subscription-row-head span{order:2;flex:0 0 auto;color:var(--text-muted);font-size:var(--type-meta)}.subscription-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:var(--space-3)}.subscription-packs button{position:relative;display:grid;gap:var(--space-1);justify-items:start;min-height:5.5rem;padding:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--card-radius);background:transparent;color:inherit;font-family:var(--font);text-align:left;cursor:pointer;touch-action:manipulation;transition:transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.subscription-packs button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}.subscription-packs button:active:not(:disabled){transform:scale(var(--ctl-press-card));transition:transform var(--dur-0) var(--ease-spring)}.subscription-packs button:disabled{cursor:wait;opacity:.6}.subscription-packs button[aria-busy=true]{opacity:1;border-color:var(--accent)}.subscription-packs button.best{border-color:var(--accent-border-strong)}.subscription-packs strong{align-self:end;color:var(--text);font:600 var(--type-headline)/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-title);font-variant-numeric:tabular-nums}.subscription-packs button>span{color:var(--text2);font-size:var(--type-body-sm);font-weight:700;font-variant-numeric:tabular-nums}.subscription-packs em{position:absolute;top:calc(0px - var(--space-2));left:var(--space-3);max-width:calc(100% - var(--space-4));overflow:hidden;padding:0 var(--space-2);white-space:nowrap;text-overflow:ellipsis;background:var(--surface);color:var(--text2);font-size:var(--type-eyebrow);font-style:normal;font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.subscription-invite-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--card-radius);background:var(--surface)}.subscription-invite-copy{display:grid;flex:1;gap:2px;min-width:0;margin:0}.subscription-invite-copy strong{color:var(--text);font:600 var(--type-body)/var(--lh-snug) var(--font)}.subscription-invite-copy>span{color:var(--text2);font-size:var(--type-meta);line-height:var(--lh-snug);text-wrap:balance}.subscription-invite-btn{flex:0 0 auto;min-width:10.5rem;font-variant-numeric:tabular-nums;touch-action:manipulation}.subscription-invite-label{display:inline-flex;align-items:center;gap:var(--ctl-gap)}.subscription-invite-label>svg{flex:none;width:var(--ctl-icon);height:var(--ctl-icon)}.subscription-invite-fallback{margin:var(--space-2) 0 0;color:var(--text);font-size:var(--type-meta);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.subscription-soon,.subscription-error{margin:0;font-size:var(--type-body-sm)}.subscription-soon{color:var(--text-muted)}.subscription-error{margin-top:var(--space-3);color:var(--danger)}.subscription-pro{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--border-strong);border-radius:var(--card-radius);background:var(--surface)}.subscription-pro-copy{flex:1;min-width:0}.subscription-pro h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2);color:var(--text);font:600 var(--type-title)/var(--lh-snug) var(--font-display);letter-spacing:var(--ls-title)}.subscription-pro h3 span{color:var(--accent);font:700 var(--type-body-sm)/1 var(--font);font-variant-numeric:tabular-nums}.subscription-pro p{margin:var(--space-1) 0 0;color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-snug)}.subscription-pro .subscription-pro-year{color:var(--text-muted);font-size:var(--type-meta)}.subscription-pro>button{flex:0 0 auto;min-height:var(--tap-target);padding:0 var(--space-4);border:1px dashed var(--accent-border-strong);border-radius:var(--card-radius-chip);background:transparent;color:var(--accent);font:700 var(--type-meta)/1 var(--font);cursor:default}@media(max-width:480px){.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)}.subscription-content{gap:var(--space-5)}.subscription-packs{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.subscription-packs button{min-width:0;min-height:5rem;padding:var(--space-3) var(--space-2) var(--space-3) var(--space-3)}.subscription-packs strong{font-size:clamp(1rem,5vw,var(--type-title));white-space:nowrap}.subscription-packs em{left:50%;max-width:100%;padding:0 2px;letter-spacing:0;transform:translate(-50%)}.subscription-pro{flex-direction:column;align-items:flex-start;padding:var(--space-4)}.subscription-invite-row{flex-direction:column;align-items:stretch;gap:var(--space-3);padding:var(--space-4)}.subscription-invite-btn{width:100%}}.account-shell button:focus-visible,.account-shell a:focus-visible,.account-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.account-shell input:focus-visible,.account-dialog input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-color:var(--accent)}@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:600px){.account-google,.account-submit,.account-form input:not([type=checkbox]){min-height:var(--tap-target)}}@media(max-width:480px){.account-shell,.account-dialog{padding:var(--space-5)}.account-profile-form,.account-profile-form:has(.account-form-cancel){grid-template-columns:1fr}.account-dialog-actions{grid-template-columns:1fr}.account-gate-scrim{padding:var(--space-2)}}@media(prefers-reduced-motion:reduce){.account-shell,.account-dialog,.account-dialog-scrim,.account-gate-scrim,.account-loader{animation-duration:.01ms!important;animation-iteration-count:1!important}.subscription-packs button{transition:none}.subscription-packs button:hover:not(:disabled),.subscription-packs button:active:not(:disabled){transform:none}}.account-group{display:grid;gap:var(--space-2)}.account-group+.account-group{margin-top:var(--space-5)}.account-group-label{margin:0;color:var(--text-muted);font-size:var(--type-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.account-rows{display:grid;gap:var(--space-2)}.account-row{min-height:3rem;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--card-radius-row);background:var(--surface2);color:var(--text);font:600 var(--type-body-sm)/1.3 var(--font);text-align:left}button.account-row{cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}button.account-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-float)}@media(hover:hover)and (prefers-reduced-motion:no-preference){button.account-row:hover{transform:translateY(var(--ctl-lift))}}button.account-row:active{transform:scale(var(--ctl-press-card));box-shadow:none;transition:transform var(--dur-0) var(--ease-spring)}.account-row>svg{flex:0 0 auto;color:var(--text-muted)}.account-row>span{flex:1;min-width:0}.account-row>em{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:var(--space-1);font-style:normal;font-weight:500;color:var(--text-muted)}.account-row-static{justify-content:space-between}.account-row-static .lang-switch{margin-bottom:0}.account-row-style{flex-wrap:wrap;padding-block:var(--space-3)}.account-row-style>span{flex:0 0 auto}.account-beta{font-size:var(--type-meta)}.account-signin{width:100%}@media(max-width:600px){.account-row-static{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding-block:var(--space-3)}.account-row-style .style-choice{flex-basis:auto;align-self:stretch;max-width:none}}.account-school-row{gap:0;padding:0 var(--space-2) 0 0}.account-school-switch{flex:1;min-width:0;min-height:3rem;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border:0;border-radius:var(--card-radius-row);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.account-school-switch:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.account-school-switch:disabled{cursor:wait}.account-school-switch>span{flex:1;min-width:0;display:grid;gap:.125rem}.account-school-switch strong,.account-school-switch small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-school-switch small{color:var(--text-muted);font-size:var(--type-meta);font-weight:500}.account-school-switch>em{flex:0 0 auto;font-style:normal;color:var(--accent)}.account-school-row{transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.account-school-row:has(.account-school-switch:hover:not(:disabled)){border-color:var(--border-strong);box-shadow:var(--shadow-float)}.account-school-sub{margin:var(--space-3) 0 0;color:var(--text2);font-size:var(--type-body-sm);line-height:var(--lh-snug)}.account-profile-form.account-school-form{grid-template-columns:1fr;margin-top:var(--space-4)}.account-school-form .text-btn{justify-self:start}@font-face{font-family:Geist;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/geist-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:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fredoka-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:Nunito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/nunito-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:Atkinson Hyperlegible Next;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/atkinson-next-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}[data-style=planner]{--font: "Hanken Grotesk", "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, serif;--r: 8px;--r2: 12px;--r3: 16px}[data-style=glass]{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Geist", "Segoe UI Variable Text", "Segoe UI", sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Geist", "Segoe UI Variable Display", "Segoe UI", sans-serif;--r: 12px;--r2: 18px;--r3: 26px;--fw-title: 650;--fw-label: 650;--ctl-weight: 600;--ls-title: -.015em;--ls-display: -.035em;--ls-eyebrow: .03em;--ls-section: 0;--lh-body: 1.5;--ctl-radius: 999px;--ctl-radius-inset: 999px;--ease-spring: cubic-bezier(.3, 1.55, .45, 1);--ctl-press: .95;--ctl-press-icon: .88}[data-style=cozy]{--font: "Nunito", "Segoe UI", sans-serif;--font-display: "Fredoka", "Nunito", sans-serif;--r: 14px;--r2: 20px;--r3: 26px;--fw-title: 600;--fw-label: 800;--ctl-weight: 700;--ls-title: 0;--ls-display: -.01em;--ls-eyebrow: .05em;--ls-section: .02em;--lh-body: 1.7;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ctl-lift: -2px;--ctl-press: .99;--ctl-press-y: 2px}[data-style=focus]{--font: "Atkinson Hyperlegible Next", "Segoe UI", sans-serif;--font-display: "Atkinson Hyperlegible Next", "Segoe UI", sans-serif;--r: 6px;--r2: 8px;--r3: 10px;--fw-title: 700;--fw-label: 700;--ctl-weight: 700;--ls-title: 0;--ls-display: -.01em;--ls-eyebrow: .04em;--ls-section: .02em;--lh-body: 1.6;--dur-2: .1s;--dur-3: .12s;--ctl-lift: 0px;--ctl-press: 1;--ctl-press-icon: 1;--ctl-press-card: 1}html[data-style=focus] :is(.mo-stagger,.mo-stagger-fast){animation-delay:0s}html[data-style=focus] .mo-lift:hover,html[data-style=focus] .mo-press:active:not(:disabled){transform:none}html[data-style=glass]{font-size:106.25%}html[data-style=focus]{font-size:112.5%}html:is([data-style=glass],[data-style=cozy],[data-style=focus]) body:before{display:none}html:is([data-style=glass],[data-style=cozy]){background-color:var(--bg)}html:is([data-style=glass],[data-style=cozy]) body{background:transparent}html:is([data-style=glass],[data-style=cozy]) body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--backdrop)}html[data-style=glass] .topbar{top:var(--space-3);margin:var(--space-3) var(--space-4) 0;border:1px solid var(--glass-edge);border-radius:999px;box-shadow:var(--shadow-float);backdrop-filter:blur(10px) saturate(180%) brightness(1.04);-webkit-backdrop-filter:blur(10px) saturate(180%) brightness(1.04)}html[data-style=glass] .topbar:after{display:none}html[data-style=glass] .topbar{padding-inline:calc(max(0px,100% - 1600px) / 2 + var(--space-6) - var(--space-4))}@media(max-width:768px){html[data-style=glass] .topbar{top:var(--space-2);margin:var(--space-2) var(--space-2) 0;padding-inline:calc(var(--space-4) - var(--space-2))}}html[data-style=glass] .course-sidebar{top:calc(var(--space-3) + 64px + var(--space-8))}html[data-style=glass] :where(.course-card,.deadline-item,.glance-card,.workshop-card,.wb-card,.wb-controls,.asgn-card,.detail-header-card,.hero-copy,.hero-stat-card,.course-sidebar,.m-card,.m-ledger,.m-row.m-course,.m-ans,.m-stat){background-color:var(--surface);box-shadow:var(--shadow-card)}html[data-style=glass] :is(.course-card,.deadline-item,.glance-card,.workshop-card,.wb-card,.wb-controls,.asgn-card,.detail-header-card,.hero-copy,.hero-stat-card,.course-sidebar,.m-card,.m-ledger,.m-row.m-course,.m-ans,.m-stat):not(.alert,.active){border-color:var(--border)}html[data-style=glass] :where(.m-card,.m-ledger,.m-row.m-course,.m-stat){-webkit-backdrop-filter:blur(16px) saturate(170%);backdrop-filter:blur(16px) saturate(170%)}html[data-style=cozy] .glance-card{background:var(--surface);box-shadow:var(--shadow-card)}html[data-style=glass] :is([role=dialog],[role=menu],[role=listbox],.m-sheet:not(.full),.course-selector-menu,.account-dialog){backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%)}html[data-style=glass] .account-dialog{background:var(--popover-bg)}html[data-style=glass] .m-top{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:0}html[data-style=glass] .m-top:after{display:none}html[data-style=glass] .m-top :is(.m-iconbtn,.m-back){background:var(--topbar-bg);border-color:var(--glass-edge);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(10px) saturate(180%) brightness(1.04);backdrop-filter:blur(10px) saturate(180%) brightness(1.04)}html[data-style=glass] .m-tabbar{position:absolute;left:var(--space-4);right:var(--space-4);bottom:calc(var(--safe-bottom) + var(--space-2));z-index:5;height:var(--tabbar-h);padding-bottom:0;border:1px solid var(--glass-edge);border-radius:999px;box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(10px) saturate(180%) brightness(1.04);backdrop-filter:blur(10px) saturate(180%) brightness(1.04)}html[data-style=glass] .m-main{padding-bottom:calc(var(--tabbar-h) + var(--space-2) + var(--safe-bottom));-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--pad-page-y, var(--space-3)));mask-image:linear-gradient(to bottom,transparent,#000 var(--pad-page-y, var(--space-3)))}html[data-style=glass] .m-tabbar:before,html[data-style=glass] .m-tab.active:after{display:none}html[data-style=glass] .section-heading,html[data-style=glass] .m-section .m-section-text{font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);letter-spacing:var(--ls-title);text-transform:none}html[data-style=glass] .dashboard-content .section-heading:before,html[data-style=glass] .asgn-group-list .section-heading:before,html[data-style=glass] .m-section .m-section-num{display:none}html[data-style=glass] .section-heading:after,html[data-style=glass] .m-section .m-section-rule{align-self:center;height:8px;border:1px solid var(--glass-edge);border-radius:999px;background:linear-gradient(to bottom,var(--glass-edge),transparent) top / 100% 55% no-repeat,var(--surface);box-shadow:var(--sheen-top),inset 0 -1px color-mix(in srgb,var(--shadow-ink) 8%,transparent),0 3px 8px color-mix(in srgb,var(--shadow-ink) 14%,transparent);-webkit-mask-image:linear-gradient(to right,#000 55%,transparent);mask-image:linear-gradient(to right,#000 55%,transparent)}html[data-style=cozy] .topbar,html[data-style=cozy] .m-top{border-bottom:2px dotted var(--border-strong)}html[data-style=cozy] .m-tabbar{border-top:2px dotted var(--border-strong);border-radius:var(--r3) var(--r3) 0 0}html[data-style=cozy] :is(.topbar,.m-top):after,html[data-style=cozy] .m-tabbar:before,html[data-style=cozy] .m-tab.active:after{display:none}html[data-style=cozy] .section-heading,html[data-style=cozy] .m-section .m-section-text{font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);letter-spacing:var(--ls-title);text-transform:none}html[data-style=cozy] .dashboard-content .section-heading:before,html[data-style=cozy] .asgn-group-list .section-heading:before,html[data-style=cozy] .m-section .m-section-num{display:none}html[data-style=cozy] .section-heading:after,html[data-style=cozy] .m-section .m-section-rule{height:0;background:none;border-top:2px dotted var(--border-strong)}html[data-style=focus] .topbar,html[data-style=focus] .m-top{border-bottom-width:2px}html[data-style=focus] .m-tabbar{border-top-width:2px}html[data-style=focus] :is(.topbar,.m-top):after,html[data-style=focus] .m-tabbar:before{display:none}html[data-style=focus] .section-heading,html[data-style=focus] .m-section .m-section-text{font-size:var(--type-body-lg, 1.125rem);letter-spacing:0;text-transform:none}html[data-style=focus] .dashboard-content .section-heading:before,html[data-style=focus] .asgn-group-list .section-heading:before,html[data-style=focus] .m-section .m-section-num{display:none}html[data-style=focus] .section-heading:after,html[data-style=focus] .m-section .m-section-rule{height:2px;background:var(--text)}html[data-style=focus] a:not([class]){text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em}.style-choice{container-type:inline-size;flex:1 1 19rem;min-width:0;max-width:26rem}.style-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}@container (max-width: 18.5rem){.style-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.style-tile{position:relative;display:flex;min-width:0;padding:0;border:0;border-radius:var(--r2);background:none;color:var(--text);font:inherit;cursor:pointer;transition:transform var(--dur-2) var(--ease-out)}.style-tile:after{content:"";position:absolute;inset:0;border:1px solid var(--border);border-radius:inherit;pointer-events:none;transition:border-color var(--dur-2) var(--ease-out)}@media(hover:hover){.style-tile:hover{transform:translateY(var(--ctl-lift))}.style-tile:hover:after{border-color:var(--border-strong)}}.style-tile:active{transform:scale(var(--ctl-press));transition:transform var(--dur-0) var(--ease-spring)}.style-tile[aria-pressed=true]:after{inset:-3px;border:2px solid var(--accent);border-radius:calc(var(--r2) + 3px)}.style-swatch{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:var(--space-2);overflow:hidden;border-radius:inherit;background:var(--backdrop),var(--bg);color:var(--text);font-family:var(--font);line-height:1.2;text-align:left}.style-swatch-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.style-swatch-aa{font-family:var(--font-display);font-size:var(--type-title);font-weight:var(--fw-title);letter-spacing:var(--ls-display);line-height:1}.style-swatch-card{display:flex;flex-direction:column;gap:3px;flex:0 1 1.75rem;min-width:1rem;padding:4px;border:1px solid var(--border);border-radius:calc(var(--r) * .6);background:var(--surface);box-shadow:var(--shadow-card)}.style-swatch-card i{display:block;height:3px;border-radius:2px;background:var(--text-muted);opacity:.45}.style-swatch-card i:last-child{width:75%;height:5px;border-radius:var(--ctl-radius);background:var(--accent);opacity:1}.style-swatch-name{overflow:hidden;font-size:var(--type-meta);font-weight:var(--ctl-weight);text-overflow:ellipsis;white-space:nowrap}.style-tile-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
