@font-face{font-family:"Tutor Naskh";src:url("/learn/fonts/tutor-naskh-arabic.woff2") format("woff2");font-display:swap;font-weight:400 700}
:root{font-family:Inter,"Noto Sans SC",system-ui,sans-serif;color:#202827;background:#e8ece9;--ink:#202827;--muted:#68716f;--line:#d9dfdb;--paper:#fff;--canvas:#f3f5f2;--forest:#174f49;--forest-dark:#103e39;--mint:#e6f1ed;--gold:#b6873e;--gold-soft:#f7f0e2;--danger:#8a514b;--shadow:0 12px 34px rgba(31,45,42,.08)}
*{box-sizing:border-box}
html,body{margin:0;min-width:320px;height:100%;background:#e8ece9}
body{letter-spacing:0;overscroll-behavior:none}
button,a{font:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:3px solid rgba(182,135,62,.28);outline-offset:2px}
.coach-app{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;width:min(100%,760px);height:100dvh;margin:auto;background:var(--canvas);box-shadow:0 0 40px rgba(28,42,39,.12);overflow:hidden}
.app-header{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:10px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97);direction:ltr}
.back-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fafbfa;text-decoration:none;font-size:22px;line-height:1}
.coach-identity{display:flex;align-items:center;gap:11px;min-width:0}
.coach-mark{position:relative;display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(182,135,62,.5);border-radius:50%;background:var(--forest);color:#fff;box-shadow:0 0 0 4px var(--gold-soft)}
.coach-mark::after{content:"";position:absolute;right:0;bottom:1px;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#45a36d}
.coach-mark span{font-size:17px;font-weight:800}
.coach-name{min-width:0;direction:rtl;text-align:right}
.coach-name strong,.coach-name small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coach-name strong{color:var(--ink);font-size:16px;font-weight:750;line-height:1.25}
.coach-name small{display:flex;align-items:center;gap:5px;margin-top:3px;color:var(--muted);font-size:11px}
.coach-name small i{display:block;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.language-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#f2f5f3;direction:ltr}
.mode-button{min-width:52px;height:31px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:11px;font-weight:650;cursor:pointer}
.mode-button.active{background:var(--paper);color:var(--forest);box-shadow:0 1px 4px rgba(28,44,40,.12)}
.control-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;padding:7px 18px;border-bottom:1px solid var(--line);background:#fbfcfb}
.stage{display:flex;align-items:center;min-width:0;gap:8px;color:var(--muted);font-size:11px;font-weight:600}
.stage span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#6c827d;box-shadow:0 0 0 4px #edf1ef}
.stage[data-state="listening"]{color:#8a5e22}.stage[data-state="listening"] .stage-dot{background:var(--gold);box-shadow:0 0 0 4px var(--gold-soft);animation:pulse 1s ease-in-out infinite}
.stage[data-state="working"]{color:var(--forest)}.stage[data-state="working"] .stage-dot{background:var(--forest);animation:pulse 1.2s ease-in-out infinite}
.stage[data-state="error"]{color:var(--danger)}.stage[data-state="error"] .stage-dot{background:var(--danger)}
.auto-toggle{display:flex;align-items:center;gap:7px;flex:0 0 auto;color:var(--muted);font-size:10px;font-weight:600;cursor:pointer;user-select:none}
.auto-toggle input{position:absolute;opacity:0;pointer-events:none}
.toggle-track{position:relative;width:32px;height:18px;border-radius:9px;background:#cbd3cf;transition:background .18s}
.toggle-track i{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform .18s}
.auto-toggle input:checked+.toggle-track{background:var(--forest)}
.auto-toggle input:checked+.toggle-track i{transform:translateX(14px)}
.memory-bar{display:flex;align-items:center;gap:7px;min-height:36px;padding:6px 18px;border-bottom:1px solid #e4dfd4;background:var(--gold-soft);font-size:10px}
.memory-icon{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--gold);color:#fff;font-size:10px;font-weight:800}
.memory-state{color:#6e562e;font-weight:700}
.memory-clear{margin-inline-start:auto;border:0;background:transparent;color:var(--danger);padding:5px;cursor:pointer;font-size:10px;text-decoration:underline;text-underline-offset:2px}
.conversation{min-height:0;overflow-y:auto;padding:22px 20px 28px;scrollbar-width:thin;scrollbar-color:#c7ceca transparent}
.message-row{display:flex;align-items:flex-start;gap:10px;margin:0 0 18px;direction:ltr}
.message-row .avatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--forest);color:#fff;font-size:11px;font-weight:800;box-shadow:0 0 0 3px var(--mint)}
.bubble{position:relative;max-width:min(88%,600px);border-radius:8px;color:var(--ink);font-size:15px;line-height:1.8}
.bubble.teacher{padding:14px 16px;border:1px solid var(--line);border-top-left-radius:2px;background:var(--paper);box-shadow:var(--shadow);direction:rtl;text-align:right}
.bubble.user{width:max-content;margin:0 0 18px auto;padding:12px 15px;border-top-right-radius:2px;background:var(--forest);color:#fff;direction:auto;text-align:start;box-shadow:0 7px 18px rgba(23,79,73,.15)}
.bubble .label{display:block;margin-bottom:5px;color:var(--gold);font-size:10px;font-weight:750}
.bubble.user .label{color:rgba(255,255,255,.72)}
.bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.bubble .play{position:absolute;inset-inline-end:10px;top:10px;display:grid;place-items:center;width:32px;height:32px;border:1px solid #bfd0ca;border-radius:50%;background:var(--mint);color:var(--forest);cursor:pointer;font-size:11px}
.bubble .play:disabled{opacity:.55;cursor:wait}
.bubble.has-play{padding-inline-end:54px}
.answer-actions{display:flex;align-items:center;gap:6px;margin-top:11px;padding-top:9px;border-top:1px solid #edf0ee;direction:ltr}
.answer-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:36px;height:32px;padding:0 9px;border:1px solid #d5ddd9;border-radius:5px;background:#f8faf9;color:var(--forest);cursor:pointer;font-size:11px;font-weight:700}
.answer-action:hover{border-color:#b9cbc4;background:var(--mint)}
.answer-action:disabled{opacity:.55;cursor:wait}
.answer-action-icon{font-family:system-ui,sans-serif;font-size:15px;line-height:1}
.action-status{min-width:0;margin-inline-start:auto;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.share-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center}
.share-overlay[hidden]{display:none}
.share-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(18,28,26,.46);backdrop-filter:blur(2px)}
.share-sheet{position:relative;width:min(100%,760px);padding:8px 18px calc(18px + env(safe-area-inset-bottom));border-radius:8px 8px 0 0;background:#fff;box-shadow:0 -18px 45px rgba(20,34,31,.2);direction:ltr}
.share-grip{width:42px;height:4px;margin:0 auto 13px;border-radius:2px;background:#cbd2ce}
.share-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.share-header>div{min-width:0}
.share-header strong,.share-header small{display:block}
.share-header strong{color:var(--ink);font-size:18px;line-height:1.3}
.share-header small{margin-top:3px;color:var(--muted);font-size:11px}
.share-close{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#f7f9f8;color:var(--muted);cursor:pointer;font:24px/1 system-ui,sans-serif}
.share-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.share-option{display:flex;align-items:center;gap:12px;min-height:74px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#f8faf9;color:var(--ink);text-align:start;cursor:pointer}
.share-option.primary{border-color:#aac3ba;background:var(--mint)}
.share-option:disabled{opacity:.58;cursor:wait}
.share-option-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--forest);box-shadow:0 2px 8px rgba(23,79,73,.1);font:20px/1 system-ui,sans-serif}
.share-option b,.share-option small{display:block}
.share-option b{font-size:13px}
.share-option small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.4}
.share-guidance{margin:13px 2px 0;color:var(--muted);font-size:10px;line-height:1.55}
.share-status{min-height:16px;margin:6px 2px 0;color:var(--forest);font-size:10px;font-weight:700}
html[lang="kk-Arab"] .share-sheet{direction:rtl;font-family:"Tutor Naskh","Noto Naskh Arabic",serif}
html[lang="kk-Arab"] .share-header,html[lang="kk-Arab"] .share-option{text-align:right}
html[lang="kk-Arab"] .coach-name,html[lang="kk-Arab"] .bubble,html[lang="kk-Arab"] .stage,html[lang="kk-Arab"] .memory-bar,html[lang="kk-Arab"] .record-button{font-family:"Tutor Naskh","Noto Naskh Arabic",serif}
html[lang="kk-Arab"] .bubble{font-size:17px;line-height:1.85}
html[lang="kk-Arab"] .coach-name strong{font-size:18px}
html[lang="kk-Arab"] .stage{font-size:13px}
.composer{padding:10px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.98);box-shadow:0 -8px 24px rgba(34,47,44,.06)}
.record-button{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:58px;padding:8px 15px;border:1px solid var(--forest);border-radius:7px;background:var(--forest);color:#fff;cursor:pointer;touch-action:none;user-select:none;box-shadow:0 8px 18px rgba(23,79,73,.17)}
.record-button b{font-size:14px;font-weight:750;text-align:start}
.record-button small{color:rgba(255,255,255,.68);font-size:10px;white-space:nowrap}
.mic-icon{position:relative;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(255,255,255,.1)}
.mic-icon i{display:block;width:8px;height:14px;border:2px solid #fff;border-radius:6px}
.mic-icon::before{content:"";position:absolute;top:18px;width:14px;height:8px;border:2px solid #fff;border-top:0;border-radius:0 0 8px 8px}
.mic-icon::after{content:"";position:absolute;bottom:6px;width:2px;height:5px;background:#fff}
.record-button.listening{border-color:#9f702c;background:#9f702c;box-shadow:0 0 0 4px rgba(182,135,62,.16),0 8px 18px rgba(95,66,25,.18)}
.record-button:disabled{opacity:.62;cursor:wait}
@keyframes pulse{50%{transform:scale(1.22);opacity:.68}}
@media(max-width:560px){.app-header{grid-template-columns:38px minmax(0,1fr) auto;min-height:68px;padding:8px 11px;gap:8px}.back-button{width:36px;height:36px}.coach-mark{flex-basis:36px;width:36px;height:36px}.coach-name strong{font-size:14px}.coach-name small{font-size:9px}.mode-button{min-width:43px;height:29px;padding:0 5px;font-size:9px}.control-strip{min-height:43px;padding:6px 11px;gap:8px}.auto-toggle>span:last-child{display:none}.memory-bar{padding:5px 11px}.conversation{padding:17px 11px 22px}.bubble{max-width:91%;font-size:14px;line-height:1.7}.bubble.teacher{padding:12px 13px}.bubble.has-play{padding-inline-end:49px}.bubble .play{width:29px;height:29px}.answer-action{width:34px;min-width:34px;padding:0}.answer-action-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.share-sheet{padding-inline:12px}.share-options{grid-template-columns:1fr}.composer{padding:8px 11px calc(10px + env(safe-area-inset-bottom))}.record-button{grid-template-columns:38px minmax(0,1fr);min-height:56px;padding:7px 12px}.record-button small{display:none}html[lang="kk-Arab"] .bubble{font-size:16px;line-height:1.8}html[lang="kk-Arab"] .coach-name strong{font-size:16px}}
@media(min-width:561px){.share-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:350px){.coach-name small{display:none}.mode-button{min-width:39px}.language-switch{padding:2px}.conversation{padding-inline:8px}.record-button{min-height:54px}}
@media(prefers-reduced-motion:reduce){.stage-dot{animation:none!important}.toggle-track,.toggle-track i{transition:none}}
