:root{--bg:#f7f7fb;--panel:#fff;--panel-soft:#f4f3ff;--panel-muted:#f3f4f8;--text:#252536;--muted:#717184;--line:#e4e3ec;--accent:#6c5ce7;--accent-strong:#5949d7;--accent-soft:#ece9ff;--accent-faint:#f6f4ff;--danger:#ad4444;--warning:#9a6b19;--success:#2f7750;--shadow:0 12px 34px #36305c12;--shadow-soft:0 5px 18px #36305c0f;--radius:18px;--sidebar:278px}*{box-sizing:border-box}html{background:var(--bg);max-width:100%;overflow-x:clip}body{min-height:100vh;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;max-width:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:clip}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px}button{cursor:pointer}.shell{grid-template-columns:var(--sidebar) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{width:var(--sidebar);z-index:50;border-right:1px solid var(--line);background:#fff;flex-direction:column;padding:24px 18px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-head{justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:12px;margin:2px 7px 28px;display:flex}.brand-mark{color:#fff;letter-spacing:-.04em;background:linear-gradient(145deg,#7969ef,#6251df);border-radius:13px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:13px;font-weight:900;display:grid;box-shadow:0 7px 18px #6c5ce73d}.brand-mark.small{border-radius:10px;flex-basis:32px;width:32px;height:32px;font-size:10px}.brand-copy{font-size:20px;line-height:1.02;display:grid}.brand-copy small{color:var(--accent);letter-spacing:.01em;margin-top:3px;font-size:13px;font-weight:750}.nav-label{color:#a09eae;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 8px;font-size:11px;font-weight:800}.nav-label-secondary{margin-top:20px}.nav{gap:5px;display:grid}.nav-link{color:#454457;border-radius:12px;align-items:center;gap:13px;min-height:47px;padding:11px 14px;font-weight:650;transition:background .15s,color .15s,transform .15s;display:flex}.nav-link:hover{color:#2d2c3d;background:#f6f5fa}.nav-link.active{color:#fff;background:linear-gradient(135deg,#7566ec,#6555df);box-shadow:0 5px 13px #6c5ce738}.nav-icon{place-items:center;width:24px;display:grid}.sidebar-bottom{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:16px 8px 0;font-size:13px}.profile-chip{align-items:center;gap:10px;display:flex}.profile-chip>div{display:grid}.profile-chip small{color:#9a99a8}.profile-chip strong{color:var(--text);margin-top:2px}.profile-avatar{width:36px;height:36px;color:var(--accent-strong);background:var(--accent-soft);border-radius:50%;place-items:center;display:grid}.switch-user{color:var(--accent-strong);margin-top:11px;font-weight:750;display:inline-block}.switch-user:hover{text-decoration:underline}.mobile-close,.mobile-menu,.sidebar-backdrop{display:none}.app-stage{grid-column:2;min-width:0;min-height:100vh}.app-topbar{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#fffffff0;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;min-height:78px;padding:14px 28px;display:grid;position:sticky;top:0}.topbar-left{align-items:center;display:flex}.topbar-brand-mobile{align-items:center;gap:10px;display:none}.quick-actions{align-items:center;gap:10px;display:flex}.quick-action{border:1px solid var(--line);color:#555365;background:#fff;border-radius:13px;justify-content:center;align-items:center;gap:8px;min-width:84px;height:48px;padding:0 14px;font-size:13px;font-weight:750;transition:all .15s;display:flex;box-shadow:0 2px 7px #2d2b470a}.quick-action:hover{color:var(--accent-strong);background:var(--accent-faint);border-color:#cfc9ff;transform:translateY(-1px)}.topbar-user{color:#4d4b5c;justify-self:end;align-items:center;gap:9px;font-size:14px;font-weight:700;display:flex}.topbar-avatar{width:36px;height:36px;color:var(--accent-strong);background:#f0eff6;border-radius:50%;place-items:center;font-weight:850;display:grid}.main{min-width:0}.content{max-width:1220px;margin:0 auto;padding:36px 36px 64px}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:850}h1{letter-spacing:-.04em;margin:8px 0 11px;font-size:clamp(30px,4vw,46px);line-height:1.04}h2{letter-spacing:-.025em;margin:0;font-size:23px}h3{margin:0;font-size:17px}p{line-height:1.58}.muted{color:var(--muted)}.lead{color:var(--muted);max-width:760px;margin-bottom:0;font-size:16px}.grid{gap:18px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:22px}.card.soft{background:var(--accent-faint);box-shadow:none;border-color:#e7e3ff}.card-header{justify-content:space-between;align-items:start;gap:14px;margin-bottom:16px;display:flex}.metric{letter-spacing:-.04em;font-size:30px;font-weight:850}.badge{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:750;display:inline-flex}.badge.warning{color:var(--warning);background:#f7edda}.badge.success{color:var(--success);background:#e2f0e7}.button{background:var(--accent);color:#fff;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-weight:780;display:inline-flex;box-shadow:0 5px 14px #6c5ce72e}.button:hover{background:var(--accent-strong)}.button.secondary{background:var(--panel);color:var(--text);border:1px solid var(--line);box-shadow:none}.button.secondary:hover{color:var(--accent-strong);background:var(--accent-faint);border-color:#cfc9ff}.button.ghost{color:var(--accent-strong);box-shadow:none;background:0 0}.button.full{width:100%}.stack{gap:14px;display:grid}.row{align-items:center;gap:12px;display:flex}.row.between{justify-content:space-between}.input,.select,.textarea{width:100%;min-width:0;color:var(--text);background:#fff;border:1px solid #d5d3df;border-radius:12px;outline:none;padding:12px 13px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6c5ce71c}label{gap:7px;font-size:14px;font-weight:700;display:grid}.form-grid{gap:16px;min-width:0;display:grid}.auth-wrap{background:radial-gradient(circle at top,#f1efff 0,#fafafe 38%,#f7f7fb 100%);place-items:center;width:100%;min-height:100svh;padding:30px;display:grid;overflow-x:clip}.auth-card{width:min(460px,100%);min-width:0;max-width:100%}.auth-logo{margin-bottom:22px}.notice{border:1px solid var(--line);color:var(--muted);background:#f7f6fb;border-radius:12px;padding:13px 15px;font-size:14px}.error{color:var(--danger);font-size:14px}.plan-list{gap:10px;margin-top:18px;display:grid}.plan-item{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:14px;display:grid}.plan-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-strong);border-radius:12px;place-items:center;font-weight:850;display:grid}.progress-bar{background:#e8e7ef;border-radius:99px;height:9px;overflow:hidden}.progress-bar>span{border-radius:inherit;background:linear-gradient(90deg,#7768ed,#6555df);height:100%;display:block}.session-shell{background:var(--bg);min-height:100vh}.session-top{max-width:900px;margin:0 auto;padding:24px 26px 10px}.session-body{max-width:760px;margin:0 auto;padding:24px 26px 60px}.lesson-rule{border:1px solid #c7c0f4;border-left:5px solid var(--accent);background:var(--accent-soft);color:var(--text);overflow-wrap:break-word;border-radius:16px;margin:24px 0;padding:clamp(14px,3.5vw,24px)}.lesson-rule h2{color:var(--accent-strong);margin:0 0 14px;font-size:clamp(23px,4.5vw,26px)}.lesson-rule-explanation{margin:0;font-weight:500;line-height:1.7}.lesson-rule-example{border-top:1px solid #c7c0f4;margin-top:20px;padding-top:16px}.lesson-rule-example p{margin:0;line-height:1.6}.lesson-rule-example .muted{color:#5f5a73;margin-top:6px}.question{letter-spacing:-.03em;font-size:28px;font-weight:800;line-height:1.25}.onboarding-navigation{z-index:1000;background:var(--bg,#f7f7fb);border-bottom:1px solid var(--border,#e7e6ed);padding:12px 16px;position:sticky;top:0}.onboarding-navigation .button{min-height:44px}.assessment-question{overflow-wrap:break-word;min-width:0;max-width:100%;margin-top:16px;padding:clamp(16px,4vw,26px)}.assessment-question .question{-webkit-hyphens:none;hyphens:none;overflow-wrap:break-word;margin:8px 0 12px;scroll-margin-top:96px;font-size:clamp(22px,5.5vw,28px);line-height:1.35}.assessment-viewport:after{content:"";height:var(--assessment-keyboard-space,0px);overflow-anchor:none;display:block}.assessment-viewport [data-assessment-answer]{width:100%;max-width:100%;scroll-margin-block:96px 24px;font-size:16px}.assessment-viewport textarea[data-assessment-answer]{max-height:var(--assessment-answer-max-height,none);resize:vertical}.assessment-example,.assessment-examples{background:var(--accent-faint,#f4f2ff);border-radius:12px;margin:14px 0;font-size:18px;line-height:1.5}.assessment-example{padding:12px 14px}.assessment-examples{padding:12px 14px 12px 38px}.assessment-examples li+li{margin-top:8px}.assessment-instruction{margin:10px 0;font-size:16px;line-height:1.45}.assessment-help{margin-top:10px;font-size:16px}.assessment-help summary{cursor:pointer;align-items:center;min-height:44px;font-weight:650;display:flex}.assessment-audio{min-width:0;max-width:100%;margin-top:12px}.assessment-audio .audio-options{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.assessment-audio .audio-options button{white-space:normal;flex:140px;min-width:0;min-height:48px}.assessment-audio .audio-hint{margin:10px 0 0;font-size:14px;line-height:1.4}.answer-grid{gap:10px;margin-top:22px;display:grid}.listening-answer-question{margin:0 0 4px;font-size:17px;line-height:1.4}.answer-button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;width:100%;padding:15px 16px}.answer-button:hover{border-color:var(--accent);background:var(--accent-faint)}.answer-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-faint);box-shadow:inset 0 0 0 1px var(--accent)}.feedback{border-radius:14px;margin-top:16px;padding:14px 16px}.feedback.ok{color:#24593b;background:#e5f1e9}.feedback.no{color:#8d3434;background:#f6e6e6}.feedback.partial{color:#775315;background:#fff3d6}.assessment-viewport [data-answer-outcome]{opacity:1;-webkit-text-fill-color:currentColor;box-shadow:none}.assessment-viewport [data-answer-outcome=correct]{color:#24593b;background:#e5f1e9;border-color:#2f7750}.assessment-viewport [data-answer-outcome=partial]{color:#775315;background:#fff3d6;border-color:#a77825}.assessment-viewport [data-answer-outcome=incorrect]{color:#8d3434;background:#f6e6e6;border-color:#a94949}.timeline{border-left:2px solid #dcd9f0;gap:22px;margin:12px 0 0 10px;padding-left:22px;display:grid}.timeline-item{position:relative}.timeline-item:before{content:"";background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:5px;left:-29px}.family-login-card{width:min(520px,100%)}.family-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.family-person{border:1px solid var(--line);text-align:left;color:var(--text);background:#fff;border-radius:14px;align-items:center;gap:11px;padding:12px;display:flex}.family-person:hover{background:var(--accent-faint);border-color:#cbc5ff}.family-person.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px #6c5ce71a}.family-person small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.family-avatar{background:var(--panel-muted);width:38px;height:38px;color:var(--accent-strong);border-radius:50%;flex:0 0 38px;place-items:center;font-size:12px;font-weight:850;display:grid}.family-person.selected .family-avatar{background:var(--accent);color:#fff}.text-button{width:100%;color:var(--muted);background:0 0;border:0;padding:14px 4px 0;font-size:13px}.text-button:hover{color:var(--accent-strong)}.feature-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.feature-tile{border:1px solid var(--line);background:#fff;border-radius:16px;min-height:132px;padding:18px;transition:all .15s}.feature-tile:hover{background:var(--accent-faint);border-color:#cec8ff;transform:translateY(-1px)}.feature-tile strong{margin-bottom:6px;display:block}.feature-tile span{color:var(--muted);font-size:14px;line-height:1.45}@media (max-width:1040px){:root{--sidebar:246px}.quick-action span{display:none}.quick-action{width:48px;min-width:48px;padding:0}.content{padding-left:28px;padding-right:28px}}@media (max-width:820px){.shell{display:block}.app-stage{min-height:100vh}.sidebar{width:min(310px,86vw);transition:transform .2s;transform:translate(-103%);box-shadow:18px 0 45px #201c4024}.sidebar.open{transform:translate(0)}.mobile-close{width:38px;height:38px;color:var(--text);background:#f4f3f8;border:0;border-radius:11px;place-items:center;margin-bottom:26px;display:grid}.sidebar-backdrop{z-index:45;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f1c313d;border:0;display:block;position:fixed;inset:0}.app-topbar{grid-template-columns:1fr auto;gap:12px;min-height:68px;padding:10px 16px}.topbar-left{gap:10px}.mobile-menu{border:1px solid var(--line);width:42px;height:42px;color:var(--text);background:#fff;border-radius:12px;place-items:center;display:grid}.topbar-brand-mobile{display:flex}.topbar-user{display:none}.quick-actions{justify-self:end;gap:7px}.quick-action{width:42px;min-width:42px;height:42px}.content{padding:26px 18px 48px}.grid.two,.grid.three,.feature-tiles{grid-template-columns:1fr}}@media (max-width:520px){.auth-wrap{min-height:100svh;padding:max(22px, env(safe-area-inset-top)) 16px 28px;place-items:start center}.family-login-card{width:100%;max-width:100%}.family-picker{grid-template-columns:1fr}.quick-actions .quick-action:nth-child(3),.topbar-brand-mobile strong{display:none}h1{font-size:32px}.plan-item{grid-template-columns:40px 1fr}.plan-item>.muted:last-child{grid-column:2}}.product-feedback-launcher{left:calc(var(--sidebar) + 14px);bottom:max(14px, env(safe-area-inset-bottom));z-index:82;position:fixed}@media (max-width:820px){.product-feedback-launcher{left:14px}.shell:has(.sidebar.open) .product-feedback-launcher{visibility:hidden}}.entry-page{max-width:720px;margin:0 auto;padding:20px 16px 40px}.entry-completion h1,.entry-coach-introduction h1,.entry-page h1{font-size:clamp(25px,5.2vw,34px);line-height:1.2}.entry-completion{padding:clamp(20px,4vw,32px)}.entry-completion .button{margin-top:12px}.entry-result-link{margin-top:24px;font-size:15px}.entry-goal-fields textarea{font-size:16px;line-height:1.5}.entry-coach-introduction{margin-bottom:24px}.entry-preview-nav{flex-wrap:wrap;gap:8px;margin:0 0 20px;display:flex}.entry-preview-nav button{padding:9px 12px;font-size:15px}.speaking-check p{line-height:1.6}.speaking-feedback{color:var(--text);margin-block:18px}.speaking-feedback>p{margin-bottom:14px}.speaking-correction{border:1px solid var(--line);background:var(--accent-faint);border-radius:14px;gap:14px;padding:16px;display:grid}.speaking-correction span{color:var(--muted);font-size:.85rem;display:block}.speaking-correction p{margin:4px 0 0}.speaking-review{border-top:1px solid var(--line);margin-block:20px;padding-top:12px}.speaking-transcript{background:var(--accent-faint);white-space:pre-wrap;border-radius:12px;padding:16px}.speaking-history{margin-block:18px}.speaking-history>div{border-bottom:1px solid var(--line);padding-block:10px}.speaking-check h2[tabindex]{outline:none;scroll-margin-top:24px}.speaking-progress{border:1px solid var(--line);background:var(--accent-faint);border-radius:14px;min-height:140px;padding:18px}.speaking-progress h2,.speaking-feedback-step>h2{margin-top:0}.speaking-feedback-step>.button{margin-top:6px}.speaking-action-error{margin-block:20px}.entry-dialogue{overflow-wrap:anywhere;margin:20px auto}.entry-dialogue .button{white-space:normal}.entry-dialogue-messages{gap:14px;margin:22px 0;display:grid}.entry-dialogue-message{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:16px 18px}.entry-dialogue-message.user{background:var(--panel-soft)}.entry-message-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;font-size:.85rem;display:flex}.entry-message-heading>strong{color:var(--muted)}.entry-answer-label{font-weight:700}.entry-dialogue-message[data-answer-outcome=correct]{color:#24593b;background:#e5f1e9;border-color:#2f7750}.entry-dialogue-message[data-answer-outcome=partial]{color:#775315;background:#fff3d6;border-color:#a77825}.entry-dialogue-message[data-answer-outcome=incorrect]{color:#8d3434;background:#f6e6e6;border-color:#a94949}.entry-answer-feedback{border-top:1px solid;margin-top:14px;padding-top:4px}.entry-answer-feedback p{margin:10px 0 0}.entry-dialogue-message>p{white-space:pre-wrap;margin:8px 0 0}.entry-dialogue form{gap:12px;display:grid}.entry-dialogue details p{white-space:pre-wrap}body[data-keyboard-open=true]{padding-bottom:var(--assessment-keyboard-space,0px)}body[data-keyboard-open=true] textarea:not([data-assessment-answer]){max-height:var(--assessment-answer-max-height,none);overflow-y:auto}body[data-keyboard-open=true] [data-input-floating-launcher]:not(:focus-within),body[data-keyboard-open=true] .product-feedback-launcher:not(:focus-within)>button{visibility:hidden;pointer-events:none}body[data-keyboard-open=true] [data-input-overlay]{top:calc(var(--input-visible-top,0px) + 8px)!important;height:calc(var(--input-visible-height,60vh) - 16px)!important;max-height:calc(var(--input-visible-height,60vh) - 16px)!important;position:fixed!important;bottom:auto!important}
.grammar-teacher-card{background:linear-gradient(145deg,#fbfaff,#f3f0ff);border:1px solid #dcd7ff;border-radius:18px;margin-bottom:28px;padding:22px;box-shadow:0 8px 24px #4b3d9114}.grammar-teacher-heading,.grammar-dialog-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.grammar-teacher-heading h2,.grammar-dialog-heading h3{margin-top:7px}.grammar-teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.grammar-teacher-grid>div{background:#ffffffe0;border:1px solid #e4e0fa;border-radius:14px;padding:16px}.grammar-teacher-grid p{color:var(--muted);margin:7px 0 0}.grammar-memory,.grammar-hint,.grammar-scaffold{border-radius:14px;gap:5px;margin-top:14px;padding:14px 16px;display:grid}.grammar-memory{color:#4635a7;background:#eae6ff}.grammar-hint{color:#73541d;background:#fff7e5;border:1px solid #ead7a9}.grammar-scaffold{color:#493ba0;background:#f2efff;border:1px solid #cfc7ff}.grammar-details{background:#fff;border:1px solid #dfdbf3;border-radius:14px;margin-top:14px;padding:0 16px}.grammar-details summary{cursor:pointer;color:var(--accent-strong);padding:14px 0;font-weight:780}.grammar-details-content{gap:18px;padding:0 0 18px;display:grid}.grammar-details-content ol,.grammar-details-content ul{color:var(--muted);gap:8px;margin:9px 0 0;padding-left:21px;display:grid}.grammar-details-content small{color:#8d8a9b;margin-top:3px;display:block}.grammar-wrong{color:var(--danger);text-decoration:line-through}.grammar-right{color:var(--success);font-weight:750}.grammar-help-bar{flex-wrap:wrap;align-items:center;gap:9px;margin-top:18px;display:flex}.grammar-help-bar .button{padding:9px 13px}.grammar-dialog{background:#fbfaff;border:1px solid #d9d4fa;border-radius:17px;margin-top:18px;padding:18px}.text-button.compact{width:auto;margin:0;padding:4px 0}.grammar-question-chips{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.grammar-question-chips button{color:#504869;background:#fff;border:1px solid #d8d3f4;border-radius:999px;padding:9px 11px;font-size:13px;font-weight:700}.grammar-question-chips button:hover{color:var(--accent-strong);background:var(--accent-faint);border-color:#bdb4f4}.grammar-question-chips button:disabled{opacity:.55;cursor:wait}.grammar-dialog-messages{gap:10px;margin-top:16px;display:grid}.grammar-message{white-space:pre-wrap;border-radius:14px;gap:5px;max-width:92%;padding:12px 14px;line-height:1.5;display:grid}.grammar-message strong{text-transform:uppercase;letter-spacing:.08em;font-size:11px}.grammar-message.learner{color:#fff;background:var(--accent);justify-self:end}.grammar-message.teacher{color:var(--text);background:#fff;border:1px solid #e0ddef;justify-self:start}.grammar-question-form{grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:15px;display:grid}@media (max-width:640px){.grammar-teacher-card,.grammar-dialog{padding:16px}.grammar-teacher-grid,.grammar-question-form{grid-template-columns:1fr}.grammar-question-form .button{width:100%}.grammar-message{max-width:100%}}
.navigation-feedback-module__r2pYHq__overlay{z-index:9999;pointer-events:none;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#ffffff2e;place-items:start center;padding-top:18px;display:grid;position:fixed;inset:0}.navigation-feedback-module__r2pYHq__pill{border:1px solid var(--line);background:#fffffff5;border-radius:999px;align-items:center;gap:10px;padding:10px 16px;font-weight:700;display:inline-flex;box-shadow:0 10px 30px #1f1d3624}.navigation-feedback-module__r2pYHq__spinner{border:2px solid #d9d5f8;border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite navigation-feedback-module__r2pYHq__spin}@keyframes navigation-feedback-module__r2pYHq__spin{to{transform:rotate(360deg)}}
