*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}#root{height:100%}.auth-container{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:40px 36px;box-shadow:0 4px 24px #00000014}.auth-title{color:#1a1a2e;margin:0 0 4px;font-size:1.8rem;font-weight:700}.auth-subtitle{color:#666;margin:0 0 28px;font-size:.95rem}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form input{border:1.5px solid #e0e0e0;border-radius:10px;outline:none;padding:12px 14px;font-size:1rem;transition:border-color .2s}.auth-form input:focus{border-color:#6c63ff}.auth-form button{color:#fff;cursor:pointer;background:#6c63ff;border:none;border-radius:10px;margin-top:4px;padding:13px;font-size:1rem;font-weight:600;transition:background .2s}.auth-form button:hover:not(:disabled){background:#574fd6}.auth-form button:disabled{opacity:.6;cursor:default}.auth-error{color:#e53935;margin:0;font-size:.875rem}.auth-switch{text-align:center;color:#666;margin:20px 0 0;font-size:.9rem}.auth-switch a{color:#6c63ff;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-sent-icon{margin-bottom:16px;font-size:2.5rem}.auth-hint{color:#999;margin:-12px 0 0;font-size:.82rem}.verified-container{background:linear-gradient(135deg,#f0eeff 0%,#f5f5f5 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.verified-card{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:420px;padding:52px 44px;animation:.35s both fadeUp;box-shadow:0 8px 40px #6c63ff1f}.verified-card--error{box-shadow:0 8px 40px #e539351a}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.verified-icon{color:#6c63ff;background:#e8e6ff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 24px;font-size:2rem;font-weight:700;display:flex}.verified-icon--success{color:#2e7d32;background:#e6f4ea}.verified-card--error .verified-icon{color:#e53935;background:#fdecea}.verified-title{color:#1a1a2e;margin:0 0 12px;font-size:1.7rem;font-weight:700}.verified-text{color:#666;margin:0 0 32px;font-size:.97rem;line-height:1.6}.verified-button{color:#fff;cursor:pointer;background:#6c63ff;border:none;border-radius:10px;padding:13px 36px;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-block}.verified-button:hover{background:#574fd6}.verified-button--outline{color:#6c63ff;background:0 0;border:2px solid #6c63ff}.verified-button--outline:hover{background:#f0eeff}*{box-sizing:border-box}body{background:#f0f0f5;margin:0;font-family:system-ui,sans-serif}.lesson-root{background:#fff;flex-direction:column;max-width:720px;height:100vh;margin:0 auto;display:flex;box-shadow:0 0 32px #0000000f}.lesson-header{z-index:10;background:#fff;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.lesson-header-left{align-items:center;gap:10px;display:flex}.btn-leave{cursor:pointer;color:#888;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;transition:background .15s;display:flex}.btn-leave:hover{color:#333;background:#f0f0f5}.lesson-badge{color:#6c63ff;background:#e8e5ff;border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:600}.lesson-title{color:#1a1a2e;font-size:1rem;font-weight:600}.level-select{cursor:pointer;background:#fff;border:1.5px solid #e0e0e0;border-radius:8px;padding:6px 10px;font-size:.85rem}.btn-stop-tts{cursor:pointer;background:#e8f5e9;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;animation:1.5s infinite pulse;display:flex}.btn-stop-tts:hover{background:#c8e6c9}.chat-area{flex-direction:column;flex:1;gap:10px;padding:16px 20px;display:flex;overflow-y:auto}.bubble{white-space:pre-wrap;border-radius:16px;max-width:75%;padding:10px 14px;font-size:.95rem;line-height:1.5}.bubble.user{color:#fff;background:#6c63ff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.assistant{color:#1a1a2e;background:#f0f0f5;border-bottom-left-radius:4px;align-self:flex-start}.bubble.streaming{opacity:.85}.input-row{background:#fff;border-top:1px solid #eee;gap:8px;padding:12px 16px;display:flex;position:sticky;bottom:0}.chat-input{border:1.5px solid #e0e0e0;border-radius:24px;outline:none;flex:1;padding:11px 14px;font-size:.95rem;transition:border-color .2s}.chat-input:focus{border-color:#6c63ff}.btn-send,.btn-mic{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;transition:background .2s;display:flex}.btn-send{color:#fff;background:#6c63ff}.btn-send:hover:not(:disabled){background:#574fd6}.btn-send:disabled{opacity:.5;cursor:default}.btn-mic{color:#333;background:#f0f0f5}.btn-mic:hover:not(:disabled){background:#e0e0e8}.btn-mic.active{color:#e53935;background:#ffebee;animation:1.2s infinite pulse}.btn-mic.busy{color:#f57c00;background:#fff8e1}.btn-mic:disabled{opacity:.5;cursor:default}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.lesson-finished-overlay{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffeb;justify-content:center;align-items:center;animation:.4s fadeIn;display:flex;position:absolute;inset:0}.lesson-root{position:relative}.lesson-finished-card{text-align:center;max-width:320px;padding:40px 32px}.lesson-finished-icon{color:#2e7d32;background:#e8f5e9;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:1.6rem;font-weight:700;display:flex}.lesson-finished-title{color:#1a1a2e;margin:0 0 10px;font-size:1.4rem;font-weight:700}.lesson-finished-sub{color:#666;margin:0 0 24px;font-size:.95rem;line-height:1.55}.lesson-finished-btn{color:#fff;cursor:pointer;background:#6c63ff;border:none;border-radius:10px;padding:11px 24px;font-size:.95rem;font-weight:600;transition:background .2s}.lesson-finished-btn:hover{background:#574fd6}@keyframes fadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
