:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef4f1;--panel:#fffdf7;--panel-strong:#f6efe3;--ink:#17201d;--muted:#64716b;--line:#d7ded7;--green:#2f6f73;--green-dark:#214d50;--amber:#f3b34d;--coral:#e86f51;--red:#ba3f3f;--blue:#2e6ea3;--shadow:0 16px 40px #1c2c2714;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--ink);margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.7}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#f9f6ed;flex-direction:column;gap:24px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--green);color:#fffdf7;border-radius:8px;place-items:center;width:44px;height:44px;font-weight:800;display:grid}.brand-lockup h1,.topbar h2,.panel h3,.question-card h4{margin:0}.eyebrow{color:var(--muted);text-transform:uppercase;margin:0 0 4px;font-size:.78rem}.nav-list{gap:8px;display:grid}.nav-button,.tab-button,.primary-action,.secondary-action,.ghost-action,.danger-action,.icon-button,.option,.rate,.word-chip{border:1px solid #0000;border-radius:8px;min-height:42px}.nav-button{width:100%;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:10px;padding:10px 12px;display:flex}.nav-button:hover,.nav-button.active{background:#e5eee8;border-color:#c9d7cf}.nav-button.active{color:var(--green-dark);font-weight:700}.sync-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.sync-panel span,.metric span,.metric-card span,.status-pill span,.muted{color:var(--muted)}.sync-panel strong,.sync-panel span{display:block}.main-area{width:100%;max-width:1280px;padding:28px}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.stat-row,.action-row,.rating-row,.tab-row,.compact-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.metric{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:86px;padding:9px 12px}.metric span,.metric strong{display:block}.metric strong{font-size:1.15rem}.workspace-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:18px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.panel.wide,.learning-panel{grid-column:span 1}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.dashboard-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric-card{border:1px solid var(--line);background:#fdfbf4;border-radius:8px;padding:14px}.metric-card strong{margin:6px 0;font-size:1.7rem;display:block}.metric-card small{color:var(--muted)}.task-list{color:var(--ink);margin:0;padding-left:20px}.task-list li+li{margin-top:9px}.compact-list li+li{margin-top:5px}.status-stack{gap:10px;display:grid}.status-pill{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.badge{min-height:28px;color:var(--green-dark);background:#e8f1ec;border-radius:999px;align-items:center;padding:4px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.centered-panel{text-align:center;min-height:260px;color:var(--muted);place-items:center;display:grid}.centered-panel h3{color:var(--ink)}.flashcard{text-align:center;border:1px solid var(--line);background:var(--panel-strong);border-radius:8px;justify-items:center;gap:14px;padding:26px;display:grid}.part-of-speech,.ipa-line{color:var(--muted);margin:0}.word-row{justify-content:center;align-items:center;gap:12px;display:flex}.word-row strong{font-size:2.3rem}.answer-block{gap:12px;max-width:720px;display:grid}.answer-block p,.answer-block blockquote,.prompt-text,.transcript-box p,.discussion-thread p,.prompt-card p{margin:0}.answer-block blockquote{border-left:4px solid var(--green);text-align:left;background:#fffaf0;padding:12px 14px}.context-block,.question-card,.prompt-card,.audio-panel,.transcript-box,.rubric-panel,.discussion-thread,.sentence-builder{border:1px solid var(--line);background:#fdfbf4;border-radius:8px}.context-block,.question-card,.prompt-card,.audio-panel,.transcript-box,.rubric-panel,.sentence-builder{padding:16px}.context-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.context-item{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:12px}.context-item span{color:var(--green-dark);margin-bottom:8px;font-weight:700;display:block}.context-item p,.drill p{margin:0}.option-grid{gap:8px;margin-top:12px;display:grid}.option{text-align:left;background:var(--panel);border-color:var(--line);width:100%;color:var(--ink);padding:11px 12px}.option:hover{border-color:var(--green)}.option.correct{background:#e8f6ec;border-color:#6bbf85}.blank-input.correct{color:#1d4f2f;background:#e8f6ec;border-bottom-color:#6bbf85}.option.wrong{background:#fff0f0;border-color:#e19595}.blank-input.wrong{color:#8a2a2a;background:#fff0f0;border-bottom-color:#e19595;text-decoration:line-through}.primary-action,.secondary-action,.ghost-action,.danger-action{justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:700;display:inline-flex}.primary-action{background:var(--green);color:#fff;border-color:var(--green)}.secondary-action{color:var(--ink);border-color:var(--line);background:#fffaf0}.ghost-action{color:var(--green-dark);border-color:var(--line);background:0 0}.danger-action{background:var(--red);color:#fff;border-color:var(--red)}.compact{min-height:34px;padding:6px 10px}.icon-button{background:var(--panel);width:42px;height:42px;color:var(--green-dark);border-color:var(--line);place-items:center;display:inline-grid}.rating-row{margin-top:16px}.rate{color:var(--ink);flex:120px;padding:12px;font-weight:800}.rate.again{background:#fff0f0;border-color:#e19595}.rate.hard{background:#fff5df;border-color:#ecc06d}.rate.good{background:#e8f6ec;border-color:#6bbf85}.rate.easy{background:#e7f1f5;border-color:#7fb2cc}.prompt-text{max-width:860px;font-size:1.15rem;line-height:1.6}.transcript-box{min-height:130px;margin-top:16px}.transcript-box span{color:var(--muted);margin-bottom:10px;display:block}.feedback-list{gap:10px;display:grid}.feedback-item{border:1px solid var(--line);border-radius:8px;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.feedback-item.good{background:#e8f6ec}.feedback-item.warn{background:#fff5df}.feedback-item.danger{background:#fff0f0}.tab-row{margin-bottom:18px}.tab-button{border-color:var(--line);color:var(--ink);background:#fdfbf4;padding:9px 12px}.tab-button.active{background:var(--green);color:#fff;border-color:var(--green)}.reading-body{gap:16px;display:grid}.passage-text{white-space:pre-wrap;border:1px solid var(--line);background:#fdfbf4;border-radius:8px;padding:16px;line-height:1.75}.cloze-text{border:1px solid var(--line);background:#fdfbf4;border-radius:8px;padding:16px;font-family:Georgia,Times New Roman,serif;font-size:1.02rem;line-height:2.4}.cloze-hint{margin:4px 0 12px;font-size:.85rem}.blank-wrap{vertical-align:baseline;margin:0 2px;display:inline-block;position:relative}.blank-input{border:none;border-bottom:2px solid var(--green);width:auto;min-height:30px;color:var(--ink);text-align:center;letter-spacing:.05em;background:#2f6f7314;border-radius:0;outline:none;padding:2px 6px;font-family:Georgia,Times New Roman,serif;font-size:1rem;transition:background-color .15s,border-color .15s}.blank-input:focus{border-bottom-color:var(--green-dark);background:#2f6f732e}.blank-input::placeholder{color:var(--green-dark);opacity:.55;letter-spacing:.22em;font-family:monospace;font-weight:700}.blank-count{color:var(--green-dark);background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:6px;padding:1px 4px;font-size:.62rem;font-weight:700;line-height:1;position:absolute;top:-10px;right:-4px}.result-banner{color:var(--green-dark);background:#e8f1ec;border-radius:8px;align-items:center;gap:8px;padding:12px;display:flex}.result-banner.danger{color:var(--red);background:#fff0f0}.result-banner.success{background:#e8f6ec}.audio-panel{text-align:center;place-items:center;gap:14px;min-height:260px;display:grid}.centered{justify-content:center}.flat{background:0 0;border:0;padding:0}.writing-layout{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;display:grid}.writing-layout h3{margin-top:10px}.writing-area{resize:vertical;border:1px solid var(--line);width:100%;min-height:260px;color:var(--ink);background:#fff;border-radius:8px;margin-top:14px;padding:14px;line-height:1.6}.textarea-footer{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.rubric-panel{align-self:start}.rubric-panel h4{margin:0 0 12px}.rubric-item{border-bottom:1px solid var(--line);color:var(--muted);align-items:flex-start;gap:8px;padding:9px 0;display:flex}.rubric-item.pass{color:var(--green-dark)}.model-answer{white-space:pre-wrap;background:#f6efe3;border-radius:8px;margin:14px 0 0;padding:12px;font-family:inherit;line-height:1.5;overflow:auto}.sentence-builder{gap:14px;margin-top:16px;display:grid}.sentence-card{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:16px;overflow:hidden}.sentence-stimulus{color:var(--ink);padding:20px 24px;font-size:1.02rem;line-height:1.5}.sentence-answer-row{min-height:64px;color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:22px 24px;font-size:1.02rem;display:flex}.sentence-stimulus+.sentence-answer-row{border-top:1px solid var(--line)}.sentence-fixed{color:var(--ink)}.sentence-blank{border-bottom:2px solid #9aa8a0;align-self:flex-end;width:74px;margin-bottom:6px;display:inline-block}.word-bank{flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;margin-top:16px;display:flex}.word-chip{border-color:var(--line);color:var(--ink);background:#fffaf0;padding:8px 14px;font-weight:600}.word-chip:disabled{opacity:.5;cursor:default}.word-chip.selected{background:#e8f1ec;border-color:#b5cac0}.sentence-hint{margin-top:4px;font-size:.88rem}.discussion-thread{gap:10px;margin-top:10px;display:grid}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:14px;position:static}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.sync-panel{display:none}.main-area{padding:16px}.workspace-grid,.writing-layout{grid-template-columns:1fr}.dashboard-cards,.context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.topbar,.textarea-footer{flex-direction:column;align-items:stretch}.stat-row,.nav-list,.dashboard-cards,.context-grid{grid-template-columns:1fr}.nav-list{display:grid}.nav-button{justify-content:flex-start}.word-row strong{font-size:1.8rem}.panel{padding:14px}.pron-grid{gap:6px 8px;max-width:100%}}.pron-grid{grid-template-columns:auto 1fr auto;align-items:center;gap:8px 12px;max-width:340px;margin:8px auto 4px;display:grid}.pron-flag{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:48px;height:40px;padding:0;font-size:1.2rem;transition:transform .12s,background-color .15s,border-color .15s;display:inline-flex}.pron-flag:hover{border-color:var(--green);background:#e8f1ec;transform:scale(1.04)}.pron-flag:active{transform:scale(.96)}.pron-ipa{color:var(--green-dark);letter-spacing:.02em;text-align:left;font-family:Charis SIL,Doulos SIL,Lucida Sans Unicode,DejaVu Sans,serif;font-size:1rem}.pron-slow{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;width:36px;height:32px;padding:0;font-size:.95rem;transition:all .15s}.pron-slow:hover{background:var(--panel-strong);color:var(--ink);border-color:var(--green)}.pron-hint{text-align:center;color:var(--muted);opacity:.85;margin:2px 0 8px;font-size:.78rem}.install-prompt{z-index:1000;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:12px;max-width:360px;padding:12px 14px;animation:.32s ease-out install-slide-in;display:flex;position:fixed;bottom:16px;right:16px}@keyframes install-slide-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.install-prompt-text{flex-direction:column;gap:2px;min-width:0;display:flex}.install-prompt-text strong{color:var(--green-dark);font-size:.95rem}.install-prompt-text span{color:var(--muted);font-size:.78rem}.install-prompt-actions{flex-shrink:0;gap:6px;display:flex}@media (width<=520px){.install-prompt{max-width:none;bottom:12px;left:12px;right:12px}}.pro-icon{color:var(--amber);margin-left:auto}.pro-pill{border:1px solid var(--amber);color:#7a5a13;letter-spacing:.02em;background:linear-gradient(135deg,#fff4d6 0%,#ffe9a8 100%);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:.78rem;font-weight:700;display:inline-flex}.upgrade-banner{border:1px solid var(--amber);color:#5a4310;text-align:left;cursor:pointer;background:linear-gradient(135deg,#fffbef 0%,#fff4d6 100%);border-radius:10px;align-items:center;gap:12px;width:100%;margin-top:14px;padding:12px 14px;transition:transform .15s,box-shadow .15s;display:flex}.upgrade-banner:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.upgrade-banner>span{flex-direction:column;gap:2px;display:flex}.upgrade-banner strong{font-size:.95rem}.upgrade-banner span span{color:var(--muted);font-size:.8rem}.pricing-section{flex-direction:column;gap:18px;display:flex}.pricing-hero{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.pricing-hero h3{margin:6px 0 8px;font-size:1.4rem}.pricing-hero-icon{color:var(--amber);flex-shrink:0}.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.plan-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:14px;padding:22px;display:flex;position:relative}.plan-card.current{border-color:var(--green);outline-offset:-2px;outline:2px solid #2f6f732e}.plan-card.pro{background:linear-gradient(#fffbef 0%,#fdfbf4 70%)}.plan-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.plan-card-head h4{color:var(--green-dark);align-items:center;gap:8px;margin:0;font-size:1.25rem;display:flex}.plan-price{color:var(--ink);margin:0;font-size:1.7rem;font-weight:800}.plan-price span{color:var(--muted);margin-left:4px;font-size:.85rem;font-weight:500;display:inline}.plan-features{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.plan-features li{align-items:flex-start;gap:9px;font-size:.93rem;line-height:1.4;display:flex}.plan-features .check{color:var(--green);flex-shrink:0;margin-top:1px}.plan-features .sparkle{color:var(--amber);flex-shrink:0;margin-top:1px}.plan-features li em{color:var(--muted);font-size:.85rem;font-style:normal}.plan-active{color:var(--green-dark);background:#e8f1ec;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-block}.dev-toggle{background:#f9f6ed;border-style:dashed;justify-content:space-between;align-items:center;gap:18px;display:flex}.dev-toggle h4{margin:4px 0}.muted.small{margin-top:6px;font-size:.82rem}@media (width<=760px){.pricing-grid{grid-template-columns:1fr}.pricing-hero{flex-direction:column-reverse;align-items:flex-start}.dev-toggle{flex-direction:column;align-items:flex-start}}.signin-form{flex-direction:column;gap:8px;display:flex}.auth-tabs{gap:6px;margin-bottom:4px;display:flex}.auth-tabs .tab-button{flex:1}.email-input{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);border-radius:8px;padding:9px 11px;font-size:.95rem}.email-input:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #2f6f732e}.auth-message{border:1px solid var(--green);color:var(--green-dark);background:#e8f1ec;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:9px 14px;font-size:.9rem;display:flex}.link-button{color:var(--green-dark);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}.link-button:hover{color:var(--green)}
