:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;--bg:#202020;--surface:#2b2b2b;--raised:#353535;--text:#f5f5f5;--muted:#b8b8b8;--line:#414141;--accent:#ff5b2b;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:#ffb69e}svg{width:22px;height:22px;flex:none}[hidden]{display:none!important}
.app{height:100dvh;min-height:400px;max-width:900px;margin:auto;display:flex;flex-direction:column;padding:calc(12px + env(safe-area-inset-top)) 16px calc(8px + env(safe-area-inset-bottom));gap:10px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex:none}.topbar h1{font-size:1.5rem;font-weight:600;letter-spacing:-.5px;margin:0}.topbar h1 span{font-size:.8rem;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:6px}.top-actions{display:flex;gap:4px}.icon-button{background:transparent;border:0;min-width:44px;min-height:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}
.icon-button:hover:not(:disabled),.text-button:hover:not(:disabled){background:var(--raised)}.recorder{flex:none;padding:4px 0 0}.recorder-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px}.microphone-source{display:flex;align-items:center;gap:7px;font-size:.85rem;color:#e7e7e7}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.status-dot.listening{background:var(--accent);animation:breath 1.7s ease-in-out infinite}.status-dot.ready{background:#a7dba7}
.timer-block{text-align:center;margin-left:auto}.timer-block time{display:block;font-size:1rem;font-weight:550;font-variant-numeric:tabular-nums;letter-spacing:.6px}.timer-block>span{display:block;color:var(--muted);font-size:.69rem;line-height:1.4;margin-top:3px}.recording-controls{display:flex;gap:8px}.square-button{width:48px;height:48px;border:0;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--raised)}.square-button.stop{color:var(--accent)}.main-button{margin:10px 0 0;min-height:48px;border:0;border-radius:10px;background:var(--accent);color:#161616;font-size:1rem;font-weight:600;padding:10px 20px;display:flex;align-items:center;justify-content:center;gap:9px;width:100%}
.status-line{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.72rem;margin:9px 0 0;min-height:17px}#engine-label{font-size:.69rem}#control-hint{margin:5px 0 0;color:var(--muted);font-size:.7rem;line-height:1.4}.notice{flex:none;border:1px solid #71433c;background:#3b2b28;border-radius:10px;color:#ffcec1;padding:10px 12px;font-size:.8rem;line-height:1.4;overflow-wrap:anywhere;max-height:22dvh;overflow:auto}.notice.info{border-color:#474d48;background:#2b322b;color:#d2e6cf}
.loading{flex:none;font-size:.75rem;padding:8px 2px}.loading-line{display:flex;justify-content:space-between;gap:10px}progress{width:100%;height:5px;margin:8px 0 0;border:0;accent-color:var(--accent);border-radius:5px}
.conversation{display:flex;flex-direction:column;flex:1;min-height:100px;background:var(--surface);border-radius:14px;overflow:hidden}.conversation-toolbar{padding:9px 12px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.language-button{min-height:44px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--raised);border:0;border-radius:8px;padding:8px 12px;font-size:.85rem;white-space:nowrap}.text-button{min-height:44px;border:0;background:transparent;border-radius:8px;padding:10px 8px;font-size:.75rem;color:#e1e1e1}
.conversation-toolbar>.text-button{font-size:.69rem;text-align:right;max-width:140px}.session-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 16px;padding:13px 0;border-bottom:1px solid var(--line);flex:none}.session-heading h2{font-size:.97rem;font-weight:500;margin:0;line-height:1.3}.session-heading p{color:var(--muted);font-size:.75rem;margin:4px 0 0}
.transcript{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#767676 transparent;padding:18px 16px 16px;scroll-padding-top:16px}.utterance{margin:0 0 32px}.utterance:last-child{margin-bottom:8px}.utterance-time{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.4;margin:0 0 10px}.utterance-source,.utterance-translation{font-size:1.2rem;line-height:1.55;overflow-wrap:anywhere;margin:0;white-space:pre-wrap;font-weight:400}.utterance-translation{color:#e6e6e6;margin-top:8px}.utterance-meta{font-size:.72rem;color:var(--muted);line-height:1.4;margin:8px 0 0}
.transcript[data-view="source"] .utterance-translation,.transcript[data-view="target"] .utterance-source{display:none}.empty-recording{display:flex;flex-direction:column;justify-content:center;min-height:100%;max-width:290px;margin:auto;color:var(--muted);text-align:center;padding:25px 0}.empty-recording h3{font-size:1rem;font-weight:500;color:#e4e4e4;margin:0 0 10px}.empty-recording p{font-size:.85rem;line-height:1.6;margin:0}.empty-symbol{font-size:2.6rem;color:#aaa;margin-bottom:12px}
.conversation-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 10px;border-top:1px solid var(--line);flex:none;font-size:.69rem;color:var(--muted)}.conversation-actions>div{display:flex;gap:0}.conversation-actions .text-button{font-size:.69rem}.bottom-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.69rem;color:var(--muted);min-height:40px}
dialog{border:1px solid var(--line);border-radius:18px;width:min(calc(100% - 24px),520px);max-height:86dvh;padding:20px;background:var(--surface);color:var(--text);box-shadow:0 20px 70px #0008;overscroll-behavior:contain}dialog::backdrop{background:#0009}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px}dialog h2{font-size:1.2rem;margin:0;font-weight:550}dialog .dialog-top .icon-button{font-size:1.8rem;padding:0}dialog p{font-size:.85rem;line-height:1.6;color:var(--muted)}.small-note,.release-label{font-size:.75rem!important}.info-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}h3{font-size:.95rem;margin:0 0 8px;font-weight:550}.info-section p{margin:5px 0 0}.select-label{font-size:.85rem;font-weight:500;display:block;margin:18px 0 8px}
input,textarea,select{width:100%;display:block;min-height:46px;border:1px solid #656565;border-radius:9px;background:#232323;color:var(--text);font-size:1rem;padding:11px 12px}textarea{min-height:105px;resize:vertical;line-height:1.5}.text-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.secondary-button{min-height:44px;background:var(--accent);color:#151515;border:0;border-radius:9px;padding:10px 16px;font-size:.85rem;font-weight:550}.credit{display:block;margin-top:22px;font-size:.75rem}.direction{display:flex;flex-direction:column;gap:10px}.direction-button{min-height:52px;padding:12px 16px;text-align:left;background:var(--raised);border:1px solid transparent;border-radius:9px;font-size:1rem}.direction-button.selected{border-color:var(--accent)}
details{border-top:1px solid var(--line);margin-top:20px}summary{list-style:none;min-height:52px;display:flex;justify-content:space-between;align-items:center;font-size:.85rem;cursor:pointer}summary::-webkit-details-marker{display:none}#text-form label{display:block;font-size:.8rem;margin-bottom:8px}#text-form{padding-bottom:14px}.recording-item{display:flex;flex-direction:column;gap:7px;width:100%;min-height:76px;text-align:left;padding:16px 4px;border:0;border-bottom:1px solid var(--line);background:transparent}.recording-item strong{font-size:1rem;font-weight:500}.recording-item span{font-size:.8rem;color:var(--muted)}
@media(min-width:700px){.app{padding:22px 26px 14px;gap:14px}.topbar h1{font-size:1.8rem}.recorder-row{justify-content:flex-start;gap:20px}.timer-block{margin-left:10px}.main-button{width:auto;min-width:260px}.conversation{border-radius:18px}.transcript{padding:22px 26px}.session-heading{margin:0 26px}.conversation-toolbar{padding:12px 22px 0}.utterance-source,.utterance-translation{font-size:1.35rem}}
@media(max-width:360px){.app{padding-left:10px;padding-right:10px}.topbar h1 span{display:none}.recorder-row{gap:7px}.square-button{width:44px;height:44px}.microphone-source{font-size:.75rem}.conversation-toolbar{padding-left:8px;padding-right:8px}.language-button{font-size:.75rem;padding:8px}.conversation-toolbar>.text-button{font-size:.65rem}.conversation-actions .text-button{font-size:.63rem;padding:8px 5px}}
@media(max-height:560px){.timer-block>span,#control-hint,.bottom-bar>span{display:none}.app{gap:5px;padding-top:6px}.topbar h1{font-size:1.2rem}.status-line{margin-top:5px}.session-heading{padding:6px 0}.conversation-actions{display:none}.main-button{margin-top:4px;min-height:44px}.bottom-bar{min-height:30px}}
@keyframes breath{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
#auto-language { grid-column: 1 / -1; }
.chinese-display{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 12px 0;flex:none;color:var(--muted);font-size:.72rem}.chinese-display>div{display:flex;gap:2px}.chinese-display button{min-height:44px;padding:8px 12px;border:0;border-radius:8px;background:transparent;font-size:.75rem;color:var(--muted)}.chinese-display button[aria-pressed="true"]{background:var(--raised);color:var(--text)}
