*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f9f9f9;color:#1a1a1a}.app{max-width:600px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.app-header{display:flex;align-items:center;justify-content:space-between}h1{font-size:2rem;font-weight:700}.login-screen{justify-content:center;min-height:100vh;align-items:center;text-align:center}.logout-btn{background:none;border:1px solid #ccc;border-radius:.4rem;padding:.3rem .7rem;font-size:.8rem;color:#888;cursor:pointer}.logout-btn:hover{border-color:#888;color:#444}.scenario{color:#666;font-size:.95rem;margin-top:-.75rem}.chips{display:flex;flex-wrap:wrap;gap:.75rem}.conversation{display:flex;flex-direction:column;gap:.6rem;max-height:360px;overflow-y:auto;padding:.5rem 0}.bubble{padding:.6rem .9rem;border-radius:1rem;max-width:80%;line-height:1.4;font-size:.95rem}.bubble--assistant{background:#e8e8e8;align-self:flex-start}.bubble--feedback{background:#fff8e1;font-style:italic;font-size:.9rem}.bubble--user{background:#d1e8ff;align-self:flex-end}.loading{color:#999;font-style:italic;font-size:1.2rem;align-self:flex-start;padding-left:.5rem}.hint{font-style:italic;color:#777;font-size:.85rem}.error{color:#c0392b;font-size:.85rem}.error-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fdecea;border:1.5px solid #e57373;border-radius:.6rem;padding:.75rem 1rem}.error-panel__msg{color:#c0392b;font-size:.9rem;flex:1}.error-panel__retry{padding:.4rem 1rem;background:#c0392b;color:#fff;border:none;border-radius:.4rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.error-panel__retry:disabled{opacity:.5;cursor:default}.start-screen{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1.5rem 0}.intro{background:#f0f0f0;border-radius:.75rem;padding:1rem 1.25rem;font-size:.9rem;line-height:1.6;color:#444;max-width:480px;text-align:center}.start-btn{padding:.85rem 2.5rem;background:#1a1a1a;color:#fff;border:none;border-radius:.75rem;font-size:1.1rem;font-weight:600;cursor:pointer}.mic-indicator{display:flex;align-items:center;gap:.6rem}.signal-meter{display:flex;align-items:flex-end;gap:2px;height:16px}.signal-bar{width:5px;border-radius:1px;background:#ddd}.signal-bar--1{height:4px}.signal-bar--2{height:7px}.signal-bar--3{height:11px}.signal-bar--4{height:16px}.signal-bar--active{background:#4caf50}.mic-indicator--processing .signal-bar--active{background:#ff9800}.mic-indicator--speaking .signal-bar--active{background:#2196f3}.mic-dot{width:14px;height:14px;border-radius:50%;background:#ccc}.mic-label{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:.05em}.mic-indicator--listening .mic-dot{background:#4caf50;animation:pulse 1.2s ease-in-out infinite}.mic-indicator--processing .mic-dot{background:#ff9800;animation:pulse .7s ease-in-out infinite}.mic-indicator--speaking .mic-dot{background:#2196f3;animation:pulse .9s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.25)}}.input-row{display:flex;gap:.5rem}.input-row--secondary input,.input-row--secondary button{font-size:.85rem;opacity:.7}.input-row input{flex:1;padding:.6rem .9rem;border:1px solid #ccc;border-radius:.5rem;font-size:.95rem;outline:none}.input-row input:focus{border-color:#888}.input-row button{padding:.6rem 1.2rem;background:#1a1a1a;color:#fff;border:none;border-radius:.5rem;font-size:.95rem;cursor:pointer}.input-row button:disabled{opacity:.4;cursor:default}.banner{background:#c8e6c9;padding:1rem;border-radius:.75rem;font-weight:600;text-align:center;font-size:1.1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.continue-btn{padding:.6rem 1.4rem;background:#1a1a1a;color:#fff;border:none;border-radius:.5rem;font-size:.95rem;font-weight:600;cursor:pointer}.chip{background:#e5e5e5;border-radius:999px;padding:.5rem 1rem;display:inline-flex;flex-direction:column;align-items:center;gap:.1rem;transition:background .3s ease}.chip--mastered{background:#c8e6c9}.chip .pl{font-weight:600;font-size:.95rem}.chip .en{font-size:.75rem;color:#666}.confidence-bars{display:flex;gap:2px;margin-top:.25rem}.bar{width:6px;height:8px;border-radius:1px;background:#b0cdb2}.bar--filled{background:#388e3c}
