@font-face{font-family:Inter;src:url('/assets/inter-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/inter-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/inter-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{color-scheme:dark;--page:#041316;--panel:#071c22;--inset:#04171c;--raised:#0d2932;--ink:#f0f5f6;--muted:#91a8b1;--faint:#5f7a85;--line:#19363e;--hover-line:#31535e;--accent:#53c4ec;--accent-hover:#87d6f2;--button-ink:#06161a;--warning:#fec84b;--danger:#f97066;--radius:14px}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--page);color:var(--ink);font:14px/1.5 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.35}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button,select{transition:background-color .15s,border-color .15s,color .15s}button:active:not(:disabled){transform:translateY(1px)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:#031013}.brand{display:flex;align-items:center;gap:24px;text-decoration:none;color:var(--muted)}.brand img{display:block}.brand span{font-size:13px;border-left:1px solid var(--line);padding-left:24px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:8px;background:none;color:var(--ink);padding:0}.icon-button:hover{background:var(--raised);color:var(--ink)}.muted{color:var(--muted)}main{max-width:1080px;margin:44px auto;padding:0 36px 64px}.section-label{font-size:11px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;font-weight:500;color:var(--muted)}.audio-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px 24px}.audio-panel.dragging{border-color:var(--accent)}.audio-head{display:flex;align-items:center;gap:20px;min-height:32px;margin-bottom:16px}.clip-name{color:var(--faint);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.audio-head #clear{margin-left:auto;width:32px;height:32px;flex-shrink:0}.capture-row{display:flex;align-items:center;gap:18px}.record-button{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:68px;height:68px;padding:0;border:1px solid var(--accent);border-radius:50%;background:var(--accent);color:var(--button-ink);box-shadow:0 0 0 5px rgb(83 196 236 / .045)}.record-button svg{width:26px;height:26px;stroke-width:1.8}.record-button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.record-button.recording{background:#b42318;border-color:#f97066;color:#fff;box-shadow:0 0 0 5px rgb(249 112 102 / .08)}.player{display:flex;align-items:center;gap:16px;flex:1;min-width:0;height:84px;padding:0 16px;background:var(--inset);border:1px solid #132f38;border-radius:10px}.play-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;border:1px solid #254650;background:var(--raised);color:var(--accent)}.play-button svg{width:18px;height:18px}.play-button:hover{border-color:var(--accent)}.wave-track{position:relative;height:44px;min-width:20px;flex:1}.wave-track canvas{width:100%;height:44px;display:block}.wave-track input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.wave-track:focus-within{outline:2px solid var(--accent);outline-offset:5px;border-radius:4px}#empty-audio{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:12px;pointer-events:none;white-space:nowrap}.time{font:11px Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted);display:flex;gap:5px}.time-separator{color:var(--faint)}.upload-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 13px;background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;flex-shrink:0}.upload-button:hover{background:var(--raised);border-color:var(--hover-line);color:var(--ink)}.upload-button svg{width:17px;height:17px}.model-row{display:flex;align-items:flex-end;gap:12px;margin:24px 0 0}.model-field{display:flex;flex-direction:column;gap:8px;min-width:200px}.model-field label{font-size:12px;color:var(--muted)}.select-wrap{position:relative}.select-wrap svg{position:absolute;right:12px;top:13px;color:var(--muted);pointer-events:none}select{display:block;appearance:none;width:100%;height:46px;padding:0 42px 0 14px;background:var(--panel);border:1px solid #25434d;border-radius:8px;color:var(--ink);font-size:13px;cursor:pointer}select:hover{border-color:var(--hover-line)}.run-button,.primary{display:inline-flex;align-items:center;justify-content:center;gap:16px;height:46px;padding:0 18px;background:var(--accent);border:1px solid var(--accent);border-radius:8px;color:var(--button-ink);font-weight:600;font-size:13px;min-width:146px}.run-button:hover,.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.run-button svg{width:16px;height:16px}.run-button.running svg{display:none}.run-button.running:after{content:'';width:14px;height:14px;border-radius:50%;border:2px solid rgb(6 22 26 / .2);border-top-color:var(--button-ink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#status{font-size:12px;color:var(--muted);min-height:20px;margin-top:10px}#status.error{color:var(--danger)}.runs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 16px}.run-tab{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;min-height:36px;font-size:12px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:7px}.run-tab:hover{border-color:var(--hover-line);background:var(--panel)}.run-tab[aria-pressed=true]{background:rgb(83 196 236 / .08);border-color:rgb(83 196 236 / .3);color:var(--accent)}.run-tab .dot{width:4px;height:4px;background:var(--accent);border-radius:50%}.result-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px 28px 0;overflow:hidden}.result-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.result-head h1{font-size:14px;font-weight:500;line-height:1.5;margin:5px 0 0}.result-actions{display:flex;align-items:center;gap:4px}.timing{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;margin-right:10px}.result-actions .icon-button{width:34px;height:34px}.result-actions svg{width:17px;height:17px}.transcript{font-size:28px;line-height:1.5;font-weight:500;letter-spacing:-.025em;margin:24px 0 20px;overflow-wrap:anywhere;white-space:pre-wrap}.words{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;padding-bottom:24px}.word{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:0;border-bottom:2px solid #254c58;background:transparent;border-radius:4px 4px 0 0;color:var(--ink);padding:4px 6px 7px;min-height:52px;font-size:14px}.word:hover{background:var(--raised);border-color:var(--accent)}.word small{font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted)}.word.low{border-bottom-color:#937036}.word.low small{color:var(--warning)}.ctc-row,.selected-row{display:flex;align-items:baseline;gap:16px;padding:18px 0;font-size:13px;overflow-wrap:anywhere;border-top:1px solid var(--line)}.ctc-row>.section-label{min-width:34px}.decision{font-size:10px;color:var(--muted);margin-left:auto;white-space:nowrap;display:flex;align-items:center;gap:6px}.decision:before{content:'';width:4px;height:4px;background:var(--accent);border-radius:50%;flex-shrink:0}.decision.ctc-used{color:var(--accent)}.selected-row strong{font-weight:500}.details{border-top:1px solid var(--line)}summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;min-height:52px;font-size:12px;color:var(--muted)}summary::-webkit-details-marker{display:none}summary svg{width:16px;height:16px;transition:transform .15s}details[open]>summary svg{transform:rotate(180deg)}.detail-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;color:var(--faint);margin:4px 0 14px;font-variant-numeric:tabular-nums}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}th{color:var(--faint);font-weight:400;padding:10px 16px 10px 0;border-bottom:1px solid var(--line)}td{padding:12px 16px 12px 0;border-bottom:1px solid var(--line)}.raw-details{margin-top:8px}pre{background:var(--inset);border:1px solid var(--line);border-radius:8px;padding:16px;overflow:auto;max-height:520px;font:11px/1.6 ui-monospace,SFMono-Regular,monospace;color:#b6cbd3;margin:0 0 24px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.unlock-main{max-width:440px;margin:80px auto}.unlock-main h1{font-size:24px;font-weight:500;margin-bottom:28px}.unlock-main form{display:grid;gap:16px}.unlock-main label{font-size:12px;color:var(--muted)}.unlock-main input{font:inherit;height:48px;padding:12px 14px;background:var(--panel);border:1px solid #25434d;border-radius:8px;color:var(--ink)}.error{color:var(--danger);font-size:12px}
@media(max-width:700px){.topbar{height:66px;padding:0 20px}.brand{gap:14px}.brand span{padding-left:14px;font-size:12px}.brand img{width:126px;height:18px}main{margin-top:28px;padding:0 20px 40px}.audio-panel{padding:16px}.capture-row{gap:12px;flex-wrap:wrap}.record-button{width:54px;height:54px;box-shadow:none}.record-button svg{width:24px;height:24px}.player{height:72px;gap:10px;padding:0 12px}.upload-button{min-height:36px;width:100%;padding:8px;border-style:dashed}.upload-button svg{width:15px;height:15px}.audio-head{gap:12px;margin-bottom:14px}.wave-track{height:34px}.wave-track canvas{height:34px}.time{font-size:10px;gap:3px}.play-button{width:30px;height:30px}.model-row{margin-top:22px}.model-field{min-width:0;flex:1}.run-button{min-width:138px;padding:0 14px}.result-card{padding:20px 20px 0}.transcript{font-size:24px;margin:22px 0 16px}.result-actions .timing{font-size:10px;margin-right:4px}.ctc-row{gap:10px}.decision{font-size:9px}.clip-name{font-size:11px}.result-actions{gap:0}}
@media(max-width:380px){main{padding-left:14px;padding-right:14px}.player{padding:0 10px;gap:8px}.capture-row{gap:8px}.time{font-size:9px}.brand{gap:10px}.brand span{padding-left:10px}.run-button{min-width:126px}.result-card{padding-left:16px;padding-right:16px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}button:active:not(:disabled){transform:none}}
.grammar-panel{border-top:1px solid var(--line);padding:24px 0}.grammar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.grammar-badge{font-size:12px;color:var(--muted);padding:4px 10px;background:var(--inset);border-radius:6px}.grammar-badge.matched{color:var(--accent);background:rgb(83 196 236 / .08)}.grammar-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;max-width:540px}.grammar-controls label{min-width:0;color:var(--muted);font-size:12px}.grammar-controls select{margin-top:8px}.grammar-summary{color:var(--muted);font-size:12px;margin:16px 0;overflow-wrap:anywhere}.grammar-commands{list-style:none;padding:0;margin:0;display:grid;gap:8px}.grammar-commands li{padding:12px 16px;background:var(--inset);border-radius:8px;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere}.grammar-command-name{color:var(--accent);font-size:12px;font-weight:500}.grammar-command-text{font-size:14px}.grammar-entities{display:grid;grid-template-columns:minmax(90px,auto) minmax(0,1fr);gap:8px 20px;font-size:12px;overflow-wrap:anywhere}.grammar-entities dt{color:var(--muted)}.grammar-entities dd{margin:0}.grammar-details{margin-top:16px}.grammar-details summary{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;cursor:pointer;min-height:40px}.grammar-details summary svg{width:16px;height:16px}.grammar-details[open] summary svg{transform:rotate(180deg)}.grammar-call-sign-label{display:block;font-size:12px;margin-top:12px}.grammar-call-sign-label span{display:block;color:var(--muted);margin-top:4px}.grammar-details textarea{display:block;width:100%;resize:vertical;background:var(--inset);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:12px;font:13px/1.5 Inter,system-ui,sans-serif;margin:12px 0}.grammar-details textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.grammar-note,#grammar-check-state{color:var(--muted);font-size:12px}.grammar-note{margin:16px 0}.grammar-details pre{background:var(--inset);border-radius:8px;padding:16px;max-height:360px;overflow:auto;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}#grammar-check-state{margin-left:12px}@media(max-width:600px){.grammar-controls{grid-template-columns:minmax(0,1fr);gap:12px}.grammar-head{gap:8px}.grammar-entities{gap:8px 12px}}
.grammar-controls select{appearance:auto;padding-right:12px}
.recognition-output{margin-top:20px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.recognition-pane{padding:18px 20px;min-height:104px;background:var(--inset)}.recognition-pane+.recognition-pane{border-top:1px solid var(--line)}.recognition-pane h2{font-size:13px;font-weight:600;margin:0 0 12px}.recognition-pane .transcript{font-size:20px;margin:0;line-height:1.5}.interpretation-unavailable{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.mode-switch{display:inline-flex;gap:4px;padding:4px;margin-bottom:24px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.mode-switch button{min-height:42px;padding:8px 18px;border:0;border-radius:7px;background:none;color:var(--muted);font-weight:500}.mode-switch button[aria-pressed=true]{background:var(--raised);color:var(--accent)}.mode-switch button:hover{color:var(--ink)}.all-label{display:flex;gap:8px;align-items:center;min-height:46px;color:var(--muted);white-space:nowrap;font-size:12px}.all-label input{accent-color:var(--accent);width:18px;height:18px}.model-field{max-width:380px;flex:1}.mode-note,.timeline-note{font-size:12px;color:var(--muted);margin:12px 0;line-height:1.6}.live-panel,.timeline-panel{margin-top:24px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}h2{margin:4px 0;font-size:18px;font-weight:500}.comparison-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 12px;gap:12px}.comparison{table-layout:fixed;width:100%;border-collapse:collapse}.comparison th:nth-child(1){width:25%}.comparison th:nth-child(2){width:30%}.comparison th:nth-child(3){width:30%}.comparison th:nth-child(4){width:15%}.comparison th,.comparison td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.comparison td{font-size:12px}.comparison th{font-size:11px;color:var(--muted);font-weight:500}.comparison tr.active{background:var(--raised)}.comparison button{color:var(--accent);background:none;border:0;padding:0;min-height:40px;text-align:left;font:inherit;cursor:pointer}.comparison small{display:block;color:var(--muted);margin-top:4px}.result-card{margin-top:24px}.decoding-result{padding:20px 0;border-top:1px solid var(--line);margin-top:16px}.decoding-result p{font-size:22px;margin:12px 0;overflow-wrap:anywhere}.live-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;font-size:12px;margin:16px 0}.live-metrics div{padding-top:8px;border-top:1px solid var(--line)}.live-metrics dt{color:var(--muted);margin-bottom:4px}.live-metrics dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}.network{font-size:12px;color:var(--muted);text-align:right;max-width:220px}#timeline{display:block;width:100%;height:auto;margin:20px 0}#timeline text{fill:var(--muted);font:12px Inter,system-ui,sans-serif}#timeline .event-label{fill:var(--ink)}#timeline line{stroke:var(--line);stroke-width:2}#timeline .audio-end{stroke:var(--muted);stroke-dasharray:4 5;stroke-width:1}#timeline .event{stroke:var(--accent);stroke-width:3}#timeline circle{fill:var(--accent)}#raw,#asr-json{max-height:480px;overflow:auto;font:11px/1.5 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.transcript{overflow-wrap:anywhere}.streaming-flag{color:var(--accent)}[hidden]{display:none!important}@media(max-width:720px){main{padding:0 16px 40px;margin-top:24px}.topbar{padding:0 20px}.model-row{flex-wrap:wrap}.model-field{flex-basis:100%;max-width:none}.model-row .run-button{margin-left:auto}.comparison{min-width:680px}.capture-row{gap:10px}.audio-panel{padding:16px}.upload-button span{display:none}.live-metrics{grid-template-columns:1fr}.timeline-panel{padding:16px}.timeline-panel .result-head{display:block}.network{display:block;text-align:left;max-width:none;margin-top:10px}#timeline{min-height:160px}.live-panel .transcript{font-size:22px}.brand span{display:none}}

.live-metrics dd{overflow-wrap:anywhere}
#timeline text{stroke:none}
@media(max-width:720px){.comparison-head{flex-wrap:wrap}.comparison-head .upload-button{width:auto}}

.lexix-interpretation{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--ink)}.lexix-interpretation.is-empty{color:var(--muted)}.interpretation-note{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 0}

.transcript-controls{grid-template-columns:minmax(0,280px) auto;align-items:end;max-width:none;margin:16px 0}.transcript-controls .upload-button{min-height:46px;justify-self:start}.transcript-controls #grammar-check-state{grid-column:1/-1;margin:0}.adacel-output{padding:24px 0;border-top:1px solid var(--line)}.adacel-output h2{font-size:13px;font-weight:500;color:var(--muted);margin:0 0 16px}.adacel-output .lexix-interpretation{max-height:none;overflow:visible;margin:0;padding:20px;white-space:pre-wrap;overflow-wrap:anywhere}.comparison:not(.has-adacel) th:nth-child(3),.comparison:not(.has-adacel) td:nth-child(3){display:none}.comparison:not(.has-adacel) th:nth-child(2){width:60%}.comparison td strong{font-weight:500}.comparison .lexix-interpretation{font-size:11px;line-height:1.7;max-height:none;overflow:visible;margin:0;padding:0;background:none;border:0;white-space:pre-wrap;overflow-wrap:anywhere}.comparison td:nth-child(2){font-size:14px;line-height:1.6}.result-card>.transcript{margin:24px 0;line-height:1.5}.grammar-details{padding:0 0 16px}.grammar-details summary{min-height:48px}@media(max-width:600px){.transcript-controls{grid-template-columns:minmax(0,1fr)}.transcript-controls .upload-button{width:auto}.adacel-output .lexix-interpretation{padding:16px;font-size:12px}}

/* Quiet result view: actions, text, interpretation, then timing. */
.model-count{color:var(--faint);font-variant-numeric:tabular-nums}.comparison-head{justify-content:flex-end}.audio-head:has(.clip-name:empty){display:none}.result-head h1{margin:0;color:var(--muted)}.result-card>.transcript{margin-top:16px}.grammar-details{border-top:1px solid var(--line);padding-bottom:0;margin-top:0}.grammar-details[open]{padding-bottom:16px}.adacel-output{border-top:0;padding-top:0}.adacel-output h2{margin-bottom:12px}.timeline-panel .result-head h2{font-size:14px;margin:0}.timeline-panel>.live-metrics{margin-bottom:0}.timing-details{border-top:1px solid var(--line);margin-top:16px}.timeline-panel>#timeline{margin:16px 0}.live-panel .transcript{margin:0}.network{max-width:none}@media(max-width:720px){.timeline-panel .result-head{display:flex}.network{margin-top:0}#timeline{min-height:0}.model-row{margin-top:16px}.model-row .model-field{gap:0}}

/* Clock origins stay separate; all bars use the same duration scale. */
#timeline rect{stroke:none}#timeline .queue-fill{fill:var(--hover-line)}#timeline .request-fill{fill:var(--raised);stroke:var(--hover-line);stroke-width:1}#timeline .queue-marker{stroke:var(--muted);stroke-width:1}#timeline .model-fill{fill:var(--accent)}#timeline .grammar-fill{fill:var(--accent-hover)}#timeline .interpretation-fill{fill:var(--muted)}#timeline text{font-variant-numeric:tabular-nums}#live-metrics dd{line-height:1.6}@media(max-width:600px){#timeline text{font-size:10px}}

/* Nested duration flame graph; position groups cost, not synchronized clocks. */
.flame-graph{margin-top:20px}.flame-graph #timeline{margin:0}.flame-path{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-bottom:12px;min-height:44px;font-size:12px;color:var(--muted)}.flame-path button{min-height:44px;border:0;border-radius:4px;background:none;color:var(--accent);padding:8px;font:inherit}.flame-path button:hover{background:var(--raised)}.flame-path>span[aria-current]{color:var(--ink)}#timeline .flame-node{cursor:pointer;outline:none}#timeline .flame-node rect{fill:var(--raised);stroke:var(--page);stroke-width:2}#timeline .flame-queue rect,#timeline .flame-transport rect{fill:var(--hover-line)}#timeline .flame-request rect{fill:var(--line)}#timeline .flame-server rect,#timeline .flame-model-finish rect{fill:var(--accent)}#timeline .flame-grammar-finish rect{fill:var(--accent-hover)}#timeline .flame-interpretation rect{fill:var(--muted)}#timeline .flame-node text{fill:var(--ink);font-size:12px;pointer-events:none}#timeline .flame-server text,#timeline .flame-model-finish text,#timeline .flame-grammar-finish text,#timeline .flame-interpretation text{fill:var(--button-ink)}#timeline .flame-node .flame-name{font-weight:500}#timeline .flame-node:hover rect{filter:brightness(1.15)}#timeline .flame-node:focus-visible rect{stroke:var(--ink);stroke-width:2}.flame-small{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:4px}.flame-small:empty{display:none}.flame-small-node{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border:0;border-radius:4px;background:none;color:var(--muted);font-size:12px}.flame-small-node:before{content:'';width:8px;height:8px;background:var(--accent);border-radius:1px}.flame-small-node:hover{background:var(--raised);color:var(--ink)}.flame-note{font-size:11px;color:var(--muted);margin:8px 0 16px}
.flame-small-node.flame-grammar-finish:before{background:var(--accent-hover)}.flame-small-node.flame-interpretation:before{background:var(--muted)}.flame-small-node.flame-queue:before,.flame-small-node.flame-transport:before{background:var(--hover-line)}

/* Keep iOS long-press gestures local to the momentary microphone control. */
#record,#record *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#record{touch-action:none;-webkit-tap-highlight-color:transparent}
#record svg{pointer-events:none}
#record[aria-pressed=true]:not(.recording){background:var(--accent-hover);border-color:var(--accent-hover)}

.trace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;flex-wrap:wrap}.trace-toolbar p{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.trace-zoom{display:flex;gap:4px}.trace-zoom button{min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:none;color:var(--muted);font-size:12px}.trace-zoom button[aria-pressed=true]{background:var(--raised);color:var(--ink)}.trace-note{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0 0}.shared-timeline{overflow:visible}#timeline .trace-grid{stroke:var(--line);stroke-width:1}#timeline .trace-audio-end{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 4;opacity:.65}#timeline .trace-label{fill:var(--ink);font-size:12px}#timeline .trace-value{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}#timeline .trace-tick,#timeline .trace-end-label{fill:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}#timeline .trace-baseline{stroke:var(--line);stroke-width:1}#timeline .trace-span{fill:var(--accent);fill-opacity:.1;stroke:none}#timeline .trace-bar{fill:var(--accent);stroke:none}#timeline .trace-transport .trace-bar{fill:#708e98;fill-opacity:.65}#timeline .trace-recording .trace-bar{fill:#315762}#timeline .trace-event{fill:var(--ink);stroke:var(--panel);stroke-width:1}.result-card:has(#raw){padding-bottom:24px}.result-card:has(#raw)>.transcript{margin-bottom:20px}.adacel-output{padding-bottom:0}.adacel-output .lexix-interpretation{margin-bottom:0}@media(max-width:500px){#timeline .trace-label{font-size:11px}#timeline .trace-value{font-size:10px}.trace-toolbar{gap:10px}.trace-zoom button{min-height:44px}}

/* Collapse the recording interval on every row, with one marked scale break. */
#timeline .trace-fold-region{fill:var(--raised);fill-opacity:.45}#timeline .trace-fold-mask{fill:var(--panel)}#timeline .trace-fold-break{fill:none;stroke:var(--muted);stroke-width:1.25}#timeline .trace-axis-label{fill:var(--muted);font-size:10px}#timeline .trace-tick{font-size:10px}

#timeline .trace-queue .trace-bar{fill:var(--warning);fill-opacity:.75}

.setup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;font-size:12px;color:var(--muted,#9db0b7)}

.adacel-output .lexix-interpretation.is-empty,.comparison .lexix-interpretation.is-empty{color:var(--muted);font:13px/1.6 Inter,system-ui,sans-serif;background:none;border:0;padding:0}

.call-sign-panel{margin-top:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px}.call-sign-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.call-sign-head h2{margin:0;color:var(--muted);font-size:13px;font-weight:500}.call-sign-head h2 span{margin-left:8px;color:var(--faint);font-variant-numeric:tabular-nums}.call-sign-head input{width:min(100%,240px);height:44px;padding:8px 12px;color:var(--ink);background:var(--inset);border:1px solid var(--line);border-radius:8px;font-size:12px}.call-sign-list{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 24px;max-height:176px;overflow:auto;font-size:12px;line-height:1.6;color:var(--ink);scrollbar-color:var(--hover-line) transparent}.call-sign-list li{overflow-wrap:anywhere}#call-sign-state{margin:12px 0 0;color:var(--muted);font-size:12px}#call-sign-state:empty{display:none}.call-sign-list:empty{display:none}@media(max-width:600px){.call-sign-panel{padding:16px}.call-sign-head{align-items:flex-start;flex-direction:column;gap:12px}.call-sign-head input{width:100%}.call-sign-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}}
.setup-row{flex-wrap:wrap}.setup-row #setup-state{flex:1 1 180px;min-width:0}.setup-row #enable-mic{width:auto;max-width:100%;flex:0 0 auto}

.audio-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.audio-actions .upload-button{width:auto}.audio-actions .run-button{min-width:136px}.result-card>.result-head{justify-content:flex-end}.microphone-dialog{width:min(440px,90vw);margin:auto;padding:24px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.microphone-dialog::backdrop{background:rgb(0 8 12 / .85)}.microphone-dialog h2{margin:0 0 12px;font-size:20px;font-weight:500}.microphone-dialog p{margin:0 0 24px;font-size:13px;line-height:1.6;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px}.dialog-actions button{flex:1 1 150px;width:auto;min-width:0}.dialog-actions .upload-button{border-style:solid}@media(max-width:700px){.capture-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px}.capture-row>.audio-actions{grid-column:1/-1;width:100%;justify-content:stretch}.audio-actions .upload-button,.audio-actions .run-button{flex:1;min-width:0;width:auto}.audio-actions #upload span{display:inline}.audio-actions .run-button{padding:0 12px}}
.audio-actions>.upload-button,.audio-actions>.run-button{height:46px;min-height:46px}

.setup-row:has(#setup-state:empty){display:none}

/* One device-clock timeline. The recording bar and five event markers share an axis. */
.event-timeline{display:block;width:100%;height:auto;overflow:visible}.timeline-panel .result-head{align-items:center;flex-wrap:wrap;gap:12px}.timeline-panel #timeline{margin:16px 0}.timeline-panel .trace-zoom{margin-left:auto}#timeline .event-axis{stroke:var(--line);stroke-width:2}#timeline .event-audio{fill:#315762;stroke:none}#timeline .event-dot{fill:var(--accent);stroke:var(--panel);stroke-width:2}#timeline .milestone-audio .event-dot{fill:var(--panel);stroke:var(--ink);stroke-width:2}#timeline .event-leader{stroke:var(--hover-line);stroke-width:1;fill:none}#timeline .event-name{fill:var(--ink);font-size:12px;font-weight:500}#timeline .event-time{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}#timeline .event-break-mask{fill:var(--panel);stroke:none}#timeline .event-break{stroke:var(--muted);stroke-width:1.25;fill:none}.timing-work{display:flex;flex-wrap:wrap;gap:12px 28px;padding-top:16px;margin:0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.timing-work>div{display:flex;gap:8px;align-items:baseline}.timing-work dt{margin:0}.timing-work dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}@media(max-width:500px){.timing-work{gap:10px 20px;font-size:11px}.timeline-panel .trace-zoom button{font-size:11px;padding:6px 8px}}

.model-note{max-width:76ch;font-size:13px;line-height:1.6;color:var(--muted);margin:12px 0 0}.model-note a{color:inherit;text-decoration:underline;text-underline-offset:3px}.model-note a:hover{color:var(--accent-hover)}.model-row{margin-top:24px}.result-card .result-head{gap:8px}

/* Keep selection with its audio controls; place guidance in one native dialog. */
.header-actions{display:flex;align-items:center;gap:12px}.help-button{min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:none;color:var(--muted)}.help-button:hover{background:var(--raised);color:var(--ink)}
.audio-panel>.model-row{margin:0}.audio-panel .model-field{width:100%;max-width:none}.audio-panel .select-wrap{width:100%;max-width:none}.audio-panel #model{width:100%;max-width:none;font-size:15px;min-height:48px}.audio-panel>.model-note{margin:12px 0 20px}.audio-panel .audio-head:has(.clip-name:empty){min-height:0;margin:0}.audio-panel .audio-head:has(.clip-name:not(:empty)){padding-top:4px}
.help-dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:24px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.help-dialog::backdrop{background:rgb(0 8 12 / .85)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-head h2{margin:0;font-size:20px;font-weight:500}.dialog-head .icon-button{font-size:26px}.help-dialog>p{font-size:13px;line-height:1.6;color:var(--muted);margin:16px 0}.help-dialog .call-sign-panel{border:0;background:none;padding:20px 0 0;margin:20px 0 0;border-top:1px solid var(--line);border-radius:0}.help-dialog .call-sign-list{max-height:260px}.lexix-interpretation{tab-size:2}
@media(max-width:500px){.header-actions{gap:6px}.help-button{padding:6px 10px}.audio-panel #model{font-size:14px}.help-dialog{padding:16px}.help-dialog .call-sign-list{max-height:220px}}

/* Interpretation syntax: source tags, spoken/enum values and brackets. */
.lexix-interpretation .lexix-tag{color:#87d6f2}.lexix-interpretation .lexix-value{color:#decba7}.lexix-interpretation .lexix-punctuation{color:#91a8b1}
@media(forced-colors:active){.lexix-interpretation .lexix-tag,.lexix-interpretation .lexix-value,.lexix-interpretation .lexix-punctuation{color:CanvasText}}

/* Full-width speech workspace. Record or upload, then inspect the same audio. */
main{width:100%;max-width:none;margin:32px 0 0;padding:0 32px 48px}
.topbar{padding:0 32px}
.model-note{max-width:none}
.input-choices{display:flex;align-items:center;gap:16px;flex-shrink:0}
.input-separator{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:12px}
.input-separator::before,.input-separator::after{content:'';display:block;width:1px;height:20px;background:var(--line)}
.input-choices .upload-button{width:52px;height:52px;padding:0}
.input-choices .upload-button svg{width:22px;height:22px}
.audio-actions .run-button,.audio-actions .upload-button{width:52px;min-width:52px;height:52px;min-height:52px;padding:0}
.audio-actions .run-button svg{width:24px;height:24px}
#help{width:44px;height:44px}
#help svg{width:23px;height:23px}
.result-card>.transcript{margin-top:0}
button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:700px){
  main{padding:0 16px 32px;margin-top:20px}.topbar{padding:0 20px}
  .capture-row{grid-template-columns:minmax(0,1fr) auto;gap:16px 12px}
  .input-choices{grid-column:1/-1;justify-content:center;gap:20px}
  .capture-row>.audio-actions{grid-column:auto;width:auto;justify-content:flex-end}
  .audio-actions .run-button,.audio-actions .upload-button{flex:none;width:48px;min-width:48px;padding:0}
  .player{height:72px;padding:0 12px;gap:10px}
  .record-button{width:60px;height:60px}
}

/* Uploads begin recognition automatically. No second submit action. */
.audio-actions:has(#cancel[hidden]){display:none}
.play-button{width:44px;height:44px;min-width:44px}
@media(max-width:700px){.capture-row:not(:has(#cancel:not([hidden]))){grid-template-columns:minmax(0,1fr)}}

/* Keep model and execution in the same input panel. */
.model-row{display:flex;align-items:center;gap:24px}.model-row>.model-field{flex:1;min-width:0}.execution-field{display:flex;align-items:center;gap:12px;flex:0 0 auto}.execution-field label{color:var(--muted);font-size:12px;white-space:nowrap}.execution-field select{min-height:48px;width:250px;padding:0 36px 0 14px;color:var(--ink);background:var(--inset);border:1px solid var(--line);border-radius:8px;font:13px Inter,system-ui,sans-serif}.audio-panel .execution-field .select-wrap{width:250px}@media(max-width:700px){.model-row{align-items:stretch;flex-direction:column;gap:12px}.execution-field{justify-content:space-between}.audio-panel .execution-field .select-wrap{flex:1;min-width:0;max-width:280px}.execution-field select{width:100%}}
