:root{color:#22312d;background:#f5f0e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;letter-spacing:0}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{align-items:center;border:0;cursor:pointer;display:inline-flex;gap:.45rem;justify-content:center}button:disabled{cursor:wait;opacity:.55}input,textarea{background:#fffdf8;border:1px solid #d8d1c5;border-radius:8px;color:#22312d;outline:none;padding:.8rem .9rem;width:100%}input:focus,textarea:focus{border-color:#2f7f6f;box-shadow:0 0 0 3px #2f7f6f24}textarea{min-height:118px;resize:vertical}.app-shell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh}.login-shell{align-items:center;display:grid;justify-items:center;min-height:100vh;padding:1rem}.login-card{background:#fffaf0;border:1px solid #ddd6c8;border-radius:12px;display:grid;gap:1rem;max-width:430px;padding:1.2rem;width:100%}.login-card h2,.login-card p{margin:0}.login-card label:not(.language-select){color:#60716d;display:grid;font-size:.86rem;gap:.35rem}.login-brand{color:#22312d}.login-language{justify-content:center}.side-nav{background:#24332f;color:#fffaf0;display:flex;flex-direction:column;gap:1.25rem;padding:1.1rem}.brand{align-items:center;display:flex;gap:.8rem}.brand-mark,.lesson-number{align-items:center;background:#d9a441;border-radius:8px;color:#172420;display:inline-flex;font-weight:850;height:44px;justify-content:center;width:44px}.brand h1,.brand p,.topbar h2,.topbar p,.panel h3,.duo-card h3,.flashcard h3{margin:0}.brand h1{font-size:1.05rem}.brand p,.eyebrow,.muted{color:#aebdb8;font-size:.84rem}.side-nav nav,.folder-list,.lesson-list,.card-list,.score-detail{display:grid;gap:.55rem}.nav-button,.folder-button,.lesson-card{border-radius:8px;min-height:46px;padding:.72rem .8rem}.nav-button{background:transparent;color:#dce7e2;justify-content:flex-start;width:100%}.nav-button.active{background:#fffaf0;color:#22312d}.streak-card{background:#fffaf014;border:1px solid rgba(255,250,240,.14);border-radius:8px;display:grid;gap:.15rem;margin-top:auto;padding:.9rem}.streak-card strong{color:#f0bd55;font-size:2rem}.streak-card span{color:#dce7e2;font-size:.88rem}.workspace{display:flex;flex-direction:column;min-width:0}.topbar{align-items:center;background:#fffaf0;border-bottom:1px solid #ddd6c8;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.25rem}.topbar h2{font-size:clamp(1.35rem,2.2vw,2rem)}.role-toggle,.tier-tabs,.inline-actions{display:flex;gap:.5rem}.topbar-actions{align-items:center;display:flex;gap:.75rem}.language-select,.threshold-control{align-items:center;color:#60716d;display:flex;font-size:.82rem;gap:.45rem;white-space:nowrap}.language-select select,.threshold-control input{background:#fffdf8;border:1px solid #d8d1c5;border-radius:8px;color:#22312d;min-height:38px;padding:.35rem .55rem}.threshold-control input{width:72px}.role-toggle,.tier-tabs{background:#e8e0d1;border-radius:10px;padding:.25rem}.role-toggle button,.tier-tabs button{background:transparent;border-radius:8px;color:#314540;min-height:38px;padding:.45rem .75rem}.role-toggle button.active,.tier-tabs button.active{background:#fffdf8;box-shadow:0 1px 4px #20312f24}.page-grid,.roleplay-layout,.attention-layout{display:grid;gap:1rem;padding:1rem}.materials-grid{grid-template-columns:300px minmax(0,1fr)}.edit-grid{grid-template-columns:280px minmax(320px,1fr) minmax(320px,1fr)}.roleplay-layout,.attention-layout{grid-template-columns:minmax(360px,1.35fr) minmax(300px,.65fr)}.lesson-shell{display:grid;justify-content:center;padding:1rem}.panel{background:#fffaf0;border:1px solid #ddd6c8;border-radius:10px;display:flex;flex-direction:column;gap:.8rem;min-width:0;padding:1rem}.wide-panel{min-height:620px}.lesson-panel,.flashcard-panel{max-width:760px;width:min(760px,calc(100vw - 320px))}.panel-heading,.roleplay-header,.feedback-heading{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.panel-heading{justify-content:flex-start}.panel-heading h3{font-size:1rem}.folder-button{background:#f1eadc;color:#22312d;justify-content:space-between;text-align:left;width:100%}.folder-create{display:grid;gap:.5rem;grid-template-columns:1fr auto}.folder-create button,.danger-command{background:#2f7f6f;border-radius:8px;color:#fffaf0;min-height:42px;padding:.65rem .8rem}.danger-command{background:#a33b2d}.material-actions{align-items:center;display:inline-flex;gap:.55rem;justify-content:flex-end}.material-actions svg:last-child{color:#8a321b}.folder-button.active{background:#2f7f6f;color:#fffaf0}.folder-button small{background:#00000024;border-radius:999px;min-width:1.6rem;padding:.1rem .45rem;text-align:center}.lesson-card{background:#fffdf8;border:1px solid #ddd6c8;color:#22312d;display:grid;gap:.8rem;grid-template-columns:auto 1fr auto;justify-content:stretch;text-align:left;width:100%}.lesson-card.active{border-color:#2f7f6f;box-shadow:0 0 0 3px #2f7f6f21}.lesson-card small,.zh-line,.mini-card span,.flashcard span,.card-kicker,.feedback-heading span,.attention-item span,.recognized-text strong{color:#66746f;font-size:.82rem}.zh-line{color:#587169;display:block;font-weight:500;line-height:1.45;margin:.15rem 0 0}.material-preview{background:#eef5f2;border:1px solid #c7ddd6;border-radius:10px;display:grid;gap:.75rem;margin-top:auto;padding:1rem}.inline-actions>*{flex:1}.inline-actions button,.file-button,.wide,.small-command{background:#2f7f6f;border-radius:8px;color:#fffaf0;min-height:44px;padding:.72rem .9rem}.small-command{flex:0 0 auto;min-height:38px}.small-command.secondary{background:#e8e0d1;color:#22312d}.file-button{align-items:center;cursor:pointer;display:inline-flex;gap:.45rem;justify-content:center}.file-button input{display:none}.record-button.active{background:#a33b2d}.progress-row{align-items:center;display:grid;gap:.5rem;grid-template-columns:auto 1fr}.progress-row>div{background:#e8e0d1;border-radius:999px;height:12px;overflow:hidden}.progress-row i{background:#58b06f;display:block;height:100%}.duo-card,.flashcard{align-items:center;background:#fffdf8;border:1px solid #ddd6c8;border-radius:12px;display:grid;gap:1rem;justify-items:center;min-height:300px;padding:2rem;text-align:center}.duo-card h3,.flashcard h3{font-size:clamp(1.65rem,3vw,2.5rem);line-height:1.2;max-width:14ch}.practice-translation{font-size:1rem;max-width:44ch}.round-action{aspect-ratio:1;background:#d9a441;border-radius:999px;color:#172420;width:74px}.error-text{background:#fff0e8;border:1px solid #efb295;border-radius:8px;color:#8a321b;font-size:.88rem;margin:0;padding:.65rem .75rem}.status-text{background:#eef5f2;border:1px solid #c7ddd6;border-radius:8px;color:#2f665c;font-size:.88rem;margin:0;padding:.65rem .75rem}.score-grid{display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr)}.score{background:#eef5f2;border:1px solid #c7ddd6;border-radius:8px;min-height:72px;padding:.65rem}.score strong{display:block;font-size:1.45rem}.score span{color:#4d625e;font-size:.82rem}.recognized-text,.feedback-panel{background:#fffdf8;border:1px solid #ddd6c8;border-radius:10px;padding:.75rem}.recognized-text,.feedback-panel,.attention-list{display:grid;gap:.65rem}.word-strip,.phoneme-row,.weak-words{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.word-chip,.phoneme,.weak-words b{align-items:center;background:#eef5f2;border:1px solid #c7ddd6;border-radius:999px;display:inline-flex;gap:.3rem;min-height:30px;padding:.25rem .55rem}button.word-chip{color:inherit;cursor:pointer;font-size:.92rem}button.word-chip:disabled{cursor:default;opacity:.8}.word-chip small,.phoneme small{color:#60716d;font-size:.72rem}.word-chip.attention,.phoneme.weak{background:#ffe3d6;border-color:#d8582f;border-width:2px;color:#8a321b}.word-chip.clickable{box-shadow:0 2px #d8582f;font-weight:750;min-height:36px}.word-chip.clickable:hover{background:#ffd2bd;transform:translateY(-1px)}.compare-hint{align-items:center;background:#fff2c8;border:1px solid #e3bd58;border-radius:8px;color:#6f5213;display:flex;font-size:.88rem;gap:.4rem;justify-content:center;margin:0;padding:.55rem .75rem}.mini-spinner{animation:spin .8s linear infinite;border:2px solid rgba(138,50,27,.25);border-top-color:#8a321b;border-radius:999px;height:14px;width:14px}@keyframes spin{to{transform:rotate(360deg)}}.word-chip.omission{background:#f9dfdf;border-color:#e69b9b}.word-chip.insertion{background:#fff2c8;border-color:#e3bd58}.attention-item{background:#f8f4eb;border-radius:8px;display:grid;gap:.45rem;padding:.65rem}.attention-item>div:first-child{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.attention-item p{color:#3f514d;font-size:.88rem;margin:0}.roleplay-stage{min-height:660px}.chat-log{display:flex;flex:1;flex-direction:column;gap:.65rem;max-height:520px;overflow:auto;padding-right:.2rem}.chat-line{align-self:flex-start;background:#eef5f2;border-radius:10px;max-width:86%;padding:.75rem .85rem}.chat-line.mine{align-self:flex-end;background:#e9d8b9}.chat-line strong{display:block;font-size:.75rem;margin-bottom:.25rem}.chat-input{display:grid;gap:.5rem;grid-template-columns:1fr auto}.icon-command{aspect-ratio:1;background:#d9a441;border-radius:8px;color:#172420;flex:0 0 auto;width:44px}.flashcard-panel{justify-self:center}.weak-words b{background:#fff2c8;border-color:#e3bd58;font-size:.86rem}.mini-card{background:#fffdf8;border:1px solid #ddd6c8;border-radius:8px;display:grid;gap:.25rem;padding:.75rem}.mini-card.mastered{border-color:#58b06f}.empty-state{align-items:center;min-height:420px;text-align:center}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.side-nav{position:static}.side-nav nav{grid-template-columns:repeat(5,minmax(0,1fr))}.nav-button{justify-content:center}.streak-card{display:none}.materials-grid,.edit-grid,.roleplay-layout,.attention-layout{grid-template-columns:1fr}.lesson-panel,.flashcard-panel{width:100%}}@media(max-width:680px){.topbar,.topbar-actions,.role-toggle,.tier-tabs,.inline-actions,.side-nav nav{align-items:stretch;flex-direction:column;grid-template-columns:1fr}.topbar{align-items:stretch}.score-grid{grid-template-columns:repeat(2,1fr)}.duo-card,.flashcard{padding:1.2rem}}
