:root{--jai-font-sans:var(--font-geist-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--jai-font-serif:"Georgia","Iowan Old Style","Palatino Linotype","Book Antiqua","Times New Roman","Noto Serif",serif;--jai-radius-xs:0.375rem;--jai-radius-sm:0.5rem;--jai-radius-md:0.625rem;--jai-radius-lg:0.875rem;--jai-radius-xl:1.125rem;--jai-radius-pill:999px;--jai-ease:cubic-bezier(0.22,1,0.36,1);--jai-ease-out:cubic-bezier(0.16,1,0.3,1);--jai-dur-1:120ms;--jai-dur-2:180ms;--jai-dur-3:260ms;--jai-z-dropdown:1000;--jai-z-sticky:1100;--jai-z-drawer:1200;--jai-z-backdrop:1300;--jai-z-modal:1400;--jai-z-toast:1500;--jai-z-tooltip:1600;--jai-ring-w:2px;--jai-ring-offset:2px;--jai-canvas:#f5f3ee;--jai-surface:#ffffff;--jai-surface-2:#efece4;--jai-surface-3:#e7e2d7;--jai-ink:#1b1f27;--jai-ink-muted:#55606f;--jai-ink-subtle:#717b89;--jai-line:#e2ddd2;--jai-line-strong:#d3ccbd;--jai-primary:#14213d;--jai-primary-hover:#1e2e52;--jai-primary-active:#0f192e;--jai-primary-ink:#f7f5f0;--jai-primary-soft:rgba(20,33,61,0.08);--jai-primary-soft-strong:rgba(20,33,61,0.14);--jai-accent:#a67c2e;--jai-accent-hover:#8c6725;--jai-accent-ink:#1b1f27;--jai-accent-soft:rgba(166,124,46,0.14);--jai-ring:#a67c2e;--jai-ok:#2f7d54;--jai-warn:#8a5a12;--jai-danger:#b23b34;--jai-danger-fill:#b23b34;--jai-info:#2c5e93;--jai-shadow-sm:0 1px 2px rgba(20,33,61,0.06),0 1px 1px rgba(20,33,61,0.04);--jai-shadow-md:0 4px 14px rgba(20,33,61,0.09);--jai-shadow-lg:0 18px 40px rgba(20,33,61,0.14)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{--jai-canvas:#0e1420;--jai-surface:#171e2b;--jai-surface-2:#131a26;--jai-surface-3:#1f2938;--jai-ink:#e6eaf0;--jai-ink-muted:#9aa6b8;--jai-ink-subtle:#7e889b;--jai-line:rgba(255,255,255,0.1);--jai-line-strong:rgba(255,255,255,0.18);--jai-primary:#35507e;--jai-primary-hover:#3e5c8f;--jai-primary-active:#2c4269;--jai-primary-ink:#f2f5fa;--jai-primary-soft:rgba(91,124,184,0.16);--jai-primary-soft-strong:rgba(91,124,184,0.26);--jai-accent:#d0a94e;--jai-accent-hover:#dcb760;--jai-accent-ink:#0e1420;--jai-accent-soft:rgba(208,169,78,0.16);--jai-ring:#d0a94e;--jai-ok:#6fc79a;--jai-warn:#d8a23e;--jai-danger:#e58a82;--jai-danger-fill:#bf463d;--jai-info:#7fa8d6;--jai-shadow-sm:0 1px 2px rgba(0,0,0,0.4);--jai-shadow-md:0 6px 18px rgba(0,0,0,0.45);--jai-shadow-lg:0 20px 44px rgba(0,0,0,0.55)}:focus-visible{outline:var(--jai-ring-w) solid var(--jai-ring);outline-offset:var(--jai-ring-offset);box-shadow:none}::selection{background-color:var(--jai-primary);color:var(--jai-primary-ink);text-shadow:none}.jai-display{letter-spacing:-.01em;line-height:1.08}.jai-display,.jai-title{font-family:var(--jai-font-serif);font-weight:600;text-wrap:balance;color:var(--jai-ink)}.jai-title{letter-spacing:-.005em;line-height:1.15}.jai-heading{font-family:var(--jai-font-sans);font-weight:600;letter-spacing:-.01em;line-height:1.25;color:var(--jai-ink)}.jai-prose{max-width:70ch;line-height:1.65;text-wrap:pretty;color:var(--jai-ink)}.jai-muted{color:var(--jai-ink-muted)}.jai-btn{position:relative;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;border:1px solid transparent;border-radius:var(--jai-radius-md);font-family:var(--jai-font-sans);font-weight:600;font-size:.875rem;line-height:1;letter-spacing:-.006em;cursor:pointer;transition:background-color var(--jai-dur-2) var(--jai-ease),border-color var(--jai-dur-2) var(--jai-ease),color var(--jai-dur-2) var(--jai-ease),box-shadow var(--jai-dur-2) var(--jai-ease),transform var(--jai-dur-1) var(--jai-ease)}.jai-btn:active:not(:disabled){transform:translateY(.5px)}.jai-btn:disabled{cursor:not-allowed;opacity:.55}.jai-btn[aria-busy=true]{cursor:progress}.jai-btn:focus-visible{outline:var(--jai-ring-w) solid var(--jai-ring);outline-offset:var(--jai-ring-offset)}.jai-btn--sm{height:2rem;padding:0 .75rem;font-size:.8125rem}.jai-btn--md{height:2.5rem;padding:0 1rem}.jai-btn--lg{height:3rem;padding:0 1.375rem;font-size:.9375rem}.jai-btn--xl{height:3.5rem;padding:0 1.75rem;font-size:1rem}.jai-btn--primary{background-color:var(--jai-primary);border-color:var(--jai-primary);color:var(--jai-primary-ink);box-shadow:var(--jai-shadow-sm)}.jai-btn--primary:hover:not(:disabled){background-color:var(--jai-primary-hover);border-color:var(--jai-primary-hover)}.jai-btn--primary:active:not(:disabled){background-color:var(--jai-primary-active)}.jai-btn--secondary{background-color:var(--jai-surface);border-color:var(--jai-line-strong);color:var(--jai-ink)}.jai-btn--secondary:hover:not(:disabled){background-color:var(--jai-surface-2);border-color:var(--jai-primary)}.jai-btn--ghost{background-color:transparent;border-color:transparent;color:var(--jai-ink)}.jai-btn--ghost:hover:not(:disabled){background-color:var(--jai-primary-soft)}.jai-btn--danger{background-color:var(--jai-danger-fill);border-color:var(--jai-danger-fill);color:#fff;box-shadow:var(--jai-shadow-sm)}.jai-btn--danger:hover:not(:disabled){filter:brightness(.94)}.jai-btn__label{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.jai-btn__label--hidden{opacity:0}.jai-btn__spinner{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center}.jai-card{position:relative;min-width:0;background-color:var(--jai-surface);border:1px solid var(--jai-line);border-radius:var(--jai-radius-lg);color:var(--jai-ink);transition:border-color var(--jai-dur-2) var(--jai-ease),box-shadow var(--jai-dur-2) var(--jai-ease),transform var(--jai-dur-2) var(--jai-ease)}.jai-card--elevated{box-shadow:var(--jai-shadow-md);border-color:transparent}.jai-card--outlined{background-color:transparent}.jai-card--interactive{cursor:pointer}.jai-card--interactive:hover{border-color:var(--jai-line-strong);box-shadow:var(--jai-shadow-md);transform:translateY(-2px)}.jai-badge{display:inline-flex;align-items:center;gap:.25rem;border:1px solid transparent;border-radius:var(--jai-radius-pill);font-family:var(--jai-font-sans);font-weight:600;line-height:1;white-space:nowrap}.jai-badge--neutral{background:var(--jai-surface-2);color:var(--jai-ink-muted);border-color:var(--jai-line)}.jai-badge--primary{background:var(--jai-primary-soft);color:var(--jai-primary)}.jai-badge--accent{background:var(--jai-accent-soft);color:var(--jai-accent-hover)}.jai-badge--outline{background:transparent;color:var(--jai-ink);border-color:var(--jai-line-strong)}.jai-badge--success{background:color-mix(in oklab,var(--jai-ok) 16%,var(--jai-surface));color:var(--jai-ok)}.jai-badge--warning{background:color-mix(in oklab,var(--jai-warn) 16%,var(--jai-surface));color:var(--jai-warn)}.jai-badge--danger{background:color-mix(in oklab,var(--jai-danger) 16%,var(--jai-surface));color:var(--jai-danger)}.jai-badge--info{background:color-mix(in oklab,var(--jai-info) 16%,var(--jai-surface));color:var(--jai-info)}:root[data-theme=dark] .jai-badge--success{color:color-mix(in oklab,var(--jai-ok) 88%,white)}:root[data-theme=dark] .jai-badge--danger{color:color-mix(in oklab,var(--jai-danger) 92%,white)}:root[data-theme=dark] .jai-badge--primary{color:#93a8ce}:root[data-theme=dark] .jai-badge--info{color:color-mix(in oklab,var(--jai-info) 94%,white)}.jai-field{width:100%;background-color:var(--jai-surface);border:1px solid var(--jai-line-strong);border-radius:var(--jai-radius-md);color:var(--jai-ink);font-family:var(--jai-font-sans);font-size:.9375rem;line-height:1.4;transition:border-color var(--jai-dur-2) var(--jai-ease),box-shadow var(--jai-dur-2) var(--jai-ease),background-color var(--jai-dur-2) var(--jai-ease)}.jai-field::placeholder{color:var(--jai-ink-subtle)}.jai-field:hover:not(:disabled):not(:focus){border-color:var(--jai-primary)}.jai-field:focus,.jai-field:focus-visible{outline:none;border-color:var(--jai-primary);box-shadow:0 0 0 3px var(--jai-primary-soft)}.jai-field:disabled{cursor:not-allowed;opacity:.6;background-color:var(--jai-surface-2)}.jai-field--sm{height:2.25rem;padding:0 .75rem;font-size:.875rem}.jai-field--md{height:2.75rem;padding:0 .875rem}.jai-field--lg{height:3.25rem;padding:0 1.125rem;font-size:1rem}.jai-field--error{border-color:var(--jai-danger)}.jai-field--error:focus,.jai-field--error:focus-visible{border-color:var(--jai-danger);box-shadow:0 0 0 3px color-mix(in oklab,var(--jai-danger) 22%,transparent)}textarea.jai-field{height:auto;min-height:6rem;padding-top:.625rem;padding-bottom:.625rem;resize:vertical}.jai-skeleton{position:relative;overflow:hidden;border-radius:var(--jai-radius-sm);background-color:var(--jai-surface-2);pointer-events:none;user-select:none}.jai-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--jai-ink) 8%,transparent),transparent);animation:jai-skeleton-sweep 1.4s var(--jai-ease) infinite}@keyframes jai-skeleton-sweep{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.jai-skeleton:after{animation:none}.jai-skeleton{opacity:.85}}.jai-tabs-list{gap:.25rem;padding:.25rem;background-color:var(--jai-surface-2);border:1px solid var(--jai-line);border-radius:var(--jai-radius-md)}.jai-tab,.jai-tabs-list{display:inline-flex;align-items:center}.jai-tab{justify-content:center;white-space:nowrap;padding:.4rem .85rem;border-radius:var(--jai-radius-sm);font-family:var(--jai-font-sans);font-size:.875rem;font-weight:600;color:var(--jai-ink-muted);cursor:pointer;transition:background-color var(--jai-dur-2) var(--jai-ease),color var(--jai-dur-2) var(--jai-ease)}.jai-tab:hover:not([data-active=true]){color:var(--jai-ink)}.jai-tab[data-active=true]{background-color:var(--jai-surface);color:var(--jai-ink);box-shadow:var(--jai-shadow-sm)}.jai-tab:focus-visible{outline:var(--jai-ring-w) solid var(--jai-ring);outline-offset:var(--jai-ring-offset)}.jai-overlay{position:fixed;inset:0;z-index:var(--jai-z-modal);display:flex;padding:1rem;background-color:color-mix(in oklab,var(--jai-primary-active) 55%,transparent)}.jai-overlay--center{align-items:center;justify-content:center}.jai-overlay__backdrop{position:absolute;inset:0;z-index:0}.jai-overlay__body{position:relative;z-index:1;display:flex;width:100%;min-height:0}.jai-overlay--center .jai-overlay__body{justify-content:center;align-items:center}.jai-dialog-panel{pointer-events:auto;max-height:90vh;max-width:100%;overflow-y:auto;background-color:var(--jai-surface);border:1px solid var(--jai-line);border-radius:var(--jai-radius-xl);box-shadow:var(--jai-shadow-lg);animation:jai-dialog-in var(--jai-dur-3) var(--jai-ease-out)}@keyframes jai-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.jai-drawer{pointer-events:auto;display:flex;flex-direction:column;height:100%;max-height:100vh;width:min(28rem,100%);overflow-y:auto;background-color:var(--jai-surface);border-left:1px solid var(--jai-line);box-shadow:var(--jai-shadow-lg);animation:jai-drawer-in var(--jai-dur-3) var(--jai-ease-out)}.jai-overlay--drawer{z-index:var(--jai-z-drawer);padding:0;align-items:stretch}.jai-overlay--drawer,.jai-overlay--drawer .jai-overlay__body{justify-content:flex-end}.jai-drawer--left{border-left:0;border-right:1px solid var(--jai-line);animation-name:jai-drawer-in-left}.jai-overlay--drawer.jai-overlay--left,.jai-overlay--drawer.jai-overlay--left .jai-overlay__body{justify-content:flex-start}@keyframes jai-drawer-in{0%{transform:translateX(100%)}to{transform:none}}@keyframes jai-drawer-in-left{0%{transform:translateX(-100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.jai-dialog-panel,.jai-drawer{animation:none}}.jai-toast-viewport{position:fixed;top:1rem;right:1rem;z-index:var(--jai-z-toast);display:flex;flex-direction:column;gap:.75rem;width:min(22rem,calc(100vw - 2rem))}.jai-toast{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;background-color:var(--jai-surface);border-left-width:1px;border:1px solid var(--jai-line);border-radius:var(--jai-radius-md);box-shadow:var(--jai-shadow-lg);color:var(--jai-ink);animation:jai-toast-in var(--jai-dur-3) var(--jai-ease-out)}.jai-toast__accent{width:.5rem;height:.5rem;border-radius:var(--jai-radius-pill);flex-shrink:0;margin-top:.3rem}.jai-toast--success .jai-toast__accent{background:var(--jai-ok)}.jai-toast--error .jai-toast__accent{background:var(--jai-danger)}.jai-toast--warning .jai-toast__accent{background:var(--jai-warn)}.jai-toast--info .jai-toast__accent{background:var(--jai-info)}@keyframes jai-toast-in{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.jai-toast{animation:none}}.jai-page{display:flex;flex-direction:column;gap:1.5rem;width:100%;min-width:0}.jai-page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}.jai-page-header__copy{display:flex;flex-direction:column;gap:.35rem;min-width:0}.jai-page-header__eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--jai-accent-hover)}.jai-page-header__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.jai-page-header__title{font-family:var(--jai-font-serif);font-weight:600;font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);line-height:1.12;letter-spacing:-.01em;text-wrap:balance;color:var(--jai-ink)}.jai-page-header__description{font-size:.95rem;line-height:1.55;color:var(--jai-ink-muted);max-width:68ch;text-wrap:pretty}.jai-page-header__actions,.jai-page-header__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.jai-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem;padding:2.5rem 1.5rem;border:1px dashed var(--jai-line-strong);border-radius:var(--jai-radius-lg);background-color:var(--jai-surface);color:var(--jai-ink)}.jai-state--bare{border:0;background:transparent}.jai-state--error{border-style:solid;border-color:color-mix(in oklab,var(--jai-danger) 40%,var(--jai-line))}.jai-state__icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--jai-radius-pill);background:var(--jai-primary-soft);color:var(--jai-primary)}.jai-state--error .jai-state__icon{background:color-mix(in oklab,var(--jai-danger) 14%,var(--jai-surface));color:var(--jai-danger)}.jai-state__title{font-family:var(--jai-font-serif);font-weight:600;font-size:1.05rem;color:var(--jai-ink)}.jai-state__body{font-size:.9rem;line-height:1.55;color:var(--jai-ink-muted);max-width:44ch}.jai-state__actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:.35rem}.app-learning-ui,.student-learning-ui{--sl-bg-primary:var(--jai-canvas);--sl-bg-alt:var(--jai-surface-2);--sl-bg-secondary:var(--jai-surface);--sl-text-primary:var(--jai-ink);--sl-text-secondary:var(--jai-ink-muted);--sl-text-tertiary:var(--jai-ink-subtle);--sl-accent:var(--jai-primary);--sl-accent-hover:var(--jai-primary-hover);--sl-accent-light:#35507e;--sl-accent-bg:var(--jai-primary-soft);--sl-accent-bg-strong:var(--jai-primary-soft-strong);--sl-amber:var(--jai-accent);--sl-amber-bg:var(--jai-accent-soft);--sl-success:var(--jai-ok);--sl-success-bg:color-mix(in oklab,var(--jai-ok) 14%,transparent);--sl-danger:var(--jai-danger);--sl-chrome-bg:color-mix(in oklab,var(--jai-canvas) 92%,transparent);--sl-card-bg:var(--jai-surface);--sl-glass-border:var(--jai-line);--sl-glass-border-subtle:var(--jai-line);--sl-sticky-bg:color-mix(in oklab,var(--jai-canvas) 94%,transparent);--sl-blob1:color-mix(in oklab,var(--jai-primary) 8%,transparent);--sl-blob2:color-mix(in oklab,var(--jai-accent) 8%,transparent);--sl-blob3:color-mix(in oklab,var(--jai-primary) 5%,transparent);--sl-track-bg:var(--jai-surface-2);--sl-input-bg:var(--jai-surface-2);--sl-hm0:var(--jai-surface-2);--sl-hm1:color-mix(in oklab,var(--jai-primary) 22%,var(--jai-surface));--sl-hm2:color-mix(in oklab,var(--jai-primary) 45%,var(--jai-surface));--sl-hm3:color-mix(in oklab,var(--jai-primary) 70%,var(--jai-surface));--sl-hm4:var(--jai-primary);font-family:var(--jai-font-sans)}:root[data-theme=dark] .app-learning-ui,:root[data-theme=dark] .student-learning-ui{--sl-accent:#5b7cb8;--sl-accent-hover:#6f8dc6;--sl-accent-light:#7d99cf;--sl-accent-bg:rgba(91,124,184,0.16);--sl-accent-bg-strong:rgba(91,124,184,0.26);--sl-amber:var(--jai-accent);--sl-amber-bg:var(--jai-accent-soft);--sl-hm1:rgba(91,124,184,0.22);--sl-hm2:rgba(91,124,184,0.45);--sl-hm3:rgba(91,124,184,0.7);--sl-hm4:#5b7cb8}.app-learning-ui .sl-sidebar,.student-learning-ui .sl-sidebar{background:var(--jai-surface);border-right:1px solid var(--jai-line);backdrop-filter:none;-webkit-backdrop-filter:none}.app-learning-ui .sl-topbar,.student-learning-ui .sl-topbar{background:color-mix(in oklab,var(--jai-canvas) 90%,transparent);border-bottom:1px solid var(--jai-line);backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px)}.app-learning-ui .sl-nav-item.active:before,.student-learning-ui .sl-nav-item.active:before{display:none}.app-learning-ui .sl-nav-item.active,.student-learning-ui .sl-nav-item.active{background:var(--jai-primary-soft);color:var(--jai-primary);font-weight:600}:root[data-theme=dark] .app-learning-ui .sl-nav-item.active,:root[data-theme=dark] .student-learning-ui .sl-nav-item.active{color:var(--jai-ink)}.app-learning-ui .sl-focus-toggle,.app-learning-ui .sl-panel-toggle,.app-learning-ui .ui-language-switcher__trigger,.student-learning-ui .sl-focus-toggle,.student-learning-ui .sl-panel-toggle,.student-learning-ui .ui-language-switcher__trigger{background:var(--jai-surface);border:1px solid var(--jai-line-strong);color:var(--jai-ink);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.app-learning-ui .sl-focus-toggle:hover,.app-learning-ui .sl-panel-toggle:hover,.app-learning-ui .ui-language-switcher__trigger:hover,.student-learning-ui .sl-focus-toggle:hover,.student-learning-ui .sl-panel-toggle:hover,.student-learning-ui .ui-language-switcher__trigger:hover{background:var(--jai-surface-2);border-color:var(--jai-primary);color:var(--jai-primary)}.ui-language-switcher__menu{background:var(--jai-surface);border:1px solid var(--jai-line);box-shadow:var(--jai-shadow-lg);backdrop-filter:none;-webkit-backdrop-filter:none}.ui-language-switcher__option.active,.ui-language-switcher__option:focus-visible,.ui-language-switcher__option:hover{background:var(--jai-primary-soft);color:var(--jai-primary)}:root[data-theme=dark] .ui-language-switcher__option.active,:root[data-theme=dark] .ui-language-switcher__option:hover{color:var(--jai-ink)}.sl-logo .jai-wordmark{height:26px;width:auto}.sl-learning-shell .sl-logo .jai-wordmark,.sl-shell.sl-focus .sl-logo .jai-wordmark{display:none}.sl-logo .jai-mark{height:26px;width:auto;display:none}.sl-learning-shell .sl-logo .jai-mark,.sl-shell.sl-focus .sl-logo .jai-mark{display:block}