@import"https://fonts.googleapis.com/css2?family=Chewy&family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Jolly+Lodger&display=swap";:root{--color-primary: #7c3aed;--color-primary-hover: #6d28d9;--color-primary-light: #f39dff;--color-primary-dark: #6d28d9;--color-primary-light-alpha20: rgba(243, 157, 255, .2);--color-secondary: #d659ff;--color-accent: #7c3aed;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-label-active: #ffffff;--gradient-primary: linear-gradient(135deg, #d659ff 0%, #7c3aed 100%);--gradient-primary-hover: linear-gradient(135deg, #b642ff 0%, #6d28d9 100%);--color-primary-glow: rgba(182, 66, 255, .35);--bg-page: #0e0620;--bg-canvas: radial-gradient(1200px 800px at 14% -15%, rgba(182, 66, 255, .28), transparent 58%), radial-gradient(900px 700px at 95% 10%, rgba(124, 58, 237, .2), transparent 60%), linear-gradient(180deg, #2a0244 0%, #24003b 38%, #1d0032 100%);--bg-surface: #170b30;--bg-surface-hover: #21123f;--bg-card: #170b30;--bg-input: #1c0f38;--bg-input-focus: #26154c;--border-subtle: rgba(180, 130, 255, .14);--border-focus: rgba(180, 130, 255, .32);--border-error: #ff4444;--text-primary: #ffffff;--text-secondary: #cbbbe6;--text-muted: #9a86b0;--text-error: #ef4444;--text-success: #10b981;--color-error: #ef4444;--shadow-card: none;--shadow-primary: none;--shadow-button: 0 4px 14px rgba(124, 58, 237, .25);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.16, 1, .3, 1);--transition-normal: .3s cubic-bezier(.16, 1, .3, 1);--transition-slow: .5s cubic-bezier(.16, 1, .3, 1);--canvas-width: 420px;--stage-bg: #1c0f38;--stage-border: rgba(180, 130, 255, .14);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--font-family: "Inter", system-ui, -apple-system, sans-serif;--color-on-accent: #0e0620;--accent-text: #f39dff;--accent-soft-text: #f3d8ff;--menu-option-text: #5b4a78;--menu-option-hover-text: #4c1d95;--overlay-faint: rgba(255, 255, 255, .03);--overlay-subtle: rgba(255, 255, 255, .05);--overlay-soft: rgba(255, 255, 255, .08);--overlay-medium: rgba(255, 255, 255, .12);--overlay-strong: rgba(255, 255, 255, .22);--border-faint: rgba(255, 255, 255, .1);--border-overlay: rgba(255, 255, 255, .15);--scrim: rgba(0, 0, 0, .5);--scrim-strong: rgba(0, 0, 0, .55);--hero-fade: rgba(15, 15, 25, .5);--surface-menu: rgba(255, 255, 255, .98);--popover-bg: rgba(13, 16, 23, .9);--shadow-popover: 0 10px 25px rgba(0, 0, 0, .4);--toast-shadow: 0 10px 30px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .05);--floating-shadow: 0 12px 30px rgba(0, 0, 0, .45);--sidebar-bg: rgba(18, 8, 38, .72);--navbar-bg: rgba(13, 13, 26, .85);--panel-glass-bg: rgba(12, 13, 20, .85);--card-tinted-bg: radial-gradient(circle at 100% 0%, rgba(139, 92, 246, .04) 0%, rgba(13, 13, 26, .85) 100%);--heading-solid: #ffffff;--divider-gradient: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.08) 50%, rgba(255,255,255,0) 100%);--label-active-glow: rgba(255, 255, 255, .2);--input-inset-shadow: inset 0 2px 4px rgba(0, 0, 0, .2);--code-bg: #0e0620;--scrollbar-thumb: rgba(252, 194, 255, .32);--chat-header-bg: linear-gradient(180deg, rgba(50, 6, 75, .9), rgba(43, 4, 68, .68));--chat-header-border: rgba(241, 173, 255, .2);--shadow-header: 0 10px 26px rgba(20, 0, 32, .35);--chat-title-text: #fdf6ff;--bubble-assistant-bg: linear-gradient(180deg, rgba(129, 43, 163, .56), rgba(97, 22, 133, .72));--bubble-assistant-text: #f9eaff;--bubble-assistant-border: rgba(250, 181, 255, .34);--bubble-assistant-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 8px 24px rgba(28, 0, 41, .4);--bubble-divider: rgba(255, 218, 255, .18);--accent-inline-strong: #ffd1ff;--danger-bubble-bg: rgba(80, 8, 25, .78);--danger-bubble-border: rgba(253, 130, 152, .45);--danger-bubble-text: #ffd8e0;--composer-bg: linear-gradient(180deg, rgba(104, 26, 145, .86), rgba(80, 14, 116, .88));--composer-focus-bg: linear-gradient(180deg, rgba(121, 30, 170, .92), rgba(95, 20, 137, .92));--composer-border: rgba(255, 193, 255, .36);--composer-focus-border: rgba(255, 229, 255, .64);--composer-placeholder: rgba(252, 230, 255, .75);--composer-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 12px 35px rgba(40, 0, 56, .52);--composer-focus-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 14px 40px rgba(43, 0, 60, .6);--send-disabled-bg: rgba(255, 255, 255, .22);--send-disabled-text: rgba(255, 255, 255, .65);--accent-hover-fill: rgba(243, 157, 255, .18);--accent-hover-border: rgba(255, 193, 255, .5);--selected-border: rgba(124, 58, 237, .45);--selected-fill: rgba(124, 58, 237, .15);--pill-accent-bg: rgba(157, 78, 221, .15);--pill-accent-border: rgba(157, 78, 221, .3);--pill-accent-text: #E9D5FF;--pill-accent-hover-bg: rgba(157, 78, 221, .25);--auth-page-bg: radial-gradient(520px 320px at 50% 105%, rgba(234, 108, 255, .33), rgba(234, 108, 255, 0) 74%), radial-gradient(880px 700px at 15% -10%, rgba(181, 60, 255, .3), transparent 62%), linear-gradient(180deg, #370047 0%, #4f005f 45%, #4b0054 100%);--auth-decor-icon: rgba(230, 188, 255, .46);--auth-heading-text: #f6d8ff;--auth-body-text: #f4dcff;--auth-label-text: #ffffff;--auth-link-text: #f5d8ff;--auth-switch-text: #f5dcff;--auth-switch-btn-text: #ffd5ff;--auth-social-bg: rgba(245, 198, 255, .19);--auth-social-border: rgba(249, 210, 255, .38);--auth-social-hover-bg: rgba(250, 224, 255, .28);--auth-input-bg: rgba(243, 214, 255, .95);--auth-input-border: rgba(255, 199, 255, .42);--auth-input-focus-bg: rgba(250, 237, 255, .98);--auth-placeholder: rgba(92, 53, 118, .56)}:root[data-theme=light]{--bg-page: #f7f5fb;--bg-canvas: radial-gradient(1200px 800px at 14% -15%, rgba(124, 58, 237, .08), transparent 58%), radial-gradient(900px 700px at 95% 10%, rgba(214, 89, 255, .07), transparent 60%), linear-gradient(180deg, #fbf9fe 0%, #f8f5fc 40%, #f5f2fa 100%);--bg-surface: #ffffff;--bg-surface-hover: #f3eefb;--bg-card: #ffffff;--bg-input: #f4f1fa;--bg-input-focus: #efeaf8;--stage-bg: #f4f1fa;--border-subtle: rgba(60, 35, 110, .14);--border-focus: rgba(124, 58, 237, .35);--stage-border: rgba(60, 35, 110, .14);--text-primary: #241a38;--text-secondary: #55496d;--text-muted: #8578a1;--color-label-active: #5b21b6;--color-secondary: #a21caf;--accent-text: #9333ea;--accent-soft-text: #86198f;--shadow-card: 0 1px 2px rgba(35, 20, 60, .05), 0 4px 14px rgba(35, 20, 60, .06);--shadow-button: 0 4px 14px rgba(124, 58, 237, .22);--overlay-faint: rgba(45, 25, 90, .04);--overlay-subtle: rgba(45, 25, 90, .06);--overlay-soft: rgba(45, 25, 90, .09);--overlay-medium: rgba(45, 25, 90, .12);--overlay-strong: rgba(45, 25, 90, .2);--border-faint: rgba(45, 25, 90, .12);--border-overlay: rgba(45, 25, 90, .18);--scrim: rgba(35, 20, 60, .45);--scrim-strong: rgba(35, 20, 60, .5);--hero-fade: rgba(124, 58, 237, .05);--popover-bg: rgba(255, 255, 255, .98);--shadow-popover: 0 10px 30px rgba(35, 20, 60, .18);--toast-shadow: 0 10px 30px rgba(35, 20, 60, .16), inset 0 1px 0 rgba(255, 255, 255, .6);--floating-shadow: 0 12px 30px rgba(35, 20, 60, .18);--sidebar-bg: rgba(255, 255, 255, .82);--navbar-bg: rgba(255, 255, 255, .88);--panel-glass-bg: rgba(255, 255, 255, .92);--card-tinted-bg: radial-gradient(circle at 100% 0%, rgba(139, 92, 246, .07) 0%, #ffffff 100%);--heading-solid: #241a38;--divider-gradient: linear-gradient(90deg, rgba(45,25,90,0) 0%, rgba(45,25,90,.12) 50%, rgba(45,25,90,0) 100%);--label-active-glow: rgba(91, 33, 182, .12);--input-inset-shadow: none;--code-bg: #f3effb;--scrollbar-thumb: rgba(124, 58, 237, .3);--chat-header-bg: linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(250, 246, 255, .85));--chat-header-border: rgba(124, 58, 237, .16);--shadow-header: 0 6px 18px rgba(35, 20, 60, .08);--chat-title-text: #241a38;--bubble-assistant-bg: linear-gradient(180deg, #ffffff, #faf7ff);--bubble-assistant-text: #2b2140;--bubble-assistant-border: rgba(124, 58, 237, .22);--bubble-assistant-shadow: 0 4px 14px rgba(35, 20, 60, .08);--bubble-divider: rgba(45, 25, 90, .12);--accent-inline-strong: #86198f;--danger-bubble-bg: #fdf2f3;--danger-bubble-border: rgba(239, 68, 68, .35);--danger-bubble-text: #9f1239;--composer-bg: rgba(255, 255, 255, .95);--composer-focus-bg: #ffffff;--composer-border: rgba(124, 58, 237, .28);--composer-focus-border: rgba(124, 58, 237, .55);--composer-placeholder: rgba(45, 25, 90, .5);--composer-shadow: 0 8px 24px rgba(35, 20, 60, .1);--composer-focus-shadow: 0 0 0 3px rgba(124, 58, 237, .15), 0 8px 24px rgba(35, 20, 60, .12);--send-disabled-bg: rgba(45, 25, 90, .12);--send-disabled-text: rgba(45, 25, 90, .45);--accent-hover-fill: rgba(147, 51, 234, .12);--accent-hover-border: rgba(147, 51, 234, .4);--selected-border: rgba(124, 58, 237, .4);--selected-fill: rgba(124, 58, 237, .1);--pill-accent-bg: rgba(124, 58, 237, .1);--pill-accent-border: rgba(124, 58, 237, .25);--pill-accent-text: #6b21a8;--pill-accent-hover-bg: rgba(124, 58, 237, .16);--auth-page-bg: radial-gradient(520px 320px at 50% 105%, rgba(214, 89, 255, .14), rgba(214, 89, 255, 0) 74%), radial-gradient(880px 700px at 15% -10%, rgba(124, 58, 237, .1), transparent 62%), linear-gradient(180deg, #fbf8fd 0%, #f7f0fc 45%, #f4ecfa 100%);--auth-decor-icon: rgba(124, 58, 237, .25);--auth-heading-text: #4a1250;--auth-body-text: #5d3a72;--auth-label-text: #3d2350;--auth-link-text: #7e22ce;--auth-switch-text: #5d3a72;--auth-switch-btn-text: #9333ea;--auth-social-bg: rgba(255, 255, 255, .7);--auth-social-border: rgba(124, 58, 237, .28);--auth-social-hover-bg: #ffffff;--auth-input-bg: #ffffff;--auth-input-focus-bg: #fdfbff;--auth-placeholder: rgba(61, 35, 80, .55)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);background-color:var(--bg-page);color:var(--text-primary);min-height:100vh;min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}a{color:var(--color-secondary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary)}button{cursor:pointer;font-family:var(--font-family);border:none;outline:none}input,textarea{font-family:var(--font-family)}.page-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--bg-canvas)}.page-bg-mid,.ai-glow-spot{display:none}.dashboard-badge,.premium-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary)}.dashboard-badge-dot{width:5px;height:5px;border-radius:50%;background:var(--text-muted)}.premium-badge.active{color:var(--text-success);border-color:#10b98133;background:#10b9810d}.shimmer{background:linear-gradient(90deg,var(--overlay-faint) 25%,var(--overlay-soft) 50%,var(--overlay-faint) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.glass-card{background:var(--bg-card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;letter-spacing:.015em;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,transform .15s ease,border-color .18s ease,color .18s ease;border:1.5px solid transparent;outline:none;white-space:nowrap;text-decoration:none;-webkit-font-smoothing:antialiased}.btn:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:3px}.form-select-trigger:focus-visible,.form-icon-right button:focus-visible,.auth-password-toggle:focus-visible,.avatar-upload-btn:focus-visible,.session-item:focus-visible,.nav-item:focus-visible,.mobile-nav-item:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:3px}.btn-primary{background:var(--gradient-primary);color:#fff;border-color:transparent;box-shadow:0 1px 2px #00000014,0 4px 12px #7c3aed47}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a,0 8px 20px #7c3aed61}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 2px #00000014,0 3px 8px #7c3aed38}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost{background:#fff;color:var(--color-primary);border-color:var(--border-subtle);box-shadow:0 1px 3px #0000000f}.btn-ghost:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:#c4b5fd;box-shadow:0 2px 8px #7c3aed1f}.btn-ghost:active{background:#ede9fe;border-color:#a78bfa;box-shadow:none}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-full{width:100%}.form-field{position:relative;width:100%}.form-input{width:100%;padding:24px 16px 8px;background:var(--bg-input);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;line-height:1.4;transition:all var(--transition-normal);outline:none;caret-color:var(--color-secondary);box-shadow:var(--input-inset-shadow)}.form-input::placeholder{color:transparent}.form-input:focus{background:var(--bg-input-focus);box-shadow:0 0 0 3px #a855f71a}.form-input.has-error{border-color:var(--border-error);box-shadow:0 0 0 3px #ef44441a}.form-input.has-icon{padding-right:44px}.form-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.9375rem;font-weight:400;pointer-events:none;transition:top .18s ease,font-size .18s ease,color .18s ease,transform .18s ease,font-weight .18s ease;white-space:nowrap;line-height:1}.form-label--active{top:8px;transform:none;font-size:.6875rem;font-weight:700;letter-spacing:.08em;color:var(--color-label-active);text-shadow:0 0 8px var(--label-active-glow)}.form-icon-right{position:absolute;right:12px;top:68%;transform:translateY(-50%);color:var(--text-muted);display:flex;align-items:center;justify-content:center;z-index:2}.form-icon-right button{background:none!important;border:none!important;padding:0;margin:0;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;line-height:1;outline:none;font-size:1.1rem;transition:color var(--transition-fast)}.form-icon-right button:hover{color:var(--text-secondary)}.form-select-container{position:relative;width:100%;z-index:1}.form-select-container.has-open{z-index:999!important}.form-select-trigger{cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:58px;background:var(--bg-input);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);padding:0 16px;transition:all var(--transition-normal)}.form-select-trigger.is-open{border-color:var(--color-primary);background:var(--bg-input-focus)}.form-select-value{font-size:.9375rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.form-placeholder{color:var(--text-muted)}.form-select-arrow i{transition:transform .3s ease}.form-select-arrow i.rotate{transform:rotate(180deg)}.form-select-dropdown{position:absolute;top:calc(100% - 1.5px);left:0;right:0;background:var(--surface-menu);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid var(--color-primary);border-top:none;border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);z-index:100;list-style:none;padding:8px 0;margin:0;max-height:240px;overflow-y:auto;box-shadow:var(--shadow-popover)}.form-select-option{padding:10px 16px;font-size:.875rem;color:var(--menu-option-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between}.form-select-option:hover{background:#6d28d91f;color:var(--menu-option-hover-text);padding-left:20px}.form-select-option.is-selected{color:var(--color-primary);font-weight:600;background:#6d28d914}.form-select-dropdown::-webkit-scrollbar{width:5px}.form-select-dropdown::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:10px}.slide-down{animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-error{font-size:.8125rem;color:var(--text-error);margin-top:5px;padding-left:4px;display:flex;align-items:center;gap:6px}.divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:.8125rem;font-weight:500}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.social-icons-row{display:flex;align-items:center;justify-content:center;gap:16px}.social-icon-btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--border-subtle);background:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--text-primary);flex-shrink:0;box-shadow:0 1px 3px #00000012;cursor:pointer;outline:none}.social-icon-btn:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:3px}.social-icon-btn:hover{transform:translateY(-2px);border-color:#c4b5fd;background:#faf5ff;box-shadow:0 6px 18px #7c3aed24}.social-icon-btn:active{transform:translateY(0);box-shadow:0 1px 3px #00000012}.social-icon-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.social-icon-google:hover{border-color:#4285f48c;background:#4285f40d;box-shadow:0 6px 18px #4285f42e}.social-icon-facebook:hover{border-color:#1877f28c;background:#1877f20d;box-shadow:0 6px 18px #1877f22e}.social-icon-x:hover{border-color:#1e1e1e59;background:#00000008;box-shadow:0 6px 18px #0000001a}.social-icon-instagram:hover{border-color:#dc274373;background:#dc27430a;box-shadow:0 6px 18px #bc188829}.tabs{position:relative;display:flex;background:var(--overlay-subtle);border-radius:var(--radius-md);padding:4px;gap:0}.tab-pill{position:absolute;top:4px;left:4px;width:calc(50% - 4px);bottom:4px;background:var(--color-primary);border-radius:calc(var(--radius-md) - 3px);box-shadow:none;transition:transform .3s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:0}.tab-pill--right{transform:translate(100%)}.tab-btn{position:relative;z-index:1;flex:1;padding:10px 16px;border-radius:calc(var(--radius-md) - 3px);font-size:.9rem;font-weight:600;color:var(--text-muted);background:transparent;border:none;transition:color .25s ease}.tab-btn.active{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.15)}.tab-btn:not(.active):hover{color:var(--text-primary)}.toast-container{position:fixed;top:32px;right:32px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:16px;background:#fffffff5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.08);font-family:var(--font-family);font-size:.875rem;font-weight:500;color:#09090b;width:360px;pointer-events:all;box-shadow:var(--toast-shadow);position:relative;overflow:hidden;animation:toastEntrance .45s cubic-bezier(.175,.885,.32,1.15) forwards;transition:all .3s ease}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px}.toast.exiting{animation:toastExit .3s ease forwards}.toast-success{border-color:#10b98126}.toast-success:before{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 0 10px #10b98199}.toast-success svg{color:#34d399;filter:drop-shadow(0 0 4px rgba(52,211,153,.3));flex-shrink:0}.toast-error{border-color:#ef444426}.toast-error:before{background:linear-gradient(180deg,#ef4444,#dc2626);box-shadow:0 0 10px #ef444499}.toast-error svg{color:#f87171;filter:drop-shadow(0 0 4px rgba(248,113,113,.3));flex-shrink:0}.toast-info{border-color:#8b5cf626}.toast-info:before{background:linear-gradient(180deg,#8b5cf6,#6d28d9);box-shadow:0 0 10px #8b5cf699}.toast-info svg{color:#c084fc;filter:drop-shadow(0 0 4px rgba(192,132,252,.3));flex-shrink:0}@keyframes toastEntrance{0%{opacity:0;transform:translate(50px) scale(.9);filter:blur(4px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}@keyframes toastExit{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(50px) scale(.9);filter:blur(4px)}}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-color:color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.spinner-sm{width:14px;height:14px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px 32px;overflow:hidden;background:var(--auth-page-bg)}.auth-container{position:relative;z-index:2;width:100%;max-width:390px}.auth-bg-icons{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;opacity:.36}.auth-bg-icon{position:absolute;color:var(--auth-decor-icon);font-size:1.7rem}.auth-bg-icon:nth-child(1){left:12%;top:10%}.auth-bg-icon:nth-child(2){right:20%;top:9%;font-size:1.85rem}.auth-bg-icon:nth-child(3){right:11%;top:14%;font-size:1.8rem;transform:rotate(-15deg)}.auth-bg-icon:nth-child(4){left:12%;top:30%}.auth-bg-icon:nth-child(5){right:16%;top:34%}.auth-bg-icon:nth-child(6){left:8%;top:53%}.auth-bg-icon:nth-child(7){right:23%;top:58%;transform:rotate(-22deg)}.auth-bg-icon:nth-child(8){right:7%;top:66%;font-size:1.4rem}.auth-bg-icon:nth-child(9){left:13%;bottom:12%}.auth-bg-icon:nth-child(10){right:15%;bottom:13%}.auth-bg-icon:nth-child(11){left:42%;top:24%;font-size:1.5rem}.auth-bg-icon:nth-child(12){left:38%;bottom:18%;font-size:1.55rem}.auth-page .auth-card{background:transparent;border:none;box-shadow:none;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.auth-card{padding:0}@media(max-width:480px){.auth-card{padding:0}}.auth-card-header{margin-bottom:24px;text-align:center}.auth-card-header h1{font-family:Jolly Lodger,cursive;font-size:clamp(2.1rem,8vw,3rem);font-weight:400;font-style:regular;color:var(--auth-heading-text);margin-bottom:8px;letter-spacing:.01em;line-height:.95;text-shadow:0 6px 18px rgba(34,0,53,.35)}.auth-card-header p{color:var(--auth-body-text);font-size:1rem;font-weight:600;line-height:1.4}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-page .auth-form .form-label{position:static;transform:none;display:block;margin-bottom:6px;color:var(--auth-label-text);font-size:1rem;font-weight:400;letter-spacing:0;line-height:1;font-family:system-ui,-apple-system,sans-serif}.auth-page .auth-form .form-label--active{top:auto;transform:none;font-size:1rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--auth-label-text)}.auth-page .auth-form .form-input{padding:11px 14px;min-height:44px;border-radius:var(--radius-sm);background:var(--auth-input-bg);border:2px solid var(--auth-input-border);color:#2f003f;box-shadow:none;font-size:1rem}.auth-page .auth-form .form-input::placeholder{color:var(--auth-placeholder)}.auth-page .auth-form .form-input:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px var(--color-primary-light-alpha20);background:var(--auth-input-focus-bg)}.auth-page .auth-form .form-select-trigger{background:var(--auth-input-bg);border:2px solid var(--auth-input-border);color:#2f003f;box-shadow:none;border-radius:var(--radius-sm);padding:0 14px;min-height:44px}.auth-page .auth-form .form-select-trigger.is-open{border-color:var(--color-primary-light);box-shadow:0 0 0 3px var(--color-primary-light-alpha20);background:var(--auth-input-focus-bg)}.auth-page .auth-form .form-select-value{color:#2f003f}.auth-page .auth-form .form-placeholder{color:var(--auth-placeholder)}.auth-page .auth-form .form-select-dropdown{background:var(--auth-input-focus-bg);border:2px solid var(--auth-input-border);box-shadow:none}.auth-page .auth-form .form-select-option{color:#2f003f}.auth-page .auth-form .form-select-option:hover{background:#7c3aed1a;color:#2f003f;padding-left:20px}.auth-page .auth-form .form-select-option.is-selected{background:#7c3aed29;color:#2f003f}.auth-page .auth-form .form-label{color:var(--auth-label-text)}.auth-page .auth-form .form-field{margin-bottom:0}.auth-form-footer{text-align:center;margin-top:6px}.auth-form-footer a{font-size:.875rem;color:var(--text-muted);transition:color var(--transition-fast)}.auth-form-footer a:hover{color:var(--color-secondary)}.auth-primary-btn{margin-top:10px;width:100%;min-height:48px;border:none;border-radius:10px;background:linear-gradient(180deg,#e890ff,#cf6df0);color:#320344;font-size:1rem;font-weight:700;font-family:system-ui,-apple-system,sans-serif;font-style:regular;letter-spacing:.01em;box-shadow:0 8px 18px #42005a52;align-self:center}.auth-btn-content{display:inline-flex;align-items:center;justify-content:center;gap:10px}.auth-primary-btn.is-loading{opacity:.85;cursor:progress}.auth-link-btn{align-self:center;background:none;border:none;color:var(--auth-link-text);font-weight:500;text-decoration:underline;text-underline-offset:3px;padding:0;margin-top:2px;margin-bottom:4px;font-size:.96rem}.auth-link-btn:hover{color:var(--auth-heading-text)}.auth-switch-text{text-align:center;font-size:1rem;color:var(--auth-switch-text);margin-top:20px}.auth-switch-text button{background:none;color:var(--auth-switch-btn-text);font-size:1rem;font-weight:700;text-transform:capitalize;text-decoration:underline;text-underline-offset:3px;padding:0;margin-left:4px;transition:color var(--transition-fast)}.auth-switch-text button:hover{color:var(--auth-heading-text)}.auth-social-block{margin-top:20px}.auth-page .social-icons-row{gap:18px}.auth-page .social-icon-btn{width:50px;height:50px;background:var(--auth-social-bg);border:1px solid var(--auth-social-border);box-shadow:inset 0 1px #ffffff42}.auth-page .social-icon-btn:hover{transform:translateY(-2px) scale(1.03);background:var(--auth-social-hover-bg)}.auth-password-toggle{background:transparent;color:#562970b3;border:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;line-height:1;font-size:.95rem}.auth-password-toggle:hover{color:#340751f2}.dashboard-page{position:relative;height:100vh;height:100dvh;display:flex;overflow:hidden;background:transparent}.app-sidebar{width:260px;height:100vh;height:100dvh;position:sticky;top:0;background:var(--sidebar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:0;z-index:100}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:2rem 1.5rem}.sidebar-logo{display:flex;align-items:center;gap:12px;font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:3rem}.sidebar-logo-mark{display:flex;align-items:center;justify-content:center;color:var(--color-accent);line-height:0}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.5rem}.nav-item{display:flex;align-items:center;gap:12px;padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:all .2s ease;cursor:pointer;text-decoration:none}.nav-item i{font-size:1rem;width:20px;opacity:.7}.nav-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.nav-item.active{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle)}.sidebar-footer{flex-shrink:0;padding:1.5rem;border-top:1px solid var(--border-subtle);background:var(--bg-page);display:flex;flex-direction:column;gap:.5rem}.nav-item-danger{color:var(--text-error);opacity:.8}.nav-item-danger:hover{background:#ef44441a;color:var(--text-error)}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-page);border-top:1px solid var(--border-subtle);z-index:1000;justify-content:space-around;align-items:center}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-muted);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;min-width:48px;min-height:48px;padding:6px 10px}.mobile-nav-item:focus-visible{outline:2px solid var(--color-primary-light);outline-offset:-2px;border-radius:8px}.mobile-nav-item i{font-size:1.1rem}.mobile-nav-item.active{color:var(--text-primary)}.mobile-nav-item-danger{color:var(--text-error)}@media(max-width:850px){.app-sidebar{display:none}.mobile-bottom-nav{display:flex}.dashboard-page{flex-direction:column}.dashboard-main{padding:0px 16px calc(120px + env(safe-area-inset-bottom,0px)) 16px!important}}.dashboard-main{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:0 24px 40px;max-width:1300px;margin:0 auto;width:100%;height:100%;overflow-y:auto}.dashboard-nav{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--navbar-bg)}.dashboard-nav-logo{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;color:var(--text-primary)}.dashboard-nav-logo span{width:30px;height:30px;background:var(--color-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-user-pill{display:flex;align-items:center;gap:10px;background:var(--bg-surface);border:1.2px solid var(--border-subtle);border-radius:var(--radius-full);padding:7px 14px 7px 7px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dashboard-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;color:#fff;flex-shrink:0}.dashboard-user-info{line-height:1.2}.dashboard-user-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.dashboard-user-email{font-size:.75rem;color:var(--text-muted)}.dashboard-logout-btn{background:none;border:none;color:var(--text-muted);font-size:.8125rem;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);transition:all var(--transition-fast);margin-left:6px}.dashboard-logout-btn:hover{background:#ef44441a;color:#f87171}.dashboard-content{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px}.dashboard-hero{text-align:center;max-width:800px;width:100%;display:flex;flex-direction:column;align-items:center}.dashboard-badge{display:inline-flex;align-items:center;gap:8px;background:#6c63ff1a;border:1px solid rgba(108,99,255,.25);color:var(--color-secondary);font-size:.8125rem;font-weight:600;padding:6px 14px;border-radius:var(--radius-full);margin-bottom:24px}.dashboard-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--color-secondary);animation:blink 1.5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.dashboard-hero h1{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:800;letter-spacing:-.03em;line-height:1.2;margin-bottom:16px;background:var(--heading-solid);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-hero p{font-size:1.0625rem;color:var(--text-secondary);line-height:1.75;margin-bottom:36px}.coming-soon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}@media(max-width:480px){.coming-soon-grid{grid-template-columns:1fr}}.coming-soon-card{background:var(--bg-card);border:1.2px solid var(--border-subtle);border-radius:var(--radius-md);padding:20px 16px;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all var(--transition-normal)}.coming-soon-card:hover{background:var(--bg-surface-hover);border-color:#6c63ff40;transform:translateY(-2px)}.coming-soon-card-icon{font-size:1.75rem;margin-bottom:10px}.coming-soon-card-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.coming-soon-card-desc{font-size:.75rem;color:var(--text-muted)}.profile-container{display:flex;flex-direction:column;align-items:center;gap:28px;width:100%;max-width:800px;margin:0 auto}.profile-sidebar-card{display:flex;flex-direction:column;align-items:center;padding:32px 24px;text-align:center;border-radius:var(--radius-lg);position:relative;overflow:hidden;width:100%;max-width:500px}.profile-avatar-wrapper{position:relative;margin-bottom:16px}.profile-avatar-large{width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));font-size:1.75rem;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;border:3px solid var(--overlay-soft);box-shadow:0 6px 24px #6d28d94d}.avatar-glow{position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;background:radial-gradient(circle,var(--color-primary) 0%,rgba(109,40,217,0) 70%);opacity:.45;z-index:1;animation:avatarPulse 4s infinite alternate}@keyframes avatarPulse{0%{transform:scale(.95);opacity:.3}to{transform:scale(1.1);opacity:.65}}.profile-user-name{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0 0 4px;letter-spacing:-.015em}.profile-user-email{font-size:.78rem;color:var(--text-muted);margin:0 0 14px}.profile-status-badge{display:inline-flex;align-items:center;gap:6px;background:#8b5cf61f;border:1px solid rgba(139,92,246,.25);color:var(--color-accent);padding:4px 12px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;letter-spacing:.03em;margin-bottom:20px}.profile-status-badge i{font-size:.8rem}.profile-card-divider{width:100%;height:1px;background:var(--divider-gradient);margin-bottom:24px}.profile-card-bio{font-size:.85rem;color:var(--text-secondary);line-height:1.65;margin:0}.profile-settings-content{display:flex;flex-direction:column;gap:24px;width:100%}.profile-form-section{padding:32px;border-radius:var(--radius-lg);text-align:left;position:relative;z-index:1}.profile-form-section:has(.has-open){z-index:10}.settings-section-title{margin:0 0 20px;font-size:1.1rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:10px}.settings-section-title i{color:var(--color-primary);font-size:1.2rem}.settings-section-desc{font-size:.85rem;color:var(--text-secondary);margin:-12px 0 24px;line-height:1.6}.profile-form-section.ai-engine-card{border:1.5px solid rgba(139,92,246,.2);background:var(--card-tinted-bg);box-shadow:0 4px 30px #8b5cf608}.profile-form-section.ai-engine-card .settings-section-title i{color:var(--color-accent)}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ai-engine-card .profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-actions-wrapper{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:10px}.profile-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid var(--border-subtle);background:#fff;color:var(--color-on-accent);font-family:var(--font-family);font-size:.875rem;font-weight:600;padding:11px 22px;border-radius:10px;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,transform .15s ease,border-color .18s ease;box-shadow:0 1px 3px #00000012;outline:none}.profile-btn:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:3px}.profile-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.profile-btn-primary{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:0 1px 2px #00000014,0 4px 14px #7c3aed4d}.profile-btn-primary:hover:not(:disabled){transform:translateY(-1.5px);box-shadow:0 2px 4px #0000001a,0 8px 22px #7c3aed66}.profile-btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #00000014,0 3px 8px #7c3aed38}.profile-btn-secondary{background:#fff;border-color:var(--border-subtle);color:var(--color-primary)}.profile-btn-secondary:hover:not(:disabled){background:var(--bg-surface-hover);border-color:#c4b5fd;color:var(--text-primary);box-shadow:0 2px 8px #7c3aed1a;transform:translateY(-1px)}.profile-btn-secondary:active:not(:disabled){background:#ede9fe;border-color:#a78bfa;transform:translateY(0);box-shadow:none}@media(max-width:850px){.profile-container{grid-template-columns:1fr;gap:24px}.profile-sidebar-card{padding:32px 20px}.profile-grid,.ai-engine-card .profile-grid{grid-template-columns:1fr;gap:16px}.profile-actions-wrapper{flex-direction:column;width:100%;gap:12px}.profile-btn{width:100%;padding:14px}}.route-loader{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center}.route-loader .spinner{width:32px;height:32px;border-width:3px}.fade-in{animation:fadeIn .4s ease forwards}.slide-up{animation:slideUp .45s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.auth-page{padding:20px 12px;align-items:flex-start}.auth-card{padding:24px 18px;border-radius:var(--radius-lg)}.auth-logo{margin-bottom:24px}.auth-logo-text{font-size:1.25rem}h1{font-size:1.75rem!important}.form-field{margin-bottom:12px}.social-buttons{gap:10px;margin-bottom:20px}.social-btn{width:40px;height:40px}.form-select-dropdown{max-height:200px}.page-bg-mid{width:300px;height:300px;filter:blur(60px)}}@media(max-height:700px){.auth-page{align-items:flex-start;padding-top:40px;padding-bottom:40px}}.avatar-upload-btn{position:absolute;bottom:-2px;right:-2px;width:28px;height:28px;border-radius:50%;background:var(--gradient-primary);border:2px solid #ffffff;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:0 2px 8px #7c3aed59;outline:none;transition:box-shadow .18s ease,transform .15s ease}.avatar-upload-btn:hover{transform:scale(1.12);box-shadow:0 4px 14px #7c3aed7a}.avatar-upload-btn i{font-size:.75rem}.profile-name-display-wrapper{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0 0 4px;position:relative}.profile-edit-name-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:.6;outline:none}.profile-name-display-wrapper:hover .profile-edit-name-btn{opacity:1;color:var(--color-accent)}.profile-name-edit-wrapper{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:6px;background:var(--overlay-faint);padding:4px 8px;border-radius:var(--radius-md);border:1px solid var(--border-faint);max-width:240px}.profile-name-edit-input{background:transparent;border:none;color:var(--text-primary);font-family:inherit;font-size:.95rem;font-weight:700;text-align:center;outline:none;width:130px}.profile-name-save-btn,.profile-name-cancel-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.profile-name-save-btn:hover{color:#34d399}.profile-name-cancel-btn:hover{color:#f87171}.chat-suggestion-pill{background:var(--pill-accent-bg);border:1px solid var(--pill-accent-border);color:var(--pill-accent-text);padding:12px 20px;border-radius:20px;text-align:center;font-size:.9rem;cursor:pointer;transition:all .2s;margin-bottom:10px;width:100%}.chat-suggestion-pill:hover{background:var(--pill-accent-hover-bg);transform:translateY(-2px)}.chat-media-embed{background:#000;border-radius:12px;overflow:hidden;margin-bottom:8px;width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative}.chat-media-embed img{width:100%;height:100%;object-fit:cover;opacity:.7}.play-icon-overlay{position:absolute;color:#fff;font-size:3rem;text-shadow:0 2px 10px rgba(0,0,0,.5);cursor:pointer}.chat-file-attachment{display:flex;align-items:center;gap:12px;background:var(--overlay-medium);padding:12px 16px;border-radius:12px;margin-bottom:8px;border:1px solid var(--border-overlay)}.library-container{padding:16px;width:100%;max-width:800px;margin:0 auto}.library-sub-tabs{display:flex;border-bottom:1px solid var(--border-faint);margin-bottom:20px}.library-sub-tab{flex:1;text-align:center;padding:12px;font-size:.85rem;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.library-sub-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.library-subject-card{background:var(--overlay-faint);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:16px;margin-bottom:16px;overflow:hidden;border:1px solid var(--border-faint);box-shadow:0 4px 30px #0000001a}.library-subject-header{padding:16px;display:flex;flex-direction:column;cursor:pointer}.library-subject-title{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:1.1rem;margin-bottom:12px}.library-subject-stats{display:flex;gap:16px;background:linear-gradient(90deg,var(--overlay-subtle),transparent);padding:10px;border-radius:8px}.stat-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary)}.library-subject-content{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.library-file-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--overlay-faint);border-radius:12px;cursor:pointer;transition:all .2s}.library-file-item:hover{background:var(--overlay-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.solver-callout{position:relative;border:1px solid var(--border-subtle);border-left:3px solid var(--color-primary);padding:var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface)}.solver-callout .solver-answer{font-weight:700;color:var(--text-primary)}.chat-material-card{display:flex;flex-direction:column;width:100%;max-width:320px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.chat-material-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #7c3aed38}.chat-material-card .material-thumb{aspect-ratio:16 / 9;width:100%;object-fit:cover;display:block;background:var(--bg-input)}.chat-material-card .material-body{padding:var(--space-3)}.chat-material-card .material-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:2px}.chat-material-card .material-channel{font-size:.75rem;color:var(--text-muted)}.chat-material-card .material-saved{display:inline-flex;align-items:center;gap:4px;margin-top:var(--space-2);font-size:.72rem;font-weight:600;color:var(--color-success)}.quiz-me-link{display:inline-flex;align-items:center;gap:6px;background:var(--pill-accent-bg);border:1px solid var(--pill-accent-border);color:var(--pill-accent-text);padding:10px 18px;border-radius:20px;text-align:center;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.quiz-me-link:hover{background:var(--pill-accent-hover-bg);transform:translateY(-2px)}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.46"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.tutor-workspace{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden;height:100vh;height:100dvh}.chat-sessions-panel{position:fixed;left:0;top:0;height:100vh;height:100dvh;width:260px;max-width:85vw;z-index:120;background:var(--panel-glass-bg);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:18px 16px;gap:14px;min-height:0;transform:translate(-100%);transition:transform .3s ease-in-out}.chat-sessions-panel.is-open{transform:translate(0)}.sessions-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sessions-header-actions{display:flex;align-items:center;gap:2px}.sessions-title{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-weight:700;font-size:.95rem}.sessions-title i{color:var(--color-primary)}.new-chat-sidebar-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--color-primary);color:#fff;border:none;border-radius:12px;padding:12px 14px;font-size:.85rem;font-weight:700;transition:all .2s ease;width:100%;flex-shrink:0;margin-bottom:8px;cursor:pointer;box-shadow:0 4px 12px #7c3aed33}.new-chat-sidebar-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 6px 15px #7c3aed66}.new-chat-sidebar-btn i{font-size:.8rem}.sessions-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:4px}.sessions-empty{font-size:.85rem;color:var(--text-muted);padding:12px 8px}.session-item{background:var(--overlay-faint);border:1px solid transparent;border-radius:12px;padding:10px 12px;color:var(--text-primary);text-align:left;transition:all .2s ease}.session-item:hover{border-color:var(--border-faint);background:var(--overlay-subtle)}.session-item.active{border-color:var(--selected-border);background:var(--selected-fill)}.session-item-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-title{flex:1;font-weight:600;font-size:.85rem;color:var(--text-primary);line-height:1.4;max-height:2.6em;overflow:hidden;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.session-delete-btn{background:transparent;border:none;color:var(--text-muted);opacity:0;transition:all .2s ease;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer}.session-item:hover .session-delete-btn{opacity:1}.session-delete-btn:hover{color:var(--text-error);background:#ef44441a}.session-delete-btn i{font-size:.85rem}.chat-engine{flex:1;min-width:0;border-right:1px solid var(--border-subtle);background:var(--bg-canvas);display:flex;flex-direction:column;position:relative;min-height:0;height:100%;overflow:hidden}.chat-header{padding:20px 24px;padding-top:calc(20px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--chat-header-border);display:flex;justify-content:space-between;align-items:center;-webkit-backdrop-filter:blur(12px) saturate(120%);backdrop-filter:blur(12px) saturate(120%);z-index:100;position:relative;flex-shrink:0;background:var(--chat-header-bg);box-shadow:var(--shadow-header)}.chat-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:var(--chat-title-text);letter-spacing:.01em}.chat-title i{color:var(--accent-text);font-size:.9rem}.icon-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:4px}.icon-btn:hover{color:var(--text-primary)}.messages-viewport{flex:1;overflow-y:auto;padding:26px 20px 16px;display:flex;flex-direction:column;gap:18px;font-family:var(--font-family);line-height:1.7;position:relative;min-height:0}.messages-viewport:before{content:"";position:absolute;top:-120px;right:-130px;width:360px;height:360px;background:radial-gradient(circle,#f39dff52,#f39dff00 70%);pointer-events:none;z-index:0}.messages-viewport>*{position:relative;z-index:1}.chat-bubble-row{display:flex;width:100%}.chat-bubble-row.user{justify-content:flex-end}.chat-bubble-row.assistant{justify-content:flex-start}.chat-bubble-stack.user{display:flex;flex-direction:column;align-items:flex-end;max-width:min(84%,760px)}.chat-bubble-stack.user .chat-bubble.user{max-width:100%}.chat-bubble-actions{display:flex;align-items:center;gap:6px;margin-top:6px;padding-right:2px;opacity:1}.bubble-action-btn{background:var(--overlay-subtle);border:1px solid var(--border-subtle);color:var(--accent-soft-text);width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.78rem;transition:all .18s ease}.bubble-action-btn:hover{background:var(--accent-hover-fill);border-color:var(--accent-hover-border);color:var(--text-primary)}.bubble-action-btn:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.chat-bubble{max-width:min(84%,760px);padding:14px 18px;font-size:.97rem;line-height:1.6;position:relative;font-family:var(--font-family);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chat-bubble.user{background:linear-gradient(135deg,#f285ffeb,#d659ffdb);color:#2c063f;border-radius:14px 14px 4px;border:1px solid rgba(255,208,255,.5);box-shadow:inset 0 1px #ffffff38,0 10px 26px #7a1d9c6b;font-weight:500}.chat-bubble.assistant{background:var(--bubble-assistant-bg);color:var(--bubble-assistant-text);border:1px solid var(--bubble-assistant-border);border-radius:14px 14px 14px 4px;box-shadow:var(--bubble-assistant-shadow);padding:16px 18px}.chat-bubble.error{background:var(--danger-bubble-bg);border:1px solid var(--danger-bubble-border);color:var(--danger-bubble-text);border-radius:12px}.bubble-content p{margin-bottom:12px}.bubble-content p:last-child{margin-bottom:0}.bubble-content strong{color:var(--color-accent)}.bubble-content ul,.bubble-content ol{padding-left:20px;margin-bottom:12px}.chat-bubble.assistant .bubble-content strong{color:var(--accent-inline-strong)}.chat-bubble.user .bubble-content strong{color:#420b61}.bubble-meta{margin-top:10px;padding-top:10px;border-top:1px solid var(--bubble-divider)}.meta-tag{font-size:.75rem;color:var(--accent-soft-text);background:var(--overlay-medium);padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:6px}.inline-action-btn{margin-top:12px;background:var(--overlay-medium);border:1px solid var(--accent-hover-border);color:var(--accent-soft-text);padding:8px 16px;border-radius:12px;font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:8px;transition:all .2s ease}.inline-action-btn:hover{background:var(--overlay-strong);border-color:var(--accent-hover-border)}.chat-input-container{flex-shrink:0;z-index:100;background:transparent;padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px));max-width:900px;width:100%;margin:0 auto}.chat-input-wrapper{background:var(--composer-bg);-webkit-backdrop-filter:blur(14px) saturate(125%);backdrop-filter:blur(14px) saturate(125%);border:1px solid var(--composer-border);border-radius:18px;padding:7px 8px 7px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--composer-shadow);transition:all .2s ease}.chat-input-wrapper:focus-within{border-color:var(--composer-focus-border);background:var(--composer-focus-bg);box-shadow:var(--composer-focus-shadow)}.chat-input-wrapper input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.95rem;padding:12px 0;font-family:var(--font-family)}.chat-input-wrapper input::placeholder{color:var(--composer-placeholder)}.send-btn{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#ffe2ff,#f5c6ff);color:#4a0a67;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border:none;flex-shrink:0;padding:0;font-size:1.1rem}.send-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--send-disabled-bg);color:var(--send-disabled-text)}.send-btn:not(:disabled):hover{transform:scale(1.05);background:linear-gradient(135deg,#fff3ff,#ffdfff);color:#3a0353;box-shadow:0 6px 18px #ffcbff5c}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:6px;height:6px;background:var(--text-muted);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.katex-display{margin:1em 0;overflow-x:auto;overflow-y:hidden;padding:8px 0}.katex{font-size:1.1em;color:var(--color-accent)}.chat-bubble.user .katex{color:#fff}.messages-viewport::-webkit-scrollbar{width:6px}.messages-viewport::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}.chat-sessions-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:105}.chat-sessions-overlay.is-open{display:block}@media(max-width:1100px){.chat-input-container{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}.messages-viewport{padding:18px 12px 12px}.chat-bubble-stack.user{max-width:91%}.chat-bubble{font-size:.93rem}}@media(max-width:850px){.tutor-workspace{flex:0 0 auto;width:100%;height:calc(100vh - 64px - env(safe-area-inset-bottom,0px));height:calc(100dvh - 64px - env(safe-area-inset-bottom,0px))}.chat-sessions-panel{padding-top:calc(env(safe-area-inset-top,0px) + 12px);height:100vh;height:100dvh;width:280px}.session-delete-btn{opacity:1;padding:8px}.session-item{padding:12px 14px}.chat-header{padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px))}.chat-title{font-size:.95rem;gap:8px}.chat-title i{font-size:.8rem}.icon-btn{font-size:1.1rem;padding:6px;min-width:44px;min-height:44px}.messages-viewport{padding:14px 10px 10px;gap:14px}.messages-viewport:before{display:none}.chat-bubble{padding:12px 14px;font-size:.9375rem;max-width:min(92%,760px)}.chat-bubble.assistant{padding:14px}.chat-bubble-stack.user{max-width:92%}.chat-bubble-actions{gap:4px;margin-top:4px}.bubble-action-btn{width:34px;height:34px;font-size:.72rem}.bubble-meta{margin-top:8px;padding-top:8px}.meta-tag{font-size:.7rem;padding:3px 8px}.chat-input-container{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}.chat-input-wrapper{padding:5px 6px 5px 14px;border-radius:16px}.chat-input-wrapper input{font-size:1rem;padding:10px 0}.send-btn{width:44px;height:44px;font-size:1rem}.chat-error-card{padding:10px 12px}.chat-error-msg{font-size:.82rem}.chat-error-actions{flex-wrap:wrap}.chat-error-retry,.chat-error-dismiss{padding:5px 12px;font-size:.75rem}.inline-action-btn{padding:7px 14px;font-size:.8rem}.quiz-me-link{font-size:.8rem}.bubble-content pre{padding:10px 12px;font-size:.8rem;margin:10px 0}.solver-callout{padding:10px 12px;margin-top:10px}.solver-code{padding:10px;font-size:.75rem}.chat-material-card{padding:8px 10px;gap:10px}.material-thumb{width:48px;height:36px}.material-title{font-size:.8rem}.material-sub{font-size:.7rem}.confirm-dialog{margin:0 16px;padding:20px}.confirm-dialog h3{font-size:.95rem}.confirm-dialog p{font-size:.82rem}.confirm-cancel,.confirm-danger{padding:8px 16px;font-size:.8rem;flex:1;text-align:center}.undo-toast{bottom:88px;left:16px;right:16px;transform:none;max-width:none;justify-content:space-between}}@media(max-width:640px){.chat-header{padding:12px;padding-top:calc(12px + env(safe-area-inset-top,0px))}.chat-title{font-size:.88rem;gap:6px}.icon-btn{font-size:1rem;padding:4px}.messages-viewport{padding:12px 8px 8px;gap:12px}.chat-bubble{padding:10px 12px;font-size:1rem;max-width:95%;line-height:1.55}.chat-bubble.assistant{padding:12px}.chat-bubble.user{border-radius:12px 12px 4px}.chat-bubble-stack.user{max-width:95%}.chat-bubble-actions{gap:3px;margin-top:3px}.bubble-action-btn{width:26px;height:26px;font-size:.68rem}.chat-input-container{padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))}.chat-input-wrapper{padding:4px 5px 4px 12px;border-radius:14px;gap:8px}.chat-input-wrapper input{font-size:1rem;padding:9px 0}.send-btn{width:44px;height:44px;font-size:.95rem}.starter-chips{gap:6px}.starter-chip{padding:7px 12px;font-size:.78rem;gap:6px}.starter-chip i{font-size:.78rem}.tool-status-chip{font-size:.7rem;margin-left:6px;padding:2px 8px}.chat-material-card{padding:7px 8px;gap:8px}.material-thumb{width:40px;height:30px}.material-title{font-size:.75rem}.material-saved{font-size:.6rem}.confirm-overlay{padding:16px}.confirm-dialog{margin:0;padding:18px;border-radius:14px}.confirm-dialog h3{font-size:.9rem}.confirm-dialog p{font-size:.8rem;margin-bottom:14px}.confirm-actions{gap:8px}.undo-toast{bottom:80px;left:12px;right:12px;padding:10px 14px;font-size:.82rem;border-radius:10px}}@media(max-width:480px){.chat-header{padding:10px;padding-top:calc(10px + env(safe-area-inset-top,0px))}.chat-title{font-size:.82rem}.icon-btn{font-size:.95rem}.messages-viewport{padding:10px 6px 6px;gap:10px}.chat-bubble{padding:9px 10px;font-size:1rem;max-width:97%}.chat-bubble-stack.user{max-width:97%}.chat-input-wrapper{padding:3px 4px 3px 10px;border-radius:12px}.chat-input-wrapper input{font-size:1rem;padding:8px 0}.send-btn{width:40px;height:40px;font-size:.9rem}.starter-chips{gap:5px}.starter-chip{padding:6px 10px;font-size:.74rem;gap:5px}.starter-chip i{font-size:.72rem}.bubble-content pre{padding:8px 10px;font-size:.75rem;margin:8px 0}.solver-callout{padding:8px 10px;margin-top:8px}.solver-callout-label{font-size:.72rem;gap:6px}.solver-toggle{padding:5px 10px;font-size:.72rem}.solver-code{padding:8px;font-size:.7rem}.chat-material-card{flex-wrap:wrap;gap:6px}.material-thumb{width:36px;height:28px}.material-info{min-width:calc(100% - 48px)}.material-saved{width:100%;justify-content:flex-end;padding-top:4px;border-top:1px solid var(--border-subtle)}.chat-error-card{flex-direction:column;gap:8px;padding:8px 10px}.chat-error-icon{font-size:.9rem}.chat-error-msg{font-size:.78rem}.inline-action-btn{padding:6px 12px;font-size:.75rem}.quiz-me-link{font-size:.75rem;gap:5px}.confirm-dialog{padding:16px}.confirm-dialog h3{font-size:.85rem}.confirm-dialog p{font-size:.76rem}.confirm-cancel,.confirm-danger{padding:7px 12px;font-size:.75rem}.undo-toast{bottom:76px;left:10px;right:10px;padding:8px 12px;font-size:.78rem;border-radius:8px;gap:10px}.undo-btn{padding:4px 12px;font-size:.75rem}.katex-display{margin:.6em 0;padding:4px 0}.katex{font-size:1em}}.chat-bubble.assistant .katex,.chat-bubble.assistant .katex-display{color:var(--text-primary)}.bubble-content pre{background:var(--code-bg);border:1px solid var(--border-subtle);border-radius:12px;padding:12px 14px;overflow-x:auto;margin:12px 0;font-family:var(--font-mono, ui-monospace, "JetBrains Mono", monospace);font-size:.85rem;line-height:1.5;color:var(--text-primary)}.bubble-content code{font-family:var(--font-mono, ui-monospace, "JetBrains Mono", monospace);font-size:.85em;background:var(--color-primary-light-alpha20);border:1px solid var(--border-subtle);border-radius:6px;padding:1px 6px;color:var(--text-primary)}.bubble-content pre code{background:transparent;border:none;padding:0;font-size:inherit}.bubble-content a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px;border-radius:4px}.bubble-content a:hover{text-decoration-thickness:2px}.bubble-content a:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.msg-caret{display:inline-block;width:8px;height:1.1em;margin-left:2px;vertical-align:text-bottom;background:var(--color-primary-light);border-radius:1px;animation:caretBlink 1s steps(1) infinite}@keyframes caretBlink{0%,50%{opacity:1}51%,to{opacity:0}}.solver-callout{margin-top:12px;padding:12px 14px;border:1px solid rgba(16,185,129,.4);background:#10b98114;border-radius:12px}.solver-callout-label{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--color-success);margin-bottom:8px}.solver-toggle{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.solver-toggle:hover{color:var(--text-primary);border-color:var(--accent-text)}.solver-toggle:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.solver-code{margin-top:10px;background:var(--code-bg);border:1px solid var(--border-subtle);border-radius:10px;padding:12px;overflow-x:auto;font-family:var(--font-mono, ui-monospace, "JetBrains Mono", monospace);font-size:.8rem;line-height:1.5;color:var(--text-primary)}.chat-materials{display:flex;flex-direction:column;gap:10px;margin-top:12px}.chat-material-card{display:flex;align-items:center;gap:12px;background:var(--overlay-faint);border:1px solid var(--border-subtle);border-radius:12px;padding:10px 12px}.material-thumb{width:56px;height:42px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--overlay-subtle)}.material-thumb.pdf{display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--accent-text)}.material-info{flex:1;min-width:0}.material-title{font-size:.85rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-sub{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-saved{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:600;color:var(--color-success);flex-shrink:0}.quiz-me-link{margin-top:12px;background:transparent;border:none;color:var(--accent-text);font-size:.85rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:4px 0;text-decoration:underline;text-underline-offset:3px}.quiz-me-link:hover{color:var(--text-primary)}.quiz-me-link:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px;border-radius:4px}.starter-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.starter-chip{display:inline-flex;align-items:center;gap:8px;background:var(--overlay-subtle);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:9999px;padding:9px 16px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.starter-chip:hover{color:var(--text-primary);border-color:var(--accent-text);background:var(--accent-hover-fill)}.starter-chip:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.starter-chip i{color:var(--accent-text);font-size:.85rem}.tool-status-chip{margin-left:10px;font-size:.75rem;color:var(--text-secondary);background:var(--overlay-subtle);border:1px solid var(--border-subtle);border-radius:9999px;padding:3px 10px;white-space:nowrap}.chat-error-card{display:flex;gap:10px;align-items:flex-start;background:var(--danger-bubble-bg);border:1px solid var(--danger-bubble-border);color:var(--danger-bubble-text);border-radius:12px;padding:12px 14px}.chat-error-icon{color:var(--color-error);font-size:1rem;margin-top:2px}.chat-error-body{flex:1}.chat-error-msg{font-size:.88rem;margin-bottom:8px}.chat-error-actions{display:flex;gap:8px}.chat-error-retry,.chat-error-dismiss{border-radius:8px;padding:6px 14px;font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease}.chat-error-retry{background:var(--color-primary-light);border:none;color:#3a0353}.chat-error-retry:hover{background:#fff}.chat-error-dismiss{background:transparent;border:1px solid var(--danger-bubble-border);color:var(--danger-bubble-text)}.chat-error-dismiss:hover{background:#fd829826}.chat-error-retry:focus-visible,.chat-error-dismiss:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.sessions-search{display:flex;align-items:center;gap:8px;background:var(--overlay-faint);border:1px solid var(--border-subtle);border-radius:10px;padding:7px 10px;color:var(--text-muted)}.sessions-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.82rem;font-family:var(--font-family)}.sessions-search input::placeholder{color:var(--text-muted)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim-strong);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.confirm-dialog{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:16px;padding:24px;max-width:380px;width:100%;box-shadow:var(--shadow-popover)}.confirm-dialog h3{margin:0 0 10px;font-size:1.05rem;color:var(--text-primary)}.confirm-dialog p{margin:0 0 18px;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-cancel,.confirm-danger{border-radius:10px;padding:9px 18px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.confirm-cancel{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary)}.confirm-cancel:hover{color:var(--text-primary);border-color:var(--text-muted)}.confirm-danger{background:var(--color-error);border:none;color:#fff}.confirm-danger:hover{background:#dc2626}.confirm-cancel:focus-visible,.confirm-danger:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.undo-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:210;display:flex;align-items:center;gap:14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:12px 18px;box-shadow:var(--floating-shadow);font-size:.88rem;color:var(--text-primary)}.undo-btn{background:transparent;border:1px solid var(--accent-text);color:var(--accent-text);border-radius:8px;padding:5px 14px;font-size:.82rem;font-weight:600;cursor:pointer}.undo-btn:hover{background:var(--color-primary-light-alpha20)}.undo-btn:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}@media(prefers-reduced-motion:reduce){.typing-indicator span,.msg-caret{animation:none!important}.msg-caret{opacity:0}}.quiz-container{display:flex;flex-direction:column;height:100%;background:transparent}.quiz-header{background:linear-gradient(180deg,var(--bg-card) 0%,var(--hero-fade) 100%);border-bottom:1px solid var(--border-subtle);padding:1.5rem;flex-shrink:0}.quiz-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem;width:100%}.quiz-title-group h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem;display:flex;align-items:center;gap:.75rem}.quiz-title-group h1 i{color:var(--color-primary)}.quiz-title-group p{font-size:.875rem;color:var(--text-muted);margin:0}.quiz-main{flex:1;display:flex;flex-direction:column;align-items:center;padding:2rem;max-width:1000px;margin:0 auto;width:100%}.quiz-stage{width:100%;animation:stageSlideIn .4s ease-out}@keyframes stageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.topic-stage{max-width:700px}.recent-topics-list{display:flex;flex-direction:column;gap:.75rem;margin:1.5rem 0;max-height:300px;overflow-y:auto;padding-right:8px}.topic-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--overlay-faint);border:1px solid var(--border-subtle);border-radius:12px;transition:all .2s ease}.topic-item:hover{background:var(--overlay-subtle);border-color:var(--color-primary)}.topic-name{color:var(--text-primary);font-weight:600;font-size:.95rem;flex:1;margin-right:1rem}.custom-topic-box{display:flex;gap:1rem}.custom-topic-box input{flex:1}.difficulty-stage{max-width:800px}.difficulty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-top:1.5rem}.difficulty-card{background:var(--overlay-faint);border:2px solid var(--border-subtle);border-radius:16px;padding:1.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:1rem}.difficulty-card:hover{transform:translateY(-4px);border-color:var(--border-overlay);background:var(--overlay-subtle)}.difficulty-card.active{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-color:var(--color-primary);box-shadow:0 10px 30px color-mix(in srgb,var(--color-accent) 15%,transparent)}.difficulty-card:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:2px}.diff-header{display:flex;justify-content:space-between;align-items:center}.diff-header i{font-size:1.5rem}.difficulty-card h3{margin:0;color:var(--text-primary);font-size:1.2rem}.difficulty-card p{margin:0;color:var(--text-muted);font-size:.85rem;line-height:1.4}.back-btn{background:transparent;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:0;transition:color .2s}.back-btn:hover{color:var(--text-primary)}.quiz-stage-active{max-width:800px}.quiz-status-bar{margin-bottom:2rem}.progress-bar{width:100%;height:8px;background:var(--overlay-subtle);border-radius:4px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transition:width .4s cubic-bezier(.4,0,.2,1)}.progress-labels{display:flex;justify-content:space-between;align-items:center;color:var(--text-muted);font-size:.9rem;font-weight:500}.question-header{display:flex;gap:1.25rem;margin-bottom:2rem}.question-number{background:var(--gradient-primary);color:var(--text-primary);font-size:.85rem;font-weight:800;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px var(--color-primary-glow)}.question-text{font-size:1.35rem;color:var(--text-primary);margin:0;line-height:1.5;font-weight:600}.options-list{display:flex;flex-direction:column;gap:.875rem;margin-bottom:2.5rem}.option-button{display:flex;align-items:center;gap:1.25rem;padding:1.125rem 1.5rem;background:var(--overlay-faint);border:1px solid var(--border-subtle);border-radius:14px;color:var(--text-primary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-align:left}.option-button:hover{border-color:var(--color-primary);background:var(--overlay-subtle);transform:translate(4px)}.option-button:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:2px}.option-button.selected{background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.option-letter{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--overlay-soft);color:var(--text-secondary);border-radius:8px;font-weight:700;font-size:.85rem;flex-shrink:0}.option-button.selected .option-letter{background:var(--color-primary);color:#fff}.question-navigation{display:flex;align-items:center;padding-top:1.5rem;border-top:1px solid var(--border-subtle)}.results-card{text-align:center}.score-display{margin-bottom:2rem}.score-circle{width:160px;height:160px;margin:0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--overlay-faint);border:4px solid var(--color-primary);box-shadow:0 0 30px color-mix(in srgb,var(--color-accent) 15%,transparent);animation:scoreScaleIn .6s cubic-bezier(.34,1.56,.64,1)}@keyframes scoreScaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.score-circle.excellent{border-color:var(--color-success)}.score-circle.good{border-color:var(--color-primary)}.score-circle.needs-work{border-color:var(--color-danger)}.score-value{font-size:3.5rem;font-weight:800;color:var(--text-primary);line-height:1}.score-label{font-size:1rem;color:var(--text-muted);font-weight:600}.results-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.results-subtitle{font-size:1.1rem;color:var(--text-muted);margin-bottom:2.5rem}.results-actions{display:flex;justify-content:center;gap:1rem}.review-section{text-align:left;border-top:1px solid var(--border-subtle);padding-top:3rem}.review-title{font-size:1.25rem;color:var(--text-primary);display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.review-title i{color:var(--color-primary)}.review-list{display:flex;flex-direction:column;gap:2rem}.review-item{padding:1.5rem;border-radius:16px;background:var(--overlay-faint);border:1px solid var(--border-subtle)}.review-item.correct{border-left:4px solid var(--color-success)}.review-item.incorrect{border-left:4px solid var(--color-danger)}.review-question-header{display:flex;gap:1rem;margin-bottom:1.25rem}.review-status-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8rem}.review-status-icon.correct{background:color-mix(in srgb,var(--color-success) 20%,transparent);color:var(--color-success)}.review-status-icon.incorrect{background:color-mix(in srgb,var(--color-danger) 20%,transparent);color:var(--color-danger)}.review-question{font-size:1.05rem;color:var(--text-primary);font-weight:600;margin:0;line-height:1.5}.review-answers{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.answer-box{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;font-size:.95rem}.answer-box.correct{background:color-mix(in srgb,var(--color-success) 8%,transparent);color:var(--color-success)}.answer-box.incorrect{background:color-mix(in srgb,var(--color-danger) 8%,transparent);color:var(--color-danger)}.answer-box.correct-reference{background:var(--overlay-faint);color:var(--text-secondary);border:1px dashed var(--border-subtle)}.answer-label{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.explanation-box{padding:1rem;background:var(--overlay-faint);border-radius:10px;font-size:.9rem;color:var(--text-muted);line-height:1.6}.explanation-box p{margin:0}.explanation-box strong{color:var(--color-primary)}.btn-secondary{background:var(--bg-input);color:var(--text-primary);border-color:var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:var(--bg-input-focus);border-color:var(--color-primary);color:var(--text-primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.mode-toggle{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;flex-wrap:wrap}.mode-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--text-muted);margin-right:.25rem}.mode-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.mode-pill:hover{color:var(--text-primary);border-color:var(--color-primary)}.mode-pill.active{background:color-mix(in srgb,var(--color-accent) 14%,transparent);border-color:var(--color-primary);color:var(--text-primary)}.mode-pill:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.quiz-stage,.score-circle{animation:none!important}.difficulty-card:hover,.option-button:hover,.mode-pill:hover{transform:none}}@media(max-width:768px){.quiz-main{padding:1rem}.difficulty-grid{grid-template-columns:1fr}.results-actions{flex-direction:column}.results-actions button{width:100%}.score-circle{width:130px;height:130px}.score-value{font-size:2.75rem}.custom-topic-box{flex-direction:column}}.materials-container{display:flex;flex-direction:column;height:100%;background:transparent}.materials-header{background:linear-gradient(180deg,var(--bg-card) 0%,var(--hero-fade) 100%);border-bottom:1px solid var(--border-subtle);padding:1.5rem;flex-shrink:0}.materials-header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem;width:100%}.materials-title-group h1{font-size:clamp(1.25rem,3.5vw,1.75rem);font-weight:700;color:var(--text-primary);margin:0 0 .25rem;display:flex;align-items:center;gap:.75rem}.materials-title-group h1 i{color:var(--color-primary)}.materials-title-group p{font-size:clamp(.8rem,2.2vw,.875rem);color:var(--text-muted);margin:0;line-height:1.4}.nav-button{padding:.625rem 1.25rem;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:.875rem;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;flex-shrink:0}.nav-button:hover{background:var(--bg-input-focus);border-color:var(--color-primary)}.view-toggle{display:flex;gap:.5rem;margin-bottom:2rem;background:var(--bg-card);padding:.5rem;border-radius:12px;width:fit-content;border:1px solid var(--border-subtle)}.view-toggle button{border-radius:8px;min-width:120px;min-height:40px}.topic-tag{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);background:color-mix(in srgb,var(--color-accent) 10%,transparent);padding:.25rem .625rem;border-radius:4px;margin-bottom:.5rem;letter-spacing:.05em}.loader-container{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--text-muted);padding:3rem 1rem}.loader-container .spinner{width:40px;height:40px;border-width:3px;border-top-color:var(--color-primary)}.material-card.pdf-type{display:flex;flex-direction:column;min-height:200px;background:var(--overlay-faint);border-style:dashed}.pdf-card-content{padding:1.5rem;display:flex;gap:1.25rem;height:100%}.pdf-icon-wrapper{width:48px;height:48px;background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;border:1px solid color-mix(in srgb,var(--color-danger) 20%,transparent)}.pdf-details{flex:1;display:flex;flex-direction:column;min-width:0}.pdf-details h4{margin:0 0 .5rem;color:var(--text-primary);font-size:1.05rem;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.pdf-snippet{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.materials-main{flex:1;max-width:1400px;margin:0 auto;width:100%;padding:2rem}.search-section{margin-bottom:2.5rem}.search-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:2rem;box-shadow:var(--shadow-card);text-align:center;position:relative;overflow:hidden}.search-card-icon{font-size:3rem;color:var(--color-primary);margin-bottom:1.25rem;opacity:.8;display:inline-block}.search-card h2{margin:0 0 .5rem;color:var(--text-primary);font-size:clamp(1.15rem,3.5vw,1.375rem)}.search-subtitle{color:var(--text-muted);max-width:500px;margin:0 auto 2rem;font-size:.95rem;line-height:1.5}.search-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:650px;margin:0 auto}.search-input-wrapper{display:flex;gap:.75rem;position:relative;width:100%}.search-input{flex:1;padding:.875rem 1.25rem;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:24px;color:var(--text-primary);font-size:.95rem;transition:all .2s ease;min-width:0}.search-input:focus{outline:none;border-color:var(--color-primary);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--color-primary-glow)}.search-input::placeholder{color:var(--text-muted)}.search-info-text{margin-top:2rem;font-size:.85rem;color:var(--text-muted)}.search-button,.search-submit-btn{padding:.875rem 1.5rem;background:var(--gradient-primary);border:none;border-radius:24px;color:var(--text-primary);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;min-width:48px;box-shadow:0 4px 14px color-mix(in srgb,var(--color-accent) 30%,transparent)}.search-button:hover:not(:disabled),.search-submit-btn:hover:not(:disabled){background:var(--gradient-primary-hover);box-shadow:0 6px 18px color-mix(in srgb,var(--color-accent) 42%,transparent);transform:translateY(-2px)}.search-button:active:not(:disabled),.search-submit-btn:active:not(:disabled){transform:translateY(0)}.search-button:disabled,.search-submit-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.results-section{margin-bottom:2rem}.results-header{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.results-header h3{margin:0;color:var(--text-primary);font-size:1.25rem;display:flex;align-items:center;gap:.75rem}.topic-name{color:var(--color-primary);font-weight:700}.result-count{margin:.5rem 0 0;color:var(--text-muted);font-size:.9rem}.topic-group{margin-bottom:2.5rem}.topic-group-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.topic-group-title{display:flex;align-items:center;gap:.75rem;border-left:4px solid var(--color-primary);padding-left:.875rem;flex:1;min-width:0}.topic-group-name{font-size:1.15rem;font-weight:700;color:var(--text-primary);word-break:break-word}.topic-badge{font-size:.7rem!important;flex-shrink:0}.topic-quiz-btn{flex-shrink:0}.materials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;animation:gridFadeIn .3s ease}@keyframes gridFadeIn{0%{opacity:0}to{opacity:1}}.material-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:all .2s ease;position:relative;display:flex;flex-direction:column}.material-card:hover{border-color:var(--color-primary);background:var(--bg-surface-hover);transform:translateY(-4px);box-shadow:var(--shadow-card)}.delete-material-btn{position:absolute;top:10px;right:10px;width:34px;height:34px;background:#0d1017d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.15);border-radius:50%;color:var(--color-danger);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;opacity:0;transition:all .2s ease}.material-card:hover .delete-material-btn{opacity:1}.delete-material-btn:hover{background:var(--color-danger);color:#fff;transform:scale(1.1)}.undo-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1400px;margin:1rem auto 0;width:calc(100% - 4rem);padding:.75rem 1.25rem;background:color-mix(in srgb,var(--color-success) 12%,var(--bg-surface));border:1px solid color-mix(in srgb,var(--color-success) 35%,transparent);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9rem}.undo-banner i{color:var(--color-success);margin-right:.4rem}.material-thumbnail{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden}.material-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.material-card:hover .material-thumbnail img{transform:scale(1.05)}.duration-badge{position:absolute;bottom:.75rem;right:.75rem;background:#000c;color:#fff;padding:.375rem .75rem;border-radius:4px;font-size:.8rem;font-weight:600}.play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--color-accent) 30%,transparent);display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease}.material-card:hover .play-overlay{opacity:1;background:color-mix(in srgb,var(--color-accent) 50%,transparent)}.play-overlay i{color:#fff;font-size:2.5rem}.material-details{padding:1rem;flex:1;display:flex;flex-direction:column;justify-content:space-between}.material-details h4{margin:0 0 .75rem;color:var(--text-primary);font-size:.95rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.channel{margin:0;color:var(--text-muted);font-size:.8rem;display:flex;align-items:center;gap:.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel i{font-size:.7rem;flex-shrink:0}.empty-state{text-align:center;padding:4rem 1.5rem}.empty-state.initial{grid-column:1 / -1}.empty-icon{font-size:3.5rem;color:var(--color-primary-glow);margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;color:var(--text-primary);font-size:1.375rem}.empty-state p{margin:0 0 1.5rem;color:var(--text-muted)}.reset-button{padding:.625rem 1.25rem;background:var(--gradient-primary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s ease;box-shadow:0 4px 14px color-mix(in srgb,var(--color-accent) 30%,transparent)}.reset-button:hover{background:var(--gradient-primary-hover);box-shadow:0 6px 18px color-mix(in srgb,var(--color-accent) 42%,transparent);transform:translateY(-2px)}.suggestions{margin-top:2rem}.suggestions-label{color:var(--text-secondary);font-size:.9rem;margin:0 0 .75rem;font-weight:500}.suggestion-tags{display:flex;flex-wrap:wrap;gap:.625rem;justify-content:center;align-items:center}.suggestion-tag{padding:.5rem 1rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:20px;color:var(--text-primary);cursor:pointer;font-size:.85rem;transition:all .2s ease}.suggestion-tag:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d1;display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fadeIn .2s ease;overflow-y:auto;padding:1rem}.modal-content{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;max-width:600px;width:100%;overflow:hidden;box-shadow:var(--shadow-card);position:relative;animation:slideUp .3s ease;max-height:90vh;display:flex;flex-direction:column}.modal-close{position:absolute;top:.875rem;right:.875rem;background:#0009;border:1px solid rgba(255,255,255,.15);color:#fff;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:30;transition:all .2s ease}.modal-close:hover{background:#000000d9;transform:scale(1.08)}.modal-document{padding:2.5rem 1.5rem;text-align:center}.modal-document>i{font-size:3rem;color:var(--color-danger);margin-bottom:1rem}.modal-document h2{margin:0 0 .5rem;color:var(--text-primary);font-size:1.25rem;line-height:1.4;word-break:break-word}.modal-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;width:100%}.modal-actions button,.modal-actions a{min-height:44px}.confirm-dialog{max-width:420px;width:100%;text-align:center;border-radius:var(--radius-lg)}.confirm-dialog h2{margin:0 0 .75rem;color:var(--text-primary);font-size:1.25rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.confirm-dialog h2 i{color:var(--color-warning)}.confirm-dialog p{margin:0 0 1.5rem;color:var(--text-muted);font-size:.9rem;line-height:1.5}.confirm-actions{display:flex;gap:.75rem;justify-content:center}.confirm-actions .btn{flex:1;min-height:44px}.btn-danger{background:color-mix(in srgb,var(--color-danger) 14%,var(--bg-input));color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 40%,transparent)}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.modal-body{display:flex;flex-direction:column;overflow-y:auto}.modal-video{width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden;flex-shrink:0}.video-placeholder{position:relative;width:100%;height:100%}.video-placeholder img{width:100%;height:100%;object-fit:cover}.play-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background:color-mix(in srgb,var(--color-accent) 90%,transparent);border:none;border-radius:50%;color:var(--color-on-accent);font-size:2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;text-decoration:none}.play-button:hover{background:var(--gradient-primary);transform:translate(-50%,-50%) scale(1.1);box-shadow:var(--shadow-button)}.modal-info{padding:1.5rem}.modal-info h2{margin:0 0 1rem;color:var(--text-primary);font-size:1.25rem;line-height:1.4;word-break:break-word}.meta-info{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.5rem}.meta-item{display:flex;align-items:center;gap:.75rem;color:var(--text-secondary);font-size:.875rem}.meta-item i{color:var(--color-primary);font-size:.85rem}.watch-button{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:var(--gradient-primary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s ease;box-shadow:0 4px 14px color-mix(in srgb,var(--color-accent) 30%,transparent)}.watch-button:hover{background:var(--gradient-primary-hover);transform:translateY(-2px);box-shadow:0 6px 18px color-mix(in srgb,var(--color-accent) 42%,transparent)}.toast-container{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:1rem;z-index:9999;pointer-events:none}.materials-main::-webkit-scrollbar{width:6px}.materials-main::-webkit-scrollbar-track{background:transparent}.materials-main::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.materials-main::-webkit-scrollbar-thumb:hover{background:var(--overlay-strong)}@media(max-width:768px),(pointer:coarse){.delete-material-btn{opacity:1!important;background:var(--popover-bg);border-color:var(--border-overlay);width:40px;height:40px;top:8px;right:8px}.material-card:active{transform:scale(.98)}}@media(max-width:850px){.materials-main{padding-bottom:6rem}}@media(max-width:768px){.materials-header{padding:1.25rem 1rem}.materials-header-content{flex-direction:column;align-items:stretch;gap:1rem}.materials-title-group h1{font-size:1.5rem}.materials-header-content .btn-danger{width:100%;justify-content:center;min-height:44px}.materials-main{padding:1.25rem 1rem 6rem}.search-card{padding:1.5rem 1.25rem;border-radius:16px}.materials-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem}.undo-banner{width:calc(100% - 2rem);margin:.75rem auto 0;padding:.75rem 1rem;font-size:.875rem;flex-wrap:wrap}.undo-banner span{flex:1 1 200px}}@media(max-width:600px){.view-toggle{width:100%;margin-bottom:1.5rem;display:flex;padding:.375rem;background:var(--bg-card);border-radius:14px}.view-toggle button{flex:1;min-width:0;min-height:44px;font-size:.9rem;font-weight:600;justify-content:center;border-radius:10px}.search-card-icon{font-size:2.25rem;margin-bottom:.75rem}.search-subtitle{margin-bottom:1.5rem;font-size:.875rem;text-align:center;padding:0 .5rem}.search-input-wrapper{flex-direction:column;gap:.75rem}.search-input{width:100%;font-size:16px;padding:.875rem 1.125rem;border-radius:14px}.search-submit-btn,.search-button{width:100%;border-radius:14px;min-height:48px;font-size:.95rem;font-weight:600}.search-info-text{text-align:center;margin-top:1.25rem;font-size:.8rem;line-height:1.4}.suggestion-tags{gap:.625rem}.suggestion-tag{font-size:.825rem;padding:.5rem 1rem;min-height:38px;display:inline-flex;align-items:center}}@media(max-width:540px){.materials-grid{grid-template-columns:1fr;gap:1rem}.topic-group-header{flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:1rem}.topic-group-title{width:100%}.topic-group-name{font-size:1.05rem}.topic-quiz-btn{width:100%;justify-content:center;min-height:44px;font-size:.875rem}.pdf-card-content{padding:1.125rem;gap:.875rem}.pdf-icon-wrapper{width:44px;height:44px;font-size:1.25rem;border-radius:10px}.pdf-details h4{font-size:.95rem}.pdf-snippet{font-size:.825rem;-webkit-line-clamp:2;margin-bottom:.75rem}.empty-state{padding:2.5rem 1rem}.empty-icon{font-size:2.75rem}.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:100%;border-radius:20px 20px 0 0;max-height:92vh;border-bottom:none}.modal-close{top:.75rem;right:.75rem;width:40px;height:40px}.modal-info,.modal-document{padding:1.5rem 1.25rem}.modal-document h2,.modal-info h2{font-size:1.15rem}.modal-actions button,.modal-actions a{width:100%;min-height:48px;font-size:.95rem}.confirm-dialog{padding:1.5rem 1.25rem;border-radius:20px 20px 0 0;max-width:100%}.confirm-actions{flex-direction:column;gap:.625rem}.confirm-actions .btn{width:100%;min-height:48px}}@media(max-width:480px){.materials-header{padding:1rem .875rem}.materials-main{padding:1rem .75rem 6rem}.results-header{flex-direction:column;align-items:flex-start;gap:.5rem}.results-header h3{font-size:1.1rem}.toast-container{bottom:5.5rem;right:.75rem;left:.75rem}.toast{width:100%}}.progress-container{display:flex;flex-direction:column;height:100%;background:transparent}.progress-header{border-bottom:1px solid var(--border-subtle);padding:1.5rem;flex-shrink:0;background:linear-gradient(180deg,var(--bg-card) 0%,var(--hero-fade) 100%)}.progress-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;width:100%}.progress-title-group h1{font-size:1.6rem;font-weight:700;color:var(--text-primary);margin:0 0 .35rem;display:flex;align-items:center;gap:.7rem;letter-spacing:-.01em}.progress-title-group h1 i{color:var(--color-accent);font-size:1.15rem}.progress-title-group p{font-size:.9rem;color:var(--text-muted);margin:0}.period-pill{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border-subtle);padding:.5rem .85rem;border-radius:999px;white-space:nowrap}.period-pill i{color:var(--color-accent);font-size:.8rem}.progress-main{flex:1;max-width:1200px;margin:0 auto;width:100%;padding:2rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.1rem}.loading-state .spinner{border-color:color-mix(in srgb,var(--color-accent) 22%,transparent);border-top-color:var(--color-accent)}.loading-state p{color:var(--text-muted);font-size:.95rem}.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:60vh;gap:1.1rem;color:var(--text-muted)}.error-state i{font-size:2.5rem;opacity:.6;color:var(--text-error)}.empty-state i{font-size:2.5rem;opacity:.5;color:var(--color-accent)}.error-state p,.empty-state p{color:var(--text-muted);font-size:.95rem;max-width:28rem}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.kpi-card{position:relative;display:flex;flex-direction:column;gap:.35rem;overflow:hidden}.kpi-card .kpi-icon{position:absolute;top:1.35rem;right:1.35rem;font-size:1rem;color:var(--color-accent);opacity:.85}.kpi-card .kpi-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.kpi-card .kpi-value{font-size:2.1rem;font-weight:800;color:var(--text-primary);line-height:1;letter-spacing:-.02em}.kpi-card .kpi-foot{font-size:.8rem;color:var(--text-secondary)}.analytics-card{margin-bottom:1.5rem}.analytics-card .card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.analytics-card h3{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:0}.analytics-card .card-sub{font-size:.8rem;color:var(--text-muted);margin:.35rem 0 0}.analytics-card .card-tag{font-size:.72rem;font-weight:600;color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 25%,transparent);padding:.3rem .65rem;border-radius:999px;white-space:nowrap;flex-shrink:0}.chart-container{width:100%;height:300px}.courses-section{margin-top:.5rem}.section-head{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem}.section-head h2{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:0}.section-count{font-size:.8rem;color:var(--text-muted)}.course-list{display:flex;flex-direction:column;gap:.875rem}.course-row{display:flex;align-items:center;gap:1.5rem;transition:border-color .2s ease,transform .2s ease}.course-row:hover{border-color:color-mix(in srgb,var(--color-accent) 50%,transparent);transform:translateY(-2px)}.course-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.85rem}.course-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.course-name{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:0}.completion-badge{font-size:.75rem;font-weight:700;color:var(--color-primary);background:color-mix(in srgb,var(--color-accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 28%,transparent);padding:.3rem .65rem;border-radius:999px;white-space:nowrap;flex-shrink:0}.progress-track{width:100%;height:6px;background:var(--overlay-subtle);border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--gradient-primary);transition:width .4s ease}.course-meta{display:flex;flex-wrap:wrap;gap:1.5rem}.course-meta .stat-item{display:flex;flex-direction:column;gap:.15rem}.course-meta .label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600}.course-meta .value{font-size:.95rem;font-weight:700;color:var(--text-primary)}.course-meta .value.tier-excellent{color:var(--color-success)}.course-meta .value.tier-good{color:var(--color-primary)}.course-meta .value.tier-okay{color:var(--color-warning)}.course-meta .value.tier-needs-work{color:var(--color-danger)}.course-actions{display:flex;gap:.5rem;flex-shrink:0}.streak-card{margin-bottom:1.5rem}.streak-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.streak-head h3{margin:0 0 .35rem;font-size:1.05rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:.6rem}.streak-head h3 i{color:var(--accent-text)}.streak-sub{margin:0;font-size:.82rem;color:var(--text-muted);max-width:38rem}.streak-count{font-size:1.5rem;font-weight:800;color:var(--text-primary);flex-shrink:0}.streak-count small{font-size:.9rem;font-weight:600;color:var(--text-muted)}.streak-grid{display:grid;grid-template-columns:repeat(15,1fr);gap:6px;margin-bottom:1rem}.streak-cell{aspect-ratio:1;border-radius:4px;background:var(--bg-input);border:1px solid var(--border-subtle)}.streak-cell.active{background:color-mix(in srgb,var(--color-accent) 55%,transparent);border-color:color-mix(in srgb,var(--color-accent) 60%,transparent)}.streak-cell.today{outline:2px solid var(--color-primary-light);outline-offset:1px}.streak-legend{display:flex;align-items:center;gap:1.25rem;font-size:.78rem;color:var(--text-muted);flex-wrap:wrap}.streak-legend span{display:inline-flex;align-items:center;gap:.4rem}.streak-dot{width:10px;height:10px;border-radius:3px;background:var(--bg-input);border:1px solid var(--border-subtle);display:inline-block}.streak-dot.active{background:color-mix(in srgb,var(--color-accent) 55%,transparent);border-color:color-mix(in srgb,var(--color-accent) 60%,transparent)}.streak-note{font-style:italic}.course-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;width:100%}.course-top:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.course-chevron{color:var(--text-muted);font-size:.8rem;transition:transform .2s ease;flex-shrink:0}.course-row.open .course-chevron{transform:rotate(180deg)}.course-meta{margin-top:.85rem;animation:fadeIn .25s ease}@media(prefers-reduced-motion:reduce){.course-row:hover,.course-meta{animation:none;transform:none}.course-chevron{transition:none}}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr);gap:.875rem}.progress-main{padding:1.5rem}}@media(max-width:768px){.progress-header{padding:1.25rem 1rem}.progress-title-group h1{font-size:1.35rem}.streak-grid{grid-template-columns:repeat(10,1fr);gap:5px}.streak-count{font-size:1.25rem}.analytics-card .card-header{flex-direction:column;align-items:flex-start;gap:.6rem}.chart-container{height:260px}.course-top{padding:.5rem 0}.course-chevron{font-size:.9rem;padding:.2rem}}@media(max-width:640px){.streak-card,.analytics-card{padding:1.25rem!important}.progress-container{padding-bottom:80px}.progress-header{padding:1.1rem 1rem}.progress-header-content{flex-direction:column;align-items:flex-start;gap:.75rem}.progress-title-group h1{font-size:1.2rem;gap:.5rem}.progress-title-group h1 i{font-size:1rem}.progress-title-group p{font-size:.82rem;line-height:1.5}.period-pill{font-size:.72rem;padding:.4rem .7rem}.progress-main{padding:1rem}.kpi-grid{grid-template-columns:1fr;gap:.75rem;margin-bottom:1rem}.kpi-card{padding:1rem 1.25rem!important}.kpi-card .kpi-icon{top:1rem;right:1rem;font-size:.9rem}.kpi-card .kpi-value{font-size:1.7rem}.kpi-card .kpi-foot{font-size:.72rem}.streak-head{flex-direction:column;align-items:flex-start;gap:.75rem}.streak-head h3{font-size:.95rem}.streak-sub{font-size:.75rem;max-width:100%}.streak-grid{grid-template-columns:repeat(6,1fr);gap:4px}.streak-legend{gap:.85rem;font-size:.72rem}.analytics-card{margin-bottom:1rem}.analytics-card h3{font-size:.95rem}.analytics-card .card-sub{font-size:.75rem}.chart-container{height:220px}.course-row{flex-direction:column;align-items:stretch;gap:.9rem}.course-row:hover{transform:none}.course-main{gap:.6rem}.course-name{font-size:.92rem}.completion-badge{font-size:.68rem;padding:.25rem .55rem}.course-actions{width:100%;gap:.4rem}.course-actions .btn{flex:1;padding:.7rem 1rem;font-size:.82rem;justify-content:center}.section-head{flex-direction:column;gap:.3rem}.section-head h2{font-size:.95rem}.course-meta{gap:1rem}.course-meta .value{font-size:.85rem}}@media(max-width:480px){.progress-header{padding:.9rem .75rem}.progress-title-group h1{font-size:1.05rem}.progress-main{padding:.75rem}.streak-card,.analytics-card{padding:1rem!important}.kpi-card{padding:.85rem 1rem!important}.kpi-card .kpi-value{font-size:1.45rem}.kpi-card .kpi-icon{top:.85rem;right:.85rem;font-size:.8rem}.period-pill{white-space:normal}.streak-grid{grid-template-columns:repeat(5,1fr);gap:3px}.streak-cell{border-radius:3px}.chart-container{height:180px}.course-row{gap:.75rem}.course-name{font-size:.85rem}.course-actions .btn{font-size:.75rem;padding:.6rem .8rem}}.settings-container{display:flex;flex-direction:column;height:100%;background:transparent}.settings-header{border-bottom:1px solid var(--border-subtle);padding:1.5rem;flex-shrink:0}.settings-header-content{max-width:720px;margin:0 auto;width:100%}.settings-header-content h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .35rem;letter-spacing:-.01em}.settings-header-content p{font-size:.9rem;color:var(--text-muted);margin:0}.settings-main{flex:1;max-width:720px;margin:0 auto;width:100%;padding:2rem 1.5rem 4rem}.settings-section{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--border-subtle)}.settings-section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.settings-section-head{margin-bottom:.5rem}.settings-section-head h2{font-size:1.05rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:.01em}.settings-section-head p{font-size:.875rem;color:var(--text-muted);margin:0}.settings-rows{display:flex;flex-direction:column}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:1.5rem;align-items:center;padding:1rem 0;border-top:1px solid var(--border-subtle)}.settings-row-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.settings-row-title{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.settings-row-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.4}.settings-row-control{display:flex;align-items:center;min-height:58px}.settings-row-control .form-input{padding:18px 16px}.settings-value{font-size:.9375rem;color:var(--text-secondary);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-control{width:100%}.settings-control.no-label .form-label{display:none}.theme-selector{display:inline-flex;gap:4px;padding:4px;background:var(--overlay-faint);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.theme-option{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid transparent;border-radius:calc(var(--radius-md) - 3px);background:transparent;color:var(--text-secondary);font-family:var(--font-family);font-size:.875rem;font-weight:600;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.theme-option i{font-size:.85rem}.theme-option:hover{color:var(--text-primary);background:var(--overlay-subtle)}.theme-option:focus-visible{outline:2.5px solid var(--color-primary);outline-offset:2px}.theme-option.active{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-subtle);box-shadow:var(--shadow-card)}.theme-option-check{color:var(--color-primary)}.settings-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.settings-danger{color:var(--color-danger);background:transparent;border-color:#ef444459}.settings-danger:hover{background:#ef44441a;border-color:var(--color-danger)}@media(max-width:640px){.settings-main{padding:1.5rem 1rem 3rem}.settings-row{grid-template-columns:1fr;gap:.6rem;align-items:stretch}.settings-row-control{min-height:0}.settings-actions{justify-content:stretch}.settings-actions .btn{width:100%}}.onboarding-flow{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;z-index:1}.onboarding-chat-container{width:100%;max-width:600px;height:85vh;height:85dvh;min-height:500px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:28px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(max-width:600px){.onboarding-flow{padding:0}.onboarding-chat-container{height:100vh;height:100dvh;border-radius:0;border:none}}.onboarding-chat-header{padding:24px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.ai-brand{display:flex;align-items:center;gap:12px}.ai-icon{display:flex;align-items:center;justify-content:center;color:var(--color-accent);font-size:1.25rem;line-height:1}.ai-name{font-weight:700;font-size:1.1rem;letter-spacing:-.01em;color:var(--text-primary);line-height:1}.onboarding-progress{display:flex;gap:8px}.progress-dot{width:8px;height:8px;border-radius:50%;background:var(--border-subtle);transition:all .3s ease}.progress-dot.active{background:var(--color-primary);box-shadow:0 0 10px var(--color-primary-glow)}.onboarding-chat-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.onboarding-msg-row{display:flex;width:100%}.onboarding-msg-row.assistant{justify-content:flex-start}.onboarding-msg-row.user{justify-content:flex-end}.onboarding-msg{max-width:80%;padding:14px 18px;font-size:.95rem;line-height:1.5}.onboarding-msg.assistant{background:var(--bubble-assistant-bg);border:1px solid var(--bubble-assistant-border);border-radius:18px 18px 18px 4px;color:var(--bubble-assistant-text)}.onboarding-msg.user{background:linear-gradient(135deg,#f5a3ff,#d659ff);color:#2c063f;border-radius:18px 18px 4px;font-weight:500}.onboarding-chat-actions{padding:24px;background:var(--overlay-faint);border-top:1px solid var(--border-subtle)}.onboarding-options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:480px){.onboarding-options-grid{grid-template-columns:repeat(2,1fr)}}.onboarding-opt-btn{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:16px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary);transition:all .2s ease}.onboarding-opt-btn i{font-size:1.25rem;color:var(--color-primary)}.onboarding-opt-btn:hover{background:var(--bg-surface-hover);border-color:var(--color-accent);color:var(--text-primary);transform:translateY(-2px)}.onboarding-options-list{display:flex;flex-wrap:wrap;gap:8px}.onboarding-list-btn{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:20px;padding:8px 16px;color:var(--text-secondary);font-size:.9rem;transition:all .2s ease}.onboarding-list-btn:hover{background:var(--color-primary);color:#fff;border-color:transparent}.onboarding-multi-select{display:flex;flex-direction:column;gap:16px}.onboarding-check-grid{display:flex;flex-wrap:wrap;gap:8px;max-height:160px;overflow-y:auto;padding-right:4px}.onboarding-check-btn{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:10px 14px;color:var(--text-secondary);font-size:.85rem;display:flex;align-items:center;gap:8px;transition:all .2s ease}.onboarding-check-btn.selected{background:var(--selected-fill);border-color:var(--color-primary);color:var(--accent-text)}.onboarding-check-btn i{font-size:.75rem}.onboarding-submit-btn{width:100%;background:var(--gradient-primary);color:#fff;padding:14px;border-radius:14px;font-weight:700;font-size:1rem;transition:all .2s ease;box-shadow:0 4px 15px var(--color-primary-glow)}.onboarding-submit-btn:disabled{opacity:.5;cursor:not-allowed}.onboarding-submit-btn:not(:disabled):hover{background:var(--gradient-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px var(--color-primary-glow)}.onboarding-chat-messages::-webkit-scrollbar,.onboarding-check-grid::-webkit-scrollbar{width:4px}.onboarding-chat-messages::-webkit-scrollbar-thumb,.onboarding-check-grid::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}
