:root{color-scheme:light;--bg: oklch(99% .002 240);--surface: oklch(100% 0 0);--fg: oklch(18% .012 250);--muted: oklch(54% .012 250);--border: oklch(92% .005 250);--fg-soft: color-mix(in oklch, var(--fg) 6%, transparent);--fg-subtle: color-mix(in oklch, var(--fg) 4%, transparent);--accent: oklch(58% .18 255);--accent-soft: color-mix(in oklch, var(--accent) 14%, transparent);--ok: oklch(48% .14 145);--ok-soft: color-mix(in oklch, oklch(62% .12 145) 16%, transparent);--warn: oklch(48% .12 75);--warn-soft: color-mix(in oklch, oklch(62% .12 75) 16%, transparent);--neutral: oklch(50% .02 250);--neutral-soft: color-mix(in oklch, oklch(62% .01 250) 16%, transparent);--danger: oklch(50% .19 25);--danger-soft: color-mix(in oklch, oklch(62% .16 25) 16%, transparent);--speaker-0: oklch(48% .13 240);--speaker-1: oklch(48% .16 320);--focus-ring: var(--accent);--shadow-md: 0 8px 24px color-mix(in oklch, var(--fg) 12%, transparent);--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace;--fs-h1: clamp(36px, 4.8vw, 56px);--fs-h2: clamp(26px, 3.4vw, 38px);--fs-h3: 20px;--fs-lead: 18px;--fs-body: 16px;--fs-sm: 14px;--fs-meta: 13px;--fs-xs: 12px;--fs-2xs: 11px;--gap-xs: 8px;--gap-sm: 12px;--gap-md: 20px;--gap-lg: 32px;--gap-xl: 56px;--gap-2xl: 96px;--container: 1120px;--gutter: 32px;--radius-sm: 8px;--radius: 10px;--radius-lg: 16px}:root{font-family:var(--font-body)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}.app-shell{--shell-banner-h: 0px;--rail-w: 320px;display:grid;grid-template-columns:280px minmax(0,1fr) 6px var(--rail-w)}.app-shell>.shell-banner{grid-column:1 / -1;position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;padding:10px 20px;border-bottom:1px solid var(--border)}.shell-banner.warn{background:var(--warn-soft);border-bottom-color:var(--warn)}.shell-banner.ok{background:var(--ok-soft);border-bottom-color:var(--ok)}.shell-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.shell-banner-text strong{font-size:var(--fs-meta);font-weight:700}.shell-banner.warn .shell-banner-text strong{color:var(--warn)}.shell-banner.ok .shell-banner-text strong{color:var(--ok)}.shell-banner-text span{color:var(--muted);font-size:var(--fs-xs);line-height:1.45}.shell-banner-actions{margin-left:auto;display:flex;gap:8px;flex:0 0 auto}.shell-banner-actions button{white-space:nowrap;font-size:var(--fs-meta)}.sidebar,.assistant{position:sticky;top:var(--shell-banner-h);height:calc(100vh - var(--shell-banner-h));overflow:hidden;display:flex;flex-direction:column;padding:20px 16px}.sidebar{border-right:1px solid var(--border)}.app-shell>.assistant{border-left:0}.app-shell.focus-ask>.assistant{border-left:1px solid var(--border)}.workspace{padding:20px;min-width:0}.workspace>*{max-width:860px;margin-inline:auto;width:100%}.app-shell.focus{grid-template-columns:minmax(0,1fr)}.app-shell.focus>.sidebar{display:none}.app-shell.focus-ask{grid-template-columns:minmax(0,1fr) var(--rail-w)}.app-shell.focus-ask>.assistant{display:flex}.rail-resizer{position:sticky;top:var(--shell-banner-h);align-self:stretch;cursor:col-resize;background:transparent;border-left:1px solid var(--border);border-right:1px solid var(--border);transition:background .15s ease}.rail-resizer:hover,.rail-resizer:focus-visible{background:var(--accent-soft)}.rail-resizer:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.workspace-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.workspace-title{display:flex;align-items:center;gap:10px;min-width:0}.workspace-title h1{margin:0;font-size:var(--fs-h3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-tools{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.tool-toggle{padding:5px 12px;font-size:var(--fs-meta);border-radius:999px;color:var(--muted)}.tool-toggle.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.tool-toggle:hover{border-color:var(--muted);color:var(--fg)}.tool-toggle.on:hover{color:var(--accent);border-color:var(--accent)}.popover{position:relative}.popover-trigger{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-size:var(--fs-meta);border-radius:999px;color:var(--muted)}.popover-trigger:hover{border-color:var(--muted);color:var(--fg)}.popover-badge{padding:0 6px;border-radius:999px;background:var(--fg-soft);color:var(--muted);font-size:var(--fs-2xs);font-family:var(--font-mono)}.popover-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:240px;max-width:min(420px,80vw);max-height:60vh;overflow-y:auto;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md)}.popover-hint{margin:0 0 8px;color:var(--muted);font-size:var(--fs-2xs);line-height:1.45}.popover-panel .stats{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.sidebar-brand{margin-bottom:16px}.sidebar-brand h1{margin:0;font-size:20px}.sidebar-brand .subtitle{display:block;margin-top:2px}.subtitle{color:var(--muted);font-size:13px}.now-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:14px}.now-card.listening{background:var(--ok-soft);border-color:var(--ok)}.now-card.paused{background:var(--warn-soft);border-color:var(--warn)}.now-card.neutral{background:var(--neutral-soft);border-color:var(--neutral)}.now-head{display:flex;align-items:center;gap:8px}.now-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--neutral)}.now-card.listening .now-dot{background:var(--ok)}.now-card.paused .now-dot{background:var(--warn)}.now-state{font-size:14px;font-weight:600}.now-card.listening .now-state{color:var(--ok)}.now-card.paused .now-state{color:var(--warn)}.now-timer{margin-left:auto;font-family:var(--font-mono);font-size:16px;font-variant-numeric:tabular-nums}.now-note{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.now-actions{display:flex;flex-wrap:wrap;gap:8px}.now-actions button{flex:1 1 auto;padding:8px 12px;font-size:13px}.now-card .level-meter{margin-top:0}.now-card .status-badge{align-self:flex-start}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.panel h2{margin-top:0;font-size:16px}.hint{color:var(--muted);font-size:13px}.setup-row{display:flex;align-items:center;gap:18px;margin:14px 0;flex-wrap:wrap}.setup-row label{display:flex;align-items:center;gap:6px;font-size:14px}button,.controls a{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--fg);border-radius:var(--radius-sm);padding:8px 16px;cursor:pointer;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:600;padding:10px 22px}.error{color:var(--danger);font-size:13px;margin:10px 0;white-space:pre-wrap}.level-meter{margin-top:10px;height:6px;border-radius:3px;background:var(--fg-soft);overflow:hidden}.canvas-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:4px}.canvas-head h2{margin:0 0 4px;font-size:var(--fs-h3)}.canvas-note{margin:0;color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.canvas-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}.player-bar{position:relative;display:flex;align-items:center;gap:10px;flex:1 1 320px;min-width:260px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.player-toggle{flex:0 0 auto;width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted);font-size:11px;line-height:1}.player-toggle:hover{color:var(--fg);border-color:var(--muted)}.player-time{flex:0 0 auto;min-width:44px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;text-align:center}.player-scrub{flex:1 1 auto;min-width:60px;accent-color:var(--accent);cursor:pointer}.player-failed{color:var(--danger);font-size:var(--fs-2xs)}.utterance-time.seekable{border:1px solid transparent;background:transparent;padding:0 4px;border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);cursor:pointer}.utterance-time.seekable:hover{color:var(--accent);border-color:var(--border)}.level-fill{height:100%;background:var(--ok);transition:width 90ms linear}.controls{display:flex;align-items:center;gap:12px;margin:14px 0;flex-wrap:wrap}button.pause{background:var(--warn);border-color:var(--warn);color:var(--surface);font-weight:600}button.resume{background:var(--ok);border-color:var(--ok);color:var(--surface);font-weight:600}button.end{background:transparent;border-color:var(--neutral);color:var(--muted)}.source-label{color:var(--muted);font-size:12px}.stats{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;min-width:90px}.stat.warn{border-color:var(--danger)}.stat-value{display:block;font-size:16px;font-weight:600}.stat-label{color:var(--muted);font-size:11px}.transcript{margin-top:16px;display:flex;flex-direction:column-reverse;gap:10px;max-height:min(70vh,800px);overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.transcript:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.transcript .hint{margin-block:auto}.utterance{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}.utterance.provisional{opacity:.72;border-style:dashed}.utterance-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.speaker{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.voice-hint{flex:0 0 auto;padding:1px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:11px;letter-spacing:.02em}.spk-0{color:var(--speaker-0)}.spk-1{color:var(--speaker-1)}.spk-x{color:var(--muted)}.utterance-time{color:var(--muted);font-size:11px}.provisional-tag{color:var(--muted);font-size:11px;font-style:italic}.utterance-original{font-size:16px;line-height:1.45}.clip-play{flex:0 0 auto;width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:11px;line-height:1;cursor:pointer;padding:0}.clip-play:hover{color:var(--fg);border-color:var(--muted)}.utterance.playing{outline:1px solid var(--muted)}.clip-audio{display:none}.history{margin-top:20px}.history h3{margin:0 0 8px;font-size:14px}.history-search{width:100%;margin-bottom:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:inherit;font:inherit;font-size:13px}.history-locked-note{margin:0 0 10px;color:var(--warn);font-size:12px;line-height:1.45}.history-group{margin-bottom:14px}.history-group-label{margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.history-row{display:flex;align-items:stretch;gap:8px}.history-item{flex:1;min-width:0;text-align:left;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:inherit;padding:12px 14px;cursor:pointer}.history-item:hover{border-color:var(--muted)}.history-item.active{border-color:var(--accent);background:var(--accent-soft)}.history-delete{flex:0 0 auto;width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.history-delete svg{display:block;width:20px;height:20px}.history-delete:hover{color:var(--danger);border-color:color-mix(in oklch,var(--danger) 45%,transparent);background:var(--danger-soft)}.history-delete:focus-visible{outline:2px solid var(--danger);outline-offset:1px}.controls .danger{display:inline-flex;align-items:center;gap:6px;color:var(--danger);border-color:color-mix(in oklch,var(--danger) 35%,transparent)}.controls .danger:hover{background:var(--danger-soft);border-color:color-mix(in oklch,var(--danger) 55%,transparent)}.controls .danger svg{display:block;width:16px;height:16px}.history-title{display:block;font-size:13px;font-weight:600}.history-meta{display:block;margin-top:2px;color:var(--muted);font-size:12px}.utterance-translation{margin-top:4px;color:var(--muted);font-size:14px;line-height:1.45}.utterance-translation.partner{opacity:.9}.utterance-translation.polish{font-style:normal}.speak-btn{margin-left:6px;padding:0 4px;border:none;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;opacity:.75;vertical-align:middle}.speak-btn:hover{opacity:1}.speak-btn:disabled{cursor:default;opacity:.4}.speak-btn.failed{color:var(--danger);opacity:1}.debug-toggle{display:flex;align-items:center;gap:6px;margin-top:18px;color:var(--muted);font-size:13px;cursor:pointer}.debug-log{margin-top:8px;background:var(--fg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;max-height:320px;overflow:auto;font-size:11px;color:var(--muted);white-space:pre-wrap;word-break:break-all}.checkbox{cursor:pointer}.speaker-editor .speaker-chips{display:flex;flex-wrap:wrap;gap:8px}.speaker-chip{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:999px;border:1px solid var(--border);background:var(--fg-subtle);font-size:13px}.speaker-chip-btn{border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:6px;padding:2px 4px}.speaker-label-raw{opacity:.55;font-size:11px}.speaker-merge-btn{border:none;background:transparent;color:var(--muted);cursor:pointer;padding:2px 6px;border-radius:6px}.speaker-merge-btn:hover{color:var(--accent);background:var(--fg-soft)}.speaker-rename,.speaker-merge-pick{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.speaker-rename input{width:120px;padding:3px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:inherit;font:inherit}.speaker-rename button,.speaker-merge-pick button{border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer}.speaker-actions{position:relative;display:inline-flex;align-items:center}.speaker-status{border:1px solid var(--border);background:transparent;border-radius:999px;font-size:10px;letter-spacing:.04em;text-transform:uppercase;padding:1px 7px;cursor:pointer;color:var(--muted)}.speaker-status.unknown{color:var(--warn);border-color:color-mix(in oklch,var(--warn) 50%,transparent)}.speaker-status.pending{color:var(--muted);border-style:dashed}.speaker-menu{position:absolute;top:110%;left:0;z-index:20;display:flex;flex-direction:column;gap:2px;min-width:150px;padding:6px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md)}.speaker-menu button{border:none;background:transparent;color:inherit;text-align:left;padding:5px 8px;border-radius:6px;font-size:12px;cursor:pointer}.speaker-menu button:hover{background:var(--fg-soft)}.utterance.unknown-speaker{border-left-color:var(--warn)}.utterance.unknown-speaker .speaker{color:var(--warn)}.ask-panel{margin:16px 0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--fg-subtle)}.ask-panel.compact{margin:12px 0}.assistant .ask-panel{border:0;background:transparent;margin:0;padding:0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.ask-thread-section{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;margin-bottom:12px}.ask-thread{display:flex;flex-direction:column;gap:10px;overflow-y:auto;flex:1 1 auto;min-height:0;padding:2px;scrollbar-gutter:stable}.ask-thread:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ask-empty{margin:0;color:var(--muted);font-size:var(--fs-xs);line-height:1.5}.ask-composer{flex:0 0 auto;padding-top:12px;border-top:1px solid var(--border)}.ask-composer .error{margin:0 0 8px}.ask-title{flex:0 0 auto;font-size:13px;color:var(--muted);margin-bottom:8px}.ask-form{display:flex;gap:8px;min-width:0}.ask-form textarea{flex:1;min-width:0;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:inherit;font:inherit;resize:none;overflow-y:auto;line-height:1.45}.ask-form textarea:focus-visible,.ask-form input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.ask-composer-hint{margin:6px 0 0;color:var(--muted);font-size:var(--fs-2xs);text-align:right}.ask-form button{align-self:flex-start;white-space:nowrap}.ask-translate-toggle{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;margin-bottom:10px;cursor:pointer;color:var(--muted);font-size:var(--fs-xs)}.ask-translate-toggle input{grid-row:1 / 3;align-self:start;margin-top:2px;cursor:pointer}.ask-translate-toggle input:disabled{cursor:not-allowed}.ask-translate-hint{grid-column:2;color:var(--muted);font-size:var(--fs-2xs);line-height:1.45}.ask-turn-tag{display:inline-block;margin-left:6px;padding:1px 7px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:var(--fs-2xs);letter-spacing:.02em;vertical-align:middle}.ask-turn{padding:10px 12px;border-radius:var(--radius);background:var(--fg-subtle)}.ask-q{font-size:13px;color:var(--muted);margin-bottom:6px}.ask-q:before{content:"Q  ";font-weight:600;letter-spacing:.04em}.ask-a{font-size:15px;line-height:1.55;white-space:pre-wrap}.ask-a:before{content:"A  ";font-weight:600;letter-spacing:.04em;color:var(--muted)}.status-badge{padding:4px 12px;border-radius:999px;font-weight:600;font-size:13px;background:var(--neutral-soft);color:var(--neutral)}.status-badge.paused_for_assistance,.status-badge.warn{background:var(--warn-soft);color:var(--warn)}.status-badge.listening,.status-badge.ok{background:var(--ok-soft);color:var(--ok)}.status-badge.ended,.status-badge.connecting,.status-badge.neutral{background:var(--neutral-soft);color:var(--neutral)}.status-badge.danger{background:var(--danger-soft);color:var(--danger)}.sidebar-debug{margin-top:auto;padding-top:16px}.sidebar-debug .debug-toggle{margin-top:0}.sidebar .debug-log{max-height:200px}@media(max-width:1023px){.app-shell{grid-template-columns:1fr}.sidebar,.assistant{position:static;top:auto;height:auto;border:0}.rail-resizer{display:none}.app-shell>.shell-banner{position:static}}
