
:root{
  --bg:#f6f6f2;
  --card:#ffffff;
  --text:#151515;
  --muted:#6e6e6e;
  --accent:#f2c94c;
  --dark:#151515;
  --border:#e7e7e2;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}
button,input{font:inherit}
.app-shell{max-width:520px;margin:auto;min-height:100vh;padding:18px 18px 90px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.eyebrow{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.topbar h1{margin:2px 0 0;font-size:26px}
.streak{background:#fff;border:1px solid var(--border);padding:10px 14px;border-radius:18px;font-weight:700}
.screen{display:none}
.screen.active{display:block}
.hero-card,.lesson-card,.progress-card,.speak-card{background:var(--card);border:1px solid var(--border);border-radius:28px;padding:24px;box-shadow:0 8px 26px rgba(0,0,0,.05)}
.hero-card{text-align:center;padding-top:44px;padding-bottom:44px}
.avatar{font-size:48px}
.hero-card h2{font-size:28px;line-height:1.1}
.hero-card p,.muted{color:var(--muted)}
.primary{width:100%;border:0;background:var(--dark);color:white;padding:16px 20px;border-radius:16px;font-weight:800;margin-top:16px}
.grid,.teacher-grid{display:grid;gap:12px;margin-top:18px}
.choice,.teacher-card{background:white;border:1px solid var(--border);border-radius:20px;padding:18px;text-align:left;font-weight:700}
.teacher-card{text-align:center}
.teacher-card span{display:block;color:var(--muted);font-size:13px;margin-top:4px}
.progress-card{display:flex;align-items:center;justify-content:space-between}
.progress-ring{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;border:8px solid var(--accent);font-weight:800}
.speak-card{width:100%;display:flex;align-items:center;gap:14px;text-align:left;margin:16px 0;border:0}
.speak-card .avatar{font-size:42px}.speak-card h3,.speak-card p{margin:2px 0}.speak-card p{color:var(--muted)}
.mic{margin-left:auto;font-size:26px}
.lesson-list{display:grid;gap:10px}
.lesson-list button{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:18px;padding:15px;text-align:left}
.lesson-list button>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);font-weight:800}
.lesson-list small{display:block;color:var(--muted)}
.conversation-head{display:flex;gap:12px;align-items:center;background:white;border:1px solid var(--border);border-radius:20px;padding:12px}
.conversation-head .avatar{font-size:34px}.conversation-head small{display:block;color:var(--muted)}
.back{border:0;background:#fff;border-radius:12px;padding:10px}
.chat{min-height:430px;padding:18px 0;display:flex;flex-direction:column;gap:12px}
.bubble{max-width:86%;padding:15px;border-radius:18px;display:flex;flex-direction:column;gap:6px}
.bubble.ai{background:white;border:1px solid var(--border);align-self:flex-start}
.bubble.user{background:var(--dark);color:#fff;align-self:flex-end}
.bubble span,.bubble em{font-size:13px}.bubble em{color:#777}.bubble.user em{color:#bbb}
.controls{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;margin-bottom:10px}
.controls label{background:white;border:1px solid var(--border);padding:8px 10px;border-radius:12px}
.input-row{display:flex;gap:8px;position:sticky;bottom:76px}
.input-row input{flex:1;border:1px solid var(--border);border-radius:16px;padding:14px;background:#fff}
.mic-btn,.send-btn{border:0;border-radius:16px;width:48px;background:var(--accent)}
.send-btn{background:var(--dark);color:#fff}
.phrase-box{display:flex;flex-direction:column;gap:8px;background:#faf9f3;border:1px solid var(--border);padding:18px;border-radius:18px;margin-top:20px}
.phrase-box span,.phrase-box em{color:var(--muted)}
.tag{display:inline-block;background:var(--accent);padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;max-width:484px;width:calc(100% - 36px);background:#111;border-radius:22px;padding:10px;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 12px 30px rgba(0,0,0,.18)}
.bottom-nav button{background:transparent;border:0;color:#fff;display:flex;flex-direction:column;gap:3px;align-items:center;font-size:18px}
.bottom-nav span{font-size:10px}.hidden{display:none}
.mini-stats{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);padding:10px 4px 0}
.thinking{font-size:13px;color:var(--muted);padding:0 6px 12px}
.hidden-card{display:none!important}
.correction-box{background:#fff8db;border:1px solid #efd77b;border-radius:18px;padding:15px;margin:0 0 12px;display:grid;gap:10px}
.correction-box div{display:flex;flex-direction:column;gap:3px}.correction-box small{color:var(--muted)}.correction-box p{margin:0;font-size:13px}.correction-title{font-weight:800!important}
.controls select{border:0;background:transparent;font-weight:700}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.section-head h2{margin:3px 0 18px}
.review-list{display:grid;gap:10px}.review-item,.empty-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:15px}.review-item span{display:block;text-transform:uppercase;font-size:10px;color:var(--muted);font-weight:800;margin-bottom:4px}
