:root{--bg: #0f1115;--panel: #1a1d24;--text: #f5f5f7;--text-dim: #9aa0aa;--accent: #4f8cff;--warn: #f0a92b;--danger: #ff4d4f;--radius: 16px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));gap:28px}.title{margin:0;font-size:1.25rem;font-weight:600;text-align:center}.lang-toggle{display:inline-flex;background:var(--panel);border-radius:999px;padding:4px;gap:2px}.lang-toggle button{border:none;background:transparent;color:var(--text-dim);font-size:.95rem;font-weight:600;padding:8px 22px;border-radius:999px;cursor:pointer;transition:color .15s ease,background .15s ease;min-width:64px}.lang-toggle button[aria-pressed=true]{background:var(--accent);color:#fff}.lang-toggle button:disabled{opacity:.45;cursor:not-allowed}.mic-button{width:160px;height:160px;border-radius:50%;border:none;background:var(--panel);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 6px 24px #0000004d}.mic-button:disabled{opacity:.4;cursor:not-allowed}.mic-button:not(:disabled):active{transform:scale(.96)}.mic-button.is-recording{background:var(--danger);color:#fff;animation:mic-pulse 1.4s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ff4d4f80,0 6px 24px #0000004d}50%{box-shadow:0 0 0 22px #ff4d4f00,0 6px 24px #0000004d}}.mic-button svg{width:64px;height:64px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.meter{width:100%;max-width:260px;display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:-10px}.meter-label{margin:0;font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--text-dim);transition:color .2s ease}.meter-bar{width:100%;height:4px;border-radius:999px;background:var(--panel);overflow:hidden;opacity:0;transition:opacity .2s ease}.meter-fill{height:100%;width:100%;border-radius:999px;background:var(--accent);transition:width .2s linear,background .2s ease}.meter[data-level=ok] .meter-bar,.meter[data-level=warn] .meter-bar,.meter[data-level=urgent] .meter-bar{opacity:1}.meter[data-level=ok] .meter-label{color:var(--text)}.meter[data-level=warn] .meter-label{color:var(--warn);font-weight:600}.meter[data-level=warn] .meter-fill{background:var(--warn)}.meter[data-level=urgent] .meter-label{color:var(--danger);font-weight:700}.meter[data-level=urgent] .meter-fill{background:var(--danger)}.status{margin:0;color:var(--text-dim);font-size:.95rem;min-height:1.2em;text-align:center}.status.is-error{color:var(--danger)}.status.is-warn{color:var(--warn);font-weight:600}.status.is-connected{color:var(--accent);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.transcript{width:100%;max-width:520px;min-height:3em;padding:16px 18px;background:var(--panel);border-radius:var(--radius);color:var(--text);font-size:1.05rem;line-height:1.5;text-align:center;word-break:break-word;-webkit-user-select:text;user-select:text}.transcript:empty:before{content:attr(data-placeholder);color:var(--text-dim)}@media (prefers-reduced-motion: reduce){.mic-button,.mic-button.is-recording{animation:none;transition:none}.meter-fill{transition:none}}
