@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces-latin-full-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces-latin-full-italic.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/zen-kaku-gothic-new-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/zen-kaku-gothic-new-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/zen-kaku-gothic-new-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/zen-kaku-gothic-new-japanese-400-normal.woff2) format("woff2");unicode-range:U+3000-30FF,U+31F0-31FF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FF00-FFEF}:root{color-scheme:light;--washi: #f1ece0;--paper: #fbf8f0;--paper-soft: #f6f1e6;--paper-2: var(--paper-soft);--sumi: #1c1b17;--ink: #2b2922;--ink-soft: #645f51;--ink-faint: #6f6856;--dojo-red: #c8472c;--dojo-red-dark: #9e3320;--shu: var(--dojo-red);--shu-deep: var(--dojo-red-dark);--indigo: #2c4150;--indigo-soft: #4a6172;--target-good: #3b6d40;--target-good-soft: #edf3e6;--contrast-warn: #8a5a16;--contrast-warn-soft: #f7eeda;--danger: #9e3320;--line: #ddd6c5;--line-soft: #e7e1d3;--ok: var(--target-good);--ok-soft: var(--target-good-soft);--warn: var(--contrast-warn);--warn-soft: var(--contrast-warn-soft);--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-learning-word: Georgia, "Times New Roman", Times, serif;--font-body: "Zen Kaku Gothic New", ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--header-pill-height: 36px;--header-pill-font-size: .86rem;--header-pill-font-weight: 500;font-family:var(--font-body);background:var(--washi);color:var(--sumi);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--washi)}button{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.shell{width:min(1080px,calc(100% - 36px));margin:0 auto;padding:26px 0 56px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:8px 0 30px;border-bottom:1px solid var(--line);margin-bottom:30px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-seal{display:block;flex:0 0 auto;width:38px;height:38px;border-radius:8px}.brand-text{min-width:0}.brand h1{font-family:var(--font-display);font-weight:500;font-size:1.5rem;line-height:1;letter-spacing:.2px}.topbar p{margin-top:6px;max-width:460px;color:var(--ink-soft);font-size:.84rem;line-height:1.4}.top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.nav-menu{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.toolbar{display:inline-grid;grid-template-columns:repeat(2,minmax(54px,1fr));border:1px solid var(--line);border-radius:999px;background:var(--paper);padding:3px;gap:2px}.mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;background:var(--paper-2);padding:3px;gap:3px}.seg,.nav-button{border:0;background:transparent;min-height:var(--header-pill-height);padding:0 14px;color:var(--ink-soft);font-family:var(--font-body);font-size:var(--header-pill-font-size);font-weight:var(--header-pill-font-weight);line-height:1;border-radius:999px;cursor:pointer;transition:color .14s ease,background .14s ease}.nav-button{display:inline-flex;align-items:center;justify-content:center;height:var(--header-pill-height);border-radius:999px}.nav-button:hover,.seg:hover{color:var(--sumi)}.nav-button.active,.seg.active{background:var(--sumi);color:var(--washi)}.mode-switch .seg{border-radius:6px}.auth-control{display:flex;align-items:center;gap:8px;min-height:44px}.auth-control-stacked{display:grid;justify-items:end;gap:8px}.auth-row{display:flex;align-items:center;gap:8px}.auth-status{max-width:230px;color:var(--ink-soft);font-size:.8rem;font-weight:500;line-height:1.3}.auth-status.warning{color:var(--danger)}.auth-control-error{max-width:min(100%,420px)}.auth-error-detail{max-width:100%;color:var(--danger);font-size:.78rem;line-height:1.4;overflow-wrap:anywhere}.auth-dot{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--ok)}.auth-dot.muted{background:var(--ink-faint)}.auth-email{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sumi)}.auth-button{min-width:150px;min-height:40px;padding:0 16px}.auth-link{border:0;background:transparent;min-height:38px;color:var(--indigo);font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.account-menu-wrap{position:relative}.account-button{display:inline-flex;align-items:center;gap:8px;min-height:var(--header-pill-height);height:var(--header-pill-height);padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--header-pill-font-size);font-weight:var(--header-pill-font-weight);line-height:1;white-space:nowrap;cursor:pointer}.account-button .auth-dot{margin-right:0}@supports (text-box: trim-both cap alphabetic){.nav-button,.account-button>span:not(.auth-dot){text-box:trim-both cap alphabetic}}.account-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;gap:12px;min-width:240px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 14px 36px #1c1b1724}.account-summary{display:grid;gap:4px}.account-summary strong{font-size:.86rem}.account-email{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:.78rem}.confirm-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#1c1b1747}.confirm-dialog{display:grid;gap:16px;width:min(360px,100%);padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 18px 42px #1c1b172e}.confirm-dialog h2{font-family:var(--font-body);font-size:1.1rem;font-weight:700}.confirm-dialog p{color:var(--ink-soft);line-height:1.6}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.consent-gate-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:#1c1b1747}.consent-gate{width:min(620px,100%);display:grid;gap:16px;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 18px 60px #1c1b172e}.consent-gate p{color:var(--ink-soft);line-height:1.7}.consent-progress{display:grid;gap:8px}.consent-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);font-size:.9rem;font-weight:700}.consent-progress-head small{color:var(--ink-soft);font-size:.8rem;font-weight:500}.consent-progress-bar{width:100%;height:8px;accent-color:var(--target-good)}.consent-progress-bar::-webkit-progress-bar{border-radius:999px;background:var(--paper-2)}.consent-progress-bar::-webkit-progress-value{border-radius:999px;background:var(--target-good)}.consent-progress-bar::-moz-progress-bar{border-radius:999px;background:var(--target-good)}.consent-review-links{display:flex;flex-wrap:wrap;gap:14px}.consent-check{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;color:var(--ink);line-height:1.6}.consent-check input{margin-top:.32em;accent-color:var(--shu)}.age-confirm{display:inline-flex;align-items:center;gap:8px;max-width:330px;color:var(--ink-soft);font-size:.8rem;line-height:1.3;cursor:pointer}.age-confirm input{width:16px;height:16px;margin:0;flex:0 0 auto;accent-color:var(--shu)}.auth-error{max-width:330px;color:var(--danger);font-size:.78rem;font-weight:500;line-height:1.3}.primary,.secondary,.ghost,.danger{min-height:46px;padding:0 22px;border-radius:8px;border:1px solid transparent;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:transform .12s ease,background .14s ease,border-color .14s ease,color .14s ease}.primary{background:var(--sumi);color:var(--washi);border-color:var(--sumi)}.primary:hover{background:#000}.secondary{background:var(--paper);color:var(--sumi);border-color:var(--line)}.secondary:hover{border-color:var(--ink-faint)}.ghost{background:transparent;color:var(--ink-soft);border-color:transparent;min-height:40px;padding:0 14px}.ghost:hover{color:var(--sumi)}.danger{background:var(--paper);color:var(--danger);border-color:#9e332059}.danger:hover{border-color:var(--danger);background:#fff7f2}.primary:active,.secondary:active,.ghost:active,.danger:active{transform:translateY(1px)}.primary:disabled,.secondary:disabled,.danger:disabled{cursor:not-allowed;opacity:.55}.text-button{border:0;background:transparent;color:var(--ink-soft);min-height:36px;font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.text-button:hover{color:var(--sumi)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:26px}.section-head h2{font-family:var(--font-display);font-weight:400;font-size:2.1rem;line-height:1;margin-top:10px;letter-spacing:-.4px}.eyebrow{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.section-sub{max-width:460px;color:var(--ink-soft);font-size:.92rem;line-height:1.55}.app-loading{display:grid;min-height:min(460px,calc(100dvh - 190px));place-items:center;padding:42px 18px}.app-loading-card{display:flex;flex-direction:column;align-items:center;justify-items:center;gap:22px;width:min(100%,420px);padding:40px 46px;text-align:center;background:#fff;border:1px solid var(--line-soft);border-radius:16px;box-shadow:0 6px 22px #281e0f12}.loading-dots{display:flex;align-items:center;gap:12px}.loading-dot{flex:0 0 11px;inline-size:11px;block-size:11px;border-radius:50%;background:var(--sumi);transform-origin:center;animation:dot-pulse 1.3s ease-in-out infinite}.loading-dot-2{animation-delay:.18s}.loading-dot-3{animation-delay:.36s}.app-loading-status{max-width:320px;color:var(--ink-soft);font-size:.95rem;line-height:1.55}@keyframes dot-pulse{0%,to{opacity:.22;transform:scale(.78)}50%{opacity:1;transform:scale(1.16)}}.today-hero{display:grid;justify-items:center;gap:16px;padding:64px 28px 56px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:16px}.dashboard-word{font-family:var(--font-learning-word);font-weight:400;font-size:clamp(3.4rem,11vw,7rem);line-height:.9;letter-spacing:0;color:var(--sumi);overflow-wrap:anywhere}.ipa-pair{display:inline-flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;gap:18px;font-family:var(--font-body)}.ipa-role{align-self:center;color:var(--ink-soft);font-family:var(--font-body);font-size:.78rem;letter-spacing:.04em}.ipa{font-size:1.45rem;line-height:1}.ipa-target{color:var(--target-good);border-bottom:2px solid var(--target-good);padding-bottom:4px}.ipa-contrast{color:var(--contrast-warn)}.ipa-sep{font-family:var(--font-body);font-style:normal;font-size:.95rem;color:var(--ink-faint);padding-bottom:5px}.today-status{max-width:440px;color:var(--ink-soft);font-size:.96rem;line-height:1.6}.today-goal{display:grid;gap:4px;width:min(100%,460px);padding:12px 14px;border:1px solid var(--line-soft);border-radius:8px;background:var(--paper-2);text-align:left}.today-goal span{color:var(--ink-soft);font-size:.78rem}.today-goal strong{color:var(--sumi);font-size:.95rem;line-height:1.45}.today-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px}.assessment-usage{display:grid;gap:4px;width:min(100%,430px);min-inline-size:0;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--paper-2);text-align:left}.assessment-usage strong{color:var(--sumi);font-size:.92rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.assessment-usage-label,.assessment-usage-meta,.assessment-usage-note{color:var(--ink-soft);font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}.assessment-usage-label{color:var(--ink-faint);font-weight:600;text-transform:uppercase}.assessment-usage-practice{width:min(100%,360px);padding:8px 10px}.assessment-usage-settings{width:100%}.assessment-usage-warning{border-color:var(--warn);background:var(--warn-soft)}.assessment-usage-error{border-color:var(--danger)}.assessment-usage-error strong,.assessment-usage-warning .assessment-usage-note{color:var(--danger)}.landing-screen{display:grid;gap:20px}.landing-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);align-items:center;gap:28px;min-height:520px;padding:56px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(115deg,#fbf8f0f5,#f6f1e6c7),url(/icons/brand-do.png) right 42px top 42px / 120px 120px no-repeat,var(--paper)}.landing-copy{display:grid;gap:18px;align-content:center}.landing-copy h2{max-width:640px;font-family:var(--font-display);font-weight:500;font-size:clamp(2.4rem,6vw,4.8rem);line-height:.98;letter-spacing:0}.landing-copy p{max-width:580px;color:var(--ink-soft);font-size:1rem;line-height:1.7}.landing-actions,.signin-actions,.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.landing-legal{font-size:.86rem!important;color:var(--ink-faint)!important}.landing-preview{display:grid;justify-items:center;gap:14px;padding:36px 26px;border:1px solid var(--line);border-radius:12px;background:#fbf8f0e0}.landing-placement-preview{justify-items:start;align-content:center;min-height:340px}.landing-placement-preview strong{color:var(--sumi);font-size:1.16rem}.landing-placement-preview p{color:var(--ink);font-size:1.12rem;font-weight:650;line-height:1.6}.landing-placement-preview small{color:var(--ink-soft);font-size:.82rem;line-height:1.5}.landing-feature-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.landing-feature{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.landing-feature h3{color:var(--sumi);font-size:1rem}.landing-feature p{color:var(--ink-soft);font-size:.9rem;line-height:1.55}.landing-links{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.signin-screen{max-width:720px;margin:0 auto}.signin-panel{display:grid;gap:18px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:24px}.signin-age{max-width:none;font-size:.95rem}.signin-methods{display:grid;gap:16px}.email-otp-form{display:grid;gap:12px;border-top:1px solid var(--line-soft);padding-top:16px}.signin-email-head{display:grid;gap:4px}.signin-email-head strong{color:var(--sumi);font-size:1rem}.signin-email-head p{color:var(--ink-soft);font-size:.9rem;line-height:1.55}.practice{display:grid;gap:18px}.practice-stage{display:grid;justify-items:center;gap:14px;padding:44px 26px 40px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:16px}.practice-stage.is-assessing .prompt-word{opacity:.55}.weak-check{display:grid;gap:18px}.weak-check-stage,.weak-check-intro{display:grid;justify-items:center;gap:14px;padding:36px 26px 38px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:16px}.weak-check-stage.is-assessing .prompt-word{opacity:.55}.weak-check-stage .prompt-word{max-width:760px;font-family:var(--font-body);font-size:1.18rem;font-weight:650;line-height:1.55;text-align:left}.weak-check-intro h2{margin:0;color:var(--sumi);font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,5vw,3.4rem);line-height:1}.weak-check-intro p{max-width:560px;color:var(--ink-soft);font-size:.98rem;line-height:1.6}.weak-check-step{min-height:30px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--shu-deep);background:var(--paper-2);font-size:.84rem;font-weight:700}.weak-check-actions{display:flex;justify-content:center}.prompt-word{font-family:var(--font-learning-word);font-weight:400;font-size:clamp(3.8rem,13vw,8rem);line-height:.88;letter-spacing:0;color:var(--sumi);overflow-wrap:anywhere}.tip{max-width:460px;margin-top:2px;color:var(--ink-soft);font-size:.96rem;line-height:1.6}#waveform{width:100%;max-width:560px;height:96px;display:block;margin-top:8px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}.status{min-height:24px;color:var(--ink);font-size:.94rem;font-weight:500}.practice-time-notice{display:grid;gap:4px;width:min(100%,480px);padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--paper-2);text-align:left}.practice-time-notice strong{color:var(--sumi);font-size:.92rem;line-height:1.35}.practice-time-notice span{color:var(--ink-soft);font-size:.84rem;line-height:1.45}.practice-time-notice-rest{border-color:var(--warn);background:var(--warn-soft)}.record-stage{display:grid;justify-items:center;gap:16px;margin-top:10px}.guided-practice-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;min-height:48px}.assessment-wave{display:flex;align-items:center;gap:5px;height:42px;margin-top:10px;contain:layout style paint}.assessment-wave-bar{width:5px;height:42px;border-radius:3px;background:var(--shu);transform-origin:center;animation:assessment-wave-pulse 1.1s ease-in-out infinite}.assessment-wave-1{animation-delay:-.9s}.assessment-wave-2{animation-delay:-.6s}.assessment-wave-3{animation-delay:-.3s}.assessment-wave-4{animation-delay:-.45s}.assessment-wave-5{animation-delay:-.75s}@keyframes assessment-wave-pulse{0%,to{transform:scaleY(.22)}50%{transform:scaleY(1)}}.record-button{position:relative;display:grid;place-items:center;gap:3px;width:132px;height:132px;border-radius:50%;border:none;background:var(--shu);color:#fff;cursor:pointer;transition:transform .2s ease,background .2s ease}.record-button:hover{transform:scale(1.04)}.record-button:active{transform:scale(.98)}.record-button.recording{background:var(--shu-deep);animation:rec-pulse 1.3s ease-in-out infinite}.rec-label{font-size:1rem;font-weight:500;letter-spacing:0}.rec-ico{width:34px;height:34px}.enso{position:absolute;width:152px;height:152px;margin-top:-9px;border:1.5px solid var(--shu);border-radius:50%;opacity:0;pointer-events:none;animation:enso-breathe 3.6s ease-in-out infinite}.record-stage .record-button{z-index:1}.enso.live{border-color:var(--shu-deep)}@keyframes enso-breathe{0%,to{opacity:.4;transform:scale(.98)}50%{opacity:.85;transform:scale(1.02)}}@keyframes rec-pulse{0%,to{box-shadow:0 0 #9e332052}50%{box-shadow:0 0 0 12px #9e332000}}.rec-next{color:var(--ink-faint)}.access-inline{display:grid;justify-items:center;gap:10px;max-width:460px;margin-top:8px;padding:18px 20px;border:1px solid var(--warn-soft);border-radius:12px;background:var(--warn-soft)}.access-inline strong{color:var(--warn);font-weight:500}.access-inline p{color:var(--ink-soft);font-size:.92rem;line-height:1.55}.practice-foot{display:grid;grid-template-columns:repeat(3,1fr) auto;align-items:center;gap:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}.foot-cell{display:grid;gap:3px;padding:14px 18px;text-align:center;border-right:1px solid var(--line-soft)}.foot-cell span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.foot-cell strong{font-family:var(--font-display);font-weight:400;font-size:1.4rem;color:var(--indigo)}.foot-links{display:flex;flex-wrap:wrap;gap:10px;padding:10px 18px}.result-list{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:0 18px}.result-list:empty{display:none}.learner-feedback{display:grid;gap:8px;padding:18px 0}.learner-feedback h3{font-family:var(--font-display);font-weight:400;font-size:1.15rem;color:var(--sumi)}.learner-feedback p{color:var(--ink-soft);font-size:.95rem;line-height:1.55}.learner-feedback .feedback-advice{color:var(--ink);font-weight:500}.learner-feedback.muted h3,.learner-feedback.muted p{color:var(--ink-faint)}.placement-feedback{display:grid;gap:14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:18px}.placement-feedback-head{display:grid;gap:6px}.placement-feedback-head h3,.placement-diagnosis-panel h4,.placement-confirmation-summary h4,.placement-sentence-results summary{margin:0;color:var(--sumi);font-family:var(--font-body);font-size:1rem;font-weight:700}.placement-diagnosis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.placement-diagnosis-panel{display:grid;align-content:start;gap:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--paper-2);padding:14px}.placement-plan-panel p,.placement-empty,.placement-skip{color:var(--ink-soft);font-size:.88rem;line-height:1.55}.placement-plan-panel strong{color:var(--sumi);font-size:.88rem;line-height:1.45}.placement-phone-chips{display:flex;flex-wrap:wrap;gap:8px}.placement-phone-chip{display:inline-grid;gap:2px;min-width:76px;border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:var(--paper);color:var(--ink)}.placement-phone-chip strong{font-size:1rem}.placement-phone-chip span,.placement-phone-chip small{font-size:.74rem;line-height:1.25}.placement-confirmation-summary{display:grid;gap:10px;border-top:1px solid var(--line-soft);padding-top:12px}.placement-confirmation-list{display:flex;flex-wrap:wrap;gap:8px}.placement-confirmation-list span{display:inline-flex;align-items:center;gap:6px;min-height:32px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2);padding:0 10px;color:var(--ink-soft);font-size:.8rem}.placement-confirmation-list strong{color:var(--sumi)}.placement-sentence-results{border-top:1px solid var(--line-soft);padding-top:12px}.placement-sentence-results summary{cursor:pointer}.placement-sentence-list{display:grid;gap:12px;margin-top:12px}.placement-sentence-card{display:grid;gap:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--paper-2);padding:14px}.placement-sentence-head{display:grid;gap:4px}.placement-sentence-head strong{color:var(--shu-deep);font-size:.84rem}.placement-sentence-head span{color:var(--ink);line-height:1.5}.placement-word-grid{display:flex;flex-wrap:wrap;gap:10px}.placement-word{display:inline-grid;gap:5px;min-width:86px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:8px}.placement-word>strong{font-family:var(--font-learning-word);font-weight:400;font-size:1rem;line-height:1.1}.placement-phoneme-strip{display:flex;flex-wrap:wrap;gap:4px}.placement-phoneme{display:inline-grid;place-items:center;min-width:48px;min-height:38px;border:1px solid var(--line);border-radius:6px;padding:3px 4px;background:var(--paper-2)}.placement-phoneme span{font-size:.78rem;line-height:1.1}.placement-phoneme small{color:var(--ink-soft);font-size:.64rem;line-height:1;white-space:nowrap}.placement-no-detail{display:inline-flex;align-items:center;min-height:38px;border:1px solid var(--line);border-radius:6px;background:var(--paper-2);padding:0 8px;color:var(--ink-faint);font-size:.72rem;line-height:1.2}.level-strong{border-color:#9bbf9c;background:var(--ok-soft);color:var(--ok)}.level-ok{border-color:#9cb6c2;background:#e8eef2;color:var(--indigo)}.level-watch{border-color:#e0c98c;background:var(--warn-soft);color:var(--warn)}.level-weak{border-color:#ddb8aa;background:#f7e3db;color:var(--danger)}.level-unknown{border-color:var(--line);background:var(--paper-2);color:var(--ink-faint)}.developer-diagnostics{margin-top:8px;border-top:1px dashed var(--line);padding-top:14px}.diagnostics-bar{display:flex;align-items:center;justify-content:space-between;gap:14px}.diagnostics-bar p{margin-top:4px;color:var(--ink-faint);font-size:.82rem;line-height:1.35}.diagnostics-bar .text-button{min-width:130px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--paper);text-decoration:none}.developer-diagnostics.open{display:grid;gap:12px}.pill{font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:5px 11px}.azure-panel{display:grid;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px}.azure-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.azure-head strong{color:var(--ink);font-size:.9rem;text-align:right}.token-note{color:var(--ink-soft);font-size:.8rem;line-height:1.35}.azure-action{width:100%}.azure-action:disabled{cursor:not-allowed;opacity:.5}.azure-result{border-top:1px solid var(--line)}.calibration-trace{gap:12px}.calibration-summary,.calibration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.calibration-summary>div,.calibration-grid>div{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);padding:9px}.calibration-summary span,.calibration-grid span{color:var(--ink-faint);font-size:.72rem;line-height:1.25}.calibration-summary strong,.calibration-grid strong{min-width:0;color:var(--ink);font-size:.82rem;line-height:1.3;overflow-wrap:anywhere}.calibration-summary small{color:var(--ink-soft);font-size:.74rem;line-height:1.35;overflow-wrap:anywhere}.calibration-steps{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}.calibration-step{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:10px}.calibration-step-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.calibration-step-head strong{color:var(--ink);font-size:.86rem}.calibration-step-head span,.calibration-expression{color:var(--ink-soft);font-size:.78rem;line-height:1.4}.calibration-expression{overflow-wrap:anywhere}.azure-note{padding:10px 0;color:var(--ink-soft);font-size:.86rem;line-height:1.45}.azure-raw{border-top:1px solid var(--line);padding-top:10px}.azure-raw summary{cursor:pointer;color:var(--ink);font-size:.86rem;font-weight:600}.azure-raw pre{margin-top:8px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--paper-2);color:var(--ink-soft);font-size:.74rem;line-height:1.45;white-space:pre}.azure-analysis{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.azure-analysis h3{font-family:var(--font-display);font-weight:400;color:var(--sumi);font-size:1rem}.azure-word{display:grid;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--paper-2)}.azure-word-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.azure-word-head strong{font-family:var(--font-display);font-weight:500}.azure-word-head span{color:var(--ink-soft);font-size:.84rem;text-align:right}.azure-phonemes{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px}.azure-phoneme{min-height:62px;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--paper)}.azure-phoneme strong,.azure-phoneme span,.azure-phoneme small{display:block}.azure-phoneme strong{color:var(--indigo)}.azure-phoneme span{margin-top:3px;color:var(--sumi);font-weight:500}.azure-phoneme small{margin-top:3px;color:var(--ink-soft);font-size:.74rem;line-height:1.25}.azure-candidates{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.azure-candidates span{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--line);border-radius:6px;padding:2px 5px;background:var(--paper-2);color:var(--ink);font-size:.72rem}.azure-candidates strong{color:var(--indigo)}.azure-candidates b{color:var(--sumi);font-weight:500}.feedback-graph{padding:16px 0 12px;border-bottom:1px solid var(--line)}.feedback-graph.muted{color:var(--ink-faint)}.feedback-title,.balance-labels,.balance-values{display:flex;align-items:center;justify-content:space-between;gap:12px}.feedback-title span{color:var(--ink-soft);font-size:.84rem}.feedback-title strong{font-size:.9rem;color:var(--sumi)}.balance-labels{margin-top:12px;font-family:var(--font-display);color:var(--sumi)}.balance-track{position:relative;display:flex;width:100%;height:18px;margin-top:8px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--paper-2)}.balance-fill{display:block;min-width:0;height:100%}.target-fill{background:var(--target-good)}.contrast-fill{background:var(--contrast-warn)}.balance-midline{position:absolute;left:50%;top:0;bottom:0;width:1px;background:#ffffffc7}.balance-values{margin-top:6px;font-family:var(--font-display);font-size:1.05rem}.balance-values strong:first-child{color:var(--target-good)}.balance-values strong:last-child{color:var(--contrast-warn)}.multi-contrast-map{width:min(100%,360px);margin:12px auto 0}.multi-contrast-map svg{display:block;width:100%;height:auto;overflow:visible}.multi-contrast-note{margin-top:8px;color:var(--ink-soft);font-size:.84rem;line-height:1.45;text-align:center}.multi-shape{fill:#ffffff47;stroke:var(--line);stroke-width:1.4}.multi-axis{stroke:var(--line-soft);stroke-width:1}.multi-center{fill:var(--ink-faint);opacity:.55}.multi-current-line{stroke:var(--indigo);stroke-dasharray:3 4;stroke-width:1.4}.multi-current{fill:var(--indigo);stroke:var(--sumi);stroke-width:2}.multi-target-node{fill:var(--target-good)}.multi-contrast-node{fill:var(--contrast-warn)}.multi-target-label,.multi-label{dominant-baseline:middle;font-family:var(--font-body);font-size:.76rem}.multi-target-label{fill:var(--target-good);font-weight:700}.multi-label{fill:var(--ink)}.result-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.result-row span{color:var(--ink-soft);font-size:.86rem}.settings-screen{background:transparent}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-panel{display:grid;gap:14px;align-content:start;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:20px}.settings-panel-head{display:grid;gap:6px}.settings-panel-head strong{font-family:var(--font-display);font-weight:400;font-size:1.2rem;color:var(--sumi)}.settings-subsection{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--line-soft)}.settings-subsection>strong{font-family:var(--font-display);font-weight:400;font-size:1rem;color:var(--sumi)}.settings-meta{color:var(--ink-soft);font-size:.82rem}.settings-error{color:var(--danger)!important;font-size:.82rem!important;overflow-wrap:anywhere}.service-availability-notice{display:grid;gap:4px;max-width:580px}.service-availability-notice strong,.service-availability-notice span{display:block}.settings-success{color:var(--ok)!important;font-size:.82rem!important;overflow-wrap:anywhere}.settings-panel p{color:var(--ink-soft);font-size:.92rem;line-height:1.55}.settings-actions{display:flex;flex-wrap:wrap;gap:10px}.settings-choice-group{display:inline-flex;flex-wrap:wrap;gap:8px}.settings-choice-group .secondary{min-width:74px}.redeem-form{display:grid;gap:8px}.redeem-form label{color:var(--ink);font-size:.86rem;font-weight:500}.redeem-row{display:flex;flex-wrap:wrap;gap:10px}.redeem-row input{flex:1 1 180px;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--sumi);font:inherit;font-size:1rem;letter-spacing:.06em;padding:0 14px;text-transform:uppercase}.redeem-row input:focus-visible{outline:3px solid rgba(200,71,44,.28);outline-offset:2px;border-color:var(--shu)}.redeem-row button{flex:0 0 auto}.active-choice{border-color:var(--sumi);background:var(--sumi);color:var(--washi)}.settings-panel .auth-control,.settings-panel .auth-control-stacked{justify-items:start;min-height:0}.settings-panel .auth-row{flex-wrap:wrap}.contact-form{display:grid;gap:18px;max-width:720px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:22px}.form-field{display:grid;gap:7px}.form-field label{color:var(--ink);font-size:.88rem;font-weight:500}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:48px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--sumi);font:inherit;font-size:1rem;line-height:1.5;padding:10px 12px}.form-field textarea{resize:vertical;min-height:160px}.form-field input:user-invalid,.form-field select:user-invalid,.form-field textarea:user-invalid{border-color:var(--danger);background:#fff7f2}.upgrade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.upgrade-option{display:grid;gap:12px;min-height:190px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:22px}.upgrade-option:not(.pro){border-color:#c8d4dc;box-shadow:inset 0 0 0 1px #2c41500a}.upgrade-option.pro{border-color:var(--sumi);background:var(--sumi);color:var(--washi)}.upgrade-option strong{font-family:var(--font-display);font-weight:400;font-size:2rem}.upgrade-option p{color:var(--ink-soft);line-height:1.6}.upgrade-option.pro p,.upgrade-option.pro .eyebrow{color:#f1ece0c2}.phoneme-screen{background:transparent}.stage-progress{display:grid;gap:12px;margin-bottom:16px}.stage-panel{border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}.stage-panel>summary,.stage-locked-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px}.stage-panel>summary{cursor:pointer}.stage-panel>summary::marker,.stage-panel>summary::-webkit-details-marker{color:var(--shu-deep)}.stage-panel[open]>summary{border-bottom:1px solid var(--line-soft)}.stage-title{display:grid;gap:4px}.stage-title strong{color:var(--sumi);font-size:1rem}.stage-title small,.stage-meta{color:var(--ink-soft);font-size:.82rem;line-height:1.35}.stage-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;text-align:right}.stage-meta span{display:inline-flex;align-items:center;min-height:26px;border:1px solid var(--line-soft);border-radius:999px;padding:0 9px;background:var(--paper-2)}.stage-role{border-color:#9cb6c2;color:var(--indigo)}.stage-role-current .stage-role{border-color:#9bbf9c;background:var(--ok-soft);color:var(--ok)}.stage-locked{opacity:.76}.stage-locked .stage-role{border-color:var(--line);color:var(--ink-faint)}.stage-empty{padding:14px 18px 18px;color:var(--ink-soft);font-size:.9rem;line-height:1.55}.stage-panel .phoneme-table{padding:0 18px 4px}.progress-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.progress-summary-card,.activity-panel,.weak-history-panel{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:18px}.progress-summary-card{display:grid;gap:12px;align-content:start}.progress-summary-card h3,.activity-panel h3,.weak-history-panel h3{font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--sumi)}.progress-summary-card p{color:var(--ink-soft);font-size:.9rem}.summary-chips{display:flex;flex-wrap:wrap;gap:8px}.summary-chip{display:inline-grid;gap:2px;min-height:48px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);padding:7px 11px;color:var(--ink);text-align:left;cursor:pointer}.summary-chip strong{font-size:1rem}.summary-chip span{color:var(--ink-soft);font-size:.76rem}.activity-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.activity-bars{display:grid;grid-template-columns:repeat(14,minmax(18px,1fr));gap:6px;min-width:min(100%,420px)}.activity-bar{display:grid;justify-items:center;gap:3px;color:var(--ink-faint);line-height:1}.activity-bar strong{font-family:var(--font-body);font-size:1.2rem;font-weight:800}.activity-bar small{color:var(--ink-faint);font-size:.58rem}.activity-bar.level-1 strong{color:#6d8795}.activity-bar.level-2 strong{color:#4e7384}.activity-bar.level-3 strong{color:#2f5f77}.activity-bar.level-4 strong{color:var(--indigo)}.weak-history-panel{display:grid;gap:16px;margin-bottom:18px}.weak-history-head{display:flex;align-items:end;justify-content:space-between;gap:18px}.weak-history-select{display:grid;gap:5px;min-width:160px;color:var(--ink-soft);font-size:.78rem}.weak-history-select select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--ink);font:inherit;padding:8px 10px}.weak-history-empty{color:var(--ink-soft);font-size:.9rem;line-height:1.55}.weak-history-chart{display:grid;gap:12px}.weak-history-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:center}.weak-history-label{color:var(--ink-soft);font-size:.82rem}.weak-history-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));gap:8px;min-height:72px;align-items:end}.weak-history-bar{display:grid;grid-template-rows:1fr auto;justify-items:center;gap:4px;min-height:72px}.weak-history-bar i{display:block;align-self:end;width:100%;max-width:22px;min-height:6px;border-radius:5px 5px 2px 2px;background:var(--indigo)}.weak-history-bar.score i{background:#47734b}.weak-history-bar.weakCount i{background:var(--danger)}.weak-history-bar.stableCount i{background:var(--ok)}.weak-history-bar.focusCount i{background:#9a6a13}.weak-history-bar small{color:var(--ink-faint);font-size:.68rem}.progress-empty{display:grid;justify-items:center;gap:14px;text-align:center;padding:52px 24px 46px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.progress-empty h3{font-family:var(--font-display);font-weight:400;font-size:1.55rem;color:var(--sumi)}.progress-empty p{max-width:440px;color:var(--ink-soft);line-height:1.6}.phoneme-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:560px;margin-top:10px}.phoneme-chips span{font-family:var(--font-display);font-size:1rem;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:3px 13px;background:var(--paper-2)}.phoneme-main span,.mastery-top span,.trend-cell span,.state-cell>span{color:var(--ink-soft);font-size:.82rem}.progress-details{border-top:1px solid var(--line)}.progress-details summary{display:flex;align-items:center;min-height:52px;color:var(--ink);font-weight:700;cursor:pointer}.progress-details summary::marker{color:var(--shu-deep)}.progress-details[open] summary{border-bottom:1px solid var(--line-soft)}.progress-details .phoneme-table{border-top:0}.phoneme-table{display:grid;border-top:1px solid var(--line)}.phoneme-row{display:grid;grid-template-columns:minmax(170px,1.1fr) minmax(170px,1fr) minmax(130px,.7fr) minmax(160px,.85fr) minmax(100px,auto);gap:16px;align-items:center;min-height:74px;padding:14px 0;border-bottom:1px solid var(--line-soft)}.phoneme-row-head{min-height:42px;color:var(--ink-faint);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.phoneme-main,.mastery-cell,.trend-cell,.state-cell{display:grid;gap:6px}.phoneme-main strong{font-family:var(--font-display);font-weight:400;font-size:1.6rem;color:var(--sumi)}.mastery-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-meter{position:relative;height:10px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--paper-2)}.mini-meter span{display:block;height:100%;background:var(--indigo)}.target-marker{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--target-good);box-shadow:0 0 0 1px #fbf8f0b8}.attainment-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--ink-faint);font-size:.78rem;line-height:1.35}.attainment-note span:last-child{color:var(--ink-soft)}.score-history{display:grid;grid-template-columns:repeat(5,9px);align-items:end;gap:4px;height:26px}.score-history span{display:block;width:9px;min-height:4px;border-radius:3px 3px 0 0;background:var(--indigo-soft)}.score-history.empty{display:block;height:auto;color:var(--ink-faint);font-size:.84rem}.trend-cell strong,.mastery-top strong{font-family:var(--font-display);font-weight:400;font-size:1.2rem;color:var(--sumi)}.state-cell{font-size:.84rem;color:var(--ink)}.status-help{position:relative;display:inline-flex;align-items:center;gap:6px;justify-self:start;max-width:100%}.status-chip{display:inline-flex;align-items:center;min-height:26px;border:1px solid var(--line);border-radius:999px;padding:0 11px;background:var(--paper-2);color:var(--ink);font-size:.82rem;font-weight:500;cursor:help;white-space:nowrap}.status-retained{border-color:#9bbf9c;background:var(--ok-soft);color:var(--ok)}.status-improving{border-color:#9cb6c2;background:#e8eef2;color:var(--indigo)}.status-plateau,.status-fragile,.status-unstable,.status-review_due{border-color:#e0c98c;background:var(--warn-soft);color:var(--warn)}.info-dot{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid var(--ink-faint);border-radius:50%;background:var(--paper);color:var(--ink-soft);cursor:help;font-size:.7rem;font-weight:500;line-height:1;padding:0}.status-tooltip{position:absolute;right:0;top:calc(100% + 8px);z-index:4;width:min(280px,calc(100vw - 48px));border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--paper);box-shadow:0 14px 30px #1c1b1729;color:var(--ink);font-size:.85rem;line-height:1.45;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease}.status-help:hover .status-tooltip,.status-help:focus-within .status-tooltip{opacity:1;transform:translateY(0)}.row-action{border:1px solid var(--line);border-radius:8px;padding:0 16px;min-height:38px;background:var(--paper);color:var(--sumi);font-weight:500;cursor:pointer;transition:border-color .14s ease}.row-action:hover{border-color:var(--ink-faint)}.info-page{background:transparent}.lead{max-width:760px;color:var(--ink);font-size:1.15rem;line-height:1.65}.effective-date{margin:-8px 0 14px;font-family:var(--font-display);font-style:italic;color:var(--ink-faint);font-size:.95rem}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.info-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.info-card,.info-band{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:20px}.info-card h3,.info-band h3{font-family:var(--font-display);font-weight:400;color:var(--sumi);font-size:1.15rem}.info-card p,.info-band p{margin-top:10px;color:var(--ink-soft);line-height:1.6}.info-band{margin-top:16px;background:var(--paper-2)}.info-band.muted{background:var(--warn-soft);border-color:#e7d6a8}.admin-status-head-actions{display:grid;justify-items:end;gap:12px}.admin-status-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px;color:var(--ink-soft);font-size:.88rem}.admin-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-status-card{display:grid;align-content:start;gap:14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:18px}.admin-status-card-head,.admin-status-row-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-status-card h3{font-family:var(--font-display);font-weight:400;font-size:1.15rem}.admin-status-card>p,.admin-status-row p,.admin-status-row dd{color:var(--ink-soft);line-height:1.5}.admin-status-items{display:grid;gap:10px}.admin-status-row{display:grid;gap:10px;border-top:1px solid var(--line-soft);padding-top:12px}.admin-status-row h4{margin:0;color:var(--sumi);font-size:.96rem;font-weight:600}.admin-status-row p{margin-top:4px;font-size:.88rem}.admin-status-row dl{display:grid;gap:6px;margin:0}.admin-status-row dl>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px}.admin-status-row dt{color:var(--ink-faint);font-size:.76rem;font-weight:600;text-transform:uppercase}.admin-status-row dd{margin:0;overflow-wrap:anywhere;font-size:.82rem}.admin-status-link{justify-self:start;color:var(--indigo);font-size:.86rem;font-weight:600;text-underline-offset:3px}.status-pill{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:var(--paper-2);color:var(--ink-soft);font-size:.72rem;font-weight:700;line-height:1}.status-ok{border-color:#b8c9a8;background:var(--ok-soft);color:var(--ok)}.status-warning,.status-manual_check{border-color:#e7d6a8;background:var(--warn-soft);color:var(--warn)}.status-blocked,.status-unknown{border-color:#ddb8aa;background:#f7e3db;color:var(--danger)}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-faint);font-size:.86rem}.footer-links{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:14px}.footer-sep{width:1px;height:14px;background:var(--line)}.footer-lang{display:inline-flex;align-items:center;gap:12px}.lang-link{text-decoration:none;color:var(--ink-faint)}.lang-link:hover{color:var(--ink)}.lang-link.active{color:var(--sumi);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--shu);text-decoration-thickness:2px}.cookie-consent{position:static;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px;border:1px solid var(--line);border-radius:999px;padding:8px 10px 8px 20px;background:var(--paper);box-shadow:0 10px 28px #1c1b171f}.cookie-lead{display:flex;align-items:baseline;gap:10px;min-width:0;color:var(--ink-soft);font-size:.9rem;line-height:1.4}.cookie-lead span{color:var(--ink)}.cookie-lead .text-button{flex:0 0 auto;min-height:0;color:var(--indigo)}.consent-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.cookie-consent .ghost,.cookie-consent .primary{min-height:38px;padding:0 16px}.cookie-consent .primary{border-radius:999px}.cookie-consent .ghost:hover{background:var(--paper-2)}.view-enter>section>*{opacity:0;animation:view-rise .6s cubic-bezier(.2,.7,.2,1) forwards}.view-enter>section>*:nth-child(1){animation-delay:.04s}.view-enter>section>*:nth-child(2){animation-delay:.11s}.view-enter>section>*:nth-child(3){animation-delay:.18s}.view-enter>section>*:nth-child(4){animation-delay:.25s}.view-enter>section>*:nth-child(n+5){animation-delay:.3s}@keyframes view-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.view-enter>section>*{opacity:1;animation:none}.loading-dot,.assessment-wave-bar,.enso,.record-button.recording{animation:none}.loading-dot{opacity:.75}.assessment-wave-bar{transform:scaleY(.5)}}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}@media(max-width:860px){.shell{width:min(100% - 22px,720px);padding-top:14px}.topbar{display:block}.top-actions{align-items:stretch;justify-content:space-between;margin-top:20px}.auth-control{width:100%;justify-content:space-between}.auth-control-stacked{justify-items:start}.auth-row{width:100%;justify-content:space-between}.auth-status,.auth-email{max-width:min(100%,420px)}.nav-menu{justify-content:flex-start}.section-head{display:grid}.today-hero{padding:44px 18px 40px}.landing-hero{grid-template-columns:minmax(0,1fr);min-height:0;padding:36px 20px;background:linear-gradient(115deg,#fbf8f0f5,#f6f1e6e6),url(/icons/brand-do.png) right 20px top 20px / 78px 78px no-repeat,var(--paper)}.landing-preview{padding:28px 18px}.practice-stage,.weak-check-stage,.weak-check-intro{padding:32px 18px}.placement-diagnosis{grid-template-columns:minmax(0,1fr)}.prompt-word{font-size:clamp(3.2rem,22vw,6rem)}.practice-foot{grid-template-columns:repeat(3,1fr)}.foot-links{grid-column:1 / -1;justify-content:center;border-top:1px solid var(--line-soft)}.settings-grid,.landing-feature-band,.upgrade-grid,.progress-summary{grid-template-columns:minmax(0,1fr)}.stage-panel>summary,.stage-locked-head{grid-template-columns:minmax(0,1fr)}.stage-meta{justify-content:flex-start;text-align:left}.activity-panel{display:grid}.activity-bars{grid-template-columns:repeat(7,minmax(18px,1fr));min-width:0}.weak-history-head,.weak-history-row{grid-template-columns:minmax(0,1fr)}.weak-history-head{display:grid;align-items:start}.phoneme-row,.phoneme-row-head{grid-template-columns:minmax(0,1fr);gap:8px}.phoneme-row-head{display:none}.phoneme-row{align-items:stretch;padding:16px 0}.mastery-cell{grid-template-columns:minmax(0,1fr)}.row-action{width:100%}.info-grid,.info-grid.two-col{grid-template-columns:minmax(0,1fr)}.admin-status-head-actions{justify-items:start}.admin-status-grid{grid-template-columns:minmax(0,1fr)}.admin-status-row-main{display:grid;justify-items:start}.admin-status-row dl>div{grid-template-columns:minmax(0,1fr);gap:2px}.diagnostics-bar{display:grid}.diagnostics-bar .text-button{width:100%}.calibration-summary,.calibration-grid{grid-template-columns:minmax(0,1fr)}.calibration-step-head{display:grid}.site-footer,.cookie-consent{display:grid;grid-template-columns:minmax(0,1fr)}.footer-links,.consent-actions{justify-content:flex-start}}@media(max-width:640px){.summary-chip{width:100%}.activity-bars{grid-template-columns:repeat(7,minmax(16px,1fr));gap:4px}.activity-bar strong{font-size:1rem}.weak-history-bars{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:6px}.phoneme-main strong{font-size:1.35rem}.progress-details summary{min-height:48px}}
