@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Newsreader:opsz,wght@6..72,600;6..72,700&display=swap";:root{--surface:#f2f5f7;--paper:#fff;--ink:#102a43;--muted:#687989;--line:#dce4e9;--line-strong:#bac8d2;--navy:#102a43;--blue:#2f80ed;--blue-deep:#1e67c7;--blue-soft:#eaf3ff;--success:#238561;--success-soft:#e6f5ef;--danger:#c24646;--danger-soft:#faecec;--display:"Newsreader", Georgia, serif;color:var(--ink);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Manrope,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--surface)}body{min-width:320px;min-height:100vh;margin:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--blue) 45%, transparent);outline-offset:2px}@media (prefers-color-scheme:dark){:root{--surface:#111a22;--paper:#18242f;--ink:#edf4f8;--muted:#9eafbb;--line:#2a3a47;--line-strong:#4a6070;--navy:#0a1b29;--blue:#67a7ff;--blue-deep:#4c91ed;--blue-soft:#1c3550;--success:#65caa1;--success-soft:#183d32;--danger:#ee8989;--danger-soft:#462629}}.app-shell{background:var(--surface);min-height:100svh}.login-page{background:var(--navy);place-items:center;min-height:100svh;padding:24px;display:grid}.login-card{background:var(--paper);border-radius:20px;width:min(430px,100%);padding:clamp(28px,6vw,48px)}.login-logo{border-radius:15px;width:58px;height:58px;margin-bottom:28px}.login-card h1{color:var(--ink);font-family:var(--display);letter-spacing:-.04em;margin:8px 0;font-size:46px}.login-card>p{color:var(--muted);line-height:1.55}.login-card form{gap:15px;margin-top:28px;display:grid}.login-card label{gap:6px;display:grid}.login-card label span{color:var(--muted);font-size:12px;font-weight:750}.login-card input{border:1px solid var(--line);min-height:46px;color:var(--ink);background:var(--surface);border-radius:9px;padding:0 12px}.login-note{color:var(--muted);text-align:center;margin-top:20px;font-size:11px;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-header{z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;min-height:72px;padding:0 5vw;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand img{border-radius:12px;width:42px;height:42px}.brand div{display:grid}.brand strong{color:var(--ink);font-size:16px}.brand span{color:var(--muted);font-size:12px}.profile-switcher{border:1px solid var(--line);background:var(--paper);border-radius:999px;gap:6px;padding:4px;display:flex}.profile-switcher button{min-width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:0 11px;display:flex}.profile-switcher button.active{color:var(--ink);background:var(--blue-soft)}.profile-switcher button:first-letter{font-weight:800}.profile-switcher span{font-size:13px;font-weight:700}.page{width:min(1180px,92vw);margin:0 auto;padding:48px 0 128px}.eyebrow{color:var(--blue);letter-spacing:.13em;text-transform:uppercase;font-size:12px;font-weight:800}.welcome{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}.welcome h1,.page-title h1{color:var(--ink);font-family:var(--display);letter-spacing:-.045em;margin:6px 0 8px;font-size:clamp(34px,5vw,58px);font-weight:700;line-height:1}.welcome p,.page-title p{color:var(--muted);font-size:16px}.level-pill{border:1px solid var(--line);text-align:left;background:var(--paper);border-radius:12px;min-width:122px;padding:12px 16px;display:grid}.level-pill span{color:var(--muted);text-transform:uppercase;font-size:11px}.level-pill strong{color:var(--ink);font-size:16px}.diagnostic-banner{border:1px solid color-mix(in srgb, var(--blue) 28%, var(--line));background:var(--blue-soft);border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;margin-bottom:20px;padding:20px 22px;display:grid}.diagnostic-number{color:var(--blue);font-family:var(--display);font-size:30px;font-weight:800}.diagnostic-banner h2,.diagnostic-banner p{margin:0}.diagnostic-banner h2{color:var(--ink);font-size:17px}.diagnostic-banner p{color:var(--muted);margin-top:3px;font-size:13px}.primary-button,.secondary-button{border-radius:10px;min-height:42px;padding:0 18px;font-weight:800}.primary-button{border:1px solid var(--blue);color:#fff;background:var(--blue)}.primary-button:hover{background:var(--blue-deep)}.secondary-button{border:1px solid var(--line-strong);color:var(--ink);background:var(--paper)}.primary-button.large,.secondary-button.large{min-height:50px;padding-inline:22px}.today-grid{grid-template-columns:minmax(0,1.8fr) minmax(250px,.8fr);gap:16px;display:grid}.lesson-feature{color:#fff;background:var(--navy);border-radius:20px;min-height:310px;padding:30px;position:relative;overflow:hidden}.lesson-feature:after{border:48px solid color-mix(in srgb, var(--blue) 30%, transparent);content:"";border-radius:50%;width:280px;height:280px;position:absolute;bottom:-105px;right:-85px}.lesson-feature>*{z-index:1;position:relative}.lesson-meta{color:#c4d1df;letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;font-size:12px;font-weight:700;display:flex}.lesson-feature h2{max-width:520px;font-family:var(--display);letter-spacing:-.04em;margin:40px 0 8px;font-size:clamp(34px,5vw,52px);line-height:.98}.lesson-feature p{color:#c4d1df}.lesson-tags{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.lesson-tags span{color:#dce7f2;border:1px solid #49627a;border-radius:999px;padding:5px 9px;font-size:11px}.start-actions{gap:10px;margin-top:28px;display:flex}.lesson-feature .secondary-button{color:#fff;background:0 0;border-color:#49627a}.daily-summary{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:25px}.summary-top{border-bottom:1px solid var(--line);padding-bottom:18px;display:grid}.summary-top span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.summary-top strong{color:var(--ink);font-family:var(--display);margin-top:6px;font-size:32px}.summary-top small{color:var(--muted);font-size:13px}.week-bars{grid-template-columns:repeat(7,1fr);gap:5px;margin:18px 0 22px;display:grid}.week-bars span{aspect-ratio:1;color:var(--muted);background:var(--surface);border-radius:7px;place-items:center;font-size:11px;font-weight:800;display:grid}.week-bars span.done{color:#fff;background:var(--success)}.week-bars span.current{outline:2px solid var(--blue);color:var(--blue);background:var(--blue-soft)}.summary-row{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:13px 0;font-size:13px;display:flex}.summary-row strong{color:var(--ink)}.section-block{margin-top:46px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:14px;display:flex}.section-heading h2{color:var(--ink);font-family:var(--display);margin:3px 0 0;font-size:27px}.text-button{color:var(--blue);background:0 0;border:0;padding:5px;font-weight:750}.lesson-list{border:1px solid var(--line);background:var(--paper);border-radius:16px;overflow:hidden}.lesson-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:var(--paper);grid-template-columns:48px 1fr auto;align-items:center;gap:16px;width:100%;padding:16px 18px;display:grid}.lesson-row:last-child{border-bottom:0}.lesson-row:hover,.lesson-row.current{background:var(--blue-soft)}.day-number{color:var(--muted);font-family:var(--display);font-size:20px;font-weight:800}.lesson-row-copy{gap:2px;display:grid}.lesson-row-copy strong{color:var(--ink)}.lesson-row-copy small{color:var(--muted)}.lesson-status{color:var(--muted);font-size:12px;font-weight:750}.lesson-row.completed .day-number,.lesson-row.completed .lesson-status{color:var(--success)}.bottom-nav{z-index:30;border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:15px;gap:3px;padding:5px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.bottom-nav button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;grid-template-columns:auto auto;align-items:center;gap:7px;padding:0 14px;font-size:12px;font-weight:750;display:grid;position:relative}.bottom-nav button.active{color:var(--ink);background:var(--blue-soft)}.bottom-nav b{color:#fff;background:var(--blue);border-radius:9px;place-items:center;min-width:18px;height:18px;font-size:10px;display:grid;position:absolute;top:-5px;right:-3px}.nav-icon{border:1.7px solid;width:13px;height:13px;display:block}.nav-home{border-radius:3px;transform:rotate(45deg)scale(.8)}.nav-roadmap{border-width:0 0 2px 2px;transform:skew(-18deg)}.nav-vocabulary{border-radius:50%}.nav-settings{border-radius:2px;transform:rotate(45deg)}.page-title{max-width:760px;margin-bottom:34px}.roadmap-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.week-card{border:1px solid var(--line);background:var(--paper);border-radius:14px;min-height:180px;padding:20px}.week-card.ready{border-color:color-mix(in srgb, var(--blue) 42%, var(--line))}.week-card-top{color:var(--muted);letter-spacing:.08em;justify-content:space-between;font-size:11px;font-weight:800;display:flex}.week-card-top b{color:var(--blue)}.week-card h2{color:var(--ink);margin:30px 0 8px;font-size:18px}.week-card p{color:var(--muted);font-size:13px;line-height:1.5}.mini-progress,.progress-line{background:var(--line);border-radius:999px;height:5px;overflow:hidden}.mini-progress{margin-top:20px}.mini-progress span,.progress-line span{background:var(--blue);height:100%;display:block}.vocabulary-title{justify-content:space-between;align-items:end;max-width:none;display:flex}.vocab-tabs{background:var(--line);border-radius:10px;gap:4px;padding:4px;display:flex}.vocab-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:7px 12px;font-size:12px;font-weight:800}.vocab-tabs button.active{color:var(--ink);background:var(--paper)}.phrase-list{gap:9px;display:grid}.phrase-card{border:1px solid var(--line);background:var(--paper);border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px;display:grid}.phrase-card>div:nth-child(2){gap:3px;display:grid}.phrase-card strong{color:var(--ink)}.phrase-card span{color:var(--muted);font-size:13px}.play-small{width:38px;height:38px;color:var(--blue);background:var(--blue-soft);border:0;border-radius:50%;place-items:center;display:grid}.review-actions{gap:6px;display:flex}.review-actions button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:750}.review-actions .remembered{border-color:var(--success);color:var(--success)}.empty-state{border:1px dashed var(--line-strong);text-align:center;border-radius:18px;place-items:center;min-height:340px;padding:30px;display:grid}.empty-state span{width:64px;height:64px;color:var(--success);background:var(--success-soft);border-radius:50%;place-items:center;font-weight:800;display:grid}.empty-state h2{color:var(--ink);margin:18px 0 4px}.empty-state p{color:var(--muted)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.settings-card{border:1px solid var(--line);background:var(--paper);border-radius:15px;padding:24px}.settings-card h2{color:var(--ink);margin:0 0 20px;font-size:19px}.settings-card p{color:var(--muted);font-size:13px;line-height:1.55}.settings-card label{gap:6px;margin-bottom:14px;display:grid}.settings-card label>span{color:var(--muted);font-size:12px;font-weight:700}.settings-card input:not([type=range]),.settings-card select{border:1px solid var(--line);min-height:40px;color:var(--ink);background:var(--surface);border-radius:8px;padding:0 11px}.settings-card input[type=range]{width:100%;accent-color:var(--blue)}.capability{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:12px 0;font-size:13px;display:flex}.capability b.ok{color:var(--success)}.capability b.bad{color:var(--danger)}.config-status,.sync-status{color:var(--blue);background:var(--blue-soft);border-radius:7px;margin-top:14px;padding:7px 10px;font-size:11px;font-weight:750;display:inline-block}.sync-actions{align-items:center;gap:10px;margin-top:18px;display:flex}.settings-card label .primary-button{justify-self:start;margin-top:4px}.modal-page{z-index:100;background:var(--navy);place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.modal-card{background:var(--paper);border-radius:20px;width:min(680px,100%);padding:clamp(28px,6vw,54px);position:relative}.close-button{position:absolute;top:16px;right:16px}.modal-card h1{color:var(--ink);font-family:var(--display);margin:18px 0 12px;font-size:clamp(30px,5vw,44px);line-height:1.05}.lead{color:var(--muted);font-size:17px;line-height:1.55}.modal-card .progress-line{margin-top:22px}.answer-list{gap:9px;margin:28px 0 18px;display:grid}.answer-button{border:1px solid var(--line);min-height:50px;color:var(--ink);text-align:left;background:var(--surface);border-radius:10px;grid-template-columns:32px 1fr;align-items:center;gap:10px;padding:8px 12px;display:grid}.answer-button:hover{border-color:var(--blue);background:var(--blue-soft)}.answer-button span{width:28px;height:28px;color:var(--blue);background:var(--blue-soft);border-radius:7px;place-items:center;font-size:12px;font-weight:800;display:grid}.fine-print{color:var(--muted);font-size:11px;line-height:1.5}.result-mark{border:8px solid var(--blue-soft);width:92px;height:92px;color:var(--blue);font-family:var(--display);border-radius:50%;place-items:center;margin-bottom:24px;font-size:26px;font-weight:800;display:grid}.info-panel{border-left:3px solid var(--blue);background:var(--blue-soft);margin:24px 0;padding:18px}.info-panel p{color:var(--muted);margin:5px 0 9px}.info-panel a{color:var(--blue);font-weight:750}.icon-button{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);background:var(--paper);border-radius:50%;place-items:center;font-size:22px;display:grid}.lesson-shell{z-index:80;background:var(--surface);grid-template-rows:auto auto 1fr auto;display:grid;position:fixed;inset:0;overflow:auto}.lesson-header{background:var(--paper);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:16px 5vw;display:grid}.lesson-heading h1{color:var(--ink);font-family:var(--display);margin:2px 0 0;font-size:22px}.lesson-counter{color:var(--muted);font-size:13px;font-weight:800}.lesson-progress{border-radius:0}.exercise-stage{place-items:center;padding:40px 20px;display:grid}.exercise-card{border:1px solid var(--line);background:var(--paper);border-radius:20px;width:min(760px,100%);padding:clamp(26px,5vw,48px)}.exercise-kind{color:var(--blue);background:var(--blue-soft);letter-spacing:.12em;text-transform:uppercase;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:850;display:inline-flex}.exercise-card h2{color:var(--ink);font-family:var(--display);letter-spacing:-.035em;margin:20px 0 8px;font-size:clamp(29px,5vw,42px)}.practice-block{justify-items:start;gap:15px;margin-top:28px;display:grid}.audio-button,.mic-button{color:#fff;background:var(--navy);border:0;border-radius:12px;align-items:center;gap:12px;min-height:54px;padding:0 18px;font-weight:800;display:flex}.audio-icon{width:30px;height:30px;color:var(--navy);background:#fff;border-radius:50%;place-items:center;display:grid}.mic-button{background:var(--blue)}.mic-button.is-listening{background:var(--danger)}.translation-prompt{width:100%;color:var(--ink);background:var(--surface);border-radius:12px;padding:18px;font-size:19px;font-weight:750}.phrase-panel{border-left:3px solid var(--blue);background:var(--blue-soft);gap:4px;width:100%;padding:17px;display:grid}.phrase-panel strong{color:var(--ink);font-size:19px}.phrase-panel span{color:var(--muted);font-size:13px}.speech-result{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:16px;display:flex}.speech-result>div:first-child{gap:3px;display:grid}.speech-result span{color:var(--muted);text-transform:uppercase;font-size:11px}.speech-result strong{color:var(--ink)}.score-badge{border-radius:9px;place-items:center;min-width:58px;height:42px;font-weight:850;display:grid}.speech-result.good .score-badge{color:var(--success);background:var(--success-soft)}.speech-result.needs-work .score-badge{color:var(--danger);background:var(--danger-soft)}.grammar-panel,.reflection-panel{background:var(--surface);border-radius:13px;margin-top:28px;padding:22px}.grammar-formula{color:var(--blue);margin-bottom:12px;font-size:20px;font-weight:850}.grammar-panel p{color:var(--muted)}.answer-list.compact{margin-top:26px}.choice-feedback{border-radius:9px;padding:13px;font-size:13px;font-weight:750}.choice-feedback.correct{color:var(--success);background:var(--success-soft)}.choice-feedback.wrong{color:var(--danger);background:var(--danger-soft)}.pair-stage{margin-top:28px}.turn-indicator{color:var(--muted);margin-bottom:12px}.turn-indicator strong{color:var(--blue)}.role-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.role-grid>div{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:20px}.role-grid>div.active-role{border-color:var(--blue);background:var(--blue-soft)}.role-grid span{color:var(--blue);text-transform:uppercase;font-size:11px;font-weight:850}.role-grid p{color:var(--ink);margin:9px 0 0;line-height:1.5}.lesson-objective{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.lesson-objective span{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:7px 11px;font-size:12px}.reflection-panel{gap:8px;display:grid}.reflection-panel label{color:var(--ink);font-weight:750}.reflection-panel textarea{border:1px solid var(--line);color:var(--ink);background:var(--paper);resize:vertical;border-radius:9px;padding:12px}.error-message,.warning-text{color:var(--danger);background:var(--danger-soft);border-radius:8px;margin-top:14px;padding:11px;font-size:12px}.lesson-footer{border-top:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:16px;padding:14px 5vw;display:flex}.footer-score{color:var(--muted);font-size:12px}@media (width<=900px){.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-header{padding-inline:18px}.brand span,.profile-switcher span{display:none}.page{width:min(100% - 30px,680px);padding-top:30px}.welcome{align-items:start}.welcome p{max-width:230px}.diagnostic-banner{grid-template-columns:auto 1fr}.diagnostic-banner .primary-button{grid-column:1/-1}.today-grid,.settings-grid{grid-template-columns:1fr}.lesson-feature{min-height:360px;padding:24px}.start-actions{flex-direction:column;align-items:stretch}.daily-summary{display:none}.bottom-nav{justify-content:space-around;width:calc(100% - 16px);bottom:8px}.bottom-nav button{flex:1;grid-template-columns:1fr;justify-items:center;gap:2px;padding-inline:5px}.lesson-row{grid-template-columns:38px 1fr auto;gap:9px;padding-inline:12px}.lesson-row-copy small{display:none}.roadmap-grid{grid-template-columns:1fr}.week-card{min-height:145px}.week-card h2{margin-top:20px}.vocabulary-title{flex-direction:column;align-items:start;gap:20px}.phrase-card{grid-template-columns:auto 1fr}.review-actions{grid-column:1/-1;justify-content:end}.lesson-header{padding-inline:14px}.exercise-stage{align-items:start;padding:18px 12px 110px}.exercise-card{padding:24px 18px}.role-grid{grid-template-columns:1fr}.lesson-footer{position:fixed;bottom:0;left:0;right:0}.footer-score{display:none}.lesson-footer>div{flex:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
