*{box-sizing:border-box}:root{--bg:#f3f5f8;--panel:#fff;--panel-muted:#f4f7fb;--panel-hover:#fcfdff;--panel-border:#1a2534;--text:#0f1724;--muted:#44566b;--primary:#101a2a;--primary-hover:#070d18;--primary-foreground:#fff;--control-bg:#fff;--control-text:#111827;--ring:rgba(154,224,173,.55);--success-bg:#edf8ef;--success-text:#124128;--error-bg:#fdecec;--error-text:#b3261e;--accent:#d8f1de;--accent-strong:#b9e8c5;--topbar-bg:hsla(0,0%,100%,.86);--topbar-border:#1a2534;--topbar-logo-bg:#fff;--topbar-logo-border:#1a2534;--status-bg:#edf8ef;--status-text:#124128;--status-border:#124128;--hero-bg:#0f1724;--hero-text:#f8fbff;--hero-border:#0f1724;--hero-subtitle:#cbeed6;--bottom-nav-bg:hsla(0,0%,100%,.89);--bottom-nav-border:#1a2534;--bottom-nav-indicator:#14532d;--danger-bg:#fff2f2;--danger-text:#7b1f1b;--danger-border:#b3261e;--danger-button-bg:#b3261e;--danger-button-hover:#8d1e18;--danger-button-text:#fff;--event-bg:#edf8ef;--event-border:#124128;--event-title:#124128;--event-details:#205436;--todo-check:#124128;--assistant-bubble-user:#d8f1de;--assistant-bubble-assistant:#fff;--bg-grid-line:rgba(12,24,40,.05);--bg-glow-a:rgba(185,232,197,.45);--bg-glow-b:rgba(216,241,222,.55);--panel-glow:rgba(216,241,222,.45);--link-hover:#14532d;--radius-ui:2px;--radius-logo:6px;--surface-hover-shift-x:-3px;--surface-hover-shift-y:-3px;--surface-hover-shadow:var(--shadow-md);--item-hover-shift-x:-1px;--item-hover-shift-y:-1px;--item-hover-shadow:3px 3px 0 rgba(0,0,0,.08);--hero-hover-shift-x:-2px;--hero-hover-shift-y:-2px;--hero-hover-shadow:12px 12px 0 rgba(0,0,0,.18);--button-shadow:4px 4px 0 rgba(0,0,0,.2);--button-hover-shift-x:-1px;--button-hover-shift-y:-1px;--nav-link-hover-shift-y:-1px;--ease-smooth:cubic-bezier(0.22,1,0.36,1);--ease-snappy:cubic-bezier(0.2,0.9,0.26,1);--shadow-sm:3px 3px 0 rgba(0,0,0,.08);--shadow-md:6px 6px 0 rgba(0,0,0,.12);--shadow-lg:10px 10px 0 rgba(0,0,0,.16);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:0.75rem;--space-lg:1rem;--space-xl:1.25rem;--space-2xl:1.5rem;--space-3xl:2rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--font-semibold:600;--font-bold:700;--font-extrabold:800;--accent-subtle:color-mix(in srgb,var(--accent) 30%,var(--panel));--accent-hover:color-mix(in srgb,var(--accent-strong) 75%,var(--accent) 25%);--accent-border:color-mix(in srgb,var(--accent-strong) 60%,transparent);--accent-text:color-mix(in srgb,var(--status-text) 85%,var(--text));--gradient-accent-soft:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);--gradient-accent-vibrant:linear-gradient(120deg,color-mix(in srgb,var(--accent-strong) 90%,transparent) 0%,color-mix(in srgb,var(--accent) 85%,transparent) 100%);--gradient-panel-tinted:linear-gradient(145deg,color-mix(in srgb,var(--panel) 94%,var(--accent) 6%) 0%,var(--panel) 100%);--border-glow-accent:0 0 12px color-mix(in srgb,var(--accent-strong) 35%,transparent);--border-glow-strong:0 0 20px color-mix(in srgb,var(--accent-strong) 45%,transparent);--transition-fast:150ms;--transition-base:200ms;--transition-slow:300ms;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm-colored:3px 3px 0 rgba(0,0,0,.08),0 0 8px color-mix(in srgb,var(--accent-strong) 15%,transparent);--shadow-md-colored:6px 6px 0 rgba(0,0,0,.12),0 0 12px color-mix(in srgb,var(--accent-strong) 20%,transparent);--shadow-lg-colored:10px 10px 0 rgba(0,0,0,.16),0 0 20px color-mix(in srgb,var(--accent-strong) 25%,transparent)}:root[data-ui-theme=mint]{--accent:#d8f1de;--accent-strong:#b9e8c5;--ring:rgba(154,224,173,.55);--bg-glow-a:rgba(185,232,197,.45);--bg-glow-b:rgba(216,241,222,.55);--panel-glow:rgba(216,241,222,.45);--status-bg:#edf8ef;--status-text:#124128;--status-border:#124128;--event-bg:#edf8ef;--event-border:#124128;--event-title:#124128;--event-details:#205436;--todo-check:#124128;--assistant-bubble-user:#d8f1de;--bottom-nav-indicator:#14532d;--link-hover:#14532d}:root[data-ui-theme=ocean]{--accent:#dbeeff;--accent-strong:#bddbff;--ring:rgba(116,170,255,.55);--bg-glow-a:rgba(171,208,255,.42);--bg-glow-b:rgba(211,232,255,.55);--panel-glow:rgba(154,197,255,.42);--status-bg:#eaf3ff;--status-text:#173a6a;--status-border:#173a6a;--event-bg:#eaf3ff;--event-border:#173a6a;--event-title:#173a6a;--event-details:#234f88;--todo-check:#1f4f8a;--assistant-bubble-user:#dbeeff;--bottom-nav-indicator:#1f4f8a;--link-hover:#1f4f8a}:root[data-ui-theme=sunset]{--accent:#ffe8d8;--accent-strong:#ffd2b5;--ring:rgba(255,170,112,.5);--bg-glow-a:rgba(255,196,146,.42);--bg-glow-b:rgba(255,224,192,.55);--panel-glow:rgba(255,198,150,.42);--status-bg:#fff1e4;--status-text:#7a3b1c;--status-border:#7a3b1c;--event-bg:#fff1e4;--event-border:#7a3b1c;--event-title:#7a3b1c;--event-details:#915030;--todo-check:#7a3b1c;--assistant-bubble-user:#ffe8d8;--bottom-nav-indicator:#b05529;--link-hover:#b05529}:root[data-ui-theme=custom]{--accent:var(--custom-accent,#d8f1de);--accent-strong:var(--custom-accent-strong,#b9e8c5);--ring:color-mix(in srgb,var(--custom-accent-strong,#b9e8c5) 48%,transparent);--bg-glow-a:color-mix(in srgb,var(--custom-accent-strong,#b9e8c5) 36%,transparent);--bg-glow-b:color-mix(in srgb,var(--custom-accent,#d8f1de) 42%,transparent);--panel-glow:color-mix(in srgb,var(--custom-accent,#d8f1de) 34%,transparent);--status-bg:color-mix(in srgb,var(--custom-accent,#d8f1de) 24%,#fff);--status-text:color-mix(in srgb,var(--custom-indicator,#14532d) 76%,#11253a);--status-border:var(--custom-indicator,#14532d);--event-bg:color-mix(in srgb,var(--custom-accent,#d8f1de) 24%,#fff);--event-border:var(--custom-indicator,#14532d);--event-title:color-mix(in srgb,var(--custom-indicator,#14532d) 76%,#11253a);--event-details:color-mix(in srgb,var(--custom-indicator,#14532d) 62%,#2b3f58);--todo-check:var(--custom-indicator,#14532d);--assistant-bubble-user:color-mix(in srgb,var(--custom-accent,#d8f1de) 78%,#fff);--bottom-nav-indicator:var(--custom-indicator,#14532d);--link-hover:var(--custom-indicator,#14532d)}:root[data-theme=dark]{color-scheme:dark;--bg:#090f17;--panel:#121b27;--panel-muted:#182334;--panel-hover:#1d2a3d;--panel-border:#95aac2;--text:#e8eff8;--muted:#aebdd0;--primary:#e6edf8;--primary-hover:#f6f9ff;--primary-foreground:#0d1522;--control-bg:#101a27;--control-text:#eef3fb;--success-bg:#173827;--success-text:#c8f9d7;--error-bg:#4b252b;--error-text:#ffd3d3;--topbar-bg:rgba(9,15,23,.86);--topbar-border:#95aac2;--topbar-logo-bg:#101826;--topbar-logo-border:#95aac2;--hero-bg:#172335;--hero-text:#f2f7ff;--hero-border:#95aac2;--hero-subtitle:#d0ddf0;--bottom-nav-bg:rgba(9,15,23,.88);--bottom-nav-border:#95aac2;--danger-bg:#4a2229;--danger-text:#ffd6d5;--danger-border:#ff9da7;--danger-button-bg:#ff9da7;--danger-button-hover:#ffb8bf;--danger-button-text:#2f1218;--assistant-bubble-assistant:#162131;--bg-grid-line:hsla(0,0%,100%,.04);--item-hover-shadow:3px 3px 0 rgba(0,0,0,.24);--hero-hover-shadow:10px 10px 0 rgba(0,0,0,.4);--button-shadow:4px 4px 0 rgba(0,0,0,.35);--shadow-sm:3px 3px 0 rgba(0,0,0,.35);--shadow-md:6px 6px 0 rgba(0,0,0,.45);--shadow-lg:10px 10px 0 rgba(0,0,0,.55)}:root[data-theme=dark]:not([data-ui-theme]),:root[data-theme=dark][data-ui-theme=mint]{--accent:#203529;--accent-strong:#2c4a38;--ring:rgba(140,214,164,.5);--bg-glow-a:rgba(61,112,83,.34);--bg-glow-b:rgba(37,76,56,.3);--panel-glow:rgba(125,218,167,.22);--status-bg:#1f3d2d;--status-text:#c5f5d3;--status-border:#9fe6b4;--event-bg:#1a3928;--event-border:#9fe6b4;--event-title:#c5f5d3;--event-details:#b5ebc6;--todo-check:#b8edca;--assistant-bubble-user:#243d30;--bottom-nav-indicator:#9fe6b4;--link-hover:#9fe6b4}:root[data-theme=dark][data-ui-theme=ocean]{--accent:#21344a;--accent-strong:#2c4765;--ring:rgba(139,189,255,.5);--bg-glow-a:rgba(66,108,168,.35);--bg-glow-b:rgba(49,90,145,.3);--panel-glow:rgba(138,181,244,.22);--status-bg:#203754;--status-text:#cde5ff;--status-border:#9ecbff;--event-bg:#1d3249;--event-border:#9ecbff;--event-title:#cde5ff;--event-details:#b3d7ff;--todo-check:#b8d9ff;--assistant-bubble-user:#273f59;--bottom-nav-indicator:#9ecbff;--link-hover:#9ecbff}:root[data-theme=dark][data-ui-theme=sunset]{--accent:#433026;--accent-strong:#5a3d30;--ring:rgba(255,178,121,.48);--bg-glow-a:rgba(167,102,61,.34);--bg-glow-b:rgba(122,79,54,.32);--panel-glow:rgba(255,170,109,.2);--status-bg:#4b2f22;--status-text:#ffd9c2;--status-border:#ffbe92;--event-bg:#472c20;--event-border:#ffbe92;--event-title:#ffd9c2;--event-details:#ffc9a5;--todo-check:#ffd0af;--assistant-bubble-user:#553b2e;--bottom-nav-indicator:#ffbe92;--link-hover:#ffbe92}:root[data-theme=dark][data-ui-theme=custom]{--accent:color-mix(in srgb,var(--custom-accent,#d8f1de) 32%,#0d1623);--accent-strong:color-mix(in srgb,var(--custom-accent-strong,#b9e8c5) 38%,#132033);--ring:color-mix(in srgb,var(--custom-accent-strong,#b9e8c5) 58%,transparent);--bg-glow-a:color-mix(in srgb,var(--custom-accent-strong,#b9e8c5) 26%,transparent);--bg-glow-b:color-mix(in srgb,var(--custom-accent,#d8f1de) 24%,transparent);--panel-glow:color-mix(in srgb,var(--custom-accent,#d8f1de) 24%,transparent);--status-bg:color-mix(in srgb,var(--custom-accent,#d8f1de) 24%,#101a27);--status-text:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 74%,#eff6ff);--status-border:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 82%,#d7f3e1);--event-bg:color-mix(in srgb,var(--custom-accent,#d8f1de) 18%,#101a27);--event-border:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 82%,#d7f3e1);--event-title:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 74%,#eff6ff);--event-details:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 64%,#d9e8f7);--todo-check:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 82%,#f0f7ff);--assistant-bubble-user:color-mix(in srgb,var(--custom-accent,#d8f1de) 18%,#1b2a3f);--bottom-nav-indicator:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 82%,#f0f7ff);--link-hover:color-mix(in srgb,var(--custom-indicator,#9fe6b4) 82%,#f0f7ff)}:root:not([data-layout-theme]),:root[data-layout-theme=classic]{--radius-ui:2px;--radius-logo:6px;--surface-hover-shift-x:-3px;--surface-hover-shift-y:-3px;--surface-hover-shadow:var(--shadow-md);--item-hover-shift-x:-1px;--item-hover-shift-y:-1px;--item-hover-shadow:3px 3px 0 rgba(0,0,0,.08);--hero-hover-shift-x:-2px;--hero-hover-shift-y:-2px;--hero-hover-shadow:12px 12px 0 rgba(0,0,0,.18);--button-shadow:4px 4px 0 rgba(0,0,0,.2);--button-hover-shift-x:-1px;--button-hover-shift-y:-1px;--nav-link-hover-shift-y:-1px}:root[data-theme=dark]:not([data-layout-theme]),:root[data-theme=dark][data-layout-theme=classic]{--item-hover-shadow:3px 3px 0 rgba(0,0,0,.24);--hero-hover-shadow:10px 10px 0 rgba(0,0,0,.4);--button-shadow:4px 4px 0 rgba(0,0,0,.35)}:root[data-layout-theme=bubbly]{--radius-ui:16px;--radius-logo:14px;--surface-hover-shift-x:0px;--surface-hover-shift-y:-2px;--surface-hover-shadow:var(--shadow-md);--item-hover-shift-x:0px;--item-hover-shift-y:-1px;--item-hover-shadow:0 12px 24px rgba(13,26,45,.14);--hero-hover-shift-x:0px;--hero-hover-shift-y:-2px;--hero-hover-shadow:0 24px 42px rgba(13,26,45,.22);--button-shadow:0 10px 22px rgba(13,26,45,.2);--button-hover-shift-x:0px;--button-hover-shift-y:-1px;--nav-link-hover-shift-y:0px;--shadow-sm:0 10px 24px rgba(13,26,45,.12);--shadow-md:0 16px 32px rgba(13,26,45,.16);--shadow-lg:0 22px 44px rgba(13,26,45,.2)}:root[data-theme=dark][data-layout-theme=bubbly]{--item-hover-shadow:0 14px 26px rgba(0,0,0,.42);--hero-hover-shadow:0 24px 42px rgba(0,0,0,.5);--button-shadow:0 10px 20px rgba(0,0,0,.45);--shadow-sm:0 10px 24px rgba(0,0,0,.38);--shadow-md:0 16px 32px rgba(0,0,0,.44);--shadow-lg:0 24px 46px rgba(0,0,0,.5)}:root[data-layout-theme=sleek]{--radius-ui:10px;--radius-logo:10px;--surface-hover-shift-x:0px;--surface-hover-shift-y:-1px;--surface-hover-shadow:var(--shadow-md);--item-hover-shift-x:0px;--item-hover-shift-y:-1px;--item-hover-shadow:0 10px 20px rgba(12,24,40,.13);--hero-hover-shift-x:0px;--hero-hover-shift-y:-1px;--hero-hover-shadow:0 18px 32px rgba(12,24,40,.2);--button-shadow:0 8px 18px rgba(12,24,40,.18);--button-hover-shift-x:0px;--button-hover-shift-y:-1px;--nav-link-hover-shift-y:-1px;--shadow-sm:0 8px 18px rgba(12,24,40,.11);--shadow-md:0 12px 26px rgba(12,24,40,.15);--shadow-lg:0 18px 34px rgba(12,24,40,.2)}:root[data-theme=dark][data-layout-theme=sleek]{--item-hover-shadow:0 12px 24px rgba(0,0,0,.4);--hero-hover-shadow:0 18px 34px rgba(0,0,0,.48);--button-shadow:0 9px 18px rgba(0,0,0,.42);--shadow-sm:0 8px 18px rgba(0,0,0,.34);--shadow-md:0 12px 26px rgba(0,0,0,.4);--shadow-lg:0 18px 34px rgba(0,0,0,.46)}:root[data-layout-theme=mosaic]{--radius-ui:6px;--radius-logo:8px;--surface-hover-shift-x:0px;--surface-hover-shift-y:-2px;--surface-hover-shadow:var(--shadow-md);--item-hover-shift-x:0px;--item-hover-shift-y:-1px;--item-hover-shadow:0 12px 24px rgba(24,37,59,.16);--hero-hover-shift-x:0px;--hero-hover-shift-y:-2px;--hero-hover-shadow:0 20px 36px rgba(24,37,59,.22);--button-shadow:0 10px 20px rgba(24,37,59,.2);--button-hover-shift-x:0px;--button-hover-shift-y:-1px;--nav-link-hover-shift-y:-1px;--shadow-sm:0 10px 20px rgba(24,37,59,.12);--shadow-md:0 16px 30px rgba(24,37,59,.16);--shadow-lg:0 24px 40px rgba(24,37,59,.2)}:root[data-theme=dark][data-layout-theme=mosaic]{--item-hover-shadow:0 12px 24px rgba(0,0,0,.45);--hero-hover-shadow:0 20px 38px rgba(0,0,0,.52);--button-shadow:0 10px 20px rgba(0,0,0,.44);--shadow-sm:0 10px 20px rgba(0,0,0,.38);--shadow-md:0 16px 30px rgba(0,0,0,.44);--shadow-lg:0 24px 42px rgba(0,0,0,.5)}:root[data-layout-theme=studio]{--radius-ui:20px;--radius-logo:12px;--surface-hover-shift-x:0px;--surface-hover-shift-y:-1px;--surface-hover-shadow:var(--shadow-md);--item-hover-shift-x:0px;--item-hover-shift-y:-1px;--item-hover-shadow:0 8px 18px rgba(13,26,45,.16);--hero-hover-shift-x:0px;--hero-hover-shift-y:-1px;--hero-hover-shadow:0 16px 30px rgba(13,26,45,.22);--button-shadow:0 8px 16px rgba(13,26,45,.2);--button-hover-shift-x:0px;--button-hover-shift-y:-1px;--nav-link-hover-shift-y:-1px;--shadow-sm:0 8px 16px rgba(13,26,45,.13);--shadow-md:0 12px 24px rgba(13,26,45,.17);--shadow-lg:0 18px 32px rgba(13,26,45,.22)}:root[data-theme=dark][data-layout-theme=studio]{--item-hover-shadow:0 10px 20px rgba(0,0,0,.43);--hero-hover-shadow:0 16px 30px rgba(0,0,0,.5);--button-shadow:0 8px 16px rgba(0,0,0,.44);--shadow-sm:0 8px 16px rgba(0,0,0,.36);--shadow-md:0 12px 24px rgba(0,0,0,.42);--shadow-lg:0 18px 32px rgba(0,0,0,.48)}html{scroll-behavior:smooth}body,html{margin:0;padding:0;min-height:100%;font-family:var(--font-stack,"Avenir Next","Trebuchet MS","Segoe UI",Tahoma,sans-serif);font-size:16px;line-height:1.5;text-rendering:optimizeLegibility;color:var(--text);overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;background-color:var(--bg);background-image:linear-gradient(to right,var(--bg-grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--bg-grid-line) 1px,transparent 1px),radial-gradient(900px 420px at 0 0,var(--bg-glow-a) 0,transparent 58%),radial-gradient(800px 420px at 100% 100%,var(--bg-glow-b) 0,transparent 62%);background-size:24px 24px,24px 24px,140% 140%,140% 140%;background-position:0 0,0 0,0 0,100% 100%;animation:background-drift 18s var(--ease-smooth) infinite alternate}a{color:inherit;text-decoration:none}.app-body{min-height:100vh;isolation:isolate}.app-topbar{position:sticky;top:0;z-index:60;min-height:58px;padding:.55rem .9rem;border-bottom:2px solid var(--custom-topbar-border,var(--topbar-border));background:var(--custom-topbar-bg,var(--topbar-bg));backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;animation:notice-in .22s var(--ease-smooth) both}.app-topbar-brand{display:inline-flex;align-items:center;gap:var(--space-sm)}.app-topbar-brand-wrap{display:inline-flex;align-items:center;gap:.52rem;min-width:0}.app-topbar-version-link{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.02em;opacity:.92;transition:color .18s ease,opacity .18s ease}.app-topbar-version-link:hover{color:var(--text);opacity:1}.app-topbar-logo{border:2px solid var(--topbar-logo-border);border-radius:var(--radius-logo);background:var(--topbar-logo-bg)}.app-topbar-title{display:inline-flex;align-items:baseline;gap:.02em;font-size:.96rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.app-topbar-title-skool{font-size:.9em;letter-spacing:.045em}.app-topbar-title-better{font-size:1em;letter-spacing:.03em;-webkit-text-stroke:1.3px currentColor;paint-order:stroke fill}.app-topbar-actions{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.app-topbar-actions-mobile{flex-wrap:nowrap;max-width:min(62vw,430px);overflow-x:auto;scrollbar-width:none}.app-topbar-actions-mobile::-webkit-scrollbar{display:none}.app-topbar-logout{margin:0}.app-topbar-title-mobile{letter-spacing:.01em;text-transform:none}.floating-assistant-launcher{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;white-space:nowrap}.floating-assistant-launcher-icon{width:1rem;height:1rem}.floating-assistant-launcher-label{line-height:1}.locked-assistant-btn{opacity:.55;position:relative;text-decoration:none}.locked-assistant-btn:hover{opacity:.75}.locked-assistant-lock-icon{width:.7rem;height:.7rem;margin-left:.05rem;flex-shrink:0}.upgrade-nudge{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem .9rem;border-radius:var(--radius-ui);background:color-mix(in srgb,var(--accent) 7%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}.upgrade-nudge-icon{font-size:1rem;line-height:1.5;flex-shrink:0}.upgrade-nudge-text{margin:0;font-size:.875rem;line-height:1.5;color:var(--text)}.upgrade-nudge-link{font-weight:700;color:var(--link-hover);text-decoration:underline;text-underline-offset:2px}.upgrade-nudge-link:hover{opacity:.8}.floating-assistant-window{position:fixed;top:4.35rem;right:1rem;z-index:96;width:min(420px,calc(100vw - 1.5rem));max-height:min(70vh,640px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);box-shadow:var(--shadow-lg);overflow:hidden;transform-origin:top right;animation:floating-assistant-enter .19s var(--ease-smooth) both}.floating-assistant-history{position:absolute;inset:0 auto 0 0;width:min(220px,68%);border-right:2px solid var(--panel-border);background:color-mix(in srgb,var(--panel) 94%,var(--accent-subtle) 6%);display:grid;grid-template-rows:auto minmax(0,1fr);gap:.5rem;padding:.72rem .68rem .72rem .72rem;z-index:2;transform:translateX(-105%);opacity:0;pointer-events:none;transition:transform .19s var(--ease-smooth),opacity .19s var(--ease-smooth)}.floating-assistant-history-open{transform:translateX(0);opacity:1;pointer-events:auto}.floating-assistant-history-header{align-items:center;display:flex;gap:.45rem;justify-content:space-between}.floating-assistant-history-title{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.8}.floating-assistant-history-list{display:grid;align-content:start;gap:.45rem;overflow-y:auto;padding-right:.1rem}.floating-assistant-history-item-row{display:grid;gap:.3rem}.floating-assistant-history-item{width:100%;border:1px solid var(--panel-border);border-radius:.62rem;padding:.45rem .5rem;background:var(--panel);color:var(--text);text-align:left;display:grid;gap:.22rem;cursor:pointer}.floating-assistant-history-item-active{background:color-mix(in srgb,var(--accent) 26%,var(--panel) 74%)}.floating-assistant-history-item-title{margin:0;font-size:.78rem;font-weight:700;line-height:1.25}.floating-assistant-history-item-time{margin:0;font-size:.65rem;opacity:.78}.floating-assistant-history-delete{justify-self:start}.floating-assistant-window-closing{pointer-events:none;animation:floating-assistant-exit .19s var(--ease-smooth) both}.floating-assistant-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;padding:.72rem .8rem;border-bottom:1px solid var(--panel-border);background:var(--accent-subtle)}.floating-assistant-title{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.floating-assistant-subtitle{margin:.2rem 0 0;font-size:.72rem;opacity:.8}.floating-assistant-header-actions{display:flex;align-items:center;gap:.4rem}.floating-assistant-timeline{overflow-y:auto;display:grid;gap:.55rem;padding:.78rem .8rem;background:color-mix(in srgb,var(--panel) 90%,var(--accent-subtle) 10%)}.floating-assistant-message{border:1px solid var(--panel-border);border-radius:.9rem;padding:.55rem .6rem;display:grid;gap:.28rem}.floating-assistant-message-assistant{background:var(--assistant-bubble-assistant)}.floating-assistant-message-user{background:var(--assistant-bubble-user)}.floating-assistant-message-label{margin:0;font-size:clamp(.62rem,.58rem + .16vw,.74rem);text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.72}.floating-assistant-message-content{margin:0;font-size:clamp(.84rem,.78rem + .28vw,1rem);line-height:1.45}.floating-assistant-form{border-top:1px solid var(--panel-border);padding:.72rem .8rem .82rem;display:grid;gap:.48rem;background:var(--panel)}.floating-assistant-input-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.8}.floating-assistant-input{width:100%;border:2px solid var(--panel-border);border-radius:.72rem;background:var(--surface);color:var(--text);padding:.55rem .6rem;resize:vertical;min-height:3.2rem}.floating-assistant-input:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.floating-assistant-form-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.floating-assistant-error{margin:0;font-size:.72rem;color:var(--error-text)}.floating-assistant-resize-handle{position:absolute;left:0;bottom:0;width:16px;height:16px;border:0;padding:0;background:linear-gradient(225deg,transparent 0 44%,color-mix(in srgb,var(--text) 35%,transparent) 45% 56%,transparent 57% 100%);cursor:nesw-resize;opacity:.75}.floating-assistant-resize-handle:hover{opacity:1}.app-topbar-status{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--status-text);background:linear-gradient(120deg,var(--status-bg) 0,color-mix(in srgb,var(--status-bg) 85%,var(--accent-strong) 15%) 100%);border:2px solid var(--status-border);border-radius:999px;padding:.18rem .56rem;font-weight:700;box-shadow:0 2px 8px color-mix(in srgb,var(--status-border) 20%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 15%,transparent);transition:transform .18s var(--ease-snappy),box-shadow .22s var(--ease-smooth)}.app-topbar-status:hover{transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--status-border) 30%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 20%,transparent)}.app-topbar-upgrade{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border:2px solid transparent;border-radius:999px;padding:.16rem .6rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--text);background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(90deg,#ff5f6d,#ffc371,#f9f871,#67e8f9,#60a5fa,#ff5f6d) border-box;background-size:100% 100%,220% 220%;background-position:50%,0 50%;transition:transform .18s var(--ease-snappy);animation:pro-rainbow-flow 8s linear infinite}.app-topbar-upgrade:hover{transform:translateY(-1px)}:root[data-device=mobile] .app-topbar{gap:.45rem}:root[data-device=mobile] .app-topbar-brand{flex:1 1 auto;min-width:0}:root[data-device=mobile] .app-topbar-title{min-width:0;white-space:nowrap;font-size:.82rem}:root[data-device=mobile] .app-topbar-status{display:none}:root[data-device=mobile] .app-topbar-manage-link,:root[data-device=mobile] .app-topbar-mobile-chip{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border:2px solid var(--panel-border);border-radius:999px;padding:.14rem .52rem;background:var(--panel);color:var(--text);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}:root[data-device=mobile] .app-topbar-actions-mobile .app-topbar-upgrade{animation:none;min-height:30px;padding:.12rem .52rem;font-size:.68rem}:root[data-device=mobile] .app-topbar-actions-mobile .app-topbar-logout .btn-base{min-height:30px;padding:.18rem .58rem;font-size:.72rem}:root[data-device=mobile] .app-topbar-actions-mobile .app-topbar-logout .btn-size-sm{min-height:30px}:root[data-device=mobile] .floating-assistant-launcher{min-height:30px;padding:.14rem .52rem}:root[data-device=mobile] .floating-assistant-launcher-label{display:none}:root[data-device=mobile] .floating-assistant-window{top:4rem;right:.5rem;left:.5rem;width:auto;max-height:calc(100vh - 9.5rem - env(safe-area-inset-bottom))}:root[data-device=mobile] .floating-assistant-history{width:min(230px,86%)}:root[data-device=mobile] .floating-assistant-resize-handle{display:none}.home-shell{padding:2.25rem 1.25rem 7rem;animation:page-in .36s var(--ease-smooth) both}.home-shell,.landing-shell{max-width:1000px;margin:0 auto}.landing-shell{padding:2.25rem 1.25rem 2.4rem;animation:page-in .38s var(--ease-smooth) both}.landing-shell-expanded{display:grid;gap:1.1rem}.auth-shell{max-width:1000px;margin:0 auto;padding:2.25rem 1.25rem 2.4rem;animation:page-in .38s var(--ease-smooth) both}.early-shell{padding-bottom:7rem}.landing-hero{background:var(--hero-bg);color:var(--hero-text);border:2px solid var(--hero-border);border-radius:var(--radius-ui);padding:1.6rem 1.5rem;box-shadow:var(--shadow-lg);animation:rise-in .32s var(--ease-smooth) both}.landing-actions{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:1rem}.landing-actions .btn-base{transition:background-color .18s var(--ease-smooth),border-color .18s var(--ease-smooth),color .18s var(--ease-smooth),box-shadow .18s var(--ease-smooth)}.landing-actions .btn-base:after{content:none}.landing-actions .btn-variant-default:hover:not(:disabled){transform:none;box-shadow:0 8px 18px rgba(8,16,28,.14)}.landing-actions .btn-variant-outline:hover:not(:disabled){background:color-mix(in srgb,var(--control-bg) 88%,var(--accent) 12%);border-color:color-mix(in srgb,var(--panel-border) 70%,var(--accent) 30%);color:var(--control-text)}.landing-actions .btn-variant-outline:hover:not(:disabled):before{opacity:0}.landing-grid{margin-top:var(--space-xl);display:grid;gap:.95rem;grid-template-columns:repeat(3,minmax(0,1fr))}.landing-hero-rich{background:linear-gradient(135deg,hsla(0,0%,100%,.07) 0,transparent 48%),linear-gradient(118deg,var(--hero-bg) 0,color-mix(in srgb,var(--hero-bg) 88%,var(--accent) 12%) 100%)}.landing-hero-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(250px,360px);align-items:stretch}.landing-hero-aside{display:grid;gap:var(--space-md)}.landing-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.58rem}.landing-stat-item{margin:0;border:2px solid color-mix(in srgb,var(--hero-text) 52%,transparent);border-radius:var(--radius-ui);padding:.55rem .6rem;background:linear-gradient(145deg,color-mix(in srgb,var(--hero-text) 15%,transparent) 0,color-mix(in srgb,var(--accent) 22%,transparent) 100%)}.landing-stat-label{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.landing-stat-value{margin:.26rem 0 0;font-size:.9rem;font-weight:700;line-height:1.35}.landing-integrations{display:flex;flex-wrap:wrap;gap:.45rem}.landing-chip{display:inline-flex;align-items:center;min-height:28px;border:2px solid color-mix(in srgb,var(--hero-text) 48%,transparent);border-radius:999px;padding:.08rem .55rem;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;background:linear-gradient(135deg,color-mix(in srgb,var(--hero-text) 14%,transparent) 0,color-mix(in srgb,var(--accent) 20%,transparent) 100%)}.landing-feature-grid{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr))}.landing-list{margin:0;padding:0;list-style:none;display:grid;gap:.42rem}.landing-list li{position:relative;padding-left:.9rem;color:var(--muted);font-size:.92rem}.landing-list li:before{content:"";position:absolute;left:0;top:.55em;width:.4rem;height:.4rem;border-radius:999px;background:var(--bottom-nav-indicator)}.landing-flow{display:grid;gap:.95rem;grid-template-columns:repeat(4,minmax(0,1fr))}.landing-flow-step{display:grid;grid-template-rows:auto auto 1fr;gap:.45rem}.landing-step-number{margin:0;width:fit-content;min-width:2.2rem;text-align:center;border:2px solid var(--panel-border);border-radius:999px;padding:.08rem .5rem;font-size:.74rem;font-weight:800;letter-spacing:.06em;color:var(--status-text);background:var(--status-bg)}.landing-audience-grid{margin-top:0}.landing-footer{display:flex;justify-content:center;gap:1.5rem;padding:2rem 1rem 1rem;margin-top:1rem;border-top:1px solid color-mix(in srgb,var(--panel-border) 60%,transparent)}.landing-footer-link{font-size:.875rem;color:var(--text-muted,currentColor);opacity:.7;text-decoration:none;transition:opacity .15s ease}.landing-footer-link:hover{opacity:1;text-decoration:underline}.school-signup-dock{position:relative;margin-top:2rem;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-md);padding-left:0;z-index:1;transition:justify-content .26s var(--ease-smooth),gap .26s var(--ease-smooth)}.school-signup-dock:after,.school-signup-dock:before{content:"";flex:0 0 0;height:1px;background:color-mix(in srgb,var(--panel-border) 78%,transparent);transition:flex-basis .26s var(--ease-smooth)}.school-signup-dock.is-open{justify-content:center}.school-signup-dock.is-open:after,.school-signup-dock.is-open:before{flex-basis:min(32vw,360px)}.school-signup-launch-btn{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.school-signup-launch-icon{width:16px;height:16px}.school-signup-panel{margin-top:.9rem;margin-inline:auto;width:min(100%,560px);position:relative;animation:rise-in .22s var(--ease-smooth) both}.school-signup-close{position:absolute;top:.55rem;right:.55rem;border:none;background:transparent;color:var(--text);width:auto;height:auto;padding:.2rem .35rem;line-height:1;font-size:1rem;font-weight:700;cursor:pointer}.school-signup-divider{display:flex;align-items:center;gap:var(--space-md);margin-bottom:.45rem}.school-signup-divider:after,.school-signup-divider:before{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--panel-border) 78%,transparent)}.school-signup-heading{white-space:nowrap;font-size:1.02rem;font-weight:700}.hero-card{background:var(--hero-bg);color:var(--hero-text);border:2px solid var(--hero-border);border-radius:var(--radius-ui);padding:1.6rem 1.5rem;box-shadow:var(--shadow-lg);animation:rise-in .32s var(--ease-smooth) both}.hero-card,.landing-hero{position:relative;overflow:hidden;transition:transform .22s var(--ease-snappy),box-shadow .26s var(--ease-smooth)}.hero-card:after,.landing-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,hsla(0,0%,100%,.06) 40%,transparent 72%);transform:translateX(-130%);pointer-events:none}.hero-kicker{margin:0 0 .35rem;opacity:.8;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.hero-title{margin:0;font-size:clamp(1.5rem,2vw + 1rem,2.2rem)}.hero-subtitle{margin:.65rem 0 0;color:var(--hero-subtitle);max-width:56ch;line-height:1.58}.hero-headline-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.panel-grid{display:grid;gap:.95rem;grid-template-columns:repeat(2,minmax(0,1fr))}.auth-grid,.panel-grid{margin-top:var(--space-xl)}.landing-grid .panel:first-child,.panel-grid .panel:first-child{animation-delay:70ms}.landing-grid .panel:nth-child(2),.panel-grid .panel:nth-child(2){animation-delay:.13s}.landing-grid .panel:nth-child(3),.panel-grid .panel:nth-child(3){animation-delay:.19s}.landing-grid .panel:nth-child(4),.panel-grid .panel:nth-child(4){animation-delay:.25s}.panel{background:var(--gradient-panel-tinted);border:2px solid var(--panel-border);border-radius:var(--radius-ui);padding:1rem;box-shadow:var(--shadow-sm);transition:transform .18s var(--ease-snappy),box-shadow .24s var(--ease-smooth),background-color .24s var(--ease-smooth),border-color .24s var(--ease-smooth);animation:rise-in .36s var(--ease-smooth) both;position:relative;overflow:hidden;isolation:isolate}.panel:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:2px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-strong) 25%,transparent) 0,transparent 40%,color-mix(in srgb,var(--accent) 15%,transparent) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .28s var(--ease-smooth);pointer-events:none}.panel:hover{transform:translate(var(--surface-hover-shift-x),var(--surface-hover-shift-y));box-shadow:var(--surface-hover-shadow),var(--border-glow-accent);background:linear-gradient(145deg,color-mix(in srgb,var(--panel-hover) 90%,var(--accent) 10%) 0,var(--panel-hover) 100%);border-color:color-mix(in srgb,var(--panel-border) 75%,var(--accent-strong) 25%)}.panel:hover:before{opacity:1}.panel:after{content:"";position:absolute;inset:auto -50% -65% -50%;height:70%;background:radial-gradient(circle at center,color-mix(in srgb,var(--panel-glow) 100%,transparent 0) 0,transparent 70%);opacity:0;transform:translateY(10px) scale(.9);transition:opacity .28s var(--ease-smooth),transform .28s var(--ease-smooth);pointer-events:none;z-index:0}.panel:hover:after{opacity:1;transform:translateY(0) scale(1)}.panel>*{position:relative;z-index:1}.panel-full{grid-column:1/-1}.panel-title{margin:0;font-size:1rem}.panel-copy{margin:.48rem 0 1rem;color:var(--muted);line-height:1.56}.inline-link{font-weight:700;text-decoration:underline;text-underline-offset:3px;transition:color .18s var(--ease-smooth),text-underline-offset .18s var(--ease-smooth)}.inline-link:hover{color:var(--link-hover);text-underline-offset:5px}.auth-block{display:grid;gap:var(--space-md)}.auth-pill{display:inline-flex;align-items:center;min-height:34px;border:2px solid var(--panel-border);border-radius:var(--radius-ui);padding:0 .75rem;font-size:.86rem;color:var(--control-text);background:var(--control-bg);transition:transform .18s var(--ease-snappy),box-shadow .22s var(--ease-smooth)}.auth-pill-signed-in{border-color:var(--status-border);background:var(--accent);color:var(--status-text);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);animation:pulse-soft 2.8s var(--ease-smooth) infinite}.google-icon{width:18px;height:18px}.sync-block{display:grid;gap:var(--space-md)}.sync-message{margin:0;border:2px solid;border-radius:var(--radius-ui);padding:.62rem .75rem;font-size:.9rem;animation:notice-in .24s var(--ease-smooth) both}.sync-message-success{background:var(--success-bg);color:var(--success-text)}.sync-message-error{background:var(--error-bg);color:var(--error-text)}.todo-create-card,.todo-list{display:grid;gap:var(--space-sm)}.todo-create-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:var(--space-md)}.todo-create-title{margin:0;font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}.pomodoro-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:linear-gradient(140deg,color-mix(in srgb,var(--panel) 78%,var(--accent) 22%) 0,color-mix(in srgb,var(--panel) 92%,var(--accent-strong) 8%) 50%,var(--panel) 100%);padding:var(--space-md);display:grid;gap:var(--space-md);box-shadow:var(--shadow-sm),var(--border-glow-accent);transition:box-shadow var(--transition-slow) var(--ease-smooth)}.pomodoro-card:hover{box-shadow:var(--shadow-md-colored)}.pomodoro-toggle-button{min-height:32px;padding:.32rem .6rem;gap:.35rem}.pomodoro-toggle-state{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;line-height:1.2}.pomodoro-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.pomodoro-kicker{margin:0;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.pomodoro-title{margin:.14rem 0 0;font-size:1rem}.pomodoro-mode-badge{border:2px solid var(--panel-border);border-radius:999px;padding:.18rem .52rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;line-height:1.2}.pomodoro-mode-focus{background:color-mix(in srgb,var(--accent-strong) 26%,transparent)}.pomodoro-mode-longBreak,.pomodoro-mode-shortBreak{background:color-mix(in srgb,var(--success-bg) 88%,transparent)}.pomodoro-time{margin:0;font-size:clamp(1.9rem,6.8vw,2.5rem);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.04em}.pomodoro-progress{width:100%;height:9px;border-radius:999px;border:2px solid var(--panel-border);background:var(--panel-muted);overflow:hidden}.pomodoro-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--accent-strong) 88%,transparent),color-mix(in srgb,var(--accent) 78%,var(--accent-strong) 22%));transition:width .22s var(--ease-smooth)}.pomodoro-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pomodoro-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.52rem .68rem}.announcements-section{border:2px solid var(--danger-border);border-radius:var(--radius-ui);background:var(--danger-bg);animation:notice-in .24s var(--ease-smooth) both;overflow:hidden}.announcements-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.72rem .78rem;background:none;border:none;cursor:pointer;color:var(--danger-text);font-weight:600;font-size:inherit;text-align:left;gap:var(--space-md)}.announcements-toggle:hover{opacity:.85}.announcements-toggle-chevron{font-size:.7em;flex-shrink:0}.announcements-list{display:flex;flex-direction:column;gap:.5rem;padding:0 .78rem .78rem}.notice-neutral-section{border-color:var(--panel-border);background:var(--panel-muted)}.notice-neutral-toggle{color:var(--text)}.notice-neutral-item{border-color:color-mix(in srgb,var(--panel-border) 72%,transparent);background:color-mix(in srgb,var(--panel) 92%,transparent)}.notice-neutral-item-link,.notice-neutral-item-text{color:var(--text)}.manual-turnin-alert{border:2px solid var(--danger-border);border-radius:var(--radius-ui);background:var(--danger-bg);padding:.72rem .78rem;display:flex;gap:var(--space-md);justify-content:space-between;align-items:flex-start;animation:notice-in .24s var(--ease-smooth) both}.announcements-list .manual-turnin-alert{border-color:color-mix(in srgb,var(--danger-border) 60%,transparent);background:color-mix(in srgb,var(--danger-bg) 60%,transparent);animation:none}.announcements-list .notice-neutral-item{border-color:color-mix(in srgb,var(--panel-border) 72%,transparent);background:color-mix(in srgb,var(--panel) 92%,transparent)}.manual-turnin-alert-text{margin:0;color:var(--danger-text);line-height:1.4;flex:1;min-width:0}.manual-turnin-alert-link{color:var(--danger-text);font-weight:700;text-decoration:underline;text-underline-offset:3px}.manual-turnin-alert .btn-base{flex-shrink:0;align-self:flex-start}.todo-toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.todo-toolbar .todo-toolbar-icon-button.btn-size-icon{min-height:38px;width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}.todo-toolbar-pill-button{display:inline-flex;align-items:center;justify-content:center;gap:0;overflow:hidden;transition:gap .18s var(--ease-smooth),padding .18s var(--ease-smooth),width .18s var(--ease-smooth)}.todo-toolbar-pill-button-active{gap:.38rem}.todo-toolbar .todo-toolbar-pill-button-active.btn-size-icon,.todo-toolbar-pill-button-active{width:auto;min-width:max-content;height:38px;padding:.34rem .78rem}.todo-toolbar .todo-toolbar-pill-button{gap:0}.todo-toolbar .todo-toolbar-pill-button.todo-toolbar-pill-button-active{gap:.38rem}.todo-toolbar-label{max-width:0;opacity:0;transform:translateX(-6px);white-space:nowrap;overflow:hidden;font-size:.82rem;font-weight:700;text-transform:none;letter-spacing:.01em;line-height:1;transition:max-width .22s var(--ease-smooth),opacity .18s var(--ease-smooth),transform .22s var(--ease-smooth)}.todo-toolbar-pill-button-active .todo-toolbar-label{max-width:120px;opacity:1;transform:translateX(0)}.todo-toolbar-icon{width:16px;height:16px;flex-shrink:0;display:block}.todo-view-toggle{min-width:0}.todo-calendar-week{display:grid;gap:var(--space-md)}.todo-calendar-week-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.todo-calendar-week-title{margin:0;font-size:.96rem;letter-spacing:.01em}.todo-calendar-week-range{margin:0;color:var(--muted);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.todo-calendar-title-bar{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}.todo-calendar-title-chip{flex:0 0 auto;max-width:240px;border:2px solid var(--panel-border);border-radius:999px;background:var(--panel);padding:.35rem .68rem;font-size:.82rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-calendar-title-chip-completed{color:var(--muted);text-decoration:line-through}.todo-calendar-overflow-list{display:flex;flex-wrap:wrap;gap:.42rem}.todo-calendar-overflow-item{margin:0;border:2px solid var(--panel-border);border-radius:999px;background:var(--panel);padding:.25rem .62rem;font-size:.8rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-icon{width:16px;height:16px}.todo-controls{display:grid;gap:var(--space-sm);border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:var(--space-md)}.todo-control-label{font-size:.84rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.extra-instructions-input,.todo-control-input,.todo-control-select{width:100%;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--control-bg);color:var(--control-text);min-height:40px;padding:var(--space-sm) var(--space-md);font:inherit;transition:border-color var(--transition-base) var(--ease-smooth),box-shadow var(--transition-base) var(--ease-smooth)}.extra-instructions-input:hover,.todo-control-input:hover,.todo-control-select:hover{border-color:color-mix(in srgb,var(--panel-border) 60%,var(--accent-strong) 40%)}.extra-instructions-input:focus-visible,.todo-control-input:focus-visible,.todo-control-select:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-color:var(--accent-border);box-shadow:0 0 0 4px color-mix(in srgb,var(--ring) 25%,transparent),var(--border-glow-accent)}.extra-instructions-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:var(--space-md);display:grid;gap:var(--space-sm)}.extra-instructions-input{resize:vertical;min-height:100px}.todo-item{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:start;gap:var(--space-md);border:2px solid var(--panel-border);border-radius:var(--radius-ui);padding:var(--space-md);background:var(--panel);position:relative;overflow:hidden;transition:transform .17s var(--ease-snappy),box-shadow .24s var(--ease-smooth),background .24s var(--ease-smooth),border-color .24s var(--ease-smooth),opacity .24s var(--ease-smooth);animation:item-in .26s var(--ease-smooth) both}.todo-item-checked-effect{animation:todo-check-outline .7s var(--ease-snappy) both}.todo-item-checked-effect:before{content:"";position:absolute;inset:-30%;border-radius:40%;background:radial-gradient(circle,color-mix(in srgb,var(--accent-strong) 42%,transparent) 0,color-mix(in srgb,var(--accent) 26%,transparent) 34%,transparent 70%);pointer-events:none;transform:scale(.42);opacity:0;animation:todo-check-ripple .7s var(--ease-smooth) both}.todo-item-checked-effect .todo-title{animation:todo-check-title .42s var(--ease-snappy) both}.todo-item:hover{transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y));box-shadow:var(--item-hover-shadow);border-color:color-mix(in srgb,var(--panel-border) 70%,var(--accent-strong) 30%)}.todo-item-completed{opacity:.82;background:linear-gradient(130deg,var(--accent) 0,color-mix(in srgb,var(--accent) 90%,var(--accent-strong) 10%) 100%);border-color:var(--accent-border);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 12%,transparent),0 0 0 1px color-mix(in srgb,var(--accent-strong) 20%,transparent)}.todo-item-overdue{border-color:var(--error-text);background:color-mix(in srgb,var(--error-bg) 52%,var(--panel) 48%)}.todo-item-overdue .todo-title{color:var(--error-text)}.todo-item>input[type=checkbox]{margin-top:.2rem;width:16px;height:16px;appearance:none;border:2px solid var(--panel-border);background:var(--control-bg);border-radius:var(--radius-ui);position:relative;cursor:pointer;transition:background-color .14s var(--ease-smooth),transform .14s var(--ease-snappy)}.todo-item>input[type=checkbox]:after{content:"";position:absolute;left:3px;top:-1px;width:5px;height:10px;border-right:2px solid var(--todo-check);border-bottom:2px solid var(--todo-check);transform:rotate(45deg) scale(0);transform-origin:center;transition:transform .14s var(--ease-snappy)}.todo-item>input[type=checkbox]:checked{background:var(--gradient-accent-soft);border-color:var(--status-border);box-shadow:0 0 8px color-mix(in srgb,var(--accent-strong) 40%,transparent)}.todo-item>input[type=checkbox]:checked:after{transform:rotate(45deg) scale(1)}.todo-item>input[type=checkbox]:active{transform:scale(.92)}.todo-item>input[type=checkbox]:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.todo-checkbox-celebrate{animation:todo-checkbox-pop .32s var(--ease-snappy) both}.todo-checkbox-celebrate:before{content:"";position:absolute;inset:-9px;pointer-events:none;border-radius:50%;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--accent-strong) 0,transparent) 0 32%,transparent 34%),conic-gradient(from 0deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 0deg 30deg,transparent 30deg 58deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 58deg 88deg,transparent 88deg 116deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 116deg 146deg,transparent 146deg 174deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 174deg 204deg,transparent 204deg 232deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 232deg 262deg,transparent 262deg 290deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 290deg 320deg,transparent 320deg 348deg,color-mix(in srgb,var(--accent-strong) 78%,transparent) 348deg 1turn);opacity:0;transform:scale(.35) rotate(-10deg);animation:todo-checkbox-sparkle .38s var(--ease-snappy) both}.todo-checkbox-celebrate:checked:after{animation:todo-checkbox-tick .32s var(--ease-snappy) both}.todo-content{min-width:0;cursor:pointer;border-radius:var(--radius-ui);padding:.15rem .3rem;margin:-.15rem -.3rem;transition:background .14s var(--ease-smooth)}.todo-content:hover{background:color-mix(in srgb,var(--panel-border) 30%,transparent)}.todo-title{margin:0;font-weight:600;display:flex;align-items:center;gap:.4rem}.todo-expand-indicator{font-size:.7rem;color:var(--muted);transition:transform .2s var(--ease-snappy);display:inline-block;flex-shrink:0}.todo-expand-indicator-open{transform:rotate(180deg)}.todo-item-completed .todo-title{text-decoration:line-through}.todo-meta{margin:.2rem 0 0;color:var(--muted);font-size:.85rem}.todo-meta-overdue{color:var(--error-text);font-weight:600}.todo-description{margin:.3rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.38}.todo-expanded-details{grid-column:1/-1;border-top:1px solid var(--panel-border);padding:.75rem .7rem .65rem;margin-top:.4rem;border-radius:var(--radius-ui);background:color-mix(in srgb,var(--panel-border) 14%,transparent);display:grid;gap:.5rem;animation:todo-expand-in .2s var(--ease-smooth) both}@keyframes todo-expand-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.todo-expanded-row{margin:0;font-size:.86rem;line-height:1.45;color:var(--text);display:flex;gap:.4rem;flex-wrap:wrap}.todo-expanded-label{font-weight:600;color:var(--muted);flex-shrink:0}.todo-expanded-link{color:var(--link-hover);text-decoration:underline;text-underline-offset:2px;transition:color .14s var(--ease-smooth)}.todo-expanded-link:hover{color:var(--text)}.todo-item-actions{display:inline-flex;gap:.45rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.todo-edit-form{grid-column:1/-1;border-top:2px dashed var(--panel-border);padding-top:.6rem;display:grid;gap:.5rem}.todo-edit-actions{display:inline-flex;gap:.5rem;flex-wrap:wrap}.todo-recurrence-days{display:flex;flex-wrap:wrap;gap:.4rem .75rem}.todo-recurrence-day-option{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;cursor:pointer}.todo-recurrence-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--accent,#3b82f6);background:color-mix(in srgb,var(--accent,#3b82f6) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent,#3b82f6) 30%,transparent);border-radius:999px;padding:.1rem .55rem;font-weight:500}.todo-muted{margin:0;color:var(--muted);line-height:1.48}.todo-loading-message{display:inline-flex;align-items:center;gap:.45rem}.todo-loading-dot{width:.75rem;height:.75rem;border-radius:999px;background:currentColor;opacity:.35;animation:loading-pulse .9s var(--ease-smooth) infinite}.completed-group{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);overflow:hidden}.completed-summary{display:block;width:100%;box-sizing:border-box;list-style:none;cursor:pointer;padding:.7rem .75rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;border-bottom:2px solid var(--panel-border);background:var(--panel-muted);background-clip:padding-box;border-radius:calc(var(--radius-ui) - 2px);position:relative;transition:background-color .18s var(--ease-smooth)}.completed-group[open] .completed-summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.completed-summary:after{content:"+";position:absolute;right:.75rem;top:50%;transform:translateY(-50%) rotate(0deg);transition:transform .2s var(--ease-snappy)}.completed-group[open] .completed-summary:after{transform:translateY(-50%) rotate(45deg)}.completed-summary:hover{background:var(--panel-hover)}.completed-summary::-webkit-details-marker{display:none}.completed-list{display:grid;gap:var(--space-sm);padding:.6rem;animation:fade-in .22s var(--ease-smooth) both}.email-settings{display:grid;gap:.6rem}.email-settings-row{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--control-text)}.email-settings-label{font-size:.86rem;color:var(--muted)}.email-settings-select{min-height:40px;border-radius:var(--radius-ui);border:2px solid var(--panel-border);background:var(--control-bg);color:var(--control-text);padding:0 .6rem;font-size:.92rem;width:100%;max-width:300px}.email-settings-select:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.email-settings-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);max-width:420px}.onboarding-flow{display:grid;gap:1rem}.onboarding-step-index{margin:0;text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;font-weight:800;color:var(--muted)}.onboarding-preferences{display:grid;gap:.9rem}.onboarding-wizard-header{display:grid;gap:.4rem}.onboarding-step-description{margin:0}.onboarding-step-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem}.onboarding-step-nav-button{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);min-height:64px;display:grid;gap:.2rem;justify-items:start;padding:.45rem .55rem;text-align:left;cursor:pointer;transition:transform .18s var(--ease-snappy),background-color .22s var(--ease-smooth),box-shadow .22s var(--ease-smooth)}.onboarding-step-nav-button:hover:not(:disabled){transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y));background:var(--panel-hover);box-shadow:var(--item-hover-shadow)}.onboarding-step-nav-button:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.onboarding-step-nav-button:disabled{opacity:.72;cursor:not-allowed}.onboarding-step-nav-button-active{background:var(--accent)}.onboarding-step-nav-button-complete{border-color:var(--status-border)}.onboarding-step-nav-count{font-size:.74rem;font-weight:800;line-height:1}.onboarding-step-nav-label{font-size:.73rem;color:var(--muted);line-height:1.25}.onboarding-progress-bar{border:2px solid var(--panel-border);border-radius:999px;height:14px;background:var(--panel-muted);overflow:hidden}.onboarding-progress-bar>div{height:100%;background:linear-gradient(90deg,var(--accent-strong),var(--accent));transition:width .22s var(--ease-smooth)}.onboarding-step-stage{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.8rem}.onboarding-step-stack{display:grid;gap:var(--space-md)}.onboarding-overview-cards{display:grid;gap:.6rem;grid-template-columns:repeat(3,minmax(0,1fr))}.onboarding-overview-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:.65rem;display:grid;gap:.35rem}.onboarding-overview-kicker{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.onboarding-bullet-list{margin:0;padding-left:1rem;display:grid;gap:.25rem;color:var(--muted);font-size:.9rem}.onboarding-table-wrap{overflow-x:auto}.onboarding-overview-table{border-collapse:collapse;width:100%;min-width:560px;background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);overflow:hidden}.onboarding-overview-table td,.onboarding-overview-table th{border-bottom:1px solid var(--panel-border);border-right:1px solid var(--panel-border);padding:.48rem .52rem;text-align:left;font-size:.86rem;vertical-align:top}.onboarding-overview-table tr:last-child td,.onboarding-overview-table tr:last-child th{border-bottom:none}.onboarding-overview-table td:last-child,.onboarding-overview-table th:last-child{border-right:none}.onboarding-overview-table thead th{background:var(--panel-muted)}.scope-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.scope-list-item{background:var(--panel-muted);border:1px solid var(--panel-border);border-radius:var(--radius-ui);padding:.65rem .85rem}.scope-list-title{display:block;font-size:.9rem;font-weight:700;margin-bottom:.25rem}.scope-list-reason{margin:0;font-size:.84rem;color:var(--muted);line-height:1.5}.onboarding-form-grid{max-width:460px}.onboarding-choice-group{display:grid;gap:.35rem}.onboarding-choice-row{display:flex;gap:var(--space-sm);flex-wrap:wrap}.onboarding-choice-option{position:relative}.onboarding-choice-button{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--control-bg);color:var(--control-text);min-height:42px;padding:.2rem .78rem;line-height:1.3;font:inherit;cursor:pointer;transition:transform .16s var(--ease-snappy),background-color .22s var(--ease-smooth),box-shadow .22s var(--ease-smooth)}.onboarding-choice-button:hover:not(:disabled){transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y));background:var(--panel-hover);box-shadow:var(--item-hover-shadow)}.onboarding-choice-button:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.onboarding-choice-button:disabled{opacity:.72;cursor:not-allowed}.onboarding-choice-button-locked{padding-right:2.1rem}.onboarding-choice-button-active{background:var(--gradient-accent-soft);border-color:var(--status-border);color:var(--status-text);box-shadow:var(--shadow-md-colored),inset 0 1px 0 color-mix(in srgb,#fff 15%,transparent)}.onboarding-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.onboarding-actions-split{justify-content:space-between;align-items:center}.onboarding-actions-row{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.onboarding-import-page{min-height:calc(100svh - 120px);display:flex;flex-direction:column}.onboarding-import-center{flex:1;justify-content:center;padding:2.5rem 1.25rem;min-height:420px}.onboarding-import-card,.onboarding-import-center{display:flex;flex-direction:column;align-items:center}.onboarding-import-card{width:100%;max-width:440px;background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-md);padding:2rem 2rem 1.75rem;gap:1.1rem;text-align:center}.onboarding-import-card-complete{border-color:var(--success-text);background:var(--success-bg)}.onboarding-import-brand{margin:0;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.onboarding-import-headline{margin:0;font-size:1.45rem;font-weight:800;line-height:1.2;color:var(--text)}.onboarding-import-subtitle{margin:0;font-size:.9rem;color:var(--muted);line-height:1.55}.onboarding-import-connect-btn{width:100%;display:flex;justify-content:center}.onboarding-import-perms{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem;width:100%;text-align:left}.onboarding-import-perms li{font-size:.82rem;color:var(--muted);padding-left:1.1rem;position:relative}.onboarding-import-perms li:before{content:"✓";position:absolute;left:0;color:var(--success-text);font-weight:700}.onboarding-import-skip-link{background:none;border:none;padding:0;font-size:.8rem;color:var(--muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .16s}.onboarding-import-skip-link:hover:not(:disabled){color:var(--text)}.onboarding-import-skip-link:disabled{opacity:.5;cursor:not-allowed}@keyframes onboarding-spin{to{transform:rotate(1turn)}}.onboarding-import-spinner{width:44px;height:44px;border:3px solid var(--panel-border);border-top-color:var(--accent-strong);border-radius:50%;animation:onboarding-spin .75s linear infinite;flex-shrink:0}@keyframes onboarding-feed-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.onboarding-import-feed{width:100%;max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem;text-align:left;scrollbar-width:thin}.onboarding-import-feed-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;color:var(--muted);line-height:1.4;animation:onboarding-feed-in .22s var(--ease-snappy) both}.onboarding-import-feed-dot{width:6px;height:6px;border-radius:50%;background:var(--success-text);flex-shrink:0;margin-top:.38em}.onboarding-import-progress-wrap{width:100%;display:flex;align-items:center;gap:.6rem}.onboarding-import-progress-bar{flex:1;height:6px;background:var(--panel-muted);border-radius:3px;border:1px solid var(--panel-border);overflow:hidden}.onboarding-import-progress-fill{height:100%;background:var(--success-text);border-radius:3px;transition:width .4s var(--ease-smooth)}.onboarding-import-progress-pct{font-size:.75rem;font-weight:700;color:var(--muted);min-width:2.5rem;text-align:right}@keyframes onboarding-check-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.onboarding-import-check{width:56px;height:56px;border-radius:50%;background:var(--success-text);color:var(--primary-foreground);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;animation:onboarding-check-in .4s var(--ease-snappy) both;flex-shrink:0}.onboarding-import-stats{display:flex;gap:1.25rem;justify-content:center;width:100%}.onboarding-import-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.onboarding-import-stat-number{font-size:1.75rem;font-weight:800;line-height:1;color:var(--success-text)}.onboarding-import-stat-label{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.onboarding-import-error-icon{width:52px;height:52px;border-radius:50%;background:var(--error-bg);border:2px solid var(--error-text);color:var(--error-text);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:800;flex-shrink:0}.onboarding-import-error-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}@media (max-width:480px){.onboarding-import-card{padding:1.5rem 1.25rem 1.25rem}.onboarding-import-headline{font-size:1.25rem}.onboarding-import-stat-number{font-size:1.4rem}}.delete-account-block{display:grid;gap:.62rem}.delete-account-subscription-warning{font-size:.84rem;color:var(--danger,#c0392b);background:color-mix(in srgb,var(--danger,#c0392b) 8%,transparent);border:1px solid color-mix(in srgb,var(--danger,#c0392b) 30%,transparent);border-radius:var(--radius-ui);padding:.6rem .75rem;line-height:1.5}.delete-account-form{display:grid;gap:var(--space-sm);max-width:320px}.delete-account-label{font-size:.84rem;color:var(--muted)}.delete-account-input{min-height:40px;border-radius:var(--radius-ui);border:2px solid var(--panel-border);background:var(--control-bg);color:var(--control-text);padding:0 .6rem;font-size:.92rem;width:100%;text-transform:uppercase}.delete-account-input:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.support-form{display:grid;gap:var(--space-sm)}.support-form-label{font-size:.84rem;color:var(--muted)}.support-form-input,.support-form-select,.support-form-textarea{width:100%;border-radius:var(--radius-ui);border:2px solid var(--panel-border);background:var(--control-bg);color:var(--control-text);font-size:.92rem}.support-form-input,.support-form-select{min-height:40px;padding:0 .6rem}.support-form-textarea{padding:.65rem;resize:vertical;min-height:132px}.support-form-input:focus-visible,.support-form-select:focus-visible,.support-form-textarea:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.support-form-checkbox{align-items:center;color:var(--text);display:inline-flex;gap:.44rem}.theme-controls{display:grid;gap:1.05rem}.theme-group{display:grid;gap:.58rem}.theme-group-label{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:var(--muted)}.theme-mode-row{display:flex;gap:.58rem;flex-wrap:wrap}.theme-palette-grid{display:grid;gap:.72rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.theme-palette-button{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);min-height:108px;padding:.72rem .78rem;text-align:left;cursor:pointer;display:grid;gap:.26rem;transition:transform .16s var(--ease-snappy),background-color .22s var(--ease-smooth),box-shadow .22s var(--ease-smooth)}.theme-palette-button:hover:not(:disabled){transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y));background:var(--panel-hover);box-shadow:var(--shadow-sm)}.theme-palette-button:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.theme-palette-button-active{border-color:var(--status-border);background:var(--gradient-accent-vibrant);box-shadow:var(--shadow-md-colored),0 0 0 3px color-mix(in srgb,var(--accent-strong) 25%,transparent)}.theme-palette-name{font-size:.94rem;font-weight:800}.theme-palette-copy{font-size:.82rem;line-height:1.38;color:var(--muted)}.theme-palette-swatches{display:inline-flex;gap:.34rem;margin-top:.3rem}.theme-palette-swatch{width:12px;height:12px;border-radius:999px;border:1px solid rgba(0,0,0,.24)}:root[data-theme=dark] .theme-palette-swatch{border-color:hsla(0,0%,100%,.34)}.custom-palette-shell{margin-top:.4rem;border:2px dashed var(--panel-border);border-radius:var(--radius-ui);padding:var(--space-md);display:grid;gap:var(--space-md);background:var(--panel-muted)}.custom-palette-toggle{width:100%;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);min-height:40px;padding:.5rem .6rem;font-size:.85rem;font-weight:700;cursor:pointer}.custom-palette-head,.custom-palette-toggle{display:flex;justify-content:space-between;align-items:center}.custom-palette-head{gap:.6rem}.custom-palette-list{display:flex;flex-wrap:wrap;gap:.48rem}.custom-palette-chip{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);cursor:pointer;min-height:40px;padding:.4rem .55rem;display:grid;gap:.3rem}.custom-palette-chip-active{background:var(--accent)}.custom-palette-chip-name{font-size:.8rem;font-weight:700}.custom-palette-chip-swatches{display:inline-flex;gap:.3rem}.custom-palette-chip-swatches>span{width:12px;height:12px;border-radius:999px;border:1px solid rgba(0,0,0,.28)}.custom-palette-form{display:grid;gap:.52rem}.custom-palette-color-grid{display:grid;gap:.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}.custom-palette-color-field{display:grid;gap:.28rem;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--muted)}.custom-palette-color-field input[type=color]{width:100%;min-height:38px;border-radius:var(--radius-ui);border:2px solid var(--panel-border);background:var(--control-bg);padding:.16rem;cursor:pointer}.custom-palette-actions{display:flex;flex-wrap:wrap;gap:.45rem}.layout-theme-grid{display:grid;gap:.72rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.layout-theme-button{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);min-height:112px;padding:.72rem .78rem;text-align:left;cursor:pointer;display:grid;gap:.26rem;transition:transform .16s var(--ease-snappy),background-color .22s var(--ease-smooth),box-shadow .22s var(--ease-smooth);position:relative}.layout-theme-button:hover:not(:disabled){transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y));background:var(--panel-hover);box-shadow:var(--shadow-sm)}.layout-theme-button:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.layout-theme-button-active{background:var(--accent)}.layout-theme-button-locked{padding-right:2.1rem}.layout-theme-name{font-size:.95rem;font-weight:800}.layout-theme-copy{font-size:.82rem;line-height:1.38;color:var(--muted)}.layout-theme-preview{display:inline-flex;gap:.38rem;margin-top:.34rem}.layout-theme-preview-chip{width:16px;height:12px;border:1px solid var(--panel-border);background:var(--control-bg)}.layout-theme-preview-chip-classic{border-radius:2px}.layout-theme-preview-chip-bubbly{border-radius:999px}.layout-theme-preview-chip-sleek{border-radius:8px}.layout-theme-preview-chip-mosaic{border-radius:3px 10px 3px 10px}.layout-theme-preview-chip-studio{border-radius:6px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-strong) 42%,transparent)}.custom-layout-shell{margin-top:.4rem;border:2px dashed var(--panel-border);border-radius:var(--radius-ui);padding:var(--space-md);display:grid;gap:var(--space-md);background:var(--panel-muted)}.custom-layout-toggle{width:100%;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);min-height:40px;padding:.5rem .6rem;display:flex;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:700;cursor:pointer}.custom-layout-toggle-active{font-weight:400;color:var(--muted)}.custom-layout-list{display:flex;flex-wrap:wrap;gap:.48rem}.custom-layout-chip{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:var(--text);cursor:pointer;min-height:40px;padding:.4rem .55rem;display:grid;gap:.28rem;text-align:left}.custom-layout-chip-active{background:var(--accent)}.custom-layout-chip-name{font-size:.8rem;font-weight:700}.custom-layout-chip-preview{display:inline-flex;gap:.3rem;align-items:center}.custom-layout-chip-frame{display:block;width:28px;height:18px;background:var(--accent-strong);border:1.5px solid color-mix(in srgb,var(--accent-strong) 60%,transparent)}.custom-layout-chip-logo{display:block;width:14px;height:14px;background:var(--status-bg);border:1.5px solid var(--status-border)}.custom-layout-chip-values{font-size:.72rem;color:var(--muted);letter-spacing:.02em}.custom-layout-form,.custom-layout-slider-group{display:grid;gap:.52rem}.custom-layout-slider-field{display:grid;gap:.28rem}.custom-layout-slider-label{display:flex;justify-content:space-between;align-items:center;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--muted)}.custom-layout-slider-value{font-weight:600;text-transform:none;letter-spacing:0;color:var(--text)}.custom-layout-slider{width:100%;-webkit-appearance:none;appearance:none;height:4px;border-radius:999px;background:var(--accent-strong);outline:none;cursor:pointer}.custom-layout-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary);border:2px solid var(--accent-strong);cursor:pointer;transition:background var(--transition-fast)}.custom-layout-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary);border:2px solid var(--accent-strong);cursor:pointer}.custom-layout-slider:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.custom-layout-slider:disabled{opacity:.5;cursor:default}.custom-layout-option-group{display:flex;flex-direction:column;gap:.4rem}.custom-layout-option-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.custom-layout-option-row{display:flex;flex-wrap:wrap;gap:.35rem}.custom-layout-option-chip{padding:.3rem .65rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-ui,4px);border:1.5px solid var(--panel-border);background:var(--panel);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.custom-layout-option-chip:hover{background:var(--accent)}.custom-layout-option-chip-active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.pro-lock-wrapper{position:relative}.pro-lock-wrapper-disabled{opacity:.96}.pro-lock-overlay{position:absolute;top:.48rem;right:.48rem;width:1.45rem;height:1.45rem;border:2px solid var(--panel-border);border-radius:999px;background:var(--panel);display:grid;place-items:center;pointer-events:none}.pro-lock-icon{width:.82rem;height:.82rem}.btn-base{border:none;border-radius:var(--radius-ui);font-weight:700;font-size:.97rem;line-height:1.2;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:transform .16s var(--ease-snappy),box-shadow .22s var(--ease-smooth),background .22s var(--ease-smooth),color .22s var(--ease-smooth);position:relative;overflow:hidden}.btn-base:disabled{opacity:.58;cursor:not-allowed}.btn-base:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.btn-size-default{min-height:44px;padding:.68rem 1.1rem}.btn-size-sm{min-height:38px;padding:.52rem .9rem}.btn-size-lg{min-height:50px;padding:.86rem 1.3rem}.btn-size-icon{width:44px;height:44px}.btn-base:after{content:"";position:absolute;top:-120%;left:-180%;width:62%;height:340%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.35),transparent);border-radius:inherit;transform:rotate(22deg) translateX(-320%);transition:transform .42s var(--ease-smooth);pointer-events:none}.btn-variant-default{background:linear-gradient(135deg,var(--primary) 0,color-mix(in srgb,var(--primary) 92%,var(--accent-strong) 8%) 100%);color:var(--primary-foreground);box-shadow:var(--button-shadow),var(--border-glow-accent);border:2px solid color-mix(in srgb,var(--primary) 85%,var(--accent) 15%)}.btn-variant-default:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-hover) 0,color-mix(in srgb,var(--primary-hover) 90%,var(--accent-strong) 10%) 100%);transform:translate(var(--button-hover-shift-x),var(--button-hover-shift-y));box-shadow:var(--button-shadow),var(--border-glow-strong)}.btn-variant-outline{background:var(--control-bg);color:var(--control-text);border:2px solid var(--panel-border);position:relative}.btn-variant-outline:before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--gradient-accent-soft);opacity:0;transition:opacity .24s var(--ease-smooth);z-index:-1}.btn-variant-outline:hover:not(:disabled){background:transparent;border-color:var(--accent-border);color:var(--accent-text)}.btn-variant-outline:hover:not(:disabled):before{opacity:.18}.btn-variant-ghost{background:transparent;color:var(--muted)}.btn-variant-ghost:hover:not(:disabled){background:var(--gradient-accent-vibrant);color:var(--status-text);box-shadow:inset 0 0 0 1px var(--accent-border)}.btn-variant-danger{background:var(--danger-button-bg);color:var(--danger-button-text);box-shadow:var(--button-shadow)}.btn-variant-danger:hover:not(:disabled){background:var(--danger-button-hover);transform:translate(var(--button-hover-shift-x),var(--button-hover-shift-y))}.btn-base:hover:not(:disabled):after{transform:rotate(22deg) translateX(320%)}.btn-base:active:not(:disabled){transform:translate(0) scale(.98)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;background:var(--bottom-nav-bg);border-top:2px solid var(--bottom-nav-border);backdrop-filter:blur(14px);box-shadow:0 -8px 24px rgba(0,0,0,.08);animation:slide-up .28s var(--ease-smooth) both}:root[data-device=mobile] .bottom-nav{padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-link{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:.88rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;border-right:2px solid var(--bottom-nav-border);background:transparent;transition:background-color var(--transition-base) var(--ease-smooth),color var(--transition-base) var(--ease-smooth),transform .18s var(--ease-snappy);position:relative;overflow:hidden}:root[data-device=mobile] .bottom-nav-link{min-height:62px;padding:.2rem .15rem;font-size:.78rem}.bottom-nav-link-label{line-height:1}:root[data-device=mobile] .bottom-nav-link-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav-reminder-badge{min-width:18px;height:18px;padding:0 .32rem;border:2px solid var(--bottom-nav-border);border-radius:999px;background:var(--error-bg);color:var(--error-text);display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:800;line-height:1}:root[data-device=mobile] .bottom-nav-reminder-badge{position:absolute;top:.32rem;right:.32rem}.bottom-nav-link:last-child{border-right:none}.bottom-nav-link:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-accent-soft);transform:scaleX(0);transform-origin:center;transition:transform .28s var(--ease-smooth)}.bottom-nav-link-active:before,.bottom-nav-link[aria-current=page]:before{transform:scaleX(1)}.bottom-nav-link-active,.bottom-nav-link[aria-current=page]{background:var(--gradient-accent-vibrant);color:var(--status-text);font-weight:800}.bottom-nav-link:hover:not([aria-current=page]):not(.bottom-nav-link-active){background:var(--accent-subtle);color:var(--accent-text)}.bottom-nav-link:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--bottom-nav-indicator);transform:scaleX(0);transform-origin:center;transition:transform .22s var(--ease-snappy)}.bottom-nav-link-active:after{transform:scaleX(1)}:root[data-device=mobile] .home-shell{padding-bottom:calc(7rem + env(safe-area-inset-bottom) + .8rem)}.assistant-shell{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:.8rem;grid-template-columns:minmax(220px,280px) minmax(0,1fr)}.assistant-shell,.grades-grid{display:grid;gap:var(--space-md)}.grades-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grades-header-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.grades-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:.75rem;display:grid;gap:.35rem;box-shadow:var(--shadow-sm)}.grades-course-name{margin:0;font-weight:800;font-size:.95rem}.grades-main-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md)}.grades-percent{margin:0;font-size:1.2rem;font-weight:900}.grades-letter{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:32px;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--accent);font-weight:900}.grades-meta{margin:0;color:var(--muted);font-size:.86rem}.grades-weight-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700}.grades-weight-panel{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.5rem;display:grid;gap:.45rem}.grades-weight-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center}.grades-weight-input{width:5.5rem;background:var(--panel);color:inherit;font:inherit;padding:.32rem .45rem}.grades-breakdown,.grades-weight-input{border:2px solid var(--panel-border);border-radius:var(--radius-ui)}.grades-breakdown{background:var(--panel-muted);overflow:hidden}.grades-panel{display:grid;gap:0}.grades-panel-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.grades-panel-summary::-webkit-details-marker{display:none}.grades-panel-summary .panel-title{margin:0}.grades-panel-summary:after{content:"";width:.56rem;height:.56rem;border-right:2px solid;border-bottom:2px solid;transform:rotate(45deg);transition:transform .17s var(--ease-smooth);flex:0 0 auto}.grades-panel[open] .grades-panel-summary:after{transform:rotate(225deg)}.grades-panel-content{margin-top:.75rem;display:grid;gap:.75rem}.grades-breakdown-summary{list-style:none;cursor:pointer;padding:.55rem .62rem;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid transparent;background:var(--panel-muted);position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;transition:border-color .17s var(--ease-smooth),background-color .17s var(--ease-smooth)}.grades-breakdown-summary::-webkit-details-marker{display:none}.grades-breakdown-summary:after{content:"";width:.52rem;height:.52rem;border-right:2px solid;border-bottom:2px solid;transform:rotate(45deg);transition:transform .17s var(--ease-smooth)}.grades-breakdown[open] .grades-breakdown-summary{border-bottom-color:var(--panel-border)}.grades-breakdown[open] .grades-breakdown-summary:after{transform:rotate(225deg)}.grades-breakdown-body{display:none;gap:.5rem;padding:.55rem;border-top:2px solid var(--panel-border)}.grades-breakdown-section-title{margin:0 0 .35rem;font-size:.76rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.grades-breakdown[open] .grades-breakdown-body{display:grid}.grades-assignment-list,.grades-category-list{display:grid;gap:.45rem;list-style:none;margin:0;padding:0}.grades-assignment-row,.grades-category-row{border:2px solid var(--panel-border);background:var(--panel);border-radius:var(--radius-ui);padding:.5rem .55rem;display:grid;gap:.18rem}.grades-assignment-title,.grades-category-title{margin:0;font-weight:700}.grades-assignment-meta,.grades-category-meta{margin:0;color:var(--muted);font-size:.82rem}.grades-analytics-layout{display:grid;gap:.72rem}.grades-analytics-kpi-grid{display:grid;gap:.6rem;grid-template-columns:repeat(3,minmax(0,1fr))}.grades-analytics-kpi-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.62rem .66rem;display:grid;gap:.24rem}.grades-analytics-kpi-label{margin:0;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}.grades-analytics-kpi-value{margin:0;font-size:1.08rem;font-weight:900}.grades-analytics-kpi-meta{margin:0;font-size:.79rem;color:var(--muted)}.grades-analytics-grid{display:grid;gap:.62rem;grid-template-columns:repeat(2,minmax(0,1fr))}.grades-analytics-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.62rem;display:grid;gap:.52rem}.grades-analytics-title{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}.grades-analytics-category-list,.grades-analytics-course-chart{display:grid;gap:.46rem}.grades-analytics-category-row,.grades-analytics-course-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,1.25fr) auto;align-items:center;gap:.5rem}.grades-analytics-category-label,.grades-analytics-course-label{margin:0;font-size:.84rem;font-weight:700}.grades-analytics-bar-track{height:12px;border:2px solid var(--panel-border);border-radius:999px;background:var(--panel);overflow:hidden}.grades-analytics-bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--accent-strong),var(--accent));border-right:2px solid var(--panel-border)}.grades-analytics-bar-fill-pending{background:linear-gradient(90deg,#f97316,#fb7185)}.grades-analytics-course-value{margin:0;font-size:.82rem;color:var(--muted);font-weight:700;text-align:right}.grades-analytics-distribution{display:grid;gap:.52rem;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end}.grades-analytics-distribution-column{display:grid;gap:.28rem;justify-items:center}.grades-analytics-distribution-track{width:100%;min-height:96px;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);display:flex;align-items:flex-end;justify-content:center;padding:.25rem}.grades-analytics-distribution-bar{width:100%;border:2px solid var(--panel-border);border-radius:calc(var(--radius-ui) - 1px);background:linear-gradient(180deg,var(--accent-strong),var(--accent))}.grades-analytics-distribution-label{margin:0;font-size:.75rem;font-weight:800}.grades-analytics-distribution-value{margin:0;font-size:.78rem;color:var(--muted)}.grades-analytics-category-meta{margin:0;font-size:.76rem;color:var(--muted)}.grades-analytics-card-wide{grid-column:1/-1}.grades-analytics-stacked-list{display:grid;gap:.5rem}.grades-analytics-stacked-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,1.2fr) auto;align-items:center;gap:.48rem}.grades-analytics-stacked-label{margin:0;font-size:.83rem;font-weight:700}.grades-analytics-stacked-track{height:12px;border:2px solid var(--panel-border);border-radius:999px;background:var(--panel);display:flex;overflow:hidden}.grades-analytics-stacked-fill{display:block;height:100%}.grades-analytics-stacked-fill-graded{background:linear-gradient(90deg,var(--accent-strong),var(--accent))}.grades-analytics-stacked-fill-pending{background:linear-gradient(90deg,#f97316,#fb7185)}.grades-analytics-stacked-meta{margin:0;font-size:.76rem;color:var(--muted);text-align:right}.grades-analytics-insight-list{margin:0;padding:0;list-style:none;display:grid;gap:.42rem}.grades-analytics-insight-item{margin:0;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:.45rem .5rem;font-size:.83rem;color:var(--muted);line-height:1.35}.grades-analytics-heatmap{display:grid;gap:.5rem}.grades-analytics-heatmap-row{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:.5rem;display:grid;gap:.5rem;grid-template-columns:minmax(150px,1fr) minmax(0,2fr);align-items:center}.grades-analytics-heatmap-course{margin:0;font-size:.85rem;font-weight:700}.grades-analytics-heatmap-values{display:grid;gap:.42rem;grid-template-columns:repeat(3,minmax(0,1fr))}.grades-analytics-heatmap-cell{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.35rem .42rem;display:grid;gap:.2rem}.grades-analytics-heatmap-cell-label{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800}.grades-analytics-heatmap-cell-score{margin:0;font-size:.8rem;font-weight:800}.grades-projections-layout{display:grid;gap:.72rem}.grades-projections-forecast-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.62rem;display:grid;gap:.52rem;margin-bottom:.72rem}.grades-forecast-shell{display:grid;gap:.62rem}.grades-forecast-controls{display:grid;gap:.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}.grades-forecast-params{display:grid;gap:.5rem}.grades-forecast-control{display:grid;gap:.3rem}.grades-forecast-label{margin:0;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}.grades-forecast-number,.grades-forecast-select{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);color:inherit;font:inherit;padding:.4rem .5rem}.grades-forecast-input-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:.5rem;align-items:center}.grades-forecast-range{width:100%}.grades-forecast-chart-wrap{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel);padding:.4rem .35rem}.grades-forecast-summary-grid{display:grid;gap:.32rem}.grades-forecast-summary{margin:0;font-size:.82rem;font-weight:700}.grades-forecast-summary-muted{color:var(--muted);font-weight:600}.grades-projections-momentum{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.62rem .66rem;display:grid;gap:.24rem}.grades-projections-momentum-label{margin:0;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}.grades-projections-momentum-value{margin:0;font-size:1.08rem;font-weight:900}.grades-projections-momentum-meta{margin:0;font-size:.79rem;color:var(--muted)}.grades-projections-overall-grid{display:grid;gap:.6rem;grid-template-columns:repeat(3,minmax(0,1fr))}.grades-projections-overall-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.62rem .66rem;display:grid;gap:.24rem;text-align:center}.grades-projections-scenario-label{margin:0;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}.grades-projections-overall-value{margin:0;font-size:1.08rem;font-weight:900}.grades-projections-overall-letter{margin:0;font-size:.82rem;color:var(--muted);font-weight:700}.grades-projections-course-grid{display:grid;gap:.62rem;grid-template-columns:repeat(2,minmax(0,1fr))}.grades-projections-course-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.62rem;display:grid;gap:.52rem}.grades-projections-course-header{display:grid;gap:.2rem}.grades-projections-course-name{margin:0;font-size:.84rem;font-weight:700}.grades-projections-course-current{margin:0;font-size:.79rem;color:var(--muted);font-weight:700}.grades-projections-course-pending{margin:0;font-size:.76rem;color:var(--muted)}.grades-projections-scenario-list{display:grid;gap:.46rem}.grades-projections-scenario-row{display:grid;grid-template-columns:minmax(80px,auto) minmax(80px,1fr) auto auto;align-items:center;gap:.5rem}.grades-projections-scenario-name{margin:0;font-size:.78rem;font-weight:700}.grades-projections-bar-track{height:12px;border:2px solid var(--panel-border);border-radius:999px;background:var(--panel);overflow:hidden}.grades-projections-bar-fill{display:block;height:100%;border-radius:999px;transition:width .3s ease}.grades-projections-scenario-value{margin:0;font-size:.82rem;color:var(--muted);font-weight:700;text-align:right;min-width:46px}.grades-projections-scenario-delta{margin:0;font-size:.72rem;color:var(--muted);min-width:60px;text-align:right}.assistant-chat-main{min-width:0;display:grid;gap:var(--space-md)}.assistant-chatlist{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-muted);padding:.52rem;display:grid;gap:.45rem;align-content:start}.assistant-chatlist-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.assistant-chatlist-title{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}.assistant-chatlist-items{display:grid;gap:.4rem;max-height:52vh;overflow:auto;padding-right:.2rem}.assistant-chatlist-item-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem;align-items:start;position:relative}.assistant-chatlist-item-row-locked{isolation:isolate}.assistant-chatlist-row-actions{display:inline-flex;gap:.3rem}.assistant-action-icon-button{padding:0}.assistant-action-icon{width:18px;height:18px}.assistant-chatlist-item{width:100%;border:2px solid var(--panel-border);background:var(--panel);border-radius:var(--radius-ui);padding:.48rem .5rem;text-align:left;cursor:pointer;display:grid;gap:.2rem;transition:transform .14s var(--ease-snappy),background-color .18s var(--ease-smooth)}.assistant-chatlist-item:hover:not(:disabled){transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y));background:var(--panel-hover)}.assistant-chatlist-item:disabled{opacity:.65;cursor:not-allowed}.assistant-chatlist-item-active{background:var(--accent)}.assistant-tab-lock-overlay{position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:var(--radius-ui);background:color-mix(in srgb,var(--panel) 72%,transparent);border:1px dashed color-mix(in srgb,var(--panel-border) 55%,transparent);display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}.assistant-chatlist-item-title{font-size:.9rem;font-weight:700;line-height:1.25}.assistant-chatlist-item-time{font-size:.76rem;color:var(--muted)}.assistant-timeline{min-height:340px;max-height:54vh;overflow:auto;background:linear-gradient(180deg,var(--panel) 0,var(--panel-muted) 100%);padding:.65rem;display:grid;gap:var(--space-sm);scroll-behavior:smooth}.assistant-bubble,.assistant-timeline{border:2px solid var(--panel-border);border-radius:var(--radius-ui)}.assistant-bubble{padding:.6rem .68rem;max-width:min(100%,75ch);font-size:clamp(.94rem,.89rem + .24vw,1.08rem);animation:notice-in .18s var(--ease-smooth) both}.assistant-bubble-assistant{background:var(--assistant-bubble-assistant);justify-self:start}.assistant-bubble-user{background:linear-gradient(125deg,var(--assistant-bubble-user) 0,color-mix(in srgb,var(--assistant-bubble-user) 90%,var(--accent-strong) 10%) 100%);justify-self:end;border-color:var(--accent-border);box-shadow:0 2px 8px color-mix(in srgb,var(--accent-strong) 15%,transparent)}.assistant-bubble-label{margin:0;font-size:clamp(.73rem,.69rem + .16vw,.84rem);text-transform:uppercase;letter-spacing:.07em;opacity:.74}.assistant-bubble-content{margin:.35rem 0 0;line-height:1.42}.assistant-markdown>:first-child{margin-top:0}.assistant-markdown>:last-child{margin-bottom:0}.assistant-markdown p{margin:.2rem 0 .7rem}.assistant-markdown ol,.assistant-markdown ul{margin:.2rem 0 .7rem;padding-left:1.2rem}.assistant-markdown h2,.assistant-markdown h3,.assistant-markdown h4{margin:.3rem 0 .55rem;line-height:1.3}.assistant-markdown h2{font-size:1.05em}.assistant-markdown h3{font-size:1em}.assistant-markdown h4{font-size:.96em}.assistant-inline-code{font-family:Cascadia Code,Consolas,monospace;font-size:.92em;background:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.18);border-radius:var(--radius-ui);padding:.04rem .3rem}.assistant-event-card{border:2px solid var(--event-border);background:linear-gradient(130deg,var(--event-bg) 0,color-mix(in srgb,var(--event-bg) 85%,var(--accent) 15%) 100%);border-radius:var(--radius-ui);padding:var(--space-md);animation:notice-in .22s var(--ease-smooth) both;box-shadow:0 2px 8px color-mix(in srgb,var(--event-border) 20%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 10%,transparent)}.assistant-event-title{margin:0;color:var(--event-title);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:.77rem}.assistant-event-details{margin:.3rem 0 0;color:var(--event-details);font-size:.9rem}.assistant-quiz-card{border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--panel-bg);padding:.68rem;display:grid;gap:.5rem}.assistant-quiz-title{margin:0;font-size:1rem;font-weight:800}.assistant-quiz-meta{margin:0;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.assistant-quiz-progress{margin:0;font-size:.82rem;color:var(--muted)}.assistant-quiz-questions{display:grid;gap:var(--space-md)}.assistant-quiz-question-block{border:1px solid var(--panel-border);border-radius:var(--radius-ui);padding:.5rem;display:grid;gap:.5rem}.assistant-quiz-question{margin:0;font-size:.92rem;font-weight:700}.assistant-quiz-options{display:flex;flex-wrap:wrap;gap:.45rem}.assistant-quiz-option{max-width:100%}.assistant-quiz-submit{justify-self:start}.assistant-quiz-feedback{margin:0;font-size:.86rem;color:var(--event-details)}.assistant-quiz-complete{display:grid;gap:var(--space-sm)}.assistant-quiz-grade{margin:0;font-size:.92rem;font-weight:700}.assistant-quiz-review-list{display:grid;gap:.5rem}.assistant-quiz-review-item{padding:.45rem;gap:.32rem}.assistant-quiz-feedback-block,.assistant-quiz-review-item{border:1px solid var(--panel-border);border-radius:var(--radius-ui);display:grid}.assistant-quiz-feedback-block{padding:.6rem .5rem;gap:.5rem}.assistant-quiz-feedback-result{margin:0;font-size:.95rem;font-weight:800}.assistant-quiz-feedback-correct{color:var(--success-text)}.assistant-quiz-feedback-incorrect{color:var(--error-text)}.assistant-form{display:grid;gap:.5rem}.assistant-input-label{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.assistant-input{width:100%;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:var(--control-bg);color:var(--control-text);min-height:90px;padding:.58rem .62rem;font:inherit;resize:vertical}.assistant-input:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.assistant-form-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.assistant-hint{margin:0;color:var(--muted);font-size:.82rem}.typing-dots{display:inline-flex;gap:.22rem;vertical-align:middle;margin-left:.35rem}.typing-dots span{width:6px;height:6px;border-radius:999px;background:var(--muted);opacity:.3;animation:typing-bounce .98s var(--ease-smooth) infinite}.typing-dots span:nth-child(2){animation-delay:.12s}.typing-dots span:nth-child(3){animation-delay:.24s}.app-loading{min-height:100vh;display:grid;place-items:center;padding:1.2rem}.app-loading-card{border:2px solid var(--panel-border);background:var(--panel);border-radius:var(--radius-ui);min-width:min(92vw,340px);padding:1rem;box-shadow:var(--shadow-md);display:grid;gap:.8rem}.app-loading-title{margin:0;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;font-weight:800}.app-loading-bar{height:10px;border:2px solid var(--panel-border);background:var(--panel-muted);overflow:hidden}.app-loading-bar:after{content:"";display:block;height:100%;width:35%;background:var(--accent-strong);animation:loading-slide .9s var(--ease-smooth) infinite}:root[data-layout-theme=bubbly] .app-topbar{width:min(1040px,calc(100% - 1.5rem));margin:.5rem auto 0;border:2px solid var(--topbar-border);border-radius:999px;padding-inline:1rem;position:sticky}:root[data-layout-theme=bubbly] .app-topbar-status{position:static;transform:none}:root[data-layout-theme=bubbly] .app-topbar-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}:root[data-layout-theme=bubbly] .auth-shell,:root[data-layout-theme=bubbly] .home-shell,:root[data-layout-theme=bubbly] .landing-shell{max-width:1140px;padding-top:1.5rem}:root[data-layout-theme=bubbly] .hero-headline-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}:root[data-layout-theme=bubbly] .landing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.05rem}:root[data-layout-theme=bubbly] .landing-grid .panel:first-child{grid-column:1/-1}:root[data-layout-theme=bubbly] .panel-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.05rem}:root[data-layout-theme=bubbly] .panel-grid>.panel{grid-column:span 6}:root[data-layout-theme=bubbly] .panel-grid>.panel:first-child:not(.panel-full){grid-column:span 7}:root[data-layout-theme=bubbly] .panel-grid>.panel:nth-child(2):not(.panel-full),:root[data-layout-theme=bubbly] .panel-grid>.panel:nth-child(3):not(.panel-full){grid-column:span 5}:root[data-layout-theme=bubbly] .panel-grid>.panel:nth-child(4):not(.panel-full){grid-column:span 7}:root[data-layout-theme=bubbly] .panel-grid>.panel.panel-full{grid-column:1/-1}:root[data-layout-theme=bubbly] .assistant-shell{grid-template-columns:1fr}:root[data-layout-theme=bubbly] .assistant-chatlist-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:unset}:root[data-layout-theme=bubbly] .bottom-nav{left:50%;right:auto;width:min(940px,calc(100% - 1.5rem));transform:translateX(-50%);border:2px solid var(--bottom-nav-border);border-radius:999px;overflow:hidden;bottom:.58rem}:root[data-layout-theme=bubbly] .bottom-nav-link:after{top:auto;bottom:0}:root[data-layout-theme=sleek] .auth-shell,:root[data-layout-theme=sleek] .home-shell,:root[data-layout-theme=sleek] .landing-shell{max-width:1320px}:root[data-layout-theme=sleek] .hero-headline-row{align-items:center}:root[data-layout-theme=sleek] .landing-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}:root[data-layout-theme=sleek] .landing-grid .panel:first-child{grid-column:span 2}:root[data-layout-theme=sleek] .landing-grid .panel:nth-child(2),:root[data-layout-theme=sleek] .landing-grid .panel:nth-child(3){grid-column:span 1}:root[data-layout-theme=sleek] .panel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}:root[data-layout-theme=sleek] .panel-grid>.panel:first-child:not(.panel-full){grid-column:span 2}:root[data-layout-theme=sleek] .panel-grid>.panel:nth-child(2):not(.panel-full),:root[data-layout-theme=sleek] .panel-grid>.panel:nth-child(3):not(.panel-full){grid-column:span 1}:root[data-layout-theme=sleek] .panel-grid>.panel:nth-child(4):not(.panel-full){grid-column:span 2}:root[data-layout-theme=sleek] .panel-grid>.panel.panel-full{grid-column:1/-1}:root[data-layout-theme=sleek] .grades-grid{grid-template-columns:repeat(3,minmax(0,1fr))}:root[data-layout-theme=mosaic] .app-topbar{width:min(1140px,calc(100% - 1.8rem));margin:.52rem auto 0;border:2px solid var(--topbar-border);border-radius:16px;padding-inline:1rem}:root[data-layout-theme=mosaic] .auth-shell,:root[data-layout-theme=mosaic] .home-shell,:root[data-layout-theme=mosaic] .landing-shell{max-width:1260px;padding-top:1.55rem}:root[data-layout-theme=mosaic] .hero-headline-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.15rem}:root[data-layout-theme=mosaic] .landing-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:1.05rem}:root[data-layout-theme=mosaic] .landing-grid .panel:first-child{grid-column:span 4}:root[data-layout-theme=mosaic] .landing-grid .panel:nth-child(2){grid-column:span 2}:root[data-layout-theme=mosaic] .landing-grid .panel:nth-child(3){grid-column:span 6}:root[data-layout-theme=mosaic] .panel-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.05rem}:root[data-layout-theme=mosaic] .panel-grid>.panel{grid-column:span 6}:root[data-layout-theme=mosaic] .panel-grid>.panel:first-child:not(.panel-full){grid-column:span 8}:root[data-layout-theme=mosaic] .panel-grid>.panel:nth-child(2):not(.panel-full),:root[data-layout-theme=mosaic] .panel-grid>.panel:nth-child(3):not(.panel-full){grid-column:span 4}:root[data-layout-theme=mosaic] .panel-grid>.panel:nth-child(4):not(.panel-full){grid-column:span 8}:root[data-layout-theme=mosaic] .panel-grid>.panel.panel-full{grid-column:1/-1}:root[data-layout-theme=mosaic] .assistant-shell{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}:root[data-layout-theme=mosaic] .assistant-chat-main{order:2}:root[data-layout-theme=mosaic] .assistant-chatlist{order:1}:root[data-layout-theme=mosaic] .bottom-nav{left:50%;right:auto;width:min(1060px,calc(100% - 2rem));transform:translateX(-50%);border:2px solid var(--bottom-nav-border);border-radius:14px;overflow:hidden;bottom:.62rem}:root[data-layout-theme=mosaic] .hero-card,:root[data-layout-theme=mosaic] .landing-hero,:root[data-layout-theme=mosaic] .panel{border-radius:6px;border-width:2px;background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 86%,var(--accent) 14%),var(--panel)) padding-box,linear-gradient(90deg,color-mix(in srgb,var(--panel-border) 72%,transparent),var(--panel-border)) border-box;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--panel-border) 24%,transparent),var(--shadow-sm)}:root[data-layout-theme=mosaic] .hero-card,:root[data-layout-theme=mosaic] .landing-hero{color:var(--text)}:root[data-layout-theme=mosaic] .hero-card .hero-kicker,:root[data-layout-theme=mosaic] .hero-card .hero-subtitle,:root[data-layout-theme=mosaic] .landing-hero .hero-kicker,:root[data-layout-theme=mosaic] .landing-hero .hero-subtitle{color:var(--muted)}:root[data-layout-theme=mosaic] .hero-card:before,:root[data-layout-theme=mosaic] .landing-hero:before,:root[data-layout-theme=mosaic] .panel:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:.24;background-image:linear-gradient(to right,color-mix(in srgb,var(--panel-border) 24%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--panel-border) 20%,transparent) 1px,transparent 1px);background-size:18px 18px;z-index:0}:root[data-layout-theme=mosaic] .hero-card>*,:root[data-layout-theme=mosaic] .landing-hero>*,:root[data-layout-theme=mosaic] .panel>*{position:relative;z-index:1}:root[data-layout-theme=mosaic] .panel:hover{transform:translate(-2px,-2px) scale(1.005)}:root[data-layout-theme=mosaic] .bottom-nav-link,:root[data-layout-theme=mosaic] .btn-base{border-radius:6px}:root[data-layout-theme=mosaic] .panel-grid{gap:.95rem}:root[data-layout-theme=studio] .app-topbar,:root[data-layout-theme=studio] .bottom-nav{border-width:1px;backdrop-filter:blur(18px);box-shadow:0 12px 30px rgba(10,18,32,.12)}:root[data-layout-theme=studio] .hero-card,:root[data-layout-theme=studio] .landing-hero,:root[data-layout-theme=studio] .panel{border-width:1px;border-radius:22px;background:linear-gradient(150deg,color-mix(in srgb,var(--panel) 84%,#fff 16%),color-mix(in srgb,var(--panel) 92%,var(--accent) 8%)) padding-box,linear-gradient(150deg,color-mix(in srgb,var(--panel-border) 34%,#fff 66%),color-mix(in srgb,var(--panel-border) 62%,transparent)) border-box;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.5),0 14px 34px rgba(12,24,40,.14)}:root[data-layout-theme=studio] .hero-card,:root[data-layout-theme=studio] .landing-hero{color:var(--text)}:root[data-layout-theme=studio] .hero-card .hero-kicker,:root[data-layout-theme=studio] .hero-card .hero-subtitle,:root[data-layout-theme=studio] .landing-hero .hero-kicker,:root[data-layout-theme=studio] .landing-hero .hero-subtitle{color:var(--muted)}:root[data-theme=dark][data-layout-theme=studio] .hero-card,:root[data-theme=dark][data-layout-theme=studio] .landing-hero,:root[data-theme=dark][data-layout-theme=studio] .panel{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.08),0 14px 34px rgba(0,0,0,.42)}:root[data-layout-theme=studio] .hero-title,:root[data-layout-theme=studio] .panel-title{font-family:Palatino Linotype,Book Antiqua,Palatino,Times New Roman,serif;letter-spacing:.01em}:root[data-layout-theme=studio] .hero-subtitle,:root[data-layout-theme=studio] .panel-copy{line-height:1.65}:root[data-layout-theme=studio] .btn-base{border-radius:999px}:root[data-layout-theme=studio] .bottom-nav-link{border-radius:0;letter-spacing:.05em}:root[data-layout-theme=studio] .app-topbar{width:min(1120px,calc(100% - 1.6rem));margin:.44rem auto 0;border:2px solid var(--topbar-border);border-radius:var(--radius-ui);padding-inline:.92rem}:root[data-layout-theme=studio] .auth-shell,:root[data-layout-theme=studio] .home-shell,:root[data-layout-theme=studio] .landing-shell{max-width:1140px;padding-top:1.45rem}:root[data-layout-theme=studio] .hero-headline-row{align-items:flex-start;gap:1.2rem}:root[data-layout-theme=studio] .landing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}:root[data-layout-theme=studio] .landing-grid .panel:first-child{grid-column:1/-1}:root[data-layout-theme=studio] .panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}:root[data-layout-theme=studio] .panel-grid>.panel.panel-full{grid-column:1/-1}:root[data-layout-theme=studio] .grades-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:980px){:root[data-layout-theme=sleek] .auth-shell,:root[data-layout-theme=sleek] .home-shell,:root[data-layout-theme=sleek] .landing-shell{width:min(1320px,calc(100% - 7.2rem));margin-left:5.8rem;margin-right:auto}:root[data-layout-theme=sleek] .bottom-nav{left:.72rem;right:auto;top:5.25rem;bottom:.72rem;width:4.55rem;display:flex;flex-direction:column;border:2px solid var(--bottom-nav-border);border-radius:var(--radius-ui);overflow:hidden;gap:2px;background:var(--bottom-nav-border)}:root[data-layout-theme=sleek] .bottom-nav-link{min-height:0;flex:1;border-right:none;border-bottom:none;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.08em;font-size:.72rem;padding:.45rem 0;background:var(--bottom-nav-bg)}:root[data-layout-theme=sleek] .bottom-nav-link:after{top:auto;bottom:0;height:4px}:root[data-layout-theme=sleek] .assistant-shell{grid-template-columns:minmax(0,1fr) minmax(220px,280px)}:root[data-layout-theme=sleek] .assistant-chat-main{order:1}:root[data-layout-theme=sleek] .assistant-chatlist{order:2}:root[data-layout-theme=studio] .auth-shell,:root[data-layout-theme=studio] .home-shell,:root[data-layout-theme=studio] .landing-shell{width:min(1140px,calc(100% - 7.2rem));margin-left:auto;margin-right:5.8rem}:root[data-layout-theme=studio] .bottom-nav{right:.72rem;left:auto;top:5.25rem;bottom:.72rem;width:4.55rem;display:flex;flex-direction:column;border:2px solid var(--bottom-nav-border);border-radius:var(--radius-ui);overflow:hidden;gap:2px;background:var(--bottom-nav-border)}:root[data-layout-theme=studio] .bottom-nav-link{min-height:0;flex:1;border-right:none;border-bottom:none;writing-mode:vertical-lr;letter-spacing:.07em;font-size:.72rem;padding:.45rem 0;background:var(--bottom-nav-bg)}:root[data-layout-theme=studio] .bottom-nav-link:after{top:auto;bottom:0;height:4px}}:root[data-layout-theme=bubbly] body{animation:background-bubbly-drift 22s var(--ease-smooth) infinite alternate}:root[data-layout-theme=bubbly] .app-topbar{animation:bubbly-pop-in .36s var(--ease-snappy) both}:root[data-layout-theme=bubbly] .auth-shell,:root[data-layout-theme=bubbly] .home-shell,:root[data-layout-theme=bubbly] .landing-shell{animation:bubbly-page-in .52s var(--ease-smooth) both}:root[data-layout-theme=bubbly] .hero-card,:root[data-layout-theme=bubbly] .landing-hero,:root[data-layout-theme=bubbly] .panel{animation-name:bubbly-rise;animation-duration:.42s;animation-timing-function:var(--ease-snappy)}:root[data-layout-theme=bubbly] .assistant-bubble,:root[data-layout-theme=bubbly] .assistant-event-card,:root[data-layout-theme=bubbly] .manual-turnin-alert,:root[data-layout-theme=bubbly] .sync-message{animation-name:bubbly-notice;animation-duration:.28s}:root[data-layout-theme=bubbly] .todo-item{animation-name:bubbly-item-in;animation-duration:.3s}:root[data-layout-theme=bubbly] .bottom-nav{animation:bubbly-nav-pop .36s var(--ease-snappy) both}:root[data-layout-theme=bubbly] .typing-dots span{animation-name:typing-bounce-bubbly;animation-duration:.86s}:root[data-layout-theme=bubbly] .app-loading-bar:after{animation-name:loading-slide-bubbly;animation-duration:1.1s}:root[data-layout-theme=sleek] body{animation:background-sleek-drift 26s linear infinite alternate}:root[data-layout-theme=sleek] .app-topbar{animation:sleek-slide-in .28s var(--ease-smooth) both}:root[data-layout-theme=sleek] .auth-shell,:root[data-layout-theme=sleek] .home-shell,:root[data-layout-theme=sleek] .landing-shell{animation:sleek-page-in .42s var(--ease-smooth) both}:root[data-layout-theme=sleek] .hero-card,:root[data-layout-theme=sleek] .landing-hero,:root[data-layout-theme=sleek] .panel{animation-name:sleek-rise;animation-duration:.32s;animation-timing-function:var(--ease-smooth)}:root[data-layout-theme=sleek] .assistant-bubble,:root[data-layout-theme=sleek] .assistant-event-card,:root[data-layout-theme=sleek] .manual-turnin-alert,:root[data-layout-theme=sleek] .sync-message{animation-name:sleek-notice;animation-duration:.23s}:root[data-layout-theme=sleek] .todo-item{animation-name:sleek-item-in;animation-duration:.24s}:root[data-layout-theme=sleek] .bottom-nav{animation:sleek-nav-in .32s var(--ease-smooth) both}:root[data-layout-theme=sleek] .typing-dots span{animation-name:typing-bounce-sleek;animation-duration:1.12s}:root[data-layout-theme=sleek] .app-loading-bar:after{animation-name:loading-slide-sleek;animation-duration:.78s}:root[data-layout-theme=mosaic] body{animation:background-mosaic-drift 24s var(--ease-smooth) infinite alternate}:root[data-layout-theme=mosaic] .app-topbar{animation:mosaic-topbar-in .34s var(--ease-snappy) both}:root[data-layout-theme=mosaic] .auth-shell,:root[data-layout-theme=mosaic] .home-shell,:root[data-layout-theme=mosaic] .landing-shell{animation:mosaic-page-in .5s var(--ease-snappy) both}:root[data-layout-theme=mosaic] .hero-card,:root[data-layout-theme=mosaic] .landing-hero,:root[data-layout-theme=mosaic] .panel{animation-name:mosaic-tile-in;animation-duration:.38s;animation-timing-function:var(--ease-snappy)}:root[data-layout-theme=mosaic] .assistant-bubble,:root[data-layout-theme=mosaic] .assistant-event-card,:root[data-layout-theme=mosaic] .manual-turnin-alert,:root[data-layout-theme=mosaic] .sync-message{animation-name:mosaic-notice-in;animation-duration:.28s}:root[data-layout-theme=mosaic] .todo-item{animation-name:mosaic-item-in;animation-duration:.3s}:root[data-layout-theme=mosaic] .bottom-nav{animation:mosaic-nav-in .36s var(--ease-snappy) both}:root[data-layout-theme=mosaic] .typing-dots span{animation-name:typing-bounce-mosaic;animation-duration:.98s;animation-timing-function:steps(3)}:root[data-layout-theme=mosaic] .app-loading-bar:after{animation-name:loading-slide-mosaic;animation-duration:.9s}:root[data-layout-theme=studio] body{animation:background-studio-drift 24s linear infinite alternate}:root[data-layout-theme=studio] .app-topbar{animation:studio-topbar-in .42s var(--ease-smooth) both}:root[data-layout-theme=studio] .auth-shell,:root[data-layout-theme=studio] .home-shell,:root[data-layout-theme=studio] .landing-shell{animation:studio-page-in .56s var(--ease-smooth) both}:root[data-layout-theme=studio] .hero-card,:root[data-layout-theme=studio] .landing-hero,:root[data-layout-theme=studio] .panel{animation-name:studio-canvas-in;animation-duration:.42s}:root[data-layout-theme=studio] .assistant-bubble,:root[data-layout-theme=studio] .assistant-event-card,:root[data-layout-theme=studio] .manual-turnin-alert,:root[data-layout-theme=studio] .sync-message{animation-name:studio-notice-in;animation-duration:.28s}:root[data-layout-theme=studio] .todo-item{animation-name:studio-item-in;animation-duration:.3s}:root[data-layout-theme=studio] .bottom-nav{animation:studio-nav-in .42s var(--ease-smooth) both}:root[data-layout-theme=studio] .typing-dots span{animation-name:typing-bounce-studio;animation-duration:1.18s}:root[data-layout-theme=studio] .app-loading-bar:after{animation-name:loading-slide-studio;animation-duration:1.02s}@keyframes background-mosaic-drift{0%{background-position:0 0,0 0,3% 2%,98% 100%}to{background-position:0 0,0 0,12% 11%,90% 86%}}@keyframes background-studio-drift{0%{background-position:0 0,0 0,1% 1%,99% 99%}to{background-position:0 0,0 0,8% 7%,93% 90%}}@keyframes mosaic-topbar-in{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes mosaic-page-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes mosaic-tile-in{0%{opacity:0;transform:translateY(14px) scale(.94) rotate(-.6deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0deg)}}@keyframes mosaic-notice-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes mosaic-item-in{0%{opacity:0;transform:translateX(-8px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes mosaic-nav-in{0%{opacity:0;transform:translate(-50%,8px) scale(.97)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes typing-bounce-mosaic{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-1px)}}@keyframes loading-slide-mosaic{0%{transform:translateX(-140%)}to{transform:translateX(300%)}}@keyframes studio-topbar-in{0%{opacity:0;transform:translateY(-8px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes studio-page-in{0%{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes studio-canvas-in{0%{opacity:0;transform:translateY(18px) scale(.975);filter:saturate(.88)}to{opacity:1;transform:translateY(0) scale(1);filter:saturate(1)}}@keyframes studio-notice-in{0%{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes studio-item-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes studio-nav-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-bounce-studio{0%,to{opacity:.24;transform:translateY(0)}45%{opacity:1;transform:translateY(-3px)}}@keyframes loading-slide-studio{0%{transform:translateX(-120%)}to{transform:translateX(340%)}}@keyframes background-bubbly-drift{0%{background-position:0 0,0 0,1% 0,100% 100%}to{background-position:0 0,0 0,16% 10%,87% 84%}}@keyframes background-sleek-drift{0%{background-position:0 0,0 0,2% 1%,98% 99%}to{background-position:0 0,0 0,9% 6%,93% 92%}}@keyframes bubbly-pop-in{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bubbly-page-in{0%{opacity:0;transform:translateY(14px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bubbly-rise{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bubbly-notice{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bubbly-item-in{0%{opacity:0;transform:translateX(-8px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes bubbly-nav-pop{0%{opacity:0;transform:translateX(-50%) translateY(18px) scale(.96)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}@keyframes sleek-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes sleek-page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes sleek-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sleek-notice{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sleek-item-in{0%{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}@keyframes sleek-nav-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-bounce-bubbly{0%,65%,to{opacity:.22;transform:translateY(0) scale(1)}35%{opacity:1;transform:translateY(-3px) scale(1.06)}}@keyframes typing-bounce-sleek{0%,60%,to{opacity:.24;transform:translateY(0)}30%{opacity:.9;transform:translateY(-1px)}}@keyframes loading-slide-bubbly{0%{transform:translateX(-130%)}to{transform:translateX(340%)}}@keyframes loading-slide-sleek{0%{transform:translateX(-108%)}to{transform:translateX(290%)}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes floating-assistant-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes floating-assistant-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.985)}}@keyframes page-in{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes background-drift{0%{background-position:0 0,0 0,0 0,100% 100%}to{background-position:0 0,0 0,12% 8%,92% 88%}}@keyframes pulse-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes notice-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes item-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes todo-check-outline{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent-strong) 34%,transparent)}60%{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent-strong) 0,transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent-strong) 0,transparent)}}@keyframes todo-check-ripple{0%{opacity:0;transform:scale(.42) rotate(0deg)}30%{opacity:.9}to{opacity:0;transform:scale(1.22) rotate(8deg)}}@keyframes todo-check-title{0%{transform:scale(1)}40%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes todo-checkbox-pop{0%{transform:scale(1)}35%{transform:scale(.86)}72%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes todo-checkbox-sparkle{0%{opacity:0;transform:scale(.35) rotate(-10deg)}38%{opacity:.88}to{opacity:0;transform:scale(1.28) rotate(12deg)}}@keyframes todo-checkbox-tick{0%{transform:rotate(45deg) scale(.35)}62%{transform:rotate(45deg) scale(1.12)}to{transform:rotate(45deg) scale(1)}}@keyframes typing-bounce{0%,60%,to{opacity:.24;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@keyframes loading-slide{0%{transform:translateX(-120%)}to{transform:translateX(360%)}}@keyframes loading-pulse{0%,to{opacity:.35;transform:scale(.88)}50%{opacity:1;transform:scale(1)}}.todo-list .todo-item:first-child{animation-delay:20ms}.todo-list .todo-item:nth-child(2){animation-delay:55ms}.todo-list .todo-item:nth-child(3){animation-delay:90ms}.todo-list .todo-item:nth-child(4){animation-delay:125ms}.todo-list .todo-item:nth-child(5){animation-delay:.16s}.todo-list .todo-item:nth-child(6){animation-delay:195ms}.todo-list .todo-item:nth-child(7){animation-delay:.23s}.todo-list .todo-item:nth-child(8){animation-delay:265ms}.settings-pro-cta{margin:.8rem 0 .6rem}.settings-ribbon-shell{margin-top:-.2rem;border:2px solid var(--panel-border);border-radius:var(--radius-ui);background:linear-gradient(180deg,color-mix(in srgb,#fff 94%,var(--panel-bg)),color-mix(in srgb,#fff 84%,var(--panel-bg)));box-shadow:var(--shadow-sm);padding:.45rem .45rem .2rem}.settings-header-logout{margin:0;flex-shrink:0}.settings-ribbon{display:flex;align-items:center;gap:.45rem;overflow-x:auto;padding:.2rem .2rem .4rem;scrollbar-width:thin}.settings-ribbon-item{display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--panel-border) 74%,transparent);border-radius:999px;padding:.45rem .85rem;font-size:.82rem;font-weight:650;text-decoration:none;color:var(--muted);background:color-mix(in srgb,#fff 90%,var(--panel-bg));white-space:nowrap;transition:border-color .12s var(--ease-snappy),background-color .12s var(--ease-snappy),color .12s var(--ease-snappy),transform .12s var(--ease-snappy)}.settings-ribbon-item:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--panel-border));color:var(--text);transform:translateY(-1px)}.settings-ribbon-item:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-strong) 70%,#fff);outline-offset:2px}.settings-ribbon-item.is-active{border-color:color-mix(in srgb,var(--accent) 60%,var(--panel-border));background:color-mix(in srgb,#fff 72%,var(--accent-soft));color:var(--text);box-shadow:0 10px 20px -18px color-mix(in srgb,var(--accent) 50%,transparent)}.settings-panel-grid>.panel{padding:.9rem}.settings-panel-grid>.panel .panel-copy{margin:.45rem 0 .72rem}.settings-panel-grid>.panel .todo-muted+.todo-muted{margin-top:.34rem}.settings-panel-grid>.panel .settings-pro-cta{margin:.58rem 0 .44rem}.settings-panel-grid>.panel .support-form{gap:.48rem}.settings-frame{display:grid;gap:.38rem}.settings-frame-content{display:grid;gap:.2rem}.settings-billing-panel{width:min(100%,460px);justify-self:center;padding:.85rem}.settings-current-tier{margin:.4rem 0 .2rem;font-size:.95rem;color:color-mix(in srgb,var(--text) 85%,transparent)}.settings-current-tier-value{display:inline-flex;align-items:center;margin-left:.24rem;padding:.18rem .58rem;border-radius:999px;border:2px solid color-mix(in srgb,var(--status-border) 72%,#fff);background:color-mix(in srgb,var(--status-bg) 72%,#fff);color:color-mix(in srgb,var(--status-text) 88%,#0b111b);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.pro-shell{display:grid;gap:1.1rem;padding-bottom:7rem}.pro-school-cta{margin-top:-.3rem;display:flex;align-items:center;gap:var(--space-md)}.pro-school-cta:after,.pro-school-cta:before{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--panel-border) 78%,transparent)}.pro-school-cta>.btn-base{white-space:nowrap}.pro-hero{background:linear-gradient(138deg,hsla(0,0%,100%,.08) 0,transparent 45%),linear-gradient(120deg,var(--hero-bg) 0,color-mix(in srgb,var(--hero-bg) 85%,var(--accent) 15%) 100%)}.pro-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:1rem;align-items:stretch}.pro-hero-actions{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem}.pro-action-form{margin:0}.pro-billing-message{margin-top:.72rem}.pro-disabled-checkout{opacity:1}.pro-disabled-checkout:disabled{opacity:.9;cursor:default}.pro-checkout-preview{border:2px solid transparent;background:linear-gradient(145deg,hsla(0,0%,100%,.16),hsla(0,0%,100%,.08)) padding-box,repeating-linear-gradient(90deg,#ff5f6d,#ffc371 14%,#f9f871 28%,#67e8f9 42%,#60a5fa 56%,#ff5f6d 70%) border-box;background-size:100% 100%,220% 100%;background-position:50%,0 50%;border-radius:var(--radius-ui);padding:.95rem;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.08);backdrop-filter:blur(8px);animation:rise-in .36s var(--ease-smooth) both,pro-rainbow-flow 6s linear infinite}.pro-checkout-label{margin:0;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;opacity:.86;font-weight:700}.pro-checkout-title{margin:.35rem 0 0;font-size:1.15rem}.pro-checkout-price{margin:.38rem 0 0;font-size:1.35rem;font-weight:800;letter-spacing:.01em}.pro-checkout-price-current{width:fit-content;border:2px solid hsla(0,0%,100%,.5);border-radius:999px;padding:.14rem .55rem;background:color-mix(in srgb,var(--hero-bg) 72%,transparent);-webkit-text-stroke:.35px hsla(0,0%,100%,.32);text-shadow:0 1px 1px rgba(0,0,0,.42)}.pro-checkout-copy{margin:.45rem 0 0;font-size:.9rem;line-height:1.45;color:color-mix(in srgb,var(--hero-text) 84%,transparent)}.pro-checkout-divider{margin:.72rem 0;height:2px;background:hsla(0,0%,100%,.28)}.pro-checkout-list{margin:0;padding:0;list-style:none;display:grid;gap:.45rem}.pro-checkout-list li{position:relative;padding-left:.92rem;font-size:.88rem}.pro-checkout-list li:before{content:"";position:absolute;left:0;top:.53em;width:.42rem;height:.42rem;border-radius:999px;background:currentColor;opacity:.85}.pro-plan-grid{display:grid;gap:.95rem;grid-template-columns:repeat(3,minmax(0,1fr))}.pro-plan-card{display:grid;grid-template-rows:auto auto auto 1fr auto;gap:var(--space-sm)}.pro-plan-actions{margin-top:.5rem;display:grid;gap:.45rem;align-self:end}.pro-plan-action-form,.pro-plan-action-form>.btn-base,.pro-plan-actions>.btn-base{width:100%}.pro-plan-card-pro{border-color:var(--status-border);background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 68%,transparent) 0,var(--panel) 56%)}.pro-plan-badge{margin:0;display:inline-flex;width:fit-content;justify-self:center;justify-content:center;border:2px solid var(--panel-border);background:var(--panel-muted);color:var(--muted);border-radius:999px;padding:.16rem .55rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;text-align:center}.pro-plan-badge-core{margin-inline:auto;text-align:center}.pro-plan-badge-pro{border-color:var(--status-border);background:var(--status-bg);color:var(--status-text)}.pro-plan-badge-current{border-color:color-mix(in srgb,var(--status-border) 70%,#fff);background:linear-gradient(145deg,color-mix(in srgb,var(--status-bg) 76%,#fff),color-mix(in srgb,var(--status-bg) 58%,#fff));color:color-mix(in srgb,var(--status-text) 90%,#0a0f17);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-border) 26%,transparent),0 6px 16px color-mix(in srgb,var(--status-border) 24%,transparent);font-size:.76rem;padding:.22rem .72rem;letter-spacing:.08em;-webkit-text-stroke:.18px rgba(0,0,0,.24)}.pro-plan-price{margin:0;font-size:1.42rem;font-weight:800}.pro-plan-card .panel-title,.pro-plan-price{text-align:center}.pro-plan-list{margin:.2rem 0 0;padding:0;list-style:none;display:grid;gap:.44rem}.pro-plan-list li{position:relative;padding-left:1rem;line-height:1.38}.pro-plan-list li:before{content:"";position:absolute;left:0;top:.52em;width:.46rem;height:.46rem;border-radius:999px;background:var(--bottom-nav-indicator)}.pro-highlights{display:grid;gap:.95rem;grid-template-columns:repeat(3,minmax(0,1fr))}.pro-highlight-card .panel-copy{margin-bottom:0}@media (hover:hover) and (pointer:fine){.hero-card:hover,.landing-hero:hover{transform:translate(var(--hero-hover-shift-x),var(--hero-hover-shift-y));box-shadow:var(--hero-hover-shadow)}.hero-card:hover:after,.landing-hero:hover:after{animation:sheen .62s var(--ease-smooth) 1}}@keyframes sheen{0%{transform:translateX(-130%)}to{transform:translateX(130%)}}@keyframes pro-rainbow-flow{0%{background-position:50%,0 50%}to{background-position:50%,100% 50%}}@media (max-width:840px){.school-signup-dock.is-open:after,.school-signup-dock.is-open:before{width:min(24vw,120px)}.school-signup-dock{margin-top:1.35rem}.landing-flow,.landing-grid,.landing-hero-grid,.landing-stat-grid,.pro-hero-layout,.pro-highlights,.pro-plan-grid{grid-template-columns:1fr}.hero-headline-row{flex-direction:column}.settings-header-logout,.settings-header-logout .btn-base{width:100%}.custom-palette-color-grid,.layout-theme-grid,.panel-grid,.theme-palette-grid{grid-template-columns:1fr}.home-shell{padding:1rem .85rem 7rem}.auth-shell,.landing-shell{padding:1rem .85rem 2rem}.manual-turnin-alert,.pomodoro-head{flex-direction:column}.pomodoro-toggle-button{align-items:center;flex-direction:row;gap:.35rem}.pomodoro-settings-grid{grid-template-columns:1fr}.todo-item{grid-template-columns:22px minmax(0,1fr)}.todo-item-actions{grid-column:1/-1;justify-content:flex-start}.todo-calendar-week-head{align-items:flex-start;flex-direction:column}.dashboard-quick-links,.dashboard-week-glance{grid-template-columns:repeat(2,minmax(0,1fr))}.todo-calendar-title-chip{max-width:min(80vw,260px)}.app-topbar{padding-inline:.7rem}.app-topbar-title{font-size:.9rem}.app-topbar-title-better{-webkit-text-stroke-width:1.1px}.assistant-shell{grid-template-columns:1fr}.assistant-chatlist-items{max-height:200px}.onboarding-step-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.onboarding-overview-cards{grid-template-columns:1fr}.onboarding-overview-table{min-width:0}.onboarding-actions-split{align-items:flex-start;flex-direction:column}.email-settings-time-grid,.grades-grid{grid-template-columns:1fr}.grades-analytics-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grades-analytics-grid{grid-template-columns:1fr}.grades-analytics-category-row,.grades-analytics-course-row,.grades-analytics-stacked-row{grid-template-columns:minmax(0,1fr)}.grades-analytics-distribution{grid-template-columns:repeat(3,minmax(0,1fr))}.grades-analytics-course-value,.grades-analytics-stacked-meta{text-align:left}.grades-analytics-card-wide{grid-column:auto}.grades-analytics-heatmap-row,.grades-forecast-controls,.grades-forecast-input-row,.grades-projections-course-grid,.grades-projections-overall-grid{grid-template-columns:1fr}.grades-projections-scenario-row{grid-template-columns:minmax(0,1fr);gap:.24rem}.grades-projections-scenario-delta,.grades-projections-scenario-value{text-align:left}:root[data-layout-theme=bubbly] .panel-grid,:root[data-layout-theme=mosaic] .panel-grid,:root[data-layout-theme=sleek] .panel-grid,:root[data-layout-theme=studio] .panel-grid{grid-template-columns:1fr}:root[data-layout-theme=bubbly] .panel-grid>.panel:not(.panel-full),:root[data-layout-theme=mosaic] .panel-grid>.panel:not(.panel-full),:root[data-layout-theme=sleek] .panel-grid>.panel:not(.panel-full){grid-column:auto}:root[data-layout-theme=bubbly] .landing-grid,:root[data-layout-theme=mosaic] .landing-grid,:root[data-layout-theme=sleek] .landing-grid,:root[data-layout-theme=studio] .landing-grid{grid-template-columns:1fr}:root[data-layout-theme=bubbly] .landing-grid .panel,:root[data-layout-theme=mosaic] .landing-grid .panel,:root[data-layout-theme=sleek] .landing-grid .panel,:root[data-layout-theme=studio] .landing-grid .panel{grid-column:auto}:root[data-layout-theme=bubbly] .hero-headline-row,:root[data-layout-theme=mosaic] .hero-headline-row{display:flex;flex-direction:column}:root[data-layout-theme=bubbly] .assistant-chatlist-items{grid-template-columns:1fr;max-height:200px}:root[data-layout-theme=sleek] .grades-grid,:root[data-layout-theme=studio] .grades-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.admin-shell{display:grid;grid-template-columns:minmax(200px,250px) minmax(0,1fr);gap:1rem;min-height:calc(100dvh - 88px);margin:0 auto;max-width:1300px;padding:1rem 1rem 5.4rem}.admin-sidebar{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);padding:1rem;height:fit-content;position:sticky;top:1rem}.admin-sidebar-header{border-bottom:1px solid color-mix(in srgb,var(--panel-border) 35%,transparent);margin-bottom:.75rem;padding-bottom:.75rem}.admin-sidebar-kicker{color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.admin-sidebar-title{color:var(--text);font-size:1rem;margin:.3rem 0 0}.admin-sidebar-nav{display:flex;flex-direction:column;gap:.45rem}.admin-sidebar-link{background:var(--panel-muted);border:2px solid var(--panel-border);border-radius:var(--radius-ui);color:var(--text);font-size:.92rem;font-weight:600;padding:.48rem .58rem;text-decoration:none;transition:transform .18s var(--ease-snappy)}.admin-sidebar-link:hover{transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y))}.admin-sidebar-link-active{background:var(--accent)}.admin-main{display:flex;flex-direction:column;gap:1rem;min-width:0}.admin-topbar{align-items:center;background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;padding:.72rem .86rem}.admin-topbar-label{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.admin-topbar-email{color:var(--text);font-size:.92rem;font-weight:700;margin:.22rem 0 0}.admin-topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end}.admin-content{min-width:0}.admin-page{display:flex;flex-direction:column;gap:1rem}.admin-page-header{background:var(--hero-bg);border:2px solid var(--hero-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-md);color:var(--hero-text);padding:1.05rem 1.15rem}.admin-page-kicker{color:var(--hero-subtitle);font-size:.72rem;font-weight:700;letter-spacing:.1em;margin:0;text-transform:uppercase}.admin-page-title{font-size:clamp(1.4rem,2vw,2rem);margin:.25rem 0 .4rem}.admin-page-description{color:var(--hero-subtitle);font-size:.94rem;margin:0}.management-tabs{display:flex;flex-wrap:wrap;gap:.48rem;margin-top:.86rem}.management-tab{background:color-mix(in srgb,var(--panel) 84%,var(--accent) 16%);border:1px solid color-mix(in srgb,var(--panel-border) 80%,var(--accent) 20%);border-radius:999px;color:var(--text);display:inline-flex;font-size:.82rem;font-weight:700;line-height:1;min-height:2rem;padding:.52rem .82rem;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.management-tab:hover{background:color-mix(in srgb,var(--panel) 64%,var(--accent) 36%);border-color:color-mix(in srgb,var(--panel-border) 58%,var(--accent) 42%);transform:translateY(-1px)}.management-tab-active{background:color-mix(in srgb,var(--accent-strong) 30%,var(--panel) 70%);border-color:color-mix(in srgb,var(--accent-strong) 54%,var(--panel-border) 46%);box-shadow:var(--shadow-sm)}.management-tabs-school{margin-top:.72rem}.admin-card-grid,.admin-metric-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-card{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);min-width:0;padding:.95rem}.admin-card-title{color:var(--text);font-size:1.02rem;margin:0}.admin-card-description{color:var(--muted);font-size:.9rem;margin:.32rem 0 0}.admin-metric-value{color:var(--text);font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;letter-spacing:-.02em;margin:.68rem 0 0}.admin-quick-links{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:.9rem}.admin-blog-list{display:grid;gap:.9rem;margin-top:.75rem}.admin-blog-toggle{align-items:center;background:var(--panel-soft);border:1px solid var(--panel-border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;display:flex;font-size:.9rem;font-weight:700;justify-content:space-between;padding:.6rem .72rem;width:100%}.admin-blog-toggle:hover{border-color:var(--accent-strong)}.admin-blog-toggle-chevron{color:var(--muted);font-size:.78rem}.admin-blog-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:.62rem 1rem;margin-bottom:.6rem}.admin-blog-meta p{margin:0;font-size:.84rem}.admin-blog-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.74rem}.admin-auth-shell{align-items:flex-start;display:flex;justify-content:center;min-height:calc(100dvh - 120px);padding:1.1rem 1rem 5rem}.admin-auth-card{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-md);max-width:620px;padding:1.05rem;width:100%}.admin-auth-kicker{color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.09em;margin:0;text-transform:uppercase}.admin-auth-title{color:var(--text);font-size:clamp(1.4rem,2.8vw,2rem);margin:.25rem 0 0}.admin-auth-copy{color:var(--muted);margin:.55rem 0 .82rem}.admin-auth-form-inline{margin:.25rem 0 .8rem}.admin-auth-form{display:grid;gap:.46rem}.admin-auth-label{color:var(--text);font-size:.82rem;font-weight:700;margin-top:.2rem}.admin-auth-input{appearance:none;background:var(--control-bg);border:2px solid var(--panel-border);border-radius:var(--radius-ui);color:var(--control-text);font-size:.94rem;min-height:2.4rem;padding:.52rem .62rem;width:100%}.admin-auth-input:focus{outline:3px solid var(--ring);outline-offset:1px}@media (max-width:980px){.admin-shell{grid-template-columns:1fr;padding-top:.85rem}.admin-sidebar{position:static}.admin-sidebar-nav{display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-card-grid,.admin-metric-grid{grid-template-columns:1fr}}@media (max-width:640px){.app-topbar-brand-wrap{gap:.36rem}.app-topbar-version-link{font-size:.72rem}.admin-topbar{align-items:flex-start;flex-direction:column;gap:var(--space-md)}.admin-topbar-actions{justify-content:flex-start}.admin-sidebar-nav{grid-template-columns:1fr}.management-tabs{gap:.4rem}.admin-blog-actions a,.admin-blog-actions form,.management-tab{width:100%}}.updates-shell{margin:0 auto;max-width:920px;padding:1.1rem 1rem 5rem;display:grid;gap:.9rem}.updates-header{background:var(--hero-bg);border:2px solid var(--hero-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-md);color:var(--hero-text);padding:1rem 1.1rem}.updates-kicker{margin:0;color:var(--hero-subtitle);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.updates-title{margin:.24rem 0 .42rem;font-size:clamp(1.35rem,2.6vw,2rem)}.updates-copy{margin:0;color:var(--hero-subtitle);font-size:.92rem}.updates-empty{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);padding:.88rem 1rem;display:grid;gap:.5rem}.updates-empty p{margin:0;color:var(--muted)}.updates-list{display:grid;gap:.8rem}.updates-card{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);padding:.88rem .96rem}.updates-card-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:.54rem 1rem;font-size:.8rem}.updates-card-title{margin:.38rem 0;font-size:1.22rem}.updates-card-summary{margin:0;color:var(--text);opacity:.86}.updates-card-actions{margin-top:.72rem}.updates-detail-card{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);padding:1rem}.updates-detail-summary{margin:0 0 .7rem;color:var(--muted)}.updates-detail-content{display:grid;gap:.55rem}.updates-detail-content p{margin:0;color:var(--text);line-height:1.6}.updates-reactions{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);padding:.8rem .9rem}.updates-reaction-form{display:flex;flex-wrap:wrap;gap:.46rem}.updates-reactions-signin{margin:0;color:var(--muted)}.updates-reactions-signin a{text-decoration:underline}.updates-detail-footer{margin-top:.12rem}.school-admin-shell{display:flex;flex-direction:column;gap:1rem;padding-bottom:4rem}.school-admin-header{overflow:hidden;position:relative}.school-admin-header:before{background:radial-gradient(circle at 90% 20%,color-mix(in srgb,var(--accent) 26%,transparent),transparent 42%),radial-gradient(circle at 12% 90%,color-mix(in srgb,var(--accent-strong) 20%,transparent),transparent 58%);content:"";inset:0;pointer-events:none;position:absolute}.school-admin-header>*{position:relative;z-index:1}.school-admin-header-meta{display:flex;flex-wrap:wrap;gap:.48rem;margin-top:.78rem}.school-admin-header-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.72rem}.school-admin-badge{background:color-mix(in srgb,var(--panel) 86%,var(--accent) 14%);border:1px solid color-mix(in srgb,var(--panel-border) 82%,var(--accent) 18%);border-radius:999px;color:var(--text);display:inline-flex;font-size:.78rem;font-weight:700;letter-spacing:.01em;line-height:1;padding:.4rem .66rem}.school-admin-badge-active{background:color-mix(in srgb,#1a7f37 20%,var(--panel) 80%);border-color:color-mix(in srgb,#1a7f37 52%,var(--panel-border) 48%)}.school-admin-badge-pilot{background:color-mix(in srgb,#9f580a 22%,var(--panel) 78%);border-color:color-mix(in srgb,#9f580a 54%,var(--panel-border) 46%)}.school-admin-badge-cancelled,.school-admin-badge-inactive{background:color-mix(in srgb,#7f1d1d 18%,var(--panel) 82%);border-color:color-mix(in srgb,#7f1d1d 48%,var(--panel-border) 52%)}.school-admin-range-form{align-items:end;display:grid;gap:.44rem;grid-template-columns:repeat(2,minmax(0,1fr)) auto auto;margin-top:.86rem}.school-admin-summary-strip{background:color-mix(in srgb,var(--panel) 94%,var(--accent) 6%);border:2px solid var(--panel-border);border-radius:var(--radius-ui);display:grid;gap:var(--space-sm);grid-template-columns:repeat(3,minmax(0,1fr));padding:.72rem .86rem}.school-admin-summary-strip p{color:var(--text);font-size:.9rem;font-weight:500;margin:0}.school-admin-inline-meta{color:var(--text);font-size:.88rem;margin:.45rem 0 .68rem;opacity:.8}.school-admin-chart-grid{display:grid;gap:.76rem;grid-template-columns:repeat(2,minmax(0,1fr))}.chart-shell{background:color-mix(in srgb,var(--panel) 92%,var(--accent) 8%);border:1px solid var(--panel-border);border-radius:calc(var(--radius-ui) - 4px);display:flex;flex-direction:column;gap:.56rem;min-width:0;padding:var(--space-md)}.chart-shell-header{display:grid;gap:.2rem}.chart-shell-title{color:var(--text);font-size:.92rem;margin:0}.chart-shell-subtitle{color:var(--muted);font-size:.79rem;margin:0}.chart-shell-body,.school-admin-chart-wrap{min-width:0}.school-admin-pilot-grid{display:grid;gap:.56rem;grid-template-columns:repeat(2,minmax(0,1fr))}.school-admin-pilot-grid p{color:var(--text);margin:0}.school-admin-engagement-grid{display:grid;gap:.68rem}.school-admin-heatmap-scroll,.school-admin-table-wrap{background:color-mix(in srgb,var(--panel) 95%,var(--accent) 5%);border:1px solid var(--panel-border);border-radius:calc(var(--radius-ui) - 4px);overflow:auto}.school-admin-heatmap-scroll .ui-table,.school-admin-table-wrap .ui-table{border-collapse:separate;border-spacing:0;min-width:700px;width:100%}.school-admin-heatmap-scroll .ui-table-head,.school-admin-table-wrap .ui-table-head{background:color-mix(in srgb,var(--panel) 92%,var(--accent) 8%);border-bottom:1px solid var(--panel-border);color:var(--text);font-size:.78rem;font-weight:600;letter-spacing:.03em;padding:.6rem .62rem;position:sticky;text-align:left;top:0;white-space:nowrap;z-index:1}.school-admin-heatmap-scroll .ui-table-cell,.school-admin-table-wrap .ui-table-cell{border-bottom:1px solid color-mix(in srgb,var(--panel-border) 72%,transparent);color:var(--text);font-size:.84rem;padding:.6rem .62rem;vertical-align:top}.school-admin-heatmap-scroll .ui-table-row:nth-child(2n) .ui-table-cell,.school-admin-table-wrap .ui-table-row:nth-child(2n) .ui-table-cell{background:color-mix(in srgb,var(--panel) 94%,var(--accent) 6%)}.school-admin-heatmap-scroll .ui-table-row:hover .ui-table-cell,.school-admin-table-wrap .ui-table-row:hover .ui-table-cell{background:color-mix(in srgb,var(--panel) 85%,var(--accent) 15%)}.school-admin-heat-cell{align-items:center;border-radius:.44rem;color:var(--text);display:inline-flex;font-size:.74rem;font-weight:700;height:1.55rem;justify-content:center;min-width:1.8rem}.school-admin-student-toolbar{align-items:end;display:grid;gap:.5rem;grid-template-columns:minmax(210px,2fr) repeat(3,minmax(150px,1fr)) auto auto auto}.school-admin-row-actions{display:flex;flex-wrap:wrap;gap:.44rem}.school-admin-details{background:color-mix(in srgb,var(--panel) 92%,var(--accent) 8%);border:1px solid var(--panel-border);border-radius:calc(var(--radius-ui) - 4px);margin-top:.56rem;overflow:hidden}.school-admin-details>summary{color:var(--text);cursor:pointer;font-size:.84rem;font-weight:700;list-style:none;padding:.52rem .62rem;user-select:none}.school-admin-details>summary::-webkit-details-marker{display:none}.school-admin-details-content{border-top:1px solid var(--panel-border);display:grid;gap:.58rem;padding:.62rem}.school-admin-checkbox-row{align-items:center;display:flex;gap:.42rem}.school-admin-inline-form{display:inline-flex}@media (max-width:1180px){.school-admin-chart-grid{grid-template-columns:1fr}.school-admin-student-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.school-admin-range-form{grid-template-columns:1fr 1fr}.school-admin-pilot-grid,.school-admin-summary-strip{grid-template-columns:1fr}.school-admin-heatmap-scroll .ui-table,.school-admin-table-wrap .ui-table{min-width:620px}}@media (max-width:640px){.school-admin-header-actions{display:grid;grid-template-columns:1fr}.school-admin-range-form,.school-admin-student-toolbar{grid-template-columns:1fr}.school-admin-heatmap-scroll .ui-table,.school-admin-table-wrap .ui-table{min-width:560px}.school-admin-heat-cell{min-width:1.58rem}}.study-streak-pill{position:relative;display:inline-flex;align-items:center;min-height:1.6rem;border:2px solid var(--panel-border);border-radius:999px;background:color-mix(in srgb,var(--panel) 88%,var(--accent) 12%);box-shadow:var(--shadow-sm);padding:.08rem .44rem .08rem .34rem;overflow:hidden;flex-shrink:0}.study-streak-pill:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 92% 8%,rgba(255,141,26,.25),transparent 42%),radial-gradient(circle at 8% 100%,color-mix(in srgb,var(--accent-strong) 44%,transparent),transparent 62%);opacity:.9}.study-streak-pill-muted:before{opacity:.52}.study-streak-head{position:relative;z-index:1;display:flex;align-items:center;gap:.26rem}.study-streak-fire{width:.98rem;height:.98rem;display:inline-flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 3px rgba(255,125,30,.45))}.study-streak-fire img{width:.82rem;height:.82rem}.study-streak-fire-muted{filter:grayscale(1) saturate(.1) brightness(.82)}.study-streak-count{margin:0;font-size:.79rem;font-weight:800;color:var(--text);line-height:1}.study-streak-count-animated{animation:study-streak-count-bump .32s var(--ease-snappy)}.study-streak-pill-reminders{position:fixed;top:50%;left:50%;min-height:3.6rem;border-width:3px;border-radius:999px;padding:.62rem 1rem;box-shadow:var(--shadow-lg);transform:translate(-50%,-50%) translate(var(--showcase-offset-x,0),var(--showcase-offset-y,0));transition:transform var(--showcase-move-ms,0ms) var(--ease-snappy),opacity .26s ease;z-index:34;pointer-events:none;opacity:var(--showcase-opacity,1)}.study-streak-pill-reminders .study-streak-head{gap:.52rem}.study-streak-pill-reminders .study-streak-fire{width:1.85rem;height:1.85rem;filter:drop-shadow(0 4px 10px rgba(255,125,30,.45))}.study-streak-pill-reminders .study-streak-fire img{width:1.56rem;height:1.56rem}.study-streak-pill-reminders .study-streak-count{font-size:2rem;letter-spacing:.01em}.study-streak-pill-gain{animation:study-streak-pop .46s var(--ease-snappy)}.study-streak-pill-break{animation:study-streak-break-shake .42s ease}@keyframes study-streak-pop{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes study-streak-count-bump{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-2px) scale(1.08)}to{transform:translateY(0) scale(1)}}@keyframes study-streak-break-shake{0%{transform:translateX(0) rotate(0deg);filter:saturate(1)}20%{transform:translateX(-3px) rotate(-1deg)}40%{transform:translateX(4px) rotate(1deg)}60%{transform:translateX(-2px) rotate(-.5deg)}80%{transform:translateX(2px) rotate(.5deg)}to{transform:translateX(0) rotate(0deg);filter:saturate(.86)}}@media (max-width:640px){.study-streak-pill-reminders{min-height:3.1rem;padding:.5rem .84rem}.study-streak-pill-reminders .study-streak-fire{width:1.54rem;height:1.54rem}.study-streak-pill-reminders .study-streak-fire img{width:1.34rem;height:1.34rem}.study-streak-pill-reminders .study-streak-count{font-size:1.62rem}}.streak-card{display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:1.25rem 1.5rem;background:var(--panel);border:1px solid var(--accent-border,var(--border-soft,#dde4ed));border-radius:calc(var(--radius-ui) + 2px);box-shadow:var(--shadow-sm);text-align:center}.streak-card-active{background:var(--gradient-panel-tinted,var(--panel));border-color:var(--accent-strong,#b9e8c5);box-shadow:var(--shadow-sm-colored,var(--shadow-sm))}.streak-card-hero{display:flex;flex-direction:column;align-items:center;gap:.2rem}.streak-card-flame{display:inline-flex;align-items:center;justify-content:center;filter:drop-shadow(0 4px 10px rgba(255,125,30,.5));transition:filter .2s}.streak-card-flame-muted{filter:grayscale(1) saturate(.1) brightness(.82)}.streak-card-count{margin:0;font-size:3rem;font-weight:800;line-height:1;color:var(--text);letter-spacing:-.02em}.streak-card-label{margin:0;font-size:var(--text-sm,.875rem);color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.08em}.streak-card-calendar{display:flex;gap:.5rem;align-items:flex-end}.streak-day{display:flex;flex-direction:column;align-items:center;gap:.3rem}.streak-day-label{font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;line-height:1}.streak-dot{width:1.1rem;height:1.1rem;border-radius:50%;display:block;border:2px solid transparent;transition:background .15s,border-color .15s}.streak-dot-done{background:var(--accent-strong,#b9e8c5);border-color:var(--status-text,#124128)}.streak-dot-today-done{background:var(--status-text,#124128);border-color:var(--status-text,#124128);box-shadow:0 0 0 3px var(--accent-strong,#b9e8c5)}.streak-dot-today{background:transparent;border-color:var(--status-text,#124128);box-shadow:0 0 0 3px var(--accent,#d8f1de)}.streak-dot-missed{background:var(--panel-muted,#f4f7fb);border-color:var(--border-soft,#dde4ed)}.streak-dot-future{background:transparent;border-color:color-mix(in srgb,var(--border-soft,#dde4ed) 60%,transparent);opacity:.45}.streak-card-motivational{line-height:var(--leading-normal,1.5);max-width:28rem}.streak-card-freezes,.streak-card-motivational{margin:0;font-size:var(--text-sm,.875rem);color:var(--muted)}.streak-card-freezes{font-weight:500}.milestone-overlay{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .3s}.milestone-overlay,.milestone-overlay-enter{background:transparent}.milestone-overlay-visible{background:rgba(0,0,0,.45)}.milestone-overlay-exit{background:transparent;pointer-events:none}.milestone-card{background:var(--panel);border:2px solid var(--accent-strong,#b9e8c5);border-radius:calc(var(--radius-ui) + 4px);padding:2.5rem 3rem;text-align:center;box-shadow:var(--shadow-lg);transform:scale(.85);opacity:0;transition:transform .35s var(--ease-snappy,cubic-bezier(.2,.9,.26,1)),opacity .35s ease;max-width:28rem;width:calc(100vw - 3rem)}.milestone-overlay-visible .milestone-card{transform:scale(1);opacity:1}.milestone-overlay-exit .milestone-card{transform:scale(.95);opacity:0}.milestone-flame{margin:0 0 .5rem;font-size:3rem;line-height:1}.milestone-text{margin:0 0 .6rem;font-size:var(--text-xl,1.25rem);font-weight:800;color:var(--text);line-height:var(--leading-tight,1.25)}.milestone-sub{margin:0;color:var(--muted)}.freeze-toast,.milestone-sub{font-size:var(--text-sm,.875rem)}.freeze-toast{position:fixed;bottom:5rem;left:50%;transform:translateX(-50%);z-index:9997;background:var(--panel);border:1.5px solid #4f8cf5;border-radius:calc(var(--radius-ui) + 6px);padding:.7rem 1.2rem;font-weight:500;color:var(--text);box-shadow:var(--shadow-md);white-space:nowrap;cursor:pointer;animation:freeze-toast-in .25s var(--ease-snappy,cubic-bezier(.2,.9,.26,1))}@keyframes freeze-toast-in{0%{opacity:0;transform:translateX(-50%) translateY(.75rem)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:480px){.streak-card-count{font-size:2.4rem}.streak-dot{width:.95rem;height:.95rem}.milestone-card{padding:2rem 1.5rem}}.sync-progress{margin-top:var(--space-lg);padding:var(--space-lg);background:var(--panel);box-shadow:var(--shadow-sm)}.sync-progress,.sync-progress-bar{border:2px solid var(--panel-border);border-radius:var(--radius-ui)}.sync-progress-bar{width:100%;height:12px;background:var(--control-bg);overflow:hidden;margin-bottom:var(--space-md)}.sync-progress-fill{height:100%;background:var(--gradient-accent-soft);transition:width .3s var(--ease-smooth);border-radius:var(--radius-ui);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 20%,transparent)}.sync-progress-info{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg)}.sync-progress-label{font-size:.875rem;color:var(--text);margin:0;line-height:1.5}.sync-progress-percentage{font-size:.875rem;font-weight:700;color:var(--status-text);margin:0;min-width:3.5rem;text-align:right}.app-tutorial-layer{z-index:9800}.app-tutorial-blocker,.app-tutorial-layer{position:fixed;inset:0;pointer-events:none}.app-tutorial-blocker{background:rgba(6,10,20,.66);backdrop-filter:blur(1.5px);z-index:9801}.app-tutorial-spotlight{position:fixed;border-radius:14px;border:2px solid color-mix(in srgb,var(--accent) 84%,#fff 16%);box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.34),0 22px 48px rgba(3,8,20,.52);transition:top .24s var(--ease-smooth),left .24s var(--ease-smooth),width .24s var(--ease-smooth),height .24s var(--ease-smooth),box-shadow .24s var(--ease-smooth);pointer-events:none;z-index:9802}.app-tutorial-focus-target{position:relative!important;z-index:9803!important}.app-tutorial-card{position:fixed;width:min(360px,calc(100vw - 24px));border-radius:var(--radius-ui);border:2px solid var(--panel-border);background:color-mix(in srgb,var(--panel) 93%,#fff 7%);box-shadow:var(--shadow-lg);padding:.85rem .95rem;display:grid;gap:.42rem;pointer-events:auto;z-index:9804;transition:top .24s var(--ease-smooth),left .24s var(--ease-smooth)}.app-tutorial-step{margin:0;font-size:.75rem;color:var(--todo-muted);letter-spacing:.03em}.app-tutorial-title{margin:0;font-size:1rem;color:var(--text)}.app-tutorial-copy{margin:0;font-size:.88rem;color:var(--text);line-height:1.45}.app-tutorial-instruction{margin:0;font-size:.76rem;color:var(--todo-muted)}.app-tutorial-actions{display:flex;gap:.46rem;justify-content:flex-end}.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:9900;display:flex;align-items:center;gap:var(--space-lg);padding:.85rem var(--space-2xl);background:var(--primary);border-top:2px solid var(--panel-border);backdrop-filter:blur(14px);box-shadow:0 -6px 24px rgba(0,0,0,.18);animation:slide-up .26s var(--ease-smooth) both}@media (max-width:600px){.cookie-banner{flex-direction:column;align-items:flex-start;padding:.85rem var(--space-lg)}}.cookie-banner-text{margin:0;font-size:.88rem;line-height:1.5;color:var(--primary-foreground);flex:1}.cookie-banner .cookie-banner-btn{flex-shrink:0;white-space:nowrap;background:var(--panel);color:var(--primary);border-color:var(--panel)}.cookie-banner .cookie-banner-btn:hover:not(:disabled){background:var(--panel-muted)}.gc-reminders-btn{display:inline-flex;align-items:center;gap:.45rem}.gc-reminders-btn-icon{width:16px;height:16px;flex-shrink:0}.gc-reminders-btn-label{font-size:.88rem}.gc-reminders-overlay{position:fixed;inset:0;z-index:9000;display:flex;align-items:flex-start;justify-content:center;padding:3.5rem 1rem 1rem}.gc-reminders-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:-1}.gc-reminders-panel{background:var(--panel);border:1.5px solid var(--panel-border);border-radius:var(--radius-ui);width:100%;max-width:520px;max-height:calc(100vh - 5rem);display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.22);overflow:hidden}.gc-reminders-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem .6rem;border-bottom:1px solid color-mix(in srgb,var(--panel-border) 35%,transparent);flex-shrink:0}.gc-reminders-header-title{display:flex;align-items:center;gap:.5rem}.gc-reminders-header-icon{width:18px;height:18px;flex-shrink:0;color:var(--accent)}.gc-reminders-title{font-size:1rem;font-weight:700;margin:0;color:var(--primary)}.gc-reminders-header-actions{display:flex;align-items:center;gap:.35rem}.gc-reminders-close-btn,.gc-reminders-refresh-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius-ui);cursor:pointer;color:var(--muted-foreground);transition:background .16s,color .16s;padding:0}.gc-reminders-close-btn:hover,.gc-reminders-refresh-btn:hover{background:var(--panel-muted);color:var(--primary)}.gc-reminders-subtitle{font-size:.82rem;color:var(--muted-foreground);margin:0;padding:.45rem 1.1rem .5rem;flex-shrink:0}.gc-reminders-body{flex:1;overflow-y:auto;padding:.5rem .6rem 1rem}.gc-reminders-loading{display:flex;align-items:center;gap:.55rem;padding:1.2rem .5rem;font-size:.9rem;color:var(--muted-foreground)}.gc-reminders-spinner{display:inline-block;width:16px;height:16px;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);border-radius:50%;animation:gc-spin .7s linear infinite;flex-shrink:0}@keyframes gc-spin{to{transform:rotate(1turn)}}.gc-reminders-error{padding:1rem .5rem;font-size:.88rem;color:var(--muted-foreground);display:flex;flex-direction:column;gap:.7rem}.gc-reminders-retry-btn{align-self:flex-start;background:none;border:1.5px solid var(--panel-border);border-radius:var(--radius-ui);padding:.3rem .75rem;font-size:.83rem;font-weight:600;cursor:pointer;color:var(--primary);transition:background .16s}.gc-reminders-retry-btn:hover{background:var(--panel-muted)}.gc-reminders-empty{padding:1.4rem .5rem;font-size:.9rem;color:var(--muted-foreground);text-align:center}.gc-reminders-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.gc-reminders-item{background:var(--panel-muted);border:1px solid color-mix(in srgb,var(--panel-border) 25%,transparent);border-radius:calc(var(--radius-ui) - 2px);padding:.6rem .8rem;display:flex;flex-direction:column;gap:.2rem;transition:border-color .16s}.gc-reminders-item:hover{border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.gc-reminders-item-overdue{border-color:color-mix(in srgb,#ef4444 35%,transparent);background:color-mix(in srgb,#ef4444 5%,var(--panel-muted))}.gc-reminders-item-urgent{border-color:color-mix(in srgb,#f59e0b 35%,transparent);background:color-mix(in srgb,#f59e0b 5%,var(--panel-muted))}.gc-reminders-item-course{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,var(--text) 92%,#000 8%);background:color-mix(in srgb,var(--panel) 86%,var(--text) 14%);border:1px solid color-mix(in srgb,var(--text) 20%,transparent);border-radius:999px;display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:.12rem .45rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gc-reminders-item-title{font-size:.9rem;font-weight:600;color:var(--primary);line-height:1.35}.gc-reminders-item-link{color:inherit;text-decoration:none}.gc-reminders-item-link:hover{text-decoration:underline}.gc-reminders-item-due{font-size:.78rem;color:var(--muted-foreground);margin-top:.05rem}.gc-reminders-item-due-overdue{color:#ef4444;font-weight:600}.gc-reminders-item-due-urgent{color:#d97706;font-weight:600}:root[data-device=mobile] .gc-reminders-overlay{padding:0;align-items:flex-end}:root[data-device=mobile] .gc-reminders-panel{max-width:100%;max-height:82vh;border-bottom-left-radius:0;border-bottom-right-radius:0}.survey-overlay{position:fixed;inset:0;z-index:9100;display:flex;align-items:center;justify-content:center;padding:1rem}.survey-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:-1}.survey-panel{background:var(--panel);border:1.5px solid var(--panel-border);border-radius:var(--radius-ui);width:100%;max-width:440px;box-shadow:0 16px 48px rgba(0,0,0,.24);display:flex;flex-direction:column;overflow:hidden}.survey-header{padding:1.2rem 1.3rem .85rem;border-bottom:1px solid color-mix(in srgb,var(--panel-border) 30%,transparent)}.survey-title{font-size:1.15rem;font-weight:800;margin:0 0 .28rem;color:var(--text)}.survey-subtitle{font-size:.88rem;color:var(--muted);margin:0}.survey-body{padding:1.1rem 1.3rem;gap:1.25rem}.survey-body,.survey-question{display:flex;flex-direction:column}.survey-question{gap:.75rem}.survey-question-text{font-size:.93rem;font-weight:600;color:var(--text);margin:0}.survey-emoji-scale{display:flex;gap:.5rem;justify-content:space-between}.survey-emoji-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:var(--panel-muted);border:1.5px solid transparent;border-radius:var(--radius-sm);cursor:pointer;flex:1;min-width:0;padding:.55rem .35rem;transition:background .15s,border-color .15s,transform .12s}.survey-emoji-btn:hover{background:color-mix(in srgb,var(--accent) 25%,var(--panel-muted));transform:translateY(-1px)}.survey-emoji-btn-selected{background:color-mix(in srgb,var(--accent-strong) 40%,var(--panel));border-color:color-mix(in srgb,var(--accent-strong) 70%,var(--panel-border))}.survey-emoji{font-size:1.45rem;line-height:1}.survey-emoji-label{font-size:.72rem;color:var(--muted);font-weight:600}.survey-options{display:flex;flex-direction:column;gap:.5rem}.survey-option-btn{background:var(--panel-muted);border:1.5px solid transparent;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:.9rem;padding:.65rem .9rem;text-align:left;transition:background .15s,border-color .15s}.survey-option-btn:hover{background:color-mix(in srgb,var(--accent) 20%,var(--panel-muted))}.survey-option-btn-selected{background:color-mix(in srgb,var(--accent-strong) 40%,var(--panel));border-color:color-mix(in srgb,var(--accent-strong) 70%,var(--panel-border))}.survey-error{color:var(--error-text);background:var(--error-bg);border-radius:var(--radius-sm);font-size:.85rem;margin:0;padding:.55rem .75rem}.survey-footer{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;padding:.9rem 1.3rem 1.1rem;border-top:1px solid color-mix(in srgb,var(--panel-border) 30%,transparent)}:root[data-device=mobile] .survey-overlay{align-items:flex-end;padding:0}:root[data-device=mobile] .survey-panel{max-width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0}.outcomes-section{display:flex;flex-direction:column;gap:1rem}.outcomes-error,.outcomes-loading{color:var(--muted);font-size:.9rem;padding:1rem 0}.outcomes-error{color:var(--error-text)}.outcomes-table-controls{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem;flex-wrap:wrap}.outcomes-search{background:var(--panel-muted);border:1.5px solid var(--panel-border);border-radius:var(--radius-sm);color:var(--text);font-size:.88rem;padding:.42rem .7rem;flex:1;min-width:180px;max-width:320px;transition:border-color .15s}.outcomes-search:focus{border-color:var(--accent-strong);outline:none}.outcomes-count{color:var(--muted);font-size:.83rem}.outcomes-table-wrap{overflow-x:auto}.outcomes-table{border-collapse:collapse;font-size:.85rem;min-width:720px;width:100%}.outcomes-table th{color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.05em;padding:.4rem .7rem;text-align:left;text-transform:uppercase;white-space:nowrap;border-bottom:1.5px solid color-mix(in srgb,var(--panel-border) 40%,transparent)}.outcomes-table td{border-bottom:1px solid color-mix(in srgb,var(--panel-border) 20%,transparent);color:var(--text);padding:.55rem .7rem;vertical-align:middle}.outcomes-table-row:hover td{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.outcomes-email{color:var(--muted);font-size:.83rem}.outcomes-plan{font-size:.8rem;font-weight:700;text-transform:capitalize}.outcomes-trend-up{color:#14532d;font-weight:700}.outcomes-trend-down{color:#b3261e;font-weight:700}.outcomes-expanded-row td{background:var(--panel-muted);padding:.6rem 1rem}.outcomes-sparkline-row{display:flex;align-items:center;gap:1rem}.outcomes-sparkline-label{color:var(--muted);font-size:.82rem;white-space:nowrap}.outcomes-sparkline-empty{color:var(--muted);font-size:.8rem;font-style:italic}.outcomes-empty{color:var(--muted);font-size:.88rem;padding:1rem .7rem;text-align:center}.school-access-banner{position:sticky;top:0;left:0;right:0;z-index:9800;padding:.65rem var(--space-2xl);background:var(--warning,#f59e0b);border-bottom:2px solid rgba(0,0,0,.12);box-shadow:0 2px 12px rgba(0,0,0,.14)}@media (max-width:600px){.school-access-banner{padding:.65rem var(--space-lg)}}.school-access-banner-text{margin:0;font-size:.88rem;line-height:1.5;color:#1a1a1a;font-weight:500}.school-access-banner-resend{background:none;border:none;padding:0;font:inherit;font-size:.88rem;font-weight:600;color:#1a1a1a;text-decoration:underline;cursor:pointer;opacity:.85;transition:opacity .15s}.school-access-banner-resend:hover:not(:disabled){opacity:1}.school-access-banner-resend:disabled{cursor:not-allowed;opacity:.5}.school-access-banner-feedback{margin:.3rem 0 0;font-size:.82rem}.school-access-banner-feedback--success{color:#15803d}.school-access-banner-feedback--error{color:#b91c1c}.assignment-count-widget{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:.5rem}.assignment-count-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.75rem .5rem;border-radius:var(--radius-card);border:1.5px solid var(--border);background:var(--panel);cursor:default;transition:transform .14s var(--ease-snappy),box-shadow .14s var(--ease-smooth);text-align:center}.assignment-count-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent-strong) 12%,transparent)}.assignment-count-card--overdue{border-color:color-mix(in srgb,#ef4444 35%,var(--border));background:color-mix(in srgb,#ef4444 6%,var(--panel))}.assignment-count-card--today{border-color:color-mix(in srgb,#f97316 35%,var(--border));background:color-mix(in srgb,#f97316 6%,var(--panel))}.assignment-count-card--week{border-color:color-mix(in srgb,var(--accent-strong) 35%,var(--border));background:color-mix(in srgb,var(--accent-strong) 6%,var(--panel))}.assignment-count-number{font-size:1.9rem;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--text)}.assignment-count-card--overdue .assignment-count-number{color:#ef4444}.assignment-count-card--today .assignment-count-number{color:#f97316}.assignment-count-card--week .assignment-count-number{color:var(--accent-strong)}.assignment-count-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.dashboard-week-glance{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}.dashboard-week-day{display:grid;gap:.25rem;align-content:center;justify-items:center;min-height:3.4rem;padding:.45rem .35rem;border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--panel);text-decoration:none}.dashboard-week-day-label{color:var(--muted);font-size:.74rem;font-weight:600}.dashboard-week-dots{font-size:.8rem;letter-spacing:.1em;line-height:1}.dashboard-week-dots-overdue{color:#ef4444}.dashboard-week-dots-today{color:#f97316}.dashboard-week-dots-future{color:#3b82f6}.dashboard-week-dots-empty{color:var(--muted)}.dashboard-week-legend{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:.75rem;font-size:.78rem;color:var(--muted)}.dashboard-week-legend-item{display:flex;align-items:center;gap:.3rem}.dashboard-quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.assignment-status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .45rem;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;white-space:nowrap}.assignment-status-badge--overdue{background:color-mix(in srgb,#ef4444 15%,transparent);color:#dc2626;border:1px solid color-mix(in srgb,#ef4444 30%,transparent)}.assignment-status-badge--today{background:color-mix(in srgb,#f97316 15%,transparent);color:#ea580c;border:1px solid color-mix(in srgb,#f97316 30%,transparent)}.assignment-status-badge--tomorrow{background:color-mix(in srgb,#eab308 15%,transparent);color:#ca8a04;border:1px solid color-mix(in srgb,#eab308 30%,transparent)}.assignment-status-badge--upcoming{background:color-mix(in srgb,var(--accent-strong) 12%,transparent);color:var(--status-text);border:1px solid color-mix(in srgb,var(--accent-strong) 25%,transparent)}.assignment-status-badge--done{background:color-mix(in srgb,#22c55e 12%,transparent);color:#16a34a;border:1px solid color-mix(in srgb,#22c55e 25%,transparent)}.assignment-status-badge--assignment-due{background:color-mix(in srgb,#8b5cf6 15%,transparent);color:#7c3aed;border:1px solid color-mix(in srgb,#8b5cf6 30%,transparent)}.todo-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.15rem}.course-color-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-right:2px;vertical-align:middle}.course-color-picker-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.course-color-swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2.5px solid transparent;transition:transform .12s var(--ease-snappy),border-color .12s;flex-shrink:0}.course-color-swatch:hover{transform:scale(1.18)}.course-color-swatch--active{border-color:var(--text)!important;transform:scale(1.12)}.course-color-panel{padding:.75rem;border:1.5px solid var(--border);border-radius:var(--radius-card);background:var(--bg);margin-top:.5rem}.course-color-panel-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.5rem}.course-color-course-row{display:flex;align-items:center;gap:.6rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.course-color-course-row:last-child{border-bottom:none}.course-color-course-name{font-size:.8rem;flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-sort-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}.todo-sort-label{font-size:.75rem}.todo-sort-label,.todo-sort-pill{font-weight:600;color:var(--muted);white-space:nowrap}.todo-sort-pill{padding:.2rem .6rem;border-radius:999px;font-size:.72rem;border:1.5px solid var(--border);background:transparent;cursor:pointer;transition:all .12s var(--ease-snappy)}.todo-sort-pill--active,.todo-sort-pill:hover{border-color:var(--accent-strong);color:var(--status-text)}.todo-sort-pill--active{background:var(--accent-strong)}.focus-mode-overlay{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;overflow-y:auto}.focus-mode-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1.5px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:10}.focus-mode-title{font-size:1rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.focus-mode-subtitle{font-size:.75rem;color:var(--muted);margin-top:.1rem}.focus-mode-exit-btn{font-size:.78rem;font-weight:600;padding:.35rem .85rem;border-radius:999px;border:1.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all .14s var(--ease-snappy);white-space:nowrap}.focus-mode-exit-btn:hover{background:var(--accent-strong);color:var(--status-text);border-color:var(--accent-strong)}.focus-mode-body{flex:1;padding:1.5rem;max-width:680px;width:100%;margin:0 auto}.focus-mode-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:.6rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.focus-mode-empty{text-align:center;padding:3rem 1rem;color:var(--muted)}.focus-mode-empty-icon{font-size:2.5rem;margin-bottom:.75rem;display:block;opacity:.5}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1.5rem;text-align:center;gap:.75rem}.empty-state-icon{width:72px;height:72px;color:var(--muted);opacity:.45}.empty-state-title{font-size:1rem;font-weight:700;color:var(--text);margin:0}.empty-state-body{font-size:.85rem;color:var(--muted);max-width:280px;line-height:1.5;margin:0}.empty-state-action{margin-top:.25rem}.grade-forecast-panel{display:flex;flex-direction:column;gap:1rem}.grade-forecast-intro{font-size:.85rem;color:var(--muted);line-height:1.5}.grade-forecast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.grade-forecast-card{padding:.9rem 1rem;border-radius:var(--radius-card);border:1.5px solid var(--border);background:var(--panel);display:flex;flex-direction:column;gap:.3rem}.grade-forecast-course-name{font-size:.78rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-forecast-current{font-size:.72rem;color:var(--muted)}.grade-forecast-arrow{font-size:.8rem;color:var(--muted);text-align:center}.grade-forecast-predicted{display:flex;align-items:center;gap:.4rem}.grade-forecast-predicted-pct{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;line-height:1}.grade-forecast-predicted-letter{font-size:.85rem;font-weight:700;padding:.1rem .4rem;border-radius:6px}.grade-forecast-trend{font-size:.7rem;color:var(--muted);display:flex;align-items:center;gap:.25rem}.grade-forecast-trend--up{color:#16a34a}.grade-forecast-trend--down{color:#dc2626}.grade-forecast-trend--stable{color:var(--muted)}.grade-forecast-card--at-risk{border-color:color-mix(in srgb,#ef4444 35%,var(--border));background:color-mix(in srgb,#ef4444 5%,var(--panel))}.grade-forecast-card--strong{border-color:color-mix(in srgb,#22c55e 35%,var(--border));background:color-mix(in srgb,#22c55e 5%,var(--panel))}.grade-forecast-summary{padding:.75rem 1rem;border-radius:var(--radius-card);background:var(--bg);border:1.5px solid var(--border);font-size:.82rem;color:var(--muted);line-height:1.6}.grade-forecast-summary strong{color:var(--text)}.study-schedule-panel{display:flex;flex-direction:column;gap:.75rem}.study-schedule-controls{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.study-schedule-select{font-size:.8rem;padding:.3rem .6rem;border-radius:8px;border:1.5px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer}.study-schedule-day{border:1.5px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.study-schedule-day-header{padding:.5rem .85rem;background:var(--bg);display:flex;align-items:center;justify-content:space-between}.study-schedule-day-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text)}.study-schedule-day-count{font-size:.7rem;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.1rem .45rem;font-weight:600}.study-schedule-block{padding:.6rem .85rem;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:.6rem}.study-schedule-block:last-child{border-bottom:none}.study-schedule-block-time{font-size:.68rem;font-weight:700;color:var(--muted);white-space:nowrap;padding-top:.12rem;min-width:56px;text-transform:uppercase;letter-spacing:.04em}.study-schedule-block-info{flex:1;min-width:0}.study-schedule-block-title{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-schedule-block-course{font-size:.72rem;color:var(--muted);margin-top:.1rem}.study-schedule-block-duration{font-size:.7rem;font-weight:700;color:var(--status-text);background:color-mix(in srgb,var(--accent-strong) 12%,transparent);border-radius:999px;padding:.1rem .5rem;white-space:nowrap;flex-shrink:0;align-self:flex-start;margin-top:.12rem}.study-schedule-priority-high .study-schedule-block-duration{color:#dc2626;background:color-mix(in srgb,#ef4444 12%,transparent)}.study-schedule-priority-medium .study-schedule-block-duration{color:#ea580c;background:color-mix(in srgb,#f97316 12%,transparent)}.study-schedule-empty{font-size:.82rem;color:var(--muted);padding:.75rem .85rem}.offline-banner{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background:color-mix(in srgb,#f97316 12%,var(--panel));border:1.5px solid color-mix(in srgb,#f97316 35%,var(--border));border-radius:var(--radius-card);font-size:.82rem;color:var(--text);margin-bottom:.5rem;animation:fade-in .22s var(--ease-smooth)}.offline-banner-icon{font-size:1rem;flex-shrink:0}.offline-banner-text{flex:1;line-height:1.4}.offline-banner-text strong{color:#ea580c}.app-topbar-status--offline{background:color-mix(in srgb,#f97316 18%,var(--panel))!important;border-color:color-mix(in srgb,#f97316 45%,transparent)!important;color:#ea580c!important}.app-topbar-status--syncing{animation:sync-pulse 1.4s ease-in-out infinite}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.55}}.app-topbar-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:4px;vertical-align:middle;position:relative;top:-1px}.global-search-trigger{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .65rem;border-radius:999px;border:1.5px solid var(--border);background:var(--bg);color:var(--muted);font-size:.75rem;cursor:pointer;transition:all .14s var(--ease-snappy);font-weight:600}.global-search-trigger:hover{border-color:var(--accent-strong);color:var(--status-text);background:color-mix(in srgb,var(--accent-strong) 6%,var(--bg))}.global-search-trigger-icon{width:14px;height:14px;flex-shrink:0}.global-search-overlay{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;padding-top:12vh;padding-bottom:2rem;background:color-mix(in srgb,var(--text) 45%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fade-in .18s var(--ease-smooth)}.global-search-modal{width:100%;max-width:580px;background:var(--panel);border-radius:var(--radius-card);border:1.5px solid var(--border);box-shadow:0 20px 60px color-mix(in srgb,var(--text) 20%,transparent);display:flex;flex-direction:column;overflow:hidden;max-height:70vh;margin:0 1rem}.global-search-input-row{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-bottom:1.5px solid var(--border)}.global-search-input-icon{width:18px;height:18px;color:var(--muted);flex-shrink:0}.global-search-input{flex:1;font-size:1rem;border:none;background:transparent;color:var(--text);outline:none;caret-color:var(--accent-strong)}.global-search-input::placeholder{color:var(--muted)}.global-search-close-btn{font-size:.72rem;padding:.2rem .55rem;border-radius:999px;border:1.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-weight:600;transition:all .12s;white-space:nowrap}.global-search-close-btn:hover{color:var(--text);border-color:var(--text)}.global-search-results{flex:1;overflow-y:auto;padding:.5rem 0}.global-search-empty{padding:2rem 1rem;text-align:center;color:var(--muted);font-size:.85rem}.global-search-result-item{display:flex;align-items:flex-start;gap:.75rem;padding:.7rem 1rem;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border)}.global-search-result-item:last-child{border-bottom:none}.global-search-result-item--focused,.global-search-result-item:hover{background:color-mix(in srgb,var(--accent-strong) 8%,var(--panel))}.global-search-result-icon{width:18px;height:18px;flex-shrink:0;margin-top:2px;color:var(--muted)}.global-search-result-main{flex:1;min-width:0}.global-search-result-title{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-search-result-meta{font-size:.72rem;color:var(--muted);margin-top:.1rem}.global-search-result-badge{flex-shrink:0;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.global-search-hint{padding:.5rem 1rem;font-size:.7rem;color:var(--muted);border-top:1px solid var(--border);display:flex;gap:1rem}.global-search-hint kbd{font-size:.65rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.05rem .3rem;color:var(--text);font-family:inherit;font-weight:600}:root[data-layout-theme=sidebar]{--radius-ui:0px;--radius-logo:3px;--sidebar-width:212px;--sidebar-header-height:58px;--surface-hover-shift-x:0px;--surface-hover-shift-y:0px;--surface-hover-shadow:var(--shadow-sm);--item-hover-shift-x:0px;--item-hover-shift-y:0px;--item-hover-shadow:none;--hero-hover-shift-x:0px;--hero-hover-shift-y:0px;--hero-hover-shadow:none;--button-shadow:none;--button-hover-shift-x:0px;--button-hover-shift-y:0px;--nav-link-hover-shift-y:0px}:root[data-layout-theme=sidebar] .app-topbar{position:fixed;left:0;top:0;width:var(--sidebar-width);min-height:var(--sidebar-header-height);height:var(--sidebar-header-height);border-bottom:2px solid var(--topbar-border);border-right:2px solid var(--topbar-border);border-radius:0;padding:0 .85rem;flex-direction:row;align-items:center;justify-content:flex-start;z-index:61;animation:none;overflow:visible}:root[data-layout-theme=sidebar] .app-topbar-brand-wrap{flex-direction:column;align-items:flex-start;gap:.1rem;min-width:0;max-width:100%;overflow:hidden}:root[data-layout-theme=sidebar] .app-topbar-brand{min-width:0;max-width:100%;overflow:hidden}:root[data-layout-theme=sidebar] .app-topbar-title,:root[data-layout-theme=sidebar] .app-topbar-version-link{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}:root[data-layout-theme=sidebar] .app-topbar-version-link{font-size:.72rem}:root[data-layout-theme=sidebar] .app-topbar-actions{display:none}:root[data-layout-theme=sidebar] .bottom-nav{position:fixed;left:0;top:var(--sidebar-header-height);bottom:0;right:auto;width:var(--sidebar-width);height:auto;border-top:none;border-right:2px solid var(--bottom-nav-border);border-radius:0;background:var(--bottom-nav-bg);backdrop-filter:blur(14px);display:flex!important;flex-direction:column;align-items:stretch;gap:0;padding:.5rem .5rem 1rem;box-shadow:none;z-index:60;animation:sidebar-nav-in .26s var(--ease-smooth) both}:root[data-layout-theme=sidebar] .bottom-nav-link{min-height:40px;flex:0 0 auto;text-align:left;writing-mode:horizontal-tb;transform:none;letter-spacing:.02em;font-size:.82rem;font-weight:700;text-transform:uppercase;padding:.55rem .75rem;border-radius:0;justify-content:flex-start;border-right:none;border-bottom:none;position:relative;overflow:hidden}:root[data-layout-theme=sidebar] .bottom-nav-link:before{top:0;bottom:0;left:0;right:auto;width:3px;height:100%;transform:scaleY(0);transform-origin:center;border-radius:0}:root[data-layout-theme=sidebar] .bottom-nav-link-active:before,:root[data-layout-theme=sidebar] .bottom-nav-link[aria-current=page]:before{transform:scaleY(1)}:root[data-layout-theme=sidebar] .bottom-nav-link:after{top:0;bottom:0;left:0;right:auto;width:3px;height:100%;transform:scaleY(0);transform-origin:center;border-radius:0}:root[data-layout-theme=sidebar] .bottom-nav-link-active:after{transform:scaleY(1)}:root[data-layout-theme=sidebar] .bottom-nav-link:last-child{border-right:none}:root[data-layout-theme=sidebar] .bottom-nav-reminder-badge{position:static;margin-left:auto}:root[data-layout-theme=sidebar] .auth-shell,:root[data-layout-theme=sidebar] .home-shell,:root[data-layout-theme=sidebar] .landing-shell{margin-left:var(--sidebar-width);margin-right:0;max-width:none;width:auto;padding:1.5rem 1.5rem 2.5rem;animation:sidebar-page-in .3s var(--ease-smooth) both}:root[data-layout-theme=sidebar] .panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}:root[data-layout-theme=sidebar] .panel-grid>.panel.panel-full{grid-column:1/-1}:root[data-layout-theme=sidebar] .panel{border-radius:0;border-width:2px;animation-name:sidebar-panel-in;animation-duration:.24s}:root[data-layout-theme=sidebar] .panel:hover{transform:none;box-shadow:inset 0 0 0 2px var(--accent-strong);z-index:1}:root[data-layout-theme=sidebar] .panel:after,:root[data-layout-theme=sidebar] .panel:before{display:none}:root[data-layout-theme=sidebar] .hero-card,:root[data-layout-theme=sidebar] .landing-hero{border-radius:0;margin-bottom:0}@keyframes sidebar-nav-in{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}@keyframes sidebar-page-in{0%{opacity:0;transform:translateX(6px)}to{opacity:1;transform:translateX(0)}}@keyframes sidebar-panel-in{0%{opacity:0}to{opacity:1}}@media (max-width:767px){:root[data-layout-theme=sidebar] .app-topbar{position:sticky;top:0;left:auto;width:auto;min-height:58px;height:auto;border-right:none;border-bottom:2px solid var(--topbar-border);padding:.55rem .9rem;flex-direction:row;animation:notice-in .22s var(--ease-smooth) both}:root[data-layout-theme=sidebar] .app-topbar-actions{display:inline-flex}:root[data-layout-theme=sidebar] .bottom-nav{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:auto;border-right:none;border-top:2px solid var(--bottom-nav-border);display:grid!important;flex-direction:unset;padding:0;box-shadow:0 -8px 24px rgba(0,0,0,.08)}:root[data-layout-theme=sidebar] .bottom-nav-link{min-height:58px;justify-content:center;text-align:center;font-size:.88rem;padding:0}:root[data-layout-theme=sidebar] .bottom-nav-link:after,:root[data-layout-theme=sidebar] .bottom-nav-link:before{top:0;bottom:auto;left:0;right:0;width:100%;height:3px;transform:scaleX(0);transform-origin:center}:root[data-layout-theme=sidebar] .bottom-nav-link-active:after,:root[data-layout-theme=sidebar] .bottom-nav-link-active:before,:root[data-layout-theme=sidebar] .bottom-nav-link[aria-current=page]:before{transform:scaleX(1)}:root[data-layout-theme=sidebar] .auth-shell,:root[data-layout-theme=sidebar] .home-shell,:root[data-layout-theme=sidebar] .landing-shell{margin-left:0;padding:2.25rem 1.25rem 7rem;max-width:1000px;margin-right:auto}:root[data-layout-theme=sidebar] .panel-grid{gap:1rem}:root[data-layout-theme=sidebar] .panel{margin:0}:root[data-layout-theme=sidebar] .bottom-nav-reminder-badge{position:absolute;margin-left:0}}.teacher-course-cards{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.teacher-course-card{background:var(--panel);border:2px solid var(--panel-border);border-radius:var(--radius-ui);box-shadow:var(--shadow-sm);color:var(--text);flex:1 1 220px;max-width:340px;min-width:180px;padding:.9rem 1rem;text-decoration:none;transition:transform .16s var(--ease-snappy)}.teacher-course-card:hover{transform:translate(var(--item-hover-shift-x),var(--item-hover-shift-y))}.teacher-course-card-active{background:var(--accent)}.teacher-course-card-name{font-size:.97rem;font-weight:700;margin:0 0 .5rem}.teacher-course-card-stats{color:var(--muted);display:flex;flex-wrap:wrap;font-size:.82rem;gap:.55rem}.teacher-at-risk-banner{align-items:center;background:var(--danger-bg);border:2px solid var(--danger-border);border-radius:var(--radius-ui);color:var(--danger-text);display:flex;flex-wrap:wrap;font-size:.9rem;gap:.75rem;justify-content:space-between;margin-bottom:1rem;padding:.72rem 1rem}.teacher-at-risk-banner-link{color:var(--danger-text);font-weight:700;text-decoration:underline;white-space:nowrap}.teacher-at-risk-banner-link:hover{opacity:.8}.teacher-filter-bar{align-items:center;color:var(--muted);display:flex;font-size:.88rem;gap:.75rem;margin-bottom:.75rem}.teacher-course-detail{margin-top:.5rem}.teacher-table-wrapper{overflow-x:auto}.teacher-table{border-collapse:collapse;font-size:.9rem;min-width:560px;width:100%}.teacher-th{background:var(--panel-muted);border:1px solid color-mix(in srgb,var(--panel-border) 30%,transparent);color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.06em;padding:.52rem .75rem;text-align:left;text-transform:uppercase}.teacher-tr{border-bottom:1px solid color-mix(in srgb,var(--panel-border) 20%,transparent)}.teacher-tr:last-child{border-bottom:none}.teacher-tr-at-risk{background:var(--danger-bg)}.teacher-td{color:var(--text);padding:.6rem .75rem;vertical-align:middle}.teacher-td-student{align-items:center;display:flex;gap:.55rem}.teacher-avatar{border-radius:50%;flex-shrink:0;height:32px;object-fit:cover;width:32px}.teacher-avatar-initials{align-items:center;background:var(--accent);color:var(--text);display:inline-flex;font-size:.72rem;font-weight:700;justify-content:center}.teacher-avatar-lg{height:64px;width:64px}.teacher-student-name{font-weight:600}.teacher-trend{border-radius:3px;font-size:.82rem;font-weight:700;padding:.15rem .35rem}.teacher-trend-up{background:var(--success-bg);color:var(--success-text)}.teacher-trend-down{background:var(--danger-bg);color:var(--danger-text)}.teacher-trend-flat{background:var(--panel-muted);color:var(--muted)}.teacher-trend-none{color:var(--muted)}.teacher-at-risk-badge{background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:3px;color:var(--danger-text)}.teacher-at-risk-badge,.teacher-ok-badge{font-size:.78rem;font-weight:700;padding:.15rem .4rem;white-space:nowrap}.teacher-ok-badge{background:var(--success-bg);border:1px solid color-mix(in srgb,var(--success-text) 30%,transparent);border-radius:3px;color:var(--success-text)}.teacher-streak{font-size:.9rem;font-weight:600}.teacher-empty{color:var(--muted);font-size:.92rem;padding:.75rem 0}.teacher-profile-grid{align-items:center;display:flex;gap:1rem;margin-top:.5rem}.teacher-profile-name{font-size:1.05rem;font-weight:700;margin:0}.teacher-profile-email{color:var(--muted);font-size:.9rem;margin:.2rem 0}.teacher-profile-meta{color:var(--muted);font-size:.8rem;margin:.2rem 0}.teacher-claims-list{display:flex;flex-direction:column;gap:.55rem;list-style:none;margin:0;padding:0}.teacher-claim-item{align-items:center;background:var(--panel-muted);border:1px solid color-mix(in srgb,var(--panel-border) 30%,transparent);border-radius:var(--radius-ui);display:flex;gap:.75rem;justify-content:space-between;padding:.6rem .75rem}.teacher-claim-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.teacher-claim-name{font-size:.92rem;font-weight:700}.teacher-claim-id,.teacher-claim-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-claim-id{color:var(--muted);font-size:.75rem}.teacher-unclaim-btn{flex-shrink:0}@media (max-width:760px){.teacher-course-card{max-width:100%}.teacher-table{font-size:.82rem}.teacher-profile-grid{align-items:flex-start;flex-direction:column}}