.conversation-page{background:linear-gradient(135deg,#0a0a0a 0%,#1a1a2e 100%);min-height:100vh}.voice-chat-container{flex-direction:column;max-width:800px;height:100vh;margin:0 auto;display:flex}.persona-selection{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.persona-selection h2{color:#fff;text-align:center;margin:0 0 .5rem;font-size:2rem;font-weight:700}.persona-selection-subtitle{color:#888;text-align:center;margin:0 0 2rem;font-size:1rem}.persona-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;width:100%;max-width:700px;display:grid}.persona-card{text-align:center;cursor:pointer;background:linear-gradient(145deg,#1a1a2e 0%,#16213e 100%);border:1px solid #333;border-radius:1rem;padding:2rem 1.5rem;transition:all .3s}.persona-card:hover{border-color:#facc15;transform:translateY(-5px);box-shadow:0 10px 40px #facc151a}.persona-icon{margin-bottom:1rem;font-size:3rem;display:block}.persona-card h3{color:#fff;margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.persona-card p{color:#888;margin:0;font-size:.875rem;line-height:1.5}.voice-chat-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1a2ef2;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.back-button{color:#888;cursor:pointer;background:0 0;border:1px solid #333;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.back-button:hover{color:#fff;border-color:#555}.header-persona{color:#fff;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;display:flex}.persona-icon-small{font-size:1.5rem}.header-controls{gap:.5rem;display:flex}.voice-select{color:#fff;background:#1a1a2e;border:1px solid #333;border-radius:.375rem;max-width:150px;padding:.5rem;font-size:.75rem}.voice-messages{flex-direction:column;flex:1;gap:1rem;padding:1.5rem;display:flex;overflow-y:auto}.voice-message{flex-direction:column;max-width:80%;animation:.3s messageIn;display:flex}@keyframes messageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.voice-message-user{align-self:flex-end}.voice-message-assistant{align-self:flex-start}.voice-message-content{border-radius:1.25rem;padding:1rem 1.25rem;font-size:1rem;line-height:1.6}.voice-message-user .voice-message-content{color:#fff;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border-bottom-right-radius:.25rem}.voice-message-assistant .voice-message-content{color:#e5e5e5;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:1px solid #333;border-bottom-left-radius:.25rem}.voice-message-interim .voice-message-content{opacity:.7;font-style:italic}.voice-message-time{color:#666;margin-top:.25rem;padding:0 .5rem;font-size:.7rem}.voice-message-user .voice-message-time{text-align:right}.voice-typing{gap:4px;padding:1rem 1.5rem;display:flex}.voice-typing span{background:#facc15;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typingBounce}.voice-typing span:first-child{animation-delay:-.32s}.voice-typing span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.voice-status{text-align:center;background:#1a1a2ecc;border-top:1px solid #333;padding:.75rem 1.5rem}.status-listening,.status-speaking,.status-paused{color:#888;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.status-listening{color:#4ade80}.status-speaking{color:#facc15}.listening-icon,.speaking-icon{font-size:1.25rem}.pulse{animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.stop-speaking-btn,.stop-listening-btn{cursor:pointer;background:0 0;border-radius:1rem;margin-left:.5rem;padding:.25rem .75rem;font-size:.75rem}.stop-speaking-btn{color:#facc15;border:1px solid #facc15}.stop-speaking-btn:hover{color:#000;background:#facc15}.stop-listening-btn{color:#4ade80;border:1px solid #4ade80}.stop-listening-btn:hover{color:#000;background:#4ade80}.voice-controls-bottom{background:#1a1a2ef2;border-top:1px solid #333;flex-direction:column;gap:.75rem;padding:1rem 1.5rem;display:flex}.voice-settings{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}.auto-speak-toggle{color:#888;cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.auto-speak-toggle input{accent-color:#facc15}.speed-control{color:#888;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.speed-control input[type=range]{accent-color:#facc15;width:100px}.replay-last-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #444;border-radius:.375rem;padding:.375rem .75rem;font-size:.75rem;transition:all .2s}.replay-last-btn:hover{color:#facc15;border-color:#facc15}.conversation-mode-section{justify-content:center;margin-bottom:.75rem;display:flex}.start-conversation-btn{color:#000;cursor:pointer;background:linear-gradient(145deg,#4ade80 0%,#22c55e 100%);border:none;border-radius:2rem;padding:1rem 2rem;font-size:1.125rem;font-weight:600;transition:all .2s;animation:2s infinite pulseGreen}.start-conversation-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 20px #4ade8066}.start-conversation-btn:disabled{opacity:.5;cursor:not-allowed;animation:none}@keyframes pulseGreen{0%,to{box-shadow:0 0 #4ade8066}50%{box-shadow:0 0 0 10px #4ade8000}}.conversation-active{background:#4ade801a;border:1px solid #4ade80;border-radius:2rem;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.conversation-indicator{color:#4ade80;font-size:.9375rem;font-weight:500}.end-conversation-btn{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef4444;border-radius:1rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.end-conversation-btn:hover{color:#fff;background:#ef4444}.mic-button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#333 0%,#222 100%);border:2px solid #444;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;transition:all .2s;display:flex}.mic-button:hover:not(:disabled){background:linear-gradient(145deg,#16a34a 0%,#15803d 100%);border-color:#4ade80;transform:scale(1.05)}.mic-button:disabled{opacity:.5;cursor:not-allowed}.mic-button-active{background:linear-gradient(145deg,#dc2626 0%,#b91c1c 100%);border-color:#dc2626;animation:1.5s infinite micPulse}.mic-conversation-mode{border-color:#4ade80}.mic-conversation-mode:not(.mic-button-active){background:linear-gradient(145deg,#166534 0%,#15803d 100%)}.mic-listening{justify-content:center;align-items:center;display:flex;position:relative}.mic-pulse{background:#dc262666;border-radius:50%;width:100%;height:100%;animation:1.5s infinite micPulseRing;position:absolute}@keyframes micPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes micPulseRing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.text-input-container{align-items:flex-end;gap:.75rem;display:flex}.text-input{color:#fff;resize:none;background:#1a1a2e;border:1px solid #333;border-radius:1.5rem;flex:1;max-height:120px;padding:.875rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.text-input:focus{border-color:#facc15;outline:none}.text-input::placeholder{color:#666}.text-input:disabled{opacity:.5}.send-button{color:#000;cursor:pointer;background:linear-gradient(145deg,#facc15 0%,#f59e0b 100%);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex}.send-button:hover:not(:disabled){transform:scale(1.05)}.send-button:disabled{opacity:.5;cursor:not-allowed}.replay-btn{cursor:pointer;opacity:.6;background:0 0;border:none;margin-left:.5rem;font-size:1rem;transition:opacity .2s}.replay-btn:hover{opacity:1}.voice-banner{color:#000;text-align:center;background:linear-gradient(90deg,#facc15 0%,#f59e0b 100%);padding:.75rem 1rem;font-size:.9375rem;font-weight:500}.voice-banner strong{font-weight:700}.voice-settings-btn-large{color:#000;cursor:pointer;background:linear-gradient(145deg,#facc15 0%,#f59e0b 100%);border:2px solid #facc15;border-radius:.75rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s;animation:2s infinite pulseBtn}.voice-settings-btn-large:hover{transform:scale(1.05);box-shadow:0 4px 20px #facc1566}@keyframes pulseBtn{0%,to{box-shadow:0 0 #facc1566}50%{box-shadow:0 0 0 8px #facc1500}}.voice-settings-btn{color:#fff;cursor:pointer;background:linear-gradient(145deg,#333 0%,#222 100%);border:1px solid #444;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.voice-settings-btn:hover{border-color:#facc15}.voice-modal-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.voice-modal{background:linear-gradient(145deg,#1a1a2e 0%,#16213e 100%);border:1px solid #333;border-radius:1rem;flex-direction:column;width:100%;max-width:500px;max-height:80vh;display:flex;overflow:hidden}.voice-modal-header{border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.voice-modal-header h3{color:#fff;margin:0;font-size:1.25rem}.modal-close{color:#888;cursor:pointer;background:0 0;border:1px solid #444;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.25rem;transition:all .2s;display:flex}.modal-close:hover{color:#fff;background:#333}.voice-modal-content{padding:1rem 1.5rem;overflow-y:auto}.voice-modal-subtitle{color:#888;text-align:center;margin:0 0 1rem;font-size:.875rem}.voice-list{flex-direction:column;gap:.75rem;display:flex}.voice-option{background:#ffffff08;border:1px solid #333;border-radius:.75rem;justify-content:space-between;align-items:center;padding:1rem;transition:all .2s;display:flex}.voice-option:hover{background:#ffffff0d;border-color:#444}.voice-option-selected{background:#facc151a;border-color:#facc15}.voice-info{flex-direction:column;gap:.25rem;display:flex}.voice-name{color:#fff;font-size:.9375rem;font-weight:500}.voice-lang{color:#666;font-size:.75rem}.voice-actions{gap:.5rem;display:flex}.preview-btn{color:#facc15;cursor:pointer;background:0 0;border:1px solid #facc15;border-radius:.375rem;padding:.5rem .75rem;font-size:.75rem;transition:all .2s}.preview-btn:hover{color:#000;background:#facc15}.select-btn{color:#888;cursor:pointer;background:#333;border:1px solid #444;border-radius:.375rem;padding:.5rem .75rem;font-size:.75rem;transition:all .2s}.select-btn:hover{color:#fff;background:#444}.select-btn.selected{color:#fff;background:#16a34a;border-color:#16a34a}.voice-error{color:#fff;z-index:100;background:#dc2626;border-radius:.5rem;align-items:center;gap:1rem;padding:1rem 2rem;font-size:.875rem;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.voice-error button{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.25rem;line-height:1}@media (max-width:640px){.persona-grid{grid-template-columns:1fr}.persona-card{padding:1.5rem}.voice-chat-header{flex-wrap:wrap;gap:.5rem}.voice-message{max-width:90%}.mic-button{width:70px;height:70px}}.validation-panel{background:linear-gradient(145deg,#1a1a2e 0%,#16213e 100%);border:1px solid #facc154d;border-radius:1rem;max-height:300px;margin:.5rem 1rem;padding:1rem;overflow-y:auto}.validation-loading{color:#facc15;justify-content:center;align-items:center;gap:.75rem;padding:1rem;display:flex}.validation-spinner{border:2px solid #facc1533;border-top-color:#facc15;border-radius:50%;width:20px;height:20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.validation-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.validation-score{align-items:center;gap:.75rem;display:flex}.score-badge{color:#000;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.25rem;font-weight:700;display:flex}.score-badge.score-excellent{background:#4ade80}.score-badge.score-good{background:#facc15}.score-badge.score-needs_work{background:#f97316}.score-badge.score-practice_more{background:#ef4444}.score-label{color:#fff;font-size:1.1rem;font-weight:600}.close-validation{color:#888;cursor:pointer;background:0 0;border:none;padding:0 .5rem;font-size:1.5rem}.close-validation:hover{color:#fff}.validation-details{flex-direction:column;gap:.75rem;display:flex}.validation-section{background:#0003;border-radius:.5rem;padding:.75rem}.section-header{color:#fff;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-weight:600;display:flex}.section-score{color:#facc15;font-size:.9rem}.no-issues{color:#4ade80;margin:0;font-size:.9rem}.issues-list,.suggestions-list{flex-direction:column;gap:.5rem;display:flex}.issue-item,.suggestion-item{background:#ef44441a;border-left:3px solid #ef4444;border-radius:0 .25rem .25rem 0;padding:.5rem .75rem}.issue-original,.sug-used{color:#f87171;text-decoration:line-through}.issue-arrow,.sug-arrow{color:#fff;margin:0 .5rem}.issue-correction,.sug-better{color:#4ade80;font-weight:600}.issue-explanation,.sug-reason{color:#fff;margin:.25rem 0 0;font-size:.85rem}.pronunciation-feedback,.comprehension-feedback{color:#fff;margin:0;font-size:.9rem}.validation-encouragement{color:#4ade80;text-align:center;background:#4ade801a;border:1px solid #4ade804d;border-radius:.5rem;padding:.75rem;font-weight:500}.validation-toggle{background:#4ade801a;border:1px solid #4ade804d}.validation-toggle input:checked+span{color:#4ade80}@media (max-width:600px){.validation-panel{max-height:250px;margin:.5rem}.score-badge{width:40px;height:40px;font-size:1rem}}
