:root{--bg: #F5F1E8;--ink: #211C14;--muted: #5C5648;--faint: #6B6455;--bg-deep: #EFE8DA;--hairline: rgba(83,66,42,.13);--shadow-card: inset 0 1px 0 rgba(255,255,255,.72), 0 1px 2px rgba(64,48,22,.05), 0 12px 32px -12px rgba(64,48,22,.17);--on-mark: #1A1A1F;--mark: #FFDE5C;--mark-strip: #FFDE5C;--mark2: #bde8c4;--accent: var(--mark);--accent-ink: #B5790A;--coral: #EF4444;--coral-soft: #FCE7E7;--green: #16A34A;--green-soft: #E7F6EC;--amber: #D98A00;--amber-soft: #FBEFD3;--coral-ink: #B3372F;--amber-ink: #8A5A00;--green-ink: #157A38;--warn: #B4531F;--grade-good: var(--green);--grade-mid: var(--amber);--grade-low: var(--coral);--grade-good-soft: var(--green-soft);--grade-mid-soft: var(--amber-soft);--grade-low-soft: var(--coral-soft);--grade-good-ink: var(--green-ink);--grade-mid-ink: var(--amber-ink);--grade-low-ink: var(--coral-ink);--z-menu-scrim: 40;--z-chrome: 50;--z-buddy-scrim: 55;--z-buddy: 60;--z-appmenu-scrim: 70;--z-appmenu: 71;--z-popover-scrim: 90;--z-popover: 91;--z-hovercard: 92;--z-tooltip: 95;--z-nav-mobile: 100;--z-fullscreen: 150;--z-dialog: 200;--z-dialog-top: 210;--z-picker-scrim: 9100;--z-picker: 9101;--z-modal-scrim: 9500;--z-sysbar: 9000;--z-wizard: 9600;--z-toast: 9997;--z-consent: 9999;--surface: #FDFBF6;--surface2: #EDE6D9;--line: #E7DFD0;--shadow: 0 1px 2px rgba(74,58,32,.05), 0 12px 26px -18px rgba(74,58,32,.12);--shadow-sm: 0 1px 2px rgba(74,58,32,.05), 0 4px 10px -6px rgba(74,58,32,.08);--shadow-pop: 0 6px 16px rgba(74,58,32,.07), 0 26px 54px -28px rgba(74,58,32,.18);--shadow-modal: 0 24px 60px -14px rgba(60,46,24,.2);--shadow-hover: 0 6px 16px -6px rgba(74,58,32,.12), 0 2px 6px rgba(74,58,32,.06);--mark-glow: none;--tr: background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-spring), filter var(--dur-2) var(--ease-out), opacity var(--dur-2) var(--ease-out);--hover-wash: color-mix(in srgb, var(--ink) 6%, transparent);--press-wash: color-mix(in srgb, var(--ink) 12%, transparent);--press: .96;--lift: translateY(-2px);--r-xs: 6px;--r-sm: 9px;--r-md: 11px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--space-9: 64px;--fs-xs: 11.5px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 16.5px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 34px;--fs-display: clamp(30px, 4.2vw, 44px);--lh-tight: 1.12;--lh-snug: 1.3;--lh-normal: 1.5;--track-display: -.02em;--st-ruby: #D8465E;--st-tangerine: #E2703A;--st-emerald: #1FA36B;--st-teal: #1CA0AD;--st-sky: #3B82D6;--st-indigo: #5B5FE0;--st-orchid: #C24FA6;--st-plum: #8A5AB6;--cal-bg: #F7F2E7;--cal-line: rgba(120,96,54,.15);--cal-num: #6E5D42;--cal-label: #9A8763;--glass-bg: rgba(255,252,246,.62);--glass-border: 1px solid rgba(255,253,247,.82);--glass-blur: blur(26px) saturate(165%);--card-glass: rgba(255,250,242,.55);--card-blur: blur(26px) saturate(1.9) brightness(1.04);--card-sheen: linear-gradient(180deg, rgba(255,255,255,.32), rgba(255,255,255,0) 24%);--card-rim: inset 0 1.5px 1px rgba(255,255,255,.7), inset 0 0 0 1px rgba(255,255,255,.22), inset 0 -8px 16px -8px rgba(17,18,22,.05);--glass-shadow: 0 12px 32px rgba(74,58,32,.09), 0 2px 8px rgba(74,58,32,.06);--ease-spring: cubic-bezier(.2,.7,.2,1);--ease-out: cubic-bezier(.16,1,.3,1);--ease-bounce: cubic-bezier(.34,1.56,.64,1);--dur-instant: .09s;--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--dur-4: .5s;--rise: 8px;--pop-scale: 1.12;--blur-in: 6px;--shimmer: rgba(17,18,22,.05);--font-display: var(--font-body);--font-body: Outfit, system-ui, -apple-system, sans-serif;--ctl-h: 34px;--ctl-fill: var(--surface2);--ctl-fill-hover: color-mix(in srgb, var(--ink) 7%, var(--surface2));--ctl-radius: var(--r-pill)}[data-theme=dark]{--bg: #0C0D10;--ink: #E9EAEE;--muted: #A1A4AD;--faint: #6C6F79;--bg-deep: #08090B;--hairline: rgba(255,255,255,.09);--shadow-card: inset 0 1px 0 rgba(255,255,255,.05), 0 1px 2px rgba(0,0,0,.45), 0 12px 30px -14px rgba(0,0,0,.7);--on-mark: #1A1A1F;--mark: #FFDE5C;--mark-strip: rgba(255,222,92,.3);--mark2: #23402f;--accent: var(--mark);--accent-ink: #F2B43A;--coral: #FF6B5E;--coral-soft: #38211F;--green: #34D17F;--green-soft: #14291F;--amber: #FFB02E;--amber-soft: #2E2611;--coral-ink: #FF8A7E;--amber-ink: #FFC559;--green-ink: #5FD08F;--warn: #FF9466;--surface: #16181D;--surface2: #21242B;--line: #2A2E37;--cal-bg: var(--card-glass);--cal-line: var(--hairline);--cal-num: var(--muted);--cal-label: var(--faint);--shadow: 0 2px 6px rgba(0,0,0,.4), 0 18px 34px -20px rgba(0,0,0,.75);--shadow-sm: 0 1px 2px rgba(0,0,0,.45), 0 4px 10px -6px rgba(0,0,0,.55);--shadow-pop: 0 10px 20px rgba(0,0,0,.5), 0 30px 60px -26px rgba(0,0,0,.8);--shadow-modal: 0 26px 66px -12px rgba(0,0,0,.7);--shadow-hover: 0 10px 24px -6px rgba(0,0,0,.7), 0 2px 6px rgba(0,0,0,.45);--mark-glow: 0 0 10px rgba(255,222,92,.14);--glass-bg: rgba(22,24,29,.62);--glass-border: 1px solid rgba(255,255,255,.1);--glass-blur: blur(26px) saturate(150%);--card-glass: #1B1E24;--card-blur: blur(24px) saturate(1.4) brightness(1.02);--card-sheen: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0) 8%);--card-rim: inset 0 1px 0 rgba(255,255,255,.07), inset 0 0 0 1px rgba(255,255,255,.05);--glass-shadow: 0 14px 34px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.45);--shimmer: rgba(255,255,255,.06)}*{box-sizing:border-box;margin:0;padding:0}:root[data-font=gabarito]{--font-body: Gabarito, "Segoe UI", system-ui, sans-serif}:root[data-font=inter]{--font-body: Inter, system-ui, -apple-system, sans-serif}:root[data-font=system]{--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}.fontpick{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 10px 10px}.appmenu .fontpick-opt{display:flex;align-items:center;justify-content:center;height:38px;padding:0 10px;border-radius:var(--r-md);border:1px solid var(--hairline);background:var(--surface2);color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;transition:var(--tr)}.appmenu .fontpick-opt:hover{background:var(--hover-wash)}.appmenu .fontpick-opt:active{transform:scale(var(--press))}.appmenu .fontpick-opt.on{border-color:var(--mark);background:color-mix(in srgb,var(--mark) 16%,var(--surface2));color:var(--ink)}html{scroll-behavior:smooth;background:var(--bg)}body{background:radial-gradient(72vw 56vw at 64% 0%,rgba(255,196,60,.58) 0%,rgba(255,208,92,.32) 32%,transparent 64%),radial-gradient(52vw 52vw at 0% 28%,rgba(255,158,96,.46) 0%,transparent 56%),radial-gradient(74vw 56vw at 48% 114%,rgba(255,222,148,.56) 0%,transparent 64%),linear-gradient(180deg,#fbf2e0,#f4ecd9);background-attachment:fixed;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;transition:color var(--dur-3) var(--ease-out);padding-bottom:80px;overflow-x:hidden}[data-theme=dark] body{background:linear-gradient(180deg,#0c0d10,#0a0b0e);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(72vw 56vw at 64% 0%,rgba(255,196,60,.62) 0%,rgba(255,208,92,.34) 32%,transparent 64%),radial-gradient(52vw 52vw at 0% 28%,rgba(255,158,96,.5) 0%,transparent 56%),radial-gradient(74vw 56vw at 48% 114%,rgba(255,222,148,.6) 0%,transparent 64%),linear-gradient(180deg,#fbf2e0,#f4ecd9),#f4ecd9}[data-theme=dark] body:before{background:radial-gradient(70vw 44vw at 50% 118%,rgba(150,170,210,.05) 0%,transparent 60%),var(--bg)}.wrap{max-width:1240px;margin:0 auto;padding:0 28px}.emoji{width:1.15em;height:1.15em;vertical-align:-.18em;display:inline-block;object-fit:contain;margin:0 .02em}@media (min-width: 1536px){.wrap{max-width:1360px;padding:0 48px}}button,a,summary,[role=button],.task,.m-task,.mini-cell,.cal-cell,.hist-row,.graderow,.m-grade,.classcard{cursor:pointer}button:disabled,[aria-disabled=true],:disabled{cursor:default}header.top{display:flex;align-items:center;justify-content:space-between;padding:12px 0 8px;gap:16px;position:sticky;top:0;z-index:var(--z-chrome)}header.top:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:100vw;z-index:-1;pointer-events:none;background:color-mix(in srgb,var(--bg) 90%,transparent);border-bottom:1px solid var(--hairline)}.brand{font-family:var(--font-display);font-weight:800;font-size:25px;display:flex;align-items:center;gap:9px;letter-spacing:-.01em}.brand .b{position:relative;display:inline-block;z-index:0;color:var(--on-mark);padding:1px 10px;background:none;box-shadow:none}.brand .b:before{content:"";position:absolute;left:0;right:0;top:50%;height:70%;z-index:-1;border-radius:4px;transform:translateY(-50%) rotate(-1.2deg);background:linear-gradient(105deg,#ffe854f2,#ffe278d9);clip-path:polygon(1% 10%,99% 3%,100% 92%,0% 98%)}.hright{display:flex;align-items:center;gap:12px}.toggle{width:var(--ctl-h);height:var(--ctl-h);border-radius:999px;border:1px solid var(--hairline);background:var(--ctl-fill);box-shadow:none;color:var(--ink);cursor:pointer;font-size:16px;display:grid;place-items:center;transition:background var(--dur-2) var(--ease-out)}.toggle:hover{background:var(--ctl-fill-hover)}.gear-ico{display:block}.toggle:hover .gear-ico{animation:gear-spin 2.2s linear infinite}@keyframes gear-spin{to{transform:rotate(360deg)}}.theme-switch{position:relative;flex:none;width:58px;height:var(--ctl-h);border-radius:999px;border:1px solid var(--hairline);cursor:pointer;padding:0;background:var(--ctl-fill);box-shadow:none;transition:background var(--dur-3) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.theme-switch:hover{background:var(--ctl-fill-hover)}.ts-ghost{position:absolute;top:50%;translate:0 -50%;display:grid;place-items:center;line-height:0;color:var(--faint);opacity:.6;transition:opacity var(--dur-3) var(--ease-out)}.ts-ghost svg{width:12px;height:12px}.ts-ghost.sun{left:9px}.ts-ghost.moon{right:9px}.ts-knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:var(--r-pill);color:var(--on-mark);display:grid;place-items:center;background:linear-gradient(160deg,#fff08c,#ffe06ef2);border:1px solid rgba(255,255,255,.65);box-shadow:inset 0 1px 1px #fffffff2,inset 0 -2px 3px #b5790a47,0 2px 5px #231f2052,var(--mark-glow);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:transform var(--dur-3) var(--ease-spring),scale var(--dur-1) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.theme-switch.dark .ts-knob{transform:translate(27px)}.theme-switch:active .ts-knob,.theme-switch.sliding .ts-knob{scale:1.12;background:linear-gradient(180deg,#ffffff6b,#ffffff1a);backdrop-filter:blur(4px) saturate(1.6);-webkit-backdrop-filter:blur(4px) saturate(1.6);border-color:#ffffffe6;box-shadow:inset 0 1px 1px #fff,inset 1px 0 2px #8cc8ff73,inset -1px 0 2px #ffaad266,inset 0 -2px 3px #1112161f,0 3px 8px #11121647}.theme-switch:active .ts-knob .icon-swap,.theme-switch.sliding .ts-knob .icon-swap{opacity:.35;transition:opacity var(--dur-2) var(--ease-out)}.ts-knob svg{width:13px;height:13px}.hero{padding:16px 0 8px}.hero-date{font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}.hero-top .hero-date{margin-bottom:0}.hero h1{font-family:var(--font-display);font-weight:800;font-size:25px;line-height:1.12;letter-spacing:-.015em}.hero h1 .m,.guide h1 .m{position:relative;display:inline-block;z-index:0;color:var(--on-mark);padding:0 8px;background:none;box-shadow:none}.hero h1 .m:before,.guide h1 .m:before{content:"";position:absolute;left:0;right:0;top:50%;height:86%;z-index:-1;border-radius:4px;transform:translateY(-50%) rotate(-1.2deg);background:linear-gradient(105deg,#ffe854f2,#ffe278d9);clip-path:polygon(1% 12%,99% 4%,100% 90%,0% 98%)}@media (prefers-reduced-motion: reduce){.hero h1 .m,.guide h1 .m{background-size:100% 100%;animation:none}}[data-theme=dark] .hero h1 .m,[data-theme=dark] .guide h1 .m{display:inline-block;color:var(--on-mark);padding:0 6px;background:none;-webkit-box-decoration-break:initial;box-decoration-break:initial}[data-theme=dark] .hero h1 .m:before,[data-theme=dark] .guide h1 .m:before{background:linear-gradient(105deg,#ffe45c,#ffd84e)}.hero p{color:var(--muted);font-size:15px;margin-top:6px}.layout{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;align-items:start}.card{background:var(--card-sheen),var(--card-glass);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-card)}[data-theme=dark] .card{backdrop-filter:none;-webkit-backdrop-filter:none}.card-h{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 9px}.card-h h2{font-family:var(--font-display);font-weight:700;font-size:18px}.chip{position:relative;z-index:0;display:inline-block;font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--on-mark);background:none;box-shadow:none;padding:3px 9px}.chip:before{content:"";position:absolute;left:1px;right:1px;top:50%;height:78%;z-index:-1;border-radius:4px;transform:translateY(-50%) rotate(-1.2deg);background:linear-gradient(105deg,#ffe854f2,#ffe278d9);clip-path:polygon(1% 10%,99% 3%,100% 90%,0% 97%)}.task{display:flex;align-items:center;gap:15px;padding:9px 20px;border-top:1px solid var(--line);cursor:pointer}.task:hover{background:var(--surface2)}.check{width:24px;height:24px;border-radius:8px;border:2px solid var(--line);flex:none;transition:transform .15s,background .15s,border-color .15s}.task.done .check{background:var(--green);border-color:var(--green);position:relative;animation:pop .25s ease-out}.task.done .check:after{content:"✓";color:#fff;font-size:14px;position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.15)}to{transform:scale(1)}}.task.urgent .check{border-color:var(--coral)}.t-body{flex:1}.t-course{font-size:12.5px;font-weight:600;color:var(--muted)}.t-title{font-size:15px;font-weight:600;margin-top:1px}.task.done .t-title{color:var(--faint);text-decoration:line-through}.t-due{text-align:right;font-weight:600;font-size:13.5px;color:var(--muted)}.t-due.soon{color:var(--coral)}.t-due small{display:block;font-weight:500;color:var(--faint);font-size:11.5px}.pill{font-family:var(--font-display);font-weight:700;font-size:11.5px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface2);color:var(--muted);white-space:nowrap}.pill.todo{background:var(--surface2);color:var(--muted)}.pill.draft{background:var(--grade-mid-soft);color:var(--grade-mid-ink)}.pill.done{background:var(--grade-good-soft);color:var(--grade-good-ink)}.task .t-due{min-width:92px}.task .pill{min-width:86px;text-align:center;box-sizing:border-box}aside .card{margin-bottom:22px}.graderow{display:flex;align-items:center;gap:13px;padding:7px 20px;border-top:1px solid var(--line);cursor:pointer}.graderow:hover{background:var(--surface2)}.graderow:first-of-type{border-top:none}.gr-meta{flex:1}.gr-meta .n{font-weight:600;font-size:14.5px}.gr-meta .s{font-size:12px;color:var(--faint)}.grade-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 12px;border-radius:var(--r-pill);font-family:var(--font-display);font-weight:800;font-size:15px;line-height:1;white-space:nowrap;--grade: var(--grade-good);color:var(--grade);background:color-mix(in srgb,var(--grade) 15%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--grade) 28%,transparent)}.grade-chip.mid{--grade: var(--grade-mid)}.grade-chip.low{--grade: var(--grade-low)}.grade-chip .gc-band{font-size:12px;font-weight:700;opacity:.82}.gr-trend{display:inline-flex;align-items:baseline;gap:2px;margin-right:8px;font-family:var(--font-display);font-weight:800;font-size:12px;font-variant-numeric:tabular-nums;color:var(--grade-good);white-space:nowrap}.gr-trend.down{color:var(--grade-low)}.gr-next{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px}.dropzone{display:flex;flex-direction:column;align-items:center;gap:5px;padding:34px 18px;border:2px dashed var(--line);border-radius:18px;cursor:pointer;text-align:center;background:var(--surface);transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.dropzone:before{content:"🖍️";font-size:26px;margin-bottom:2px}.dropzone:hover{border-color:color-mix(in srgb,var(--mark) 60%,var(--line))}.dropzone.over{border-color:var(--mark);background:color-mix(in srgb,var(--mark) 10%,transparent);transform:scale(1.01)}.dz-big{font-family:var(--font-display);font-weight:700;font-size:15px}.dz-link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--mark);text-decoration-thickness:2px;text-underline-offset:2px;font-size:13.5px}.dz-files{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.dz-files li{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:7px 14px;font-size:13px}.dz-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.dz-size{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.dz-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 4px;border-radius:6px}.dz-x:hover{color:var(--coral)}.webcam-view{width:100%;max-height:320px;border-radius:14px;background:#000;margin:10px 0;box-shadow:var(--shadow)}.mediarec .empty{margin:10px 0}.mediarec-pick{display:inline-flex;align-items:center;cursor:pointer}.rec-live{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.65}}@media (prefers-reduced-motion: reduce){.rec-live{animation:none}}.asn-comment{width:100%;margin-top:10px;resize:vertical;min-height:38px;border-radius:12px;transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.asn-comment:focus-visible{outline:none;border-color:color-mix(in srgb,var(--mark) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--mark) 30%,transparent)}.disc-actions{display:flex;gap:14px;align-items:center;margin-top:12px;flex-wrap:wrap}.disc-replybtn{padding:7px 16px;font-size:13px}.disc-thread{margin-top:14px;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.disc-write{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px 12px;box-shadow:var(--shadow)}.disc-write-h{font-family:var(--font-display);font-weight:800;font-size:13.5px;margin-bottom:8px}.disc-entry{display:grid;grid-template-columns:34px 1fr;column-gap:10px}.disc-entry-head{grid-column:2;display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.disc-entry-head b{font-family:var(--font-display);font-weight:700;font-size:13.5px}.disc-ava{grid-column:1;grid-row:1 / span 3;width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--line);margin-top:2px}.disc-ini{display:grid;place-items:center;background:var(--mark);color:var(--on-mark);font-family:var(--font-display);font-weight:800;font-size:13px}.disc-when{color:var(--faint);font-size:11.5px}.disc-bubble{grid-column:2;background:var(--surface);border:1px solid var(--line);border-radius:4px 16px 16px;padding:10px 14px}.disc-bubble .empty{padding:0}.disc-attach{grid-column:2;display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.disc-entry-actions{grid-column:2;display:flex;gap:8px;margin-top:6px}.disc-entry-actions .t-link{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid transparent;border-radius:var(--r-pill);padding:3px 10px;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:12px;color:var(--muted);text-decoration:none;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.disc-entry-actions .t-link:hover{background:var(--surface2);color:var(--ink);transform:translateY(-1px)}.disc-like.on,.disc-like.on:hover{color:var(--coral)}.disc-entry>.disc-composer{grid-column:2;margin-top:8px}.disc-replies{grid-column:2;margin-top:8px;padding-left:12px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:10px}.disc-entry.nested{grid-template-columns:28px 1fr}.disc-entry.nested .disc-ava{width:26px;height:26px}.disc-body{font-size:14px}.disc-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--mark);text-decoration-thickness:2px;text-underline-offset:2px}.disc-body table{border-collapse:collapse;max-width:100%;border:none!important}.disc-body :is(td,th){border:none!important;padding:4px 10px 4px 0;vertical-align:top}.disc-body img{max-width:100%;height:auto;border-radius:12px}.disc-body :is(video,iframe){max-width:100%;border-radius:14px;box-shadow:var(--shadow)}.disc-body iframe{width:100%;min-height:280px;border:none;background:#000}.disc-body p{margin:0 0 8px}.disc-body p:last-child{margin-bottom:0}.disc-body hr{border:none!important;border-top:1px solid var(--line)!important;height:0!important;background:none!important;margin:12px 0}.disc-body [style*=border]{border-color:var(--line)!important}.disc-body blockquote{border-left:3px solid var(--mark);margin:6px 0;padding:2px 12px;color:var(--muted)}.disc-body img.equation_image{vertical-align:middle;max-height:42px;border-radius:0;box-shadow:none}.disc-composer{display:flex;flex-direction:column;gap:8px;width:100%;align-items:flex-start}.re-wrap{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.re-wrap:focus-within{border-color:color-mix(in srgb,var(--mark) 65%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--mark) 28%,transparent),var(--shadow)}.re-bar{position:relative;display:flex;align-items:center;gap:1px;padding:6px 8px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface2) 55%,var(--surface));border-radius:14px 14px 0 0;flex-wrap:wrap}.re-btn{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:30px;height:30px;border:1px solid var(--hairline);background:var(--surface2);border-radius:9px;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--muted);padding:0 6px;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.re-btn:hover{background:var(--surface2);color:var(--ink);transform:translateY(-1px)}.re-btn.on{background:color-mix(in srgb,var(--mark) 30%,transparent);color:var(--ink)}.re-btn.wide{padding:0 8px}.re-btn sup,.re-btn sub{font-size:9px}.re-lbl{line-height:1}.re-colA{border-bottom:3px solid var(--coral);line-height:1;padding-bottom:1px}.re-marker{background:linear-gradient(transparent 45%,var(--mark) 45%);padding:0 2px;line-height:1.15;color:var(--ink)}.re-sep{width:1px;height:18px;background:var(--line);margin:0 5px;flex:none}.re-attachslot{margin-left:auto}.re-attach{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-display);font-weight:700;font-size:12px;color:var(--muted);cursor:pointer;border-radius:var(--r-pill);padding:5px 12px;border:1px solid var(--line);background:var(--surface);transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.re-attach:hover{background:var(--surface2);color:var(--ink);transform:translateY(-1px)}.re-box{width:100%;padding:12px 14px;overflow-y:auto;max-height:340px;font:inherit;font-size:14px;line-height:1.55;outline:none;background:var(--surface);border-radius:0}.re-box[data-empty="1"]:before{content:attr(data-placeholder);color:var(--faint);font-style:italic;pointer-events:none}.re-box a{text-decoration:underline;text-decoration-color:var(--mark);text-decoration-thickness:2px}.re-box h3{font-family:var(--font-display);font-size:19px;margin:4px 0}.re-box h4{font-family:var(--font-display);font-size:16px;margin:3px 0}.re-box blockquote{border-left:3px solid var(--mark);margin:6px 0;padding:2px 12px;color:var(--muted)}.re-box pre{background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px;white-space:pre-wrap}.re-box img.equation_image{vertical-align:middle;max-height:42px}.re-foot{display:flex;justify-content:flex-end;padding:3px 12px 7px;background:var(--surface);border-radius:0 0 14px 14px}.re-words{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;letter-spacing:.02em}.re-file{display:flex;align-items:center;gap:8px;font-size:13px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px}.re-popscrim{position:fixed;top:0;right:0;bottom:0;left:0;background:none;border:none;z-index:var(--z-popover-scrim);cursor:default}.re-pop{position:absolute;top:calc(100% + 4px);left:8px;z-index:var(--z-popover);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px #00000024;padding:6px;display:flex;flex-direction:column;gap:1px;min-width:150px}.re-pop-item{text-align:left;background:none;border:none;border-radius:8px;padding:7px 11px;cursor:pointer;font:inherit;font-size:13.5px;transition:background var(--dur-2) var(--ease-out)}.re-pop-item:hover{background:var(--surface2)}.re-style-h3{font-family:var(--font-display);font-weight:800;font-size:16px}.re-style-h4{font-family:var(--font-display);font-weight:700}.re-style-blockquote{border-left:3px solid var(--mark);color:var(--muted)}.re-style-pre{font-family:ui-monospace,Consolas,monospace;font-size:12px}.re-pop-swatches{flex-direction:row;gap:6px;padding:8px;min-width:0}.re-swatch{width:26px;height:26px;border-radius:9px;border:1px solid var(--line);cursor:pointer;transition:transform var(--dur-2) var(--ease-out)}.re-swatch:hover{transform:scale(1.12)}.re-swatch.none{background:repeating-linear-gradient(45deg,var(--surface2) 0 4px,var(--surface) 4px 8px)}.re-pop-row{flex-direction:row;gap:2px;min-width:0}.re-pop-eq{min-width:280px;gap:8px;padding:10px}.re-eq-chips{display:flex;gap:4px;flex-wrap:wrap}.re-eqchip{min-width:30px;height:28px;border:1px solid var(--line);background:var(--surface);border-radius:8px;cursor:pointer;font-size:13px;transition:background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.re-eqchip:hover{background:var(--surface2);transform:translateY(-1px)}.re-eq-input{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}.re-eq-preview{display:flex;justify-content:center;padding:8px;background:var(--surface2);border-radius:10px;min-height:34px}.re-eq-preview img{max-height:40px}[data-theme=dark] .re-eq-preview{background:#fff}[data-theme=dark] .re-box img.equation_image,[data-theme=dark] .disc-body img.equation_image{background:#fff;border-radius:4px;padding:1px 2px}.re-eq-actions{display:flex;gap:8px}.disc-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hairline);background:var(--surface2);border-radius:var(--r-pill);padding:6px 14px;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:12.5px;color:var(--ink);text-decoration:none;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024;transition:background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.disc-chip:hover{background:var(--surface2);transform:translateY(-1px)}.disc-chip.on{background:color-mix(in srgb,var(--mark) 26%,transparent);border-color:color-mix(in srgb,var(--mark) 45%,var(--line))}.disc-chip.ghost{color:var(--muted);border-color:transparent;background:none;box-shadow:none}.disc-chip.ghost:hover{color:var(--ink);background:var(--surface2)}.hl-video{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:min(420px,100%);aspect-ratio:16 / 9;border:none;border-radius:16px;cursor:pointer;background:radial-gradient(120% 120% at 20% 0%,#3a3a44,#17171c 65%);box-shadow:var(--shadow);overflow:hidden;margin:6px 0;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.hl-video:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 14px 34px #00000038}.hl-video-poster{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hl-video:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#0000000d,#0000004d);pointer-events:none}.hl-video-play{position:relative;z-index:1;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--mark);color:var(--on-mark);box-shadow:0 6px 18px #00000059;transition:transform var(--dur-2) var(--ease-out)}.hl-video:hover .hl-video-play{transform:scale(1.08)}@media (prefers-reduced-motion: reduce){.hl-video,.hl-video-play{transition:none}}.hl-player{width:min(560px,100%);margin:6px 0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0f0f14;box-shadow:var(--shadow);animation:hlvf-in .18s var(--ease-out)}.hl-player-bar{display:flex;align-items:center;gap:8px;padding:8px 13px;background:var(--surface);border-bottom:1px solid var(--line)}.hl-player-dot{width:8px;height:8px;border-radius:50%;background:var(--mark);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--mark) 30%,transparent)}.hl-player-name{font-family:var(--font-display);font-weight:800;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.hl-player-dur{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.hl-player-open{flex:none;font-size:11.5px;font-weight:700;color:var(--accent-ink);text-decoration:none;padding:2px 7px;border-radius:6px;white-space:nowrap}.hl-player-open:hover{background:var(--surface2)}.hl-player-frame{display:block;width:100%;aspect-ratio:16 / 9;border:none;background:#000}@keyframes hlvf-in{0%{opacity:0;transform:scale(.985)}}@media (prefers-reduced-motion: reduce){.hl-player{animation:none}}.cal-feed{margin:0 0 14px}.cal-feed-url{display:block;font-size:12px;word-break:break-all;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin:8px 0 12px;-webkit-user-select:all;user-select:all}.cc-next{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:10px}.nudge{position:relative;background:var(--ink);color:var(--bg);border-radius:var(--r-xl);padding:20px 22px}.nudge .nudge-x{position:absolute;top:12px;right:14px;margin:0;background:none;border:none;box-shadow:none;border-radius:6px;color:var(--bg);opacity:.55;cursor:pointer;font-size:13px;padding:2px 5px}.nudge .nudge-x:hover{opacity:1}.nudge .lab{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mark)}.nudge p{margin-top:9px;font-size:14.5px;line-height:1.5;opacity:.88}.nudge p b{opacity:1;font-weight:700}.nudge button{margin-top:14px;background:var(--mark);color:var(--on-mark);border:none;font-family:var(--font-display);font-weight:700;padding:9px 16px;border-radius:11px;font-size:14px;cursor:pointer;box-shadow:var(--mark-glow)}.nudge.nudge-quiet{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.nudge.nudge-quiet .lab{color:var(--accent-ink)}.nudge.nudge-quiet p{opacity:1;color:var(--muted)}.nudge.nudge-quiet p b{color:var(--ink)}.nudge.nudge-quiet .nudge-x{color:var(--muted)}.nudge.nudge-quiet button{background:none;color:var(--accent-ink);box-shadow:none;padding:8px 0 0;margin-top:10px;font-size:14px}.onboard-tip{margin-top:9px;font-size:12.5px;opacity:.82}.m-nudge.onboard-card .onboard-tip{color:var(--muted);opacity:1}.m-nudge .onboard-go{margin-top:4px}.buddy-remind{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0;padding:12px 16px;background:var(--surface2);border:1px solid var(--line);border-radius:14px;font-size:14px;color:var(--ink)}.buddy-remind>span{flex:1;min-width:180px}.buddy-remind-go{font-family:var(--font-display);font-weight:700;font-size:13px;background:var(--mark);color:var(--on-mark);border:none;border-radius:var(--r-pill);padding:7px 14px;cursor:pointer;box-shadow:var(--mark-glow);white-space:nowrap}.buddy-remind-x{background:none;border:none;color:var(--faint);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.buddy-remind-x:hover{color:var(--ink)}.app-card{position:relative;background:var(--card-sheen),var(--card-glass);border:var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow),var(--card-rim);padding:15px 17px;margin-top:18px}.logo-menu.app-card{background:var(--card-sheen),var(--surface)}.app-card-x{position:absolute;top:9px;right:11px;background:none;border:none;color:var(--faint);cursor:pointer;font-size:13px;line-height:1;padding:4px}.app-card-x:hover{color:var(--ink)}.app-card-h{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink);padding-right:16px}.app-card-sub{margin:6px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}.app-install-btn{margin-top:12px;width:100%;justify-content:center}.app-card-qr{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface2);color:var(--ink)}.app-card-qr svg{flex:none}.app-card-qr-txt{font-size:12px;color:var(--muted);line-height:1.4}.getapp-chip{display:inline-flex;align-items:center;gap:6px;height:var(--ctl-h);padding:0 14px;border-radius:var(--ctl-radius);background:var(--ctl-fill);border:1px solid var(--hairline);box-shadow:none;color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--dur-2) var(--ease-out)}.getapp-chip:hover{background:var(--ctl-fill-hover)}.getapp-chip:focus:not(:focus-visible){outline:none}.getapp-chip:focus-visible{outline:2px solid var(--mark);outline-offset:2px}.logo-menu{width:280px;margin-top:6px!important}.getapp-wrap{margin-top:32px}.buddy-nudge{position:fixed;right:24px;bottom:96px;z-index:calc(var(--z-buddy) - 1);width:264px;max-width:calc(100vw - 32px);animation:buddynudge-in var(--dur-2, .22s) var(--ease-out, ease-out) both}.buddy-nudge-face{position:absolute;top:-16px;left:-10px}@keyframes buddynudge-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.buddy-nudge{animation:none}}@property --beam-a{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.beam{position:relative;isolation:isolate}.beam:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:2px;pointer-events:none;background:conic-gradient(from var(--beam-a),transparent 0 60%,var(--mark) 78%,var(--coral) 89%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:beamspin 4.5s linear infinite;opacity:.95}.beam-dark:after{background:conic-gradient(from var(--beam-a),transparent 0 60%,var(--mark) 80%,#fff 90%,transparent 100%)}@keyframes beamspin{to{--beam-a: 360deg}}.gscreen.listpage{max-width:1040px}.gscreen h1{font-family:var(--font-display);font-weight:800;font-size:34px;padding:28px 0 6px}.gscreen .sub{color:var(--muted);font-size:15.5px;margin-bottom:24px}.glayout{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.bar{height:8px;border-radius:5px;background:var(--surface2);margin:14px 0 6px;overflow:hidden}.bar i{display:block;height:100%;border-radius:5px;background:var(--grade-good)}.bar.mid i{background:var(--grade-mid)}.bar.low i{background:var(--grade-low)}.sim{padding:22px;border:2px solid var(--mark);box-shadow:var(--mark-glow)}.sim h3{font-family:var(--font-display);font-weight:700;font-size:18px;display:flex;align-items:center;gap:8px}.sim .q{color:var(--muted);font-size:14px;margin:6px 0 18px}.sim label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:7px}.sim .pick{display:flex;align-items:center;gap:14px;margin-bottom:16px}.sim select,.sim input[type=range]{accent-color:#eab308}.sim select{font-family:var(--font-body);font-weight:600;font-size:14px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);flex:1}.sim input[type=range]{flex:1}.result{background:var(--surface2);border-radius:14px;padding:16px 18px;margin-top:8px}.result .row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:14.5px}.result .row .v{font-family:var(--font-display);font-weight:800;font-size:18px}.result .delta{color:var(--green);font-weight:700}.result .delta.down{color:var(--coral)}.needline{margin-top:14px;font-size:14px;color:var(--muted);line-height:1.5}.needline b{position:relative;z-index:0;display:inline-block;color:var(--on-mark);padding:0 5px}.needline b:before{content:"";position:absolute;left:0;right:0;top:50%;height:64%;z-index:-1;border-radius:4px;transform:translateY(-50%) rotate(-1.2deg);background:linear-gradient(105deg,#ffe854f2,#ffe278d9);clip-path:polygon(1% 12%,99% 4%,100% 90%,0% 98%)}.banner{background:var(--amber);color:var(--on-mark);border:none;border-radius:14px;padding:12px 16px;font-size:14px;font-weight:600;margin-bottom:18px}.banner b{font-weight:700}.empty{color:var(--muted);padding:30px 22px;font-size:15px}.empty.tight{padding:14px 22px}.empty-retry{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:26px 22px;color:var(--muted);font-size:15px}.empty-retry button{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:7px 15px;cursor:pointer}.skeleton{position:relative;overflow:hidden;background:var(--surface2);border-radius:10px;height:18px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--shimmer) 50%,transparent);animation:shimmer 1.35s ease-in-out infinite}@keyframes shimmer{to{transform:translate(100%)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-swap{animation:fadeswap var(--dur-3) var(--ease-out) both}@keyframes fadeswap{0%{opacity:0;filter:blur(calc(var(--blur-in) / 1.5))}to{opacity:1;filter:blur(0)}}.springpop{animation:springpop var(--dur-3) var(--ease-bounce) both}@keyframes springpop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(var(--pop-scale))}to{opacity:1;transform:scale(1)}}.blur-swap{animation:blurswap var(--dur-3) var(--ease-out) both}@keyframes blurswap{0%{opacity:0;filter:blur(5px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:none}}.stagger>*,.reveal-item{animation:reveal var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 38ms)}@keyframes reveal{0%{opacity:0;transform:translateY(var(--rise));filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.screen-in .card,.screen-in .stat,.screen-in .classcard{animation:reveal-scroll linear both;animation-timeline:view();animation-range:entry 0% entry 38%}@keyframes reveal-scroll{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}}}.send:active,.ask-buddy:active,.calc-toggle:active,.joinbtn:active,.newchat:active,.reveal-completed:active,.toast-act:active,.segmented button:active,.nudge button:active,.card-foot button:active,.aimenu-go:active,.plusbtn:active,.backbtn:active,.chat-suggest button:active{transform:scale(.95)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.num-roll{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums}.num-dgt{display:inline-block;height:1em;line-height:1em;overflow:hidden;vertical-align:-.14em}.num-strip{display:flex;flex-direction:column;will-change:transform;transition:transform var(--dur-4) var(--ease-out),filter var(--dur-2) var(--ease-out)}.num-strip.rolling{filter:blur(.5px)}.num-cell{height:1em;line-height:1em;display:block;text-align:center}.num-static{display:inline-block}@media (prefers-reduced-motion: reduce){.num-strip,.num-strip.rolling{transition:none;filter:none}}.menu-anim{transform-origin:top center;animation:menuin var(--dur-2) var(--ease-spring) both}.menu-anim.is-exiting{animation:menuout var(--dur-1) var(--ease-out) forwards;pointer-events:none}@keyframes menuin{0%{opacity:0;transform:translateY(-7px) scale(.96);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes menuout{to{opacity:0;transform:translateY(-6px) scale(.97)}}.menu-fade{animation:fadein var(--dur-1) var(--ease-out) both}.menu-fade.is-exiting{animation:fadeout var(--dur-1) var(--ease-out) forwards}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadeout{to{opacity:0}}.caret-rot{display:inline-block;transition:transform var(--dur-2) var(--ease-spring)}.caret-rot.open{transform:rotate(180deg)}.menu-stagger>*{animation:menuitem var(--dur-2) var(--ease-out) backwards}@keyframes menuitem{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.menu-stagger>*:nth-child(2){animation-delay:28ms}.menu-stagger>*:nth-child(3){animation-delay:52ms}.menu-stagger>*:nth-child(4){animation-delay:74ms}.menu-stagger>*:nth-child(5){animation-delay:94ms}.menu-stagger>*:nth-child(n+6){animation-delay:112ms}.slidetabs{position:relative;isolation:isolate;display:inline-flex}.slide-ind{position:absolute;left:0;z-index:0;border-radius:9px;background:var(--ink);will-change:transform;transition:transform .5s cubic-bezier(.4,0,.18,1),width .5s cubic-bezier(.4,0,.18,1),height .5s cubic-bezier(.4,0,.18,1)}.slidetab{position:relative;z-index:1;font-family:var(--font-body);font-weight:600;cursor:pointer;background:none;border:none;white-space:nowrap;transition:color var(--dur-2) var(--ease-out) 40ms,transform var(--dur-1) var(--ease-out)}.slidetab:active{transform:scale(.95)}.slidetabs.nav{position:relative;display:flex;align-items:center;gap:4px;padding:7px;background:#ffffff8c;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.75);border-radius:9999px;box-shadow:0 8px 32px #00000014}[data-theme=dark] .slidetabs.nav{background:#1c1c208c;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #00000059}.slidetabs.nav .slidetab{position:relative;padding:10px 20px;border-radius:9999px;font-size:15px;font-weight:500;color:#4a4a46;white-space:nowrap;transition:color .2s ease}.slidetabs.nav .slidetab:hover{color:var(--on-mark)}[data-theme=dark] .slidetabs.nav .slidetab:not(.on){color:#b5b5b0}[data-theme=dark] .slidetabs.nav .slidetab:not(.on):hover{color:#fff}.slidetabs.nav .slidetab.on{color:var(--on-mark);font-weight:600}.slidetabs.nav .nav-badge{position:absolute;top:2px;right:6px;margin:0;display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-pill);background:var(--mark);color:var(--on-mark);border:1.5px solid color-mix(in srgb,var(--bg) 70%,transparent);font-family:var(--font-display);font-weight:800;font-size:10.5px;line-height:1;box-shadow:0 2px 5px #00000040,var(--mark-glow);animation:navBadgePulse 2.4s var(--ease-out) infinite;transform-origin:center}@keyframes navBadgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (prefers-reduced-motion: reduce){.slidetabs.nav .nav-badge{animation:none}}.slidetabs.nav .slide-ind,.slidetabs.rail .slide-ind,.slidetabs.segmented .slide-ind{display:block;box-shadow:none;border-radius:4px;background:linear-gradient(105deg,#ffe854f2,#ffe278e0);clip-path:polygon(0% 26%,100% 20%,99% 80%,1% 86%)}.slidetabs.nav .slide-ind,.slidetabs.segmented .slide-ind{transition:none;-webkit-mask:linear-gradient(90deg,#000,#000) left center / 0% 100% no-repeat;mask:linear-gradient(90deg,#000,#000) left center / 0% 100% no-repeat;animation:inkdraw .42s cubic-bezier(.45,.05,.25,1) forwards}@keyframes inkdraw{to{-webkit-mask-size:100% 100%;mask-size:100% 100%}}@media (prefers-reduced-motion: reduce){.slidetabs.nav .slide-ind,.slidetabs.segmented .slide-ind{animation:none;-webkit-mask-size:100% 100%;mask-size:100% 100%}}.slidetabs.segmented{gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:5px}.slidetabs.segmented .slidetab{font-size:13.5px;color:var(--muted);padding:7px 13px;border-radius:9px}.slidetabs.segmented .slidetab:hover{color:var(--ink)}.slidetabs.segmented .slidetab.on{background:none;color:var(--on-mark);font-weight:600}.slidetabs.segmented .slide-ind{clip-path:none;border-radius:var(--r-sm);background:color-mix(in srgb,var(--mark) 90%,transparent)}@media (max-width: 1024px){.slidetabs.nav{position:fixed;left:12px;right:12px;bottom:12px;z-index:var(--z-chrome);display:flex;justify-content:space-around;padding:7px;border-radius:16px;box-shadow:var(--shadow);background:var(--surface)}.slidetabs.nav .slidetab{flex:1;text-align:center;padding:9px 4px;font-size:12.5px}}.collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-3) var(--ease-out)}.collapse.open{grid-template-rows:1fr}.collapse>*{overflow:hidden;min-height:0}.icon-swap{display:grid;place-items:center;line-height:0;animation:iconswap var(--dur-2) var(--ease-spring) both}@keyframes iconswap{0%{opacity:0;transform:scale(.55) rotate(-35deg);filter:blur(2px)}to{opacity:1;transform:none;filter:blur(0)}}.cal-anim.fwd{animation:calfwd var(--dur-3) var(--ease-out) both}.cal-anim.back{animation:calback var(--dur-3) var(--ease-out) both}@keyframes calfwd{0%{opacity:.35;transform:translate(34px)}to{opacity:1;transform:none}}@keyframes calback{0%{opacity:.35;transform:translate(-34px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.cal-anim.fwd,.cal-anim.back{animation:none}}.flash-focus{animation:flashfocus 1.3s var(--ease-out)}@keyframes flashfocus{0%{box-shadow:0 0 #ffde5c00}18%{box-shadow:0 0 0 4px #ffde5ce6}to{box-shadow:0 0 #ffde5c00}}.shake{animation:shake .42s var(--ease-out) both}@keyframes shake{0%,to{transform:translate(0)}18%{transform:translate(-5px)}38%{transform:translate(4px)}58%{transform:translate(-3px)}78%{transform:translate(2px)}}@media (prefers-reduced-motion: reduce){.menu-anim,.menu-anim.is-exiting,.menu-fade,.menu-fade.is-exiting,.menu-stagger>*,.icon-swap,.shake,.flash-focus,.toggle:hover .gear-ico{animation:none}.caret-rot,.slide-ind,.theme-switch,.ts-knob,.ts-ghost,.collapse{transition:none}}@media (prefers-reduced-motion: reduce){.beam:after{animation:none;opacity:.6}.hero h1 .m{animation:none;background-size:100% 100%}.task.done .check{animation:none}.skeleton:after{animation:none}.screen-in,.fade-swap,.springpop,.blur-swap,.stagger>*,.reveal-item{animation:none}}@media (max-width: 880px){.layout,.glayout{grid-template-columns:1fr}.hero h1{font-size:26px}}.screen-in{animation:screenin var(--dur-3) var(--ease-out) both}.screen-in.fwd{animation-name:screenin-fwd}.screen-in.back{animation-name:screenin-back}@keyframes screenin{0%{opacity:0;transform:translateY(var(--rise));filter:blur(var(--blur-in))}to{opacity:1;transform:none;filter:blur(0)}}@keyframes screenin-fwd{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@keyframes screenin-back{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}.screen-in.fwd,.screen-in.back{animation-duration:var(--dur-2)}@media (prefers-reduced-motion: reduce){.screen-in.fwd,.screen-in.back{animation:none}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:2px 0 16px}.hero-row{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 0 10px}.hero-row .hero{padding:0;flex:1 1 auto;min-width:0}.home-toprow--search{display:flex;justify-content:flex-end;flex:0 0 44%;max-width:520px;min-width:300px}.home-toprow--search .hsearch{width:100%}.home-getapp{margin-top:16px;display:flex;justify-content:flex-start}.home-getapp .getapp-wrap{margin-top:0}.stat{background:var(--card-sheen),var(--card-glass);border:1px solid var(--hairline);border-radius:var(--r-xl);padding:10px 15px;box-shadow:var(--shadow-card)}.stat .v{font-family:var(--font-display);font-weight:800;font-size:21px;line-height:1;letter-spacing:-.01em;color:var(--ink)}.stat .k{font-size:12.5px;color:var(--muted);margin-top:6px;font-weight:500}.stat .v.good{color:var(--green)}.stat .v.warn{color:var(--coral)}.stat .v small{font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--faint)}.home-toprow .stat{display:flex;align-items:center;gap:15px}.home-toprow .stat .v{font-size:42px}.home-toprow .stat .k{margin-top:0;max-width:130px;line-height:1.25;text-align:left}.nextdue{display:flex;align-items:center;gap:20px;padding:20px 22px;margin-bottom:22px}.nextdue .nd-l{flex:1;min-width:0}.nextdue .nd-lab{font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.nextdue .nd-title{font-family:var(--font-display);font-weight:800;font-size:21px;margin-top:5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nextdue .nd-course{font-size:13px;color:var(--muted);margin-top:3px;font-weight:500}.nextdue .nd-r{text-align:right;flex:none}.nextdue .nd-count{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1}.nextdue .nd-count.soon{color:var(--coral)}.nextdue .nd-when{font-size:12px;color:var(--faint);margin-top:5px}.prev-dot{width:9px;height:9px;border-radius:var(--r-pill);flex:none;background:var(--line);transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.prev-dot.unread{background:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}.card-foot{padding:12px 22px;border-top:1px solid var(--line)}.card-foot button,.linklike{background:none;border:none;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--ink);padding:0}.card-foot button:hover{color:var(--coral)}.gsummary{display:flex;align-items:stretch;gap:18px;flex-wrap:wrap;margin-bottom:22px}.gsum-card{padding:18px 22px;display:flex;align-items:center;gap:16px}.gsum-big{font-family:var(--font-display);font-weight:800;font-size:44px;line-height:1;letter-spacing:-.02em}.gsum-l{font-size:13px;color:var(--muted);font-weight:500}.gsum-l b{color:var(--ink);font-weight:700}.bands{display:flex;gap:7px;align-items:center}.bandchip{font-family:var(--font-display);font-weight:700;font-size:12px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface2);color:var(--muted)}.bandchip.good{background:var(--grade-good);color:#fff}.bandchip.mid{background:var(--grade-mid);color:var(--on-mark)}.bandchip.low{background:var(--grade-low);color:#fff}[data-theme=dark] .bandchip.good,[data-theme=dark] .bandchip.low{color:var(--on-mark)}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.class-filter{min-width:210px}.segmented{display:inline-flex;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:5px}.segmented button{font-family:var(--font-body);font-weight:600;font-size:13.5px;color:var(--muted);background:none;border:none;cursor:pointer;padding:7px 13px;border-radius:9px;white-space:nowrap}.segmented button.on{background:var(--ink);color:var(--bg)}.field{font-family:var(--font-body);font-weight:500;font-size:14px;padding:9px 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.field:focus-visible,textarea.field:focus-visible{outline:none;border-color:color-mix(in srgb,var(--mark) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--mark) 30%,transparent)}.field::placeholder{color:var(--faint)}.field:-webkit-autofill,.field:-webkit-autofill:hover,.field:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink);transition:background-color 9999s ease-in-out 0s}.search{flex:1;min-width:170px}.count-tag{font-size:13px;color:var(--faint);font-weight:500}.count-tag b{color:var(--ink);font-family:var(--font-display);font-weight:700}.pts{font-family:var(--font-display);font-weight:700;font-size:12px;color:var(--faint);white-space:nowrap}.cal-toolbar{display:flex;align-items:center;gap:12px;row-gap:10px;padding-top:24px;margin-bottom:16px;flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:8px;min-width:0}.cal-nav-arrow{width:34px;height:34px;border-radius:var(--r-md);border:1px solid var(--hairline);background:var(--surface2);color:var(--ink);cursor:pointer;font-size:18px;line-height:1;display:grid;place-items:center;transition:var(--tr)}.cal-nav-arrow:hover{background:var(--ctl-fill-hover)}.cal-nav-arrow:active{transform:scale(var(--press))}.cal-today-btn{height:34px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--hairline);background:var(--surface2);color:var(--ink);font-family:var(--font-body);font-weight:600;font-size:13.5px;cursor:pointer;transition:var(--tr)}.cal-today-btn:hover{background:var(--ctl-fill-hover)}.cal-range{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.01em;margin-left:8px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-seg{margin:0 auto}.cal-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.cal-shell{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}.cal-sidebar{display:flex;flex-direction:column;gap:14px;position:sticky;top:84px;min-width:0}.cal-agenda{padding:15px 14px 12px;background:var(--cal-bg);border:1px solid var(--cal-line);border-radius:var(--r-lg);box-shadow:var(--shadow)}[data-theme=dark] .cal-agenda{background:var(--card-glass)}.cal-agenda-h{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.01em;color:var(--ink);margin-bottom:10px}.cal-agenda-empty{color:var(--muted);font-size:13px;padding:2px 0 8px}.agenda-group{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--cal-line)}.agenda-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.agenda-date{font-family:var(--font-display);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:5px}.agenda-date.is-today{color:var(--accent-ink)}.agenda-ev{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;padding:6px 8px;margin:0 -4px;border-radius:8px;cursor:pointer;transition:background var(--dur-1) var(--ease-out)}.agenda-ev:hover{background:var(--hover-wash)}.agenda-dot{width:8px;height:8px;border-radius:50%;flex:none}.agenda-ev-title{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-ev-title.done{text-decoration:line-through;color:var(--faint)}.agenda-ev-time{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}.cal-daypanel{display:flex;flex-direction:column;background:var(--cal-bg);border:1px solid var(--cal-line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}[data-theme=dark] .cal-daypanel{background:var(--card-glass)}.cal-daypanel-h{display:flex;align-items:center;gap:8px;padding:14px 14px 6px}.cal-daypanel-h h2{flex:1;min-width:0;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.01em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-daypanel-body{padding:2px 14px 8px;max-height:38vh;overflow-y:auto}.cal-daypanel .cal-add{padding:10px 12px 12px;border-top:1px solid var(--cal-line)}.cal-side-empty{color:var(--muted);font-size:13px;padding:2px 0 6px}.cal-main{min-width:0}.cal{background:var(--cal-bg);border:1px solid var(--cal-line);border-radius:var(--r-xl);box-shadow:var(--shadow);overflow:hidden}.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--cal-line)}.cal-dow span{padding:9px 0;text-align:center;font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--cal-label)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-cell{min-height:116px;overflow:hidden;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);padding:6px;cursor:pointer;transition:background .15s;display:flex;flex-direction:column;gap:2px}.cal-cell:nth-child(7n){border-right:none}.cal-cell:hover:not(.today):not(.sel){background:color-mix(in srgb,var(--ink) 4%,transparent)}.cal-cell.dim{background:transparent}.cal-cell.dim .cal-daynum{opacity:.4}.cal-cell.dim .cal-chips{opacity:.55}.cal-cell.sel{background:color-mix(in srgb,var(--ink) 5%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-ink) 50%,transparent)}.cal-cell.today{background:color-mix(in srgb,var(--mark) 10%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--mark) 70%,transparent)}.cal-daynum{font-family:var(--font-display);font-weight:700;font-size:12.5px;color:var(--cal-num);align-self:flex-start;width:22px;height:22px;display:grid;place-items:center;border-radius:7px;transition:box-shadow .15s;flex:none}.cal-cell.today .cal-daynum,.cal-cell.today:hover .cal-daynum{background:var(--mark);color:var(--on-mark);box-shadow:var(--mark-glow)}.cal-chips{display:flex;flex-direction:column;gap:2px;margin-top:2px}.cal-chip{display:flex;align-items:center;gap:5px;padding:2px 6px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.35;cursor:pointer;overflow:hidden;background:color-mix(in srgb,var(--evc) 30%,var(--cal-bg));color:var(--ink);border-left:3px solid var(--evc);transition:background var(--dur-1) var(--ease-out)}.cal-chip:hover{background:color-mix(in srgb,var(--evc) 42%,var(--cal-bg))}.cal-chip-t{font-variant-numeric:tabular-nums;color:var(--cal-label);flex:none;font-size:10px}.cal-chip-x{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip.done{background:color-mix(in srgb,var(--evc) 16%,var(--cal-bg))}.cal-chip.done .cal-chip-x{text-decoration:line-through;opacity:.55}.cal-chip.over{background:color-mix(in srgb,var(--coral) 15%,transparent);border-left-color:var(--coral)}.cal-chip-more{font-family:var(--font-display);font-weight:700;font-size:10.5px;color:var(--cal-label);padding:1px 6px;cursor:pointer}.cal-chip-more:hover{color:var(--ink)}.cal-timegrid{display:flex;flex-direction:column}.tg-head{display:grid;border-bottom:1px solid var(--cal-line)}.tg-head-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border:none;border-left:1px solid var(--cal-line);background:none;cursor:pointer;transition:background var(--dur-1) var(--ease-out)}.tg-head-day:hover{background:var(--hover-wash)}.tg-head-dow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--cal-label)}.tg-head-num{font-family:var(--font-display);font-weight:800;font-size:17px;color:var(--ink)}.tg-head-day.today .tg-head-num{color:var(--on-mark);background:var(--mark);width:26px;height:26px;border-radius:50%;display:grid;place-items:center}.tg-scroll{overflow-y:auto;max-height:calc(100dvh - 270px);min-height:340px}.tg-canvas{--hour-px: 44px;position:relative;display:grid;grid-template-columns:54px 1fr}.tg-gutter{position:relative}.tg-hourlabel{position:absolute;right:8px;transform:translateY(-6px);font-size:10.5px;color:var(--cal-label);font-variant-numeric:tabular-nums}.tg-cols{display:grid;position:relative}.tg-col{position:relative;border-left:1px solid var(--cal-line);background:repeating-linear-gradient(var(--cal-line) 0 1px,transparent 1px var(--hour-px, 44px))}.tg-col.today{background:repeating-linear-gradient(var(--cal-line) 0 1px,transparent 1px var(--hour-px, 44px)),color-mix(in srgb,var(--mark) 8%,transparent)}.tg-event{position:absolute;overflow:hidden;display:flex;flex-direction:column;gap:1px;text-align:left;padding:3px 6px;border-radius:6px;border:none;border-left:3px solid var(--evc);background:color-mix(in srgb,var(--evc) 30%,var(--cal-bg));cursor:pointer;box-shadow:var(--shadow-sm);transition:filter var(--dur-1) var(--ease-out)}.tg-event:hover{filter:brightness(1.04)}.tg-event-t{font-size:10px;line-height:1.2;color:var(--muted);font-variant-numeric:tabular-nums}.tg-event-x{font-size:11.5px;line-height:1.3;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tg-event.compact{justify-content:center;padding-top:0;padding-bottom:0}.tg-event.compact .tg-event-t{display:none}.tg-event.done .tg-event-x{text-decoration:line-through;color:var(--faint)}.tg-event.over{border-left-color:var(--coral);background:color-mix(in srgb,var(--coral) 20%,var(--cal-bg))}.tg-nowline{position:absolute;left:0;right:0;height:2px;background:var(--coral);z-index:3}.tg-nowline:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--coral)}.tg-allday-ev{display:block;margin:2px 4px;padding:2px 6px;border-radius:5px;border:none;border-left:3px solid var(--evc);background:color-mix(in srgb,var(--evc) 22%,transparent);font-size:11px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;width:calc(100% - 8px)}.cal-dayhead{display:flex;align-items:center;gap:10px;padding:4px 2px 12px}.cal-dayhead h2{font-family:var(--font-display);font-weight:800;font-size:20px}.cal-day-notes{margin-top:10px;display:flex;flex-direction:column}.cal-day-note{display:flex;align-items:center;gap:8px;padding:3px 8px 3px 4px}.cal-day-note-dot{width:7px;height:7px;border-radius:50%;background:var(--mark);flex:none}.cal-day-note-t{flex:1;font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day-note-time{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.cal-daywrap .cal-add{margin-top:10px;border-top:1px solid var(--line)}@media (max-width: 900px){.cal-shell{grid-template-columns:1fr}.cal-sidebar{position:static;flex-direction:row;flex-wrap:wrap}.cal-agenda,.cal-daypanel{flex:1;min-width:240px}}@media (max-width: 720px){body{padding-bottom:86px}header.top{flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr}.cal-seg{margin:0}.cal-cell{min-height:90px;padding:5px}}.mascot-wave{animation:bob 2.4s ease-in-out infinite;transform-origin:50% 90%}@keyframes bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-4deg)}}@media (prefers-reduced-motion: reduce){.mascot-wave{animation:none}}.buddy-fab{position:fixed;right:24px;bottom:24px;z-index:var(--z-buddy);display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 16px 8px 10px;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s}.buddy-fab{touch-action:none}.buddy-fab.dragging{cursor:grabbing;transition:none;opacity:.92}.buddy-hide{position:absolute;top:-2px;right:-2px;width:19px;height:19px;border-radius:var(--r-pill);display:grid;place-items:center;font-size:11px;line-height:1;color:#fff;background:#1412109e;box-shadow:0 1px 4px #0000004d;opacity:0;transform:scale(.7);transition:opacity .14s,transform .14s;cursor:pointer}.buddy-fab:hover .buddy-hide,.buddy-fab:focus-within .buddy-hide{opacity:1;transform:scale(1)}.buddy-restore{position:fixed;right:16px;bottom:18px;z-index:var(--z-buddy);width:40px;height:40px;border-radius:var(--r-pill);display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;opacity:.8;transition:opacity .18s,transform .18s}.buddy-restore:hover{opacity:1;transform:translateY(-2px)}.m-app .buddy-restore{right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}.buddy-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-buddy-scrim);background:transparent}.buddy-pop{position:fixed;right:24px;bottom:24px;z-index:calc(var(--z-buddy) + 1);width:372px;max-width:calc(100vw - 32px);height:540px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);overflow:hidden;animation:popin var(--dur-3) var(--ease-spring) both}[data-theme=dark] .buddy-pop{box-shadow:0 10px 24px #00000080,0 34px 60px -26px #000c}@keyframes popin{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media (min-width: 501px) and (max-width: 1024px){.buddy-fab,.buddy-restore,.buddy-pop{bottom:76px}.buddy-pop{max-height:calc(100vh - 124px)}.toast-wrap{bottom:80px}}.buddy-panel{height:100vh;width:100%;display:flex;flex-direction:column;background:var(--surface);overflow:hidden}.buddy-pop-h{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.buddy-id{display:flex;align-items:flex-start;gap:9px}.buddy-id-txt{display:flex;flex-direction:column;gap:3px}.buddy-name-row{display:flex;align-items:center;gap:8px}.buddy-name{font-family:var(--font-display);font-weight:800;font-size:15px;line-height:1.1}.buddy-tab-id{display:flex;align-items:flex-start;gap:12px}.buddy-title-row{display:flex;align-items:center;gap:12px}.plusbtn-wrap{position:relative;display:inline-flex;align-items:center}.plusbtn{font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:0;padding:5px 13px;border-radius:var(--r-pill);border:1px solid color-mix(in srgb,var(--mark) 30%,var(--hairline));background:var(--surface2);color:var(--ink);cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024;transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.plusbtn:hover{background:color-mix(in srgb,var(--mark) 24%,var(--ctl-fill));border-color:color-mix(in srgb,var(--mark) 65%,var(--hairline));box-shadow:0 0 0 2.5px color-mix(in srgb,var(--mark) 16%,transparent);transform:translateY(-1px)}.plusbtn.on{background:var(--ink);color:var(--bg, #fff);border-color:var(--ink)}.plusbtn:disabled{opacity:.6;cursor:default}.plusbtn-err{position:absolute;top:110%;left:0;white-space:nowrap;font-size:11px;color:var(--coral);background:var(--surface, #fff);border:1px solid var(--line);border-radius:8px;padding:3px 8px;z-index:var(--z-popover)}.plusbtn .pin{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:6px;border-radius:var(--r-pill);font-size:10px;line-height:1;font-family:var(--font-body);font-weight:700;cursor:pointer;background:color-mix(in srgb,var(--ink) 14%,transparent);color:inherit;transition:background var(--dur-1) var(--ease-out)}.plusbtn .pin:hover{background:color-mix(in srgb,var(--ink) 30%,transparent)}.plusbtn.on .pin{background:color-mix(in srgb,var(--bg) 24%,transparent)}.plus-info-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-popover-scrim);background:transparent}.plus-info-pop{position:fixed;z-index:var(--z-popover);width:290px;max-width:calc(100vw - 20px);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--ink);border:var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow);padding:13px 15px}.pip-title{font-family:var(--font-display);font-weight:800;font-size:14px;margin-bottom:8px}.pip-list{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:7px}.pip-list li{font-size:12.5px;line-height:1.45;color:var(--ink)}.pip-list li b{font-weight:700}.pip-note{margin:10px 0 0;font-size:11.5px;color:var(--muted);line-height:1.4}.aimenu{position:relative}.aimenu-trig{display:inline-flex;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--line);padding:6px 12px;border-radius:var(--r-pill);cursor:pointer;color:var(--ink);font-family:var(--font-body);font-size:13px;transition:background var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.aimenu-trig:hover{background:var(--hover-wash);border-color:var(--hairline);color:var(--ink)}.aimenu-cur{font-weight:700}.aimenu-caret{font-size:10px}.aimenu-pop{position:absolute;top:130%;left:0;z-index:var(--z-popover);min-width:250px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow);padding:6px;overflow:hidden}.aimenu-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;background:none;border:none;border-radius:10px;padding:9px 11px;cursor:pointer}.aimenu-opt:hover{background:var(--surface2)}.aimenu-opt.active{background:color-mix(in srgb,var(--mark) 18%,transparent)}.aimenu-dot{color:var(--green);font-size:8px;margin-left:7px;vertical-align:middle}.aimenu-name{display:inline-flex;align-items:center;font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--ink)}.aimenu-sub{font-size:11px;color:var(--muted)}.aimenu-panel{display:flex;flex-direction:column;gap:7px;padding:4px 11px 10px}.aimenu-note{font-size:11px;color:var(--muted);margin:0;line-height:1.45;padding:2px 11px}.aimenu-note.ok{color:var(--green);font-weight:600}.aimenu-note.err{color:var(--coral)}.aimenu-go{font-family:var(--font-display);font-weight:700;font-size:12.5px;padding:8px 12px;border-radius:10px;border:none;background:var(--ink);color:var(--bg, #fff);cursor:pointer}.aimenu-go:disabled{opacity:.55;cursor:default}.aimenu-guide{display:block;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--line);font:inherit;font-size:12px;font-weight:700;color:var(--accent-ink);cursor:pointer;padding:9px 11px 5px;margin-top:4px;transition:var(--tr)}.aimenu-guide:hover{color:var(--ink);background:var(--surface2)}.buddy-acts{display:flex;gap:4px}.buddy-acts button{width:30px;height:30px;border-radius:9px;border:none;background:none;color:var(--muted);cursor:pointer;font-size:14px}.buddy-acts button:hover{background:var(--surface2);color:var(--ink)}.buddy-body{flex:1;overflow-y:auto;background:var(--surface)}.chat-msgs{display:flex;flex-direction:column;gap:10px;padding:16px}.bubble{max-width:84%;padding:10px 13px;border-radius:15px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.bubble.user{align-self:flex-end;background:var(--ink);color:var(--bg);border-bottom-right-radius:5px}.bubble.assistant{align-self:flex-start;color:var(--ink);border-bottom-left-radius:5px;background:var(--glass-bg);border:var(--glass-border);box-shadow:inset 0 1px #fff6}.bubble code{font-family:ui-monospace,Cascadia Code,monospace;font-size:12.5px;background:#7f6d5029;padding:1px 5px;border-radius:5px}.bubble.user code{background:#ffffff29}.chat-indexing{align-self:center;margin:4px auto 10px;font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.01em;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 12px;white-space:nowrap;animation:indexing-pulse 1.8s ease-in-out infinite}@keyframes indexing-pulse{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.chat-indexing{animation:none;opacity:.8}}.msg-sources{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}.msg-sources-label{font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-right:2px}.src-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 9px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:var(--tr)}a.src-chip:hover{color:var(--ink);border-color:color-mix(in srgb,var(--mark) 55%,var(--line));background:var(--hover-wash)}.sysbar{background:var(--ink);color:var(--bg);border-color:color-mix(in srgb,var(--bg) 18%,transparent)}.sysbar-x{background:none;border:none;color:color-mix(in srgb,var(--bg) 65%,transparent);cursor:pointer;font-size:18px;line-height:1;padding:0 4px;transition:var(--tr)}.sysbar-x:hover{color:var(--bg)}.authbtn{transition:var(--tr)}.authbtn:hover{filter:brightness(1.05);transform:translateY(-1px)}.authbtn:active{transform:scale(var(--press))}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--r-sm);color:var(--muted);cursor:pointer;font-size:13px;line-height:1;transition:var(--tr)}.iconbtn:hover{background:var(--hover-wash);color:var(--ink)}.iconbtn:active{transform:scale(var(--press))}.chat-jump{position:sticky;bottom:10px;align-self:center;z-index:2;display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-family:var(--font-display);font-weight:700;font-size:12.5px;cursor:pointer;color:var(--bg);background:var(--ink);border:none;border-radius:var(--r-pill);box-shadow:0 4px 14px #00000038;transition:var(--tr)}.chat-jump:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000042}.chat-jump:active{transform:scale(var(--press))}.typing{display:inline-flex;gap:4px;padding:3px 0}.typing i{width:7px;height:7px;border-radius:var(--r-pill);background:var(--faint);animation:tdot 1.1s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes tdot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-empty{padding:26px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:12px}.chat-empty p{font-size:14px;line-height:1.5;max-width:280px}.chat-suggest{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chat-suggest button{font-family:var(--font-body);font-weight:600;font-size:12.5px;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:7px 13px;cursor:pointer}.chat-suggest button:hover{background:var(--hover-wash);color:var(--ink);border-color:var(--hairline)}.composer{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}.quota-badge{flex-basis:100%;font-family:var(--font-body);font-size:11.5px;color:var(--faint);opacity:.85;padding:0 2px 2px}.quota-badge.empty{color:var(--coral);opacity:1;font-weight:600}.quota-bar-wrap{flex-basis:100%;padding:0 2px 4px;display:flex;flex-direction:column;gap:4px}.quota-bar{height:5px;border-radius:999px;background:var(--surface2);overflow:hidden}.quota-bar-fill{display:block;height:100%;background:var(--mark);border-radius:999px;transition:width .3s ease}.quota-bar-wrap.empty .quota-bar-fill{background:var(--coral)}.quota-bar-wrap.low .quota-bar-fill{background:var(--amber)}.quota-bar-label{font-family:var(--font-body);font-size:11px;color:var(--faint);line-height:1.4}.quota-bar-wrap.empty .quota-bar-label{color:var(--coral);font-weight:600}.quota-bar-wrap.low .quota-bar-label{color:var(--amber-ink);font-weight:600}.brief-card{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px 14px;background:color-mix(in srgb,var(--mark) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--mark) 42%,var(--line));border-radius:var(--r-lg);animation:briefIn .4s cubic-bezier(.2,.7,.2,1) both}.brief-mascot{flex:none;width:40px;height:40px}.brief-mascot img{width:100%;height:100%;object-fit:contain}.brief-text{flex:1;min-width:0;margin:0;align-self:center;font-family:var(--font-body);font-size:14.5px;line-height:1.5;color:var(--ink)}.brief-x{flex:none;background:none;border:none;color:var(--faint);font-size:13px;cursor:pointer;padding:2px 5px;border-radius:6px;line-height:1}@keyframes briefIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.brief-card{animation:none}}.buddy-sections{display:flex;width:max-content;max-width:min(100%,760px);margin:6px auto 14px;align-self:center}.hz{display:flex;flex-direction:column;gap:14px;padding:4px 2px 8px;overflow-y:auto;width:100%;max-width:640px;margin:0 auto}.hz-title{font-family:var(--font-display);font-weight:800;font-size:20px;margin:0;color:var(--ink)}.hz-sub{color:var(--muted);font-size:14px;margin:4px 0 0;line-height:1.5}.hz-lead{color:var(--ink);font-size:14.5px;line-height:1.5;margin:0 0 4px}.hz-muted{color:var(--faint)}.hz-pairs{display:flex;flex-direction:column;gap:12px}.hz-pair{display:flex;flex-direction:column;gap:6px}.hz-ai{font-size:13.5px;color:var(--muted);font-style:italic;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.hz-ta{min-height:46px;resize:vertical}.hz-save{margin-top:6px}.hz-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}.hz-draft{min-height:130px;resize:vertical;margin-top:5px}.hz-actions{display:flex;align-items:center;gap:14px;margin-top:12px;flex-wrap:wrap}.hz-retrain{background:none;border:none;color:var(--accent-ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.hz-retrain:hover{text-decoration:underline}.hz-out{margin-top:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}.hz-out-head{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--surface2)}.hz-copy{background:var(--mark);color:var(--on-mark);border:none;font:inherit;font-weight:700;font-size:12.5px;padding:5px 12px;border-radius:8px;cursor:pointer}.hz-out-body{padding:14px;font-family:var(--font-body);font-size:14.5px;line-height:1.6;white-space:pre-wrap;color:var(--ink)}.hz-err{color:var(--coral);font-size:13px;margin:8px 0 0}.hz-integrity{margin:4px 0 0;font-size:12px;color:var(--faint);line-height:1.5;border-top:1px solid var(--line);padding-top:12px}.hz-profile{margin-top:14px}.hz-profile>summary{cursor:pointer;font-size:13px;color:var(--muted);font-weight:600}.hz-profile-body{margin-top:8px;font-size:13.5px;color:var(--muted);white-space:pre-wrap;line-height:1.5}.hz-gate{font-size:14.5px;line-height:1.6;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:16px}.hz-onboard-tools{display:flex;gap:16px;margin:4px 0 12px}.hz-linkbtn{background:none;border:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--accent-ink);cursor:pointer;padding:0}.hz-linkbtn:hover{text-decoration:underline}.hz-example{background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-bottom:14px;display:flex;flex-direction:column;gap:7px}.hz-ex-row{font-size:13px;color:var(--muted);line-height:1.4}.hz-ex-tag{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-right:7px}.hz-ex-tag.mine{color:var(--on-mark);background:var(--mark);border-color:transparent}.hz-nudge{margin:4px 0 0;font-size:12px;color:var(--warn, #d9603f)}.hz-note{margin:10px 0 0;font-size:13px;color:var(--muted);font-style:italic}.hz-confirm{font-size:13px;color:var(--ink);display:inline-flex;align-items:center;gap:8px}.hz-confirm-yes{background:var(--coral);color:#fff;border:none;font:inherit;font-weight:700;font-size:12px;padding:4px 10px;border-radius:8px;cursor:pointer}.hz-or{display:flex;align-items:center;text-align:center;color:var(--faint);font-size:12px;margin:20px 0 12px;gap:12px}.hz-or:before,.hz-or:after{content:"";flex:1;height:1px;background:var(--line)}.hz-import{margin-top:4px}.hz-import-btn{display:inline-flex;align-items:center;gap:9px;background:color-mix(in srgb,var(--mark) 16%,var(--surface));border:1.5px solid color-mix(in srgb,var(--mark) 45%,var(--line));border-radius:12px;font:inherit;font-weight:700;font-size:14px;color:var(--ink);padding:11px 16px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 2px 6px -2px color-mix(in srgb,var(--accent-ink) 22%,transparent)}.hz-import-btn:disabled{opacity:.6;cursor:default}.hz-plus{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--on-mark);background:var(--mark);border-radius:999px;padding:2px 7px}.hz-import-msg{margin:8px 0 0;font-size:13px;color:var(--muted)}.hz-import-msg.ok{color:var(--green);font-weight:600}.hz-refine-row{margin-top:14px}.hz-draft-head{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.hz-count{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}.hz-count.over{color:var(--coral);font-weight:600}.hz-reset{color:var(--muted)}.hz-reset:hover{color:var(--coral)}.hz-voice{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.hz-voice-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.hz-strength{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}.hz-voice .hz-profile{margin-top:10px}.hz-voice .hz-profile-body{max-height:220px;overflow-y:auto}.hz-examples{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.hz-ex-item{display:flex;align-items:flex-start;gap:10px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:9px 11px}.hz-ex-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.hz-ex-mine{font-size:13.5px;color:var(--ink);line-height:1.4}.hz-ex-ai{font-size:11.5px;color:var(--faint);line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.hz-ex-remove{flex:none;background:none;border:none;cursor:pointer;color:var(--faint);font-size:13px;line-height:1;padding:4px 5px;border-radius:7px}.hz-ex-remove:hover{color:var(--coral);background:color-mix(in srgb,var(--coral) 12%,transparent)}.hz-ex-empty{margin:12px 0 0;font-size:13px;color:var(--muted);line-height:1.5}.aic-result{margin-top:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:18px;text-align:center}.aic-gauge{position:relative;display:inline-block}.aic-num{position:absolute;left:0;right:0;bottom:8px;font-family:var(--font-display);font-weight:800;font-size:34px;font-variant-numeric:tabular-nums;line-height:1}.aic-num span{font-size:.5em;font-weight:700}.aic-verdict{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink);margin:0 0 12px}.aic-split{display:flex;justify-content:center;gap:20px;font-size:13px;color:var(--muted);flex-wrap:wrap}.aic-split b{color:var(--ink);font-variant-numeric:tabular-nums}.aic-split .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}.aic-signals{margin-top:16px;text-align:left}.aic-signals ul{margin:8px 0 0;padding-left:18px}.aic-signals li{font-size:13.5px;color:var(--muted);line-height:1.5;margin-bottom:4px}.aic-warn{margin-top:16px;font-size:12.5px;line-height:1.55;color:var(--muted);background:color-mix(in srgb,var(--coral) 8%,var(--surface));border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:10px;padding:11px 13px}.aic-warn b{color:var(--ink)}.buddy-tool{margin:0 auto;max-width:760px;width:100%;height:calc(100dvh - 290px);min-height:340px;max-height:72vh;overflow-y:auto;padding:20px 22px}.buddy-tool.calcpanel{max-width:444px;height:auto;max-height:none}.hz-draft-tools{display:inline-flex;align-items:center;gap:12px}.hz-sample{background:none;border:none;font:inherit;font-size:11.5px;font-weight:600;color:var(--accent-ink);cursor:pointer}.hz-sample:hover{text-decoration:underline}@media (max-width: 720px){.m-buddy .buddy-tool{max-width:none;height:auto;max-height:none;min-height:0;flex:1;margin:0 12px calc(10px + env(safe-area-inset-bottom));padding:14px}}.quota-up{background:none;border:none;padding:0;font:inherit;color:var(--accent-ink);font-weight:700;text-decoration:underline;cursor:pointer}.upsheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-scrim);display:flex;align-items:center;justify-content:center;padding:20px;background:#00000073}[data-theme=dark] .upsheet-backdrop{background:#000000a8}.upsheet{position:relative;width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:0 20px 60px #00000059;padding:26px 24px 22px;color:var(--ink);transform-origin:center}[data-theme=dark] .upsheet{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}.upsheet-x{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--faint);font-size:15px;cursor:pointer;line-height:1;padding:6px;border-radius:8px}.upsheet-badge{display:inline-block;font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.3px;color:var(--accent-ink);background:#ffde5c33;border-radius:999px;padding:4px 11px}.upsheet-title{font-family:var(--font-display);font-weight:800;font-size:22px;margin:12px 0 2px;line-height:1.15}.upsheet-price{display:flex;align-items:baseline;gap:4px;margin:6px 0 14px}.upsheet-price b{font-family:var(--font-display);font-weight:800;font-size:30px}.upsheet-price span{color:var(--muted);font-size:14px}.upsheet-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}.upsheet-list li{position:relative;padding-left:24px;font-size:14px;line-height:1.4;color:var(--ink)}.upsheet-list li:before{content:"✦";position:absolute;left:2px;top:1px;color:var(--accent-ink);font-size:13px}.upsheet-cta{width:100%;padding:12px;border:none;border-radius:12px;background:var(--mark);color:var(--on-mark);font-family:var(--font-display);font-weight:800;font-size:15px;cursor:pointer}.upsheet-cta:disabled{opacity:.6;cursor:default}.upsheet-soon{background:var(--surface2);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5;color:var(--ink)}.upsheet-soon b{display:block;margin-bottom:3px}.upsheet-soon span{display:block;margin-top:4px;color:var(--muted)}.upsheet-err{color:var(--coral);font-size:13px;margin:0 0 10px}.upsheet-fine{color:var(--faint);font-size:12px;text-align:center;margin:10px 0 0}.sgc-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-scrim);display:flex;align-items:center;justify-content:center;padding:20px;background:#00000080;overflow:auto}[data-theme=dark] .sgc-backdrop{background:#000000ad}.sgc-modal{position:relative;width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-modal);padding:18px 18px 16px;color:var(--ink)}[data-theme=dark] .sgc-modal{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}.sgc-x{position:absolute;top:12px;right:12px;z-index:2;background:#0000000a;border:none;color:var(--faint);font-size:14px;cursor:pointer;line-height:1;padding:7px;border-radius:9px}[data-theme=dark] .sgc-x{background:#ffffff0f}.sgc-canvas-wrap{border-radius:16px;overflow:hidden;position:relative}.sgc-canvas-wrap[data-loading="1"]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface2)}.sgc-canvas{display:block;width:100%;height:auto;border-radius:16px}.sgc-actions{display:flex;gap:8px;margin-top:14px}.sgc-btn{flex:1;padding:11px 12px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface2);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:14.5px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024;transition:filter .12s,background .12s}.sgc-btn.primary{flex:1.4;border-color:transparent;background:var(--mark);color:var(--on-mark)}.sgc-btn:disabled{opacity:.55;cursor:default}.sgc-hint{color:var(--faint);font-size:11.5px;text-align:center;margin:9px 2px 2px}.sharebtn{align-self:flex-start;margin-top:8px;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface2);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:13px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024;transition:background .12s,border-color .12s}.metrics-wrap{min-height:100vh;background:var(--bg);display:flex;justify-content:center;padding:40px 16px}.metrics-card{width:100%;max-width:720px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 10px 40px #00000014}.metrics-title{font-family:var(--font-display);font-weight:800;font-size:26px;margin:0;color:var(--ink)}.metrics-sub{color:var(--muted);font-size:13px;margin:4px 0 0}.metrics-sub code{font-family:ui-monospace,Menlo,monospace;font-size:12px;background:var(--surface2);border-radius:5px;padding:1px 5px}.metrics-err{color:var(--coral);font-weight:600;margin:12px 0 4px}.metrics-hero{margin:22px 0;padding:18px 20px;background:#ffde5c29;border:1px solid var(--line);border-radius:14px}.metrics-hero-n{font-family:var(--font-display);font-weight:800;font-size:48px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.metrics-hero-l{color:var(--muted);font-size:14px;margin-top:6px;font-weight:600}.metrics-hero-l span{color:var(--faint);font-weight:500}.metrics-funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 26px}.metrics-tile{background:var(--surface2);border-radius:12px;padding:14px}.metrics-tile-n{font-family:var(--font-display);font-weight:800;font-size:26px;color:var(--ink);font-variant-numeric:tabular-nums}.metrics-tile-l{color:var(--muted);font-size:12.5px;margin-top:2px}.metrics-tile-s{color:var(--green);font-size:11.5px;font-weight:700;margin-top:3px}.metrics-chart-h{font-weight:700;font-size:13px;color:var(--ink);margin:6px 0 10px}.metrics-bars{display:flex;align-items:flex-end;gap:8px;height:150px}.metrics-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}.metrics-bar-n{font-size:11px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.metrics-bar-track{width:100%;flex:1;display:flex;align-items:flex-end}.metrics-bar-fill{width:100%;min-height:2px;background:var(--mark);border-radius:5px 5px 0 0}.metrics-bar-x{font-size:10px;color:var(--faint);white-space:nowrap}.metrics-empty{color:var(--faint);font-size:13px}@media (max-width: 560px){.metrics-funnel{grid-template-columns:repeat(2,1fr)}}.aiwiz{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-wizard);background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;animation:aiwizIn .22s ease both}@keyframes aiwizIn{0%{opacity:0}to{opacity:1}}.aiwiz-top{flex:none;display:flex;align-items:center;gap:12px;padding:16px 20px;max-width:640px;width:100%;margin:0 auto;box-sizing:border-box}.aiwiz-mark{font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--on-mark);background:var(--mark);padding:2px 9px;border-radius:5px;letter-spacing:-.3px}.aiwiz-back{background:none;border:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;padding:6px 8px;border-radius:8px}.aiwiz-back:hover{background:var(--surface2);color:var(--ink)}.aiwiz-progress{color:var(--faint);font-size:12.5px;font-weight:600}.aiwiz-x{margin-left:auto;background:none;border:none;color:var(--faint);font-size:16px;cursor:pointer;padding:6px 8px;border-radius:8px;line-height:1}.aiwiz-body{flex:1;width:100%;max-width:640px;margin:0 auto;padding:8px 20px 48px;box-sizing:border-box}.aiwiz-q{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1.12;margin:12px 0 6px;color:var(--ink)}.aiwiz-qsub{color:var(--muted);font-size:15px;margin:0 0 24px;line-height:1.5}.aiwiz-cards{display:flex;flex-direction:column;gap:12px}.aiwiz-card{display:flex;align-items:center;gap:15px;text-align:left;width:100%;padding:17px 18px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-xl);cursor:pointer;font:inherit;transition:border-color .15s ease,transform .06s ease,box-shadow .15s ease;animation:aiwizCardIn .4s cubic-bezier(.2,.7,.2,1) both}.aiwiz-cards .aiwiz-card:nth-child(2){animation-delay:.05s}.aiwiz-cards .aiwiz-card:nth-child(3){animation-delay:.1s}.aiwiz-cards .aiwiz-card:nth-child(4){animation-delay:.15s}@keyframes aiwizCardIn{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}.aiwiz-card:hover{border-color:color-mix(in srgb,var(--mark) 55%,var(--line));box-shadow:0 6px 20px #00000012}.aiwiz-card:active{transform:translateY(1px)}.aiwiz-card.rec{border-color:var(--mark);background:#ffde5c14}.aiwiz-card-ico{flex:none;width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:23px;background:var(--surface2);border-radius:12px}.aiwiz-card.rec .aiwiz-card-ico{background:#ffde5c47}.aiwiz-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.aiwiz-card-title{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink);display:flex;align-items:center;gap:8px}.aiwiz-card-desc{color:var(--muted);font-size:13.5px;line-height:1.4}.aiwiz-tag{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:var(--surface2);border-radius:999px;padding:2px 7px}.aiwiz-badge{flex:none;font-size:11px;font-weight:700;color:var(--muted);background:var(--surface2);border-radius:999px;padding:3px 9px}.aiwiz-badge.on{color:var(--on-mark);background:var(--mark)}.aiwiz-card-arrow{flex:none;color:var(--faint);font-size:18px}.aiwiz-card:hover .aiwiz-card-arrow{color:var(--accent-ink)}.aiwiz-setup{animation:aiwizStepIn .28s cubic-bezier(.2,.7,.2,1) both}@keyframes aiwizStepIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.aiwiz-btn{display:inline-block;background:var(--ink);color:var(--bg);font-weight:700;text-decoration:none;padding:10px 16px;border-radius:11px;margin-top:4px;font-size:14px;transition:var(--tr)}.aiwiz-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.aiwiz-btn:active{transform:scale(var(--press))}.aiwiz-fine{color:var(--faint);font-size:12.5px;line-height:1.5;margin:8px 0 0}.aiwiz-fine code,.aiwiz-setup code{font-family:ui-monospace,Menlo,monospace;font-size:12px;background:var(--surface2);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.aiwiz-hint{font-size:12.5px;margin:6px 0 0;line-height:1.45}.aiwiz-hint.off{color:var(--coral)}.aiwiz-hint.ok{color:var(--green);font-weight:600}.aiwiz-err{color:var(--coral);font-size:13px;margin:10px 0 0}.aiwiz-toggle{display:inline-flex;gap:4px;background:var(--surface2);border-radius:10px;padding:3px;margin:0 0 18px}.aiwiz-toggle button{background:none;border:none;font:inherit;font-weight:600;font-size:13px;color:var(--muted);padding:6px 14px;border-radius:8px;cursor:pointer;transition:var(--tr)}.aiwiz-toggle button:not(.on):hover{background:var(--hover-wash);color:var(--ink)}.aiwiz-toggle button:active{transform:scale(var(--press))}.aiwiz-toggle button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000014}[data-theme=dark] .aiwiz-toggle button.on{background:color-mix(in srgb,var(--ink) 12%,var(--surface2));box-shadow:inset 0 1px #fff0d214}.aiwiz-cta{width:100%;margin-top:20px;padding:13px;border:none;border-radius:12px;background:var(--mark);color:var(--on-mark);font-family:var(--font-display);font-weight:800;font-size:15px;cursor:pointer}.aiwiz-cta:disabled{opacity:.55;cursor:default}.aiwiz-done{text-align:center;padding-top:8vh}.aiwiz-done-mark{font-size:44px;color:var(--mark)}.aiwiz-done .aiwiz-q{margin-top:12px}.aiwiz-done .aiwiz-cta{max-width:280px;margin:24px auto 0}@media (prefers-reduced-motion: reduce){.aiwiz,.aiwiz-card,.aiwiz-setup{animation:none}}@media (max-width: 560px){.aiwiz-q{font-size:25px}.aiwiz-card{padding:15px;gap:12px}}.guide-compare{width:100%;border-collapse:collapse;margin:12px 0;font-size:13.5px}.guide-compare th,.guide-compare td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line)}.guide-compare th{font-family:var(--font-display);font-weight:700;color:var(--ink)}.guide-compare td{color:var(--ink)}.billing-toast{margin:10px auto 0;max-width:760px;padding:10px 16px;border-radius:12px;background:color-mix(in srgb,var(--mark) 30%,transparent);border:1px solid var(--line);font-family:var(--font-body);font-size:14px;text-align:center;animation:billingin var(--dur-3) var(--ease-bounce) both}@keyframes billingin{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.billing-toast{animation:none}}.composer textarea{flex:1;resize:none;font-family:var(--font-body);font-size:14px;line-height:1.4;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:13px;padding:10px 13px;max-height:120px}.composer textarea:focus{outline:none;border-color:color-mix(in srgb,var(--mark) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--mark) 30%,transparent)}.send{width:38px;height:38px;flex:none;border-radius:11px;border:none;cursor:pointer;font-size:16px;font-weight:700;background:var(--mark);color:var(--on-mark);box-shadow:var(--mark-glow);display:grid;place-items:center;line-height:1;transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.send:disabled{opacity:.45;cursor:default}.send.stop{background:var(--coral);color:#fff;box-shadow:none}.buddy-err{margin:0 14px 10px;padding:10px 12px;background:var(--coral-soft);color:var(--coral-ink);border-left:3px solid var(--coral);border-radius:11px;font-size:12.5px;line-height:1.45;display:flex;align-items:center;gap:10px}.buddy-err-msg{flex:1;min-width:0}.buddy-err-acts{flex:none;display:flex;align-items:center;gap:6px}.buddy-err-btn{background:color-mix(in srgb,var(--coral) 18%,transparent);color:var(--coral-ink);border:1px solid color-mix(in srgb,var(--coral) 40%,transparent);font:inherit;font-weight:700;font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer;white-space:nowrap}.buddy-err-x{background:none;border:none;color:var(--coral-ink);opacity:.8;font-size:13px;cursor:pointer;padding:2px 4px;line-height:1}.chat-indexing.muted{animation:none;opacity:.8}.chat-discover{display:block;margin:14px auto 0;background:none;border:none;font-family:var(--font-body);font-size:12px;color:var(--faint);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.chat-discover:hover{color:var(--accent-ink)}.aimenu-manage{display:block;width:100%;text-align:left;background:none;border:none;font:inherit;font-size:11.5px;font-weight:600;color:var(--muted);cursor:pointer;padding:3px 11px 9px;transition:var(--tr)}.aimenu-manage:hover{color:var(--ink)}.aiwiz-manage{display:block;margin:18px 0 0;background:none;border:none;font:inherit;font-weight:700;font-size:13px;color:var(--accent-ink);cursor:pointer;text-align:left}.aiwiz-manage:hover{text-decoration:underline}.aiwiz-privacy{margin:18px 0 0;color:var(--faint);font-size:12.5px;line-height:1.55}.aiwiz-faq{margin:22px 0 0;border-top:1px solid var(--line);padding-top:16px}.aiwiz-faq-h{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ink);margin:0 0 8px}.aiwiz-faq-item{border-bottom:1px solid var(--line)}.aiwiz-faq-item>summary{list-style:none;cursor:pointer;padding:11px 8px;margin:0 -6px;border-radius:8px;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:8px;transition:var(--tr)}.aiwiz-faq-item>summary:hover{background:var(--hover-wash)}.aiwiz-faq-item>summary::-webkit-details-marker{display:none}.aiwiz-faq-item>summary:before{content:"＋";color:var(--faint);font-weight:700}.aiwiz-faq-item[open]>summary:before{content:"－"}.aiwiz-faq-a{padding:0 2px 12px 22px;color:var(--muted);font-size:13.5px;line-height:1.55}.aimgr-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-scrim);background:#0000006b;display:grid;place-items:center;padding:20px;box-sizing:border-box}[data-theme=dark] .aimgr-scrim{background:#000000a8}.aimgr{width:100%;max-width:460px;max-height:86vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:20px;box-sizing:border-box;box-shadow:0 18px 60px #00000047}.aimgr-head{display:flex;align-items:center;gap:8px}.aimgr-title{font-family:var(--font-display);font-weight:800;font-size:20px;color:var(--ink);margin:0;flex:1}.aimgr-sub{color:var(--muted);font-size:13px;line-height:1.5;margin:4px 0 16px}.aimgr-list{display:flex;flex-direction:column;gap:10px}.aimgr-row{border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;background:var(--surface)}.aimgr-row.active{border-color:var(--mark);background:#ffde5c14}.aimgr-row-main{display:flex;align-items:center;gap:10px}.aimgr-name{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink);flex:1;min-width:0}.aimgr-state{flex:none;font-size:11px;font-weight:700;color:var(--muted);background:var(--surface2);border-radius:999px;padding:3px 9px}.aimgr-state.on{color:var(--on-mark);background:var(--mark)}.aimgr-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px}.aimgr-meta{color:var(--faint);font-size:12px;flex:1}.aimgr-btn{background:var(--surface2);color:var(--ink);border:1px solid var(--hairline);font:inherit;font-weight:700;font-size:12.5px;padding:6px 12px;border-radius:9px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}.aimgr-btn:hover{border-color:var(--muted)}.aimgr-btn:disabled{opacity:.55;cursor:default}.aimgr-btn.primary{background:var(--mark);color:var(--on-mark);border-color:transparent}.aimgr-btn.danger{background:var(--coral);color:#fff;border-color:transparent}.aimgr-confirm-q{flex:1;min-width:0;color:var(--ink);font-size:12.5px;line-height:1.4}.aimgr-add{width:100%;margin-top:16px;padding:11px;border:1.5px dashed var(--line);border-radius:12px;background:none;font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--accent-ink);cursor:pointer}.aimgr-add:hover{border-color:var(--mark);background:var(--surface2)}.bset-faint{color:var(--faint);font-weight:500}.selectwrap{position:relative}select.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;padding-right:32px;cursor:pointer}.calc-toggle{font-family:var(--font-display);font-weight:700;font-size:12.5px;color:var(--ink);background:var(--surface2);border:1px solid var(--line);padding:7px 13px;border-radius:var(--r-pill);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .2s}.calc-toggle:hover{background:var(--hover-wash);border-color:var(--hairline);color:var(--ink)}.asn-list{margin-bottom:22px}.asn-row{display:flex;align-items:center;gap:14px;padding:12px 20px;border-top:1px solid var(--line)}.asn-meta{flex:1;min-width:0}.asn-name{font-weight:600;font-size:15px;color:var(--ink)}.asn-row.rowlink{cursor:pointer;transition:background var(--dur-1) var(--ease-out)}.asn-row.rowlink:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.asn-row.rowlink:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 4%,transparent);box-shadow:inset 3px 0 0 0 var(--mark)}.asn-sub{font-size:12px;font-weight:600;color:var(--muted);margin-top:2px}.asn-grade{text-align:right;font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--grade-good);display:flex;flex-direction:column;line-height:1.1;flex:none}.asn-grade small{font-family:var(--font-body);font-weight:600;font-size:11px;color:var(--muted)}.asn-grade.mid{color:var(--grade-mid)}.asn-grade.low{color:var(--grade-low)}.asn-ungraded{font-family:var(--font-body);font-weight:600;font-size:12px;color:var(--faint)}.dd{position:relative}.dd-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-menu-scrim)}.dd-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--font-body);font-weight:600;font-size:14px;padding:10px 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .2s}.dd-cur{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-caret{color:var(--muted);font-size:11px;flex:none}.dd-menu{position:absolute;z-index:var(--z-chrome);top:calc(100% + 6px);left:0;right:0;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow);padding:6px;max-height:260px;overflow-y:auto;overscroll-behavior:contain}.dd-opt{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-family:var(--font-body);font-weight:600;font-size:13.5px;color:var(--ink);background:none;border:none;cursor:pointer;padding:9px 11px;border-radius:9px}.dd-opt:hover{background:var(--surface2)}.dd-opt.on{background:var(--mark);color:var(--on-mark);box-shadow:var(--mark-glow)}.dd-check{font-weight:800;flex:none}.dp{position:relative}.dp-trigger{width:100%;display:flex;align-items:center;gap:9px;font-family:var(--font-body);font-weight:600;font-size:14px;padding:10px 12px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .2s;text-align:left}.dp-trigger.dp-open{border-color:var(--mark);box-shadow:var(--mark-glow)}.dp-ico{display:grid;place-items:center;color:var(--muted);flex:none}.dp-val{flex:1 1 auto}.dp-val.dp-ph{color:var(--faint);font-weight:500}.dp-caret{color:var(--faint);font-size:12px;flex:none}.dp-clear{color:var(--faint);font-size:13px;flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:6px;transition:background .15s,color .15s}.dp-clear:hover{background:var(--surface2);color:var(--ink)}.dp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-picker-scrim)}.dp-pop{z-index:var(--z-picker);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow);padding:12px}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dp-title{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--ink)}.dp-nav{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-size:16px;line-height:1;display:grid;place-items:center;transition:background .15s}.dp-nav:hover{background:var(--surface2)}.dp-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}.dp-dow span{text-align:center;font-family:var(--font-display);font-weight:700;font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--faint);padding:4px 0}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-empty{height:33px}.dp-cell{height:33px;border:none;background:none;cursor:pointer;border-radius:9px;font-family:var(--font-display);font-weight:600;font-size:13px;color:var(--ink);transition:background .12s,box-shadow .12s,color .12s}.dp-cell:hover{background:var(--surface2)}.dp-cell.dim{color:var(--faint);opacity:.55}.dp-cell.today{box-shadow:inset 0 0 0 1.5px var(--mark)}.dp-cell.sel{background:var(--mark);color:var(--on-mark);box-shadow:var(--mark-glow);font-weight:800}.dp-foot{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.dp-foot-btn{flex:1;font-family:var(--font-body);font-weight:600;font-size:12.5px;color:var(--muted);background:var(--surface2);border:none;border-radius:9px;padding:8px 0;cursor:pointer;transition:background .15s,color .15s}.dp-foot-btn:hover{background:var(--hover-wash);color:var(--ink)}.dd-search{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:13.5px;padding:8px 10px;margin-bottom:6px;border:1px solid var(--line);border-radius:9px;background:var(--surface2);color:var(--ink);outline:none}.dd-search:focus{border-color:var(--mark)}.dd-empty{padding:9px 11px;font-size:13px;color:var(--muted)}.toast-wrap{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;background:var(--ink);color:var(--bg, #fff);font-family:var(--font-body);font-size:13.5px;padding:10px 12px 10px 15px;border-radius:12px;box-shadow:0 12px 30px #00000047;animation:toastin var(--dur-3) var(--ease-bounce) both}.toast.leaving{animation:toastout var(--dur-2) var(--ease-out) forwards}@keyframes toastin{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}@keyframes toastout{to{opacity:0;transform:translateY(10px) scale(.97)}}@media (prefers-reduced-motion: reduce){.toast,.toast.leaving{animation:none}}.toast-msg{font-weight:600}.toast-act{font-family:var(--font-display);font-weight:800;font-size:13px;background:var(--mark);color:var(--on-mark);border:none;border-radius:var(--r-pill);padding:5px 12px;cursor:pointer}.toast-x{background:none;border:none;color:inherit;opacity:.65;cursor:pointer;font-size:12px;padding:2px 4px}.toast-x:hover{opacity:1}.cgpt-ok{margin-top:10px;font-size:13px;font-weight:600;color:var(--green);background:var(--surface2);border-radius:11px;padding:9px 12px}.cgpt-err{margin-top:10px;font-size:13px;font-weight:600;color:var(--coral);background:var(--surface2);border-radius:11px;padding:9px 12px}.acct-menu{max-height:80vh;overflow-y:auto;overscroll-behavior:contain}.acct-menu .acct-item{background:none;transition:background var(--dur-1) var(--ease-out)}.acct-menu .acct-item:hover{background:color-mix(in srgb,var(--ink) 12%,var(--surface))}.acct-chip{display:inline-flex;align-items:center;gap:6px;height:var(--ctl-h);padding:0 12px;border-radius:var(--ctl-radius);background:var(--ctl-fill);border:1px solid var(--hairline);box-shadow:none;color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;max-width:200px;white-space:nowrap;transition:background var(--dur-2) var(--ease-out)}.acct-chip:hover{background:var(--ctl-fill-hover)}.acct-chip .acct-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-chip .caret-rot{flex:none}.cal-export{display:inline-flex;align-items:center;gap:6px;height:var(--ctl-h);padding:0 14px;margin-left:6px;border-radius:var(--r-pill);background:var(--surface2);border:1px solid var(--hairline);box-shadow:none;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;text-decoration:none;transition:var(--tr)}.cal-export:hover{background:var(--ctl-fill-hover)}.cal-export:active{transform:scale(var(--press))}.guide .backbtn{margin-bottom:14px}.guide-card{padding:20px 24px;margin-bottom:18px}.guide-card h2{font-family:var(--font-display);font-weight:800;font-size:19px}.guide-card h3{font-family:var(--font-display);font-weight:700;font-size:15px;margin:16px 0 6px}.guide-card p{color:var(--ink);font-size:14.5px;line-height:1.6;margin:8px 0}.guide-card ol,.guide-card ul{margin:8px 0;padding-left:22px}.guide-card li{font-size:14px;line-height:1.65;color:var(--ink);margin:4px 0}.guide-card a{color:var(--coral);font-weight:600}.guide-card code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px;background:var(--surface2);border:1px solid var(--line);border-radius:6px;padding:1px 6px}.guide-note{font-size:13px;color:var(--muted);background:var(--surface2);border-radius:11px;padding:10px 13px}.guide-tabs li{margin:8px 0}.hl-steps{list-style:none;margin:4px 0 0;padding:0}.hl-step{position:relative;display:grid;grid-template-columns:28px 1fr;gap:12px;padding-bottom:18px}.hl-step:last-child{padding-bottom:0}.hl-step:before{content:"";position:absolute;left:13px;top:30px;bottom:2px;width:2px;background:var(--line)}.hl-step:last-child:before{display:none}.hl-step-num{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;background:var(--mark);color:var(--on-mark);font-family:var(--font-display);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:var(--mark-glow, none)}.hl-step-body{min-width:0;padding-top:3px}.hl-step-title{font-weight:700;font-size:14px;color:var(--ink)}.hl-uichip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:7px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);font-weight:700;font-size:12.5px;white-space:nowrap}.hl-callout{font-size:12.5px;line-height:1.5;color:var(--ink);background:#ffde5c33;border:1px solid var(--line);border-radius:10px;padding:9px 12px}.demo-or{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--faint);font-size:12px}.demo-or:before,.demo-or:after{content:"";flex:1;height:1px;background:var(--line)}.demo-try{width:100%;padding:11px 13px;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--mark) 70%,var(--hairline));background:#ffde5c29;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 2px 6px -2px color-mix(in srgb,var(--accent-ink) 22%,transparent);transition:background .15s ease,transform .05s ease}.demo-try:active{transform:translateY(1px)}@keyframes demoBarIn{0%{transform:translateY(105%);opacity:0}to{transform:translateY(0);opacity:1}}.demo-bar-anim{animation:demoBarIn .38s cubic-bezier(.2,.7,.2,1) both}@media (prefers-reduced-motion: reduce){.demo-bar-anim{animation:none}}.set-link{color:var(--ink);font-weight:700}.set-link:hover{background:var(--surface2)}.buddy-tab-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:28px}.buddy-tab-head h1{font-family:var(--font-display);font-weight:800;font-size:34px}.buddy-tab{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start;margin-top:0}.buddy-hist{overflow:hidden}.buddy-hist .newchat{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--on-mark);border-radius:9px;padding:5px 11px;cursor:pointer}.hist-list{max-height:60vh;overflow-y:auto}.hist-row{display:flex;align-items:center;gap:8px;padding:11px 16px;border-top:1px solid var(--line);cursor:pointer}.hist-row:hover{background:var(--surface2)}.hist-row.on{background:var(--surface2);box-shadow:inset 3px 0 0 var(--mark)}.hist-title{flex:1;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hist-del{border:none;background:none;color:var(--faint);cursor:pointer;font-size:12px;opacity:0}.hist-row:hover .hist-del,.hist-row:focus-within .hist-del,.hist-del:focus-visible{opacity:1}.hist-select{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0;flex:1}.buddy-main{display:flex;flex-direction:column;height:calc(100dvh - 290px);min-height:340px;max-height:72vh}.buddy-thread{flex:1;overflow-y:auto;min-height:0}@media (max-width: 880px){.buddy-tab{grid-template-columns:1fr}.buddy-hist .hist-list{max-height:180px}}@media (max-width: 720px){.buddy-fab{bottom:86px;right:14px}.buddy-pop{bottom:84px;right:10px;left:10px;width:auto;height:70vh}}.brandbtn{border:none;background:none;cursor:pointer}.brandbtn:hover .b{transform:rotate(-4deg) scale(1.04)}.brand .b{transition:transform .15s}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-appmenu-scrim)}.appmenu{position:fixed;top:64px;right:30px;z-index:var(--z-appmenu);width:240px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow);padding:7px}.appmenu,.acct-menu,.plus-info-pop,.aimenu-pop,.dd-menu,.dp-pop,.buddy-pop,.m-sheet,.consent-card{background:var(--card-sheen),var(--surface);-webkit-backdrop-filter:url(#liquid-glass);backdrop-filter:url(#liquid-glass)}.appmenu-head{font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);padding:8px 10px 4px}.appmenu-subhead{font-family:var(--font-display);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);padding:12px 10px 4px}.appmenu button{display:block;width:100%;text-align:left;font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--ink);background:none;border:none;cursor:pointer;padding:10px;border-radius:10px}.appmenu button:hover{background:var(--surface2)}.appmenu-foot{font-size:12px;color:var(--faint);line-height:1.45;padding:8px 10px 4px;border-top:1px solid var(--line);margin-top:4px}.appmenu-sep{height:1px;background:var(--line);margin:6px 8px}.set-row.set-sub{padding-left:22px;font-size:13px;color:var(--muted)}.reminder-hint{font-size:11.5px;color:var(--faint);padding:2px 10px 6px 22px}.m-meta{flex:1;min-width:0}.m-name{font-family:var(--font-body);font-weight:600;font-size:14.5px}.m-sub{font-size:12.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.switch{width:44px;height:26px;flex:none;border-radius:var(--r-pill);border:none;background:color-mix(in srgb,var(--ink) 20%,transparent);cursor:pointer;position:relative;transition:background .18s;padding:0}.switch.on{background:var(--green)}.switch .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:var(--r-pill);background:#fff;transition:transform .18s;box-shadow:0 1px 2px #0000004d}.switch.on .knob{transform:translate(18px)}.optional-card{margin-top:22px}.mini-cal{margin-top:12px;padding:14px 18px;cursor:pointer;background:var(--cal-bg);border-color:var(--cal-line);transition:box-shadow .15s,transform .15s}.mini-cal:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.mini-cal .card-h{margin-bottom:10px}.mini-cal .card-h h2{font-size:14px}.mini-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.mini-dow span{text-align:center;font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.04em;color:var(--cal-label)}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--cal-line);border-left:1px solid var(--cal-line);border-radius:10px;overflow:hidden;background:var(--cal-bg);box-shadow:none}[data-theme=dark] .mini-grid{box-shadow:inset 0 1px 2px #0000004d}.mini-cell{min-height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);transition:background .12s}.mini-cell:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.mini-cell.dim{opacity:.32}.mini-datecell{aspect-ratio:auto;font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink)}.mini-datecell:hover{background:transparent}.mini-num{font-family:var(--font-display);font-weight:600;font-size:11.5px;color:var(--cal-num);width:20px;height:20px;display:grid;place-items:center;border-radius:var(--r-pill)}.mini-cell.today .mini-num{background:var(--mark);color:var(--on-mark);box-shadow:var(--mark-glow)}.mini-cell.today{box-shadow:inset 0 0 0 2px var(--mark)}.mini-dots{display:flex;gap:2px;height:5px}.mini-dot{width:4px;height:4px;border-radius:var(--r-pill);background:var(--coral)}.mini-dot.opt{background:var(--muted)}.mini-dot.done{background:var(--green)}.mini-dot.due{background:var(--coral)}.muted-h{color:var(--ink)!important;opacity:.9}.opt-row{display:flex;align-items:center;gap:14px;padding:12px 22px;border-top:1px solid var(--line);opacity:1}.optional-card{overflow:hidden}.optional-card .opt-row{background:var(--bg-deep)}.optional-card .opt-row:first-of-type{box-shadow:inset 0 1px 2px #0000000a}[data-theme=dark] .optional-card .opt-row:first-of-type{box-shadow:inset 0 1px 2px #0000004d}.optional-card .count-tag{font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.01em;color:var(--accent-ink);background:color-mix(in srgb,var(--mark) 16%,transparent);border-radius:var(--r-pill);padding:3px 10px}.opt-dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--faint);flex:none}.opt-row .t-title{font-weight:500}.mascot-img{position:relative;display:inline-block;overflow:visible;flex:none;background:transparent}.mascot-img svg{width:100%;height:100%;display:block;overflow:visible}.mascot-img img{width:100%;height:100%;object-fit:contain;display:block}.ai-spark{position:absolute;top:-4px;right:-4px;font-size:13px;line-height:1;color:#e0ae00;text-shadow:0 0 3px rgba(255,222,92,.45);animation:twinkle 2.2s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}@media (prefers-reduced-motion: reduce){.ai-spark{animation:none}}.buddy-fab{padding:0;gap:0;border:none;background:transparent;box-shadow:none}.buddy-fab:hover{transform:translateY(-3px) scale(1.04)}.buddy-fab .mascot-img{filter:drop-shadow(0 7px 10px rgba(0,0,0,.3))}.buddy-fab .ai-spark{top:2px;right:2px}.buddy-fab.dragging,.buddy-fab.ducking{transform-origin:bottom right}.buddy-fab.dragging{opacity:.5;transform:scale(.6)}.buddy-fab.ducking{opacity:.3;transform:scale(.55)}.buddy-fab.ducking:hover,.buddy-fab.ducking:focus-within{opacity:1;transform:scale(1)}.classgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:6px}@media (min-width: 992px){.classgrid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1200px){.cal-shell{grid-template-columns:1fr 324px}}.classcard{position:relative;padding:18px 20px;cursor:pointer;transition:transform .15s,box-shadow .15s}.classcard:hover{transform:translateY(-2px)}.classcard.done{opacity:.6}.classcard.done:hover{opacity:.8}.circle{position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:var(--r-pill);border:2px solid var(--line);background:var(--surface);cursor:pointer;padding:0;transition:background .15s,border-color .15s}.circle:hover{border-color:var(--green)}.circle.checked{background:var(--green);border-color:var(--green)}.circle.checked:after{content:"✓";color:#fff;font-size:13px;position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.cc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-right:30px}.cc-name{font-family:var(--font-display);font-weight:700;font-size:16px}.cc-name small{display:block;font-family:var(--font-body);font-weight:500;font-size:12px;color:var(--faint);margin-top:1px}.cc-grade{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1;color:var(--grade-good)}.cc-grade.mid{color:var(--grade-mid)}.cc-grade.low{color:var(--grade-low)}.classcard .bar{margin:13px 0 10px}.cc-foot{display:flex;align-items:center;justify-content:space-between}.cc-band{font-size:12.5px;color:var(--muted)}.ccolor{position:relative;display:inline-flex}.ccolor-dot{width:15px;height:15px;border-radius:5px;border:1px solid var(--hairline);cursor:pointer;padding:0;flex:none;box-shadow:inset 0 0 0 1px #ffffff38;transition:transform var(--dur-1) var(--ease-out)}.ccolor-dot:hover{transform:scale(1.12)}.ccolor-pop{position:absolute;bottom:calc(100% + 8px);left:-6px;z-index:var(--z-popover);display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:168px;padding:9px;border-radius:var(--r-md);background:var(--card-glass);border:var(--glass-border);box-shadow:var(--shadow-pop)}.ccolor-pop .ccolor-auto{margin-left:auto}[data-theme=dark] .ccolor-pop{background:var(--surface2)}.ccolor-sw{width:20px;height:20px;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform var(--dur-1) var(--ease-out)}.ccolor-sw:hover{transform:scale(1.1)}.ccolor-sw.on{border-color:var(--ink)}.ccolor-auto{font-family:var(--font-display);font-weight:700;font-size:12px;padding:3px 9px;border-radius:var(--r-pill);border:1px solid var(--hairline);background:var(--surface2);color:var(--ink);cursor:pointer}.ccolor-auto.on{border-color:var(--ink)}.completed-h{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin:26px 0 12px}.reveal-completed{margin-top:22px;font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 16px;cursor:pointer}.addgrade{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 14px;cursor:pointer;white-space:nowrap;transition:background var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out)}.addgrade:active{transform:scale(.96)}.backbtn{display:inline-flex;align-items:center;gap:7px;margin:24px 0 8px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:13.5px;cursor:pointer;padding:9px 15px;border-radius:11px;box-shadow:var(--shadow);transition:background .15s,transform .15s}.detail-grade{text-align:right}.dg-num{font-family:var(--font-display);font-weight:800;font-size:38px;line-height:1;color:var(--grade-good)}.dg-num.mid{color:var(--grade-mid)}.dg-num.low{color:var(--grade-low)}.dg-lab{font-size:12px;color:var(--faint);margin-top:4px}.teachers{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0 22px;font-size:13.5px;color:var(--muted)}.teacher b{color:var(--ink);font-weight:600}.cd-back{margin:0 0 6px;padding:7px 12px;font-size:13px;align-self:flex-start}.cd-grid{display:grid;grid-template-columns:196px 1fr;gap:24px;align-items:start;margin-top:12px}.cd-rail{position:sticky;top:106px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 118px);overflow-y:auto;scrollbar-width:none}.cd-rail::-webkit-scrollbar{display:none}.cd-rail .ctab-ask{width:100%;justify-content:center;min-height:38px}.more-canvas{display:flex;flex-direction:column;gap:2px;margin-top:2px}.tool-linkpanel{margin:auto;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:32px;color:var(--muted)}.tool-linkpanel .tlp-title{font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--ink);display:flex;align-items:center;gap:8px}.tool-linkpanel p{font-size:14px}.tool-linkpanel .tlp-open{background:var(--mark);color:var(--on-mark);border:none;border-radius:11px;padding:11px 20px;font-family:var(--font-display);font-weight:800;font-size:14px;cursor:pointer;box-shadow:var(--shadow);transition:transform .12s var(--ease-out)}.tool-linkpanel .tlp-open:hover{transform:translateY(-1px)}.tool-linkpanel .tlp-note{font-size:12px;color:var(--faint);max-width:380px;line-height:1.5}.tool-linkpanel .tlp-note a{color:var(--muted);font-weight:700}.tool-inline-wrap{min-width:0}.tool-inline{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);min-height:74vh}.tool-inline-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--surface2)}.tool-inline-title{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ink);margin-right:auto}.tool-inline-btn{font-family:var(--font-display);font-weight:700;font-size:12.5px;color:var(--muted);background:none;border:1px solid var(--line);border-radius:9px;padding:6px 11px;cursor:pointer;transition:background .12s,color .12s,transform .12s}.tool-inline-btn:hover{background:var(--surface);color:var(--ink)}.tool-inline-btn:active{transform:scale(.96)}.tool-inline-btn.open{color:var(--on-mark);background:var(--mark);border-color:var(--mark)}.tool-inline-stage{position:relative;flex:1 1 auto;display:flex;min-height:0}.tool-inline-view{flex:1 1 auto;width:100%;border:none;background:var(--surface)}.tool-inline-escape{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:2;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:11px;font-size:12.5px;color:var(--muted);background:var(--surface);border:1px solid var(--line);box-shadow:0 6px 20px -6px #0003}.tool-inline-escape button{font:inherit;font-weight:700;color:var(--ink);background:none;border:none;cursor:pointer;text-decoration:underline}.tool-inline-escape button:hover{color:var(--accent-ink)}.more-canvas-more{width:100%;font-family:var(--font-body);font-weight:600;text-align:left;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:9px;font-size:12.5px;color:var(--faint);transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.more-canvas-more:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--muted)}.more-canvas-more .mc-caret{font-size:10px;width:10px;flex:none}.slidetabs.rail .slidetab.mc-nested{padding-left:22px;font-size:13px}.cd-main{min-width:0}.cd-swap{animation:cd-swap-in .16s var(--ease-out) both}@keyframes cd-swap-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion: reduce){.cd-swap{animation:none}}.cd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.cd-head h1{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1.1}.cd-id{min-width:0}.cd-id .sub{color:var(--muted);font-size:14px;margin-top:2px}.cd-id .teachers{margin:8px 0 0}.cd-meta{margin-top:8px;font-size:12.5px;color:var(--faint)}.cd-content{min-width:0}.cd-rail-menu{display:flex;flex-direction:column;width:100%;border-radius:14px;padding:6px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06);box-shadow:0 6px 22px -10px #0000001a}[data-theme=dark] .cd-rail-menu{background:#28282e80;border:1px solid rgba(255,255,255,.08)}.slidetabs.rail{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:2px;width:100%;background:none;border:none;box-shadow:none;padding:0}.slidetabs.rail .slidetab:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.slidetabs.rail .slidetab:focus-visible,.more-canvas-more:focus-visible{outline:none;box-shadow:none}.slidetabs.rail .slidetab{align-self:flex-start;width:auto;max-width:100%;text-align:left;font-size:14px;color:color-mix(in srgb,var(--ink) 78%,var(--muted));padding:7px 10px;border-radius:9px;white-space:normal}.slidetabs.rail .slidetab:hover{color:var(--ink)}.slidetabs.rail .slidetab.on{background:none;color:var(--on-mark);font-weight:600}@media (max-width: 760px){.cd-grid{grid-template-columns:minmax(0,1fr);gap:12px}.cd-rail{position:static;max-height:none;overflow-y:visible}.slidetabs.rail{flex-direction:row;overflow-x:auto;scrollbar-width:none}.slidetabs.rail::-webkit-scrollbar{display:none}.slidetabs.rail .slidetab{width:auto;white-space:nowrap}.cd-rail .ctab-ask{width:100%}.cd-head h1{font-size:26px}}.ctab-ask{flex:none}.ccontent{display:flex;flex-direction:column;gap:16px}.module-card{padding:0;overflow:hidden}.module-h{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:15px 18px}.module-h h3{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink);flex:1}.module-caret{color:var(--faint);font-size:12px;width:12px}.module-items{display:flex;flex-direction:column;padding:2px 12px 12px}.mi-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:14.5px}.mi-row:hover{background:var(--surface2)}.mi-ico{flex:none;width:20px;text-align:center}.mi-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.mi-subhead{font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);padding:12px 10px 4px}.cfile-search{display:block;box-sizing:border-box;width:calc(100% - 20px);margin:0 10px 12px}.cfile-list{display:flex;flex-direction:column;padding:0 10px 12px}.cfile-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:15px}.cfile-row:hover{background:var(--surface2)}.cfile-ico{flex:none;font-size:19px;width:24px;text-align:center}.cfile-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.cfile-meta{flex:none;font-size:12.5px;color:var(--faint);white-space:nowrap}.cpage-list{display:flex;flex-direction:column;padding:4px 12px 14px}.cpage-h{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:12px 10px;font-size:15px;color:var(--ink);border-radius:9px}.cpage-h:hover{background:var(--surface2)}.asn-prose.cpage-body{padding:4px 10px 16px}.announce-card{padding:16px 20px}.announce-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.announce-h h3{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink)}.announce-date{flex:none;font-size:12px;color:var(--faint)}.announce-by{font-size:12px;color:var(--muted);margin:2px 0 8px}.teacher a{color:var(--coral);text-decoration:none}.teacher a:hover{text-decoration:underline}.classmates-card{margin-bottom:18px}.classmate-scroll{max-height:240px;overflow-y:auto;overscroll-behavior:contain;padding:2px 0 4px}.classmate-row{display:flex;align-items:center;gap:11px;padding:8px 20px;min-width:0;border-top:1px solid var(--line)}.classmate-row:first-child{border-top:none}.classmate-av{width:28px;height:28px;border-radius:var(--r-pill);overflow:hidden;flex:none;background:var(--mark);display:grid;place-items:center}.classmate-av img{width:100%;height:100%;object-fit:cover}.classmate-ini{font-family:var(--font-display);font-weight:700;font-size:12.5px;color:var(--ink)}.classmate-name{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.classmate-mail{font-size:12px;color:var(--coral);text-decoration:none;margin-left:auto;white-space:nowrap;flex:none;background:none;border:none;padding:0;font-family:inherit;cursor:pointer}.classmate-mail:hover{text-decoration:underline}.classmate-mail.hl{font-weight:700;color:var(--on-mark);background:var(--mark);padding:2px 9px;border-radius:var(--r-pill);box-shadow:var(--mark-glow)}.breakdown{margin-bottom:18px}.bk-row{display:flex;align-items:center;gap:12px;padding:11px 20px;border-top:1px solid var(--line)}.bk-name{width:38%;font-weight:600;font-size:14px}.bk-bar{flex:1;height:8px;border-radius:5px;background:var(--surface2);overflow:hidden}.bk-bar i{display:block;height:100%;background:var(--mark);border-radius:5px}.bk-pct{font-family:var(--font-display);font-weight:800;font-size:15px;width:46px;text-align:right}.manual-sub{padding:0 22px 12px;font-size:13px;color:var(--muted);line-height:1.5}.manual-form{padding:0 22px 16px;display:flex;flex-direction:column;gap:10px}.manual-form .field{width:100%}.manual-nums{display:flex;align-items:center;gap:8px}.manual-nums .field{width:auto;flex:1}.manual-nums .of{color:var(--faint);font-weight:700}.manual-row{display:flex;align-items:center;gap:12px;padding:11px 20px;border-top:1px solid var(--line)}.modetabs{margin-bottom:16px}@media (max-width: 600px){.classgrid{grid-template-columns:1fr}}.stats.two{grid-template-columns:1fr 1fr}.statbtn{text-align:left;cursor:pointer;font-family:inherit;color:inherit;transition:transform .15s,box-shadow .15s}.statbtn:hover{transform:translateY(-2px);box-shadow:0 6px 16px -8px #3c321e4d}[data-theme=dark] .statbtn:hover{box-shadow:0 6px 16px -8px #0009}.cc-grip{color:var(--faint);font-size:16px;cursor:grab;letter-spacing:-2px}.classcard[draggable=true]{cursor:grab}.classcard.dragging{opacity:.4;outline:2px dashed var(--mark);outline-offset:2px}.calc-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.calc-head-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.calc-table{margin:14px 0 4px}.calc-row{display:grid;grid-template-columns:1fr 78px 78px 28px;gap:8px;align-items:center;margin-bottom:7px}.calc-row.calc-h{font-size:11.5px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;margin-bottom:9px}.calc-row.calc-h span{padding-left:2px}.calc-row .field{width:100%;padding:7px 9px;font-size:13.5px}.calc-del{border:none;background:none;color:var(--faint);cursor:pointer;font-size:12px}.calc-del:hover{color:var(--coral)}.addrow{background:none;border:1px dashed var(--line);color:var(--muted);font-family:var(--font-body);font-weight:600;font-size:13px;border-radius:9px;padding:7px;width:100%;cursor:pointer;margin-top:4px}.addrow:hover{border-color:var(--mark);color:var(--ink)}.calc-final{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.calc-final-h{font-family:var(--font-display);font-weight:700;font-size:14px;margin-bottom:10px}.calc-final-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.calc-final-row label{font-size:12.5px;font-weight:600;color:var(--muted);margin:0}.calc-final-row .field{width:64px;padding:7px 9px;font-size:13.5px}.cf-cur{font-family:var(--font-display);font-weight:800;font-size:15px}.msg.open{background:var(--surface2)}.msg .task{cursor:pointer}.thread{padding:4px 22px 18px;border-top:1px solid var(--line)}.thread-msg{padding:12px 0;border-bottom:1px solid var(--line)}.thread-msg:last-child{border-bottom:none}.thread-meta{font-size:12.5px;color:var(--muted);margin-bottom:6px}.thread-meta b{color:var(--ink);font-weight:600}.thread-body{font-size:14px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}.zero-phrase{animation:phrasein var(--dur-3) var(--ease-out) both}@keyframes phrasein{0%{opacity:0;transform:translateY(5px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}@media (prefers-reduced-motion: reduce){.zero-phrase{animation:none}}.due-scroll{max-height:420px;overflow-y:auto}.joinbtn.icon{padding:7px 10px;font-size:13px}.opt-dot.mine{background:var(--mark);box-shadow:0 0 0 3px var(--mark-strip)}.mine-row{cursor:default}.mine-row .note-del{flex:none;margin:-2px -4px -2px 0}.cal-add{display:flex;align-items:center;gap:8px;padding:14px 22px;border-top:1px solid var(--line)}.cal-add .field{flex:1}.cal-add .field:disabled{opacity:.7;cursor:not-allowed}.note-del{border:none;background:none;color:var(--muted);cursor:pointer;font-size:13px;opacity:.8;padding:4px 8px;border-radius:8px;transition:opacity .15s,background .15s,color .15s}.note-del:hover{opacity:1;color:var(--coral);background:var(--surface2)}.checkbtn{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface);padding:0}.task:hover .checkbtn{border-color:var(--green)}.t-link{cursor:pointer;width:fit-content;max-width:100%}.t-link:hover{text-decoration:underline;text-decoration-color:var(--muted)}.ask-buddy{flex:none;font-family:var(--font-display);font-weight:700;font-size:12px;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 11px;cursor:pointer;white-space:nowrap}@media (max-width: 600px){.ask-buddy{display:none}}@media (max-width: 600px){.ctab-ask{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;font-size:13px}}.asn-page{padding-top:8px}.asn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:6px 0 18px}.asn-head-l{min-width:0;flex:1}.asn-course{font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.asn-head h1{font-family:var(--font-display);font-weight:800;font-size:34px;line-height:1.1;letter-spacing:-.01em}.asn-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.asn-due{font-size:13.5px;color:var(--muted);font-weight:500}.asn-pts{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--faint)}.asn-head-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.asn-grade-card{padding:16px 20px;margin-bottom:18px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.asn-grade-big{font-family:var(--font-display);font-weight:800;font-size:30px;color:var(--green);line-height:1}.asn-grade-big small{font-size:16px;color:var(--faint);font-weight:700}.asn-grade-letter{margin-left:12px;font-size:18px;color:var(--ink)}.asn-comments{flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px}.asn-comment{font-size:13px;color:var(--ink);background:var(--surface2);border-radius:11px;padding:9px 12px;line-height:1.45}.asn-comment b{font-weight:700}.asn-body{padding:4px 0 8px;margin-bottom:22px}.asn-prose{padding:4px 22px 18px;font-size:15px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}.asn-prose h1,.asn-prose h2,.asn-prose h3{font-family:var(--font-display);font-weight:700;margin:18px 0 8px;line-height:1.25}.asn-prose h1{font-size:22px}.asn-prose h2{font-size:19px}.asn-prose h3{font-size:16px}.asn-prose p{margin:10px 0}.asn-prose ul,.asn-prose ol{margin:10px 0;padding-left:24px}.asn-prose li{margin:4px 0}.asn-prose a{color:var(--coral);font-weight:600;text-decoration:none}.asn-prose a:hover{text-decoration:underline}.asn-prose img{max-width:100%;height:auto;border-radius:10px}.asn-prose table{border-collapse:collapse;max-width:100%;margin:12px 0}.asn-prose td,.asn-prose th{border:1px solid var(--line);padding:6px 10px;font-size:14px}.asn-prose code,.asn-prose pre{font-family:ui-monospace,Cascadia Code,monospace;font-size:13px;background:var(--surface2);border-radius:6px;padding:1px 6px}.asn-prose pre{padding:12px 14px;overflow-x:auto}.asn-prose blockquote{border-left:3px solid var(--mark);margin:12px 0;padding:4px 0 4px 14px;color:var(--muted)}.asn-submit{padding:4px 0 18px;margin-bottom:28px}.asn-submit-form{padding:0 22px}.asn-textarea{width:100%;resize:vertical;min-height:140px;font-family:var(--font-body);line-height:1.5}.asn-submit .field{font-size:14px}.asn-file-pick input[type=file]{font-family:var(--font-body);font-size:14px}.asn-submit-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.asn-confirm-q{font-weight:600;font-size:14px;color:var(--ink)}.asn-draft-note{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12.5px;color:var(--ink-soft)}.asn-draft-note>span{display:inline-flex;align-items:center;gap:6px}.asn-draft-note>span:before{content:"";width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--mark) 70%,var(--line))}.asn-draft-note .t-link{font-size:12.5px}.asn-submitted{padding:0 22px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.asn-submitted-badge{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--green);background:var(--green-soft);border-radius:var(--r-pill);padding:5px 14px}.asn-submitted-when{font-size:13px;color:var(--muted)}.asn-sub-detail{font-size:13.5px;color:var(--ink);margin-top:2px}.asn-sub-detail a{color:var(--coral);text-decoration:none}.asn-sub-detail a:hover{text-decoration:underline}.asn-file{display:inline-block;margin-right:10px}.asn-submitted .addgrade{margin-top:8px}.asn-cta{padding:18px 22px 20px;margin-bottom:28px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.asn-cta-title{font-family:var(--font-display);font-weight:800;font-size:17px}.asn-facts{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--muted)}.asn-headsup{margin-top:8px;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5;color:var(--muted)}.asn-cta-sub{font-size:14px;color:var(--ink)}.asn-cta-sub b{font-family:var(--font-display);font-weight:800}.asn-cta-note{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:560px}.asn-cta .joinbtn{margin-top:6px}.ext-embed{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dialog);display:flex;flex-direction:column;background:var(--bg)}.ext-embed-bar{display:flex;align-items:center;gap:14px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.ext-embed-bar .backbtn{margin:0}.ext-embed-title{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--muted)}.ext-embed-bar .joinbtn.ghost{margin-left:auto;margin-top:0;transition:transform .12s var(--ease-out)}.ext-embed-bar .joinbtn.ghost:active{transform:scale(.94)}.reload-ico{display:inline-block}.ext-embed-bar .joinbtn.spinning .reload-ico{animation:ext-spin .6s linear infinite}.ext-embed-stage{position:relative;flex:1 1 auto;display:flex}.ext-embed-view{flex:1 1 auto;width:100%;border:none;background:var(--surface)}.ext-embed-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg);color:var(--muted);font-family:var(--font-display);font-weight:700;font-size:14px}.ext-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--mark);animation:ext-spin .7s linear infinite}@keyframes ext-spin{to{transform:rotate(360deg)}}.quiz-gate .asn-cta-note b{color:var(--ink)}.quiz-play{margin-bottom:28px}.quiz-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 16px;margin-bottom:14px;box-shadow:var(--shadow)}.quiz-progress{font-family:var(--font-display);font-weight:700;font-size:14px}.quiz-timer{margin-left:auto;font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink);background:var(--surface2);border-radius:var(--r-pill);padding:4px 12px;font-variant-numeric:tabular-nums}.quiz-timer.low{color:#fff;background:var(--coral);box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 28%,transparent)}.quiz-saveerr{font-size:12.5px;color:var(--coral);font-weight:600}.quiz-q{padding:16px 20px;margin-bottom:12px}.quiz-q-num{font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.quiz-q .asn-prose{padding:0 0 10px}.quiz-opts{display:flex;flex-direction:column;gap:8px}.quiz-opt{display:flex;align-items:flex-start;gap:11px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-size:14.5px;line-height:1.4;transition:border-color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out)}.quiz-opt:hover{background:var(--surface2)}.quiz-opt.on{border-color:var(--mark);background:color-mix(in srgb,var(--mark) 14%,transparent);box-shadow:var(--mark-glow)}.quiz-opt input{margin-top:3px;flex:none;accent-color:var(--green)}.quiz-opt span p{margin:0}.err-screen{min-height:70vh;display:grid;place-items:center;padding:30px}.err-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:28px 30px;max-width:420px;text-align:center}.err-card h2{font-family:var(--font-display);font-weight:800;font-size:22px;margin-bottom:8px}.err-card p{color:var(--muted);font-size:14.5px;line-height:1.5}.err-ref{margin:16px 0;font-size:13px;color:var(--muted);background:var(--surface2);border-radius:10px;padding:10px}.err-ref b{font-family:ui-monospace,Cascadia Code,monospace;color:var(--ink);letter-spacing:.04em}.err-reload{width:auto;padding:0 20px;height:40px}.joinbtn{font-family:var(--font-display);font-weight:700;font-size:12.5px;text-decoration:none;white-space:nowrap;padding:7px 13px;border-radius:var(--r-pill);background:var(--mark);color:var(--on-mark);box-shadow:var(--mark-glow)}.joinbtn.ghost{background:var(--surface2);color:var(--muted);box-shadow:none}.appmenu .set-row,.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--ink);background:none;border:none;cursor:pointer;padding:9px 10px;border-radius:10px}.set-row:hover{background:var(--surface2)}.switch.sm{width:36px;height:21px;flex:none}.switch.sm .knob{width:15px;height:15px;top:3px;left:3px}.switch.sm.on .knob{transform:translate(15px)}.phone-preview-page{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 16px 40px;background:#16161b}.phone-preview-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;justify-content:center;color:#f3f3f5}.phone-preview-title{font-family:var(--font-display);font-weight:800;font-size:16px}.phone-preview-dims{color:#8a8a92;font-size:12px}.phone-frame{position:relative;flex:none;border-radius:46px;background:#000;overflow:hidden;box-shadow:0 0 0 12px #0b0b0d,0 0 0 14px #34343a,0 26px 70px #0000008c}.phone-island{position:absolute;top:9px;left:50%;transform:translate(-50%);width:92px;height:26px;background:#000;border-radius:var(--r-pill);z-index:2;pointer-events:none}.phone-screen{width:100%;height:100%;border:none;display:block;background:#fff}.phone-preview-hint{color:#8a8a92;font-size:12.5px;max-width:380px;text-align:center;line-height:1.5}body:has(.m-app){padding-bottom:0}.m-app{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.m-header{padding:max(52px,env(safe-area-inset-top)) 16px 10px;position:relative;z-index:3;background:var(--bg)}.m-header:after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;pointer-events:none;background:linear-gradient(var(--bg),transparent)}.m-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:31px}.m-top .m-left{display:flex;align-items:center;gap:8px;flex:none}.m-brand{text-align:center;margin-top:10px}.m-brand .brand{display:inline-flex;font-size:22px}.m-date{text-align:center}.m-date{text-align:center;margin-top:1px;font-size:12px;color:var(--muted);font-weight:600}.m-main{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:6px 14px calc(150px + env(safe-area-inset-bottom))}.m-home{display:flex;flex-direction:column;gap:14px}.m-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.m-sum{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow-card);cursor:pointer;text-align:left;transition:transform .12s}.m-sum:active{transform:scale(.98)}.m-sum-n{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1;color:var(--ink)}.m-sum-n.warn{color:var(--coral)}.m-sum-n.good{color:var(--green)}.m-sum-k{font-size:12px;color:var(--muted);font-weight:600;line-height:1.3}.m-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:14px 14px 8px}.m-card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.m-card-h h2{font-family:var(--font-display);font-weight:700;font-size:16px;margin:0;color:var(--ink)}.m-card-h h2.muted-h{color:var(--muted)}.m-task{display:flex;align-items:center;gap:10px;padding:11px 0;min-height:44px;border-top:1px solid var(--line)}.m-task:first-of-type{border-top:none}.m-task.done .m-task-title{text-decoration:line-through;color:var(--faint)}.m-task-body{flex:1 1 auto;min-width:0;cursor:pointer}.m-task-course{font-size:11px;color:var(--muted);font-weight:700}.m-task-title{font-size:14px;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-task-right{display:flex;align-items:center;gap:8px;flex:none}.m-task .t-due{text-align:right;font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.m-task .t-due small{display:block;font-size:10px;font-weight:600;color:var(--faint)}.m-task .t-due.soon{color:var(--coral)}.ask-buddy.sm{padding:5px 9px;font-size:12px;border-radius:9px}.m-task.opt .opt-dot{flex:none}.m-grade{display:flex;align-items:center;gap:11px;padding:11px 0;min-height:44px;border-top:1px solid var(--line);cursor:pointer}.m-grade:active{background:var(--surface2)}.m-grade:first-of-type{border-top:none}.m-grade-meta{flex:1 1 auto;min-width:0}.m-grade-meta .n{font-size:14px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.m-grade-meta .s{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-nudge{position:relative;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:15px 16px 13px}.m-nudge .lab{font-family:var(--font-display);font-weight:800;font-size:11.5px;color:var(--accent-ink);text-transform:uppercase;letter-spacing:.6px}.m-nudge p{margin:5px 0 10px;font-size:14px;color:var(--ink);line-height:1.45}.m-nudge-x{position:absolute;top:9px;right:9px;width:30px;height:30px;display:grid;place-items:center;border:none;border-radius:50%;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--muted);cursor:pointer;transition:background .14s,color .14s,transform .12s}.m-nudge-x:hover{background:color-mix(in srgb,var(--ink) 12%,transparent);color:var(--ink)}.m-nudge-x:active{transform:scale(.88)}.m-more{margin-top:8px;display:inline-flex;align-items:center;background:var(--surface2);border:1px solid var(--hairline);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:13px;padding:10px 16px;border-radius:var(--r-pill);cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}.m-more:active{transform:scale(.97)}.m-nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:var(--z-nav-mobile);display:flex;justify-content:space-around;gap:2px;padding:8px 6px;border-radius:var(--r-pill);isolation:isolate;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 55%,transparent),color-mix(in srgb,var(--surface) 78%,transparent));backdrop-filter:blur(24px) saturate(190%) brightness(1.05);-webkit-backdrop-filter:blur(24px) saturate(190%) brightness(1.05);border:1px solid rgba(255,255,255,.4);box-shadow:0 12px 36px #14121038,inset 0 1px .5px #ffffffa6,inset 0 -1px 1px #ffffff1a}.m-nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:-1;background:linear-gradient(180deg,#ffffff80,#fff0 55%)}[data-theme=dark] .m-nav{border-color:#ffffff29;box-shadow:0 12px 36px #00000073,inset 0 1px .5px #ffffff38,inset 0 -1px 1px #ffffff0d}[data-theme=dark] .m-nav:before{background:linear-gradient(180deg,#ffffff29,#fff0 55%)}.m-nav-item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px 0;background:none;border:none;cursor:pointer;color:var(--faint);transition:color .15s,transform .12s}.m-nav-item:active{transform:scale(.9)}.m-nav-ico{display:grid;place-items:center;height:25px}.m-nav-item.active{color:var(--accent-ink)}.m-nav-lab{font-family:var(--font-display);font-weight:700;font-size:9.5px;letter-spacing:-.2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-header .acct-chip{padding:6px 11px;font-size:13px;max-width:134px;display:inline-flex;align-items:center;gap:3px}.m-header .acct-chip .acct-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-header .acct-chip .caret-rot{flex:none}.m-header .toggle{width:32px;height:32px}.m-app .buddy-fab{right:14px;bottom:calc(80px + env(safe-area-inset-bottom));padding:0;gap:0;background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.m-app .buddy-fab .mascot{transform:scale(.92)}.m-app .buddy-fab:active{transform:scale(.88)}.m-cal{display:flex;flex-direction:column}.m-cal-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px -14px 6px;padding:8px 14px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 90%,transparent),color-mix(in srgb,var(--bg) 70%,transparent));backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-bottom:1px solid var(--line)}.m-cal-month{font-family:var(--font-display);font-weight:800;font-size:20px;letter-spacing:-.2px;color:var(--ink)}.m-cal-ctrls{display:flex;align-items:center;gap:1px}.m-cal-ctrls button{height:40px;min-width:40px;border-radius:11px;border:none;background:none;color:var(--ink);font-size:20px;display:grid;place-items:center;cursor:pointer;transition:background .13s,transform .12s}.m-cal-ctrls button:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}.m-cal-ctrls button:active{transform:scale(.9)}.m-cal-todaybtn{padding:0 11px;font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--accent-ink)}.m-cal-sync{color:var(--muted);font-size:18px}.m-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 0 6px}.m-cal-dow span{text-align:center;font-size:11px;font-weight:600;color:var(--faint);letter-spacing:.3px}.m-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);animation:m-fadeIn .2s var(--ease-out)}.m-cal-cell{position:relative;height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;cursor:pointer}.m-cal-num{font-size:15px;font-weight:600;color:var(--ink);width:32px;height:32px;display:grid;place-items:center;border-radius:50%;transition:background .14s,color .14s}.m-cal-cell.dim .m-cal-num{color:var(--faint);opacity:.45}.m-cal-cell.today .m-cal-num{box-shadow:inset 0 0 0 1.6px var(--coral);color:var(--coral);font-weight:800}.m-cal-cell.today{box-shadow:inset 0 0 0 2px var(--mark);border-radius:10px}.m-cal-cell.sel .m-cal-num{background:var(--accent-ink);color:var(--on-mark);box-shadow:0 3px 8px color-mix(in srgb,var(--accent-ink) 45%,transparent);font-weight:800}.m-cal-dots{position:absolute;bottom:5px;height:6px;display:flex;gap:3px;align-items:center}.m-cal-dot{width:6px;height:6px;border-radius:50%}.m-cal-dot.asn{background:var(--accent-ink)}.m-cal-dot.per{background:var(--green, #2e9e6b)}.m-cal-day{margin-top:10px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:12px 14px 8px}.m-cal-day-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.m-cal-day-h h2{font-family:var(--font-display);font-weight:700;font-size:16px;margin:0;color:var(--ink)}.m-cal-edit{background:var(--surface2);border:1px solid var(--hairline);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:12.5px;cursor:pointer;padding:9px 13px;border-radius:var(--r-pill);box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}.m-cal-edit:active{transform:scale(.95)}.m-cal-empty{font-size:13px;color:var(--muted);line-height:1.45;padding:8px 0}.m-cal-note{margin-top:8px;font-size:12px;color:var(--muted);text-align:center}.m-cal-rowdot{flex:none;width:8px;height:8px;border-radius:50%}.m-cal-rowdot.asn{background:var(--accent-ink)}.m-cal-rowdot.per{background:var(--green, #2e9e6b)}.m-cal-rowdot.opt{background:var(--faint)}.m-cal-rowdot.done{background:var(--green, #2e9e6b);opacity:.5}.m-dayedit{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dialog);display:flex;flex-direction:column;background:var(--bg);animation:m-pushIn .24s var(--ease-out)}.m-dayedit-h{display:flex;align-items:center;gap:8px;padding:max(12px,env(safe-area-inset-top)) 10px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.m-dayedit-back{background:none;border:none;color:var(--accent-ink);font-family:var(--font-display);font-weight:700;font-size:15px;cursor:pointer;padding:6px;flex:none;min-height:44px}.m-dayedit-date{flex:1;text-align:center;font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink)}.m-dayedit-spacer{width:72px;flex:none}.m-dayedit-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px calc(20px + env(safe-area-inset-bottom))}.m-dayedit-add{display:flex;gap:8px;margin-bottom:8px}.m-dayedit-input{flex:1;min-width:0;height:46px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);padding:0 12px;font-family:Outfit,sans-serif;font-size:14px}.m-dayedit-input:focus{outline:none;border-color:var(--accent-ink)}.m-dayedit-save{flex:none;height:46px;padding:0 18px;border-radius:12px;border:none;background:var(--accent-ink);color:var(--on-mark);font-family:var(--font-display);font-weight:700;font-size:14px;cursor:pointer}.m-dayedit-save:disabled{opacity:.4}.m-dayedit-sec{font-family:var(--font-display);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:16px 0 2px}.m-note-del{flex:none;background:none;border:none;color:var(--faint);font-size:15px;cursor:pointer;padding:8px;min-height:44px}.m-sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dialog-top);display:flex;align-items:flex-end;background:#00000061;animation:m-fadeIn .2s}.m-sheet{width:100%;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:var(--glass-border);border-radius:22px 22px 0 0;padding:8px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #0000004d;animation:m-sheetUp .28s var(--ease-out)}.m-sheet-grip{width:38px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 14px}.m-sheet h3{font-family:var(--font-display);font-weight:800;font-size:17px;margin:0 0 4px;color:var(--ink)}.m-sheet-sub{font-size:13px;color:var(--muted);margin:0 0 14px;line-height:1.4}.m-sheet-btn{display:block;text-align:center;text-decoration:none;padding:14px;border-radius:14px;background:var(--mark);color:var(--on-mark);border:1px solid color-mix(in srgb,var(--mark) 52%,rgba(0,0,0,.3));font-family:var(--font-display);font-weight:700;font-size:14.5px;margin-bottom:8px;box-shadow:inset 0 1px #ffffff80,0 1px 1px #0000001f,0 4px 10px -3px color-mix(in srgb,var(--accent-ink) 45%,transparent)}.m-sheet-cancel{display:block;width:100%;padding:13px;border-radius:14px;border:1px solid var(--line);background:none;color:var(--muted);font-family:var(--font-display);font-weight:700;font-size:14px;cursor:pointer}@keyframes m-pushIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes m-sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes m-fadeIn{0%{opacity:0}to{opacity:1}}.consent-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-consent);display:flex;align-items:center;justify-content:center;padding:24px;background:#14121073;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:m-fadeIn .2s}.consent-card{width:100%;max-width:338px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-xl);padding:26px 24px 18px;text-align:center;box-shadow:var(--shadow-modal);animation:consent-pop .3s var(--ease-spring, cubic-bezier(.2,.9,.3,1.2)) both}.consent-icon{width:54px;height:54px;margin:0 auto 15px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--mark) 26%,var(--surface));color:var(--accent-ink)}.consent-title{font-family:var(--font-display);font-weight:800;font-size:18.5px;line-height:1.25;margin:0 0 9px;color:var(--ink)}.consent-body{font-size:13.5px;line-height:1.5;color:var(--muted);margin:0 0 18px}.consent-track{display:block;width:100%;padding:13px;border:1px solid var(--line);border-radius:14px;background:none;color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:15px;cursor:pointer;margin-bottom:9px;transition:background .14s,transform .12s}.consent-track:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.consent-track:active{transform:scale(.97)}.consent-allow{display:block;width:100%;padding:13px;border:none;border-radius:14px;background:var(--mark);color:var(--on-mark);font-family:var(--font-display);font-weight:700;font-size:15px;cursor:pointer;transition:filter .14s,transform .12s}.consent-allow:active{transform:scale(.97)}.consent-link{display:inline-block;margin-top:13px;font-size:12.5px;font-weight:600;color:var(--muted);text-decoration:none}.consent-link:hover{color:var(--ink);text-decoration:underline}@keyframes consent-pop{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:none}}.m-app .m-oh{display:flex;flex-direction:column;gap:9px;padding:13px 0;border-top:1px solid var(--line)}.m-app .m-oh:first-of-type{border-top:none}.m-app .m-oh-top{display:flex;align-items:flex-start;gap:10px}.m-app .m-oh-top .m-cal-rowdot{margin-top:6px}.m-app .m-task-title.oh{white-space:normal;overflow:visible}.m-app .m-oh-date{font-size:12.5px;font-weight:700;color:var(--muted);padding-left:18px}.m-app .m-oh-actions{display:flex;align-items:center;gap:8px;padding-left:18px}.m-app .m-oh-actions .joinbtn{min-height:38px;display:inline-flex;align-items:center}.m-app .m-oh-actions .joinbtn.icon{padding:0 13px}.m-asn{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-fullscreen);background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch}.m-asn .asn-page{padding:0 0 calc(34px + env(safe-area-inset-bottom))}.m-asn .backbtn{position:sticky;top:max(10px,env(safe-area-inset-top));z-index:10;width:auto;margin:max(12px,env(safe-area-inset-top)) 0 8px 14px;padding:10px 17px 10px 13px;justify-content:flex-start;gap:6px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow);font-size:14.5px}.m-asn .backbtn:hover{transform:none;background:var(--surface);color:var(--ink);border-color:var(--line)}.m-asn .backbtn:active{transform:scale(.95)}.m-asn .asn-head{display:block;margin:4px 0 14px;padding:0 16px}.m-asn .asn-head h1{font-size:23px;margin-top:2px}.m-asn .asn-meta{margin-top:11px;gap:8px 12px}.m-asn .asn-head-r{margin-top:14px;gap:8px}.m-asn .ask-buddy{display:inline-flex;align-items:center;justify-content:center}.m-asn .asn-head-r .ask-buddy,.m-asn .asn-head-r .joinbtn{flex:1;min-height:44px;font-size:13px}.m-asn .card{margin:0 14px 14px;border-radius:16px}.m-asn .card-h{padding:13px 16px 0}.m-asn .card-h h2{font-size:16px}.m-asn .asn-grade-card{display:block;padding:18px 16px;text-align:center}.m-asn .asn-grade-big{font-size:34px}.m-asn .asn-comments{min-width:0;margin-top:14px;text-align:left}.m-asn .asn-body{padding:0}.m-asn .asn-prose{padding:4px 16px 16px;font-size:15.5px;line-height:1.62}.m-asn .asn-prose table{display:block;overflow-x:auto;white-space:nowrap}.m-asn .asn-submit-form,.m-asn .asn-submitted{padding:0 16px 4px}.m-asn .segmented{display:flex;width:100%}.m-asn .segmented button{flex:1;padding:11px 8px;font-size:14px;min-height:44px}.m-asn .asn-textarea{min-height:130px;font-size:16px}.m-asn .asn-submit .field{font-size:16px;padding:12px 13px}.m-asn .asn-file-pick input[type=file]{width:100%;font-size:15px}.m-asn .asn-file-pick input[type=file]::file-selector-button{font-family:var(--font-display);font-weight:700;font-size:14px;padding:11px 16px;margin-right:12px;border-radius:11px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);cursor:pointer}.m-asn .asn-submit-actions{flex-direction:column;align-items:stretch;gap:9px;margin-top:14px}.m-asn .asn-confirm-q{text-align:center;margin-bottom:2px}.m-asn .asn-submit-actions .joinbtn{display:flex;align-items:center;justify-content:center;min-height:50px;font-size:15.5px;border-radius:13px}.m-asn .asn-submit-actions .addgrade{min-height:48px;border-radius:13px}.m-asn .asn-submitted{align-items:stretch}.m-asn .asn-submitted .addgrade{align-self:flex-start;min-height:44px}.m-asn .asn-cta{padding:16px;align-items:stretch}.m-asn .asn-cta .joinbtn{display:flex;align-items:center;justify-content:center;min-height:50px;font-size:15.5px;border-radius:13px}.m-asn .quiz-play{padding:0 14px}.m-asn .quiz-bar{top:0;flex-wrap:nowrap;border-radius:13px;padding:11px 14px}.m-asn .quiz-progress{font-size:13.5px}.m-asn .quiz-timer{font-size:15px}.m-asn .quiz-q{padding:14px 16px}.m-asn .quiz-opt{padding:13px 14px;font-size:15px;min-height:50px;align-items:center}.m-asn .quiz-opt input{width:21px;height:21px;margin-top:0}.m-asn .quiz-q .field,.m-asn .quiz-q textarea{font-size:16px;width:100%;max-width:100%}.m-buddy{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-fullscreen);background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.m-buddy .backbtn{flex:none;width:40px;height:40px;min-width:40px;padding:0;justify-content:center;margin:max(30px,calc(env(safe-area-inset-top) + 8px)) 0 4px 14px;gap:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);box-shadow:var(--shadow);font-size:19px;line-height:1}.m-buddy .backbtn:hover{transform:none;background:var(--surface);color:var(--ink);border-color:var(--line)}.m-buddy .backbtn:active{transform:scale(.95)}.m-buddy .gscreen{flex:1;min-height:0;display:flex;flex-direction:column;padding:0}.m-buddy .buddy-tab-head{padding:14px 16px 8px;align-items:center}.m-buddy .buddy-tab-head h1{font-size:19px}.m-buddy .buddy-tab-id{align-items:center;gap:11px}.m-buddy .buddy-title-row{gap:8px}.m-buddy .buddy-sections{margin:0 auto 10px;max-width:calc(100% - 24px)}.m-buddy .buddy-tab{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 12px calc(10px + env(safe-area-inset-bottom))}.m-buddy .buddy-hist{display:none}.m-buddy .buddy-main{flex:1;min-height:0;height:auto;max-height:none;margin:0}.splash-line{margin:0 0 2px;font-family:Outfit,inherit;font-size:13px;font-weight:600;color:var(--accent-ink);transform:rotate(-2deg);display:inline-block;text-wrap:balance}.splash-bar{width:170px;height:8px;margin:14px auto 0;border-radius:var(--r-pill);background:var(--surface2, #f7f4ec);border:1px solid var(--line, #ece7dc);overflow:hidden}.splash-fill{height:100%;width:0;border-radius:var(--r-pill);background:var(--accent, #ffd23f);animation:splash-load 1.4s var(--ease-out, ease-out) forwards}@keyframes splash-load{0%{width:0}to{width:100%}}@media (prefers-reduced-motion: reduce){.splash-line{transform:none}.splash-fill{animation:none;width:100%}}.nav button,.slidetab,.segmented button,.task,.graderow,.hist-row,.cfile-row,.mi-row,.cpage-h,.dd-opt,.appmenu button,.aimenu-opt,.set-row,.set-link,.acct-item,.provseg-opt,.cal-cell,.mini-cell,.dp-cell,.cal-ctrls button,.cc-arrows button,.dp-nav,.buddy-acts button,.nudge-x,.toast-x,.buddy-remind-x,.app-card-x,.m-nudge-x,.dp-clear,.ask-buddy,.addgrade,.guide-link,.aimenu-trig,.calc-toggle,.empty-retry button,.chat-suggest button,.dd-btn,.dp-trigger,.reveal-completed,.backbtn,.getapp-chip,.statbtn,.dp-foot-btn,.send,.nudge button,.buddy-remind-go,.toast-act,.cgpt-btn,.newchat,.joinbtn,.plusbtn,.classcard,.mini-cal{transition:var(--tr)}.nav button:active,.slidetab:active,.segmented button:active,.task:active,.dd-opt:active,.appmenu button:active,.set-row:active,.acct-item:active,.aimenu-opt:active,.cal-ctrls button:active,.cc-arrows button:active,.dp-nav:active,.buddy-acts button:active,.nudge-x:active,.toast-x:active,.m-nudge-x:active,.ask-buddy:active,.addgrade:active,.guide-link:active,.aimenu-trig:active,.calc-toggle:active,.empty-retry button:active,.chat-suggest button:active,.dd-btn:active,.dp-trigger:active,.reveal-completed:active,.backbtn:active,.getapp-chip:active,.statbtn:active,.dp-foot-btn:active,.send:active,.nudge button:active,.buddy-remind-go:active,.toast-act:active,.cgpt-btn:active,.newchat:active,.joinbtn:active,.plusbtn:active,.m-nav-item:active,.m-cal-ctrls button:active,.m-more:active,.m-sum:active,.m-cal-edit:active,.consent-track:active,.consent-allow:active,.classcard:active,.mini-cal:active{transform:scale(var(--press))}.toggle,.acct-chip,.tg-event,.tg-head-day,.agenda-ev,.tg-allday-ev,.cal-chip-more,.module-h,.more-canvas-more,.card-foot button,.addrow,.asn-row.rowlink,.m-tools-card,.m-dayedit-back,.m-dayedit-save,.m-note-del,.m-cal-cell,.m-sheet-btn,.ps-capture,.aimgr-add,.tool-inline-btn{transition:var(--tr)}.toggle:active,.acct-chip:active,.tg-event:active,.tg-head-day:active,.agenda-ev:active,.tg-allday-ev:active,.cal-chip-more:active,.module-h:active,.more-canvas-more:active,.card-foot button:active,.addrow:active,.graderow:active,.asn-row.rowlink:active,.cfile-row:active,.mi-row:active,.cpage-h:active,.m-tools-card:active,.m-dayedit-back:active,.m-dayedit-save:active,.m-note-del:active,.m-cal-cell:active,.ps-capture:active,.aimgr-add:active,.tool-inline-btn:active{transform:scale(var(--press))}.tg-allday-ev:hover,.module-h:hover,.addrow:hover,.cal-chip-more:hover,.aimgr-add:hover{background:var(--hover-wash);color:var(--ink)}.tool-inline-btn.open:hover{filter:brightness(1.05)}.tool-inline-btn:disabled,.tool-inline-btn[disabled]{opacity:.5;cursor:default}.nav button:not(.on):hover,.slidetab:not(.on):hover,.segmented button:not(.on):hover,.task:hover,.graderow:hover,.hist-row:hover,.cfile-row:hover,.mi-row:hover,.cpage-h:hover,.dd-opt:not(.on):hover,.appmenu button:hover,.aimenu-opt:hover,.set-row:hover,.set-link:hover,.acct-menu .acct-item:hover,.provseg-opt:hover,.cal-cell:hover:not(.today):not(.sel),.mini-cell:hover:not(.today),.dp-cell:hover:not(.sel),.cal-ctrls button:hover,.cc-arrows button:hover:not(:disabled),.dp-nav:hover,.buddy-acts button:hover,.dp-clear:hover,.m-nudge-x:hover{background:var(--hover-wash);color:var(--ink)}.ask-buddy:hover,.addgrade:hover,.guide-link:hover,.aimenu-trig:hover,.calc-toggle:hover,.empty-retry button:hover,.chat-suggest button:hover,.dd-btn:hover,.dp-trigger:hover,.reveal-completed:hover,.backbtn:hover,.dp-foot-btn:hover{background:var(--hover-wash);border-color:color-mix(in srgb,var(--ink) 18%,transparent);color:var(--ink);box-shadow:none}.nudge-x:hover,.toast-x:hover,.buddy-remind-x:hover,.app-card-x:hover{background:var(--hover-wash);color:var(--ink);opacity:1}.send:hover,.nudge:not(.nudge-quiet) button:hover,.buddy-remind-go:hover,.toast-act:hover,.cgpt-btn:hover,.newchat:hover,.joinbtn:not(.ghost):hover,.plusbtn:not(.on):hover{color:var(--on-mark);filter:brightness(1.05);transform:translateY(-1px);box-shadow:var(--mark-glow),0 6px 18px -7px color-mix(in srgb,var(--accent-ink) 55%,transparent)}.joinbtn.ghost:hover,.nudge-quiet button:hover{background:var(--hover-wash);color:var(--ink);border-color:var(--hairline);filter:none;transform:translateY(-1px);box-shadow:none}.plusbtn.on:hover{filter:brightness(1.12);transform:translateY(-1px)}.classcard:hover,.mini-cal:hover,.statbtn:hover{transform:var(--lift);box-shadow:var(--shadow-hover)}.classcard:hover{z-index:3}.send,.nudge button,.buddy-remind-go,.toast-act,.cgpt-btn,.newchat,.joinbtn,.keyhelp-link{background:var(--mark);color:var(--on-mark);border:1px solid color-mix(in srgb,var(--mark) 52%,rgba(0,0,0,.3));box-shadow:inset 0 1px #ffffff80,0 1px 1px #0000001f,0 4px 10px -3px color-mix(in srgb,var(--accent-ink) 45%,transparent)}.backbtn,.ask-buddy,.addgrade,.reveal-completed,.calc-toggle,.dd-btn,.dp-trigger,.aimenu-trig,.empty-retry button,.chat-suggest button,.src-chip,.dp-foot-btn,.cal-ctrls button,.cal-today-btn,.dp-nav,.cc-arrows button,.segmented,.provseg-opt,.guide-link{background:var(--surface2);border:1px solid var(--hairline);box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}.field,.composer textarea{background:var(--surface);border:1px solid var(--line);box-shadow:inset 0 1px 2px #4a3a2012}.backbtn:hover,.ask-buddy:hover,.addgrade:hover,.reveal-completed:hover,.calc-toggle:hover,.dd-btn:hover,.dp-trigger:hover,.aimenu-trig:hover,.empty-retry button:hover,.chat-suggest button:hover,.dp-foot-btn:hover,.cal-today-btn:hover,.dp-nav:hover,.cc-arrows button:hover,.cal-ctrls button:hover,.src-chip:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff8c,0 2px 3px #0000000d,0 6px 14px -4px #4a3a2038}[data-theme=dark] .backbtn,[data-theme=dark] .ask-buddy,[data-theme=dark] .addgrade,[data-theme=dark] .reveal-completed,[data-theme=dark] .calc-toggle,[data-theme=dark] .dd-btn,[data-theme=dark] .dp-trigger,[data-theme=dark] .aimenu-trig,[data-theme=dark] .empty-retry button,[data-theme=dark] .chat-suggest button,[data-theme=dark] .dp-foot-btn,[data-theme=dark] .cal-ctrls button,[data-theme=dark] .cal-today-btn,[data-theme=dark] .sharebtn,[data-theme=dark] .aimgr-btn,[data-theme=dark] .tool-toggle,[data-theme=dark] .tool-ask,[data-theme=dark] .tool-chip,[data-theme=dark] .src-chip,[data-theme=dark] .dp-nav,[data-theme=dark] .cc-arrows button,[data-theme=dark] .aiwiz-btn,[data-theme=dark] .sgc-btn,[data-theme=dark] .hovercard-btn,[data-theme=dark] .cal-export,[data-theme=dark] .re-btn:not(.on),[data-theme=dark] .disc-chip:not(.on):not(.ghost),[data-theme=dark] .m-more,[data-theme=dark] .m-cal-edit,[data-theme=dark] .plusbtn:not(.on){background:var(--surface2);border-color:var(--hairline);box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0006,0 3px 8px -3px #00000080}[data-theme=dark] .field,[data-theme=dark] textarea.field,[data-theme=dark] .composer textarea,[data-theme=dark] .hz-draft,[data-theme=dark] .m-dayedit-input{background:var(--surface2);border-color:var(--hairline);box-shadow:inset 0 1px 2px #0000004d}[data-theme=dark] .backbtn:hover,[data-theme=dark] .ask-buddy:hover,[data-theme=dark] .addgrade:hover,[data-theme=dark] .reveal-completed:hover,[data-theme=dark] .calc-toggle:hover,[data-theme=dark] .dd-btn:hover,[data-theme=dark] .dp-trigger:hover,[data-theme=dark] .aimenu-trig:hover,[data-theme=dark] .empty-retry button:hover,[data-theme=dark] .chat-suggest button:hover,[data-theme=dark] .dp-foot-btn:hover,[data-theme=dark] .sharebtn:hover,[data-theme=dark] .aimgr-btn:hover,[data-theme=dark] .tool-toggle:hover,[data-theme=dark] .tool-chip:hover{background:color-mix(in srgb,var(--ink) 9%,var(--surface2));box-shadow:inset 0 1px #ffffff0f,0 6px 14px -4px #0009}[data-theme=dark] .tool-ask,[data-theme=dark] .hz-import-btn,[data-theme=dark] .demo-try{background:color-mix(in srgb,var(--mark) 15%,var(--surface2));border-color:color-mix(in srgb,var(--mark) 32%,var(--hairline));color:var(--ink)}[data-theme=dark] .tool-ask:hover,[data-theme=dark] .hz-import-btn:hover,[data-theme=dark] .demo-try:hover{background:color-mix(in srgb,var(--mark) 26%,var(--surface2));border-color:color-mix(in srgb,var(--mark) 48%,var(--hairline));box-shadow:inset 0 1px #ffffff0d,0 4px 12px -5px #00000080}[data-theme=dark] .plusbtn:not(.on){border-color:color-mix(in srgb,var(--mark) 30%,var(--hairline))}[data-theme=dark] .aiwiz-btn{color:var(--ink)}[data-theme=dark] .joinbtn.ghost{background:var(--surface2);border-color:var(--hairline);box-shadow:inset 0 1px #fff0d20d}[data-theme=dark] .sgc-btn.primary,[data-theme=dark] .aimgr-btn.primary{background:var(--mark);color:var(--on-mark);border-color:transparent}[data-theme=dark] .aimgr-btn.primary:hover{background:var(--mark);color:var(--on-mark);filter:brightness(1.06)}[data-theme=dark] .aimgr-btn.danger{background:var(--coral);color:#fff;border-color:transparent}[data-theme=dark] .aimgr-btn.danger:hover{background:var(--coral);filter:brightness(1.06)}[data-theme=dark] .tool-out-fld{background:color-mix(in srgb,var(--mark) 14%,var(--surface2));border-color:color-mix(in srgb,var(--mark) 35%,var(--hairline))}.classcard,.mini-cal,.statbtn{transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}.task:hover,.cfile-row:hover,.mi-row:hover{transform:translate(3px)}@media (prefers-reduced-motion: no-preference){.toast-x:hover,.nudge-x:hover,.app-card-x:hover,.sgc-x:hover,.upsheet-x:hover,.aiwiz-x:hover,.brief-x:hover,.fb-x:hover,.buddy-err-x:hover,.m-nudge-x:hover,.dp-clear:hover,.buddy-remind-x:hover,.cal-nav-arrow:hover,.dp-nav:hover,.cc-arrows button:hover,.buddy-acts button:hover,.toggle:hover,.note-del:hover,.m-note-del:hover,.hist-del:hover,.calc-del:hover,.dz-x:hover,.hz-ex-remove:hover{transform:scale(1.12)}.send:hover:not(:disabled){transform:translateY(-2px)}}@media (prefers-reduced-motion: reduce){.buddy-pop,.modal-scrim,.billing-toast,.m-dayedit,.m-sheet,.m-sheet-wrap,.m-cal-grid,.consent-card,.classcard,.mini-cal,.statbtn,.task,.cfile-row,.mi-row{animation:none;transition:none;transform:none}.calc-key,.calc-fkey{transition:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--font-display);font-weight:700;font-size:var(--fs-sm);line-height:1;min-height:var(--ctl-h);padding:0 15px;border:1px solid transparent;border-radius:var(--r-md);color:var(--ink);background:transparent;cursor:pointer;white-space:nowrap;text-decoration:none;transition:var(--tr)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:default}.btn--pill{border-radius:var(--r-pill)}.btn--sm{min-height:30px;padding:0 12px;font-size:var(--fs-xs)}.btn--block{display:flex;width:100%}.btn--icon{width:var(--ctl-h);padding:0}.btn--primary{background:var(--mark);color:var(--on-mark);border-color:transparent;box-shadow:var(--mark-glow)}.btn--secondary{background:var(--surface2);color:var(--ink);border-color:var(--hairline)}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--hairline)}.btn--danger{background:var(--coral);color:#fff;border-color:transparent}.btn--text{background:transparent;border-color:transparent;color:var(--accent-ink);min-height:0;padding:2px 4px}.btn--primary:hover{filter:brightness(1.05);transform:translateY(-1px);color:var(--on-mark)}.btn--secondary:hover,.btn--ghost:hover{background:var(--hover-wash);border-color:var(--hairline)}.btn--danger:hover{filter:brightness(1.05)}.btn--text:hover{background:var(--hover-wash)}.btn:active{transform:scale(var(--press))}.aimgr-btn,.aimenu-trig,.aimenu-guide,.aimenu-manage,.demo-try,.quota-up,.buddy-err-btn,.hz-copy,.hz-retrain,.hz-confirm-yes,.hz-sample,.hz-linkbtn,.hz-import-btn,.aiwiz-back,.aiwiz-manage,.tool-toggle,.tool-ask,.tool-chip,.plusbtn,.upsheet-cta,.aiwiz-cta,.toast-act,.tlp-open{font-family:var(--font-display);font-weight:700}.aimgr-btn,.aimenu-go,.tool-toggle,.tool-ask,.tool-chip,.tool-samp,.demo-try,.quota-up,.buddy-err-btn,.hz-copy,.hz-retrain,.hz-confirm-yes,.hz-sample,.hz-linkbtn,.hz-import-btn,.aiwiz-back,.aiwiz-manage,.aiwiz-cta,.sharebtn,.m-sheet-btn,.m-sheet-cancel,.tlp-open,.upsheet-cta,.sgc-btn,.hovercard-btn,.disc-chip,.re-btn,.m-more,.m-cal-edit,.sgc-x,.upsheet-x,.aiwiz-x,.brief-x,.buddy-err-x,.fb-x,.hist-del,.calc-del,.note-del,.dz-x,.hz-ex-remove{transition:var(--tr)}.aimgr-btn:active,.aimenu-go:active,.tool-toggle:active,.tool-ask:active,.tool-chip:active,.tool-samp:active,.demo-try:active,.quota-up:active,.buddy-err-btn:active,.hz-copy:active,.hz-retrain:active,.hz-confirm-yes:active,.hz-sample:active,.hz-linkbtn:active,.hz-import-btn:active,.aiwiz-back:active,.aiwiz-manage:active,.aiwiz-cta:active,.sharebtn:active,.m-sheet-btn:active,.m-sheet-cancel:active,.tlp-open:active,.upsheet-cta:active,.sgc-btn:active,.hovercard-btn:active,.disc-chip:active,.re-btn:active,.m-more:active,.m-cal-edit:active,.sgc-x:active,.upsheet-x:active,.aiwiz-x:active,.brief-x:active,.buddy-err-x:active,.fb-x:active,.hist-del:active,.calc-del:active,.note-del:active,.dz-x:active,.hz-ex-remove:active{transform:scale(var(--press))}.aimgr-btn:hover,.tool-toggle:hover,.tool-chip:hover,.tool-samp:hover,.hz-retrain:hover,.hz-sample:hover,.hz-linkbtn:hover,.aiwiz-back:hover,.aiwiz-manage:hover,.sharebtn:hover,.sgc-btn:hover,.hovercard-btn:hover,.disc-chip:not(.on):hover,.re-btn:hover,.m-more:hover,.m-cal-edit:hover,.m-sheet-cancel:hover,.sgc-x:hover,.upsheet-x:hover,.aiwiz-x:hover,.brief-x:hover,.fb-x:hover{background:var(--hover-wash);color:var(--ink);border-color:var(--hairline)}.tool-ask:hover,.hz-import-btn:hover,.demo-try:hover{background:color-mix(in srgb,var(--mark) 26%,transparent);border-color:color-mix(in srgb,var(--mark) 55%,var(--hairline));color:var(--ink);transform:translateY(-1px)}.hz-copy:hover{color:var(--on-mark);filter:brightness(1.05);transform:translateY(-1px);box-shadow:var(--mark-glow),0 6px 18px -7px color-mix(in srgb,var(--accent-ink) 55%,transparent)}.buddy-err-btn:hover{background:color-mix(in srgb,var(--coral) 28%,transparent);color:var(--coral-ink);border-color:color-mix(in srgb,var(--coral) 50%,transparent)}.buddy-err-x:hover{opacity:1;color:var(--coral-ink)}.tlp-open:hover,.upsheet-cta:hover,.aiwiz-cta:hover,.consent-allow:hover,.m-sheet-btn:hover,.sgc-btn.primary:hover,.aimgr-btn.primary:hover,.hovercard-btn.primary:hover{color:var(--on-mark);filter:brightness(1.05);transform:translateY(-1px);box-shadow:var(--mark-glow),0 6px 18px -7px color-mix(in srgb,var(--accent-ink) 55%,transparent)}.hist-del:hover,.calc-del:hover,.note-del:hover,.dz-x:hover,.hz-ex-remove:hover{background:color-mix(in srgb,var(--coral) 15%,transparent);color:var(--coral);border-color:transparent}.hz-confirm-yes:hover,.aimgr-btn.danger:hover{filter:brightness(1.06);transform:translateY(-1px);color:#fff}.getapp-chip,.toggle,.acct-chip,.cal-export,.chat-suggest button{background:var(--surface2);border:1px solid var(--hairline);color:var(--ink);box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}[data-theme=dark] .getapp-chip,[data-theme=dark] .toggle,[data-theme=dark] .acct-chip,[data-theme=dark] .cal-export,[data-theme=dark] .chat-suggest button{background:var(--surface2);border-color:var(--hairline);box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0006,0 3px 8px -3px #00000080}.getapp-chip:hover,.toggle:hover,.acct-chip:hover,.cal-export:hover,.chat-suggest button:hover{transform:translateY(-1px);color:var(--ink);border-color:color-mix(in srgb,var(--mark) 40%,var(--hairline));box-shadow:inset 0 1px #ffffff8c,0 2px 3px #0000000d,0 6px 14px -4px #4a3a2038}[data-theme=dark] .getapp-chip:hover,[data-theme=dark] .toggle:hover,[data-theme=dark] .acct-chip:hover,[data-theme=dark] .cal-export:hover,[data-theme=dark] .chat-suggest button:hover{box-shadow:inset 0 1px #ffffff0f,0 6px 14px -4px #0009}.getapp-chip:active,.toggle:active,.acct-chip:active,.cal-export:active,.chat-suggest button:active{transform:scale(var(--press))}.theme-switch{border-color:var(--hairline)}.theme-switch:hover{border-color:color-mix(in srgb,var(--mark) 40%,var(--hairline))}.ti-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:400px;margin:0 auto}.ti{position:relative;width:100%;max-width:372px;background:linear-gradient(162deg,#262b39,#15181f);border:1px solid rgba(0,0,0,.55);border-radius:30px;padding:16px 16px 18px;box-shadow:0 24px 55px -16px #0000008c,inset 0 1px #ffffff12}.ti-plate{display:flex;align-items:center;gap:10px;padding:2px 4px 12px}.ti-brand{display:flex;flex-direction:column;line-height:1.05;margin-right:auto}.ti-brand b{font-family:var(--font-display);font-weight:800;font-size:17px;color:#fff;letter-spacing:.01em}.ti-brand span{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#ffd43b;font-weight:700}.ti-degtag{background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#cfd6e4;font:inherit;font-weight:800;font-size:10.5px;letter-spacing:.06em;border-radius:999px;padding:4px 9px;cursor:pointer}.ti-degtag.deg{background:#ffd43b;color:#1a1d24;border-color:transparent}.ti-screen{background:#0e1420;border:1px solid #05070c;border-radius:14px;box-shadow:inset 0 2px 12px #0009,0 0 0 3px #ffffff08;padding:9px 12px 11px;height:300px;display:flex;flex-direction:column;overflow:hidden}.ti-statusbar{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.05em;color:#8593ab;border-bottom:1px solid #1c2637;padding-bottom:5px;margin-bottom:6px;font-family:Outfit,monospace}.ti-home{display:flex;flex-direction:column;flex:1;min-height:116px}.ti-hline{display:flex;justify-content:space-between;gap:10px;font-family:ui-monospace,Outfit,monospace;font-size:12px;color:#8593ab}.ti-hline b{color:#b9c4d6;font-weight:600}.ti-expr{margin-top:auto;width:100%;border:none;background:none;outline:none;color:#eaf1fb;font-family:ui-monospace,Outfit,monospace;font-size:20px;font-weight:500;caret-color:#ffd43b}.ti-expr::placeholder{color:#3d4a60}.ti-expr:focus,.ti-yin:focus{outline:none;box-shadow:none;border-color:transparent}.ti-ans{text-align:right;font-family:var(--font-display);font-weight:800;font-size:26px;color:#ffd43b;min-height:30px;font-variant-numeric:tabular-nums;overflow-x:auto;white-space:nowrap}.ti-ans.err{font-family:var(--font-body);font-weight:600;font-size:12.5px;color:#ff8787;text-align:left}.ti-graphscreen{display:flex;flex-direction:column;flex:1;gap:6px}.ti-yeditor{display:flex;flex-direction:column;gap:3px}.ti-yrow{display:flex;align-items:center;gap:6px;border-radius:6px;padding:1px 2px}.ti-yrow.on{background:#ffffff0d}.ti-ydot{flex:none;width:12px;height:12px;border-radius:4px;border:1.5px solid;cursor:pointer;padding:0}.ti-ylab{font-family:ui-monospace,monospace;font-size:11px;color:#8593ab}.ti-yin{flex:1;min-width:0;border:none;background:none;outline:none;color:#eaf1fb;font-family:ui-monospace,monospace;font-size:13px;caret-color:#ffd43b}.ti-yin::placeholder{color:#3d4a60}.ti-yrm{flex:none;background:none;border:none;color:#55627a;font-size:11px;cursor:pointer;padding:2px 4px}.ti-yrm:hover{color:#ff8787}.ti-yadd{align-self:flex-start;background:none;border:none;color:#4dabf7;font:inherit;font-size:11px;font-weight:700;cursor:pointer;padding:1px 3px}.ti-plot{position:relative;flex:1;min-height:172px;border-radius:8px;overflow:hidden}.ti-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.ti-tracetag{position:absolute;top:5px;left:6px;font-size:8.5px;font-weight:800;letter-spacing:.1em;color:#0e1420;background:#ffd43b;border-radius:4px;padding:1px 5px}.ti-keys{margin-top:13px;display:flex;flex-direction:column;gap:7px}.ti-graphrow{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.ti-top{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;grid-auto-flow:row}.ti-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.ti-key{position:relative;padding:14px 2px 8px;border-radius:9px;border:1px solid rgba(0,0,0,.5);font-family:var(--font-display);font-weight:700;font-size:13px;color:#e7ecf4;cursor:pointer;background:linear-gradient(#2b3040,#21252f);box-shadow:inset 0 1px #ffffff14,0 2px 3px #00000059;transition:transform .06s ease,filter .12s ease;line-height:1}.ti-key:hover{filter:brightness(1.12)}.ti-key:active{transform:translateY(1.5px);box-shadow:inset 0 1px 2px #0006}.ti-key i{position:absolute;top:3px;left:0;right:0;text-align:center;font-style:normal;font-size:8px;font-weight:700;letter-spacing:.02em;color:#7fb0ff}.ti-key.armed{outline:1.5px solid #ffd43b}.ti-key.blue{background:linear-gradient(#314766,#223650);color:#cfe0ff;font-size:11.5px;padding-top:9px}.ti-key.num{background:linear-gradient(#f5f7fb,#e2e7f0);color:#1a1d24;font-size:15px}.ti-key.op{color:#ffd43b;font-size:16px}.ti-key.enter,.ti-key.k2nd{background:linear-gradient(#ffda4a,#f4c400);color:#1a1d24}.ti-key.k2nd.on{box-shadow:0 0 0 2px #ffd43b,0 0 12px #ffd43b80}.ti-key.gray{font-size:11px;padding-top:9px}.ti-key.alpha{color:#69db7c;font-size:11px;padding-top:9px}.ti-key.fn{font-size:12.5px}.ti-dpad{grid-column:4 / 6;grid-row:1 / 3;position:relative;align-self:center;justify-self:center;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#2c3140,#1a1e27);border:1px solid rgba(0,0,0,.5);box-shadow:inset 0 1px #ffffff12}.ti-dpad .dp{position:absolute;background:none;border:none;color:#9aa6bc;cursor:pointer;font-size:10px;padding:3px 7px}.ti-dpad .dp:hover{color:#fff}.ti-dpad .up{top:2px;left:50%;transform:translate(-50%)}.ti-dpad .down{bottom:2px;left:50%;transform:translate(-50%)}.ti-dpad .left{left:2px;top:50%;transform:translateY(-50%)}.ti-dpad .right{right:2px;top:50%;transform:translateY(-50%)}.ti-dpad .mid{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:linear-gradient(#333a49,#232833);box-shadow:inset 0 1px #ffffff14}.ti-note{font-size:12px;color:var(--muted);text-align:center;max-width:40ch}.ti-scr-actions{display:flex;gap:6px;margin-top:6px;justify-content:flex-end}.ti-scr-actions button{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#cdd6e6;font:inherit;font-size:10.5px;font-weight:700;border-radius:7px;padding:3px 8px;cursor:pointer}.ti-scr-actions button:hover{background:#ffffff29;color:#fff}.ti-yin.invalid{color:#ff8787}.ti-zoomctl{position:absolute;top:6px;right:6px;display:flex;flex-direction:column;gap:4px}.ti-zoomctl button{width:24px;height:24px;border-radius:7px;background:#141a26d1;border:1px solid rgba(255,255,255,.14);color:#dbe3f0;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.ti-zoomctl button:hover{background:#283246f2;color:#fff}.ti-menu-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;border-radius:30px;display:flex;align-items:center;justify-content:center;z-index:5;padding:20px}.ti-menu{width:100%;max-width:300px;max-height:84%;background:#1c2230;border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 16px 40px #00000080;display:flex;flex-direction:column;overflow:hidden}.ti-menu-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;font-family:var(--font-display);font-weight:800;font-size:14px;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.ti-menu-x{background:none;border:none;color:#8593ab;font-size:13px;cursor:pointer}.ti-menu-x:hover{color:#fff}.ti-menu-items{overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.ti-menu-item{text-align:left;background:none;border:none;color:#dbe3f0;font:inherit;font-size:13px;padding:9px 11px;border-radius:9px;cursor:pointer}.ti-menu-item:hover{background:#ffffff14;color:#fff}.tool{max-width:640px;margin:0 auto}.tool-head{margin-bottom:14px}.tool-title{font-family:var(--font-display);font-weight:800;font-size:20px;margin:0}.tool-sub{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.tool-seg{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:14px}.tool-seg-lab{font-size:13px;color:var(--muted);font-weight:600;margin-right:2px}.tool-chip{background:var(--surface2);border:1px solid var(--hairline);border-radius:999px;font:inherit;font-weight:700;font-size:12.5px;color:var(--muted);padding:5px 12px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}.tool-chip:hover{color:var(--ink)}.tool-chip.on{background:var(--mark);color:var(--on-mark);border-color:transparent}.tool-result{margin-top:18px}.tool-lcd{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-lg);padding:15px 18px}.tool-lcd-lab{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}.tool-answer{font-family:var(--font-display);font-weight:800;font-size:25px;color:var(--ink);font-variant-numeric:tabular-nums;word-break:break-word;line-height:1.15}.tool-err{margin-top:14px;color:var(--coral);font-size:13.5px}.tool-ask{margin-top:12px;background:color-mix(in srgb,var(--mark) 16%,var(--surface));border:1.5px solid color-mix(in srgb,var(--mark) 40%,var(--line));border-radius:11px;font:inherit;font-weight:700;font-size:13.5px;color:var(--ink);padding:8px 14px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 2px 6px -2px color-mix(in srgb,var(--accent-ink) 22%,transparent)}.tool-ask:hover{border-color:var(--mark)}.tool-row{display:flex;gap:8px}.tool-eq{flex:1;font-family:ui-monospace,monospace}.tool-samples{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.tool-samp{background:none;border:1px dashed var(--line);border-radius:8px;font-size:12px;color:var(--muted);padding:4px 9px;cursor:pointer;font-family:ui-monospace,monospace}.tool-samp:hover{border-color:var(--mark);color:var(--ink)}.tool-steps{margin-top:12px}.tool-steps summary{cursor:pointer;font-size:13px;color:var(--accent-ink);font-weight:700}.tool-steps ol{margin:8px 0 0;padding-left:22px;color:var(--muted);font-size:13px;line-height:1.7;font-family:ui-monospace,monospace}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tool-fld{display:flex;flex-direction:column;gap:4px}.tool-fld-lab{font-size:12px;font-weight:700;color:var(--ink);display:flex;flex-direction:column}.tool-fld-lab i{font-style:normal;font-size:10px;font-weight:500;color:var(--faint)}.tool-fld.solve .tool-fld-lab{color:var(--accent-ink)}.tool-fld.bad input,.tool-fld.bad .tool-out-fld{border-color:var(--coral);background:color-mix(in srgb,var(--coral) 8%,var(--surface2))}.tool-fld-warn{font-size:10.5px;font-weight:600;color:var(--coral)}.tool-out-fld{display:flex;align-items:center;background:color-mix(in srgb,var(--mark) 12%,var(--surface2));border-color:color-mix(in srgb,var(--mark) 35%,var(--line));font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}.tool-row2{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}.tool-toggle{background:var(--surface2);border:1px solid var(--hairline);border-radius:10px;font:inherit;font-size:12.5px;color:var(--muted);padding:8px 12px;cursor:pointer;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024}.tool-toggle b{color:var(--ink)}.tool-toggle.on{border-color:var(--mark)}.tool-note{margin-top:12px;font-size:11.5px;color:var(--faint);line-height:1.5}.tool-lcd .tool-summary{margin:9px 0 0;font-size:12.5px;color:var(--muted)}.tool-lcd .tool-summary b{color:var(--ink)}.buddy-sections{overflow-x:auto}@media (max-width: 640px){.tool-grid{grid-template-columns:repeat(2,1fr)}}.fb-sheet{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--z-dialog);width:min(460px,92vw);padding:20px 22px;background:var(--card-sheen),var(--surface)}.fb-head{display:flex;align-items:center;justify-content:space-between}.fb-head h2{font-family:var(--font-display);font-weight:800;font-size:19px;margin:0}.fb-x{background:none;border:none;color:var(--faint);font-size:15px;cursor:pointer}.fb-x:hover{color:var(--ink)}.fb-sub{margin:4px 0 14px;color:var(--muted);font-size:13.5px;line-height:1.5}.fb-kinds{display:flex;gap:7px;margin-bottom:12px}.fb-ta{width:100%;resize:vertical;font-family:inherit}.fb-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.fb-count{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}.fb-count.over{color:var(--coral);font-weight:600}.fb-err{margin:10px 0 0;color:var(--coral);font-size:13px}.metrics-reqs{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.metrics-req{display:flex;gap:10px;align-items:flex-start}.metrics-req-kind{flex:none;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:6px;padding:2px 7px;color:var(--on-mark);background:var(--mark)}.metrics-req-kind.k-bug{background:var(--coral);color:#fff}.metrics-req-kind.k-other{background:var(--surface2);color:var(--muted);border:1px solid var(--line)}.metrics-req-body p{margin:0;font-size:13.5px;color:var(--ink);line-height:1.4}.metrics-req-meta{font-size:11px;color:var(--faint)}.hsearch{position:relative;margin-bottom:14px}.hsearch-box{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color .15s,box-shadow .15s}.hsearch-box:focus-within{border-color:var(--mark);box-shadow:var(--mark-glow)}.hsearch-mag{font-size:13px;flex:none;opacity:.7}.hsearch-input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font-body);font-size:14px;color:var(--ink)}.hsearch-input:focus,.hsearch-input:focus-visible{outline:none;box-shadow:none}.hsearch-input::placeholder{color:var(--faint)}.hsearch-drop{position:absolute;z-index:var(--z-popover);top:calc(100% + 4px);left:0;right:0;background:var(--card-sheen),var(--card-glass);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:6px;max-height:344px;overflow-y:auto;overscroll-behavior:contain;animation:menuin var(--dur-1) var(--ease-out) both}.hsearch-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer}.hsearch-opt.on{background:var(--mark);color:var(--on-mark)}.hsearch-oicon{font-size:15px;width:18px;text-align:center;flex:none}.hsearch-otext{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.hsearch-otitle{font-family:var(--font-body);font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hsearch-osub{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hsearch-opt.on .hsearch-osub{color:color-mix(in srgb,var(--on-mark) 72%,transparent)}.hsearch-obadge{flex:none;font-family:var(--font-body);font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 7px}.hsearch-opt.on .hsearch-obadge{background:color-mix(in srgb,var(--on-mark) 14%,transparent);border-color:transparent;color:var(--on-mark)}.hsearch-empty{padding:14px;text-align:center;color:var(--muted);font-size:13px}.hsearch-sec{font-family:var(--font-body);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:10px 10px 5px;margin-top:4px;border-top:1px solid var(--line)}.home-toprow .hsearch{margin:0;display:flex;align-items:center;height:100%}.home-toprow .hsearch-box{width:100%;height:100%;padding:9px 16px;cursor:text;border-radius:var(--r-xl);background:var(--card-sheen),var(--card-glass);border:1px solid var(--hairline);box-shadow:var(--shadow-card)}.home-toprow .hsearch-box:focus-within{border-color:color-mix(in srgb,var(--mark) 60%,var(--hairline));box-shadow:var(--shadow-card),0 0 0 3px color-mix(in srgb,var(--mark) 20%,transparent)}.home-toprow .hsearch-mag{font-size:16px;opacity:.8}.home-toprow .hsearch-input{font-size:17px}.home-toprow .hsearch-mag{font-size:18px}.soverlay{position:fixed;z-index:var(--z-dialog-top);top:12vh;left:0;right:0;margin-inline:auto;width:min(560px,94vw);max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:var(--card-sheen),var(--surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--shadow-modal)}.soverlay-top{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.soverlay-input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font-body);font-size:16px;color:var(--ink)}.soverlay-input::placeholder{color:var(--faint)}.soverlay-list{position:static;z-index:auto;box-shadow:none;border:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;max-height:none;flex:1;animation:none}.cmdk-esc{flex:none;font-family:var(--font-body);font-weight:700;font-size:11px;color:var(--faint);background:var(--surface2);border:1px solid var(--line);border-radius:6px;padding:2px 7px}@media (max-width: 560px){.soverlay{top:8vh;width:94vw;max-height:80vh}}.ps{max-width:640px;margin:0 auto}.ps-capture{display:flex;align-items:center;gap:14px;width:100%;text-align:left;font:inherit;color:inherit;border:2px dashed var(--line);border-radius:16px;padding:20px;cursor:pointer;background:var(--surface2);transition:border-color var(--dur-1) var(--ease-out)}.ps-capture:hover{border-color:var(--mark)}.ps-capture:focus-visible{outline:none;border-color:var(--mark);box-shadow:0 0 0 3px color-mix(in srgb,var(--mark) 40%,transparent)}.ps-capture-ico{font-size:34px;flex:none}.ps-capture-txt{display:flex;flex-direction:column;gap:3px}.ps-capture-txt b{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink)}.ps-capture-txt span{font-size:12.5px;color:var(--muted);line-height:1.4}.ps-mode{display:flex;align-items:center;gap:7px;margin-top:14px;flex-wrap:wrap}.ps-mode-lab{font-size:13px;color:var(--muted);font-weight:600}.ps-fromphone{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.03em;color:var(--on-mark);background:var(--mark);border-radius:999px;padding:3px 10px;margin-bottom:10px}.ps-problem{font-family:ui-monospace,monospace;font-size:14px;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:12px;white-space:pre-wrap}.ps-verified{font-size:10px;font-weight:800;color:var(--green);margin-left:6px;letter-spacing:.03em}.ps-lowconf{margin:10px 0 0;font-size:12.5px;color:var(--warn, #d9603f);line-height:1.5}.ps-steps{margin:14px 0 0;padding-left:22px;color:var(--ink);font-size:14px;line-height:1.7}.ps-steps li{margin-bottom:4px}.ps-explain{margin-top:14px;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:1.6;color:var(--ink);white-space:pre-wrap}.ps-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}.ps-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 0}.ps-preview,.ps-thumb{border-radius:12px;border:1px solid var(--line);object-fit:cover}.ps-preview{max-width:260px;max-height:220px}.ps-loading p{margin:0;font-size:13.5px;color:var(--muted)}.ps-shimmer{width:220px;height:6px;border-radius:999px;background:var(--surface2);overflow:hidden;position:relative}.ps-shimmer span{position:absolute;top:0;right:0;bottom:0;left:0;width:40%;border-radius:999px;background:linear-gradient(90deg,transparent,var(--mark),transparent);animation:ps-slide 1.1s ease-in-out infinite}@keyframes ps-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}.ps-qr{display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface2);color:var(--ink)}.ps-qr svg{flex:none}.ps-qr-txt{display:flex;flex-direction:column;gap:3px}.ps-qr-txt b{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ink)}.ps-qr-txt span{font-size:12px;color:var(--muted);line-height:1.4}.ps-result-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ps-thumb{max-width:64px;max-height:64px}@media (prefers-reduced-motion: reduce){.ps-shimmer span{animation:none}}.m-tools-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:14px 16px;margin-top:14px;cursor:pointer}.m-tools-ico{font-size:24px}.m-tools-txt{display:flex;flex-direction:column}.m-tools-txt b{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink)}.m-tools-txt span{font-size:12.5px;color:var(--muted)}.m-tools-go{margin-left:auto;color:var(--faint);font-size:18px}@media (max-width: 640px){.ti{max-width:100%}}.tip-wrap{display:contents}.tip{position:fixed;z-index:var(--z-tooltip);pointer-events:none;max-width:240px;padding:6px 9px;border-radius:var(--r-sm);background:var(--ink);color:var(--bg);font-family:var(--font-body);font-size:12.5px;font-weight:600;line-height:1.35;white-space:nowrap;box-shadow:var(--shadow-pop);opacity:0;transform:translateY(-3px);transition:opacity var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}.tip.tip-top{transform:translateY(3px)}.tip.is-in{opacity:1;transform:translateY(0)}.tip-arrow{position:absolute;left:50%;width:7px;height:7px;margin-left:-3.5px;background:inherit;transform:rotate(45deg);border-radius:1px}.tip-bottom .tip-arrow{top:-3px}.tip-top .tip-arrow{bottom:-3px}@media (prefers-reduced-motion: reduce){.tip,.tip.tip-top{transition:none;transform:none}}.levelmeter{margin-top:5px;max-width:150px;--grade: var(--grade-good)}.levelmeter.mid{--grade: var(--grade-mid)}.levelmeter.low{--grade: var(--grade-low)}.levelmeter-track{height:4px;border-radius:var(--r-pill);background:var(--surface2);overflow:hidden}.levelmeter-fill{display:block;height:100%;border-radius:var(--r-pill);background:color-mix(in srgb,var(--grade) 78%,transparent);transition:width var(--dur-3) var(--ease-out)}@media (prefers-reduced-motion: reduce){.levelmeter-fill{transition:none}}.quiz-pwrap{display:flex;flex-direction:column;gap:6px;flex:1;min-width:120px}.quiz-pbar{height:5px;border-radius:var(--r-pill);background:var(--surface2);overflow:hidden}.quiz-pbar-fill{display:block;height:100%;border-radius:var(--r-pill);background:var(--mark);transition:width var(--dur-2) var(--ease-out)}@media (prefers-reduced-motion: reduce){.quiz-pbar-fill{transition:none}}.emptystate{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:34px 22px}.emptystate-ico{font-size:26px;line-height:1;margin-bottom:2px;opacity:.92}.emptystate-ico img{width:26px;height:26px}.emptystate-title{font-family:var(--font-display);font-weight:800;font-size:var(--fs-md);color:var(--ink)}.emptystate-body{font-size:13.5px;color:var(--muted);line-height:var(--lh-normal);max-width:34ch}.emptystate-action{margin-top:8px}.hovercard-wrap{display:contents}.hovercard{position:fixed;z-index:var(--z-hovercard);max-width:calc(100vw - 16px);padding:12px 14px 11px;border-radius:var(--r-lg);background:var(--card-sheen),var(--card-glass);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid var(--hairline);box-shadow:var(--shadow-pop);color:var(--ink);font-family:var(--font-body);text-align:left;opacity:0;transform:translateY(-4px);transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.hovercard.hovercard-top{transform:translateY(4px)}.hovercard.is-in{opacity:1;transform:translateY(0)}.hovercard:before{content:"";position:absolute;left:0;right:0;height:10px}.hovercard-bottom:before{top:-10px}.hovercard-top:before{bottom:-10px}.hovercard-course{font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--accent-ink)}.hovercard-title{font-family:var(--font-display);font-weight:800;font-size:var(--fs-md);line-height:var(--lh-snug);color:var(--ink);margin-top:3px}.hovercard-due{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:var(--fs-sm);color:var(--muted)}.hovercard-due-date{font-variant-numeric:tabular-nums}.hovercard-left{font-weight:700;font-variant-numeric:tabular-nums;color:var(--faint)}.hovercard-left.soon{color:var(--coral-ink)}.hovercard-facts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}.hovercard-chip{font-family:var(--font-display);font-weight:700;font-size:11.5px;padding:4px 9px;border-radius:var(--r-pill);background:var(--surface2);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.hovercard-actions{display:flex;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid var(--hairline)}.hovercard-btn{flex:1;padding:7px 10px;border-radius:var(--r-md);cursor:pointer;background:var(--surface2);border:1px solid var(--hairline);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:13px;box-shadow:inset 0 1px #ffffff80,0 1px 1px #00000008,0 2px 6px -2px #4a3a2024;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.hovercard-btn:hover{background:var(--hover-wash)}.hovercard-btn.primary{background:var(--mark);border-color:var(--mark);color:var(--on-mark)}.hovercard-btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}@media (prefers-reduced-motion: reduce){.hovercard,.hovercard.hovercard-top{transition:none;transform:none}.hovercard-btn{transition:none}}.crumbs{min-width:0;margin-bottom:6px}.crumbs-list{display:flex;align-items:center;gap:4px;min-width:0;list-style:none;margin:0;padding:0}.crumbs-item{display:flex;align-items:center;gap:4px;min-width:0}.crumbs-link,.crumbs-cur{min-width:0;max-width:26ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.4}.crumbs-link{background:none;border:none;padding:2px 4px;margin:0 -4px 0 0;border-radius:var(--r-xs);color:var(--muted);font-weight:600;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.crumbs-link:hover{color:var(--ink);background:var(--hover-wash)}.crumbs-link:focus-visible{outline:2px solid var(--mark);outline-offset:2px;color:var(--ink)}.crumbs-cur{color:var(--ink);font-weight:700}.crumbs-sep{color:var(--faint);font-size:14px;line-height:1;opacity:.75;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion: reduce){.crumbs-link{transition:none}}@media (max-width: 640px){.crumbs-link,.crumbs-cur{max-width:16ch}}::selection{background:var(--mark);color:var(--on-mark)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--faint)}a:focus-visible,button:focus-visible,input:focus-visible:not(.hsearch-input),textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--mark);outline-offset:2px}*{-webkit-tap-highlight-color:transparent}.theme-switch:focus:not(:focus-visible){outline:none}.theme-switch:focus-visible{outline:2px solid var(--mark);outline-offset:2px}
