:root{--ink:#182b2f;--muted:#667579;--paper:#f3f6f5;--surface:#fff;--line:#dce5e3;--teal:#176b70;--teal-dark:#124d52;--teal-soft:#e4f2f1;--gold:#b9812c;--gold-soft:#fff4dd;--red:#b94b42;--shadow:0 8px 24px rgba(20,48,51,.08)}
*{box-sizing:border-box}
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body{display:flex;justify-content:center;margin:0;background:#e9efed;color:var(--ink);font-family:"PingFang SC","Noto Sans Arabic",system-ui,sans-serif;letter-spacing:0;touch-action:manipulation}
button,input{font:inherit;letter-spacing:0}button{cursor:pointer}.kazakh-text{font-family:"Noto Naskh Arabic","Noto Sans Arabic",serif;line-height:1.7}
.app-shell{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto auto;width:100%;max-width:680px;height:var(--app-height,100dvh);min-width:0;min-height:0;margin:0;padding:calc(14px + env(safe-area-inset-top)) 18px 0;overflow:hidden;background:var(--paper);box-shadow:0 0 36px rgba(23,59,66,.08)}
.app-header{display:flex;align-items:center;min-width:0;min-height:55px;gap:10px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:7px;background:var(--teal-dark);color:#fff;font-size:20px;font-weight:800}.brand-copy{min-width:0}.brand-copy strong,.brand-copy span{display:block}.brand-copy strong{font-size:16px}.brand-copy span{margin-top:1px;color:var(--muted);font:600 14px/1.3 "Noto Naskh Arabic",serif}.header-tools{display:flex;min-width:0;align-items:flex-end;flex-direction:column;gap:5px;margin-left:auto}.autoplay-control{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.autoplay-control input{position:absolute;opacity:0;pointer-events:none}.autoplay-control i{position:relative;width:29px;height:17px;border-radius:9px;background:#aeb9b8;transition:.2s}.autoplay-control i::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:.2s}.autoplay-control input:checked+i{background:var(--teal)}.autoplay-control input:checked+i::after{transform:translateX(12px)}
.status{position:relative;display:flex;align-items:center;width:142px;height:30px;padding:0 10px;gap:8px;overflow:hidden;border:1px solid #c9d9d6;border-radius:6px;background:#fff;color:#425b5f;box-shadow:0 2px 8px rgba(20,62,66,.06);font-size:11px;font-weight:600;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}.status i{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#3c9b78;box-shadow:0 0 0 3px rgba(60,155,120,.13)}.status span{min-width:0;overflow:hidden;text-overflow:ellipsis}.status[data-kind=working],.status[data-kind=processing],.status[data-kind=recognizing],.status[data-kind=translating],.status[data-kind=synthesizing],.status[data-kind=speaking]{border-color:#72aaa8;background:#e9f5f4;color:var(--teal-dark);box-shadow:0 3px 12px rgba(23,107,112,.16)}.status[data-kind=working] i,.status[data-kind=processing] i,.status[data-kind=recognizing] i,.status[data-kind=translating] i,.status[data-kind=synthesizing] i,.status[data-kind=speaking] i{width:13px;height:13px;flex-basis:13px;border:2px solid rgba(23,107,112,.25);border-top-color:var(--teal);background:transparent;box-shadow:none;animation:status-spin .75s linear infinite}.status[data-kind=working]::after,.status[data-kind=processing]::after,.status[data-kind=recognizing]::after,.status[data-kind=translating]::after,.status[data-kind=synthesizing]::after,.status[data-kind=speaking]::after{content:"";position:absolute;left:-45%;bottom:0;width:45%;height:3px;background:var(--teal);animation:status-progress 1.25s ease-in-out infinite}.status[data-kind=recording]{border-color:#dcaaa5;background:#fff0ee;color:#8f332d;box-shadow:0 3px 12px rgba(185,75,66,.14)}.status[data-kind=recording] i{width:9px;height:9px;flex-basis:9px;background:var(--red);box-shadow:0 0 0 4px rgba(185,75,66,.15);animation:record-pulse 1s ease-in-out infinite}.status[data-kind=error]{border-color:#dcaaa5;background:#fff0ee;color:#8f332d}.status[data-kind=error] i{background:var(--red);box-shadow:none}.status[data-kind=attention]{border-color:#e4c68d;background:var(--gold-soft);color:#80581a}.status[data-kind=attention] i{background:var(--gold);box-shadow:0 0 0 3px rgba(185,129,44,.13)}@keyframes status-spin{to{transform:rotate(360deg)}}@keyframes status-progress{0%{left:-45%}55%,100%{left:100%}}@keyframes record-pulse{50%{box-shadow:0 0 0 7px rgba(185,75,66,.06)}}
.workspace-heading{display:flex;min-width:0;align-items:flex-end;justify-content:space-between;padding:9px 2px 7px;border-bottom:1px solid var(--line)}.workspace-heading h1{margin:0;font-size:20px;line-height:1.18}.workspace-heading p{margin:1px 0 0;color:var(--teal);font:600 15px/1.3 "Noto Naskh Arabic",serif}.privacy{padding-bottom:2px;color:var(--muted);font-size:10px}
.workspace-tools{display:flex;align-items:center;gap:9px}.remote-room-entry{display:flex;align-items:center;height:34px;padding:0 10px;gap:5px;border:1px solid #b8cfcc;border-radius:6px;background:#fff;color:var(--teal-dark);text-decoration:none;box-shadow:0 2px 7px rgba(20,48,51,.05)}.remote-room-entry span{font-size:15px}.remote-room-entry b{font-size:11px;white-space:nowrap}.remote-room-entry:focus-visible{outline:3px solid rgba(23,107,112,.2);outline-offset:2px}.tutor-entry{border-color:#d9bf8d;background:#fffaf0;color:#80581a}.tutor-entry:focus-visible{outline-color:rgba(185,129,44,.24)}.speech-coach-entry{border-color:#9db8d8;background:#f3f8ff;color:#28537c}.speech-coach-entry:focus-visible{outline-color:rgba(54,111,166,.24)}
.language-panel{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);min-width:0;align-items:center;gap:8px;padding:10px 0}.language{position:relative;min-width:0;height:70px;padding:7px 42px 7px 13px;border:1px solid #bfcfcd;border-radius:7px;background:var(--surface);color:var(--ink);text-align:left;overflow:hidden;box-shadow:0 2px 7px rgba(20,48,51,.05);transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}.language-a{border-top:3px solid var(--teal)}.language-b{border-top:3px solid var(--gold)}.language .party{display:block;color:var(--muted);font-size:10px;line-height:12px}.language b{display:block;overflow:hidden;margin-top:1px;font-size:18px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.language b.kazakh-text{line-height:22px}.language small{display:block;overflow:hidden;color:var(--muted);font-size:11px;line-height:13px;text-overflow:ellipsis;white-space:nowrap}.language-select-icon{position:absolute;right:10px;top:50%;display:grid;place-items:center;width:24px;height:24px;border:1px solid #bfd1cf;border-radius:50%;color:var(--teal);font-size:19px;font-weight:700;line-height:1;transform:translateY(-50%)}.language-b .language-select-icon{border-color:#e0c797;color:#8d6019}.language:hover{border-color:var(--teal);background:#fbfefd;box-shadow:0 5px 14px rgba(20,62,66,.13);transform:translateY(-1px)}.language-b:hover{border-color:var(--gold);background:#fffdfa;box-shadow:0 5px 14px rgba(132,92,25,.13)}.language:focus-visible{z-index:1;outline:3px solid rgba(23,107,112,.22);outline-offset:2px}.language-b:focus-visible{outline-color:rgba(185,129,44,.25)}.language:active{transform:translateY(0);box-shadow:0 1px 4px rgba(20,48,51,.1)}.swap{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #cad8d6;border-radius:50%;background:var(--surface);color:var(--teal);font-size:22px}
.language-picker{width:min(100%,680px);max-width:680px;margin:auto 0 0;padding:0;border:0;background:transparent}.language-picker::backdrop{background:rgba(18,43,47,.36)}.language-picker-panel{padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-radius:8px 8px 0 0;background:var(--surface);box-shadow:0 -12px 32px rgba(18,43,47,.18)}.language-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.language-picker-header strong{font-size:16px}.picker-close{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);font-size:23px;line-height:1}.language-options{display:grid;gap:8px}.language-option{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) auto;min-width:0;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);text-align:left}.language-option:focus-visible{outline:3px solid rgba(23,107,112,.2);outline-offset:1px}.language-option:disabled{background:#f5f7f6;color:#8c9997;cursor:default}.option-native{min-width:0;overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.option-native.kazakh-text{font-size:20px;text-align:right}.option-name{min-width:0;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.option-state{color:var(--teal);font-size:11px;white-space:nowrap}.language-option:disabled .option-state{color:#8c9997}
.history{display:flex;min-width:0;min-height:0;flex-direction:column;gap:15px;overflow-x:hidden;overflow-y:auto;padding:9px 1px 15px;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.history::-webkit-scrollbar{display:none}.empty-state{display:grid;place-content:center;justify-items:center;min-height:100%;text-align:center;color:var(--muted)}.empty-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:12px;border:1px solid #cbd9d7;border-radius:50%;background:var(--surface);color:var(--teal);font-weight:700}.empty-state strong{color:var(--ink);font-size:15px}.empty-state span{margin-top:5px;font-size:12px}.empty-state span[lang]{font:15px/1.5 "Noto Naskh Arabic",serif}
.turn{display:flex;flex-direction:column;gap:5px}.turn-meta{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.turn-meta time{margin-left:auto}.turn-meta .badge{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--teal);color:#fff;font-weight:800}.from-b .turn-meta{flex-direction:row-reverse}.from-b .turn-meta time{margin-left:0;margin-right:auto}.from-b .badge{background:var(--gold)}.bubble{position:relative;width:92%;padding:13px 58px 13px 14px;border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:7px;background:var(--surface);box-shadow:var(--shadow)}.from-b .bubble{align-self:flex-end;border-left:1px solid var(--line);border-right:3px solid var(--gold)}.text-block{min-width:0}.text-label{display:block;margin-bottom:2px;color:#84918f;font-size:9px}.original,.translation{margin:0;overflow-wrap:anywhere;font-size:16px;line-height:1.52}.translation-block{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.translation{color:#344d51}.original.kazakh-text,.translation.kazakh-text{font-size:19px;line-height:1.75;text-align:right}.play{position:absolute;right:10px;bottom:12px;display:grid;place-items:center;width:44px;height:44px;padding:3px;border:1px solid #bed6d4;border-radius:50%;background:var(--teal-soft);color:var(--teal)}.play span{font-size:13px;transform:translateX(1px)}.play b{font-size:8px}.play.needs-play{border-color:var(--gold);background:var(--gold-soft);color:#8d6019;box-shadow:0 0 0 4px rgba(185,129,44,.12)}.play.playing span{animation:pulse 1s infinite}.from-b .play{background:var(--gold-soft);border-color:#ead3a8;color:#8d6019}@keyframes pulse{50%{opacity:.35}}
.text-entry{display:flex;min-width:0;gap:8px;padding-top:9px;border-top:1px solid var(--line)}.text-entry input{min-width:0;flex:1;height:43px;padding:0 12px;border:1px solid #cad8d6;border-radius:6px;background:var(--surface);color:var(--ink);outline:none}.text-entry input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(23,107,112,.1)}.text-entry button{width:62px;flex:0 0 62px;border:0;border-radius:6px;background:var(--teal-dark);color:#fff;font-size:13px}
.talk-dock{position:relative;z-index:5;min-width:0;width:auto;margin:0 -18px;padding:9px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(18,62,66,.07);backdrop-filter:blur(10px)}.talk-dock>p{margin:0 0 7px;color:var(--muted);text-align:center;font-size:10px}.talk-buttons{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0;gap:10px}.talk-button{position:relative;min-width:0;height:78px;padding:9px 10px 8px 44px;overflow:hidden;border:0;border-radius:7px;color:#fff;text-align:left;touch-action:none;user-select:none;-webkit-user-select:none}.talk-button .mic{position:absolute;left:15px;top:50%;font-size:12px;transform:translateY(-50%);color:#fff}.talk-button .mic::after{content:"";position:absolute;inset:-8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.party-label{display:block;font-size:10px;opacity:.78}.talk-button b{display:block;font-size:18px;line-height:1.35}.talk-button small{display:block;overflow:hidden;font-size:10px;opacity:.78;text-overflow:ellipsis;white-space:nowrap}.party-a{background:var(--teal)}.party-b{background:#9b6a23}.talk-button.live{transform:translateY(-1px);box-shadow:0 0 0 4px rgba(23,107,112,.18)}.party-b.live{box-shadow:0 0 0 4px rgba(185,129,44,.18)}.talk-button:disabled{opacity:.48}
@media(max-width:480px){.privacy{display:none}}@media(max-width:380px){.app-shell{padding-left:12px;padding-right:12px}.talk-dock{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.brand-copy strong{font-size:14px}.brand-copy span{font-size:12px}.header-tools{gap:4px}.autoplay-control span{display:none}.status{width:132px;padding:0 8px}.language-panel{grid-template-columns:1fr 38px 1fr;gap:5px}.swap{width:38px;height:38px}.talk-button{padding-left:39px}.talk-button .mic{left:13px}}
@media(max-height:620px){.app-shell{padding-top:calc(7px + env(safe-area-inset-top))}.app-header{min-height:46px}.brand-mark{width:34px;height:34px;flex-basis:34px;font-size:17px}.workspace-heading{align-items:center;padding:6px 2px}.workspace-heading h1{font-size:17px}.workspace-heading p{display:none}.privacy{padding:0}.language-panel{padding:7px 0}.language{height:58px;padding:5px 9px}.language b{font-size:16px}.language small{display:none}.text-entry{padding-top:5px}.text-entry input{height:38px}.talk-dock{padding-top:6px;padding-bottom:calc(7px + env(safe-area-inset-bottom))}.talk-dock>p{display:none}.talk-button{height:58px}.talk-button b{font-size:16px}.talk-button small{display:none}}
@media(min-width:681px){.app-shell{padding-left:28px;padding-right:28px}.talk-dock{margin-left:-28px;margin-right:-28px;padding-left:28px;padding-right:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.workspace-tools .privacy{display:inline-block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:480px){.workspace-tools .privacy{display:inline-block;max-width:112px}}
@media(max-width:480px){.workspace-heading{align-items:flex-start;gap:8px}.workspace-tools{max-width:70%;flex-wrap:wrap;justify-content:flex-end;gap:5px}.workspace-tools .privacy{display:none}.remote-room-entry{height:30px;padding:0 7px;gap:4px}.remote-room-entry b{font-size:10px}.remote-room-entry span{font-size:13px}}
