:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--app-bg);color:var(--ink);--app-background-image:url(/backgrounds/perapon-forest.jpg);--page-padding:clamp(1rem, 3vw, 2.4rem);--page-padding-mobile:.75rem;--card-padding-mobile:.9rem;--radius-mobile:20px;--safe-bottom:env(safe-area-inset-bottom,0px);--color-primary:#f97316;--color-primary-hover:#ea580c;--color-primary-strong:#c2410c;--color-primary-soft:#fb923c;--color-primary-muted:#fdba74;--color-brand-ink:#9a3412;--color-brand-deep:#7c2d12;--color-brand-deepest:#431407;--color-brand-gold:#b45309;--app-bg:#f4efe7;--surface-cream:#fff7ed;--surface-card:#fff;--surface-subtle:#f8fafc;--surface-muted:#f1f5f9;--surface-peach:#ffedd5;--button-neutral:#e8eef7;--button-neutral-hover:#d7e2f2;--ink:#172033;--ink-raised:#243041;--ink-strong:#0f172a;--ink-soft:#334155;--ink-muted:#475569;--ink-faint:#64748b;--ink-disabled:#94a3b8;--ink-inverse:#fff;--ink-on-dark:#e2e8f0;--border:#e2e8f0;--border-strong:#cbd5e1;--border-amber:#fed7aa;--success:#16a34a;--success-bright:#22c55e;--success-ink:#15803d;--success-strong:#166534;--success-deep:#14532d;--success-surface:#f0fdf4;--success-soft:#dcfce7;--success-border:#bbf7d0;--success-border-strong:#86efac;--danger:#dc2626;--danger-bright:#ef4444;--danger-strong:#b91c1c;--danger-deep:#991b1b;--danger-surface:#fef2f2;--danger-soft:#fee2e2;--danger-border:#fecaca;--danger-border-strong:#fca5a5;--warning:#92400e;--warning-accent:#f59e0b;--warning-bright:#fbbf24;--warning-strong:#d97706;--warning-deep:#78350f;--warning-surface:#fffbeb;--warning-soft:#fef3c7;--warning-border:#fde68a;--warning-border-strong:#fcd34d;--info:#0369a1;--info-bright:#2563eb;--info-strong:#1d4ed8;--info-deep:#1e3a8a;--info-surface:#eff6ff;--info-soft:#dbeafe;--info-border:#bfdbfe;--info-border-strong:#93c5fd;--accent:#7c3aed;--accent-strong:#6d28d9;--accent-deep:#5b21b6;--accent-ink:#24113f;--accent-surface:#f5f3ff;--accent-soft:#ede9fe;--accent-border:#ddd6fe;--accent-border-strong:#c4b5fd;--indigo:#4338ca;--teal:#0f766e;--teal-bright:#14b8a6;--teal-deep:#115e59;--teal-surface:#f0fdfa;--teal-soft:#ccfbf1;--teal-border:#99f6e4;--state-selected:var(--ink);--state-selected-ink:var(--ink-inverse);--state-off:var(--border);--state-off-ink:var(--ink-muted);--radius-pill:999px;--radius-2xl:36px;--radius-xl:28px;--radius-lg:24px;--radius-md:18px;--radius-sm:14px;--radius-xs:10px;--radius-2xs:4px;--text-2xs:.7rem;--text-xs:.78rem;--text-sm:.85rem;--text-md:.92rem;--text-base:1rem;--text-lg:1.1rem;--text-xl:1.25rem;--text-2xl:1.4rem;--text-3xl:1.6rem;--text-4xl:1.75rem;--text-5xl:2rem;--text-6xl:2.5rem;--text-heading-sm:clamp(1.2rem, 3vw, 1.8rem);--text-heading:clamp(1.35rem, 3vw, 2.1rem);--text-title:clamp(1.6rem, 4.5vw, 2.4rem);--text-headline:clamp(1.9rem, 4vw, 3rem);--text-display:clamp(2.3rem, 5vw, 4.6rem);--shadow-pop:0 32px 80px #0f172a33;--shadow-soft:0 18px 54px #0f172a12;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--app-bg);width:100%;max-width:100%;min-height:100%;overflow-x:hidden}body{overscroll-behavior-x:none;background:radial-gradient(circle at 50% 22%, #ffedd5c7 0, #fff7ed7a 38%, #43140738 100%), linear-gradient(180deg, #fff7edb8 0%, #fed7aa47 44%, #7f1d1d2e 100%), var(--app-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;width:100%;max-width:100%;min-height:100vh;margin:0;overflow-x:hidden}html.conversation-scroll-lock,body.conversation-scroll-lock{overscroll-behavior:none;height:100dvh;min-height:0;max-height:100dvh;overflow:hidden}body.conversation-scroll-lock #root{height:100%;min-height:0;overflow:hidden}#root{width:100%;min-width:0;max-width:100%;min-height:100%}@supports (overflow-x:clip){html,body{overflow-x:clip}}a{color:inherit;text-decoration:none}button,.button{border-radius:var(--radius-pill);background:var(--button-neutral);color:var(--ink);font:inherit;cursor:pointer;border:0;justify-content:center;align-items:center;gap:.4rem;padding:.78rem 1.1rem;font-weight:700;transition:background .15s,transform .1s;display:inline-flex}button:hover,.button:hover{background:var(--button-neutral-hover)}button:active,.button:active{transform:scale(.98)}button:disabled,.button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.primary,.button.primary{background:var(--color-primary-strong);color:var(--ink-inverse)}button.primary:hover,.button.primary:hover{background:var(--color-brand-ink)}button.secondary,.button.secondary{background:var(--button-neutral);color:var(--ink)}button.secondary:hover,.button.secondary:hover{background:var(--button-neutral-hover)}button.ghost,.button.ghost{color:var(--ink);border:1px solid var(--border-strong);background:0 0}button.ghost:hover,.button.ghost:hover{background:#00000008}button.danger-fill,.button.danger-fill{background:var(--danger-strong);color:var(--ink-inverse)}button.danger-fill:hover,.button.danger-fill:hover{background:var(--danger-deep)}.link-button{color:var(--color-brand-ink);text-underline-offset:.18em;background:0 0;padding:0;text-decoration:underline;text-decoration-thickness:1px}.link-button:hover{color:var(--color-brand-deep);background:0 0;text-decoration:underline;text-decoration-thickness:2px}input,textarea,select{border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;font:inherit;color:var(--ink);background:#ffffffd6;padding:.9rem 1rem}.stacked-form{gap:.9rem;margin:1rem 0;display:grid}button.auth-alt{font-size:var(--text-sm)}.stacked-form label{color:var(--ink-soft);gap:.35rem;font-weight:800;display:grid}.field-hint{color:var(--ink-faint);font-weight:600;font-size:var(--text-xs)}.local-launcher{border-top:1px solid #94a3b847;margin-top:1rem;padding-top:1rem}.local-launcher p{color:var(--ink-muted);margin:.25rem 0 .8rem}.local-launcher-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.local-launcher-grid button{border-radius:var(--radius-md);text-align:left;flex-direction:column;align-items:flex-start;gap:.25rem}.local-launcher-grid button small{color:inherit;opacity:.82;font-weight:600}.onboarding-choices{flex-wrap:wrap;gap:.6rem;margin:0 0 1.2rem;display:flex}.onboarding-choices.onboarding-choices--list{display:grid}.onboarding-choices--list button.ui-chip{text-align:left;border-radius:var(--radius-md);width:100%;font-size:var(--text-base);justify-content:flex-start;padding:.8rem 1rem}.onboarding-choices button.ui-chip.onboarding-choice--card{flex-direction:column;align-items:flex-start;gap:.25rem}.onboarding-choice--card strong{font-size:var(--text-lg)}.onboarding-choice--card small{color:inherit;opacity:.85;font-weight:600}.onboarding-actions{gap:.5rem;display:grid}textarea{resize:vertical;min-height:130px}pre{white-space:pre-wrap;background:var(--ink-strong);color:var(--ink-on-dark);border-radius:var(--radius-md);padding:1rem;overflow:auto}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-shell>main{flex:1 0 auto}.app-shell.conversation-route{overscroll-behavior:none;flex-direction:column;width:100%;max-width:100vw;height:100dvh;min-height:0;display:flex;position:fixed;inset:0;overflow:hidden}.topbar{z-index:10;-webkit-backdrop-filter:blur(18px);background:#fff7edd1;border-bottom:1px solid #94a3b840;align-items:center;gap:1rem;padding:.8rem clamp(1rem,3vw,2rem);display:flex;position:sticky;top:0;box-shadow:0 10px 34px #43140714}.brand{font-size:var(--text-xl);letter-spacing:-.04em;white-space:nowrap;font-weight:900}.brand span{color:var(--color-brand-gold)}.nav-scroll-wrap{flex:1;min-width:0;display:flex;position:relative}.nav-scroll{scrollbar-width:none;flex:1;gap:.35rem;min-width:0;display:flex;overflow-x:auto}.nav-scroll::-webkit-scrollbar{display:none}.nav-scroll a{white-space:nowrap;border-radius:var(--radius-pill);color:var(--ink-muted);font-weight:700;font-size:var(--text-md);padding:.55rem .8rem}.nav-scroll a.active{background:var(--state-selected);color:var(--state-selected-ink)}.nav-scroll-more{z-index:1;width:2.6rem;color:var(--ink);border-radius:0;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:0}.nav-scroll-more.start{background:linear-gradient(90deg,#fff7edfa 55%,#fff7ed00);justify-content:flex-start;left:0}.nav-scroll-more.end{background:linear-gradient(270deg,#fff7edfa 55%,#fff7ed00);justify-content:flex-end;right:0}.nav-scroll-more.start:hover{background:linear-gradient(90deg,#fff7edfa 55%,#fff7ed00)}.nav-scroll-more.end:hover{background:linear-gradient(270deg,#fff7edfa 55%,#fff7ed00)}.nav-scroll-more span{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-card);justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex;box-shadow:0 2px 8px #0f172a1f}.nav-scroll-more:hover span{border-color:var(--color-primary);color:var(--color-brand-ink)}.topbar-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.direction-switcher{border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--ink-faint);font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap;background:#ffffff6b;align-items:center;gap:.35rem;padding:.18rem .22rem .18rem .68rem;font-weight:900;display:inline-flex}.direction-switcher select{border-radius:var(--radius-pill);width:auto;min-width:86px;color:var(--ink);font-size:var(--text-sm);background:#ffffffe6;border:0;padding:.48rem 1.7rem .48rem .62rem;font-weight:900}.direction-switcher select:disabled{opacity:.6;cursor:wait}.topbar-icon-link{border-radius:var(--radius-pill);border:1px solid var(--border-strong);width:42px;height:42px;color:var(--ink);background:#ffffff4d;justify-content:center;align-items:center;transition:background .15s,transform .1s;display:inline-flex}.topbar-icon-link:hover,.topbar-icon-link.active{background:#17203314}.topbar-icon-link:active{transform:scale(.96)}.topbar-actions .install-button{white-space:nowrap;font-size:var(--text-sm);padding:.52rem .76rem}button.topbar-auth-button{font-size:var(--text-sm);white-space:nowrap}.topbar-login-link{white-space:nowrap;color:var(--ink);font-weight:800;font-size:var(--text-md);text-underline-offset:.2em;padding:.4rem .3rem;text-decoration:underline}.topbar-login-link:hover{color:var(--color-brand-ink)}main{padding:clamp(1rem,3vw,2.4rem)}main.conversation-main{flex:1;min-height:0;padding:clamp(.75rem,2vw,1rem);overflow:hidden}.offline-pill{z-index:20;border-radius:var(--radius-pill);padding:.55rem .9rem;font-weight:800;position:fixed;bottom:1rem;right:1rem;box-shadow:0 16px 38px #0f172a29}.offline-pill.online{background:var(--success-soft);color:var(--success-strong)}.offline-pill.offline{background:var(--warning-soft);color:var(--warning)}.install-help{left:1rem;bottom:calc(5.3rem + var(--safe-bottom));z-index:35;border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);background:#fff7edf5;border:1px solid #fb923c57;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;width:min(430px,100vw - 2rem);padding:.9rem;display:grid;position:fixed;box-shadow:0 24px 70px #4314072e}.install-help-mark{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-brand-deep), var(--color-brand-deepest));width:42px;height:42px;color:var(--border-amber);justify-content:center;align-items:center;font-weight:950;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff1f}.install-help-copy{min-width:0}.install-help-copy strong{color:var(--color-brand-deepest);letter-spacing:-.02em;display:block}.install-help-copy p{color:var(--color-brand-deep);font-size:var(--text-sm);margin:.18rem 0 0;line-height:1.4}.install-help-actions{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.install-help-actions button{white-space:nowrap;padding:.5rem .72rem}.install-help-dismiss{padding:.5rem .72rem}.ui-button{border-radius:var(--radius-pill);min-height:44px;font-family:inherit;font-size:var(--text-base);text-align:center;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.7rem 1.15rem;font-weight:800;line-height:1.25;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.ui-button.ui-button--block{width:100%;display:flex}.ui-button:active{transform:scale(.98)}.ui-button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.ui-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.ui-button.ui-button--primary{background:var(--color-primary-strong);color:var(--ink-inverse)}.ui-button.ui-button--primary:hover:not(:disabled){background:var(--color-brand-ink)}.ui-button.ui-button--secondary{background:var(--surface-card);color:var(--ink);border-color:var(--border-strong)}.ui-button.ui-button--secondary:hover:not(:disabled){background:var(--surface-cream);border-color:var(--color-primary)}.ui-button.ui-button--ghost{color:var(--color-brand-ink);background:0 0}.ui-button.ui-button--ghost:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary-strong) 8%, transparent)}.ui-page-header{gap:.4rem;margin:0 0 1.1rem;display:grid}.ui-page-header .ui-page-header__back{border-radius:var(--radius-pill);min-height:44px;color:var(--color-brand-ink);font-size:var(--text-md);justify-self:start;align-items:center;gap:.15rem;margin-left:-.35rem;padding:0 .7rem 0 .25rem;font-weight:800;display:inline-flex}.ui-page-header .ui-page-header__back:hover{background:color-mix(in srgb, var(--color-primary-strong) 8%, transparent)}.ui-page-header .ui-page-header__back:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.ui-page-header .ui-page-header__title{color:var(--ink);font-size:var(--text-title);letter-spacing:-.03em;margin:0;font-weight:900;line-height:1.15}.ui-page-header .ui-page-header__lead{max-width:62ch;color:var(--ink-muted);font-size:var(--text-base);margin:0;font-weight:600;line-height:1.55}.ui-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-subtle);max-width:100%;min-height:28px;color:var(--ink-soft);font-family:inherit;font-size:var(--text-sm);overflow-wrap:anywhere;align-items:center;gap:.35rem;padding:.25rem .7rem;font-weight:800;line-height:1.25;display:inline-flex}button.ui-chip,a.ui-chip{border-color:var(--border-strong);background:var(--surface-card);min-height:44px;color:var(--ink);font-size:var(--text-md);padding:.5rem .95rem;transition:background .15s,border-color .15s,color .15s}button.ui-chip:not(.is-selected):hover:not(:disabled),a.ui-chip:hover{background:var(--surface-cream);border-color:var(--color-primary)}button.ui-chip:focus-visible,a.ui-chip:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}button.ui-chip.is-selected,button.ui-chip.is-selected:hover{background:var(--state-selected);border-color:var(--state-selected);color:var(--state-selected-ink)}.ui-card{border:1px solid var(--border-amber);border-radius:var(--radius-lg);background:var(--surface-card);min-width:0;box-shadow:var(--shadow-soft);color:var(--ink);overflow-wrap:anywhere;gap:.5rem;padding:1.1rem 1.15rem;display:grid}.ui-card .ui-card__label{color:var(--color-brand-ink);font-size:var(--text-sm);margin:0;font-weight:900}.ui-card .ui-card__title{color:var(--ink);font-size:var(--text-xl);letter-spacing:-.02em;align-items:center;gap:.5rem;margin:0;font-weight:900;line-height:1.3;display:flex}.ui-card .ui-card__check{border-radius:var(--radius-pill);background:var(--success);width:24px;height:24px;color:var(--ink-inverse);flex-shrink:0;place-items:center;display:inline-grid}.ui-card .ui-card__body{color:var(--ink-muted);font-size:var(--text-md);line-height:1.55}.ui-card .ui-card__body>:first-child{margin-top:0}.ui-card .ui-card__body>:last-child{margin-bottom:0}.ui-card .ui-card__progress{gap:.3rem;display:grid}.ui-card .ui-card__meter{border-radius:var(--radius-pill);background:var(--surface-peach);height:8px;overflow:hidden}.ui-card .ui-card__meter>span{border-radius:inherit;background:var(--color-primary);height:100%;display:block}.ui-card .ui-card__progress-text{color:var(--ink-faint);font-size:var(--text-sm);font-weight:800}.ui-card .ui-card__action{flex-wrap:wrap;gap:.6rem;margin-top:.35rem;display:flex}.ui-card .ui-card__footer{flex-wrap:wrap;align-items:center;gap:.25rem .75rem;display:flex}.ui-card.ui-card--done{border-color:color-mix(in srgb, var(--success) 35%, var(--success-surface));background:var(--success-surface)}.ui-card.ui-card--done .ui-card__label{color:var(--success-strong)}.ui-card.ui-card--done .ui-card__meter{background:color-mix(in srgb, var(--success) 18%, var(--success-surface))}.ui-card.ui-card--done .ui-card__meter>span{background:var(--success)}.ui-card.ui-card--idle{border-color:var(--border);background:var(--surface-subtle);box-shadow:none}.ui-card.ui-card--idle .ui-card__label{color:var(--ink-faint)}.ui-card.ui-card--idle .ui-card__meter{background:var(--border)}.ui-card.ui-card--idle .ui-card__meter>span{background:var(--ink-disabled)}.app-topbar{z-index:var(--z-bar);background:#fff7edf5;border-bottom:1px solid #94a3b840;align-items:center;gap:1.25rem;min-height:52px;padding:.5rem clamp(1rem,3vw,2rem);display:flex;position:relative;box-shadow:0 10px 34px #4314070f}.app-nav{z-index:var(--z-nav);padding:.3rem .35rem calc(.3rem + var(--safe-bottom));border-top:1px solid var(--border);background:#fffffff7;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0f172a12}.app-nav__list{max-width:560px;margin:0 auto;padding:0;list-style:none;display:flex}.app-nav__entry{flex:1 1 0;min-width:0}.app-nav__item{border-radius:var(--radius-sm);min-height:56px;color:var(--ink-muted);font-size:var(--text-xs);text-align:center;-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.25rem .15rem;font-weight:800;line-height:1.2;display:flex}.app-nav__icon{border-radius:var(--radius-pill);justify-content:center;align-items:center;width:52px;height:30px;transition:background .15s,color .15s;display:inline-flex;position:relative}.app-nav__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.app-nav__item.is-active{color:var(--state-selected)}.app-nav__item.is-active .app-nav__icon{background:var(--state-selected);color:var(--state-selected-ink)}.app-nav__item:focus-visible{outline:3px solid var(--color-primary);outline-offset:-2px}@media (hover:hover){.app-nav__item:not(.is-active):hover{color:var(--ink)}}.app-nav__dot{border-radius:var(--radius-pill);background:var(--color-primary-strong);width:10px;height:10px;box-shadow:0 0 0 2px var(--surface-card);position:absolute;top:1px;right:9px}.app-nav__sr,.cold-start-splash__status{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell--v2.has-app-nav{padding-bottom:calc(68px + var(--safe-bottom))}@media (width>=900px){.app-topbar{min-height:64px;position:sticky;top:0}.app-nav{box-shadow:none;background:0 0;border:0;padding:0;position:static}.app-nav__list{gap:.35rem;max-width:none;margin:0}.app-nav__entry{flex:none}.app-nav__item{border-radius:var(--radius-pill);min-height:44px;font-size:var(--text-md);flex-direction:row;gap:.45rem;padding:.45rem .95rem .45rem .75rem}.app-nav__icon{width:auto;height:auto}.app-nav__item.is-active{background:var(--state-selected);color:var(--state-selected-ink)}.app-nav__item.is-active .app-nav__icon{color:inherit;background:0 0}.app-nav__dot{box-shadow:0 0 0 2px var(--surface-cream);top:-4px;right:-6px}.app-shell--v2.has-app-nav{padding-bottom:0}}@media (width>=900px) and (hover:hover){.app-nav__item:not(.is-active):hover{background:#1720330f}}.cold-start-splash{place-items:center;min-height:100dvh;padding:2rem 1rem;display:grid}.cold-start-splash__inner{flex-direction:column;align-items:center;gap:.9rem;animation:.35s .2s both cold-start-in;display:flex}.cold-start-splash__mascot{border-radius:var(--radius-xl);object-fit:cover;width:132px;height:132px;box-shadow:var(--shadow-soft)}.cold-start-splash .cold-start-splash__brand{font-size:var(--text-5xl);margin:0}@keyframes cold-start-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes cold-start-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.cold-start-splash__inner{animation-name:cold-start-fade}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skeleton-block{gap:.55rem;display:grid}.skeleton-line{border-radius:var(--radius-pill);background:linear-gradient(90deg,#94a3b82e 25%,#94a3b852 50%,#94a3b82e 75%) 0 0/200% 100%;height:.95rem;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-line:nth-child(2n){width:86%}.skeleton-line:nth-child(3n){width:72%}.skeleton-title{width:46%;height:1.4rem;margin-bottom:.9rem}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton-line{animation:none}}.empty-state{text-align:center;color:var(--ink-faint);justify-items:center;gap:.45rem;padding:1.4rem 1rem;display:grid}.empty-state strong{color:var(--ink-soft);font-size:var(--text-base)}.empty-state p{max-width:36ch;margin:0;line-height:1.5}.empty-state.compact{padding:.8rem .5rem}.error-state{border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-surface);color:var(--danger-strong);justify-items:start;gap:.5rem;padding:.9rem 1rem;display:grid}.error-state strong{font-size:var(--text-base)}.error-state p{margin:0;line-height:1.5}.status-line{margin:.5rem 0 0;line-height:1.5}.toast{left:50%;bottom:calc(1.4rem + var(--safe-bottom));z-index:calc(var(--z-notice) + 1);border-radius:var(--radius-pill);max-width:min(440px,100vw - 2rem);font-weight:800;font-size:var(--text-md);box-shadow:var(--shadow-pop);align-items:center;gap:.55rem;padding:.7rem 1rem;animation:.22s toast-in;display:inline-flex;position:fixed;transform:translate(-50%)}.toast-success{background:var(--success-soft);color:var(--success-strong)}.toast-error{background:var(--danger-soft);color:var(--danger-strong)}.toast-info{background:var(--info-soft);color:var(--info)}.toast-dismiss{color:inherit;font-size:var(--text-lg);background:0 0;padding:0 .2rem;line-height:1}.toast-dismiss:hover{background:#0000000f}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.muted-note{color:var(--ink-faint);font-size:var(--text-md);margin-top:0}.correction-chip{background:var(--surface-cream);border:1px solid var(--border-amber);border-radius:var(--radius-sm);padding:.7rem .8rem}.correction-chip strong{color:var(--color-brand-ink)}.correction-chip p{color:var(--color-brand-deep);font-size:var(--text-sm);margin:.25rem 0 0}.correction-chip .correction-source-sentence{color:var(--ink-muted);line-height:1.45}.correction-chip .correction-original{border-radius:var(--radius-2xs);background:var(--border-amber);color:var(--color-brand-ink);padding:.05rem .18rem;text-decoration:line-through;text-decoration-thickness:.12em}.correction-chip .correction-original:is(:lang(ja),:lang(ko)){text-decoration:none}.correction-chip .correction-replacement{color:var(--color-brand-deep);font-weight:800}.correction-chip-list{gap:.55rem;display:grid}.meta-badge{border-radius:var(--radius-pill);font-size:var(--text-2xs);white-space:nowrap;align-items:center;gap:.25rem;padding:.18rem .55rem;font-weight:800;display:inline-flex}.meta-badge.fit-easy{background:var(--success-soft);color:var(--success-strong)}.meta-badge.fit-just-right{background:var(--info-soft);color:var(--info)}.meta-badge.fit-stretch{background:var(--warning-surface);color:var(--warning)}.meta-badge.fit-hard{background:var(--surface-peach);color:var(--color-brand-deep)}.meta-badge.lang{background:var(--accent-soft);color:var(--accent-deep)}.meta-badge.source{background:var(--surface-subtle);color:var(--ink-muted);border:1px solid var(--border)}.runtime-info-table{gap:.35rem;display:grid}.runtime-info-row{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--text-sm);grid-template-columns:minmax(120px,.8fr) minmax(0,1.6fr);align-items:baseline;gap:.6rem;padding:.45rem .7rem;display:grid}.runtime-info-row span{color:var(--ink-faint);font-weight:700}.runtime-info-row strong{color:var(--ink-soft);overflow-wrap:anywhere;font-weight:700}.pera-ring-progress{transition:stroke-dasharray .7s}@media (prefers-reduced-motion:reduce){.pera-ring-progress{transition:none}}.landing-page:lang(ko){word-break:keep-all;overflow-wrap:anywhere}.landing-page:lang(ko) .hero-card h1{letter-spacing:-.045em;line-height:1.12}.hero-card{border-radius:var(--radius-2xl);padding:clamp(2rem,5vw,5rem);box-shadow:0 24px 80px #0f172a26}.hero-card.dark{background:linear-gradient(135deg, var(--ink-strong), var(--ink-raised) 64%, var(--color-brand-deep) 100%);color:var(--ink-inverse)}.hero-card h1{letter-spacing:-.08em;max-width:880px;margin:.3rem 0 1rem;font-size:clamp(2.5rem,7vw,6.4rem);line-height:.92}.hero-card p{max-width:720px;font-size:var(--text-lg);color:#ffffffd1}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:var(--text-xs);color:var(--color-brand-gold);font-weight:900}.actions{flex-wrap:wrap;gap:.7rem;margin-top:1.25rem;display:flex}.stack{gap:1rem;display:grid}.panel,.article-card{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);background:#ffffffd6;border:1px solid #ffffff9e;padding:1.3rem;box-shadow:0 24px 64px #4314071f}.hero-mascot-illustration{width:min(100%,470px);margin-inline:auto}.hero-mascot-illustration svg,.hero-mascot-illustration img{width:100%;height:auto;display:block}.hero-mascot-image{border-radius:var(--radius-xl);box-shadow:0 24px 70px #43140729}.landing-page{gap:1rem;max-width:1220px;margin:0 auto;display:grid}.landing-hero-card{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);grid-template-areas:"copy visual""steps visual""directions directions";align-items:start;gap:1.5rem clamp(1.2rem,3vw,2.6rem);padding:clamp(1.5rem,4vw,3.4rem);display:grid;position:relative;overflow:hidden}.landing-hero-card:after{content:"";aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#f9731657,#0000 68%);border-radius:50%;width:min(520px,52vw);position:absolute;inset:auto -12% -38% auto}.landing-hero-card>*{z-index:1;position:relative}.landing-hero-card .eyebrow{color:var(--border-amber)}.landing-hero-copy{grid-area:copy}.landing-hero-card h1{letter-spacing:-.05em;text-wrap:balance;margin:.35rem 0 1rem;font-size:clamp(2.1rem,4.2vw,3.6rem);line-height:1.04}.landing-page:lang(ja) .landing-hero-card h1{word-break:auto-phrase}.landing-hero-card .landing-hero-lead{color:var(--ink-inverse);font-size:var(--text-lg);margin:0;font-weight:800;line-height:1.5}.landing-cta{justify-items:start;gap:.6rem;margin-top:1.4rem;display:grid}.landing-cta .ui-button{min-width:220px;font-size:var(--text-lg);padding-inline:1.6rem}.landing-login-line{font-size:var(--text-md);flex-wrap:wrap;gap:0 .35em;margin:0;font-weight:700;display:flex}.landing-login-line a{text-underline-offset:.2em;font-weight:800;text-decoration:underline}.landing-hero-card .landing-login-line{color:#ffffffc7;max-width:none;font-size:var(--text-md)}.landing-hero-card .landing-login-line a{color:var(--ink-inverse)}.landing-final-card .landing-login-line a{color:var(--color-brand-ink)}.landing-teacher-line{font-size:var(--text-sm);margin:0;font-weight:700}.landing-teacher-line a{color:#ffffffdb;text-underline-offset:.2em;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.landing-hero-steps{grid-area:steps;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.landing-hero-steps li{border-radius:var(--radius-md);background:#ffffff0f;border:1px solid #ffffff24;grid-template-columns:auto minmax(0,1fr);align-content:start;gap:.2rem .7rem;padding:.85rem .9rem;display:grid}.landing-hero-step-number{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--border-amber);font-size:var(--text-sm);background:#fed7aa29;grid-row:span 2;justify-content:center;align-items:center;font-weight:950;display:inline-flex}.landing-hero-steps strong{color:var(--ink-inverse);font-size:var(--text-base);letter-spacing:-.02em;line-height:1.35}.landing-hero-card .landing-hero-steps p{color:#ffffffb8;max-width:none;font-size:var(--text-sm);margin:0;line-height:1.55}.landing-hero-visual{grid-area:visual;align-self:center;justify-items:center;display:grid}.landing-hero-visual .hero-mascot-illustration{width:min(100%,360px)}.landing-demo{z-index:1;border-radius:var(--radius-lg);background:var(--surface-card);width:min(100%,400px);color:var(--ink);gap:.55rem;margin:-4.5rem 0 0;padding:.8rem .85rem .9rem;display:grid;position:relative;box-shadow:0 24px 60px #00000052}.landing-demo-caption{color:var(--ink-faint);font-size:var(--text-2xs);letter-spacing:.08em;font-weight:900}.landing-demo .bubble{border-radius:var(--radius-md);max-width:94%;margin:0;padding:.7rem .85rem}.landing-demo .bubble.learner{border-bottom-right-radius:6px;justify-self:end}.landing-demo .bubble.tutor{border-bottom-left-radius:6px}.landing-hero-card .landing-demo .bubble-text{max-width:none;color:inherit;font-size:var(--text-md);margin:0;line-height:1.5}.landing-demo .grammar-tip-header{cursor:default}.landing-demo .grammar-tip-header:hover{background:0 0}.landing-demo-reply{align-items:flex-end;gap:.5rem;display:flex}.landing-demo .chat-avatar img{object-fit:cover;transform-origin:55% 40%;width:100%;height:100%;display:block;transform:scale(1.8)}.direction-choice{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.4rem .75rem;display:flex}.direction-choice-label{align-items:center;gap:.35rem;font-weight:900;display:inline-flex}.direction-choice ul{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.direction-choice a,.direction-choice-current{border:1px solid var(--border-strong);border-radius:var(--radius-pill);white-space:nowrap;align-items:center;min-height:44px;padding:.35rem .85rem;font-weight:800;display:inline-flex}.direction-choice a{color:var(--ink-muted)}.direction-choice a:hover{border-color:var(--color-primary);color:var(--color-brand-ink)}.direction-choice a:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.direction-choice-current{background:var(--state-selected);border-color:var(--state-selected);color:var(--state-selected-ink)}.landing-hero-directions{color:#ffffffc7;border-top:1px solid #ffffff1f;grid-area:directions;padding-top:1.1rem}.landing-hero-directions a{color:var(--ink-inverse);border-color:#ffffff4d}.landing-hero-directions a:hover{border-color:var(--border-amber);color:var(--border-amber)}.landing-hero-directions .direction-choice-current{background:var(--surface-card);border-color:var(--surface-card);color:var(--ink)}.site-footer-directions{color:var(--ink-muted);justify-content:center}.site-footer-directions a,.site-footer-directions .direction-choice-current{min-height:36px;padding-block:.2rem}.landing-section,.landing-showcase-card,.landing-final-card{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);background:#ffffffdb;border:1px solid #ffffff9e;padding:clamp(1.2rem,3vw,2rem);box-shadow:0 24px 64px #4314071f}.landing-section-heading{gap:.4rem;margin-bottom:1rem;display:grid}.landing-section-heading .eyebrow,.landing-final-card .eyebrow,.landing-showcase-card .eyebrow{margin:0}.landing-section-heading h2,.landing-showcase-card h2,.landing-final-card h2{color:var(--color-brand-deepest);letter-spacing:-.055em;margin:0;line-height:1}.landing-section-heading h2{font-size:var(--text-headline)}.landing-section-heading p:not(.eyebrow),.landing-feature-card p,.landing-showcase-card p,.landing-final-card p{line-height:1.58}.landing-section-heading p:not(.eyebrow){max-width:860px;color:var(--ink-faint);margin:0;font-weight:750}.landing-feature-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);padding:1rem}.landing-feature-card h3{color:var(--ink);letter-spacing:-.035em;margin:.8rem 0 .4rem}.landing-feature-card p{color:var(--ink-muted);margin:0}.landing-feature-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.85rem;display:grid}.landing-feature-card{align-content:start;gap:.65rem;min-height:100%;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid}.landing-feature-card:hover{border-color:var(--border-amber);transform:translateY(-2px);box-shadow:0 18px 42px #9a34121f}.landing-feature-head{align-items:center;gap:.5rem;display:flex}.landing-feature-icon{color:var(--color-primary-strong);flex-shrink:0}.landing-feature-tag{border-radius:var(--radius-pill);background:var(--surface-peach);width:fit-content;color:var(--color-brand-ink);font-size:var(--text-xs);letter-spacing:.04em;padding:.28rem .65rem;font-weight:900}.landing-feature-card h3{font-size:var(--text-xl);margin:0}.landing-feature-card .link-button{color:var(--color-primary-strong);justify-self:start;margin-top:.1rem;font-weight:900}.landing-split-section{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.landing-showcase-card{align-content:start;gap:.75rem;display:grid}.landing-showcase-card.featured{background:linear-gradient(135deg, var(--ink-strong), var(--ink-raised) 68%, var(--color-brand-ink) 100%);color:var(--ink-inverse);border-color:#ffffff24}.landing-showcase-card.featured .eyebrow{color:var(--border-amber)}.landing-showcase-card.featured h2{color:var(--ink-inverse)}.landing-showcase-card h2,.landing-final-card h2{font-size:clamp(1.7rem,3.4vw,2.7rem)}.landing-showcase-card p,.landing-final-card p{color:var(--ink-faint);margin:0;font-weight:700}.landing-showcase-card.featured p{color:#ffffffc7}.landing-showcase-list{gap:.55rem;margin-top:.25rem;display:grid}.landing-showcase-list span{border-radius:var(--radius-md);background:var(--surface-subtle);border:1px solid var(--border);color:var(--ink-soft);padding:.72rem .85rem;font-weight:800;line-height:1.45}.landing-showcase-card.featured .landing-showcase-list span{color:#ffffffe6;background:#ffffff1a;border-color:#ffffff24}.landing-final-card{background:radial-gradient(circle at 92% 14%,#f9731638,#0000 36%),linear-gradient(135deg,#fffbebf5,#fed7aae0);border-color:#fb923c57;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.landing-final-card p:not(.eyebrow){max-width:820px;color:var(--color-brand-deep)}.landing-final-card .landing-cta{margin-top:0}.landing-final-card .waitlist-form{grid-column:1/-1;gap:.35rem;max-width:28rem;display:grid}.landing-final-card .waitlist-form h3{color:var(--color-brand-deepest);font-size:var(--text-lg);letter-spacing:-.02em;margin:0}.landing-final-card .waitlist-form .stacked-form{margin:.5rem 0 0}.landing-final-card .waitlist-form input[type=email]{width:100%}.landing-final-card .waitlist-form .checkbox-row{font-weight:600;font-size:var(--text-md)}@media (width<=980px){.landing-split-section,.landing-final-card{grid-template-columns:1fr}.landing-hero-card{grid-template-columns:minmax(0,1fr);grid-template-areas:"copy""visual""steps""directions"}.landing-hero-visual .hero-mascot-illustration{width:min(60%,240px)}.landing-demo{margin-top:-2.5rem}}@media (width<=640px){.landing-page{gap:.75rem}.landing-section,.landing-showcase-card,.landing-final-card{border-radius:var(--radius-mobile);padding:var(--card-padding-mobile)}.landing-feature-grid{grid-template-columns:1fr}.landing-actions .button,.landing-actions button,.landing-actions .ui-button{width:100%}.landing-hero-card{row-gap:1.1rem}.landing-hero-visual .hero-mascot-illustration{display:none}.landing-demo{width:100%;margin-top:0}.landing-hero-steps{grid-template-columns:1fr}.landing-cta{justify-items:stretch}.landing-cta .ui-button{width:100%;min-width:0}.landing-login-line{justify-content:center}}.page-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.panel.wide{grid-column:span 2}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.dashboard-grid>.panel{grid-column:1}.flashcards-grid{grid-template-columns:minmax(320px,1fr) minmax(0,1.7fr)}.flashcards-grid>.panel.wide{grid-column:auto}.page-title{letter-spacing:-.04em;font-size:var(--text-headline);margin:0 0 1rem;line-height:1}.panel.narrow{max-width:720px;margin:0 auto}.panel h1,.panel h2,.panel h3{letter-spacing:-.04em}.panel h1{font-size:var(--text-headline);margin-top:0;line-height:1}[data-dashboard-guide]{scroll-margin:110px}.dashboard-summary{border-radius:var(--radius-lg);position:relative}.dashboard-hero-topline{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.dashboard-hero-topline .eyebrow{margin-top:0}.dashboard-guide-link{font-size:var(--text-sm);flex-shrink:0;font-weight:900}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0;display:grid}.stat-grid div,.stat-grid .dashboard-stat-card{background:var(--surface-subtle);border-radius:var(--radius-lg);padding:1rem}.stat-grid .dashboard-stat-card{color:inherit;text-decoration:none;display:block}.stat-grid .dashboard-stat-link:hover,.stat-grid .dashboard-stat-link:focus-visible{background:color-mix(in srgb, var(--color-primary) 8%, var(--surface-subtle));outline:none}.stat-grid strong{font-size:var(--text-3xl);display:block}.stat-grid span{color:var(--ink-faint);font-size:var(--text-sm)}.daily-plan-steps{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;display:grid}.dashboard-plan-steps{margin-top:1.2rem}.dashboard-progress-link{margin-top:1rem;font-weight:900;display:inline-flex}.daily-plan-step{border-radius:var(--radius-md);color:inherit;background:#ffffffd1;border:1px solid #22c55e47;gap:.25rem;padding:.85rem;text-decoration:none;display:grid}.daily-plan-step.done{background:var(--success-soft);border-color:var(--success-border-strong)}.daily-plan-step.idle{background:var(--surface-subtle);border-color:var(--border)}.daily-plan-step b{border-radius:var(--radius-pill);background:var(--success);width:28px;height:28px;color:var(--ink-inverse);place-items:center;display:inline-grid}.daily-plan-step.idle b{background:var(--ink-disabled)}.daily-plan-step strong{color:var(--success-deep)}.daily-plan-step.idle strong{color:var(--ink-soft)}.daily-plan-step small{color:var(--success-ink);font-weight:900}.daily-plan-step.idle small{color:var(--ink-faint)}.daily-plan-step p{color:var(--ink-muted);font-size:var(--text-sm);margin:.2rem 0 0;line-height:1.4}.dashboard-next-step-card{border:1px solid color-mix(in srgb, var(--stage-color,var(--color-primary)) 34%, var(--border-amber));border-radius:var(--radius-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--stage-color,var(--color-primary)) 12%, var(--surface-cream)), var(--surface-card));color:inherit;box-shadow:0 16px 36px color-mix(in srgb, var(--stage-color,var(--color-primary)) 12%, transparent);gap:.4rem;margin:1rem 0;padding:1rem;text-decoration:none;display:grid}.dashboard-next-step-card:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--stage-color,var(--color-primary)) 16%, var(--surface-cream)), var(--surface-card))}.dashboard-next-step-card>span{color:var(--stage-color,var(--color-primary));font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:950}.dashboard-next-step-card strong{color:var(--ink);font-size:var(--text-heading-sm);line-height:1.1}.dashboard-next-step-card p{color:var(--ink-muted);margin:0;line-height:1.45}.bond-callback{margin:.4rem 0 .2rem;font-style:italic}.dashboard-path-meter{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 14%, var(--surface-muted));height:9px;overflow:hidden}.dashboard-path-meter span{border-radius:inherit;background:var(--stage-color,var(--color-primary));height:100%;display:block}.beginner-dashboard>.dashboard-decks-panel{display:none}.level-movement-card{border:1px solid var(--info-border);border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--info-surface), var(--surface-subtle));margin-top:1.2rem;padding:1.1rem}.level-movement-card h2{color:var(--info-deep);margin:.15rem 0 .35rem}.level-movement-card p{color:var(--ink-muted);line-height:1.5}.level-movement-list{gap:.7rem;margin-top:1rem;display:grid}.level-movement-item{border-radius:var(--radius-md);background:#ffffffc2;border:1px solid #3b82f633;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem;display:flex}.level-movement-item strong{color:var(--info-deep);display:block}.level-movement-item p{font-size:var(--text-sm);margin:.3rem 0}.level-movement-item small{color:var(--ink-faint);font-weight:800}.level-signal{border-radius:var(--radius-pill);width:fit-content;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;margin-top:.35rem;padding:.2rem .5rem;font-weight:900;display:inline-flex}.level-signal.direct{background:var(--success-soft);color:var(--success-strong)}.level-signal.practice{background:var(--surface-muted);color:var(--ink-muted)}.progress-skill-caption{color:var(--ink-faint);font-size:var(--text-xs);line-height:1.35}.progression-history-list{gap:.5rem;display:grid}.progression-history-item{background:var(--surface-card);border:1px solid var(--border-amber);border-radius:var(--radius-sm);grid-template-columns:5rem 1fr;align-items:start;gap:.7rem;padding:.65rem .75rem;display:grid}.progression-history-item strong{color:var(--color-primary-strong)}.progression-history-item span{color:var(--color-brand-deep);font-size:var(--text-sm)}.progression-history-item small{color:var(--ink-disabled)}.progression-history-empty{color:var(--color-brand-deep)}.badge-shelf-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.badge-shelf-actions>span{color:var(--ink-faint);font-size:var(--text-sm);font-weight:700}.badge-collapse-toggle{padding:0}.badge-shelf-collapsed{color:var(--ink-faint);font-size:var(--text-sm);margin:.75rem 0 0}.badge-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;display:grid}.badge-card{opacity:.55;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-content:start;gap:.3rem;padding:.75rem;display:grid}.badge-card.earned{opacity:1}.badge-card strong{font-size:var(--text-2xl);display:block}.badge-card b{font-size:var(--text-md)}.badge-card small{color:var(--ink-faint);line-height:1.35;display:block}.badge-category{margin-top:1.1rem}.badge-category-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.badge-category-head h3{font-size:var(--text-md);margin:0}.badge-category-head span{color:var(--ink-faint);font-size:var(--text-sm);font-weight:700}.badge-progress{border-radius:var(--radius-pill);background:var(--border);height:7px;display:block;overflow:hidden}.badge-progress i{background:var(--color-primary);height:100%;display:block}.badge-progress-text{font-size:var(--text-2xs);color:var(--ink-faint);font-variant-numeric:tabular-nums}.badge-earned-at{font-size:var(--text-2xs);color:var(--ink-faint)}.record-page{gap:1rem;max-width:980px;margin-inline:auto;display:grid}.record-page .panel{margin:0}.record-path{gap:1rem;scroll-margin-top:1rem;display:grid}.record-section-title{color:var(--ink);font-size:var(--text-xl);letter-spacing:-.02em;margin:0 0 .5rem}.record-subtitle{font-size:var(--text-base);margin:1.2rem 0 .6rem}.record-muted{color:var(--ink-muted);margin:0 0 .8rem;line-height:1.55}.record-level{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.1rem;display:grid}.record-level__body{gap:.35rem;min-width:0;display:grid}.record-level__title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.record-level__title-row .record-section-title{margin:0}.record-level__band{color:var(--color-brand-deepest);font-size:var(--text-3xl);letter-spacing:-.02em;margin:0;font-weight:900}.record-level__note{color:var(--color-brand-ink);margin:0;font-weight:800}.record-level__next{color:var(--ink);margin:0;font-weight:700;line-height:1.5}.record-level__hint{color:var(--ink-faint);font-size:var(--text-md);margin:0;line-height:1.5}.record-level__flavour{color:var(--color-brand-ink);font-size:var(--text-md);margin:0}.record-level .link-button{justify-self:start;margin-top:.2rem}.record-next-list,.record-trend-list,.record-exam-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.record-next-item{border:1px solid var(--border-amber);border-radius:var(--radius-md);background:var(--surface-cream);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem;display:flex}.record-next-item strong{color:var(--color-brand-deep);display:block}.record-next-item p{color:var(--ink-muted);font-size:var(--text-md);margin:.25rem 0 0;line-height:1.45}.record-next-item .ui-button{flex-shrink:0}.record-trend-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.4rem .8rem;padding:.7rem .85rem;display:grid}.record-trend-values{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.record-skill-list{gap:.7rem;display:grid}.record-skill{gap:.25rem;display:grid}.record-skill-row{justify-content:space-between;gap:1rem;display:flex}.record-skill-meter{border-radius:var(--radius-pill);background:var(--border);height:10px;display:block;overflow:hidden}.record-skill-meter i{background:var(--color-primary);height:100%;display:block}.record-exam>summary,.record-disclosure>summary{cursor:pointer;align-items:center;min-height:44px;list-style:none;display:flex}.record-exam>summary::-webkit-details-marker{display:none}.record-disclosure>summary::-webkit-details-marker{display:none}.record-exam>summary:before,.record-disclosure>summary:before{content:"▸ ";color:var(--color-primary);font-weight:900}.record-exam[open]>summary:before,.record-disclosure[open]>summary:before{content:"▾ "}.record-exam>summary .record-section-title,.record-disclosure>summary .record-section-title{margin:0;display:inline}.record-exam[open]>summary,.record-disclosure[open]>summary{margin-bottom:.8rem}.record-disclosure>summary:focus-visible,.record-exam>summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.record-level__exam{color:var(--color-brand-deep);gap:.1rem;margin:0;font-weight:800;line-height:1.5;display:grid}.record-level__exam-target{color:var(--ink)}.record-change{border-top:1px solid var(--border-amber);gap:.35rem;margin-top:1rem;padding-top:.85rem;display:grid}.record-change__title{color:var(--ink);font-size:var(--text-base);margin:0;font-weight:900}.record-change__list{color:var(--ink);font-variant-numeric:tabular-nums;gap:.25rem;margin:0;padding:0;font-weight:700;line-height:1.5;list-style:none;display:grid}.record-change__empty{color:var(--ink-muted);margin:0}.record-level:lang(ko),.record-change:lang(ko),.record-level__more:lang(ko){word-break:keep-all;overflow-wrap:anywhere}.record-level__more{color:var(--color-brand-ink);font-size:var(--text-md);margin-top:.5rem;font-weight:800}.record-level__more[open]>summary{margin-bottom:.3rem}.record-level__more .record-level__hint{margin-bottom:.25rem;font-weight:600}.record-exam-list li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .85rem;display:flex}.record-exam-list li>div:first-child{gap:.15rem;min-width:0;display:grid}.record-exam-list small{color:var(--ink-faint)}.record-exam-result{color:var(--color-primary-strong);text-align:right;justify-items:end;gap:.1rem;font-weight:900;display:grid}@media (width<=640px){.record-level{text-align:center;grid-template-columns:1fr;justify-items:center}.record-level__title-row{justify-content:center}.record-level .link-button{justify-self:center}.record-change,.record-level__more{text-align:center}.record-level__more>summary{justify-content:center}.record-next-item{flex-direction:column;align-items:stretch}.record-trend-item{grid-template-columns:minmax(0,1fr) auto}.record-trend-item .record-trend-chip{grid-area:1/2}.record-trend-values{white-space:normal;grid-column:1/-1}}.pera-path-map>.panel-title-row>span{color:var(--ink-faint);font-size:var(--text-sm);font-weight:900}.pera-path-explainer{border:1px solid var(--border-amber);border-radius:var(--radius-md);background:var(--surface-cream);gap:.25rem;margin:.9rem 0 1rem;padding:.75rem .9rem;display:grid}.pera-path-explainer>summary{cursor:pointer;color:var(--color-brand-deepest);font-weight:950;list-style:none}.pera-path-explainer>summary::-webkit-details-marker{display:none}.pera-path-explainer>summary:before{content:"▸ ";color:var(--color-primary-soft)}.pera-path-explainer[open]>summary:before{content:"▾ "}.pera-path-explainer p{color:var(--ink-muted);line-height:1.5;font-size:var(--text-md);margin:0}.pera-path-stage-list{gap:1rem;display:grid}.pera-path-stage{border:1px solid color-mix(in srgb, var(--stage-color,var(--color-primary)) 28%, var(--border));border-radius:var(--radius-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--stage-color,var(--color-primary)) 8%, var(--surface-card)), var(--surface-card));padding:1rem}.pera-path-stage:not([open]){padding-bottom:.9rem}.pera-path-stage.reached{background:linear-gradient(135deg, color-mix(in srgb, var(--stage-color,var(--color-primary)) 5%, var(--surface-card)), var(--surface-card));border-style:dashed}.pera-path-stage.locked{background:var(--surface-subtle);border-color:var(--border)}.pera-path-stage-head{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding-left:1.25rem;list-style:none;display:flex;position:relative}.pera-path-stage-head::-webkit-details-marker{display:none}.pera-path-stage-head:before{content:"▸";color:var(--stage-color,var(--color-primary));font-size:var(--text-md);font-weight:950;position:absolute;top:50%;left:0;transform:translateY(-50%)}.pera-path-stage[open]>.pera-path-stage-head:before{content:"▾"}.pera-path-stage-label-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.pera-path-stage-head span{color:var(--stage-color,var(--color-primary));font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:950}.pera-path-stage.locked .pera-path-stage-head span{color:var(--ink-disabled)}.pera-path-stage-label-row em{border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--ink-faint);font-size:var(--text-2xs);padding:.18rem .45rem;font-style:normal;font-weight:950}.pera-path-stage.current .pera-path-stage-label-row em{background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 15%, var(--surface-cream));color:var(--stage-color,var(--color-primary))}.pera-path-stage.reached .pera-path-stage-label-row em{background:var(--success-surface);color:var(--success-strong)}.pera-path-stage-head h3{color:var(--ink);font-size:var(--text-2xl);margin:.12rem 0 0}.pera-path-stage-head strong{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 14%, var(--surface-cream));color:var(--stage-color,var(--color-primary));white-space:nowrap;padding:.35rem .65rem}.pera-path-stage.locked .pera-path-stage-head strong{background:var(--surface-muted);color:var(--ink-disabled)}.pera-path-stage-summary-meta{flex-shrink:0;justify-items:end;gap:.22rem;display:grid}.pera-path-stage-summary-meta span{color:var(--ink-faint);font-size:var(--text-xs);letter-spacing:0;text-transform:none;font-weight:900}.pera-path-stage-meter{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 13%, var(--surface-muted));height:11px;margin-top:.35rem;overflow:hidden}.pera-path-stage-meter span{border-radius:inherit;background:var(--stage-color,var(--color-primary));height:100%;display:block}.pera-path-node-list{gap:.7rem;margin-top:.9rem;display:grid;position:relative}.pera-path-node-list:before{content:"";border-radius:var(--radius-pill);background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 18%, var(--border));width:3px;position:absolute;top:12px;bottom:12px;left:18px}.pera-path-node{border-radius:var(--radius-md);background:#ffffffdb;border:1px solid #94a3b838;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:.75rem;padding:.72rem .8rem;display:grid;position:relative}.pera-path-node.completed{border-color:color-mix(in srgb, var(--success) 36%, var(--success-border));background:var(--success-surface)}.pera-path-node.current{border-color:color-mix(in srgb, var(--stage-color,var(--color-primary)) 55%, var(--border-amber));background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 10%, var(--surface-card));box-shadow:0 16px 34px color-mix(in srgb, var(--stage-color,var(--color-primary)) 14%, transparent)}.pera-path-node.support{border-color:color-mix(in srgb, var(--stage-color,var(--color-primary)) 24%, #94a3b838);background:#ffffffeb}.pera-path-node.locked{opacity:.64;background:var(--surface-subtle)}.pera-path-node-marker{z-index:1;border-radius:var(--radius-pill);background:var(--surface-card);border:2px solid color-mix(in srgb, var(--stage-color,var(--color-primary)) 30%, var(--border-strong));width:36px;height:36px;color:var(--stage-color,var(--color-primary));place-items:center;font-weight:950;display:inline-grid;position:relative}.pera-path-node.completed .pera-path-node-marker{background:var(--success);border-color:var(--success);color:var(--ink-inverse)}.pera-path-node.current .pera-path-node-marker{background:var(--stage-color,var(--color-primary));border-color:var(--stage-color,var(--color-primary));color:var(--ink-inverse);animation:1.9s ease-in-out infinite pera-path-pulse}.pera-path-node.locked .pera-path-node-marker{color:var(--ink-disabled);border-color:var(--border-strong)}.pera-path-node-main{min-width:0}.pera-path-node-title-row{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.pera-path-node-title-row strong{color:var(--ink)}.pera-path-node-title-row span{border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--ink-faint);font-size:var(--text-2xs);white-space:nowrap;padding:.2rem .5rem;font-weight:950}.pera-path-node.completed .pera-path-node-title-row span{background:var(--success-soft);color:var(--success-strong)}.pera-path-node.current .pera-path-node-title-row span{background:color-mix(in srgb, var(--stage-color,var(--color-primary)) 16%, var(--surface-cream));color:var(--stage-color,var(--color-primary))}.pera-path-node.support .pera-path-node-title-row span{background:var(--warning-surface);color:var(--warning)}.pera-path-node p{color:var(--ink-muted);font-size:var(--text-sm);margin:.25rem 0 0;line-height:1.45}.pera-path-node.compact p{display:none}.pera-path-node-meter-row{color:var(--ink-faint);justify-content:space-between;gap:1rem;margin-top:.42rem;font-weight:900;display:flex}.pera-path-node-meter{border-radius:var(--radius-pill);background:var(--border);height:8px;margin-top:.25rem;overflow:hidden}.pera-path-node-meter span{border-radius:inherit;background:var(--stage-color,var(--color-primary));height:100%;display:block}.pera-path-node.completed .pera-path-node-meter span{background:var(--success)}@keyframes pera-path-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--stage-color,var(--color-primary)) 34%, transparent);transform:scale(1)}50%{transform:scale(1.05);box-shadow:0 0 0 9px #0000}}@media (prefers-reduced-motion:reduce){.pera-path-node.current .pera-path-node-marker{animation:none}}.field{gap:.45rem;margin:.8rem 0;font-weight:800;display:grid}.error{color:var(--danger-strong)}.success{color:var(--success-strong);font-weight:800}.empty{color:var(--ink-faint)}.list-row{text-align:left;background:var(--surface-subtle);border-radius:var(--radius-md);border:1px solid var(--surface-muted);justify-content:space-between;align-items:center;gap:.8rem;width:100%;margin:.75rem 0;padding:.8rem 1.2rem;display:flex}.deck-info{flex-direction:column;align-items:flex-start;gap:.2rem;display:flex}.deck-count{color:var(--ink-faint);font-size:var(--text-sm)}.deck-row{flex-direction:column;align-items:stretch}.deck-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.manual-create-deck-card,.manual-card-form{border-radius:var(--radius-lg);border:1px solid var(--border-amber);background:var(--surface-cream);gap:.7rem;margin-bottom:1rem;padding:1rem;display:grid}.manual-create-deck-card h2,.manual-card-form h3,.manual-card-list-header h3{color:var(--ink);margin:0}.manual-card-form p,.manual-deck-header p{color:var(--ink-faint);line-height:1.45;font-size:var(--text-sm);margin:0}.manual-create-deck-card input,.manual-create-deck-card textarea,.manual-card-form input,.manual-card-form textarea{border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);width:100%;color:var(--ink);font:inherit;outline:none;padding:.68rem .8rem}.manual-create-deck-card input:focus,.manual-create-deck-card textarea:focus,.manual-card-form input:focus,.manual-card-form textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #f973161f}.manual-form-actions,.manual-deck-header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.manual-deck-detail{gap:1rem;display:grid}.manual-deck-header{border-bottom:1px solid #94a3b82e;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.manual-deck-header h2{margin:.1rem 0 .35rem;font-size:clamp(1.45rem,3vw,2.3rem)}.manual-deck-header small{color:var(--warning);background:var(--surface-peach);border-radius:var(--radius-pill);margin-top:.45rem;padding:.22rem .55rem;font-weight:800;display:inline-flex}.manual-card-form{background:var(--surface-subtle);border-color:var(--border)}.manual-card-details>summary{cursor:pointer;border-radius:var(--radius-pill);background:var(--accent-surface);width:fit-content;color:var(--indigo);font-weight:800;font-size:var(--text-md);margin-bottom:.8rem;padding:.4rem .9rem;list-style:none}.manual-card-details>summary::-webkit-details-marker{display:none}.manual-card-details>summary:before{content:"+ "}.manual-card-details[open]>summary:before{content:"– "}.manual-card-form-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.manual-card-form-heading button{white-space:nowrap}.manual-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.manual-card-grid label{color:var(--ink-muted);font-size:var(--text-xs);gap:.35rem;font-weight:850;display:grid}.manual-card-wide-field{grid-column:1/-1}.manual-card-list-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.manual-card-list-header span{color:var(--ink-faint);font-weight:800;font-size:var(--text-sm)}.manual-card-row{border-radius:var(--radius-md);background:#ffffffc7;border:1px solid #94a3b82e;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem 1rem;display:flex}.manual-card-main-line{color:var(--ink);flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.manual-card-main-line span{color:var(--ink-disabled)}.manual-card-meta-line{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.manual-card-meta-line span{background:var(--accent-surface);color:var(--indigo);border-radius:var(--radius-pill);font-size:var(--text-2xs);padding:.12rem .5rem;font-weight:800;display:inline-flex}.manual-card-row p{color:var(--ink-faint);margin:.45rem 0 0;line-height:1.45}.manual-card-row small{color:var(--ink-disabled);margin-top:.35rem;line-height:1.45;display:block}.manual-delete-card{color:var(--ink-muted);font-size:var(--text-sm);white-space:nowrap;font-weight:900}.manual-card-empty{text-align:center;border-radius:var(--radius-sm);background:var(--surface-subtle);padding:1.2rem}.panel-title-row{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem;display:flex}.panel-title-row h2,.panel-title-row h3{margin:0}.actions.compact{gap:.5rem;margin-top:.8rem}.actions.compact .button,.actions.compact button{font-size:var(--text-sm);padding:.62rem .9rem}.dashboard-homework-panel{border:1px solid var(--border-amber);border-radius:var(--radius-lg);background:var(--surface-cream);gap:.9rem;margin-top:1.1rem;padding:1rem;display:grid}.assignment-list{gap:.75rem;display:grid}.assignment-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem}.assignment-card.completed{background:var(--success-surface);border-color:var(--success-border)}.assignment-card h3{font-size:var(--text-base);margin:.55rem 0 .35rem}.assignment-card p{color:var(--ink-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.assignment-meta{flex-wrap:wrap;gap:.45rem;margin-top:.7rem;display:flex}.assignment-meta span{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--ink-faint);font-size:var(--text-xs);padding:.25rem .55rem;font-weight:800}.assignment-card .assignment-turns-note{color:var(--color-brand-ink);margin-top:.7rem;font-weight:800}.assignment-card .assignment-rule{margin-top:.55rem;font-weight:700}.dashboard-homework-panel h2,.dashboard-homework-panel>p{margin:0}.dashboard-deck-list{gap:.55rem;display:grid}.dashboard-deck-row{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem .8rem;display:flex}.dashboard-deck-meta{gap:.15rem;min-width:0;display:grid}.dashboard-deck-meta strong{font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-deck-due{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.dashboard-deck-due.has-due{color:var(--color-primary-strong)}@media (width<=760px){.pera-path-stage-head,.pera-path-node-title-row{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.pera-path-stage-head:before{top:.15rem;transform:none}.pera-path-stage-summary-meta{justify-items:start}.pera-path-node{grid-template-columns:34px minmax(0,1fr);gap:.6rem;padding:.72rem}.pera-path-node-marker{width:32px;height:32px}.pera-path-node-list:before{left:16px}}.today-screen{gap:1rem;max-width:760px;margin:0 auto;display:grid}.today-greeting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .75rem;display:flex}.today-greeting .ui-page-header{margin:0}.today-greeting .ui-page-header .ui-page-header__title{font-size:clamp(1.35rem,4vw,1.8rem)}.today-streak{flex-shrink:0}.today-session .ui-card__title{font-size:clamp(1.2rem,4vw,1.5rem)}.today-session .ui-card__body{gap:.7rem;display:grid}.today-session__top{align-items:center;gap:.8rem;display:flex}.today-mascot{flex-shrink:0}.today-mascot .tanu-image-frame{border-radius:var(--radius-md);box-shadow:0 8px 20px #4314071f}.today-stepper{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;min-width:0;margin:0;padding:0;list-style:none;display:grid}.today-step{min-width:0;color:var(--ink-faint);font-size:var(--text-xs);text-align:center;justify-items:center;gap:.3rem;font-weight:800;line-height:1.25;display:grid;position:relative}.today-step+.today-step:before{content:"";background:var(--border);width:100%;height:2px;position:absolute;top:13px;right:50%}.today-step.is-done+.today-step:before{background:var(--success)}.today-step__mark{z-index:1;border:2px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);width:28px;height:28px;color:var(--ink-muted);font-size:var(--text-sm);place-items:center;font-weight:900;display:inline-grid;position:relative}.today-step__label{overflow-wrap:anywhere;max-width:100%}.today-step.is-current{color:var(--ink)}.today-step.is-current .today-step__mark{border-color:var(--color-primary-strong);background:var(--color-primary-strong);color:var(--ink-inverse)}.today-step.is-done{color:var(--success-strong)}.today-step.is-done .today-step__mark{border-color:var(--success);background:var(--success);color:var(--ink-inverse)}.today-step.is-empty .today-step__mark{color:var(--ink-disabled);border-style:dashed}.today-step__count{border-radius:var(--radius-pill);background:var(--surface-cream);color:var(--color-brand-ink);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;padding:0 .4rem;font-weight:900}.today-step__link{border-radius:var(--radius-md);width:100%;min-width:44px;min-height:44px;color:inherit;justify-items:center;gap:.3rem;padding:0 .1rem .2rem;display:grid}.today-step__link .today-step__count{border:1px solid var(--border-amber);align-items:center;gap:.05rem;display:inline-flex}.today-step__link:hover{background:var(--surface-cream)}.today-step__link:hover .today-step__label{text-underline-offset:3px;text-decoration:underline}.today-step__link:hover .today-step__count{border-color:var(--color-primary)}.today-step__link:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.today-session__tags{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}a.ui-chip.today-exam-tag{gap:.15rem;padding-right:.7rem}.today-homework{border:1px solid var(--border-amber);border-radius:var(--radius-md);background:var(--surface-cream);gap:.2rem;padding:.7rem .85rem;display:grid}.today-homework p{margin:0}.today-homework__title{color:var(--ink);font-weight:900}.today-homework__meta{color:var(--ink-faint);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.2rem .45rem;font-weight:700;display:flex}.today-session .today-note{color:var(--color-brand-ink);font-size:var(--text-md);margin:0;font-weight:800}.today-first-done{border:1px solid color-mix(in srgb, var(--success) 30%, var(--success-surface));border-radius:var(--radius-md);background:var(--surface-card);gap:.3rem;padding:.75rem .9rem;display:grid}.today-first-done p{margin:0}.today-first-done__note{color:var(--success-strong);font-weight:900}.today-sentence{color:var(--ink-soft);line-height:1.5}.today-fix{color:var(--color-brand-deep);font-weight:700}.today-screen .correction-original{border-radius:var(--radius-2xs);background:var(--border-amber);color:var(--color-brand-ink);padding:.05rem .18rem;text-decoration:line-through;text-decoration-thickness:.12em}.today-screen .correction-original:is(:lang(ja),:lang(ko)){text-decoration:none}.today-session .today-trend,.today-session .today-tomorrow{color:var(--ink-soft);margin:0}.today-trend strong{color:var(--ink)}.today-extras{flex-wrap:wrap;gap:.5rem;display:flex}.today-block{gap:.55rem;display:grid}.today-block__title{color:var(--ink-soft);font-size:var(--text-base);letter-spacing:-.01em;margin:0;font-weight:900}.today-topics{flex-wrap:wrap;gap:.5rem;display:flex}button.ui-chip.today-topic,a.ui-chip.today-topic{text-align:left}a.ui-chip.today-exam-set{gap:.15rem;padding-right:.7rem}button.ui-chip.today-topic--homework{border-color:var(--color-primary);background:var(--surface-cream)}.ui-chip.today-topic-note{min-height:44px;font-size:var(--text-md);border-style:dashed;padding:.5rem .95rem}button.ui-chip.today-weak{flex-wrap:wrap;gap:.4rem}.today-weak__tag{color:var(--ink-faint);font-size:var(--text-sm);font-weight:800}.today-weak__fix{color:var(--color-brand-deep);font-weight:900}.today-rows{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.today-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);min-height:48px;color:var(--ink);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem .9rem;font-weight:800;display:flex}.today-row:hover{border-color:var(--color-primary);background:var(--surface-cream)}.today-row:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.today-homework-row{border-color:var(--border-amber);background:var(--surface-cream)}.today-homework-row.is-static:hover{border-color:var(--border-amber)}.today-homework-row__text{gap:.15rem;min-width:0;display:grid}.today-homework-row__title{color:var(--ink);font-weight:900}.today-homework-row__meta{color:var(--ink-faint);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.2rem .45rem;font-weight:700;display:flex}.today-overdue{border:1px solid var(--warning-border);border-radius:var(--radius-pill);background:var(--warning-surface);color:var(--warning-deep);padding:.05rem .45rem;font-weight:900}.today-homework__rule,.today-homework-row__rule{color:var(--ink-muted);font-size:var(--text-sm);font-weight:700;line-height:1.45}.today-homework-row__cap{color:var(--color-brand-ink);font-size:var(--text-sm);font-weight:800}.today-homework-note{color:var(--color-brand-ink);font-size:var(--text-md);margin:0;font-weight:800}.today-homework-all{color:var(--color-brand-deep);justify-self:start;font-weight:800}.today-footer{flex-wrap:wrap;justify-content:center;gap:.25rem .5rem;display:flex}.today-offline{justify-items:start;gap:.5rem;display:grid}.today-screen .sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=900px){.today-session .ui-card__action .ui-button.ui-button--block{width:auto;min-width:300px}}@media (width<=480px){.today-session__top{gap:.55rem}.today-mascot .tanu-container{width:44px!important}.today-step{font-size:var(--text-xs)}}.teacher-page{align-items:stretch}.teacher-shell{grid-template-columns:minmax(260px,320px) minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}@media (width<=900px){.teacher-shell{grid-template-columns:1fr}}.teacher-sidebar,.teacher-main{min-height:100%}.teacher-tabs{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-pill);gap:.3rem;margin-bottom:1.1rem;padding:.25rem;display:inline-flex}.teacher-tabs button{color:var(--ink-muted);border-radius:var(--radius-pill);font-weight:800;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:.45rem 1rem}.teacher-tabs button.active{background:var(--state-selected);color:var(--state-selected-ink)}.teacher-summary-grid,.teacher-analytics-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:.9rem 0 1rem;display:grid}.teacher-analytics-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-summary-grid div,.teacher-analytics-stats div{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:.8rem}.teacher-summary-grid strong,.teacher-analytics-stats strong{font-size:var(--text-2xl);line-height:1;display:block}.teacher-summary-grid span,.teacher-analytics-stats span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.teacher-analytics-stats small{color:var(--ink-faint);font-size:var(--text-2xs);margin-top:.2rem;display:block}.teacher-create-card,.teacher-assignment-form{background:var(--surface-cream);border:1px solid var(--border-amber);border-radius:var(--radius-lg);margin-bottom:1rem;padding:1rem}.teacher-create-card h2{margin-top:0}.teacher-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.teacher-form-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-class-list{gap:.55rem;display:grid}.teacher-class-card{background:var(--surface-subtle);width:100%;color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .95rem;display:flex}.teacher-class-card:hover{background:var(--surface-cream);border-color:var(--color-primary)}.teacher-class-card.active,.teacher-class-card.active:hover{background:var(--state-selected);border-color:var(--state-selected);color:var(--state-selected-ink)}.teacher-class-card>span:first-child{gap:.15rem;display:grid}.teacher-class-card .teacher-class-pair{justify-self:start;margin-top:.2rem}.teacher-class-card small{color:inherit;opacity:.72;letter-spacing:.08em;font-weight:800}.teacher-class-hero{background:linear-gradient(135deg, var(--ink), var(--ink-raised) 68%, var(--color-brand-ink));color:var(--ink-inverse);border-radius:var(--radius-lg);justify-content:space-between;align-items:stretch;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.teacher-class-hero .eyebrow{color:var(--border-amber)}.teacher-class-hero h2{margin:.2rem 0 .8rem;font-size:clamp(1.75rem,3vw,3rem);line-height:1}.join-code-card{border-radius:var(--radius-lg);text-align:center;background:#ffffff1f;border:1px solid #fff3;align-content:center;gap:.45rem;min-width:190px;padding:1rem;display:grid}.join-code-card span{color:var(--border-amber);font-size:var(--text-xs);font-weight:900}.join-code-card strong{font-size:var(--text-5xl);letter-spacing:.12em}.teacher-share-card{background:var(--warning-surface);border:1px solid var(--warning-border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.teacher-share-card h3,.teacher-share-card p{margin:0}.teacher-share-card .ui-button{white-space:nowrap;flex:none}.teacher-share-card p{color:var(--warning);margin-top:.3rem;line-height:1.5}.teacher-section-title{margin-top:1.2rem}.teacher-assignment-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;display:grid}.teacher-assignment-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;padding:.9rem;display:block}.teacher-assignment-card:hover{border-color:var(--warning-bright);box-shadow:0 8px 24px #0f172a14}.teacher-assignment-card div{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.teacher-assignment-card div span{background:var(--surface-cream);color:var(--color-brand-ink);border-radius:var(--radius-pill);font-size:var(--text-2xs);padding:.25rem .55rem;font-weight:900}.teacher-assignment-card div strong{color:var(--success-strong);font-size:var(--text-xs)}.teacher-assignment-card h4{margin:.65rem 0 .35rem}.teacher-assignment-card p{color:var(--ink-muted);font-size:var(--text-sm);margin:0 0 .6rem;line-height:1.45}.teacher-assignment-card small{color:var(--ink-faint);font-weight:800}.teacher-roster{gap:.65rem;display:grid}.teacher-student-row{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;grid-template-columns:minmax(180px,1fr) repeat(3,minmax(90px,auto));align-items:center;gap:.75rem;padding:.85rem;display:grid}.teacher-student-row:hover{border-color:var(--color-primary);box-shadow:0 8px 24px #0f172a14}.teacher-student-row div{gap:.18rem;display:grid}.teacher-student-row span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.teacher-bars{border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(34px,1fr));align-items:end;gap:.55rem;height:180px;padding:1rem 0 .5rem;display:grid}.teacher-bars div{height:100%;color:var(--ink-faint);place-items:end center;gap:.25rem;display:grid}.teacher-bars div span{background:linear-gradient(180deg, var(--color-primary), var(--color-primary-hover));border-radius:var(--radius-xs) var(--radius-xs) var(--radius-2xs) var(--radius-2xs);width:100%;max-width:32px;display:block}.teacher-bars small{font-size:var(--text-2xs)}.teacher-bars strong{font-size:var(--text-xs);color:var(--ink)}.teacher-error-list{flex-wrap:wrap;gap:.45rem;display:flex}.teacher-error-list span{background:var(--danger-surface);color:var(--danger-deep);border:1px solid var(--danger-border);border-radius:var(--radius-pill);font-size:var(--text-xs);padding:.35rem .6rem;font-weight:800}.teacher-form-optional{margin:.7rem 0}.teacher-form-optional summary{cursor:pointer;color:var(--color-brand-ink);padding:.3rem 0;font-weight:800}.teacher-form-optional[open] summary{margin-bottom:.5rem}.teacher-form-optional .field{margin:0 0 .7rem}.teacher-assignment-form .teacher-form-due{max-width:260px}.teacher-roster-sort{font-size:var(--text-xs);color:var(--ink-faint);align-items:center;gap:.45rem;font-weight:800;display:inline-flex}.teacher-roster-sort select{width:auto;font-size:var(--text-sm);padding:.45rem 1.6rem .45rem .6rem}.join-class-page{align-items:stretch}.join-class-hero{background:linear-gradient(135deg,#ffffffeb,#fff7edf0)}.join-class-hero h1{max-width:760px}.join-class-hero p{max-width:760px;color:var(--ink-muted);line-height:1.6}.join-class-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.7rem;max-width:720px;margin-top:1rem;display:grid}.join-class-form .field{margin:0}.join-class-help{align-content:start;gap:.75rem;display:grid}.join-step{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-start;gap:.7rem;padding:.85rem;display:flex}.join-step strong{background:var(--ink);width:28px;height:28px;color:var(--ink-inverse);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.join-step span{color:var(--ink-muted);font-weight:800;line-height:1.45}.class-preview-card{gap:1rem;display:grid}.class-preview-card h2{font-size:var(--text-title);margin:.2rem 0 .25rem}.class-preview-card p{color:var(--ink-faint);margin:0}.class-preview-meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.class-preview-meta span{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink-faint);font-size:var(--text-xs);gap:.25rem;padding:.85rem;font-weight:800;display:grid}.class-preview-meta strong{color:var(--ink);font-size:var(--text-lg);line-height:1.2}.join-class-actions{flex-wrap:wrap;gap:.6rem;display:flex}@media (width<=640px){.join-class-actions>*{flex:100%}}.class-preview-card .join-preview-banner{border:1px dashed var(--state-selected);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--ink);font-size:var(--text-sm);margin:0;padding:.7rem .9rem;font-weight:800;line-height:1.55}.teacher-insights h3{margin:1.2rem 0 .6rem}.teacher-struggle-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;display:grid}.teacher-struggle-card{background:var(--surface-cream);border:1px solid var(--border-amber);border-radius:var(--radius-md);gap:.3rem;padding:.85rem;display:grid}.teacher-struggle-card strong{color:var(--color-brand-ink)}.teacher-struggle-card small{color:var(--color-brand-gold);font-weight:800}.teacher-struggle-card em{color:var(--ink-muted);font-size:var(--text-sm);font-style:normal}.teacher-drawer-overlay{z-index:var(--z-dialog);background:#0f172a73;justify-content:flex-end;display:flex;position:fixed;inset:0}.teacher-drawer{background:var(--surface-card);width:min(440px,92vw);height:100%;padding:1.3rem;overflow-y:auto;box-shadow:-24px 0 60px #0f172a40}.teacher-drawer-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.teacher-drawer-head h2{margin:.2rem 0 .25rem}.teacher-drawer-sub{color:var(--ink-faint);font-weight:800;font-size:var(--text-sm)}.teacher-drawer-body section{margin-bottom:1.3rem}.teacher-drawer-body h3{font-size:var(--text-md);margin:0 0 .6rem}.teacher-drawer-body .teacher-drawer-article{overflow-wrap:anywhere;margin:0 0 .6rem;font-weight:800}.teacher-drawer-article a{color:var(--color-brand-ink)}.teacher-skill-grid{gap:.7rem;display:grid}.teacher-skill-top{font-weight:800;font-size:var(--text-sm);justify-content:space-between;margin-bottom:.3rem;display:flex}.teacher-skill-bar{background:var(--border);border-radius:var(--radius-pill);height:8px;overflow:hidden}.teacher-skill-bar span{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));border-radius:var(--radius-pill);height:100%;display:block}.teacher-drawer-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.teacher-drawer-stats div{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:.7rem}.teacher-drawer-stats strong{font-size:var(--text-xl);line-height:1;display:block}.teacher-drawer-stats span{color:var(--ink-faint);font-size:var(--text-2xs);font-weight:800}.teacher-drawer-stats.three .status-complete strong{color:var(--success-strong)}.teacher-drawer-stats.three .status-progress strong{color:var(--color-brand-gold)}.teacher-drawer-stats.three .status-pending strong{color:var(--ink-faint)}.teacher-struggle-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.teacher-struggle-list li{background:var(--danger-surface);border:1px solid var(--danger-border);border-radius:var(--radius-sm);gap:.2rem;padding:.65rem .8rem;display:grid}.teacher-struggle-label{color:var(--danger-deep);font-weight:800}.teacher-struggle-list em{color:var(--ink-muted);font-size:var(--text-sm);font-style:normal}.teacher-struggle-list small{color:var(--danger-strong);font-weight:800;font-size:var(--text-xs)}.teacher-struggle-list .teacher-struggle-rule{color:var(--ink-muted);font-weight:400}.teacher-drawer-assignments,.teacher-progress-list{gap:.5rem;display:grid}.teacher-drawer-assignment{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.teacher-drawer-assignment small{color:var(--ink-faint);font-weight:800}.teacher-drawer-assignment span.done{color:var(--success-strong);font-weight:800;font-size:var(--text-xs)}.teacher-drawer-assignment span.pending{color:var(--ink-disabled);font-weight:800;font-size:var(--text-xs)}.teacher-level-history{flex-wrap:wrap;gap:.45rem;display:flex}.teacher-level-history div{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:.5rem .7rem}.teacher-level-history strong{color:var(--ink);display:block}.teacher-level-history small{color:var(--ink-disabled);font-size:var(--text-2xs)}.teacher-progress-row{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.6rem .8rem;display:grid}.teacher-progress-row small{color:var(--ink-faint);font-weight:800;font-size:var(--text-xs)}.teacher-status-chip{border-radius:var(--radius-pill);font-size:var(--text-2xs);padding:.25rem .6rem;font-weight:900}.teacher-status-chip.done{background:var(--success-soft);color:var(--success-strong)}.teacher-status-chip.progress{background:var(--warning-soft);color:var(--color-brand-gold)}.teacher-status-chip.pending{background:var(--surface-muted);color:var(--ink-faint)}.teacher-billing-hero{background:linear-gradient(135deg, var(--ink), var(--ink-raised) 70%, var(--color-brand-ink));color:var(--ink-inverse);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;gap:1.2rem;margin-bottom:1.1rem;padding:1.3rem;display:flex}.teacher-billing-hero .eyebrow{color:var(--border-amber)}.teacher-billing-hero h2{font-size:var(--text-headline);margin:.25rem 0 .5rem;line-height:1}.teacher-billing-hero h2 small{font-size:var(--text-md);opacity:.8;font-weight:800}.teacher-plan-pill{border-radius:var(--radius-pill);font-size:var(--text-xs);background:#ffffff29;border:1px solid #ffffff40;padding:.3rem .7rem;font-weight:900;display:inline-block}.teacher-plan-pill.active{background:var(--success);border-color:var(--success)}.teacher-billing-seatmeter{flex:1;align-self:center;min-width:220px}.teacher-seat-top{justify-content:space-between;margin-bottom:.35rem;font-weight:900;display:flex}.teacher-seat-bar{border-radius:var(--radius-pill);background:#fff3;height:10px;overflow:hidden}.teacher-seat-bar span{background:var(--color-primary);border-radius:var(--radius-pill);height:100%;display:block}.teacher-billing-seatmeter small{color:var(--border-amber);font-size:var(--text-xs);margin-top:.4rem;font-weight:700;display:block}.teacher-billing-breakdown{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin-bottom:1.2rem;display:grid}.teacher-billing-breakdown div{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);gap:.25rem;padding:.75rem;display:grid}.teacher-billing-breakdown span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.teacher-billing-breakdown strong{font-size:var(--text-lg)}.teacher-tier-table{border:1px solid var(--border);border-radius:var(--radius-md);margin:.6rem 0 1.2rem;overflow:hidden}.teacher-tier-row{grid-template-columns:repeat(3,1fr);padding:.6rem .85rem;font-weight:800;display:grid}.teacher-tier-row.head{background:var(--surface-muted);color:var(--ink-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.teacher-tier-row:not(.head):nth-child(2n){background:var(--surface-subtle)}.teacher-tier-row.reached{background:var(--surface-cream);color:var(--color-brand-ink)}.teacher-billing-cta{justify-items:start;gap:.5rem;display:grid}.teacher-billing-cta button:disabled{opacity:.6;cursor:not-allowed}.teacher-billing-cta p{color:var(--ink-faint);font-size:var(--text-sm);margin:0}.teacher-billing-notice{border:1px solid var(--border-amber);border-radius:var(--radius-md);color:var(--ink-soft);font-size:var(--text-sm);margin:0 0 1rem;padding:.75rem 1rem;line-height:1.6}.teacher-qr{justify-items:center;gap:.45rem;margin:.35rem 0 0;display:grid}.teacher-qr img{background:var(--surface-card);border-radius:var(--radius-sm);width:168px;height:168px;padding:6px}.teacher-qr figcaption{color:var(--border-amber);font-size:var(--text-xs);max-width:220px;font-weight:700;line-height:1.45}.join-code-card:focus-visible{outline:3px solid var(--border-amber);outline-offset:2px}.join-code-card .teacher-joined-count{color:var(--ink-inverse);font-size:var(--text-sm);margin:.15rem 0 0;font-weight:800}.teacher-class-hero.is-folded{gap:.6rem}.teacher-class-hero.is-folded h2{margin-bottom:.1rem;font-size:clamp(1.5rem,6vw,2.2rem)}.teacher-invite>summary{cursor:pointer;border-radius:var(--radius-md);min-height:44px;color:var(--ink-inverse);overflow-wrap:anywhere;background:#ffffff1a;border:1px solid #ffffff38;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .85rem;font-weight:800;list-style:none;display:flex}.teacher-invite>summary::-webkit-details-marker{display:none}.teacher-invite__label{flex:auto;min-width:0}.teacher-invite__code{color:var(--border-amber);letter-spacing:.08em;flex:none}.teacher-invite__sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.teacher-invite>summary:focus-visible{outline:3px solid var(--border-amber);outline-offset:2px}.teacher-invite[open]>summary{margin-bottom:.75rem}.teacher-invite__chevron{flex:none;transition:transform .15s}.teacher-invite[open] .teacher-invite__chevron{transform:rotate(180deg)}.teacher-invite .join-code-card{width:100%}.teacher-invite .teacher-share-card{background:#ffffff14;border-color:#fff3;margin:.75rem 0 0}.teacher-invite .teacher-share-card h3{color:var(--ink-inverse)}.teacher-invite .teacher-share-card p{color:var(--border-amber)}@media (width<=768px){.panel-title-row.teacher-section-title{flex-flow:wrap;justify-content:space-between;gap:.5rem .75rem;align-items:center!important}}.teacher-assignment-grid .teacher-assignment-card>div{flex-flow:wrap;align-items:center}.teacher-class-select{margin:0 0 .5rem}.teacher-class-select select{width:100%}.teacher-manage-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.teacher-class-manage{margin:-.4rem 0 1rem}.teacher-class-manage.is-end{border-top:1px solid var(--border);margin:1.4rem 0 0;padding-top:.9rem}.teacher-manage-actions .ui-button.teacher-danger{color:var(--danger-strong)}.teacher-rename{gap:.5rem;margin:0 0 1rem;display:grid}.teacher-rename .field{margin:0}.teacher-form-heading{margin:0 0 .6rem}.teacher-completion-rule{font-size:var(--text-sm);margin:.6rem 0 0}.teacher-archived{margin-top:.9rem}.teacher-archived summary{cursor:pointer;color:var(--ink-faint);padding:.3rem 0;font-weight:800}.teacher-archived ul{gap:.35rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.teacher-archived li{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.5rem;padding:.2rem .3rem .2rem .8rem;display:flex}.teacher-archived li span{overflow-wrap:anywhere;font-weight:800}.teacher-drawer-body .teacher-manage-actions{border-top:1px solid var(--border);padding-top:.9rem}.space-switch{gap:.4rem;margin-top:.4rem;display:grid}.space-switch-label{font-weight:800;font-size:var(--text-md)}.space-switch-options{flex-wrap:wrap;gap:.45rem;display:flex}.space-switch small{color:var(--ink-faint);line-height:1.4}.join-visibility-notice{border:1px solid var(--border-amber);border-radius:var(--radius-md);color:var(--ink-soft);font-size:var(--text-sm);margin:1rem 0;padding:.75rem 1rem;line-height:1.65}.conversation-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:1rem;display:grid}.conversation-layout.chat-only{grid-template-columns:unset!important;flex-direction:column!important;display:flex!important}.composer{position:sticky;top:88px}.bubble{border-radius:var(--radius-lg);max-width:82%;margin:.7rem 0;padding:.9rem 1rem}.bubble.learner{background:var(--ink);color:var(--ink-inverse);border-bottom-right-radius:8px;margin-left:auto}.bubble.tutor{background:var(--surface-cream);border:1px solid var(--border-amber);border-bottom-left-radius:8px}.bubble small{opacity:.75;margin-top:.4rem;display:block}.bubble audio{width:100%;margin-top:.55rem}.bubble.streaming{border-color:var(--color-primary)}.bubble .cursor{opacity:.6;font-weight:200;animation:.6s step-end infinite blink}@keyframes blink{50%{opacity:0}}.grammar-tip{border-radius:var(--radius-sm);background:#fbbf241f;border:1px solid #fbbf244d;margin-top:.55rem;overflow:hidden}.grammar-tip-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:.45rem .7rem;transition:background .15s;display:flex}.grammar-tip-header:hover{background:#fbbf241a}.grammar-tip-label{font-size:var(--text-xs);color:var(--warning-strong);font-weight:700}.bubble.learner .grammar-tip-label{color:var(--warning-bright)}.grammar-tip-chevron{font-size:var(--text-2xs);color:var(--warning-strong)}.bubble.learner .grammar-tip-chevron{color:var(--warning-bright)}.grammar-tip-body{border-top:1px solid #fbbf2433;padding:.35rem .7rem .55rem}.grammar-tip-item{padding:.35rem 0}.grammar-tip-item+.grammar-tip-item{border-top:1px solid #fbbf2426;margin-top:.25rem;padding-top:.45rem}.grammar-tip-correction{font-size:var(--text-sm);line-height:1.5}.grammar-tip-original{opacity:.6;text-decoration:line-through}.grammar-tip-original:is(:lang(ja),:lang(ko)){opacity:1;border-radius:var(--radius-2xs);background:#fbbf244d;padding:0 .15em;text-decoration:none}.grammar-tip-arrow{opacity:.5;margin:0 .15rem}.grammar-tip-correction strong{color:var(--success)}.bubble.learner .grammar-tip-correction strong{color:var(--success-bright)}.grammar-tip-explanation{font-size:var(--text-xs);margin-top:.25rem;line-height:1.5}.grammar-tip-note{display:block}.grammar-tip-rule{font-size:var(--text-2xs);opacity:.8;color:var(--color-brand-gold);margin-top:.1rem;display:block}.bubble.learner .grammar-tip-rule{color:var(--warning-border-strong)}.grammar-tip-saved{color:var(--warning);font-size:var(--text-2xs);margin-top:.45rem;font-weight:800;display:block}.bubble.learner .grammar-tip-saved{color:var(--warning-border-strong)}a.grammar-tip-saved{text-underline-offset:2px;text-decoration:underline}.grammar-lesson-progress{border-radius:var(--radius-sm);color:var(--info-deep);background:#dbeafeb3;border:1px solid #3b82f647;gap:.42rem;margin-top:.55rem;padding:.65rem .75rem;display:grid}.grammar-lesson-progress.accepted{color:var(--success-strong);background:#dcfce7b8;border-color:#16a34a47}.grammar-lesson-progress.retry{color:var(--warning);background:#fef3c7b8;border-color:#fbbf245c}.grammar-lesson-progress.completed{color:var(--accent-deep);background:#ede9fec7;border-color:#7c3aed4d}.bubble.learner .grammar-lesson-progress{color:var(--surface-subtle);background:#ffffff1a;border-color:#fff3}.grammar-lesson-progress-topline,.grammar-lesson-progress-meta{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.grammar-lesson-progress-topline strong{font-size:var(--text-sm)}.grammar-lesson-progress-topline span,.grammar-lesson-progress-meta,.grammar-lesson-progress small{font-size:var(--text-2xs);opacity:.82;font-weight:750}.grammar-lesson-progress-meter{border-radius:var(--radius-pill);background:#0f172a1f;height:.42rem;overflow:hidden}.bubble.learner .grammar-lesson-progress-meter{background:#ffffff29}.grammar-lesson-progress-meter i{border-radius:inherit;background:currentColor;height:100%;transition:width .18s;display:block}.grammar-lesson-progress small{line-height:1.45}.bubble-actions{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.replay-btn{color:var(--color-brand-ink);border-radius:var(--radius-pill);font-size:var(--text-xs);cursor:pointer;background:#f973161f;border:1px solid #f9731640;align-items:center;gap:.3rem;padding:.3rem .7rem;font-weight:700;transition:background .15s;display:inline-flex}.replay-btn:hover{background:#f9731638}.replay-btn svg{flex-shrink:0}.translation-toggle{color:var(--ink-faint);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);cursor:pointer;background:0 0;padding:.3rem .7rem;font-weight:700;transition:all .15s}.translation-toggle:hover{color:var(--ink-soft);border-color:var(--border-strong);background:#00000008}.translation-text{font-size:var(--text-sm);color:var(--ink-muted);border-top:1px solid #94a3b840;margin-top:.45rem;padding-top:.45rem;line-height:1.55}.transcript{scroll-behavior:smooth;min-height:70vh;max-height:80vh;overflow-y:auto}.summary{background:var(--surface-subtle);border-radius:var(--radius-lg);width:100%;margin-top:1rem;padding:1.2rem}.rating{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.8rem;display:flex}.rating button.rating-emoji{min-width:44px;min-height:44px;font-size:var(--text-xl);background:0 0;border:0;padding:2px;transition:transform .1s}.rating button.rating-emoji:hover{background:0 0;transform:scale(1.2)}.drill-page{align-content:start;gap:1rem;max-width:880px;min-height:calc(100vh - 140px);margin:0 auto;display:grid}.drill-source-sentence{color:var(--color-brand-deepest);font-size:var(--text-lg);white-space:pre-wrap;line-height:1.7;display:block}.drill-source-sentence mark{border-radius:var(--radius-xs);background:var(--border-amber);color:var(--color-brand-ink);padding:.1rem .25rem;text-decoration:line-through;text-decoration-thickness:.12em}.drill-source-sentence mark.is-correction{background:var(--success-border);color:var(--success-strong);text-decoration:none}.drill-source-sentence:is(:lang(ja),:lang(ko)) mark,.drill-original-strike:is(:lang(ja),:lang(ko)){text-decoration:none}.drill-original-strike:is(:lang(ja),:lang(ko)){opacity:1;border-radius:var(--radius-xs);background:var(--border-amber);padding:.05rem .2rem}.drill-source-translation{color:var(--ink-muted);font-size:var(--text-md);margin:.55rem 0 0;line-height:1.45}.drill-topbar{color:var(--ink-faint);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:1rem;display:flex}.drill-topbar-meta{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.drill-topbar-meta span,.drill-retry-pill{border-radius:var(--radius-pill);background:var(--surface-subtle);color:var(--ink-muted);border:1px solid var(--border);font-weight:800;font-size:var(--text-xs);align-items:center;padding:.25rem .55rem;display:inline-flex}.drill-card{border-radius:var(--radius-xl);background:#fffffff0;border:1px solid #94a3b838;gap:1rem;padding:1.3rem;display:grid;box-shadow:0 24px 60px #0f172a1a}.drill-empty,.drill-complete{text-align:center;justify-items:center;padding:2rem}.drill-progress-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.drill-progress-row h1,.drill-complete h1,.drill-empty h1{color:var(--ink-strong);font-size:var(--text-heading);letter-spacing:-.04em;margin:.15rem 0 0}.drill-progress-row>span{color:var(--ink-faint);white-space:nowrap;font-weight:900}.drill-progress-track{border-radius:var(--radius-pill);background:var(--border);height:10px;overflow:hidden}.drill-progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--color-primary), var(--ink-strong));height:100%;transition:width .2s;display:block}.drill-prompt{border-radius:var(--radius-lg);background:var(--surface-cream);border:1px solid var(--border-amber);color:var(--color-brand-deep);gap:.35rem;padding:1.2rem;display:grid}.drill-prompt span,.drill-answer-card span{text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-2xs);opacity:.7;font-weight:900}.drill-prompt strong{color:var(--ink-strong);letter-spacing:-.05em;font-size:clamp(1.8rem,6vw,3.4rem);line-height:1.08}.drill-prompt .drill-source-sentence,.drill-prompt .drill-original-strike,.drill-answer-card .drill-source-sentence{color:var(--ink-strong);letter-spacing:normal;font-size:clamp(1.05rem,3.8vw,1.55rem);line-height:1.55}.drill-corrected-sentence{gap:.25rem;display:grid}.drill-study-card{gap:1.1rem}.drill-study-body{color:var(--ink-faint);margin:0;line-height:1.55}.drill-study-list{gap:.75rem;max-height:min(58vh,620px);padding-right:.2rem;display:grid;overflow-y:auto}.drill-study-item{border-radius:var(--radius-md);background:var(--surface-subtle);border:1px solid var(--border);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:.8rem 1rem;padding:.95rem;display:grid}.drill-study-word,.drill-study-meaning{gap:.25rem;display:grid}.drill-study-word strong{color:var(--ink-strong);font-size:var(--text-heading);line-height:1.15}.drill-study-word span,.drill-study-meaning span,.drill-study-meaning small{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.drill-study-meaning>span{text-transform:uppercase;letter-spacing:.08em}.drill-study-meaning strong{color:var(--color-brand-deep);font-size:var(--text-lg);line-height:1.3}.drill-study-item p{color:var(--ink-muted);grid-column:1/-1;margin:0;line-height:1.45}.drill-study-single,.drill-sentence-step{gap:.85rem;display:grid}.drill-study-single>p:not(.eyebrow){color:var(--ink-faint);margin:0;line-height:1.5}.drill-prompt small{color:var(--warning);font-weight:700}.drill-prompt.listening{text-align:center;background:var(--info-surface);border-color:var(--info-border);color:var(--info-strong);place-items:center}.drill-audio-btn{font-size:var(--text-lg);border-radius:var(--radius-md);background:var(--info-bright);color:var(--ink-inverse);padding:.9rem 1.4rem}.drill-audio-btn:hover{background:var(--info-strong)}.drill-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.drill-options button{background:var(--surface-subtle);color:var(--ink);border:1px solid var(--button-neutral-hover);border-radius:var(--radius-md);min-height:68px;font-size:var(--text-base);text-align:left;padding:.9rem 1rem;font-weight:850;box-shadow:0 6px 16px #0f172a0a}.drill-options button:hover:not(:disabled){border-color:var(--color-primary);background:var(--surface-cream)}.drill-options button.selected{border-color:var(--state-selected);background:var(--surface-subtle);box-shadow:inset 0 0 0 1px var(--state-selected)}.drill-options button.correct{border-color:var(--success-border-strong);background:var(--success-soft);color:var(--success-strong)}.drill-options button.wrong{border-color:var(--danger-border-strong);background:var(--danger-soft);color:var(--danger-deep)}.drill-typing{align-items:stretch;gap:.7rem;display:flex}.drill-typing input{border:2px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-xl);outline:none;flex:1;padding:.85rem 1rem;font-weight:700}.drill-typing input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #f973161f}.drill-textarea{border:2px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-card);width:100%;color:var(--ink);font:inherit;font-size:var(--text-lg);resize:vertical;outline:none;padding:.85rem 1rem;font-weight:700}.drill-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #f973161f}.drill-reveal{justify-items:center;gap:1rem;display:grid}.drill-answer-card{border-radius:var(--radius-md);background:var(--surface-subtle);border:1px solid var(--border);gap:.35rem;width:100%;padding:1rem;display:grid}.drill-answer-card strong{color:var(--ink-strong);font-size:var(--text-3xl);line-height:1.2}.drill-answer-card small{color:var(--ink-faint);line-height:1.45}.meaning-reading{font-size:var(--text-xs);letter-spacing:.02em;font-weight:850;color:var(--accent)!important}.drill-grade-buttons,.drill-actions-row{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.drill-feedback{border-radius:var(--radius-md);border:1px solid #0000;gap:.25rem;padding:.85rem 1rem;display:grid}.drill-feedback.correct{background:var(--success-surface);border-color:var(--success-border-strong);color:var(--success-strong)}.drill-feedback.wrong{background:var(--danger-surface);border-color:var(--danger-border);color:var(--danger-deep)}.drill-feedback p{margin:0;line-height:1.45}.drill-footer-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.drill-footer-row>div{color:var(--ink-faint);font-size:var(--text-xs);flex-wrap:wrap;gap:.45rem;font-weight:800;display:flex}.drill-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;width:100%;display:grid}.drill-summary-grid div{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);gap:.2rem;padding:.85rem;display:grid}.drill-summary-grid span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.drill-summary-grid strong{color:var(--ink-strong);font-size:var(--text-4xl);line-height:1}.bubble-text{margin:0}.typing-dots{align-items:center;gap:4px;padding:.2rem 0;display:inline-flex}.typing-dots i{background:var(--color-primary);opacity:.5;border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite typing-bounce}.typing-dots i:nth-child(2){animation-delay:.18s}.typing-dots i:nth-child(3){animation-delay:.36s}@keyframes typing-bounce{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.typing-dots i{animation:none}}.bubble.failed{border-color:var(--danger-border);background:var(--danger-surface)}.bubble-failed-row{font-size:var(--text-sm);color:var(--danger-strong);justify-content:space-between;align-items:center;gap:.6rem;font-weight:700;display:flex}.bubble-retry-btn{font-size:var(--text-xs);background:var(--danger);color:var(--ink-inverse);padding:.3rem .8rem}.bubble-retry-btn:hover{background:var(--danger-strong)}.translation-text{border-top:1px dashed var(--border-amber);font-size:var(--text-sm);margin:.4rem 0 0;padding-top:.4rem}.jump-to-latest{z-index:5;border:1px solid var(--border-strong);background:var(--surface-card);width:fit-content;color:var(--ink);font-size:var(--text-sm);box-shadow:var(--shadow-pop);margin:0 auto;padding:.45rem .95rem;display:flex;position:sticky;bottom:.6rem}.jump-to-latest:hover{background:var(--surface-cream)}.summary{animation:.3s summary-in}@keyframes summary-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.summary{animation:none}}.summary-next-actions{border-top:1px solid var(--warning-border);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.9rem;padding-top:.8rem;display:flex}.summary-correction-original{color:var(--danger);text-decoration:line-through}.summary-correction-original:is(:lang(ja),:lang(ko)){border-radius:var(--radius-2xs);background:var(--danger-soft);padding:0 .15em;text-decoration:none}.summary-correction-fix{color:var(--success)}.summary-saved-line{border-top:1px solid var(--warning-border);color:var(--warning);font-size:var(--text-sm);margin:.9rem 0 0;padding-top:.7rem;font-weight:700;line-height:1.5}.summary-saved-line+.summary-next-actions{border-top:0;margin-top:.6rem;padding-top:0}.summary-unavailable{background:var(--warning-surface);border:1px solid var(--warning-soft);border-radius:var(--radius-md)}.summary-unavailable>:first-child{border-top:0;margin-top:0;padding-top:0}@media (width<=640px){.summary-next-actions>*{flex:100%}}.grammar-tip-header:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.chat-header-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.drill-type-breakdown{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;margin-top:.8rem;display:flex}.drill-type-breakdown>span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.drill-type-breakdown small{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--ink-muted);padding:.25rem .6rem;font-weight:800}.drill-complete .tanu-container{margin:0 auto .6rem}.drill-typing{gap:.6rem;display:grid}.drill-textarea{border:2px solid var(--border-strong);border-radius:var(--radius-md);width:100%;font-size:var(--text-base);resize:vertical;padding:.85rem 1rem;font-family:inherit;font-weight:700}.drill-original-strike{opacity:.72;text-decoration:line-through}.drill-context-fallback{flex-wrap:wrap;align-items:center;gap:.45rem;margin:.25rem 0;display:flex}.drill-context-fallback strong{color:var(--ink);text-decoration:none}.drill-context-fallback small{border:1px solid var(--info-border);border-radius:var(--radius-pill);background:var(--info-surface);color:var(--info-strong);padding:.18rem .55rem;font-weight:850}.drill-mastery-meta{color:var(--ink-faint);margin-top:.3rem;font-weight:700;display:block}.drill-progress-row h1.eyebrow{font-size:var(--text-xs);letter-spacing:.16em;color:var(--color-brand-gold);margin:0}.drill-pattern-tag{border:1px solid var(--info-border);border-radius:var(--radius-pill);background:var(--info-surface);color:var(--info-strong);font-size:var(--text-sm);margin-top:.4rem;padding:.2rem .65rem;font-weight:850;display:inline-flex}.drill-shortcut-hint{opacity:.7;margin-left:.35rem;font-weight:600}@media (hover:none),(pointer:coarse){.drill-shortcut-hint{display:none}}.drill-diff-note{color:var(--warning);margin-top:.25rem;font-weight:700;display:block}.drill-diff-note.is-match{color:var(--success-strong)}.drill-answer-card mark{background:var(--warning-border);border-radius:var(--radius-2xs);padding:0 2px}.articles-page{gap:1rem;width:100%;min-width:0;max-width:760px;margin-inline:auto;display:grid}.articles-page .ui-page-header{margin-bottom:0}.articles-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.articles-toolbar__views,.articles-toolbar__actions{flex-wrap:wrap;gap:.5rem;display:flex}.articles-fetching{align-items:center;gap:.4rem;margin:0;display:flex}.articles-section{gap:.8rem;min-width:0;display:grid}.articles-section .articles-section__title{color:var(--ink);font-size:var(--text-lg);align-items:center;gap:.45rem;margin:0;font-weight:900;display:flex}.articles-section__title .count{color:var(--ink-disabled);font-weight:600;font-size:var(--text-md)}.articles-section__lead{color:var(--ink-muted);font-size:var(--text-sm);margin:-.4rem 0 0}.articles-recommended .articles-section__title{color:var(--color-brand-ink)}.article-card{gap:.55rem;min-width:0;margin:0;display:grid}.article-card-img{object-fit:cover;border-radius:var(--radius-md);width:100%;max-height:200px}.article-card .article-card__title{font-size:var(--text-lg);overflow-wrap:anywhere;margin:0;line-height:1.4}.article-card__title a{color:var(--ink);text-decoration:none}.article-card__title a:hover{color:var(--color-brand-ink);text-decoration:underline}.article-card__title a:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-2xs)}.article-card__summary{color:var(--ink-soft);font-size:var(--text-md);margin:0;line-height:1.6}.article-card__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.article-card .status-line{margin:0}.article-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.article-meta__time{color:var(--ink-faint);font-size:var(--text-xs);font-weight:600}.articles-homework{border-radius:var(--radius-lg);background:var(--surface-cream);border:1px solid var(--border-amber);padding:.9rem 1rem}.articles-homework h2{font-size:var(--text-base);color:var(--color-brand-ink);align-items:center;gap:.45rem;margin:0 0 .6rem;display:flex}.articles-homework ul{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.articles-homework li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.articles-homework li>div{gap:.15rem;min-width:0;display:grid}.articles-homework li>.articles-homework__actions{flex-wrap:wrap;gap:.4rem;display:flex}.articles-homework small{color:var(--ink-soft)}.article-reader .ui-page-header .ui-page-header__title{font-size:var(--text-heading);overflow-wrap:anywhere}.article-reader__summary{border-radius:var(--radius-md);background:var(--surface-card);border:1px solid var(--border);gap:.4rem;padding:.9rem 1rem;display:grid}.article-reader__summary p{color:var(--ink);font-size:var(--text-base);margin:0;line-height:1.65}.article-reader__summary .article-reader__translation{color:var(--ink-muted);font-size:var(--text-md)}.article-reader__toggle{min-height:44px;color:var(--color-brand-ink);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0 .2rem;font-weight:800}.article-reader__toggle:hover{color:var(--color-brand-deep);background:0 0;text-decoration:underline}.article-reader__toggle:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-2xs)}.article-reader__homework{align-items:center;gap:.35rem;margin:0;display:flex}.article-reader__cta{gap:.4rem;display:grid}.article-reader__cta .status-line{margin:0}.article-reader__section{gap:.6rem;min-width:0;display:grid}.article-reader__section h2{color:var(--ink);font-size:var(--text-lg);margin:0;font-weight:900}.article-reader__text{border-radius:var(--radius-md);background:var(--surface-card);border:1px solid var(--border);gap:.75rem;padding:1rem;display:grid}.article-reader__text p{color:var(--ink);font-size:var(--text-base);overflow-wrap:anywhere;margin:0;line-height:1.75}.article-reader__links{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.article-words{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin:0;padding:0;list-style:none;overflow:hidden}.article-words>li{grid-template-columns:minmax(0,1fr) auto;gap:.2rem .6rem;padding:.7rem .9rem;display:grid}.article-words>li+li{border-top:1px solid var(--border)}.article-words__front{overflow-wrap:anywhere}.article-words__front small{color:var(--ink-faint);font-weight:600}.article-words__back{color:var(--ink-muted);font-size:var(--text-md);overflow-wrap:anywhere;grid-column:1}.article-words__example{color:var(--ink-faint);font-size:var(--text-sm);overflow-wrap:anywhere;grid-column:1;font-style:italic}.article-words__kept{color:var(--success-strong);font-size:var(--text-xs);grid-area:1/2;align-self:start;font-weight:800}.article-questions{color:var(--ink-soft);gap:.4rem;margin:0;padding-left:1.2rem;line-height:1.55;display:grid}.article-sheet-backdrop{z-index:calc(var(--z-dialog) - 1);background:#0f172a6b;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.article-sheet{background:var(--surface-card);border-radius:var(--radius-lg);width:min(520px,100%);max-height:min(85dvh,760px);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;overflow:hidden}.article-sheet__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .55rem .55rem 1rem;display:flex}.article-sheet__header h2{font-size:var(--text-lg);color:var(--ink);margin:0}.article-sheet .article-sheet__close{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--ink);box-shadow:none;background:0 0;padding:0}.article-sheet .article-sheet__close:hover{background:var(--surface-cream)}.article-sheet__body{overscroll-behavior:contain;flex:auto;align-content:start;gap:.9rem;min-height:0;padding:.9rem 1rem 1rem;display:grid;overflow-y:auto}.article-sheet__footer{padding:.7rem 1rem calc(.7rem + var(--safe-bottom));border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.article-field{border:0;gap:.4rem;min-width:0;margin:0;padding:0;display:grid}.article-field>label,.article-field>legend{color:var(--ink);font-size:var(--text-sm);padding:0;font-weight:800}.article-field>legend{margin-bottom:.4rem}.article-field textarea{min-height:140px}.article-chips{flex-wrap:wrap;gap:.4rem;display:flex}.article-note{border-radius:var(--radius-pill);background:var(--surface-peach);color:var(--color-brand-ink);font-size:var(--text-xs);justify-self:start;margin:0;padding:.35rem .75rem;font-weight:800}.article-dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-subtle);transition:border-color .15s,background .15s;position:relative}.article-dropzone.is-over,.article-dropzone:focus-within{border-color:var(--color-primary);background:var(--surface-cream)}.article-dropzone label{min-height:120px;color:var(--ink-faint);text-align:center;cursor:pointer;align-content:center;justify-items:center;gap:.4rem;padding:1.2rem 1rem;display:grid}.article-dropzone label span{gap:.15rem;display:grid}.article-dropzone label strong{color:var(--ink);font-size:var(--text-md);overflow-wrap:anywhere}.article-dropzone label small{font-size:var(--text-xs)}.article-dropzone .article-dropzone__input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=640px){.article-sheet-backdrop{align-items:flex-end;padding:0}.article-sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%}.article-card__actions>.ui-button--primary,.article-card__actions>.ui-button--secondary{flex:auto}}.group-header{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:none;border-bottom:1px solid #cbd5e166;align-items:center;gap:.5rem;margin-top:.8rem;margin-bottom:.6rem;padding:.6rem .2rem;display:flex}.group-header:first-child{margin-top:0}.group-header h3{font-size:var(--text-md);flex:1;margin:0}.group-header .count{color:var(--ink-disabled);font-weight:400;font-size:var(--text-sm)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}@media (width<=980px){.page-grid,.conversation-layout{grid-template-columns:1fr}.panel.wide{grid-column:span 1}.teacher-class-hero,.teacher-share-card{flex-direction:column}.class-preview-meta,.teacher-student-row{grid-template-columns:repeat(2,minmax(0,1fr))}.composer{position:static}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem .75rem;display:grid}.brand{grid-area:1/1}.topbar-actions{grid-area:1/2;justify-self:end;min-width:0}.nav-scroll-wrap{flex:none;grid-area:2/1/auto/-1;width:100%}.nav-scroll{padding-bottom:.05rem}.hero-mascot-illustration{width:min(100%,430px)}}@media (width<=640px){body{background-position:top;background-attachment:scroll}main{padding:.75rem}.hero-card,.panel{border-radius:var(--radius-lg)}.stat-grid,.local-launcher-grid,.teacher-summary-grid,.teacher-analytics-stats,.teacher-form-row,.teacher-form-row.three,.join-class-form,.class-preview-meta,.teacher-student-row{grid-template-columns:1fr}.panel-title-row{flex-direction:column;align-items:flex-start}.teacher-class-hero,.teacher-share-card{border-radius:var(--radius-lg)}.join-code-card{width:100%}.bubble{max-width:100%}.deck-actions,.manual-form-actions,.manual-deck-header-actions{flex-direction:column;align-items:stretch;width:100%}.deck-actions button,.manual-form-actions button,.manual-deck-header-actions button{width:100%}.manual-deck-header,.manual-card-form-heading,.manual-card-row{flex-direction:column}.manual-card-grid{grid-template-columns:1fr}.drill-page{min-height:calc(100vh - 100px)}.drill-card{border-radius:var(--radius-lg);padding:1rem}.drill-topbar,.drill-progress-row,.drill-footer-row{flex-direction:column;align-items:stretch}.drill-options{grid-template-columns:1fr}.drill-typing{flex-direction:column}.drill-study-list{max-height:none;padding-right:0}.drill-study-item{grid-template-columns:1fr}.drill-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{gap:.45rem .55rem;padding:.55rem .75rem .5rem}.brand{font-size:var(--text-lg)}.nav-scroll{gap:.25rem}.nav-scroll a{font-size:var(--text-xs);padding:.42rem .62rem}.topbar-actions{flex-wrap:nowrap;justify-content:flex-end;gap:.35rem}.direction-switcher{padding-left:.22rem}.direction-switcher span{display:none}.direction-switcher select{min-width:72px;font-size:var(--text-xs);padding:.42rem 1.35rem .42rem .5rem}.topbar-actions .install-button{font-size:var(--text-xs);padding:.42rem .58rem}.topbar-icon-link{width:36px;height:36px}.topbar-actions button.ghost{font-size:var(--text-xs);padding:.48rem .65rem}.topbar-login-link{font-size:var(--text-xs);padding:.3rem .15rem}}:root{--z-bar:10;--z-floating:20;--z-nav:30;--z-notice:40;--z-coach:60;--z-celebration:80;--z-dialog:100}.offline-pill{z-index:var(--z-floating)}.install-help{z-index:var(--z-notice)}.suggestion-fab{z-index:var(--z-floating);border-radius:var(--radius-pill);border:1px solid var(--border-strong);min-height:40px;color:var(--ink-soft);font-size:var(--text-sm);cursor:pointer;background:#fffffff2;align-items:center;gap:.35rem;padding:.45rem .85rem .45rem .7rem;font-weight:800;transition:background .15s,box-shadow .15s;display:inline-flex;position:fixed;bottom:4.2rem;right:1rem;box-shadow:0 6px 18px #0f172a1f}.suggestion-fab:hover{background:var(--surface-cream);color:var(--ink);box-shadow:0 8px 22px #0f172a29}.suggestion-fab:active{transform:scale(.97)}.suggestion-overlay{z-index:var(--z-dialog);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a73;justify-content:center;align-items:center;padding:1rem;animation:.2s suggestion-fade-in;display:flex;position:fixed;inset:0}@keyframes suggestion-fade-in{0%{opacity:0}to{opacity:1}}.suggestion-modal{background:var(--surface-card);border-radius:var(--radius-xl);width:100%;max-width:480px;padding:2rem;animation:.25s suggestion-slide-up;position:relative;box-shadow:0 32px 80px #0f172a33}@keyframes suggestion-slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.suggestion-header h2{font-size:var(--text-2xl);letter-spacing:-.03em;margin:0 0 .25rem}.suggestion-close{border-radius:var(--radius-pill);width:36px;height:36px;color:var(--ink-muted);background:0 0;padding:0;position:absolute;top:.75rem;right:.75rem}.suggestion-close:hover{background:var(--surface-subtle);color:var(--ink)}.suggestion-close~.suggestion-header h2{padding-right:2.25rem}.suggestion-close~.suggestion-thanks h2{padding-inline:2.25rem}.suggestion-subtitle{color:var(--ink-faint);font-size:var(--text-md);margin:0 0 1rem}.suggestion-label{font-weight:800;font-size:var(--text-md);margin:0 0 .6rem}.suggestion-categories{flex-wrap:wrap;gap:.45rem;margin-bottom:1rem;display:flex}.suggestion-chip{background:var(--surface-muted);color:var(--ink-soft);border-radius:var(--radius-pill);font-size:var(--text-sm);cursor:pointer;border:2px solid #0000;align-items:center;gap:.4rem;padding:.55rem 1rem;font-weight:700;transition:all .15s;display:inline-flex}.suggestion-chip:hover{background:var(--border)}.suggestion-chip.active,.suggestion-chip.active:hover{background:var(--state-selected);border-color:var(--state-selected);color:var(--state-selected-ink)}.suggestion-modal textarea{border-radius:var(--radius-md);min-height:100px;margin-bottom:.8rem}.suggestion-contact{font-size:var(--text-md);color:var(--ink-muted);cursor:pointer;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.suggestion-contact input[type=checkbox]{width:auto;accent-color:var(--color-primary)}.suggestion-actions{justify-content:flex-end;gap:.5rem;display:flex}.upload-rights-modal{gap:1rem;display:grid}.upload-rights-header{color:var(--color-brand-ink);align-items:center;gap:.75rem;display:flex}.upload-rights-header h2{color:var(--ink);font-size:var(--text-2xl);letter-spacing:-.03em;margin:.15rem 0 0}.upload-rights-copy{color:var(--ink-muted);margin:0;line-height:1.6}.upload-rights-file{border-radius:var(--radius-md);background:var(--surface-cream);border:1px solid var(--border-amber);justify-content:space-between;align-items:center;gap:.8rem;padding:.85rem 1rem;display:flex}.upload-rights-file span{color:var(--color-brand-ink);font-size:var(--text-sm);flex-shrink:0;font-weight:800}.upload-rights-check{color:var(--ink-soft);cursor:pointer;align-items:flex-start;gap:.65rem;font-weight:800;line-height:1.45;display:flex}.upload-rights-check input[type=checkbox]{width:auto;accent-color:var(--color-primary);flex-shrink:0;margin-top:.2rem}.suggestion-thanks{text-align:center;padding:1rem 0}.suggestion-thanks-icon{font-size:var(--text-6xl);margin-bottom:.5rem}.suggestion-thanks h2{font-size:var(--text-2xl);margin:0 0 .6rem}.suggestion-thanks p{color:var(--ink-muted);margin:0 0 .8rem;line-height:1.6}.suggestion-counter{background:var(--success-surface);border-radius:var(--radius-pill);font-size:var(--text-md);color:var(--success-strong);padding:.4rem 1rem;display:inline-block}.suggestion-counter strong{color:var(--success-ink)}.celebration-backdrop{z-index:var(--z-celebration);background:#0f172a61;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.celebration-card{background:linear-gradient(135deg, var(--surface-cream), var(--surface-card));border:1px solid var(--border-amber);border-radius:var(--radius-xl);text-align:center;width:min(420px,100%);padding:1.4rem;animation:.32s cubic-bezier(.34,1.45,.64,1) celebration-pop;box-shadow:0 24px 80px #0f172a3d}@keyframes celebration-pop{0%{opacity:0;transform:scale(.88)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.celebration-card{animation:none}}.celebration-card h2{text-wrap:balance;line-break:strict;word-break:auto-phrase;margin-top:0}.celebration-card h2:lang(ko){word-break:keep-all}.celebration-eyebrow{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;display:flex}.celebration-eyebrow .link-button{font-size:var(--text-xs);font-weight:900}.celebration-card p:not(.eyebrow){color:var(--color-brand-deep)}.celebration-card .celebration-explainer{border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--ink-muted);font-size:var(--text-sm);margin-top:.2rem;padding:.7rem .8rem}.celebration-share{justify-items:center;gap:.5rem;margin-top:.9rem;display:grid}.celebration-share-preview{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-amber);background:var(--surface-cream);width:min(180px,60%);box-shadow:0 8px 24px #0f172a29}.celebration-share-note{font-size:var(--text-sm);color:var(--ink-muted);margin:0}.celebration-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.8rem;display:flex}.celebration-mark{border-radius:var(--radius-pill);background:var(--surface-peach);width:76px;height:76px;color:var(--color-primary-strong);font-size:var(--text-5xl);place-items:center;margin:0 auto .8rem;font-weight:900;display:grid}@media (width<=640px){.suggestion-modal{border-radius:var(--radius-lg);padding:1.4rem}.suggestion-fab{right:.75rem}}.walkthrough-overlay{z-index:var(--z-coach);pointer-events:none;background:linear-gradient(135deg,#0000 55%,#f9731614);justify-content:flex-end;align-items:flex-end;padding:1rem;animation:.2s suggestion-fade-in;display:flex;position:fixed;inset:0}.walkthrough-overlay-targeted{background:radial-gradient(circle at 50% 35%,#fff7ed2e,#0000 34%),linear-gradient(135deg,#0f172a0d,#f973161f)}.walkthrough-target-highlight{z-index:1;border:3px solid var(--color-primary);border-radius:var(--radius-lg);pointer-events:none;transition:left .18s,top .18s,width .18s,height .18s;position:fixed;box-shadow:0 0 0 9999px #0f172a29,0 0 0 8px #f9731624,0 22px 48px #9a341238}.walkthrough-arrow{z-index:2;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0;overflow:visible}.walkthrough-arrow line{stroke:var(--color-primary);stroke-width:4px;stroke-linecap:round;stroke-dasharray:9 7;filter:drop-shadow(0 3px 3px #7c2d1252)}.walkthrough-arrow marker path{fill:var(--color-primary)}.walkthrough-card{z-index:3;width:min(420px,100%);max-height:min(90vh, calc(100dvh - 2rem - var(--safe-bottom)));border-radius:var(--radius-xl);pointer-events:auto;background:radial-gradient(circle at 100% 0,#fed7aa8f,#0000 35%),#fffffff5;border:1px solid #fb923c57;gap:1rem;padding:clamp(1.2rem,3vw,2rem);animation:.25s suggestion-slide-up;display:grid;position:relative;overflow-y:auto;box-shadow:0 34px 90px #0f172a42}.walkthrough-card-targeted{max-height:min(86vh, calc(100dvh - 2rem - var(--safe-bottom)))}.walkthrough-close{background:var(--surface-subtle);width:38px;height:38px;color:var(--ink-muted);border:1px solid var(--border);font-size:var(--text-xl);border-radius:50%;padding:0;line-height:1;position:absolute;top:.8rem;right:.8rem}.walkthrough-close:hover{background:var(--border)}.walkthrough-header{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;padding-right:2.2rem;display:grid}.walkthrough-header .tanu-container{width:92px}.walkthrough-header .eyebrow{margin:0 0 .35rem}.walkthrough-header h2{color:var(--color-brand-deepest);font-size:var(--text-title);letter-spacing:-.055em;margin:0;line-height:1}.walkthrough-header p:not(.eyebrow){color:var(--ink-muted);margin:.6rem 0 0;font-weight:700;line-height:1.6}.walkthrough-feature-list{flex-wrap:wrap;gap:.5rem;display:flex}.walkthrough-feature-list span{border-radius:var(--radius-pill);background:var(--surface-cream);color:var(--color-brand-ink);border:1px solid var(--border-amber);font-size:var(--text-xs);padding:.42rem .68rem;font-weight:900;display:inline-flex}.walkthrough-progress{grid-template-columns:repeat(auto-fit,minmax(18px,1fr));gap:.35rem;display:grid}.walkthrough-progress span,.walkthrough-progress .walkthrough-dot{border-radius:var(--radius-pill);background:var(--border);cursor:pointer;border:0;height:7px;padding:0;overflow:hidden}.walkthrough-progress .walkthrough-dot:hover{background:var(--border-strong)}.walkthrough-progress span.active,.walkthrough-progress .walkthrough-dot.active{background:linear-gradient(90deg, var(--color-primary), var(--color-brand-gold))}.walkthrough-progress .walkthrough-dot:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.walkthrough-footer{justify-content:space-between;align-items:center;gap:1rem;padding-top:.2rem;display:flex}.walkthrough-footer>span{color:var(--warning);font-size:var(--text-sm);white-space:nowrap;font-weight:900}.walkthrough-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.walkthrough-actions button{padding:.62rem .9rem}.walkthrough-dismiss-hint{color:var(--ink-disabled);font-size:var(--text-xs);margin:-.2rem 0 0;line-height:1.45}@media (width<=640px){.walkthrough-overlay{padding:.65rem .65rem calc(.65rem + var(--safe-bottom));align-items:flex-end}.walkthrough-target-highlight{border-radius:var(--radius-md);border-width:2px;box-shadow:0 0 0 9999px #0f172a1f,0 0 0 5px #f9731629}.walkthrough-arrow line{stroke-width:3px;stroke-dasharray:7 6}.walkthrough-card{width:100%;max-height:calc(100dvh - 1.3rem - var(--safe-bottom));border-radius:var(--radius-lg);gap:.55rem;padding:.85rem}.walkthrough-card-targeted{max-height:min(56vh,380px)}.walkthrough-header{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;padding-right:2rem}.walkthrough-header .tanu-container{transform-origin:50%;width:50px;transform:scale(.58)}.walkthrough-header h2{font-size:var(--text-xl)}.walkthrough-header p:not(.eyebrow){font-size:var(--text-sm);margin-top:.35rem;line-height:1.35}.walkthrough-feature-list,.walkthrough-dismiss-hint{display:none}.walkthrough-progress span,.walkthrough-progress .walkthrough-dot{height:5px}.walkthrough-footer{flex-direction:column;align-items:stretch}.walkthrough-actions{width:100%}.walkthrough-actions button{flex:1}}@media (width<=430px){.walkthrough-actions{flex-direction:column-reverse}.walkthrough-actions button{width:100%}}.coach-mark-layer{background:0 0}.coach-mark-layer .walkthrough-target-highlight{box-shadow:0 0 0 9999px #0f172a1a,0 0 0 6px #f9731624}.coach-mark-card{z-index:3;border-radius:var(--radius-lg);border:1px solid var(--border-amber);background:var(--surface-card);pointer-events:auto;gap:.6rem;width:min(360px,100%);padding:.9rem 1rem 1rem;animation:.2s suggestion-slide-up;display:grid;position:relative;box-shadow:0 24px 60px #0f172a38}.walkthrough-close.coach-mark-close{width:44px;height:44px;top:.4rem;right:.4rem}.coach-mark-head{align-items:center;gap:.6rem;padding-right:2.8rem;display:flex}.coach-mark-head>span{flex:none}.coach-mark-card h2{color:var(--ink);font-size:var(--text-lg);margin:0;line-height:1.35}.coach-mark-body{color:var(--ink-soft);margin:0;font-weight:700;line-height:1.55}.coach-mark-lines{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.coach-mark-lines li{font-size:var(--text-md);grid-template-columns:5.6em minmax(0,1fr);align-items:baseline;gap:.6rem;line-height:1.45;display:grid}.coach-mark-lines strong{color:var(--ink)}.coach-mark-lines span{color:var(--ink-soft)}.coach-mark-actions{justify-content:flex-end;display:flex}@media (width<=640px){.coach-mark-card{width:100%}}.tanu-container{flex-direction:column;justify-content:center;align-items:center;transition:transform .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative}.tanu-container:hover{transform:scale(1.12)translateY(-4px)}.tanu-container:active{transform:scale(.92)translateY(2px)}@media (hover:none),(pointer:coarse){.tanu-container:hover{transform:none}}.tanu-image-frame{aspect-ratio:1;border-radius:var(--radius-xl);background:var(--surface-cream);transform-origin:bottom;border:3px solid #fffaf0e6;width:100%;animation:2s ease-in-out infinite tanu-breathe;overflow:hidden;box-shadow:0 14px 34px #43140729}.tanu-image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.tanu-state-listening{animation:1.2s ease-in-out infinite alternate tanu-alert-listen}.tanu-state-thinking,.tanu-state-correction{animation:1.65s ease-in-out infinite alternate tanu-curious-tilt}.tanu-state-cheer{animation:.5s ease-in-out infinite alternate tanu-bounce-joy}.tanu-state-error{animation:.15s linear infinite tanu-shiver}.tanu-bubble{background:var(--surface-card);border:2.5px solid var(--border-amber);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-brand-deep);text-align:center;letter-spacing:-.01em;max-width:250px;margin-bottom:.6rem;padding:.75rem 1.1rem;font-weight:800;line-height:1.5;animation:.45s cubic-bezier(.175,.885,.32,1.275) tanu-pop-bubble;position:relative;box-shadow:0 14px 40px #f973161f}.tanu-bubble:after{content:"";background:var(--surface-card);border-right:2.5px solid var(--border-amber);border-bottom:2.5px solid var(--border-amber);width:12px;height:12px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes tanu-breathe{0%,to{transform:scaleY(1)scaleX(1)}50%{transform:scaleY(.95)scaleX(1.02)translateY(1px)}}@keyframes tanu-bounce-joy{0%{transform:translateY(0)scaleY(.96)scaleX(1.03)}to{transform:translateY(-12px)scaleY(1.03)scaleX(.97)}}@keyframes tanu-shiver{0%,to{transform:translate(0)}25%{transform:translate(-1.5px)}75%{transform:translate(1.5px)}}@keyframes tanu-pop-bubble{0%{opacity:0;transform:scale(.4)translateY(20px)}70%{transform:scale(1.06)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes tanu-curious-tilt{0%{transform:rotate(-2deg)translateY(0)}to{transform:rotate(3deg)translateY(-1px)}}@keyframes tanu-alert-listen{0%{transform:rotate(-1deg)translateY(0)}to{transform:rotate(1deg)translateY(-3px)}}.site-footer{padding:2rem 1.25rem calc(1.5rem + var(--safe-bottom));border-top:1px solid var(--border-strong);text-align:center;font-size:var(--text-sm);background:#fff7edf5;flex-direction:column;align-items:center;gap:.75rem;margin-top:auto;display:flex}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:.5rem 1.25rem;display:flex}.site-footer a{color:var(--ink-muted);text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{color:var(--color-primary-strong);text-decoration:underline}.site-footer-meta{color:var(--ink-muted);margin:0}.site-footer-legal{color:var(--ink-muted);font-size:var(--text-xs);max-width:44rem;margin:0;line-height:1.5}@media (width<=640px){.site-footer{padding-bottom:calc(4.5rem + var(--safe-bottom))}}.legal-page{max-width:46rem;margin-inline:auto}.legal-page .legal-notice{border-radius:var(--radius-md);border:1px solid var(--border-amber);color:var(--ink-soft);padding:.85rem 1rem}.legal-section{margin-block:1.5rem}.legal-section h2{font-size:var(--text-lg);margin-bottom:.4rem}.legal-section p{color:var(--ink-soft);margin:0;line-height:1.75}.legal-links{border-top:1px solid var(--border-strong);color:var(--ink-faint);margin-top:2rem;padding-top:1rem}.consent-block{flex-direction:column;gap:.75rem;margin-block:.5rem;display:flex}.checkbox-row{font-size:var(--text-sm);color:var(--ink-soft);cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:.6rem;line-height:1.6;display:grid}.checkbox-row input[type=checkbox]{cursor:pointer;flex-shrink:0;width:1rem;height:1rem;margin-top:.28rem}.checkbox-row a{color:var(--color-primary)}.auth-optional{border-top:1px solid var(--border);padding-top:.25rem}.auth-optional summary{cursor:pointer;min-height:44px;color:var(--color-brand-ink);align-items:center;gap:.6rem;font-weight:800;list-style:none;display:flex}.auth-optional summary::-webkit-details-marker{display:none}.auth-optional summary:after{content:"";border-bottom:2px solid;border-right:2px solid;flex-shrink:0;width:.45rem;height:.45rem;margin-top:-.2rem;transform:rotate(45deg)}.auth-optional[open] summary:after{margin-top:.2rem;transform:rotate(-135deg)}.auth-optional-fields{gap:.9rem;padding-top:.4rem;display:grid}.auth-consent-text{font-size:var(--text-sm);color:var(--ink-soft);margin:.2rem 0 .6rem;line-height:1.6}.auth-consent-text a{color:var(--color-primary)}.settings-data-rights{border-top:1px solid var(--border-strong);margin-top:2.5rem;padding-top:1.5rem}.settings-data-rights h2{font-size:var(--text-lg);margin-bottom:.35rem}.settings-data-rights p{color:var(--ink-muted);font-size:var(--text-md);margin-bottom:1rem}.settings-data-actions{flex-wrap:wrap;gap:.75rem;display:flex}.settings-data-actions .danger{color:var(--warning);border-color:var(--warning)}.me-page [id],.settings-page [id],.class-preview-card{scroll-margin-top:7rem}.me-page .ui-page-header{margin-bottom:1.2rem}.me-page .me-progress{border:1px solid var(--border-amber);border-radius:var(--radius-lg);background:var(--surface-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1.2rem;padding:1rem 1.1rem;display:flex}.me-page .me-progress>div{flex:16rem;min-width:0}.me-page .me-progress h2{font-size:var(--text-lg);letter-spacing:-.02em;margin:0 0 .2rem}.me-page .me-progress p{color:var(--ink-muted);font-size:var(--text-md);margin:0;line-height:1.5}.me-page .me-section{border-top:1px solid var(--border);justify-items:start;gap:.75rem;margin-top:1.6rem;padding-top:1.3rem;display:grid}.me-page .me-section>*{max-width:100%}.me-page .me-section h2{font-size:var(--text-lg);letter-spacing:-.02em;margin:0}.me-page .me-section__help,.me-page .join-visibility-notice{color:var(--ink-muted);font-size:var(--text-md);margin:0;line-height:1.55}.me-page .me-class-list{gap:.75rem;width:100%;margin:0;padding:0;list-style:none;display:grid}.me-page .me-class{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);gap:.5rem;padding:.9rem 1rem;display:grid}.me-page .me-class h3{font-size:var(--text-lg);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0}.me-page .me-class__meta{color:var(--ink-faint);font-size:var(--text-sm);margin:0;font-weight:700}.me-page .me-class__homework h4{color:var(--ink-soft);font-size:var(--text-sm);margin:0 0 .35rem}.me-page .me-class__homework ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.me-page .me-class__homework-row{border-radius:var(--radius-sm);background:var(--surface-subtle);min-height:44px;color:var(--ink);border:1px solid #0000;justify-content:space-between;align-items:center;gap:.5rem .75rem;padding:.5rem .65rem;text-decoration:none;display:flex}.me-page a.me-class__homework-row:hover{border-color:var(--color-primary);background:var(--surface-cream)}.me-page a.me-class__homework-row:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.me-page .me-class__homework li.is-overdue .me-class__homework-row{border-color:var(--warning-border)}.me-page .me-class__homework li.is-done .me-class__homework-title{color:var(--ink-faint)}.me-page .me-class__overdue{border:1px solid var(--warning-border);border-radius:var(--radius-pill);background:var(--warning-surface);color:var(--warning-deep);padding:.05rem .45rem;font-weight:900}.me-page .me-class__homework-title{overflow-wrap:anywhere;min-width:0;font-weight:800}.me-page .me-class__homework-text{flex-wrap:wrap;flex:auto;justify-content:space-between;align-items:center;gap:.25rem .75rem;min-width:0;display:flex}.me-page .me-class__homework-meta{color:var(--ink-muted);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.45rem;font-weight:700;display:inline-flex}.me-page .me-class__homework-rule{color:var(--ink-muted);font-size:var(--text-sm);flex:100%;font-weight:700;line-height:1.45}.me-page .me-class__homework-chevron{color:var(--ink-faint);flex:none}.me-page .me-class__actions{justify-content:flex-end;display:flex}.me-page .me-class .muted-note{margin:0}.me-page .me-class__cap-note{color:var(--color-brand-ink);font-size:var(--text-sm);margin:.45rem 0 0;font-weight:800}.me-page .me-language{flex-wrap:wrap;gap:.5rem;display:flex}.me-page .me-profile-picker{width:100%;margin:0}.me-page .me-menu{border-top:1px solid var(--border);margin-top:1.6rem}.me-page .me-menu ul{margin:0;padding:0;list-style:none}.me-page .me-menu li+li{border-top:1px solid var(--border)}.me-page .me-menu__row{width:100%;min-height:56px;color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;border-radius:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .25rem;font-weight:400;display:flex}.me-page a.me-menu__row:hover,.me-page button.me-menu__row:hover:not(:disabled){background:var(--surface-cream)}.me-page .me-menu__row:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.me-page button.me-menu__row:active{transform:none}.me-page .me-menu__text{gap:.15rem;min-width:0;display:grid}.me-page .me-menu__text strong{font-size:var(--text-base);font-weight:800}.me-page .me-menu__text small{color:var(--ink-faint);font-size:var(--text-sm);text-wrap:pretty;font-weight:600;line-height:1.4}.me-page .me-menu__chevron{color:var(--ink-faint);flex-shrink:0}.me-page .me-legal{font-size:var(--text-sm);flex-wrap:wrap;gap:.35rem 1rem;margin-top:1.4rem;display:flex}.me-page .me-legal a{color:var(--ink-faint);text-underline-offset:.18em;text-decoration:underline}.me-page .me-legal a:hover{color:var(--color-brand-ink)}.teacher-mode-toggle{justify-items:start;gap:.45rem;display:grid}.teacher-mode-toggle__switch{min-height:44px;color:var(--ink);cursor:pointer;align-items:center;gap:.6rem;font-weight:800;display:flex}.teacher-mode-toggle__switch input{width:1.2rem;height:1.2rem;accent-color:var(--color-primary-strong);margin:0;padding:0}.teacher-mode-toggle__help{color:var(--ink-faint);font-size:var(--text-sm);margin:0;line-height:1.45}.teacher-mode-toggle__status{color:var(--success-strong);font-size:var(--text-sm);margin:0;font-weight:700}.teacher-mode-toggle__status:empty{display:none}.teacher-mode-toggle__status.is-error{color:var(--danger-strong)}.settings-page .ui-page-header{margin-bottom:.4rem}.settings-page .settings-section{border-top:1px solid var(--border);gap:.7rem;margin-top:1.6rem;padding-top:1.3rem;display:grid}.settings-page .settings-section:first-of-type{border-top:0;padding-top:.4rem}.settings-page .settings-section>h2{font-size:var(--text-lg);letter-spacing:-.02em;margin:0}.settings-page .settings-field{margin:0}.settings-page .settings-field-row{align-items:center;gap:.6rem;display:flex}.settings-page .settings-field-row>input,.settings-page .settings-field-row>select{flex:1;min-width:0}.settings-page .settings-save-status{color:var(--success-strong);font-size:var(--text-sm);white-space:nowrap;flex-shrink:0;font-weight:800}.settings-page .settings-direction{color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:.3rem .9rem;margin:0;font-weight:700;display:flex}.settings-page .settings-direction strong{color:var(--ink)}.settings-page .settings-help{color:var(--ink-faint);font-size:var(--text-sm);margin:0;line-height:1.45}.settings-page .settings-placement{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);justify-items:start;gap:.45rem;padding:.9rem 1rem;display:grid}.settings-page .settings-placement h3{font-size:var(--text-base);letter-spacing:-.01em;margin:0}.settings-page .settings-voice-row{align-items:center;gap:.5rem;width:100%;display:flex}.settings-page .settings-voice-row>select,.settings-page .settings-voice-single{flex:1;min-width:0}.settings-page .settings-voice-single{color:var(--ink);font-weight:800}.settings-page .settings-install-card{border:1px solid var(--border-amber);border-radius:var(--radius-md);background:var(--surface-cream);justify-items:start;gap:.5rem;padding:1rem;display:grid}.settings-page .settings-install-card strong{color:var(--color-brand-deepest)}.settings-page .settings-install-card p{color:var(--color-brand-deep);font-size:var(--text-md);margin:0;line-height:1.45}.settings-page .settings-data-group .settings-data-rights{border-top:0;margin-top:.4rem;padding-top:0}.settings-page .settings-data-group .settings-data-rights+.settings-data-rights{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.settings-page .settings-data-rights h3{font-size:var(--text-base);letter-spacing:-.01em;margin:0 0 .35rem}.class-preview-card .class-preview-meta{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.join-class-hero .join-class-mine{font-size:var(--text-md);margin:.8rem 0 0;font-weight:700}.jlpt-page{max-width:1240px;margin:0 auto}.jlpt-page h1,.jlpt-page h2,.jlpt-page h3,.jlpt-page p{margin-top:0}.jlpt-muted{color:var(--ink-faint);line-height:1.65}.jlpt-score-panel{border-radius:var(--radius-xl);background:linear-gradient(160deg, var(--accent-ink), var(--indigo) 58%, var(--teal));color:var(--ink-inverse);flex-direction:column;justify-content:center;gap:.25rem;min-height:190px;padding:1.25rem;display:flex;box-shadow:inset 0 1px #ffffff29}.jlpt-score-panel span,.jlpt-resource-card span,.jlpt-score-grid span{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;opacity:.78;font-weight:900}.jlpt-score-panel strong{letter-spacing:-.08em;font-size:clamp(2.6rem,6vw,4.6rem);line-height:.95}.jlpt-score-panel small,.jlpt-score-panel b{color:var(--accent-border);font-size:var(--text-sm)}.jlpt-error{border-radius:var(--radius-md);background:var(--danger-surface);width:100%;color:var(--danger-strong);border:1px solid var(--danger-border);justify-content:flex-start;margin-bottom:1rem}.jlpt-success{border-radius:var(--radius-md);background:var(--success-surface);width:100%;color:var(--success-strong);border:1px solid var(--success-border);justify-content:flex-start;margin-bottom:1rem}.placement-page{max-width:760px}.placement-actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.placement-result{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);justify-items:start;gap:.15rem;padding:1rem 1.15rem;display:grid}.placement-result .placement-result__label{color:var(--ink-muted);font-size:var(--text-sm);font-weight:900}.placement-result .placement-result__level{color:var(--ink);letter-spacing:-.04em;font-size:clamp(2.2rem,7vw,3rem);font-weight:900;line-height:1.1}.placement-result small{color:var(--ink-muted);font-weight:700}.placement-page .placement-result__note{color:var(--ink);margin:1rem 0 .35rem;font-weight:700;line-height:1.6}.jlpt-panel,.jlpt-resource-card{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6;border:1px solid #94a3b83d;box-shadow:0 18px 54px #0f172a12}.jlpt-panel{margin-bottom:1rem;padding:1.2rem}.jlpt-panel.wide{min-width:0}.jlpt-panel-title{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.jlpt-panel-title h2,.jlpt-panel h2{font-size:var(--text-xl);letter-spacing:-.04em;margin-bottom:.4rem}.jlpt-panel-title span{color:var(--ink-disabled);font-size:var(--text-xs);text-align:right;font-weight:800}.jlpt-history-list{gap:.55rem;display:grid}.jlpt-history-label{color:var(--ink-faint);font-size:var(--text-sm);margin-bottom:.55rem;font-weight:800}.jlpt-mastery-grid{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.jlpt-mastery-card{border:1px solid var(--accent-border);border-radius:var(--radius-sm);background:var(--surface-card);padding:.65rem}.jlpt-mastery-card span{color:var(--ink-faint);font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;font-weight:900;display:block}.jlpt-mastery-card strong{color:var(--accent);font-size:var(--text-xl);margin-top:.25rem;line-height:1.1;display:block}.jlpt-mastery-card small{color:var(--ink-disabled)}.jlpt-history-row{background:var(--accent-surface);border:1px solid var(--accent-border);border-radius:var(--radius-md);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem .7rem;padding:.8rem;display:grid}.jlpt-history-row strong{min-width:0}.jlpt-history-row span{color:var(--accent);font-weight:900}.jlpt-history-row small{color:var(--ink-disabled);grid-column:1/-1}.jlpt-resource-browser{border-top:1px solid #94a3b838;margin-top:1rem;padding-top:1rem;overflow:hidden}.jlpt-resource-toolbar{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr) auto;align-items:center;gap:.8rem;margin-bottom:1rem;display:grid}.jlpt-resource-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.75rem;max-height:720px;padding-right:.25rem;display:grid;overflow:auto}.jlpt-resource-grid.kana{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.jlpt-resource-card{align-content:start;gap:.45rem;padding:1rem;display:grid}.jlpt-resource-card strong{font-size:var(--text-4xl);letter-spacing:-.05em;color:var(--accent-ink);line-height:1.05}.jlpt-resource-card.kanji strong,.jlpt-resource-card.kana strong{letter-spacing:0;font-size:3rem}.jlpt-resource-card p,.jlpt-resource-card small{color:var(--ink-faint);line-height:1.45}.jlpt-resource-card blockquote{border-left:3px solid var(--accent-border-strong);color:var(--ink-muted);margin:.35rem 0 0;padding-left:.75rem;line-height:1.55}.jlpt-audio-box{background:var(--accent-surface);color:var(--accent-deep);border:1px solid var(--accent-border);border-radius:var(--radius-md);align-items:center;gap:.75rem;margin-bottom:.8rem;padding:.75rem;display:flex}.jlpt-score-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.7rem;margin-bottom:1rem;display:grid}.jlpt-score-grid button{border-radius:var(--radius-lg);background:var(--surface-card);min-height:118px;color:var(--ink);text-align:left;border:1px solid #94a3b83d;flex-direction:column;align-items:flex-start}.jlpt-score-grid strong{color:var(--accent);font-size:var(--text-4xl)}.jlpt-rec-line{background:var(--accent-surface);color:var(--accent-deep);border-radius:var(--radius-sm);margin-bottom:.55rem;padding:.75rem .9rem}.jlpt-review-item{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.55rem;overflow:hidden}.jlpt-review-item summary{cursor:pointer;align-items:center;gap:.7rem;padding:.8rem 1rem;list-style:none;display:flex}.jlpt-review-item summary::-webkit-details-marker{display:none}.jlpt-review-item summary span{background:var(--accent-ink);width:34px;height:34px;color:var(--ink-inverse);font-size:var(--text-xs);border-radius:50%;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.jlpt-review-item summary small{margin-left:auto;font-weight:900}.jlpt-review-item summary small.ok{color:var(--teal)}.jlpt-review-item summary small.ng{color:var(--danger)}.jlpt-review-body{border-top:1px solid var(--border);font-size:var(--text-md);padding:1rem;line-height:1.65}.jlpt-review-explanation{color:var(--teal-deep);font-weight:700}@media (width<=980px){.jlpt-resource-toolbar{grid-template-columns:1fr}}@media (width<=640px){.jlpt-resource-grid,.jlpt-resource-grid.kana{grid-template-columns:1fr;max-height:none}}.toeic-page{max-width:1180px;margin:0 auto}.toeic-page h1,.toeic-page h2,.toeic-page p{margin-top:0}.toeic-score-panel{border-radius:var(--radius-lg);background:var(--ink);color:var(--ink-inverse);flex-direction:column;justify-content:center;gap:.25rem;min-height:170px;padding:1.2rem;display:flex}.toeic-score-panel span,.toeic-score-card span{font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;opacity:.76;font-weight:900}.toeic-score-panel strong{font-size:var(--text-display);letter-spacing:-.08em;line-height:.95}.toeic-score-panel.large strong{font-size:clamp(2.8rem,7vw,5.4rem)}.toeic-score-panel small{color:var(--border-strong)}.toeic-error{border-radius:var(--radius-md);background:var(--danger-surface);width:100%;color:var(--danger-strong);border:1px solid var(--danger-border);justify-content:flex-start;margin-bottom:1rem}.toeic-panel{border-radius:var(--radius-lg);background:#ffffffdb;border:1px solid #94a3b83d;margin-bottom:1rem;padding:1.2rem;box-shadow:0 18px 50px #0f172a12}.toeic-panel h2{font-size:var(--text-xl);letter-spacing:-.035em;margin-bottom:.7rem}.toeic-history-list{gap:.55rem;display:grid}.toeic-history-row{background:var(--surface-subtle);border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.8rem 1rem;display:grid}.toeic-history-row strong{min-width:0}.toeic-history-row span{color:var(--color-primary-strong);font-weight:900}.toeic-history-row small{color:var(--ink-disabled)}.toeic-stimulus-image{object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-subtle);width:100%;max-height:420px;margin-bottom:.8rem}.toeic-audio-box{background:var(--surface-cream);color:var(--color-brand-ink);border:1px solid var(--border-amber);border-radius:var(--radius-md);align-items:center;gap:.75rem;margin-bottom:.8rem;padding:.75rem;display:flex}.toeic-passage{white-space:pre-wrap;color:var(--ink);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);max-height:540px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.7}.toeic-transcript{color:var(--ink-muted);font-size:var(--text-md)}.exam-report__scores{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:stretch;gap:.8rem;margin-bottom:1rem;display:grid}.exam-report__scores .toeic-score-grid,.exam-report__scores .jlpt-score-grid{margin-bottom:0}@media (width<=900px){.exam-report__scores{grid-template-columns:minmax(0,1fr)}}.toeic-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.toeic-score-card{border-radius:var(--radius-lg);background:#ffffffe6;border:1px solid #94a3b83d;padding:1.1rem}.toeic-score-card strong{font-size:var(--text-5xl);letter-spacing:-.06em;color:var(--color-primary-strong);display:block}.toeic-score-card small{color:var(--ink-disabled)}.toeic-rec-line{background:var(--surface-cream);color:var(--color-brand-ink);border-radius:var(--radius-sm);margin-bottom:.55rem;padding:.75rem .9rem}.toeic-part-results{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;display:grid}.toeic-part-results button{background:var(--surface-subtle);color:var(--ink);border-radius:var(--radius-md);border:1px solid var(--border);flex-direction:column;align-items:flex-start}.toeic-part-results strong{font-size:var(--text-2xl);color:var(--color-primary-strong)}.toeic-skill-list{gap:.6rem;display:grid}.toeic-skill-row{grid-template-columns:150px minmax(0,1fr) 52px;align-items:center;gap:.7rem;display:grid}.toeic-skill-row span{font-size:var(--text-sm);color:var(--ink-muted);font-weight:800}.toeic-skill-row div{background:var(--border);border-radius:var(--radius-pill);height:10px;overflow:hidden}.toeic-skill-row b{background:linear-gradient(90deg, var(--color-primary), var(--success));height:100%;display:block}.toeic-review-item{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.55rem;overflow:hidden}.toeic-review-item summary{cursor:pointer;align-items:center;gap:.7rem;padding:.8rem 1rem;list-style:none;display:flex}.toeic-review-item summary::-webkit-details-marker{display:none}.toeic-review-item summary span{background:var(--ink);width:34px;height:34px;color:var(--ink-inverse);font-size:var(--text-xs);border-radius:50%;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.toeic-review-item summary small{margin-left:auto;font-weight:900}.toeic-review-item summary small.ok{color:var(--success-ink)}.toeic-review-item summary small.ng{color:var(--danger)}.toeic-review-body{border-top:1px solid var(--border);font-size:var(--text-md);padding:1rem;line-height:1.65}.toeic-review-body pre{background:var(--surface-card);color:var(--ink);border:1px solid var(--border)}.toeic-review-explanation{color:var(--success-deep);font-weight:700}@media (width<=900px){.toeic-score-grid{grid-template-columns:1fr 1fr}}@media (width<=640px){.toeic-score-grid,.toeic-history-row,.toeic-skill-row{grid-template-columns:1fr}}.grammar-drill{flex-direction:column;gap:18px;max-width:720px;margin:0 auto;display:flex}.grammar-drill ruby{ruby-align:center}.grammar-drill rt{color:var(--ink-muted);font-size:.58em;font-weight:700;line-height:1}.grammar-teaching-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px 18px}.grammar-teaching-card.collapsed{padding:10px 18px}.grammar-teaching-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.grammar-teaching-head h2{font-size:var(--text-lg);margin:0}.grammar-teaching-body p{margin:8px 0}.grammar-teaching-examples blockquote{border-left:3px solid var(--border-amber);color:var(--ink-soft);flex-direction:column;gap:2px;margin:6px 0 0;padding-left:12px;display:flex}.grammar-drill-complete{text-align:center;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:10px;padding:24px;display:flex}.grammar-accepted-list{background:var(--surface-subtle);border-radius:var(--radius-md);padding:12px 18px 12px 36px}.grammar-accepted-list h3{font-size:var(--text-md);margin:0 0 8px -18px}.grammar-accepted-list li{margin:4px 0}.exam-hub{gap:1.25rem;width:100%;max-width:860px;margin-inline:auto;display:grid}.exam-hub .ui-page-header{margin-bottom:0}.exam-hub .ui-card p{margin:0}.exam-hub__top{grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:stretch;gap:1rem;display:grid}.exam-hub__top .toeic-score-panel{min-height:0}.exam-hub__also{flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin-top:.4rem;display:flex}.exam-hub__also>span{width:100%;color:var(--ink-faint);font-size:var(--text-sm);font-weight:800}.exam-hub__section{gap:.55rem;min-width:0;display:grid}.exam-hub__heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;display:flex}.exam-hub__heading>span{color:var(--ink-faint);font-size:var(--text-sm);font-weight:800}.exam-hub .exam-hub__title,.grammar-home .exam-hub__title{color:var(--ink-muted);font-size:var(--text-md);letter-spacing:.01em;margin:0;padding-inline:.2rem;font-weight:900}.exam-hub__note{color:var(--ink-muted);font-size:var(--text-md);margin:0;padding-inline:.2rem;line-height:1.5}.exam-hub__levels{flex-wrap:wrap;gap:.5rem;display:flex}.exam-list{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);margin:0;padding:0;list-style:none;overflow:hidden}.exam-list>li+li{border-top:1px solid var(--border)}.exam-row,button.exam-row{width:100%;min-height:64px;color:var(--ink);font-family:inherit;font-size:var(--text-base);text-align:left;background:0 0;border:0;border-radius:0;justify-content:flex-start;align-items:center;gap:.85rem;padding:.8rem 1rem;font-weight:600;text-decoration:none;transition:background .15s;display:flex}.exam-row:hover,button.exam-row:hover:not(:disabled){background:var(--surface-cream)}button.exam-row:active{transform:none}.exam-row:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.exam-list--compact .exam-row{min-height:56px;padding-block:.6rem}.exam-row__text{overflow-wrap:anywhere;flex:1;gap:.15rem;min-width:0;display:grid}.exam-row__title{font-size:var(--text-base);font-weight:800;line-height:1.3}.exam-row__body{color:var(--ink-muted);font-size:var(--text-sm);font-weight:600;line-height:1.45}.exam-row__chevron{color:var(--ink-faint);flex-shrink:0}.exam-hub__library{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);padding:0 1rem}.exam-hub__library>summary{min-height:56px;color:var(--ink);cursor:pointer;align-items:center;gap:.5rem;font-weight:800;list-style:none;display:flex}.exam-hub__library>summary::-webkit-details-marker{display:none}.exam-hub__library>summary:before{content:"▸";color:var(--ink-faint)}.exam-hub__library[open]>summary:before{content:"▾"}.exam-hub__library[open]{padding-bottom:1rem}.exam-hub__library .jlpt-resource-browser{margin-top:0}.exam-hub__library .jlpt-resource-toolbar{grid-template-columns:1fr;justify-items:start}.exam-hub__library .jlpt-resource-toolbar input{width:100%}@media (width<=760px){.exam-hub__top{grid-template-columns:1fr}}.grammar-page{gap:1.25rem;display:grid}.grammar-home{width:100%;max-width:860px;margin-inline:auto}.grammar-home .ui-page-header{margin-bottom:0}.grammar-home .ui-card p{margin:0}.grammar-home__chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.35rem;display:flex}.grammar-home__actions{flex-wrap:wrap;gap:.6rem;display:flex}.grammar-home__search{width:100%;max-width:420px;min-height:44px}.grammar-point__example{border-left:3px solid var(--border-amber);color:var(--ink);gap:.25rem;margin:.35rem 0 0;padding-left:.75rem;display:grid}.grammar-browse{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);margin:0;padding:0;list-style:none;overflow:hidden}.grammar-browse>li+li{border-top:1px solid var(--border)}.grammar-point>summary{cursor:pointer;align-items:center;gap:.75rem;min-height:60px;padding:.7rem 1rem;list-style:none;transition:background .15s;display:flex}.grammar-point>summary::-webkit-details-marker{display:none}.grammar-point>summary:hover{background:var(--surface-cream)}.grammar-point>summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.grammar-point__text{overflow-wrap:anywhere;flex:1;gap:.15rem;min-width:0;display:grid}.grammar-point__pattern{color:var(--ink);font-weight:800;line-height:1.35}.grammar-term{color:var(--ink-muted);font-size:.85em;font-weight:600}.grammar-point__meaning{color:var(--ink-muted);font-size:var(--text-sm);font-weight:600;line-height:1.45}.grammar-point__status{flex-shrink:0}.grammar-point__status.is-mastered{border-color:color-mix(in srgb, var(--success) 35%, var(--success-surface));background:var(--success-surface);color:var(--success-strong)}.grammar-point__status.is-learning,.grammar-point__status.is-review{border-color:var(--border-amber);background:var(--surface-peach);color:var(--color-brand-ink)}.grammar-point__status.is-locked{color:var(--ink-faint);background:0 0;border-style:dashed}.grammar-point__body{color:var(--ink-muted);gap:.6rem;padding:0 1rem 1rem;line-height:1.55;display:grid}.grammar-point__body p{margin:0}.grammar-point__due{font-size:var(--text-sm)}.grammar-point__actions{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.review-hub{gap:1rem;max-width:760px;margin:0 auto;display:grid}.review-hub>.ui-page-header{margin-bottom:.1rem}.review-hub .correction-chip-list{margin-top:.15rem}.review-hub .correction-chip .correction-source-sentence{margin-top:.3rem}.review-today-breakdown{color:var(--ink-soft);margin:0;font-weight:700}.review-section{gap:.8rem;display:grid}.review-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .75rem;display:flex}.review-section-head h2{color:var(--ink);font-size:var(--text-xl);letter-spacing:-.02em;margin:0;font-weight:900}.review-section-head p{color:var(--ink-faint);font-size:var(--text-sm);margin:0;font-weight:700}.review-section .ui-button.review-section-link,.review-section .ui-button.review-more{justify-self:start}.review-empty .empty-state{padding-block:1.4rem}.review-weak-group{gap:.5rem;display:grid}.review-weak-group h3{color:var(--color-brand-ink);font-size:var(--text-base);letter-spacing:-.01em;align-items:baseline;gap:.5rem;margin:.3rem 0 0;font-weight:900;display:flex}.review-weak-group h3 small{color:var(--ink-faint);font-size:var(--text-sm);font-weight:800}.review-weak-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.review-weak-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);overflow-wrap:anywhere;gap:.35rem;min-width:0;padding:.85rem .95rem;display:grid}.review-weak-item.is-mastered{background:var(--surface-subtle)}.review-weak-item p{margin:0}.review-weak-sentence{color:var(--ink-soft);line-height:1.5}.review-weak-item .correction-original{border-radius:var(--radius-2xs);background:var(--border-amber);color:var(--color-brand-ink);padding:.05rem .18rem;text-decoration:line-through;text-decoration-thickness:.12em}.review-weak-item .correction-original:is(:lang(ja),:lang(ko)){text-decoration:none}.review-weak-fix{color:var(--color-brand-deep);font-weight:700}.review-weak-item .ui-button.review-weak-reveal{justify-self:start;margin-left:-.5rem;padding-inline:.5rem}.review-weak-fix b{font-weight:900}.review-weak-meta{color:var(--ink-faint);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.3rem .8rem;font-weight:700;display:flex}.review-weak-meta .is-due{color:var(--color-brand-ink);font-weight:900}.review-weak-actions{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.review-row-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.review-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);align-items:center;gap:.6rem;min-width:0;padding:.3rem .45rem .3rem .95rem;display:flex}.review-row-link{min-width:0;min-height:48px;color:var(--ink);border-radius:var(--radius-sm);flex:1;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.review-row-link:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.review-row-link>span{gap:.1rem;min-width:0;display:grid}.review-row-link strong{overflow-wrap:anywhere;font-weight:800}.review-row-link small{color:var(--ink-faint);font-size:var(--text-sm);font-weight:700}.review-row-link small .has-due{color:var(--color-brand-ink);font-weight:900}.review-row-link svg{color:var(--ink-faint);flex-shrink:0}.review-row .ui-button{flex-shrink:0}@media (width<=520px){.review-weak-actions .ui-button{flex:auto}.review-row{flex-wrap:wrap;padding-right:.95rem}.review-row .ui-button{flex:100%;margin-bottom:.45rem}}.overflow-menu{position:relative}.overflow-menu>summary{list-style:none}.overflow-menu>summary::-webkit-details-marker{display:none}.overflow-menu .overflow-menu__toggle{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);width:44px;height:44px;color:var(--ink);cursor:pointer;place-items:center;display:inline-grid}.overflow-menu .overflow-menu__toggle:hover{background:var(--surface-cream);border-color:var(--color-primary)}.overflow-menu .overflow-menu__toggle:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.overflow-menu[open] .overflow-menu__toggle{background:var(--surface-cream)}.overflow-menu .overflow-menu__panel{z-index:15;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);min-width:13rem;box-shadow:var(--shadow-soft);padding:.35rem;display:grid;position:absolute;top:calc(100% + .35rem);right:0}.overflow-menu .overflow-menu__item,.overflow-menu button.overflow-menu__item{border-radius:var(--radius-xs);min-height:44px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;padding:.55rem .8rem;font-weight:800;display:flex}.overflow-menu .overflow-menu__item:hover,.overflow-menu button.overflow-menu__item:hover{background:var(--surface-cream);color:var(--color-brand-ink)}.overflow-menu .overflow-menu__item:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.deck-list-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.deck-list-head h2{margin:0}.flashcards-grid>.panel.deck-list-empty{grid-column:1/-1}.deck-row button.deck-open,.deck-row button.deck-open:hover{border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--ink);font-weight:inherit;text-align:left;background:0 0;justify-content:space-between;gap:.6rem;padding:.2rem 0}.deck-row button.deck-open strong{font-size:var(--text-base);overflow-wrap:anywhere;font-weight:800}.deck-row button.deck-open svg{color:var(--ink-faint);flex-shrink:0}.deck-row button.deck-open:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.deck-detail-panel{scroll-margin-top:1rem}.deck-pick-hint h2{margin:0 0 .35rem}.deck-pick-hint p{color:var(--ink-faint);margin:0}.vocab-log{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.9rem}.vocab-log>summary{min-height:44px;color:var(--ink);cursor:pointer;align-items:center;font-weight:900;display:flex}.vocab-log[open]>summary{margin-bottom:.4rem}.vocab-log .vocab-log-lead{color:var(--ink-muted);font-size:var(--text-md);margin:0 0 .8rem;line-height:1.5}.vocab-log-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin:0 0 1rem;display:grid}.vocab-log-stats>div{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle);gap:.15rem;padding:.7rem .8rem;display:grid}.vocab-log-stats span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:700}.vocab-log-stats strong{color:var(--ink);font-size:var(--text-2xl);font-weight:900}.vocab-log-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin:0 0 .5rem;display:flex}.vocab-log-head h3{font-size:var(--text-base);margin:0}.vocab-log-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);table-layout:auto}.vocab-log-table th{border-bottom:1px solid var(--border);color:var(--ink-faint);font-size:var(--text-xs);text-align:left;padding:.5rem .4rem;font-weight:800}.vocab-log-table td{border-bottom:1px solid var(--surface-subtle);color:var(--ink-soft);vertical-align:middle;overflow-wrap:anywhere;padding:.45rem .4rem}.vocab-log-table .vocab-log-word{color:var(--ink);font-weight:800}.vocab-log-table .vocab-log-count{white-space:nowrap;text-align:right}.vocab-log-table .vocab-log-action{text-align:right;width:44px}.vocab-log-table button.vocab-log-delete,.vocab-log-table button.vocab-log-delete:hover{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--ink-faint);background:0 0;padding:0}.vocab-log-table button.vocab-log-delete:hover{color:var(--danger-strong);background:var(--danger-surface)}.vocab-log-table button.vocab-log-delete:focus-visible{outline:3px solid var(--color-primary);outline-offset:1px}.review-runner{align-content:start;gap:.8rem;max-width:720px;margin:0 auto;display:grid}.review-runner__bar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.review-runner__heading{gap:.4rem;min-width:0;display:grid}.review-runner__heading h1{color:var(--ink);font-size:var(--text-lg);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-weight:900;line-height:1.3}.review-runner__meter{border-radius:var(--radius-pill);background:var(--border);height:6px;overflow:hidden}.review-runner__meter span{border-radius:inherit;background:var(--color-primary);height:100%;transition:width .2s;display:block}.review-runner__count{color:var(--ink-faint);font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:800}.review-runner__status{min-height:1.4em;color:var(--success-strong);font-size:var(--text-md);margin:0;font-weight:700}.review-runner__offline{margin:0}.review-runner-live{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.review-runner--done .ui-page-header__title:focus{outline:none}.review-runner__summary{color:var(--ink);margin:0;font-weight:800}.review-runner .muted-note{margin:0}.review-item{gap:.85rem}.review-item__tags{flex-wrap:wrap;gap:.4rem;display:flex}.review-card-face .review-card-face__word{color:var(--ink);overflow-wrap:anywhere;font-size:clamp(1.5rem,6vw,2.1rem);line-height:1.3}.review-card-face .review-card-face__word.is-long{font-size:clamp(1.15rem,4.5vw,1.45rem)}.review-item__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.review-item__actions>:only-child{grid-column:1/-1}@media (prefers-reduced-motion:reduce){.review-runner__meter span{transition:none}}@media (width<=640px){.review-item__actions{z-index:2;padding:.6rem .2rem calc(.6rem + var(--safe-bottom));background:var(--surface-card);margin:0 -.2rem;position:sticky;bottom:0}}button.runner-exit{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);width:44px;height:44px;color:var(--ink-soft);flex:none;place-self:flex-start start;place-items:center;padding:0;display:inline-grid}button.runner-exit:hover{background:var(--surface-cream);color:var(--ink)}button.runner-exit:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.placement-page>.runner-exit,.topik-quiz>.runner-exit{margin-bottom:.75rem}.next-step-footer{gap:.6rem;margin-top:.3rem;display:grid}.next-step-footer__main,.next-step-footer__more{flex-wrap:wrap;gap:.6rem;display:flex}.drill-complete .next-step-footer,.grammar-drill-complete .next-step-footer{justify-items:center}.drill-complete .next-step-footer__main,.drill-complete .next-step-footer__more,.grammar-drill-complete .next-step-footer__main,.grammar-drill-complete .next-step-footer__more{justify-content:center}.toeic-next-step,.jlpt-next-step{margin-bottom:1rem}@media (width<=640px){.next-step-footer,.drill-complete .next-step-footer,.grammar-drill-complete .next-step-footer{justify-items:stretch}.next-step-footer__main{display:grid}.next-step-footer__main>.ui-button{width:100%}.drill-complete>.next-step-footer{justify-self:stretch;width:100%}.grammar-drill-complete>.next-step-footer{align-self:stretch;width:100%}.drill-complete .drill-summary-grid{grid-template-columns:repeat(auto-fit,minmax(4.25rem,1fr));gap:.4rem}.drill-complete .drill-summary-grid div{border-radius:var(--radius-sm);align-content:start;justify-items:center;padding:.5rem .3rem}.drill-complete .drill-summary-grid span{font-size:var(--text-2xs);overflow-wrap:break-word;line-height:1.25}.drill-complete .drill-summary-grid strong{font-size:var(--text-xl)}}.question-runner{align-content:start;gap:.8rem;max-width:760px;margin:0 auto;display:grid}.question-runner__bar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.question-runner__heading{gap:.4rem;min-width:0;display:grid}.question-runner__heading h1{color:var(--ink);font-size:var(--text-lg);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-weight:900;line-height:1.3}.question-runner__meter{border-radius:var(--radius-pill);background:var(--border);height:6px;overflow:hidden}.question-runner__meter span{border-radius:inherit;background:var(--color-primary);height:100%;transition:width .2s;display:block}.question-runner__count{color:var(--ink-faint);font-size:var(--text-md);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.question-runner__map{flex-wrap:wrap;gap:.35rem;display:flex}.question-runner__map button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);min-width:36px;min-height:36px;color:var(--ink-soft);font-variant-numeric:tabular-nums;padding:0 .5rem;font-weight:800}.question-runner__map button:hover:not(:disabled){background:var(--surface-cream)}.question-runner__map button.is-answered{background:var(--surface-subtle);color:var(--ink-faint)}.question-runner__map button.is-current{border-color:var(--state-selected);background:var(--state-selected);color:var(--state-selected-ink)}.question-runner__status{color:var(--ink-muted);font-size:var(--text-md);font-weight:700;line-height:1.5}.question-runner__status p{margin:0}.question-runner__card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);gap:.9rem;min-width:0;padding:1.2rem;display:grid}.question-runner__tags{flex-wrap:wrap;gap:.4rem;display:flex}.question-runner__context{gap:.6rem;min-width:0;display:grid}.question-runner__context img{border-radius:var(--radius-md);max-width:100%;height:auto}.question-runner__context pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:0;line-height:1.6}.question-runner__prompt{color:var(--ink);overflow-wrap:anywhere;white-space:pre-line;margin:0;font-size:clamp(1.15rem,3.6vw,1.45rem);font-weight:800;line-height:1.5}.question-runner__hint{color:var(--ink-muted);font-size:var(--text-md);line-height:1.5}.question-runner__hint p{margin:0}.question-runner__options{gap:.6rem;display:grid}button.question-runner__option{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-card);width:100%;min-height:52px;color:var(--ink);text-align:left;grid-template-columns:auto minmax(0,1fr);justify-content:stretch;align-items:center;gap:.75rem;padding:.65rem .9rem;font-weight:700;display:grid}button.question-runner__option:hover:not(:disabled){background:var(--surface-cream);border-color:var(--color-primary)}button.question-runner__option:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}button.question-runner__option:disabled{cursor:default;opacity:1;transform:none}button.question-runner__option strong{background:var(--border);width:30px;height:30px;color:var(--ink-soft);font-size:var(--text-md);border-radius:50%;place-items:center;display:inline-grid}button.question-runner__option span{overflow-wrap:anywhere;min-width:0}button.question-runner__option.is-plain{grid-template-columns:minmax(0,1fr)}button.question-runner__option.is-chosen{border-color:var(--state-selected);background:var(--surface-subtle);box-shadow:inset 0 0 0 1px var(--state-selected)}button.question-runner__option.is-chosen strong{background:var(--state-selected);color:var(--state-selected-ink)}button.question-runner__option.is-correct{border-color:var(--success);background:var(--success-surface)}button.question-runner__option.is-correct strong{background:var(--success);color:var(--ink-inverse)}button.question-runner__option.is-wrong{border-color:var(--danger);background:var(--danger-surface)}button.question-runner__option.is-wrong strong{background:var(--danger);color:var(--ink-inverse)}button.question-runner__option.is-faded{opacity:.6}.question-runner__text{resize:vertical;min-height:6.5rem}.question-runner__error{margin:0}.question-runner__result{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-subtle);gap:.4rem;padding:.8rem 1rem;display:grid}.question-runner__result.is-pass{border-color:var(--success);background:var(--success-surface)}.question-runner__result.is-fail{border-color:var(--warning-border);background:var(--warning-surface)}.question-runner__result p{margin:0;line-height:1.55}.question-runner__answers{gap:.25rem;margin:0;display:grid}.question-runner__answers div{flex-wrap:wrap;gap:.5rem;display:flex}.question-runner__answers dt{color:var(--ink-faint);min-width:6.5em;font-weight:800}.question-runner__answers dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-weight:700}.question-runner__tested span{color:var(--ink-faint);margin-right:.35rem;font-weight:800}.question-runner__actions{flex-wrap:wrap;gap:.6rem;display:flex}.question-runner__aside{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);gap:.5rem;padding:.9rem 1rem;display:grid}.question-runner__aside h2,.question-runner__aside h3{font-size:var(--text-base);color:var(--ink);margin:0}.question-runner__aside p,.question-runner__aside ol,.question-runner__aside ul{margin:0}@media (prefers-reduced-motion:reduce){.question-runner__meter span{transition:none}}@media (width<=640px){.question-runner__card{padding:1rem}.question-runner__actions{display:grid}.question-runner__actions.is-sticky{z-index:2;padding:.6rem .2rem calc(.6rem + var(--safe-bottom));background:var(--surface-card);margin:0 -.2rem;position:sticky;bottom:0}.question-runner__actions>.ui-button{width:100%}}.library-page{gap:1.4rem;width:100%;max-width:760px;margin-inline:auto;display:grid}.library-page .ui-page-header{margin-bottom:0}.library-section{gap:.55rem;min-width:0;display:grid}.library-section .library-section__title{color:var(--ink-muted);font-size:var(--text-md);letter-spacing:.01em;margin:0;padding-inline:.2rem;font-weight:900}.library-list{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);margin:0;padding:0;list-style:none;overflow:hidden}.library-list>li+li{border-top:1px solid var(--border)}.library-row{min-height:64px;color:var(--ink);align-items:center;gap:.85rem;padding:.8rem 1rem;transition:background .15s;display:flex}.library-row:hover{background:var(--surface-cream)}.library-row:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.library-row__icon{border-radius:var(--radius-sm);background:var(--surface-peach);width:40px;height:40px;color:var(--color-brand-ink);flex-shrink:0;place-items:center;display:inline-grid}.library-row__text{overflow-wrap:anywhere;flex:1;gap:.15rem;min-width:0;display:grid}.library-row__title{font-size:var(--text-base);font-weight:800;line-height:1.3}.library-row__body{color:var(--ink-muted);font-size:var(--text-sm);font-weight:600;line-height:1.45}.library-row__chevron{color:var(--ink-faint);flex-shrink:0}.conversation-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:1rem;height:100%;min-height:0;display:grid}.conversation-shell.history-collapsed{grid-template-columns:minmax(0,1fr)}.conversation-shell.history-collapsed .conversation-sidebar{display:none}.conversation-sidebar{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6;border:1px solid #94a3b838;flex-direction:column;min-height:0;padding:.9rem;display:flex;overflow:hidden;box-shadow:0 20px 50px #43140714}.conversation-sidebar-header{border-bottom:1px solid #94a3b824;flex:none;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.7rem;padding:.15rem .2rem .8rem;display:flex}.conversation-sidebar-header h2{color:var(--ink);font-size:var(--text-base);letter-spacing:-.03em;margin:0}.conversation-sidebar-toggle{border-radius:var(--radius-sm);background:var(--border);min-height:36px;color:var(--ink-soft);font-size:var(--text-xs);padding:.42rem .7rem}.conversation-sidebar-toggle:hover{background:var(--border-strong)}.conversation-sidebar-body{flex:auto;min-height:0;overflow-y:auto}.conversation-history-list{gap:.35rem;display:grid}.conversation-history-item{border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem;transition:background .15s,border-color .15s;display:grid}.conversation-history-item:hover{background:var(--surface-cream);border-color:var(--border-amber)}.conversation-history-item.active{background:var(--surface-subtle);border-color:var(--state-selected);box-shadow:inset 0 0 0 1px var(--state-selected)}.conversation-history-item.draft{margin-bottom:.55rem}.conversation-history-main{text-align:left;border-radius:var(--radius-sm);min-width:0;color:var(--ink);background:0 0;justify-content:stretch;gap:.15rem;padding:.7rem .75rem;display:grid}.conversation-history-main:hover{color:var(--ink);background:0 0}.conversation-history-title,.conversation-history-preview,.conversation-history-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.conversation-history-title{font-size:var(--text-sm);font-weight:850}.conversation-history-preview{color:var(--ink-faint);font-size:var(--text-xs)}.conversation-history-meta{color:var(--ink-disabled);font-size:var(--text-2xs);font-weight:700}.conversation-delete-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--ink-disabled);font-size:var(--text-lg);opacity:0;background:0 0;margin-right:.35rem;padding:0}.conversation-history-item:hover .conversation-delete-btn,.conversation-history-item.active .conversation-delete-btn{opacity:1}.conversation-delete-btn:hover{background:var(--danger-soft);color:var(--danger-strong)}.conversation-history-status{color:var(--ink-faint);font-size:var(--text-xs);margin:.5rem .2rem;line-height:1.45}.conversation-history-status.error{color:var(--danger-strong)}.conversation-history-action{border-radius:var(--radius-pill);background:var(--surface-cream);color:var(--color-brand-ink);font-size:var(--text-2xs);justify-self:start;margin-top:.15rem;padding:.12rem .55rem;font-weight:800}.chat-sheet-backdrop{z-index:calc(var(--z-dialog) - 1);background:#0f172a6b;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.chat-sheet{background:var(--surface-card);border-radius:var(--radius-lg);width:min(520px,100%);max-height:min(80dvh,720px);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;overflow:hidden}.chat-sheet-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .55rem .55rem 1rem;display:flex}.chat-sheet-header h2{font-size:var(--text-lg);color:var(--ink);margin:0}.chat-sheet-close{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--ink);background:0 0;padding:0}.chat-sheet-close:hover{background:var(--surface-cream)}.chat-sheet-body{overscroll-behavior:contain;min-height:0;padding:.75rem 1rem calc(1rem + var(--safe-bottom));flex:auto;overflow-y:auto}.chat-sheet-lead{color:var(--ink-muted);font-size:var(--text-sm);margin:0 0 .75rem;line-height:1.45}.chat-sheet .conversation-history-main,.chat-sheet .conversation-delete-btn{min-height:44px}.chat-sheet .conversation-delete-btn{opacity:1;min-width:44px}.scenario-create-details>summary{cursor:pointer;border-radius:var(--radius-pill);background:var(--accent-surface);width:fit-content;color:var(--accent-deep);font-weight:800;font-size:var(--text-sm);margin-bottom:.6rem;padding:.35rem .8rem;list-style:none}.scenario-create-details>summary::-webkit-details-marker{display:none}.scenario-create-details>summary:before{content:"+ "}.scenario-create-details[open]>summary:before{content:"– "}.scenario-create-form{border-radius:var(--radius-md);background:var(--surface-subtle);border:1px solid #94a3b833;gap:.55rem;margin-bottom:.75rem;padding:.75rem;display:grid}.scenario-create-form input,.scenario-create-form textarea{border-radius:var(--radius-sm);font-size:var(--text-xs);background:var(--surface-card);padding:.62rem .7rem}.scenario-create-form textarea{min-height:82px}.scenario-create-form button{border-radius:var(--radius-sm);font-size:var(--text-xs);padding:.62rem .75rem}.scenario-status{color:var(--ink-faint);font-size:var(--text-xs);margin:.5rem .2rem;line-height:1.45}.scenario-status.error{color:var(--danger-strong)}.scenario-list{gap:.45rem;display:grid}.scenario-card{border-radius:var(--radius-md);border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.25rem;transition:background .15s,border-color .15s;display:grid}.scenario-card:hover{background:var(--surface-cream);border-color:var(--border-amber)}.scenario-card.active{background:var(--surface-subtle);border-color:var(--state-selected);box-shadow:inset 0 0 0 1px var(--state-selected)}.scenario-card-main{border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--ink);text-align:left;background:0 0;justify-content:stretch;gap:.22rem;padding:.75rem;display:grid}.scenario-card-main:hover{color:var(--ink);background:0 0}.scenario-card-main strong,.scenario-card-main span,.scenario-card-main small{text-overflow:ellipsis;min-width:0;overflow:hidden}.scenario-card-main strong{font-size:var(--text-sm);line-height:1.25}.scenario-card-main span:not(.scenario-card-label){-webkit-line-clamp:2;white-space:normal;color:var(--ink-faint);font-size:var(--text-xs);-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box}.scenario-card-main small{color:var(--accent-strong);font-size:var(--text-2xs);font-weight:850}.scenario-card-label{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-strong);font-size:var(--text-2xs);justify-self:start;padding:.12rem .45rem;font-weight:900}.scenario-remove-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--ink-disabled);font-size:var(--text-lg);opacity:0;background:0 0;margin:.55rem .45rem 0 0;padding:0}.scenario-card:hover .scenario-remove-btn,.scenario-card.active .scenario-remove-btn{opacity:1}.scenario-remove-btn:hover{background:var(--danger-soft);color:var(--danger-strong)}.conversation-shell .conversation-layout.chat-only{height:100%;min-height:0;margin:0}.conversation-layout.chat-only{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6;border:1px solid #94a3b838;align-items:stretch;height:100%;min-height:0;margin:0 auto;overflow:hidden;box-shadow:0 20px 50px #43140714;grid-template-columns:unset!important;flex-direction:column!important;width:100%!important;max-width:100%!important;display:flex!important}.chat-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100%;min-height:60px;z-index:var(--z-bar);background:#ffffffb3;border-bottom:1px solid #94a3b81f;flex:none;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .5rem;display:flex;position:relative}.chat-header-back{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--ink);flex:none;justify-content:center;align-items:center;display:inline-flex}.chat-header-back:hover{background:var(--surface-cream)}.chat-header-back:focus-visible,.chat-menu-toggle:focus-visible,.chat-menu-switch:focus-visible,.chat-menu-item:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.chat-header-history{border-radius:var(--radius-pill);background:var(--border);min-height:44px;color:var(--ink-soft);font-size:var(--text-xs);flex:none;padding:.4rem .8rem}.chat-header-history:hover{background:var(--border-strong)}.chat-header-title{flex-direction:column;flex:auto;gap:.15rem;min-width:0;display:flex}.chat-header h1{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:800;overflow:hidden;font-size:var(--text-lg)!important}.chat-session{flex-wrap:wrap;align-items:center;gap:.15rem .6rem;min-width:0;display:flex}.chat-stepper{align-items:center;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.chat-step{color:var(--ink-faint);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:.25rem;font-weight:800;display:inline-flex}.chat-step-number{border-radius:var(--radius-pill);width:18px;height:18px;font-size:var(--text-2xs);border:1.5px solid;justify-content:center;align-items:center;line-height:1;display:inline-flex}.chat-step.is-done{color:var(--ink-muted)}.chat-step.is-current{color:var(--state-selected)}.chat-step.is-current .chat-step-number{background:var(--state-selected);border-color:var(--state-selected);color:var(--state-selected-ink)}.chat-session-hint{color:var(--color-brand-ink);font-size:var(--text-xs);font-weight:800}.chat-header-actions{flex:none;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.chat-header-actions .chat-recap-btn{white-space:nowrap;min-height:44px;padding:.45rem .95rem}.chat-menu{position:relative}.chat-menu-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);width:44px;height:44px;color:var(--ink);padding:0}.chat-menu-toggle:hover,.chat-menu-toggle[aria-expanded=true]{background:var(--surface-cream)}.chat-menu-panel{z-index:var(--z-floating);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);width:min(300px,100vw - 24px);box-shadow:var(--shadow-pop);gap:.1rem;padding:.4rem;display:grid;position:absolute;top:calc(100% + 6px);right:0}.chat-menu-switch,.chat-menu-item{border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--ink);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .7rem;font-weight:700;display:flex}.chat-menu-switch:hover,.chat-menu-item:hover{background:var(--surface-cream)}.chat-menu-switch-state{border-radius:var(--radius-pill);background:var(--border);color:var(--ink-muted);font-size:var(--text-2xs);flex:none;padding:.1rem .55rem;font-weight:800}.chat-menu-switch.is-on .chat-menu-switch-state{background:var(--state-selected);color:var(--state-selected-ink)}.chat-menu-setting{gap:.35rem;padding:.45rem .7rem;display:grid}.chat-menu-setting-label{color:var(--ink);font-weight:700}.chat-menu-choices{gap:.4rem;display:flex}.chat-menu-setting small{color:var(--ink-muted);font-size:var(--text-xs);line-height:1.35}.chat-menu-divider{border:0;border-top:1px solid var(--border);margin:.25rem 0}.chat-context-slot{flex:none}.chat-context-slot>.article-collapsible-header,.chat-context-slot>.warning-banner{border-inline:0;border-radius:0;margin:0}.chat-context-slot>.article-collapsible-header{padding-top:0;padding-bottom:0}.chat-context-slot .article-collapsible-toggle{min-height:44px}.chat-context-slot>.article-collapsible-header>:last-child:not(.article-collapsible-toggle){padding-bottom:.6rem}.chat-context-note{border-bottom:1px solid var(--border);background:var(--surface-subtle);color:var(--ink-soft);font-size:var(--text-xs);align-items:flex-start;gap:.6rem;padding:.55rem 1rem;line-height:1.45;display:flex}.chat-weak-spot-note{background:var(--surface-cream);border-bottom-color:var(--border-amber);color:var(--color-brand-ink)}.chat-weak-spot-note__text{overflow-wrap:anywhere;gap:.15rem;min-width:0;display:grid}.chat-weak-spot-note strong{font-size:var(--text-sm)}.chat-weak-spot-note__from{color:var(--ink-soft)}.chat-weak-spot-note .correction-original{border-radius:var(--radius-2xs);background:var(--border-amber);padding:0 .15rem;text-decoration:line-through}.chat-weak-spot-note .correction-original:is(:lang(ja),:lang(ko)){text-decoration:none}.chat-grammar-note{background:var(--surface-cream);border-bottom-color:var(--border-amber);color:var(--color-brand-ink)}.chat-grammar-note__text{overflow-wrap:anywhere;gap:.1rem;min-width:0;display:grid}.chat-grammar-note strong{font-size:var(--text-sm)}.chat-grammar-note__form{color:var(--ink-soft)}.chat-opener-seed{border:1px dashed var(--border-amber);border-radius:var(--radius-sm);background:var(--surface-cream);max-width:min(520px,92%);color:var(--ink-soft);font-size:var(--text-sm);align-self:flex-start;gap:.45rem;margin-left:calc(32px + .7rem);padding:.7rem .9rem;line-height:1.5;display:grid}.chat-opener-seed p{margin:0}.chat-opener-seed .ui-button{justify-self:start}.summary-row-link{border-radius:var(--radius-xs);font-size:var(--text-sm);color:inherit;align-items:center;gap:.5rem;margin:.2rem -.5rem;padding:.35rem .5rem;line-height:1.4;display:flex}.summary-row-link:hover{background:#fbbf2429}.summary-row-text{flex:auto;min-width:0}.summary-row-arrow,.summary-grammar-link span{color:var(--color-brand-gold);font-weight:800}.summary-grammar-link{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--warning-bright);text-decoration-color:var(--warning-bright);text-underline-offset:3px}.summary-words-status{color:var(--warning-deep);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:.6rem;display:flex}.summary-unavailable-note{color:var(--warning-deep);font-size:var(--text-sm);margin:0 0 .6rem;line-height:1.5}.summary div.summary-homework{border:1px solid var(--warning-border);border-radius:var(--radius-md);background:var(--warning-surface);color:var(--warning-deep);font-size:var(--text-sm);margin:0 0 .8rem;padding:.65rem .8rem;line-height:1.5}.summary div.summary-homework.is-done{border-color:color-mix(in srgb, var(--success) 35%, var(--success-surface));background:var(--success-surface);color:var(--success-strong)}.summary-homework p{margin:0;font-weight:700}.summary-homework p:first-child{font-weight:900}.summary-homework p+p{margin-top:.25rem}.chat-homework-progress{color:var(--color-brand-ink);font-size:var(--text-xs);margin:.3rem 0 0;font-weight:800}@media (width<=899px){.app-shell--v2.conversation-route>.app-topbar{display:none}}html.chat-keyboard-open .app-shell.conversation-route{top:var(--chat-viewport-top,0px);height:var(--chat-viewport-height,100dvh);bottom:auto}.article-collapsible-header{background:var(--info-surface);border-bottom:1px solid var(--info-border);font-size:var(--text-xs);flex:none;padding:.7rem 1.5rem;line-height:1.5}.article-collapsible-toggle{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:0;border-radius:0;justify-content:space-between;align-items:center;gap:.75rem;padding:0;display:flex}.article-collapsible-toggle:hover{background:0 0}.warning-banner{color:var(--warning);background:var(--warning-surface);border-bottom:1px solid var(--warning-border);font-size:var(--text-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0;padding:.7rem 1rem;display:flex}.warning-banner.compact{font-size:var(--text-xs);flex-wrap:nowrap;padding-block:.6rem}.warning-banner-content{flex:auto;min-width:0}.warning-banner-close,.mascot-hint-close,.composer-error-close{border-radius:var(--radius-pill);color:currentColor;width:28px;height:28px;font-size:var(--text-lg);opacity:.72;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.warning-banner-close:hover,.mascot-hint-close:hover,.composer-error-close:hover{opacity:1;background:#0f172a14}.warning-banner-dismiss{font-size:var(--text-xs);background:var(--warning-accent);color:var(--ink-inverse);border-radius:var(--radius-2xs);padding:2px 8px}.chat-messages{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1.5rem;display:flex;overflow-y:auto;width:100%!important}.chat-messages-container{flex-direction:column;gap:1rem;width:100%;max-width:100%;margin:0 auto;display:flex}.composer-container{flex-direction:column;gap:.65rem;width:100%;max-width:100%;margin:0 auto;display:flex}.chat-message-row{align-items:flex-start;gap:.7rem;width:100%;max-width:75%;display:flex}.chat-message-row.learner{justify-content:flex-end;margin-left:auto}.chat-message-row.tutor{justify-content:flex-start;margin-right:auto}.chat-avatar{border-radius:var(--radius-xs);border:1.5px solid var(--border-amber);background:var(--surface-cream);flex-shrink:0;width:32px;height:32px;overflow:hidden;box-shadow:0 4px 10px #0000000a}.chat-avatar .tanu-container{width:100%!important;height:100%!important}.chat-avatar .tanu-image-frame{box-shadow:none!important;border:none!important;border-radius:0!important;animation:none!important}.chat-only .bubble{max-width:100%;padding:.85rem 1.1rem;box-shadow:0 4px 15px #00000008;margin:0!important}.chat-only .bubble p{white-space:pre-wrap;word-break:break-word;margin:0}.chat-only .bubble.learner{border-bottom-right-radius:6px!important}.chat-only .bubble.tutor{border-bottom-left-radius:6px!important}.chat-composer-section{background:#ffffffd9;border-top:1px solid #94a3b81f;flex-direction:column;flex:none;gap:.65rem;padding:1rem 1.5rem;width:100%!important;display:flex!important}.composer-row{align-items:flex-end;gap:.8rem;display:flex}.mascot-input-widget{flex-shrink:0;margin-bottom:2px}.mascot-input-widget .tanu-image-frame{border-radius:var(--radius-sm)!important;box-shadow:0 6px 15px #4314071a!important}.input-wrapper{background:var(--surface-card);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);flex:1;align-items:flex-end;width:100%;padding:.4rem .5rem .4rem 1rem;transition:all .2s;display:flex;position:relative;box-shadow:0 2px 8px #00000005}.input-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #f973161f}.input-wrapper textarea{max-height:100px;font-size:var(--text-md);color:var(--ink);flex:1;padding:.35rem 0;line-height:1.4;resize:none!important;min-height:34px!important;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important}.send-button{background:var(--color-primary-strong);color:var(--ink-inverse);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;border:none;flex-shrink:0;padding:.45rem 1.1rem;font-weight:800;transition:background .2s}.send-button:hover{background:var(--color-brand-ink)}.send-button:disabled{background:var(--border);color:var(--ink-disabled);cursor:not-allowed}.composer-error{color:var(--danger-strong);background:var(--danger-surface);border-radius:var(--radius-xs);font-size:var(--text-xs);border:1px solid var(--danger-soft);align-items:flex-start;gap:.4rem;padding:.4rem .4rem .4rem .9rem;display:flex}.composer-error-text{overflow-wrap:anywhere;flex:auto;min-width:0;padding-top:.2rem}.composer-notice{border:1px solid var(--warning-border);border-radius:var(--radius-xs);background:var(--warning-surface);color:var(--warning-deep);font-size:var(--text-xs);align-items:center;gap:.4rem .6rem;padding:.4rem .4rem .4rem .9rem;display:flex}.composer-notice-text{overflow-wrap:anywhere;flex:auto;min-width:0}.composer-notice .ui-button.composer-notice-retry{flex:none}.bubble-failed-row{flex-wrap:wrap}.bubble-failed-note{flex:12rem;min-width:0}.bubble-failed-note small{overflow-wrap:anywhere;margin-top:.15rem;font-weight:600;display:block}.bubble-failed-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.bubble-failed-actions .composer-upgrade-link{margin-left:0}.mascot-hint-bubble-inline{border:1px solid var(--border-amber);animation:.3s ease-out tanu-slide-in}.mascot-hint-copy{overflow-wrap:anywhere;flex:auto;min-width:0;display:block}.mascot-hint-copy span+span{margin-left:.3rem}@keyframes tanu-slide-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.conversation-shell,.conversation-shell.history-collapsed{grid-template-columns:minmax(0,1fr)}.conversation-sidebar,.chat-header-history{display:none}.conversation-delete-btn,.scenario-remove-btn{opacity:1}.chat-message-row{max-width:94%}}@media (width<=640px){main.conversation-main{padding:0}.conversation-shell{gap:0}.conversation-layout.chat-only{height:100%;box-shadow:none;border:none;border-radius:0;margin:0}.chat-header{gap:.3rem;min-height:56px;padding:.3rem .5rem .3rem .25rem}.chat-header h1{font-size:var(--text-md)!important}.chat-step:not(.is-current){display:none}.chat-session-hint{font-size:var(--text-2xs)}.chat-header-actions .chat-recap-btn{font-size:var(--text-sm);padding:.4rem .75rem}.chat-sheet-backdrop{align-items:flex-end;padding:0}.chat-sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:85dvh}.article-collapsible-toggle{flex-direction:column;align-items:flex-start;gap:.25rem}.warning-banner{font-size:var(--text-xs)!important;padding:.55rem .75rem!important}.article-collapsible-header{font-size:var(--text-xs)!important;padding:0 .75rem!important}.chat-context-note{font-size:var(--text-xs);padding:.5rem .75rem}.chat-messages{gap:.75rem;padding:.75rem}.chat-messages-container{gap:.75rem}.chat-message-row{gap:.45rem;max-width:96%}.chat-message-row.learner{max-width:92%}.chat-avatar{width:28px;height:28px}.chat-opener-seed{margin-left:calc(28px + .45rem)}.chat-only .bubble{border-radius:var(--radius-md);font-size:var(--text-md);padding:.7rem .8rem}.chat-composer-section{padding:.6rem .75rem calc(.6rem + var(--safe-bottom));gap:.45rem}.composer-container{gap:.45rem}.mascot-hint-bubble-inline{line-height:1.35;font-size:var(--text-xs)!important;align-items:flex-start!important}.composer-row{gap:0}.mascot-input-widget{display:none}.input-wrapper{border-radius:var(--radius-sm);padding:.3rem .35rem .3rem .75rem}.input-wrapper textarea{max-height:76px;padding:.2rem 0;line-height:1.3;min-height:30px!important}.send-button{border-radius:var(--radius-xs);min-height:44px;padding:.42rem .8rem}}@media (width<=360px){.chat-header-actions .chat-recap-btn{padding-inline:.6rem}}.info-page{gap:1rem;max-width:1180px;margin:0 auto;display:grid}.info-hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:stretch;gap:1rem;display:grid}.info-hero-card,.info-rule-card,.info-section,.info-footer-card{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);background:#ffffffdb;border:1px solid #ffffff9e;box-shadow:0 24px 64px #4314071f}.info-hero-card{background:linear-gradient(135deg, var(--ink-strong), var(--ink-raised) 68%, var(--color-brand-ink) 100%);min-height:360px;color:var(--ink-inverse);align-content:center;padding:clamp(1.6rem,4vw,3.8rem);display:grid}.info-hero-card .eyebrow{color:var(--border-amber)}.info-hero-card h1{letter-spacing:-.075em;max-width:780px;margin:.25rem 0 1rem;font-size:clamp(2.4rem,6vw,5.2rem);line-height:.95}.info-hero-card p{color:#ffffffd1;max-width:720px;font-size:var(--text-lg);line-height:1.65}.info-rule-card{background:radial-gradient(circle at 85% 10%,#f973163d,#0000 38%),linear-gradient(145deg,#fffbebf5,#ffedd5e6);border-color:#fb923c6b;align-content:center;gap:.75rem;padding:clamp(1.25rem,2.8vw,2rem);display:grid}.info-rule-card span,.info-feature-card span{border-radius:var(--radius-pill);background:var(--surface-peach);width:fit-content;color:var(--color-brand-ink);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;padding:.28rem .65rem;font-weight:900}.info-rule-card h2,.info-footer-card h2,.info-section-heading h2{color:var(--color-brand-deepest);letter-spacing:-.055em;margin:0}.info-rule-card h2{font-size:var(--text-title);line-height:1}.info-rule-card p,.info-rule-card small,.info-section-heading p,.info-step-card p,.info-feature-card p,.info-feature-card li,.info-level-row p,.info-level-note p,.info-footer-card p{line-height:1.55}.info-rule-card p{color:var(--color-brand-deep);margin:0;font-weight:800}.info-rule-card small{color:var(--color-brand-ink);font-weight:700}.info-section,.info-footer-card{padding:clamp(1.2rem,3vw,2rem)}.info-section-heading{gap:.35rem;margin-bottom:1rem;display:grid}.info-section-heading p:not(.eyebrow){max-width:860px;color:var(--ink-faint);margin:0;font-weight:700}.info-section-heading h2{font-size:var(--text-headline)}.info-step-grid,.info-feature-grid{gap:.85rem;display:grid}.info-step-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.info-step-card,.info-feature-card,.info-level-note{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);padding:1rem}.info-step-card h3,.info-feature-card h3,.info-level-note h3{color:var(--ink);letter-spacing:-.035em;margin:0 0 .45rem}.info-step-card p,.info-feature-card p,.info-level-note p{color:var(--ink-muted);margin:0}.info-feature-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.info-feature-card{align-content:start;gap:.7rem;min-height:100%;display:grid}.info-feature-card h3{font-size:var(--text-xl);margin-bottom:0}.info-feature-card ul{gap:.35rem;margin:0;padding-left:1.1rem;display:grid}.info-feature-card li{color:var(--ink-faint);font-size:var(--text-md)}.info-feature-card .link-button{color:var(--color-primary-strong);justify-self:start;margin-top:.2rem;font-weight:900}.info-level-section{scroll-margin-top:104px}.info-level-table{gap:.55rem;display:grid}.info-level-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);grid-template-columns:.72fr 1fr 1fr minmax(0,2.4fr);align-items:start;gap:.75rem;padding:.85rem 1rem;display:grid}.info-level-row.header{background:var(--ink);border-color:var(--ink);color:var(--ink-inverse);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:900}.info-level-row strong{color:var(--color-primary-strong);font-size:var(--text-base)}.info-level-row span{color:var(--ink-soft);font-weight:850}.info-level-row p{color:var(--ink-faint);margin:0}.info-level-row.header span,.info-level-row.header strong{color:var(--ink-inverse)}.info-level-row.current{background:var(--surface-cream);border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.info-level-you{color:var(--color-primary-strong);font-style:normal;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem;font-weight:900;display:block}.info-level-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:.85rem;display:grid}.info-level-note{background:var(--surface-cream);border-color:var(--border-amber);margin-top:.85rem}.info-level-notes .info-level-note{margin-top:0}.info-level-note h3{color:var(--color-brand-ink)}.info-level-note p{color:var(--color-brand-deep)}.info-skill-note{background:var(--info-surface);border-color:var(--info-border)}.info-skill-note h3{color:var(--info-deep)}.info-skill-note p{color:var(--info-strong)}.info-skill-pill-list{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.info-skill-pill-list span{border-radius:var(--radius-pill);background:var(--surface-card);color:var(--info-strong);border:1px solid var(--info-border);font-size:var(--text-xs);padding:.32rem .6rem;font-weight:900}.info-footer-card{background:linear-gradient(135deg,#fffbebf2,#fed7aae0);border-color:#fb923c57;justify-items:start;gap:.75rem;display:grid}.info-footer-card p{max-width:880px;color:var(--color-brand-deep);margin:0;font-weight:750}@media (width<=980px){.info-hero-grid,.info-step-grid,.info-level-notes{grid-template-columns:1fr}.info-hero-card{min-height:0}}@media (width<=700px){.info-hero-card,.info-rule-card,.info-section,.info-footer-card{border-radius:var(--radius-mobile);padding:var(--card-padding-mobile)}.info-hero-card h1{font-size:clamp(2rem,11vw,3rem)}.info-hero-card p{font-size:var(--text-md)}.info-hero-actions .button,.info-footer-card .button{width:100%}.info-feature-grid{grid-template-columns:1fr}.info-level-row.header{display:none}.info-level-row{grid-template-columns:1fr;gap:.35rem}}.pricing-page{gap:1.4rem;display:grid}.pricing-header{gap:.5rem;max-width:760px;display:grid}.pricing-header h1{font-size:var(--text-headline);letter-spacing:-.05em;color:var(--color-brand-deepest);margin:0;line-height:1.05}.pricing-header p:not(.eyebrow){color:var(--ink-muted);margin:0;font-weight:600;line-height:1.55}.pricing-header .pricing-teacher-line a{min-height:44px;color:var(--color-brand-ink);text-underline-offset:.2em;align-items:center;font-weight:800;text-decoration:underline;display:inline-flex}#teacher-plan{scroll-margin-top:5rem}.pricing-toggle{border-radius:var(--radius-pill);background:var(--surface-subtle);border:1px solid var(--border);align-items:center;gap:.35rem;width:max-content;padding:.25rem;display:inline-flex}.pricing-toggle button{color:var(--ink-muted);border-radius:var(--radius-pill);font-size:var(--text-sm);background:0 0;padding:.5rem 1rem;font-weight:800}.pricing-toggle button:hover{background:#0000000a}.pricing-toggle button.active,.pricing-toggle button.active:hover{background:var(--state-selected);color:var(--state-selected-ink)}.pricing-badge{border-radius:var(--radius-pill);font-size:var(--text-2xs);background:var(--surface-peach);color:var(--color-brand-ink);letter-spacing:.02em;padding:.22rem .6rem;font-weight:900;display:inline-block}.pricing-badge.beta{background:var(--success-soft);color:var(--success-strong)}.pricing-beta{border-radius:var(--radius-md);background:var(--success-surface);border:1px solid var(--success-border);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.9rem 1.1rem;display:flex}.pricing-beta p{color:var(--ink-muted);line-height:1.5;font-size:var(--text-md);flex:16rem;margin:0;font-weight:650}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:stretch;gap:1rem;display:grid}.plan-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-rows:auto auto auto 1fr auto;gap:.8rem;padding:1.3rem;display:grid;position:relative}.plan-card.featured{border-color:var(--color-primary);box-shadow:0 18px 44px #f9731629}.plan-card .plan-name{font-size:var(--text-lg);color:var(--ink);justify-content:space-between;align-items:center;gap:.5rem;margin:0;font-weight:900;display:flex}.plan-card .plan-tagline{color:var(--ink-faint);font-size:var(--text-sm);margin:0;font-weight:700}.plan-price{gap:.15rem;display:grid}.plan-price strong{font-size:var(--text-title);letter-spacing:-.04em;color:var(--color-brand-deepest);line-height:1}.plan-price strong small{font-size:var(--text-sm);color:var(--ink-faint);letter-spacing:0;margin-left:.25rem;font-weight:800}.plan-price span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:700}.plan-features{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.plan-features li{font-size:var(--text-md);color:var(--ink-soft);align-items:flex-start;gap:.5rem;font-weight:650;line-height:1.4;display:flex}.plan-features li:before{content:"✓";color:var(--color-primary);flex:none;font-weight:900}.plan-cta{gap:.45rem;display:grid}.plan-cta .button,.plan-cta button{width:100%}.plan-cta .error{margin:0}.pricing-footnotes{color:var(--ink-faint);font-size:var(--text-xs);gap:.35rem;font-weight:650;line-height:1.5;display:grid}.pricing-footnotes p{margin:0}.pricing-links{font-size:var(--text-sm);flex-wrap:wrap;gap:.5rem 1.2rem;font-weight:750;display:flex}.pricing-links a{color:var(--ink-muted)}.pricing-trademark{color:var(--ink-faint);font-size:var(--text-2xs);margin:0;line-height:1.5}.landing-pricing-teaser .landing-section-heading{flex-wrap:wrap;align-items:baseline;gap:.4rem .8rem;display:flex}.landing-pricing-teaser .landing-section-heading h2{flex:100%}.landing-pricing-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.landing-pricing-tile{background:var(--surface-cream);border:1px solid var(--border-amber);border-radius:var(--radius-md);gap:.3rem;padding:1rem;display:grid}.landing-pricing-tile strong{font-size:var(--text-lg);color:var(--color-brand-deepest)}.landing-pricing-tile em{color:var(--color-brand-ink);font-style:normal;font-weight:900}.landing-pricing-tile p{color:var(--ink-muted);font-size:var(--text-sm);margin:0;font-weight:650;line-height:1.45}.landing-pricing-teaser .landing-actions{margin-top:0}.settings-billing{border-top:1px solid var(--border);gap:.8rem;margin-top:2.5rem;padding-top:1.5rem;display:grid}.settings-billing h2{font-size:var(--text-xl);margin:0}.settings-billing-row{flex-wrap:wrap;align-items:center;gap:.5rem .8rem;display:flex}.plan-pill{border-radius:var(--radius-pill);font-size:var(--text-xs);background:var(--surface-subtle);color:var(--ink-muted);border:1px solid var(--border);align-items:center;padding:.25rem .7rem;font-weight:900;display:inline-flex}.plan-pill.plus{background:var(--color-primary);color:var(--ink-inverse);border-color:var(--color-primary)}.plan-pill.beta{background:var(--success-soft);color:var(--success-strong);border-color:var(--success-border)}.plan-pill.warn{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}.settings-billing p{color:var(--ink-muted);line-height:1.5;font-size:var(--text-md);margin:0}.settings-billing .billing-warning{color:var(--color-brand-gold);font-weight:750}.settings-billing-actions{flex-wrap:wrap;gap:.5rem;display:flex}.teacher-seat-form{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);gap:.6rem;margin-bottom:1.2rem;padding:1rem;display:grid}.teacher-seat-form label{gap:.3rem;font-weight:800;display:grid}.teacher-seat-form input{max-width:160px}.teacher-seat-form small{color:var(--ink-faint);font-weight:650;line-height:1.45}.teacher-seat-preview{font-size:var(--text-md);color:var(--ink-soft);flex-wrap:wrap;gap:.4rem 1.2rem;font-weight:700;display:flex}.teacher-seat-preview strong{color:var(--color-brand-deepest)}.teacher-plan-pill.past_due{background:var(--warning-accent);border-color:var(--warning-accent);color:var(--ink-strong)}.teacher-billing-cta .actions{flex-wrap:wrap;gap:.5rem;display:flex}.composer-upgrade-link{color:var(--color-primary-strong);margin-left:.5rem;font-weight:900;text-decoration:underline;display:inline-block}.composer-upgrade-link:hover{color:var(--color-primary-hover)}.commerce-table{border:1px solid var(--border);border-radius:var(--radius-md);gap:0;margin:1rem 0;display:grid;overflow:hidden}.commerce-row{border-top:1px solid var(--border);font-size:var(--text-md);grid-template-columns:minmax(140px,1fr) 2fr;gap:.5rem;padding:.7rem .9rem;line-height:1.5;display:grid}.commerce-row:first-child{border-top:0}.commerce-row:nth-child(2n){background:var(--surface-subtle)}.commerce-row dt{color:var(--ink-soft);margin:0;font-weight:800}.commerce-row dd{color:var(--ink);margin:0}@media (width<=640px){.commerce-row{grid-template-columns:1fr;gap:.15rem}.plan-card{padding:1.1rem}}.admin-shell{min-height:100vh}.admin-shell>main{padding:clamp(.75rem,2.5vw,2rem)}.admin-page{gap:.9rem;max-width:1100px;margin:0 auto;display:grid}.admin-page input,.admin-page select,.admin-page textarea{font-size:16px}.admin-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:#fffffff0;min-width:0;padding:1rem}.admin-stack{gap:.9rem;display:grid}.admin-tab-body{min-width:0}.admin-page h1{letter-spacing:-.04em}.admin-page h2{font-size:var(--text-lg);letter-spacing:-.02em;margin:0 0 .6rem}.admin-page h3{font-size:var(--text-base);margin:1rem 0 .4rem}.admin-page .eyebrow{margin:0 0 .2rem}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.admin-header h1{font-size:var(--text-title);margin:0;line-height:1}.admin-header-meta{color:var(--ink-faint);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.6rem;font-weight:700;display:flex}.admin-header-meta button{font-size:var(--text-sm);padding:.5rem .9rem}.admin-tabs{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-pill);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:.3rem;padding:.25rem;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs button{color:var(--ink-muted);border-radius:var(--radius-pill);font-weight:800;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;padding:.5rem .95rem}.admin-tabs button:hover{background:#1720330f}.admin-tabs button.active{background:var(--state-selected);color:var(--state-selected-ink)}.admin-tabs button.active:hover{background:var(--state-selected)}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.9rem 0 1rem;display:grid}.admin-stat{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:.8rem}.admin-stat strong{font-size:var(--text-2xl);overflow-wrap:anywhere;line-height:1.15;display:block}.admin-stat span{color:var(--ink-faint);font-size:var(--text-xs);font-weight:800}.admin-stat small{color:var(--ink-faint);font-size:var(--text-2xs);overflow-wrap:anywhere;margin-top:.2rem;display:block}.admin-badge{border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap;vertical-align:middle;padding:.2rem .55rem;font-weight:900;display:inline-block}.admin-badge-ok{background:var(--success-surface);color:var(--success-strong);border:1px solid var(--success-border)}.admin-badge-warn{background:var(--warning-surface);color:var(--warning);border:1px solid var(--warning-border)}.admin-badge-danger{background:var(--danger-surface);color:var(--danger-strong);border:1px solid var(--danger-border)}.admin-badge-neutral{background:var(--surface-muted);color:var(--ink-muted);border:1px solid var(--border)}.admin-table-wrap{width:100%;min-width:0}.admin-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.admin-table caption{text-align:left;color:var(--ink-faint);padding:0 0 .4rem;font-weight:800}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:.55rem .6rem}.admin-table th{background:var(--surface-muted);color:var(--ink-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:800}.admin-table th.num,.admin-table td.num{text-align:right;font-variant-numeric:tabular-nums}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{width:100%;display:block}.admin-table thead{display:none}.admin-table tr{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);margin-bottom:.6rem;padding:.35rem .6rem}.admin-table tbody tr:nth-child(2n){background:var(--surface-card)}.admin-table td{border-bottom:1px solid var(--surface-muted);text-align:left;grid-template-columns:minmax(0,36%) minmax(0,1fr);gap:.5rem;padding:.4rem 0;display:grid}.admin-table td:last-child{border-bottom:0}.admin-table td:before{content:attr(data-label);color:var(--ink-faint);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;padding-top:.15rem;font-weight:800}.admin-table td.num{text-align:left}@media (width>=640px){.admin-table-wrap{overflow-x:auto}.admin-table{display:table}.admin-table thead{display:table-header-group}.admin-table tbody{display:table-row-group}.admin-table tr{background:0 0;border:0;border-radius:0;margin:0;padding:0;display:table-row}.admin-table tbody tr:nth-child(2n){background:var(--surface-subtle)}.admin-table td{border-bottom:1px solid var(--border);width:auto;padding:.55rem .6rem;display:table-cell}.admin-table td:before{content:none}.admin-table td.num{text-align:right}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=960px){.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-bars{gap:.3rem;display:grid}.admin-bar-row{font-size:var(--text-xs);grid-template-columns:minmax(3.5rem,auto) minmax(0,1fr) 3.2rem;align-items:center;gap:.5rem;display:grid}.admin-bar-label{color:var(--ink-faint);white-space:nowrap;font-weight:700}.admin-bar-track{border-radius:var(--radius-pill);background:var(--border);height:10px;display:block;overflow:hidden}.admin-bar-track i{background:var(--color-primary);border-radius:var(--radius-pill);min-width:2px;height:100%;display:block}.admin-bar-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.admin-form{gap:.7rem;display:grid}.admin-form-grid{grid-template-columns:1fr;gap:.7rem;display:grid}.admin-field{color:var(--ink-soft);font-weight:800;font-size:var(--text-sm);gap:.3rem;min-width:0;display:grid}.admin-field small{color:var(--ink-faint);font-weight:600;font-size:var(--text-xs);line-height:1.4}.admin-field input,.admin-field select{padding:.7rem .85rem}.admin-field.checkbox{grid-template-columns:auto 1fr;align-items:center;gap:.45rem;margin:0}.admin-field.checkbox input{width:auto;margin:0}.admin-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-actions button,.admin-actions .button{font-size:var(--text-sm);padding:.62rem .95rem}.admin-actions .link-button{font-size:var(--text-sm);padding:0}.admin-form-error{color:var(--danger-strong);margin:0;font-weight:700}.admin-inline-select{width:auto;max-width:100%;padding:.45rem 1.8rem .45rem .7rem}.admin-inline-edit{gap:.4rem;display:grid}.admin-inline-edit input{padding:.45rem .6rem}.admin-row-actions{flex-wrap:wrap;gap:.35rem;display:flex}.admin-row-actions button{font-size:var(--text-xs);padding:.38rem .7rem}@media (width>=640px){.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}}.admin-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:var(--text-md);letter-spacing:.05em;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-xs);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;padding:.35rem .6rem}.admin-code.large{font-size:var(--text-xl);letter-spacing:.12em}.admin-qr{justify-items:center;margin:.6rem 0;display:grid}.admin-qr img{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);width:min(260px,70vw);height:auto;padding:.5rem}.admin-secret{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0;display:flex}.admin-copy{font-size:var(--text-xs);padding:.35rem .7rem}.admin-countdown{color:var(--ink-faint);font-size:var(--text-sm);font-weight:700}.admin-auth-card{gap:.8rem;max-width:500px;margin:2rem auto;display:grid}.admin-auth-card h1{font-size:var(--text-title);margin:0;line-height:1.05}.admin-auth-card .admin-form{margin-top:.4rem}.admin-notice{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-subtle);font-size:var(--text-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem .95rem;line-height:1.5;display:flex}.admin-notice.warn{background:var(--warning-surface);border-color:var(--warning-border);color:var(--warning)}.admin-notice.ok{background:var(--success-surface);border-color:var(--success-border);color:var(--success-strong)}.admin-notice.danger{background:var(--danger-surface);border-color:var(--danger-border);color:var(--danger-strong)}.admin-notice button{font-size:var(--text-sm);padding:.45rem .85rem}.admin-error{border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-surface);color:var(--danger-strong);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.8rem 1rem;font-weight:700;line-height:1.45;display:flex}.admin-error button{font-size:var(--text-sm);padding:.45rem .85rem}.admin-empty{color:var(--ink-faint);font-size:var(--text-sm);margin:.4rem 0;line-height:1.5}.admin-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.admin-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.admin-panel-head h2,.admin-panel-head h3{margin:0}.admin-result{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-card);gap:.5rem;margin-top:.8rem;padding:.85rem 1rem;display:grid}.admin-result.ok{border-color:var(--success-border-strong);background:var(--success-surface)}.admin-result.danger{border-color:var(--danger-border-strong);background:var(--danger-surface)}.admin-result strong{font-size:var(--text-base)}.admin-kv{font-size:var(--text-sm);grid-template-columns:minmax(0,40%) minmax(0,1fr);gap:.35rem .8rem;margin:.3rem 0;display:grid}.admin-kv dt{color:var(--ink-faint);overflow-wrap:anywhere;font-weight:800}.admin-kv dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}.admin-pre{font-size:var(--text-xs);max-height:320px;margin:.4rem 0 0;overflow:auto}.testkit-page{--testkit-flag:#b45309;--testkit-flag-bg:#fffbeb;--testkit-flag-border:#fcd34d;--testkit-refuse:#b91c1c;--testkit-refuse-bg:#fef2f2;--testkit-refuse-border:#fca5a5}@media (prefers-color-scheme:dark){.testkit-page{--testkit-flag:#fcd34d;--testkit-flag-bg:#2a2008;--testkit-flag-border:#78560c;--testkit-refuse:#fca5a5;--testkit-refuse-bg:#2c1414;--testkit-refuse-border:#7f1d1d}}.testkit-banner{z-index:20;background:var(--testkit-flag-bg);border:1px solid var(--testkit-flag-border);color:var(--testkit-flag);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:1rem;padding:.55rem .9rem;font-size:.85rem;line-height:1.3;display:flex;position:sticky;top:0}.testkit-banner-flag{letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.testkit-banner-build{opacity:.75;font-variant-numeric:tabular-nums;margin-left:auto}.testkit-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem 1rem;margin:.75rem 0 1rem;display:grid}.testkit-preview{border:1px dashed var(--admin-border,#d4d4d8);border-radius:10px;margin:1rem 0;padding:.85rem 1rem}.testkit-preview h3{margin-top:0}.testkit-refusals{background:var(--testkit-refuse-bg);border:1px solid var(--testkit-refuse-border);color:var(--testkit-refuse);border-radius:8px;margin:.5rem 0;padding:.7rem .9rem}.testkit-warnings{background:var(--testkit-flag-bg);border:1px solid var(--testkit-flag-border);color:var(--testkit-flag);border-radius:8px;margin:.5rem 0;padding:.7rem .9rem}.testkit-refusals ul,.testkit-warnings ul,.testkit-notes{margin:.4rem 0 0;padding-left:1.1rem}.testkit-hint{opacity:.8;margin:.5rem 0;font-size:.85rem}.testkit-hint code{background:var(--admin-code-bg,#7f7f7f24);border-radius:4px;padding:.05em .3em;font-size:.95em}.testkit-blocked{margin:.4rem 0;font-size:.9rem}.testkit-inventory{margin-top:1.25rem}.testkit-inventory h3{align-items:center;gap:.5rem;display:flex}.testkit-page input,.testkit-page select{font-size:16px}.app-shell,main,.topbar,.page-grid,.info-page,.info-hero-grid,.info-step-grid,.info-feature-grid,.info-level-row,.conversation-shell,.conversation-layout{min-width:0;max-width:100%}img,video,canvas{max-width:100%;height:auto}.panel,.article-card,.assignment-card,.teacher-assignment-card,.manual-card-row,.drill-card,.jlpt-panel,.jlpt-resource-card,.toeic-panel,.summary,.bubble,.drill-prompt,.drill-answer-card,.jlpt-review-body,.toeic-review-body{overflow-wrap:anywhere;min-width:0}.jlpt-resource-grid,.toeic-passage{-webkit-overflow-scrolling:touch}.nav-scroll,.teacher-bars{overscroll-behavior-x:contain;min-width:0;max-width:100%}.settings-voice-row select,.settings-voice-row button,.teacher-share-card strong,.class-preview-meta strong{min-width:0}@media (width<=1180px){.page-grid,.teacher-page,.join-class-page,.jlpt-resource-toolbar{grid-template-columns:1fr}.panel.wide{grid-column:span 1}.flashcards-grid>.panel.wide:last-child{grid-column:1}.dashboard-grid>.panel{grid-area:auto/1}.teacher-class-hero,.teacher-share-card{flex-direction:column}}@media (width<=980px){body{background-position:top;background-attachment:scroll}.local-launcher-grid,.manual-card-grid,.teacher-form-row,.teacher-form-row.three,.join-class-form{grid-template-columns:1fr}}@media (width<=768px){.hero-card h1{letter-spacing:-.055em;font-size:clamp(2rem,10vw,3.4rem);line-height:1.02}.hero-card p{font-size:var(--text-base)}.stat-grid,.drill-summary-grid,.class-preview-meta,.teacher-summary-grid,.teacher-analytics-stats,.toeic-score-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}.list-row,.manual-deck-header,.manual-card-form-heading,.manual-card-row,.panel-title-row,.teacher-student-row,.toeic-history-row,.jlpt-history-row{flex-direction:column;align-items:stretch!important;display:flex!important}.deck-actions,.manual-form-actions,.manual-deck-header-actions,.drill-actions-row,.drill-grade-buttons,.suggestion-actions{flex-wrap:wrap;align-items:stretch;width:100%}.deck-actions button,.manual-form-actions button,.manual-deck-header-actions button,.drill-actions-row button,.drill-actions-row .button,.drill-grade-buttons button,.suggestion-actions button,.settings-voice-row button{white-space:normal;overflow-wrap:anywhere;flex:auto;min-width:min(100%,150px);min-height:44px}.daily-plan-steps{grid-template-columns:1fr!important}.settings-voice-row{grid-template-columns:1fr;display:grid!important}.teacher-share-card strong,.upload-rights-file strong{overflow-wrap:anywhere}}@media (width<=640px){main:not(.conversation-main){padding:var(--page-padding-mobile);padding-bottom:calc(4.8rem + var(--safe-bottom))}.topbar{grid-template-columns:auto minmax(0,1fr)}.nav-scroll a{min-height:36px}.topbar-auth-button{font-size:var(--text-xs);white-space:nowrap;padding:.48rem .65rem}.offline-pill{right:7.6rem;bottom:calc(.75rem + var(--safe-bottom));white-space:normal;max-width:min(82vw,320px);font-size:var(--text-xs)}.suggestion-fab{right:.75rem;bottom:calc(.75rem + var(--safe-bottom))}.install-help{left:.75rem;right:.75rem;bottom:calc(5.4rem + var(--safe-bottom));grid-template-columns:auto minmax(0,1fr);width:auto}.install-help-dismiss{width:100%}.install-help-actions{grid-column:1/-1;grid-template-columns:1fr;display:grid}.install-help-actions button{width:100%}.panel,.hero-card,.drill-card,.jlpt-panel,.jlpt-resource-card,.toeic-panel,.toeic-score-card,.suggestion-modal{border-radius:var(--radius-mobile);padding:var(--card-padding-mobile)}.panel h1{letter-spacing:-.055em;font-size:clamp(1.65rem,8vw,2.35rem);line-height:1.05}.actions,.actions.compact,.teacher-assignment-grid,.jlpt-resource-grid,.jlpt-resource-grid.kana,.drill-options,.manual-card-grid{grid-template-columns:1fr}.actions .button,.actions button,.actions.compact .button,.actions.compact button,.join-class-form button,.manual-card-form-heading button{width:100%}.drill-page{gap:.7rem;min-height:auto}.drill-card{gap:.75rem}.drill-topbar,.drill-progress-row,.drill-footer-row{gap:.55rem}.drill-topbar-meta{justify-content:flex-start}.drill-prompt{border-radius:var(--radius-md);padding:.9rem}.drill-prompt strong,.drill-answer-card strong{letter-spacing:-.025em;font-size:clamp(1.3rem,8vw,2rem);line-height:1.15}.drill-study-list{max-height:min(52dvh,520px);padding-right:.15rem;overflow-y:auto}.drill-study-item{border-radius:var(--radius-sm);grid-template-columns:1fr;padding:.8rem}.drill-typing,.drill-typing[style]{grid-template-columns:1fr;gap:.55rem;display:grid!important}.drill-typing input,.drill-textarea{min-height:48px;font-size:var(--text-base)!important;border-radius:var(--radius-sm)!important;padding:.72rem .85rem!important}.drill-options button{min-height:56px;padding:.8rem .9rem}.jlpt-audio-box,.toeic-audio-box{flex-direction:column;align-items:stretch;gap:.5rem}.jlpt-audio-box button,.toeic-audio-box button{width:100%}.toeic-passage{max-height:min(45dvh,340px);font-size:var(--text-sm);overflow-y:auto}.jlpt-resource-grid,.jlpt-resource-grid.kana{max-height:min(62dvh,620px);overflow-y:auto}.jlpt-review-item summary,.toeic-review-item summary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:.7rem;display:grid}.jlpt-review-item summary strong,.toeic-review-item summary strong{overflow-wrap:anywhere;min-width:0}.toeic-skill-row{grid-template-columns:1fr;gap:.4rem}.teacher-bars{grid-template-columns:repeat(7,minmax(42px,1fr));overflow-x:auto}.teacher-class-card,.teacher-assignment-card div{flex-direction:column;align-items:flex-start}.class-preview-meta{grid-template-columns:1fr}.suggestion-overlay{padding:.75rem}.suggestion-modal{max-height:calc(100dvh - 1.5rem - var(--safe-bottom));overflow-y:auto}.suggestion-categories{grid-template-columns:1fr}.suggestion-chip{justify-content:flex-start;width:100%}.suggestion-actions{flex-direction:column-reverse}.upload-rights-file,.upload-rights-check{align-items:flex-start}}@media (width<=640px),(pointer:coarse){.input-wrapper textarea,.scenario-create-form input,.scenario-create-form textarea{font-size:16px}}@media (width<=430px){.topbar{gap:.38rem .45rem;padding:.48rem .6rem .45rem}.brand{font-size:var(--text-base)}.nav-scroll a{font-size:var(--text-xs);padding:.34rem .52rem}.topbar-actions{gap:.25rem}.direction-switcher{background:0 0;border:0;padding:0}.direction-switcher select{min-width:64px;font-size:var(--text-2xs);padding:.36rem 1.18rem .36rem .48rem}.topbar-actions .install-button{font-size:var(--text-2xs);padding:.34rem .45rem}.topbar-icon-link{width:32px;height:32px}.topbar-auth-button{font-size:var(--text-2xs);padding:.4rem .48rem}.topbar-login-link{font-size:var(--text-2xs)}main:not(.conversation-main){padding-inline:.55rem}.panel,.hero-card,.drill-card,.jlpt-panel,.jlpt-resource-card,.toeic-panel,.suggestion-modal{border-radius:var(--radius-md);padding:.78rem}.hero-card h1{font-size:clamp(1.85rem,11vw,2.55rem)}.stat-grid,.drill-summary-grid,.toeic-score-grid,.jlpt-score-grid{grid-template-columns:1fr}.drill-prompt strong,.drill-answer-card strong,.jlpt-resource-card strong{font-size:clamp(1.2rem,8vw,1.75rem)}.jlpt-resource-card.kanji strong,.jlpt-resource-card.kana strong{font-size:var(--text-6xl)}.offline-pill{left:.55rem;right:7.6rem;bottom:calc(.6rem + var(--safe-bottom));border-radius:var(--radius-sm)}.suggestion-fab{bottom:calc(.6rem + var(--safe-bottom))}}@media (height<=480px) and (orientation:landscape){.drill-study-list,.jlpt-resource-grid,.toeic-passage{max-height:48dvh}}@media (width<=899.98px){.app-shell--v2.has-app-nav .offline-pill{left:auto;right:.75rem;bottom:calc(76px + var(--safe-bottom))}.app-shell--v2.has-app-nav .toast{bottom:calc(76px + var(--safe-bottom))}}@media (width<=640px){.app-shell--v2 main:not(.conversation-main){padding-bottom:var(--page-padding-mobile)}}@media (width<=360px){.app-nav__item{font-size:var(--text-2xs)}.app-nav__icon{width:44px}}
