pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#6cb6ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-comment,.hljs-code,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}:root{--brand-accent-100:#ebeefe;--brand-accent-300:#c6cdfc;--brand-accent-500:#445bf6;--brand-accent-700:#3547c0;--brand-accent-900:#27358f;--brand-accent-fg:#fff;--brand-highlight-100:#fdfce5;--brand-highlight-300:#f9f47f;--brand-highlight-500:#f4ea00;--brand-highlight-700:#b9b200;--brand-highlight-900:#847e00;--brand-highlight-fg:#343646;--brand-ink:#343646;--brand-surface:#f7f7f9;--brand-neutral-hue:235;--brand-font-text:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--brand-font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--brand-font-accent:"Simeiz", Georgia, serif;--font-size-100:.6875rem;--font-size-200:.8125rem;--font-size-300:.9375rem;--font-size-400:1.0625rem;--font-size-500:1.25rem;--font-size-600:1.625rem;--font-size-700:2.125rem;--font-size-800:3.25rem;--font-size-900:4.75rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1;--leading-snug:1.15;--leading-normal:1.3;--leading-relaxed:1.55;--leading-caption:1.4;--tracking-display:-.03em;--tracking-heading:-.015em;--tracking-normal:0em;--measure-text:68ch;--measure-lead:46ch;--neutral-0:#fff;--neutral-50:#f7f7f9;--neutral-100:#f2f2f5;--neutral-200:#e9e9ee;--neutral-300:#dfdfe4;--neutral-400:#c5c6cd;--neutral-500:#878892;--neutral-600:#6c6d79;--neutral-700:#545664;--neutral-800:#43455a;--neutral-900:#343646;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--radius-100:6px;--radius-200:10px;--radius-300:18px;--radius-400:28px;--radius-full:999px;--elevation-0:none;--elevation-1:0 2px 8px #3436461a, 0 1px 2px #3436460f;--elevation-2:0 12px 32px #34364629, 0 2px 6px #34364614;--elevation-3:0 20px 48px #34364633;--layer-base:0;--layer-sticky:100;--layer-dropdown:200;--layer-overlay:300;--layer-modal:400;--layer-toast:500;--rhythm-app-section:var(--space-6);--rhythm-app-block:var(--space-5);--rhythm-app-inner:var(--space-3);--rhythm-web-section:var(--space-9);--rhythm-web-block:var(--space-7);--rhythm-web-inner:var(--space-4);--shell-sidebar-open:240px;--shell-sidebar-collapsed:64px;--shell-topbar:56px;--shell-tabbar:56px;--shell-content-min:640px;--shell-web-max:1280px;--tile-min:280px;--tile-min-wide:380px;--tile-max:560px;--ultrawide:2000px;--gutter-sm:20px;--gutter-md:32px;--gutter-lg:64px;--cols-sm:4;--gap-sm:16px;--cols-md:8;--gap-md:20px;--cols-lg:12;--gap-lg:24px;--motion-fast:.12s;--motion-base:.18s;--motion-slow:.28s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--density-panel-row:32px;--density-panel-pad:var(--space-2);--density-app-row:40px;--density-app-pad:var(--space-3);--density-web-pad:var(--space-5);--color-text-primary:var(--brand-ink);--color-text-secondary:var(--neutral-700);--color-text-muted:var(--neutral-600);--color-text-inverse:var(--neutral-0);--color-text-accent:var(--brand-accent-700);--color-surface-base:var(--brand-surface);--color-surface-raised:var(--neutral-0);--color-surface-sunken:var(--neutral-100);--color-surface-accent:var(--brand-accent-100);--color-surface-overlay:#3436468c;--color-border-default:var(--neutral-200);--color-border-strong:var(--neutral-300);--color-border-control:var(--neutral-500);--color-border-focus:var(--brand-accent-500);--color-action-primary-bg:var(--brand-accent-500);--color-action-primary-fg:var(--brand-accent-fg);--color-action-primary-hover:var(--brand-accent-700);--color-action-primary-active:var(--brand-accent-900);--color-border-accent:var(--brand-accent-300);--color-action-secondary-bg:var(--brand-accent-100);--color-current-bg:var(--brand-highlight-500);--color-current-fg:var(--brand-highlight-fg);--color-current-soft:var(--brand-highlight-100);--color-current-border:var(--brand-highlight-300);--color-current-strong:var(--brand-highlight-900);--color-status-success-fg:#1f6b4a;--color-status-success-border:#7fbca0;--color-status-success-bg:#eaf5ef;--color-status-warning-fg:#8a5a00;--color-status-warning-border:#d0ae60;--color-status-warning-bg:#fbf3e3;--color-action-danger-bg:#a32f26;--color-action-danger-fg:#fff;--color-action-danger-hover:#8a2820;--color-action-danger-active:#701f19;--color-status-error-fg:#a32f26;--color-status-error-border:#de9089;--color-status-error-bg:#fbedeb;--color-status-info-fg:#2a5578;--color-status-info-border:#8daecb;--color-status-info-bg:#edf3f8;--text-app-title-size:var(--font-size-600);--text-app-title-weight:var(--weight-semibold);--text-app-title-leading:var(--leading-snug);--text-section-size:var(--font-size-500);--text-section-weight:var(--weight-semibold);--text-card-title-size:var(--font-size-400);--text-card-title-weight:var(--weight-medium);--text-body-size:var(--font-size-300);--text-body-weight:var(--weight-regular);--text-body-leading:var(--leading-relaxed);--text-caption-size:var(--font-size-200);--text-label-size:var(--font-size-100);--text-label-weight:var(--weight-medium);--text-hero-size:var(--font-size-900);--text-hero-weight:var(--weight-bold);--text-hero-leading:var(--leading-tight);--text-page-title-size:var(--font-size-700);--text-page-title-weight:var(--weight-bold);--control-height-sm:32px;--control-height-md:40px;--control-height-lg:48px;--control-radius:var(--radius-full);--control-pad-sm:var(--space-3);--control-pad-md:var(--space-4);--control-pad-lg:var(--space-5);--button-gap:var(--space-2);--button-group-gap:var(--space-3);--button-icon-gap:var(--space-2);--field-gap:var(--space-2);--field-radius:var(--radius-full);--textarea-min:88px;--textarea-radius:var(--radius-300);--choice-size:18px;--choice-radius:var(--radius-100);--switch-width:36px;--switch-height:20px;--switch-knob:16px;--chip-height:28px;--chip-radius:var(--radius-full);--chip-pad:var(--space-3);--icon-14:14px;--icon-16:16px;--icon-20:20px;--icon-24:24px;--icon-32:32px;--icon-text-gap:var(--space-2);--touch-target:44px;--focus-ring:2px;--focus-offset:2px}@media (max-width:760px){:root{--font-size-900:2.5rem;--font-size-800:2rem;--font-size-700:1.625rem;--font-size-600:1.375rem;--font-size-500:1.125rem}}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@layer theme{:root,:host{--font-sans:var(--brand-font-text);--font-serif:var(--brand-font-text);--font-mono:var(--brand-font-mono);--container-sm:24rem;--container-2xl:42rem;--ease-out:var(--ease-out);--ease-in-out:var(--ease-in-out);--animate-spin:spin 1s linear infinite;--default-font-family:var(--brand-font-text);--default-mono-font-family:var(--brand-font-mono);--font-heading:var(--brand-font-text);--radius-sm:var(--radius-100);--radius-md:var(--radius-200);--radius-full:var(--radius-full);--shadow-sm:var(--elevation-1);--shadow-md:var(--elevation-1);--shadow-lg:var(--elevation-2);--leading-tight:var(--leading-tight);--leading-snug:var(--leading-snug);--leading-normal:var(--leading-normal);--leading-relaxed:var(--leading-relaxed);--leading-caption:var(--leading-caption);--tracking-normal:var(--tracking-normal)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@media (pointer:coarse){button,a{min-height:var(--touch-target)}}button{justify-content:center;align-items:center;display:inline-flex}*{border-color:var(--color-border-default);outline-color:var(--color-border-focus)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--color-border-focus) 50%, transparent)}}body{background-color:var(--color-surface-base);background-image:radial-gradient(var(--color-border-default) 1.4px, transparent 1.4px);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-300);line-height:var(--leading-relaxed);background-size:34px 34px}.student-portal h1,.student-portal h2,.student-portal h3,.student-portal h4,.student-portal h5,.student-portal h6{font-family:var(--font-heading);color:var(--color-text-primary)}}@layer components{.card{background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--space-4);box-shadow:var(--shadow);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out)}.card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.btn-primary,.btn-ghost,.btn-danger,.btn-danger-quiet,.btn-quiet,.btn-icon{justify-content:center;align-items:center;gap:var(--button-icon-gap);border-radius:var(--r-field);line-height:var(--leading-tight);min-height:var(--control-height-md);padding:0 var(--control-pad-md);font-size:var(--font-size-300);font-weight:var(--weight-medium);font-family:var(--font-sans);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn-primary:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible,.btn-danger-quiet:focus-visible,.btn-quiet:focus-visible,.btn-icon:focus-visible{outline:var(--focus-ring) solid var(--focus-color);outline-offset:var(--focus-offset)}.btn-primary{background:var(--color-action-primary-bg);color:var(--color-action-primary-fg)}.btn-primary:hover{background:var(--color-action-primary-hover)}.btn-primary:active{background:var(--color-action-primary-active)}.btn-primary:disabled{opacity:1;background:var(--bg-surface-2);color:var(--text-muted);border-color:var(--color-border-control);cursor:not-allowed;pointer-events:none;filter:none;transform:none}.btn-primary.is-locked,.btn-primary.is-locked:hover,.btn-primary.is-locked:active,.btn-ghost.is-locked,.btn-ghost.is-locked:hover{background:var(--bg-surface-2);color:var(--text-muted);border-color:var(--color-border-control);cursor:not-allowed}.btn-lock-reason{margin:var(--space-1) 0 0;font-size:var(--font-size-200);line-height:var(--leading-normal);color:var(--color-text-muted);text-align:right}.btn-ghost{color:var(--text-primary);border-color:var(--color-border-control);background:0 0}.btn-ghost:hover{background:var(--bg-surface-2);border-color:var(--border-strong)}.settings-sublink{align-items:center;gap:var(--button-icon-gap);text-decoration:none;display:inline-flex}@media (max-width:639px){.settings-sublink{justify-content:center;width:100%;display:flex}}.btn-ghost:disabled{opacity:1;background:var(--bg-surface-2);color:var(--text-muted);border-color:var(--color-border-control);cursor:not-allowed;pointer-events:none;filter:none;transform:none}.btn-danger{background:var(--color-action-danger-bg);color:var(--color-action-danger-fg)}.btn-danger:hover{background:var(--color-action-danger-hover)}.btn-danger:active{background:var(--color-action-danger-active)}.btn-danger-quiet{color:var(--color-action-danger-bg);background:0 0}.btn-danger-quiet:hover{background:var(--color-status-error-bg);color:var(--color-action-danger-hover)}.btn-danger-quiet:active{background:var(--color-status-error-bg);color:var(--color-action-danger-active)}.btn-quiet{color:var(--text-primary);background:0 0}.btn-quiet:hover{background:var(--bg-surface-2);color:var(--text-primary)}.btn-icon{width:var(--control-height-md);background:var(--bg-surface-2);border-color:var(--color-border-control);color:var(--text-muted);padding:0}.btn-sm{min-height:var(--control-height-sm);padding:0 var(--control-pad-sm);font-size:var(--fs-sm);border-radius:var(--control-radius)}.btn-only{width:var(--control-height-md);padding:0}.btn-only.btn-sm{width:var(--control-height-sm)}.btn-danger:disabled,.btn-danger-quiet:disabled,.btn-quiet:disabled,.btn-icon:disabled,.btn-danger[aria-disabled=true],.btn-danger-quiet[aria-disabled=true],.btn-quiet[aria-disabled=true],.btn-icon[aria-disabled=true]{opacity:.45;pointer-events:none;filter:none;transform:none}[data-slot=button]:disabled,[data-slot=button][data-disabled],[data-slot=button][aria-disabled=true]{opacity:1;background:var(--bg-surface-2);color:var(--text-muted);border-color:var(--color-border-control);box-shadow:none}[data-slot=button].text-primary:where(:not(.bg-primary)){color:var(--link)}.td-input{background:var(--surface-card);border:1px solid var(--interactive-border);border-radius:var(--radius-200);min-height:var(--control-height-md);padding:var(--space-2) var(--space-4);font-size:var(--fs-base);font-family:var(--font-sans);color:var(--text-primary);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);outline:none;width:100%}:root[data-input-modality=keyboard] .td-input:focus-visible{border-color:var(--focus-color)!important;box-shadow:0 0 0 var(--focus-ring) var(--focus-ring-color)!important}.td-input::placeholder{color:var(--text-muted)}.td-field{box-sizing:border-box;width:100%;min-height:var(--control-height-md);padding:0 var(--control-pad-md);border:1px solid var(--color-border-control);border-radius:var(--field-radius);background:var(--color-surface-raised);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-300);transition:border-color var(--motion-fast) var(--ease-out);outline:none}.td-field:hover{border-color:var(--color-text-muted)}.td-field:focus-visible,.td-field:focus{border-color:var(--color-border-focus);outline:var(--focus-ring) solid var(--color-border-focus);outline-offset:var(--focus-offset)}.td-field:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:not-allowed}.td-field--area{padding:var(--space-3) var(--control-pad-md);min-height:var(--textarea-min);border-radius:var(--textarea-radius);resize:vertical;line-height:var(--leading-relaxed)}@media (max-width:640px){.td-field--area{resize:none;field-sizing:content;max-height:calc(var(--textarea-min) + 3 * 1lh);overflow-y:auto}}.field{gap:var(--space-2);flex-direction:column;flex:1;min-width:230px;display:flex}.field label{font-size:var(--font-size-200);font-weight:var(--weight-medium);line-height:var(--leading-caption);color:var(--color-text-primary)}.field .hint{font-size:var(--fs-xs);line-height:var(--leading-caption);min-height:calc(var(--fs-xs) * var(--leading-caption));color:var(--text-faint);margin:0}.field .hint.err{color:var(--color-status-error-fg)}.form-msg{font-size:var(--fs-xs);line-height:var(--leading-caption);min-height:calc(var(--fs-xs) * var(--leading-caption));color:var(--text-faint);margin:0;display:block}.form-msg.err{color:var(--color-status-error-fg)}.form-msg>.ic{margin-right:var(--space-1);vertical-align:-.15em;flex:none}.input{align-items:center;gap:var(--icon-text-gap);border:1px solid var(--color-border-control);background:var(--color-surface-raised);border-radius:var(--r-field);min-height:var(--control-height-lg);padding:0 var(--control-pad-sm);color:var(--text-muted);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);display:flex}:root[data-input-modality=keyboard] .input:focus-within{border-color:var(--color-border-focus);box-shadow:0 0 0 var(--focus-ring) var(--focus-ring-color)}.input.err{border-color:var(--danger)}.input input,.input textarea,.input select{width:100%;min-width:0;color:var(--text-primary);font-size:var(--fs-md);font-weight:var(--weight-regular);font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;padding:0}.input .input__icon{color:var(--text-muted);flex-shrink:0;display:inline-flex}.input textarea{resize:vertical;min-height:64px}.input:has(textarea){border-radius:var(--textarea-radius);min-height:0;padding:var(--space-3) var(--control-pad-sm);align-items:stretch}.input--select{position:relative}.input--select select{appearance:none;cursor:pointer;padding-right:calc(var(--icon-16) + var(--space-2))}.input--select .input__chevron{right:var(--control-pad-sm);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:500;font-family:var(--font-sans);line-height:var(--leading-snug);border-radius:999px;display:inline-flex}.badge .d{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.badge.solid{background:var(--color-action-primary-bg);color:var(--color-action-primary-fg)}.badge.green{background:var(--green-soft);color:var(--success-text)}.badge.coral{background:var(--color-status-error-bg);color:var(--coral-text)}.badge.line{border:1px solid var(--line);color:var(--text-muted);background:0 0}.badge-done{background:var(--success-light);color:var(--success-text);border:1px solid var(--color-status-success-border)}.badge-now{background:var(--accent);color:var(--on-marker)}.badge-soon{background:var(--warning-light);color:var(--warning-text);border:1px solid var(--color-status-warning-border)}.badge-overdue{background:var(--danger-light);color:var(--danger-text);border:1px solid var(--color-status-error-border)}.tag{align-items:center;gap:var(--space-2);border-radius:var(--r-badge);padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:500;font-family:var(--font-sans);background:var(--c);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.tag{background:color-mix(in srgb, var(--c) 14%, transparent)}}.tag{color:var(--c)}@supports (color:color-mix(in lab, red, red)){.tag{color:color-mix(in srgb, var(--c) 75%, #000)}}[data-theme=dark] .tag,:root:not([data-theme=light]) .tag{color:var(--c)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .tag,:root:not([data-theme=light]) .tag{color:color-mix(in srgb, var(--c) 48%, #fff)}}.tag .dot{background:var(--c);border-radius:50%;flex:none;width:7px;height:7px}.count{min-width:20px;height:20px;padding:0 var(--space-2);background:var(--coral);color:var(--on-marker);font-size:var(--fs-2xs);font-weight:600;font-family:var(--font-sans);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.count.green{background:var(--success);color:var(--on-success)}.tl-chip .count{background:0 0;border-radius:0;min-width:0;height:auto;padding:0}.topbar-icon-btn{width:var(--control-height-md);height:var(--control-height-md);background:var(--color-surface-raised);border:1px solid var(--color-border-control);border-radius:var(--control-radius);cursor:pointer;color:var(--text-muted);transition:background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.topbar-icon-btn:hover{background:var(--color-surface-sunken);color:var(--text-primary)}.topbar-icon-btn:disabled{cursor:wait;opacity:.6}.theme-toggle-icon-sun,[data-theme=light] .theme-toggle-icon-moon{display:none}[data-theme=light] .theme-toggle-icon-sun{display:block}.app-tab{transition:box-shadow var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);box-shadow:inset 0 -2px #0000}.app-tab[data-state=active],.app-tab[aria-selected=true]{box-shadow:inset 0 -2px 0 var(--tab-underline);color:var(--text-primary)}.app-chip{border:1px solid var(--border);transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)}.app-chip.is-on{background:var(--chip-active-bg);color:var(--chip-active-fg);border-color:var(--chip-active-border)}.stat-card{background:var(--bg-surface);border:1px solid var(--border-card);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);border-radius:16px}.td-page-head{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.td-page-title{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--font-size-600);letter-spacing:var(--tracking-heading);line-height:var(--text-app-title-leading);color:var(--text-primary);white-space:normal;overflow-wrap:anywhere;margin:0}.td-page-title em,.td-page-title .td-accent{font-style:normal;font-weight:inherit;color:var(--color-text-accent)}.td-page-subtitle{margin:var(--space-2) 0 0;font-size:var(--fs-sm);color:var(--text-muted);font-feature-settings:"tnum"}.stat-label{font-size:var(--fs-2xs);letter-spacing:var(--tracking-normal);color:var(--text-muted);margin-bottom:8px;font-weight:600}.stat-value{letter-spacing:var(--tracking-normal);color:var(--text-primary);font-size:1.875rem;font-weight:700;line-height:var(--leading-tight)}.subject-badge{padding:var(--space-1) var(--space-3);font-size:var(--fs-2xs);letter-spacing:var(--tracking-normal);background:var(--accent-light);color:var(--text-primary);border:1px solid var(--accent-medium);border-radius:6px;font-weight:700;display:inline-block}.filter-pill{padding:var(--space-2) var(--space-3);font-size:var(--fs-sm);font-weight:500;font-family:var(--font-sans);border:1px solid var(--border);color:var(--text-secondary);background:var(--bg-surface);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);border-radius:20px}.filter-pill:hover{border-color:var(--accent-medium);color:var(--text-primary)}.filter-pill.active{background:var(--chip-active-bg);border-color:var(--chip-active-border);color:var(--chip-active-fg);font-weight:600}.avatar-blue,.avatar-green,.avatar-purple,.avatar-orange,.avatar-pink,.avatar-teal{background:var(--color-surface-accent);color:var(--color-text-accent)}:root[data-input-modality=keyboard] input[type=text]:focus-visible,:root[data-input-modality=keyboard] input[type=email]:focus-visible,:root[data-input-modality=keyboard] input[type=password]:focus-visible,:root[data-input-modality=keyboard] input[type=number]:focus-visible,:root[data-input-modality=keyboard] textarea:focus-visible,:root[data-input-modality=keyboard] select:focus-visible{outline:none;border-color:var(--focus-color)!important;box-shadow:0 0 0 var(--focus-ring) var(--focus-ring-color)!important}.text-ink2{color:var(--text-secondary)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--line);display:flex}.tab{color:var(--text-muted);padding:var(--space-2) var(--space-3);font-size:var(--fs-base);font-weight:500;font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.tab.on{color:var(--text-primary);border-bottom-color:var(--color-action-primary-bg)}.seg{background:var(--color-surface-sunken);border:1px solid var(--color-border-default);border-radius:var(--radius-200);padding:var(--legacy-space-2);display:inline-flex}.seg>button{appearance:none;padding:5px var(--space-3);border-radius:var(--radius-100);font-size:var(--fs-sm);font-weight:var(--weight-medium);font-family:var(--font-sans);color:var(--color-text-secondary);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);background:0 0;border:0}.seg>button.on{background:var(--color-surface-raised);color:var(--color-text-primary);box-shadow:var(--elevation-1)}.seg>button:hover:not(.on){background:var(--color-border-default);color:var(--color-text-primary)}.av{border-radius:var(--radius-full);width:30px;height:30px;font-size:var(--fs-2xs);font-weight:var(--weight-semibold);font-family:var(--font-sans);color:var(--color-text-inverse);background:var(--c,var(--subj-english));flex:none;justify-content:center;align-items:center;display:inline-flex}.av-lg{width:46px;height:46px;font-size:var(--fs-lg);font-weight:var(--weight-semibold);font-family:var(--font-sans);color:var(--color-text-inverse);background:var(--c,var(--subj-english));border-radius:13px;flex:none;justify-content:center;align-items:center;display:inline-flex}.userchip{align-items:center;gap:var(--space-2);border:1px solid var(--line);background:var(--card-2);border-radius:var(--r-field);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);font-size:var(--fs-base);color:var(--text-primary);display:inline-flex}.userchip .av{background:var(--color-surface-accent);color:var(--color-text-accent);font-size:var(--fs-xs)}.av-group{align-items:center;display:inline-flex}.av-group>.av+.av,.av-group>.av-lg+.av-lg,.av-group>.av-more{margin-left:calc(var(--space-2) * -1)}.av-group>.av,.av-group>.av-lg,.av-group>.av-more{box-shadow:0 0 0 2px var(--card)}.av-more{border-radius:var(--radius-full);width:30px;height:30px;font-size:var(--fs-2xs);font-weight:600;font-family:var(--font-sans);color:var(--text-muted);background:var(--card-2);border:1px solid var(--line);flex:none;justify-content:center;align-items:center;display:inline-flex}.progress{flex:1;min-width:180px}.progress .track{background:var(--card-2);border:1px solid var(--line);border-radius:5px;height:9px;overflow:hidden}.progress .fill{background:var(--success);border-radius:5px;height:100%}.score{font-family:var(--font-heading);font-size:var(--fs-3xl);color:var(--text-primary)}.score small{font-size:var(--fs-sm);font-family:var(--font-sans);color:var(--text-muted)}.tbl{border:1px solid var(--line);width:100%;font-size:var(--fs-base);border-radius:13px;overflow:hidden}.tbl .tr{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);grid-template-columns:1.6fr 1fr 1fr auto;display:grid}.tbl .tr:first-child{background:var(--card-2);color:var(--text-muted);font-weight:500;font-size:var(--fs-xs);letter-spacing:var(--tracking-normal);border-top:none}.tbl .who{align-items:center;gap:var(--space-2);display:flex}.tbl .badge{justify-self:start}.tbl .tr-empty{padding:var(--space-5) var(--space-4);text-align:center;color:var(--text-muted);border-top:1px solid var(--line);display:block}.modal{--td-modal-w:520px;width:100%;max-width:var(--td-modal-w);background:var(--color-surface-raised);border-radius:var(--radius-300);box-shadow:var(--elevation-3);border:none;flex-direction:column;max-height:100%;display:flex;overflow:hidden}.modal-scrim{z-index:var(--layer-modal)}.modal .mh,.modal .mf{flex:none}.modal .mb{flex:auto;min-height:0;overflow-y:auto}.modal .mh{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);color:var(--text-primary);display:flex}.modal .mh-title{min-width:0;font-size:var(--font-size-500);font-weight:var(--weight-semibold);flex:1}.mx,.modal .mx{width:var(--control-height-sm);height:var(--control-height-sm);border-radius:var(--control-radius);min-height:0;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.mx:hover:not(:disabled){color:var(--text-primary);background:var(--color-surface-sunken)}.mx:active:not(:disabled){background:var(--color-border-default)}.mx:disabled{cursor:not-allowed}.modal .mb{padding:0 var(--space-5) var(--space-4);font-size:var(--fs-base);color:var(--color-text-primary)}.modal .mf{justify-content:flex-start;align-items:center;gap:var(--button-group-gap);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-default);background:var(--color-surface-sunken);flex-wrap:wrap;display:flex}@media (max-width:560px){.modal-scrim{align-items:flex-end!important;padding:0!important}.modal{border-radius:var(--radius-300) var(--radius-300) 0 0;max-width:none;max-height:92dvh;margin:0!important}.modal .mf{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));border-radius:0;flex-direction:column;align-items:stretch}.modal .mf>button{width:100%}.td-studio-modal__far{margin-left:0;margin-top:var(--space-2)}}@media (prefers-reduced-motion:no-preference){.modal:not(.modal-motion-managed){animation:td-modal-in var(--motion-modal) var(--ease-out)}}@keyframes td-modal-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}}@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--space-1)}.end{inset-inline-end:var(--space-1)}.top-2{top:calc(var(--space-1) * 2)}.top-3{top:calc(var(--space-1) * 3)}.right-3{right:calc(var(--space-1) * 3)}.left-0{left:calc(var(--space-1) * 0)}.z-30{z-index:30}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--space-1) * 1)}.mt-2{margin-top:calc(var(--space-1) * 2)}.mt-4{margin-top:calc(var(--space-1) * 4)}.mr-2{margin-right:calc(var(--space-1) * 2)}.mb-3{margin-bottom:calc(var(--space-1) * 3)}.mb-4{margin-bottom:calc(var(--space-1) * 4)}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.size-4{width:calc(var(--space-1) * 4);height:calc(var(--space-1) * 4)}.size-6{width:calc(var(--space-1) * 6);height:calc(var(--space-1) * 6)}.size-7{width:calc(var(--space-1) * 7);height:calc(var(--space-1) * 7)}.size-8{width:calc(var(--space-1) * 8);height:calc(var(--space-1) * 8)}.size-9{width:calc(var(--space-1) * 9);height:calc(var(--space-1) * 9)}.h-4{height:calc(var(--space-1) * 4)}.h-6{height:calc(var(--space-1) * 6)}.h-7{height:calc(var(--space-1) * 7)}.h-8{height:calc(var(--space-1) * 8)}.h-9{height:calc(var(--space-1) * 9)}.h-11{height:calc(var(--space-1) * 11)}.h-full{height:100%}.min-h-9{min-height:calc(var(--space-1) * 9)}.min-h-\[60vh\]{min-height:60vh}.min-h-\[calc\(100dvh-220px\)\]{min-height:calc(100dvh - 220px)}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.w-4{width:calc(var(--space-1) * 4)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[1200px\]{max-width:1200px}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--space-1) * 0)}.min-w-24{min-width:calc(var(--space-1) * 24)}.min-w-max{min-width:max-content}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-1{gap:calc(var(--space-1) * 1)}.gap-1\.5{gap:calc(var(--space-1) * 1.5)}.gap-2{gap:calc(var(--space-1) * 2)}.gap-3{gap:calc(var(--space-1) * 3)}.gap-6{gap:calc(var(--space-1) * 6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--space-1) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--space-1) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--space-1) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--space-1) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--space-1) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--space-1) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border-default)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-300)}.rounded-sm{border-radius:var(--radius-100)}.rounded-xl{border-radius:var(--radius-400)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[var\(--color-status-error-border\)\]{border-color:var(--color-status-error-border)}.border-border{border-color:var(--color-border-default)}.border-transparent{border-color:#0000}.bg-\[var\(--color-status-error-bg\)\]{background-color:var(--color-status-error-bg)}.bg-background{background-color:var(--color-surface-base)}.bg-card{background-color:var(--color-surface-raised)}.bg-destructive\/10{background-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--color-action-danger-bg) 10%, transparent)}}.bg-muted{background-color:var(--color-surface-sunken)}.bg-primary{background-color:var(--color-action-primary-bg)}.bg-secondary{background-color:var(--color-action-secondary-bg)}.bg-clip-padding{background-clip:padding-box}.p-4{padding:calc(var(--space-1) * 4)}.p-8{padding:calc(var(--space-1) * 8)}.px-2{padding-inline:calc(var(--space-1) * 2)}.px-2\.5{padding-inline:calc(var(--space-1) * 2.5)}.px-3{padding-inline:calc(var(--space-1) * 3)}.px-4{padding-inline:calc(var(--space-1) * 4)}.py-1{padding-block:calc(var(--space-1) * 1)}.py-2{padding-block:calc(var(--space-1) * 2)}.py-3{padding-block:calc(var(--space-1) * 3)}.py-6{padding-block:calc(var(--space-1) * 6)}.pt-2{padding-top:calc(var(--space-1) * 2)}.pt-4{padding-top:calc(var(--space-1) * 4)}.pt-6{padding-top:calc(var(--space-1) * 6)}.pb-1{padding-bottom:calc(var(--space-1) * 1)}.pb-12{padding-bottom:calc(var(--space-1) * 12)}.pl-6{padding-left:calc(var(--space-1) * 6)}.text-center{text-align:center}.align-top{vertical-align:top}.text-base{font-size:var(--font-size-300);line-height:var(--tw-leading,var(--leading-relaxed))}.text-lg{font-size:var(--font-size-400);line-height:var(--tw-leading,var(--leading-normal))}.text-sm{font-size:var(--font-size-200);line-height:var(--tw-leading,var(--leading-caption))}.text-xs{font-size:var(--font-size-100);line-height:var(--tw-leading,var(--leading-caption))}.text-\[0\.8rem\]{font-size:.8rem}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--weight-medium);font-weight:var(--weight-medium)}.font-semibold{--tw-font-weight:var(--weight-semibold);font-weight:var(--weight-semibold)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--color-status-error-fg\)\]{color:var(--color-status-error-fg)}.text-\[var\(--color-text-secondary\)\]{color:var(--color-text-secondary)}.text-accent{color:var(--color-action-primary-bg)}.text-card-foreground{color:var(--color-text-primary)}.text-destructive{color:var(--color-action-danger-bg)}.text-foreground{color:var(--color-text-primary)}.text-muted-foreground{color:var(--color-text-muted)}.text-primary{color:var(--color-action-primary-bg)}.text-primary-foreground{color:var(--color-action-primary-fg)}.text-secondary-foreground{color:var(--color-text-primary)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--ease-in-out));transition-duration:var(--tw-duration,var(--motion-fast))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ease-in-out));transition-duration:var(--tw-duration,var(--motion-fast))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ease-in-out));transition-duration:var(--tw-duration,var(--motion-fast))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.fade-in{--tw-enter-opacity:0}.paused{animation-play-state:paused}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.zoom-out{--tw-exit-scale:0}.first\:pt-0:first-child{padding-top:calc(var(--space-1) * 0)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--space-1) * 0)}@media (hover:hover){.hover\:bg-destructive\/20:hover{background-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--color-action-danger-bg) 20%, transparent)}}.hover\:bg-muted:hover{background-color:var(--color-surface-sunken)}.hover\:bg-secondary\/80:hover{background-color:var(--color-action-secondary-bg)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-action-secondary-bg) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--color-text-primary)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--color-action-danger-bg) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--color-border-focus)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-action-danger-bg) 20%, transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--color-border-focus)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-border-focus) 50%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--color-border-focus)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-300)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--space-1) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--space-1) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--space-1) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--space-1) * 2)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--color-surface-sunken)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--color-action-secondary-bg)}.aria-expanded\:text-foreground[aria-expanded=true],.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--color-text-primary)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--color-action-danger-bg)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-action-danger-bg) 20%, transparent)}}@media (min-width:40rem){.sm\:h-8{height:calc(var(--space-1) * 8)}.sm\:grid-cols-\[minmax\(0\,0\.9fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:p-6{padding:calc(var(--space-1) * 6)}.sm\:px-6{padding-inline:calc(var(--space-1) * 6)}}.dark\:border-input:is(.dark *){border-color:var(--color-border-control)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-action-danger-bg) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--color-border-control)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--color-border-control) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-action-danger-bg) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--color-border-control)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-border-control) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--color-surface-sunken)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-sunken) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-action-danger-bg) 40%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--color-action-danger-bg) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--color-action-danger-bg)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-action-danger-bg) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--space-1) * 3);height:calc(var(--space-1) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--space-1) * 3.5);height:calc(var(--space-1) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--space-1) * 4);height:calc(var(--space-1) * 4)}@media (hover:hover){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--color-action-primary-bg)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab, var(--color-action-primary-bg) 80%, transparent)}}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}*{-webkit-tap-highlight-color:transparent}[data-scroll],.overflow-y-auto,.overflow-auto{-webkit-overflow-scrolling:touch}:root{--marker:var(--color-action-primary-bg);--on-marker:var(--color-action-primary-fg);--green:var(--color-status-success-fg);--on-green:var(--color-text-inverse);--on-success:var(--on-green);--board:#16382c;--coral:var(--color-status-error-fg);--on-warm-avatar:var(--color-text-inverse);--bg:var(--color-surface-raised);--bg-alt:var(--color-surface-base);--fg:var(--color-text-primary);--fg-mut:var(--color-text-muted);--fg-mut-fill:var(--color-text-secondary);--card-line:var(--color-border-default);--dot:var(--color-border-default);--qb-bg:var(--color-surface-sunken);--qb-fg:var(--color-text-primary);--qb-line:var(--color-border-default);--whiteboard-paper:var(--color-surface-raised);--bg-primary:var(--color-surface-base);--bg-surface:var(--color-surface-raised);--bg-surface-2:var(--color-surface-sunken);--bg-surface-3:var(--color-surface-sunken);--accent:var(--color-action-primary-bg);--accent-hover:var(--color-action-primary-hover);--accent-light:var(--color-surface-accent);--accent-medium:var(--color-border-accent);--link:var(--color-text-accent);--link-underline:var(--color-text-accent);--link-hover:var(--color-action-primary-active);--focus-color:var(--color-border-focus);--focus-ring-color:var(--color-border-accent);--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-muted);--text-muted-raised:var(--color-text-muted);--text-accent:var(--color-text-accent);--border:var(--color-border-default);--border-strong:var(--color-border-strong);--interactive-border:var(--color-border-control);--border-card:var(--color-border-default);--success:var(--color-status-success-fg);--success-light:var(--color-status-success-bg);--success-text:var(--color-status-success-fg);--warning:var(--color-status-warning-fg);--warning-text:var(--color-status-warning-fg);--warning-light:var(--color-status-warning-bg);--danger:var(--color-action-danger-bg);--danger-text:var(--color-status-error-fg);--on-danger:var(--color-action-danger-fg);--danger-light:var(--color-status-error-bg);--nav-bg:var(--color-surface-sunken);--nav-fg:var(--color-text-primary);--nav-mut:var(--color-text-secondary);--nav-line:var(--color-border-default);--nav-hover:var(--color-surface-raised);--nav-on:var(--color-current-bg);--sidebar-bg:var(--nav-bg);--sidebar-text:var(--color-text-secondary);--sidebar-muted:var(--color-text-muted);--sidebar-active:var(--color-current-fg);--sidebar-active-bg:var(--color-current-bg);--sidebar-active-fill:var(--color-current-bg);--sidebar-sec:var(--color-text-muted);--sidebar-edge:var(--color-border-strong);--sidebar-ic-idle:var(--color-text-muted);--sidebar-av-bg:var(--color-surface-accent);--rail-border:var(--color-border-default);--rail-shadow:var(--elevation-0);--rail-w:var(--shell-sidebar-open);--overlay-dark:var(--color-surface-overlay);--overlay-light:#ffffff26;--text-on-accent:var(--color-action-primary-fg);--accent-secondary:var(--color-current-bg);--shadow:var(--elevation-0);--shadow-sm:var(--elevation-1);--shadow-md:var(--elevation-1);--shadow-lg:var(--elevation-2);--background:var(--color-surface-base);--foreground:var(--color-text-primary);--card:var(--color-surface-raised);--card-foreground:var(--color-text-primary);--popover:var(--color-surface-raised);--popover-foreground:var(--color-text-primary);--primary:var(--color-action-primary-bg);--primary-foreground:var(--color-action-primary-fg);--secondary:var(--color-surface-sunken);--secondary-foreground:var(--color-text-primary);--muted:var(--color-surface-sunken);--muted-foreground:var(--color-text-muted);--accent-foreground:var(--color-action-primary-fg);--destructive:var(--color-action-danger-bg);--border-color:var(--color-border-default);--input:var(--color-border-control);--ring:var(--color-border-focus);--radius:var(--radius-300);--sidebar:var(--color-surface-sunken);--sidebar-foreground:var(--color-text-secondary);--sidebar-primary:var(--color-current-bg);--sidebar-primary-foreground:var(--color-current-fg);--sidebar-accent:var(--color-surface-raised);--sidebar-accent-foreground:var(--color-text-primary);--sidebar-border:var(--color-border-default);--sidebar-ring:var(--color-border-focus);--font-onest:var(--brand-font-text);--font-ibm-plex-sans:var(--brand-font-text);--font-ibm-plex-serif:var(--brand-font-text);--font-ibm-plex-mono:var(--brand-font-mono);--font-hand:var(--brand-font-accent);--font-accent:var(--brand-font-accent);--board-font-serif:Georgia, "Times New Roman", serif;--surface:var(--bg-surface);--surface-2:var(--bg-surface-2);--surface-block:var(--bg-surface);--paper:var(--bg-surface);--bg-sidebar:var(--bg-surface-2);--panel:var(--bg-surface);--card-2:var(--bg-surface-2);--line:var(--border);--fg-faint:var(--text-faint);--ink:var(--text-primary);--ink-2:var(--text-secondary);--muted-2:var(--text-muted);--rule:var(--border);--rule-strong:var(--border-strong);--accent-soft:var(--color-surface-accent);--accent-ink:var(--color-text-accent);--sans:var(--font-sans);--serif:var(--font-serif);--mono:var(--font-mono);--font-body:var(--font-sans);--bg-canvas:var(--bg-primary);--border-subtle:var(--border);--green-soft:var(--color-status-success-bg);--line2:var(--bg-surface-2);--surface-page:var(--bg-primary);--surface-card:var(--bg-surface);--surface-inset:var(--bg-surface-3);--surface-popover:var(--popover);--border-inset:var(--border-strong);--track:var(--bg-surface-2);--track-fill:var(--color-action-primary-bg);--tab-underline:var(--color-action-primary-bg);--chip-active-bg:var(--color-current-bg);--chip-active-fg:var(--color-current-fg);--chip-active-border:var(--color-border-control);--chalk:var(--color-text-inverse);--text-faint:var(--text-muted);--text-decorative:var(--color-border-control);--paper-line:var(--color-border-default);--ai:var(--color-action-primary-bg);--ai-text:var(--color-text-accent);--coral-text:var(--color-status-error-fg);--ease-soft:var(--ease-in-out);--ease-bounce:var(--ease-out);--motion-tap:var(--motion-fast);--motion-modal:var(--motion-slow);--motion-drawer:var(--motion-slow);--motion-page:var(--motion-slow);--reveal-correct-bg:var(--color-status-success-bg);--reveal-correct-border:var(--color-status-success-border);--reveal-wrong-bg:var(--color-status-error-bg);--reveal-wrong-border:var(--color-status-error-border);--game-heart:var(--color-status-error-fg);--game-heart-empty:var(--color-border-strong);--game-streak:var(--color-text-accent);--game-xp:var(--color-status-success-fg);--mathkey-bg:var(--color-surface-sunken);--mathkey-border:var(--color-border-default);--mathkey-fg:var(--color-text-primary);--motion-flip:var(--motion-slow);--motion-reveal:var(--motion-base);--sh-1:var(--shadow-sm);--sh-2:var(--shadow-md);--sh-3:var(--shadow-lg);--r-field:var(--control-radius);--r-card:var(--radius-300);--r-panel:var(--radius-300);--r-island:var(--radius-300);--r-pill:var(--radius-full);--r-badge:var(--radius-100);--subj-algebra:#2b8260;--subj-geometry:#387f71;--subj-physics:#c8941f;--subj-english:#ab5f46;--subj-violet:#7667be;--on-subj-algebra:var(--color-text-inverse);--on-subj-geometry:var(--color-text-inverse);--on-subj-physics:#1d2025;--on-subj-english:var(--color-text-inverse);--on-subj-violet:var(--color-text-inverse);--coral-soft:var(--color-status-error-bg);--coral-line:var(--color-status-error-border);--gen-saved-head:var(--color-status-success-bg);--fs-3xs:var(--font-size-100);--fs-2xs:var(--font-size-100);--fs-xs:var(--font-size-200);--fs-sm:var(--font-size-200);--fs-base:var(--font-size-300);--fs-md:var(--font-size-300);--fs-lg:var(--font-size-400);--fs-xl:var(--font-size-400);--fs-2xl:var(--font-size-500);--fs-3xl:var(--font-size-500);--fs-4xl:var(--font-size-600);--fs-5xl:var(--font-size-700);--fs-6xl:var(--font-size-800);--fs-display:var(--font-size-900);--fs-section:var(--font-size-800);--legacy-space-2:2px;--legacy-space-4:var(--space-1);--legacy-space-6:6px;--legacy-space-8:var(--space-2);--legacy-space-10:10px;--legacy-space-12:var(--space-3);--legacy-space-14:14px;--legacy-space-16:var(--space-4);--legacy-space-20:var(--gap-md);--legacy-space-24:var(--space-5);--legacy-space-32:var(--space-6);--legacy-space-40:40px;--legacy-space-48:var(--space-7);--legacy-space-64:var(--space-8)}[data-theme=dark]{--marker:#ffd43b;--on-marker:#1d2025;--bg:#16382c;--bg-alt:#102016;--fg:#f0efe6;--fg-mut:#9db3a6;--fg-mut-fill:#b6c5b9;--card-line:#f0efe624;--dot:#e8efe90b;--surface-page:#131c12;--surface-card:#153327;--surface-inset:#1b4032;--surface-popover:#244f3e;--border-inset:#f0efe666;--track:#131410;--track-fill:var(--marker);--tab-underline:var(--marker);--chip-active-bg:var(--surface-inset);--chip-active-fg:var(--text-primary);--chip-active-border:var(--interactive-border);--qb-bg:#16382c;--qb-fg:#f0efe6;--qb-line:#f0efe647;--whiteboard-paper:#1f3a2c;--bg-primary:var(--surface-page);--bg-surface:var(--surface-card);--bg-surface-2:var(--bg-alt);--bg-surface-3:#102016;--accent:var(--marker);--accent-hover:#ffe066;--accent-light:#ffd43b21;--accent-medium:#ffd43b57;--link:#eaf3ee;--link-underline:#f0efe68c;--link-hover:var(--marker);--focus-color:var(--marker);--focus-ring-color:var(--marker)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--focus-ring-color:color-mix(in srgb, var(--marker) 25%, transparent)}}[data-theme=dark]{--text-primary:var(--fg);--text-secondary:#c2d2c9;--text-muted:var(--fg-mut);--text-muted-raised:#a7bfaf;--text-accent:var(--marker);--border:var(--card-line);--border-strong:#f0efe64d;--interactive-border:#9db3a6;--border-card:var(--card-line);--success:#8fbf9a;--on-success:var(--on-marker);--success-light:#8fbf9a29;--success-text:#b6dfc9;--warning:#e8b84b;--warning-text:#f4c96b;--warning-light:var(--warning)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--warning-light:color-mix(in srgb, var(--warning) 24%, transparent)}}[data-theme=dark]{--danger:#d2685e;--danger-text:#f0a097;--on-danger:#1d2025;--danger-light:#d0685e2e;--sidebar-bg:var(--nav-bg);--sidebar-text:var(--nav-mut);--sidebar-muted:var(--nav-mut);--sidebar-active:var(--marker);--sidebar-active-bg:var(--nav-on);--sidebar-active-fill:#1e4536;--sidebar-sec:#6e847a;--sidebar-edge:#f0efe657;--sidebar-ic-idle:var(--nav-mut);--sidebar-av-bg:#1e4536;--rail-border:var(--nav-line);--rail-shadow:0 10px 30px #00000057;--overlay-dark:#000000eb;--overlay-light:#f0efe61a;--text-on-accent:var(--on-marker);--accent-secondary:var(--coral);--shadow:0 1px 2px #0000004d, 0 6px 22px #00000057;--shadow-sm:0 1px 4px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 18px 50px #0000006b;--background:var(--surface-page);--foreground:var(--fg);--card:var(--surface-card);--card-foreground:var(--fg);--popover:var(--surface-popover);--popover-foreground:var(--fg);--primary:var(--marker);--primary-foreground:var(--on-marker);--secondary:#1b4032;--secondary-foreground:var(--fg);--muted:#1b4032;--muted-foreground:var(--text-muted-raised);--accent-foreground:var(--on-marker);--destructive:var(--danger);--border-color:var(--card-line);--input:var(--interactive-border);--ring:var(--marker);--sidebar:var(--board);--sidebar-foreground:#f0efe6;--sidebar-primary:var(--marker);--sidebar-primary-foreground:var(--on-marker);--sidebar-accent:#ffd43b29;--sidebar-accent-foreground:var(--marker);--sidebar-border:#f0efe61f;--sidebar-ring:var(--marker);--paper-line:#f0efe60f;--ai:#8fd3c4;--ai-text:var(--ai);--coral-text:#ffd0ca;--subj-algebra:#7fd6ae;--subj-geometry:#86d5c2;--subj-physics:#e8c06a;--subj-english:#f0a99a;--subj-violet:#b7aee8;--on-subj-algebra:var(--on-marker);--on-subj-geometry:var(--on-marker);--on-subj-physics:var(--on-marker);--on-subj-english:var(--on-marker);--on-subj-violet:var(--on-marker);--on-warm-avatar:var(--on-marker);--coral-soft:#43251f;--coral-line:#f0938a4d;--gen-saved-head:#235844}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--marker:#ffd43b;--on-marker:#1d2025;--bg:#16382c;--bg-alt:#102016;--fg:#f0efe6;--fg-mut:#9db3a6;--fg-mut-fill:#b6c5b9;--card-line:#f0efe624;--dot:#e8efe90b;--qb-bg:#16382c;--qb-fg:#f0efe6;--qb-line:#f0efe647;--whiteboard-paper:#1f3a2c;--surface-page:#131c12;--surface-card:#153327;--surface-inset:#1b4032;--surface-popover:#244f3e;--border-inset:#f0efe666;--track:#131410;--track-fill:var(--marker);--tab-underline:var(--marker);--chip-active-bg:var(--surface-inset);--chip-active-fg:var(--text-primary);--chip-active-border:var(--interactive-border);--bg-primary:var(--surface-page);--bg-surface:var(--surface-card);--bg-surface-2:var(--bg-alt);--bg-surface-3:#102016;--accent:var(--marker);--accent-hover:#ffe066;--accent-light:#ffd43b21;--accent-medium:#ffd43b57;--link:#eaf3ee;--link-underline:#f0efe68c;--link-hover:var(--marker);--focus-color:var(--marker);--focus-ring-color:var(--marker)}@supports (color:color-mix(in lab, red, red)){:root:not([data-theme=light]){--focus-ring-color:color-mix(in srgb, var(--marker) 25%, transparent)}}:root:not([data-theme=light]){--text-primary:var(--fg);--text-secondary:#c2d2c9;--text-muted:var(--fg-mut);--text-muted-raised:#a7bfaf;--text-accent:var(--marker);--border:var(--card-line);--border-strong:#f0efe64d;--interactive-border:#9db3a6;--border-card:var(--card-line);--success:#8fbf9a;--on-success:var(--on-marker);--success-light:#8fbf9a29;--success-text:#b6dfc9;--warning:#e8b84b;--warning-text:#f4c96b;--warning-light:var(--warning)}@supports (color:color-mix(in lab, red, red)){:root:not([data-theme=light]){--warning-light:color-mix(in srgb, var(--warning) 24%, transparent)}}:root:not([data-theme=light]){--danger:#d2685e;--danger-text:#f0a097;--on-danger:#1d2025;--danger-light:#d0685e2e;--sidebar-bg:var(--nav-bg);--sidebar-text:var(--nav-mut);--sidebar-muted:var(--nav-mut);--sidebar-active:var(--marker);--sidebar-active-bg:var(--nav-on);--sidebar-active-fill:#1e4536;--sidebar-sec:#6e847a;--sidebar-edge:#f0efe657;--sidebar-ic-idle:var(--nav-mut);--sidebar-av-bg:#1e4536;--rail-border:var(--nav-line);--rail-shadow:0 10px 30px #00000057;--overlay-dark:#000000eb;--overlay-light:#f0efe61a;--text-on-accent:var(--on-marker);--accent-secondary:var(--coral);--shadow:0 1px 2px #0000004d, 0 6px 22px #00000057;--shadow-sm:0 1px 4px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 18px 50px #0000006b;--background:var(--surface-page);--foreground:var(--fg);--card:var(--surface-card);--card-foreground:var(--fg);--popover:var(--surface-popover);--popover-foreground:var(--fg);--primary:var(--marker);--primary-foreground:var(--on-marker);--secondary:#1b4032;--secondary-foreground:var(--fg);--muted:#1b4032;--muted-foreground:var(--text-muted-raised);--accent-foreground:var(--on-marker);--destructive:var(--danger);--border-color:var(--card-line);--input:var(--interactive-border);--ring:var(--marker);--sidebar:var(--board);--sidebar-foreground:#f0efe6;--sidebar-primary:var(--marker);--sidebar-primary-foreground:var(--on-marker);--sidebar-accent:#ffd43b29;--sidebar-accent-foreground:var(--marker);--sidebar-border:#f0efe61f;--sidebar-ring:var(--marker);--paper-line:#f0efe60f;--ai:#8fd3c4;--ai-text:var(--ai);--coral-text:#ffd0ca;--subj-algebra:#7fd6ae;--subj-geometry:#86d5c2;--subj-physics:#e8c06a;--subj-english:#f0a99a;--subj-violet:#b7aee8;--on-subj-algebra:var(--on-marker);--on-subj-geometry:var(--on-marker);--on-subj-physics:var(--on-marker);--on-subj-english:var(--on-marker);--on-subj-violet:var(--on-marker);--on-warm-avatar:var(--on-marker);--coral-soft:#43251f;--coral-line:#f0938a4d;--gen-saved-head:#235844}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;transition-delay:1ms!important;animation-duration:1ms!important;animation-delay:1ms!important}:root{--motion-tap:1ms;--motion-fast:1ms;--motion-base:1ms;--motion-slow:1ms;--motion-modal:1ms;--motion-drawer:1ms;--motion-flip:1ms;--motion-reveal:1ms;--motion-page:1ms}.ic-spin{animation-duration:2.4s!important;animation-iteration-count:infinite!important}.td-pulse-dot{opacity:1!important;animation:none!important}.td-sk{background:var(--color-surface-sunken)!important;animation:none!important}}html[data-nav-collapsed=true]{--rail-w:96px}@media (min-width:640px) and (max-width:1023px){:root{--rail-w:96px}}.td-layout{background:var(--color-surface-base);min-height:100dvh;display:flex}.td-sidebar{display:flex}.td-main-wrap{margin-left:var(--rail-w);margin-right:var(--space-6);min-height:100dvh;transition:margin-left var(--motion-slow) var(--ease-out);flex-direction:column;flex:1;display:flex}.td-main{flex:1;width:100%}.td-main-wrap{padding-bottom:calc(var(--control-height-md) + var(--space-6))}.td-mobile-nav{display:none}.td-desktop-nav{display:flex}.td-topbar{padding:0 var(--space-5)}.td-hamburger{display:none}@media (max-width:1024px){.td-topbar{padding:0 var(--space-5)}}@media (max-width:639px){.td-sidebar{display:none}.td-main-wrap{min-width:0;max-width:100%;padding-bottom:calc(var(--space-8) + var(--space-2) + var(--touch-target) + var(--space-5) + env(safe-area-inset-bottom) + var(--cb-reserve,0px));margin-left:0;margin-right:0}.td-topbar{padding:0 var(--space-4);min-width:0}.td-main{min-width:0;max-width:100%}.td-mobile-nav{display:flex}.td-desktop-nav{display:none}.td-hamburger{display:flex}.board-fullscreen{left:0!important}}.td-ai-chat{height:calc(100dvh - 72px - var(--cb-reserve,0px))}@media (max-width:639px){.td-ai-chat{height:auto}}main:is(.reg-page,.login-page,.recover-page){padding-bottom:calc(env(safe-area-inset-bottom) + var(--cb-reserve,0px))}main:has(.auth-wrapper){padding-bottom:calc(env(safe-area-inset-bottom) + var(--cb-reserve,0px))}:root{--kb-inset:0px}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-x{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.safe-sheet{padding-bottom:calc(env(safe-area-inset-bottom) + var(--kb-inset))}.kb-inset{padding-bottom:var(--kb-inset)}@media (pointer:coarse){:root{--tap-min:44px}.mx,.nb-close,.modal .mx{min-width:var(--touch-target);min-height:var(--touch-target)}.btn-danger,.btn-danger-quiet{min-height:var(--touch-target)}:where(.btn-sm,.btn-primary,.btn-ghost,.btn-quiet,.btn-icon){position:relative}:where(.btn-sm,.btn-primary,.btn-ghost,.btn-quiet,.btn-icon):after{content:"";inset:min(0%, calc((100% - var(--touch-target)) / 2));position:absolute}}.board-fullscreen{top:var(--td-shell-top,calc(60px + env(safe-area-inset-top)));left:var(--rail-w);z-index:var(--layer-base);position:fixed;bottom:0;right:0}.board-fab{display:flex}@media (min-width:900px){.board-fab{display:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.td-sk{background:linear-gradient(90deg, var(--color-surface-sunken) 25%, var(--color-text-primary) 37%, var(--color-surface-sunken) 63%)}@supports (color:color-mix(in lab, red, red)){.td-sk{background:linear-gradient(90deg, var(--color-surface-sunken) 25%, color-mix(in srgb, var(--color-text-primary) 8%, var(--color-surface-sunken)) 37%, var(--color-surface-sunken) 63%)}}.td-sk{border-radius:var(--radius-100);background-size:400% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.td-skip-link{padding:var(--space-3) var(--space-5);background:var(--color-surface-raised);color:var(--color-text-primary);z-index:var(--layer-toast);transition:transform var(--motion-fast) var(--ease-out);border-radius:0 0 var(--radius-200) 0;position:absolute;top:0;left:0;transform:translateY(-100%)}.td-skip-link:focus{transform:translateY(0)}#main-content[tabindex="-1"]:focus{outline:none}button:focus-visible{outline:var(--focus-ring) solid var(--color-border-focus);outline-offset:var(--focus-offset)}:root[data-input-modality=keyboard] input:focus-visible,:root[data-input-modality=keyboard] textarea:focus-visible,:root[data-input-modality=keyboard] select:focus-visible{outline:none;border-color:var(--color-border-focus)!important;box-shadow:0 0 0 var(--focus-ring) var(--color-border-accent)!important}input,textarea,select{font-size:max(16px, var(--font-size-300))}@media (pointer:fine){input,textarea,select{font-size:var(--font-size-300)}}@keyframes td-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.td-pulse-dot{animation:td-pulse 1.4s var(--ease-in-out) infinite}@keyframes td-page-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.td-page-transition{animation:td-page-enter var(--motion-slow) var(--ease-out) backwards}html,body{overscroll-behavior:none}[data-theme=dark] ::placeholder,:root:not([data-theme=light]) ::placeholder{color:var(--text-muted);opacity:1}[data-theme=dark] *{scrollbar-color:#374151 #1f2937;scrollbar-width:thin}[data-theme=dark] ::-webkit-scrollbar{width:6px;height:6px}[data-theme=dark] ::-webkit-scrollbar-track{background:#1f2937;border-radius:3px}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#4b5563}[data-theme=light] *{scrollbar-color:var(--color-border-strong) var(--color-surface-sunken);scrollbar-width:thin}[data-theme=light] ::-webkit-scrollbar{width:6px;height:6px}[data-theme=light] ::-webkit-scrollbar-track{background:var(--color-surface-sunken);border-radius:var(--radius-full)}[data-theme=light] ::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:var(--color-border-control)}.student-ws-card{transition:box-shadow var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out)}.student-ws-card:hover{box-shadow:var(--elevation-1);transform:translateY(-1px)}.student-ws-card:active{transform:scale(.98)}.student-hw-filters{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.student-hw-filters>*{scroll-snap-align:start}.student-hw-page{max-width:760px}@media (min-width:1024px){.student-hw-page{margin-inline:auto}}.student-hw-page button[aria-expanded]{display:block}[data-theme=dark] .hw-stat-num{color:var(--text-primary)}.tts-speaker[data-state=playing]{color:var(--color-current-fg);background:var(--color-current-bg);border-color:var(--color-current-bg)}.payments-field{background:var(--color-surface-raised)}[data-theme=dark] .payments-field,:root:not([data-theme=light]) .payments-field{background:var(--bg-surface-3)}.library-card{transition:box-shadow var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out)}.library-card:hover{box-shadow:var(--elevation-2);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.library-card{transition:none}.library-card:hover{transform:none}}.td-rich-inline{overflow-wrap:anywhere}.td-rich-inline code{padding:0 var(--space-1);border-radius:var(--radius-100);background:var(--color-surface-sunken);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-200)}.td-rich-inline a{color:var(--color-text-accent);text-decoration:underline;-webkit-text-decoration-color:var(--color-text-accent);-webkit-text-decoration-color:var(--color-text-accent);-webkit-text-decoration-color:var(--color-text-accent);text-decoration-color:var(--color-text-accent);text-underline-offset:2px}.td-rich-md{gap:var(--space-2);color:var(--color-text-primary);font-size:var(--font-size-300);line-height:var(--leading-relaxed);overflow-wrap:anywhere;flex-direction:column;display:flex}.td-rich-md--compact{font-size:var(--font-size-200)}.td-rich-md>*{margin:0}.td-rich-md h1,.td-rich-md h2,.td-rich-md h3,.td-rich-md h4{margin:var(--space-3) 0 var(--space-1);color:var(--color-text-primary);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-normal);line-height:var(--leading-snug)}.td-rich-md--compact h1,.td-rich-md--compact h2,.td-rich-md--compact h3,.td-rich-md--compact h4{margin:var(--space-2) 0 var(--space-1)}.td-rich-md>h1:first-child,.td-rich-md>h2:first-child,.td-rich-md>h3:first-child,.td-rich-md>h4:first-child{margin-top:0}.td-rich-md h1{font-size:var(--font-size-500)}.td-rich-md h2{font-size:var(--font-size-400)}.td-rich-md h3,.td-rich-md h4{font-size:var(--font-size-300)}.td-rich-md--compact h1{font-size:var(--font-size-400)}.td-rich-md--compact h2,.td-rich-md--compact h3{font-size:var(--font-size-300)}.td-rich-md--compact h4{font-size:var(--font-size-200)}.td-rich-md p{margin:0}.td-rich-md ul,.td-rich-md ol{padding-left:var(--space-5);gap:var(--space-1);flex-direction:column;margin:0;display:flex}.td-rich-md--compact ul,.td-rich-md--compact ol{padding-left:var(--space-4)}.td-rich-md li{margin:0}.td-rich-md ul li::marker{color:var(--color-text-accent)}.td-rich-md ol li::marker{color:var(--color-text-secondary)}.td-rich-md blockquote{padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-action-primary-bg);border-radius:0 var(--radius-100) var(--radius-100) 0;background:var(--color-surface-accent);color:var(--color-text-secondary);margin:0}.td-rich-md--compact blockquote{padding:var(--space-1) var(--space-2);border-left-width:2px}.td-rich-md blockquote>:first-child{margin-top:0}.td-rich-md blockquote>:last-child{margin-bottom:0}.td-rich-md__table-wrap{border:1px solid var(--color-border-default);border-radius:var(--radius-200);overflow:auto}.td-rich-md--compact .td-rich-md__table-wrap{max-height:200px}.td-rich-md table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--font-size-200);margin:0}.td-rich-md th,.td-rich-md td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default);border-right:1px solid var(--color-border-default);text-align:left;vertical-align:top}.td-rich-md--compact th,.td-rich-md--compact td{padding:var(--space-1) var(--space-2)}.td-rich-md th{background:var(--color-surface-sunken);color:var(--color-text-primary);font-weight:var(--weight-semibold)}.td-rich-md tr:last-child td{border-bottom:0}.td-rich-md th:last-child,.td-rich-md td:last-child{border-right:0}.td-rich-md pre{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-default);border-radius:var(--radius-200);background:var(--color-surface-sunken);box-shadow:none;font-size:var(--font-size-200);margin:0;overflow-x:auto}.td-rich-md--compact pre{padding:var(--space-2) var(--space-3);max-height:180px}.td-rich-md pre code{color:var(--color-text-primary);font-family:var(--font-mono);font-size:inherit;white-space:pre;background:0 0;border:0;padding:0}.td-rich-md code{padding:0 var(--space-1);border:1px solid var(--color-border-default);border-radius:var(--radius-100);background:var(--color-surface-sunken);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-200)}.td-rich-md--compact code{font-size:var(--font-size-100)}.td-rich-md .katex-display{padding:var(--space-1) 0;margin:0;overflow:auto hidden}.td-rich-md a{color:var(--color-text-accent);font-weight:var(--weight-semibold);text-decoration:underline;-webkit-text-decoration-color:var(--color-text-accent);-webkit-text-decoration-color:var(--color-text-accent);-webkit-text-decoration-color:var(--color-text-accent);text-decoration-color:var(--color-text-accent);text-underline-offset:3px;transition:text-decoration-color var(--motion-fast) var(--ease-out);text-decoration-thickness:1px}.td-rich-md a:hover{-webkit-text-decoration-color:var(--color-action-primary-active);-webkit-text-decoration-color:var(--color-action-primary-active);-webkit-text-decoration-color:var(--color-action-primary-active);text-decoration-color:var(--color-action-primary-active)}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}@keyframes authSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.auth-scope{--auth-error:var(--coral);--auth-error-text:var(--color-status-error-fg)}[data-theme=dark] .auth-scope,.auth-scope[data-theme=dark]{--auth-error:var(--coral);--auth-error-text:var(--coral)}.btn-lg{min-height:var(--control-height-lg);padding:0 var(--control-pad-lg);font-size:var(--font-size-400)}.btn-primary.is-loading{pointer-events:none}.btn-primary.is-loading .btn-label{opacity:.75;transition:opacity var(--motion-fast) var(--ease-out)}.btn-primary{position:relative}.btn-spin{right:var(--space-4);animation:authFadeIn var(--motion-base) var(--ease-out) both;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.otp{gap:var(--space-3);display:flex}.otp__cell{text-align:center;width:48px;min-width:0;height:56px;font-size:var(--font-size-600);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;border:1.5px solid var(--color-border-default);border-radius:var(--radius-200);background:var(--color-surface-sunken);color:var(--color-text-primary);caret-color:var(--color-action-primary-bg);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);outline:none}.otp__cell[data-filled]{border-color:var(--color-border-strong)}:root[data-input-modality=keyboard] .otp__cell:focus-visible{border-color:var(--color-border-focus);outline:var(--focus-ring) solid var(--color-border-focus);outline-offset:var(--focus-offset)}.otp--err .otp__cell{border-color:var(--color-status-error-fg)}@media (max-width:380px){.otp{gap:var(--space-2)}.otp__cell{width:42px;height:52px;font-size:var(--font-size-600)}}.pw-meter{gap:var(--space-2);flex-direction:column;display:flex}.pw-meter__bars{gap:var(--space-2);display:flex}.pw-meter__bar{border-radius:var(--radius-full);background:var(--color-border-default);height:4px;transition:background var(--motion-base) var(--ease-out);flex:1}.pw-meter__label{font-size:var(--font-size-200);font-weight:var(--weight-semibold);margin:0}.pw-meter__reqs{margin:var(--space-1) 0 0;gap:var(--space-1) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.pw-meter__reqs li{align-items:center;gap:var(--space-2);font-size:var(--font-size-200);color:var(--color-text-secondary);transition:color var(--motion-base) var(--ease-out), opacity var(--motion-base) var(--ease-out);display:inline-flex}.pw-meter__reqs li[data-met=true]{color:var(--color-status-success-fg);opacity:.66}.pw-req-check{opacity:0;transition:opacity var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out);transform:scale(.4)}.pw-meter__reqs li[data-met=true] .pw-req-check{opacity:1;transform:scale(1)}@keyframes authViewIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes authMsgIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.auth-view-in{animation:authViewIn var(--motion-base) var(--ease-out) backwards}.auth-msg-in{animation:authMsgIn var(--motion-base) var(--ease-out) backwards}.pw-reveal{opacity:0;transition:grid-template-rows var(--motion-base) var(--ease-out), opacity var(--motion-base) var(--ease-out);grid-template-rows:0fr;display:grid}.pw-reveal[data-open=true]{opacity:1;grid-template-rows:1fr}.pw-reveal__inner{min-height:0;transition:transform var(--motion-base) var(--ease-out);overflow:hidden;transform:translateY(-4px)}.pw-reveal[data-open=true] .pw-reveal__inner{transform:none}.seg.m-seg{width:100%;padding:var(--space-1);display:flex}.seg.m-seg>button{min-height:var(--control-height-md);padding:0 var(--control-pad-md);font-size:var(--font-size-300);text-align:center;flex:1;justify-content:center;align-items:center;display:inline-flex}.soc-btn{justify-content:center;align-items:center;gap:var(--button-icon-gap);width:100%;min-height:var(--control-height-lg);padding:0 var(--space-4);border:1px solid var(--color-border-default);border-radius:var(--control-radius);background:var(--color-surface-sunken);color:var(--color-text-primary);font-size:var(--font-size-300);font-weight:var(--weight-medium);font-family:var(--font-sans);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);text-decoration:none;display:flex}.soc-btn:hover{background:var(--color-surface-sunken);border-color:var(--color-border-strong)}.soc-btn:focus-visible{outline:var(--focus-ring) solid var(--color-border-focus);outline-offset:var(--focus-offset)}.soc-btn__tile{border-radius:var(--radius-100);width:24px;height:24px;font-weight:var(--weight-semibold);font-size:var(--font-size-200);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.soc-btn__label{min-width:0}.soc-btn__note{font-size:var(--font-size-200);color:var(--color-text-muted);margin-left:auto}.soc-btn--disabled{opacity:1;background:var(--color-surface-sunken);color:var(--color-text-muted);border-color:var(--color-border-control);cursor:not-allowed;pointer-events:none}.m-progress{align-items:center;gap:var(--space-3);display:flex}.m-progress__track{gap:var(--space-2);flex:1;display:flex}.m-progress__bar{border-radius:var(--radius-full);background:var(--color-border-default);height:5px;transition:background var(--motion-slow) var(--ease-out);flex:1}.m-progress__bar[data-on]{background:var(--color-status-success-fg)}.m-progress__cap{font-size:var(--font-size-200);font-weight:var(--weight-semibold);color:var(--color-text-muted);white-space:nowrap}.bottom-sheet{z-index:var(--layer-modal);background:var(--color-surface-overlay);flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet__backdrop{background:var(--color-surface-overlay);animation:authFadeIn var(--motion-base) var(--ease-out);position:absolute;inset:0}.bottom-sheet__panel{background:var(--color-surface-raised);border-radius:var(--radius-300) var(--radius-300) 0 0;max-height:88vh;padding:var(--space-2) var(--space-2) var(--space-5);box-shadow:var(--elevation-3);animation:authSheetUp var(--motion-slow) var(--ease-out);outline:none;position:relative;overflow:hidden}.bottom-sheet__grab{border-radius:var(--radius-full);background:var(--color-border-strong);width:40px;height:4px;margin:var(--space-2) auto var(--space-2)}.bottom-sheet__title{padding:var(--space-1) var(--space-3) var(--space-2);font-size:var(--font-size-200);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.td-session-recovery-notice__actions{align-items:center;gap:var(--button-group-gap);flex-wrap:wrap;display:flex}.auth-brand{display:none}@media (min-width:900px){.auth-brand{background:var(--color-surface-sunken);color:var(--color-text-primary);border-radius:var(--radius-300);padding:var(--space-7);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}}.auth-brand__inner{z-index:calc(var(--layer-base) + 1);position:relative}.auth-brand__note{white-space:nowrap;background:var(--color-current-bg);width:max-content;max-width:100%;color:var(--color-current-fg);font-family:var(--brand-font-accent);font-weight:var(--weight-regular);font-size:var(--font-size-500);line-height:var(--leading-tight);padding:var(--space-3) var(--space-4);border-radius:var(--radius-100);box-shadow:var(--elevation-1);margin:var(--space-5) 0 var(--space-6);align-self:flex-start;display:inline-block;transform:rotate(-2.2deg)}.auth-brand__title{font-family:var(--font-heading);font-size:var(--font-size-600);font-weight:var(--weight-semibold);line-height:var(--leading-snug);margin:0 0 var(--space-3);color:var(--color-text-primary)}.auth-brand__subtitle{font-size:var(--font-size-300);line-height:var(--leading-relaxed);color:var(--color-text-secondary);margin:0 0 var(--space-5);max-width:340px}.auth-brand__feats{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.auth-brand__feat{align-items:center;gap:var(--icon-text-gap);font-size:var(--font-size-300);color:var(--color-text-primary);display:flex}.auth-brand__tick{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.td-checkbox__req{color:var(--color-status-error-fg);font-weight:var(--weight-semibold)}.input .input__eye{padding:var(--space-1);margin-right:calc(-1 * var(--space-1));cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.input .input__eye:after{content:"";width:var(--touch-target);height:var(--touch-target);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.input .input__eye:hover{color:var(--color-text-primary)}.input .input__eye:focus-visible{outline:var(--focus-ring) solid var(--color-border-focus);outline-offset:var(--focus-offset);border-radius:var(--radius-100)}@media (prefers-reduced-motion:reduce){.bottom-sheet__panel,.bottom-sheet__backdrop,.pw-meter__bar,.m-progress__bar,.otp__cell,.auth-view-in,.auth-msg-in,.pw-reveal,.pw-reveal__inner,.pw-meter__reqs li,.pw-req-check,.btn-spin,.login-banner,.reg-error,.reg-banner-warn,.btn-primary.is-loading .btn-label{transition:none!important;animation:none!important}}@media (max-width:639px){.td-layout>.td-main-wrap{width:100%;max-width:100%;margin-left:0!important;margin-right:0!important}}.td-rub-sym{font-size:var(--font-size-200);color:var(--color-text-muted)}.td-rub-sym--200{font-size:var(--font-size-100)}.td-rub-sym--500{font-size:var(--font-size-400)}.td-rub-sym--600{font-size:var(--font-size-500)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}
@media print{@page{margin:14mm}:root{--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important}html,body{color:#101114!important;background:#fff!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}body:has(#main-content) :not(:has(#main-content)):not(#main-content):not(#main-content *){display:none!important}.td-sidebar,.td-topbar,.td-mobile-nav,.td-desktop-nav,.td-hamburger,.td-skip-link,.tdfab,[data-sonner-toaster],[data-td-bottombar],.cb-bar,.sp-header,.print-hide,[data-print-hide]{display:none!important}.td-layout{background:#fff!important;min-height:0!important;display:block!important}.td-main-wrap{min-height:0!important;margin:0!important;padding:0!important;display:block!important}.td-main,#main-content{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}[style*="overflow: auto"],[style*=overflow\:auto],[style*="overflow: scroll"],[style*=overflow\:scroll],[style*="overflow-y: auto"],[style*=overflow-y\:auto],[style*="overflow-x: auto"],[style*=overflow-x\:auto],.overflow-auto,.overflow-y-auto,.overflow-x-auto,.overflow-scroll,[data-calendar-day]{max-height:none!important;overflow:visible!important}[role=presentation]:has(>[role=dialog]){-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important}[role=dialog]{width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;position:static!important;inset:auto!important;overflow:visible!important;transform:none!important}#main-content,#main-content :not(.print-keep-color):not(.print-keep-color *){color:#101114!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;background-color:#0000!important;background-image:none!important;border-color:#9aa0a6!important}body:not(:has(#main-content)){color:#101114!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;background-color:#0000!important;background-image:none!important;border-color:#9aa0a6!important}body:not(:has(#main-content)) :not(.print-keep-color):not(.print-keep-color *){color:#101114!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;background-color:#0000!important;background-image:none!important;border-color:#9aa0a6!important}#main-content a[href]{text-decoration:underline!important}#main-content{break-inside:auto}h1,h2,h3,h4,.td-page-title,.fin-section-title{break-after:avoid-page;break-inside:avoid}.hw-row,[data-lesson-card],.fin-pay-list>li,.stat,.material-card,.modal,tr,img,figure,blockquote,pre{break-inside:avoid}thead{display:table-header-group}tfoot{display:table-footer-group}p,li{orphans:3;widows:3}.phead-actions,.hw-act,.hw-select,.filterbar,.fin-actions,.fin-listtools,.fin-seg,.cal-navbtn,.mx{display:none!important}*,:before,:after{transition:none!important;animation:none!important}}