:root{--accent: #0e9f8a;--accent-dark: #0b7f6e;--bg: #f7faf9;--card: #ffffff;--text: #1a2b28;--muted: #5d726e;--user-bubble: #dcf2ee}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}.app{display:flex;flex-direction:column;height:100%;max-width:640px;margin:0 auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}header{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--card);border-bottom:1px solid #e3ebe9}.teacher-badge{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}header h1{font-size:18px}header p{font-size:13px;color:var(--muted)}.scenario-picker{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:24px}.scenario-picker h2{text-align:center;font-size:20px;margin-bottom:10px}.scenario{padding:18px;font-size:17px;border:none;border-radius:14px;background:var(--card);color:var(--text);box-shadow:0 1px 4px #00000014;cursor:pointer}.scenario:active{background:var(--user-bubble)}.conversation{flex:1;display:flex;flex-direction:column;min-height:0}.transcript{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:82%;padding:12px 14px;border-radius:16px;font-size:16px;line-height:1.45}.bubble.tutor{align-self:flex-start;background:var(--card);border-bottom-left-radius:4px;box-shadow:0 1px 3px #0000000f}.bubble.user{align-self:flex-end;background:var(--user-bubble);border-bottom-right-radius:4px}footer{padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid #e3ebe9;display:flex;flex-direction:column;align-items:center;gap:10px}.status{font-size:14px;color:var(--muted)}.ptt{width:84px;height:84px;border-radius:50%;border:none;font-size:34px;color:#fff;background:var(--accent);cursor:pointer;box-shadow:0 4px 14px #0e9f8a66;transition:transform .1s}.ptt:active{transform:scale(.94)}.ptt.recording{background:#d64545;box-shadow:0 4px 14px #d6454573;animation:pulse 1.4s infinite}.ptt:disabled{background:#9db8b3;box-shadow:none}@keyframes pulse{0%{box-shadow:0 0 #d6454580}70%{box-shadow:0 0 0 18px #d6454500}to{box-shadow:0 0 #d6454500}}.teacher-info{flex:1}.finish{border:1.5px solid var(--accent);background:transparent;color:var(--accent);padding:8px 16px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}.finish:disabled{opacity:.4}.turn{display:flex;flex-direction:column;gap:6px}.turn.user{align-items:flex-end}.turn.tutor{align-items:flex-start}.correction-card{max-width:82%;background:#fff8e6;border:1px solid #f0dfae;border-radius:12px;padding:10px 12px;font-size:14px}.correction-line{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.correction-line .original{text-decoration:line-through;color:#a05a2c}.correction-line .arrow{color:var(--muted)}.correction-line .corrected{font-weight:700;color:#1d7a34}.correction-card .explanation{margin-top:6px;color:var(--text)}.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.chip.grammar{margin-top:8px;background:#f3e8ff;color:#7c3aed}.chip.word{background:var(--user-bubble);color:var(--accent-dark)}.word-chips{display:flex;flex-wrap:wrap;gap:6px;max-width:82%}.summary-card{background:var(--card);border-radius:16px;padding:18px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;gap:12px}.summary-card h3{font-size:18px}.summary-card .praise{font-size:16px}.summary-card .stat{color:var(--muted);font-size:14px}.summary-section h4{font-size:14px;color:var(--muted);margin-bottom:8px}.summary-section{display:flex;flex-direction:column;gap:8px}.summary-section .correction-card{max-width:100%}.focus-tip{background:#eef6ff;border-radius:10px;padding:10px 12px;font-size:14px}.scenario.secondary{background:transparent;border:1.5px dashed #b8ccc8;box-shadow:none;color:var(--muted)}.profile-view{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:18px}.profile-view h2{font-size:20px}.profile-view section{display:flex;flex-direction:column;gap:8px}.profile-view h3{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.weakness-card{background:var(--card);border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;gap:8px;font-size:14px}.weakness-head{display:flex;justify-content:space-between;align-items:center}.weakness-head .count{font-weight:700;color:var(--accent-dark)}.word-chips.full{max-width:100%}.history-row{display:flex;gap:10px;align-items:baseline;background:var(--card);border-radius:10px;padding:10px 12px;font-size:14px}.history-date{color:var(--muted);min-width:44px}.history-scenario{flex:1;font-weight:600}.history-stats{color:var(--muted);font-size:13px}.translate-toggle{display:block;margin-top:8px;border:none;background:transparent;color:var(--accent-dark);font-size:12px;font-weight:700;letter-spacing:.4px;cursor:pointer;padding:0}.translation{margin-top:6px;padding-top:6px;border-top:1px dashed #d5e2df;color:var(--muted);font-size:14px;font-style:italic}.error{position:fixed;bottom:130px;left:50%;transform:translate(-50%);background:#b3261e;color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;max-width:90%}.hint{text-align:center;color:var(--muted)}
