.dictation{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:root .app-shell .dictation-button{width:38px;height:38px;color:var(--text);background:0 0;border-radius:50%;position:relative}:root .app-shell .dictation-button:after{content:"";border:1.5px solid var(--text);opacity:0;pointer-events:none;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out);border-radius:50%;position:absolute;inset:-4px;transform:scale(.82)}:root .app-shell .dictation-button[aria-pressed=true]{background:var(--text);color:var(--bg)}:root .app-shell .dictation-button[aria-pressed=true]:after{opacity:.35;transform:scale(1)}:root .app-shell .dictation-button[aria-disabled=true]{cursor:progress;opacity:.55}:root .app-shell .dictation-button:disabled{color:var(--soft);opacity:.5}:root .app-shell .dictation-button:focus-visible{outline:2px solid var(--text);outline-offset:3px}@media (hover:hover) and (pointer:fine){:root .app-shell .dictation-button:not([aria-pressed=true]):not(:disabled):hover{background:var(--hover)}}.dictation-live{color:var(--text);animation:dictation-in .22s var(--ease-out);align-items:center;gap:8px;display:inline-flex}.voice-wave{width:88px;height:26px;color:var(--text);display:block}.dictation-dot{background:var(--text);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite dictation-blink}.dictation-time{font-variant-numeric:tabular-nums;color:var(--muted);min-width:28px;font-size:12px;line-height:1}.dictation-load{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;animation:dictation-in .22s var(--ease-out);font-size:12px;line-height:1}:root .app-shell .dictation[data-state=recording] .dictation-button:after{animation:dictation-ring 1.6s var(--ease-out) infinite}:root .app-shell .dictation[data-state=starting] .dictation-button:after{opacity:.25;border-style:dashed;animation:2.4s linear infinite dictation-spin;transform:scale(1)}@keyframes dictation-ring{0%{opacity:.4;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@keyframes dictation-spin{to{transform:rotate(1turn)}}@keyframes dictation-blink{50%{opacity:.3}}@keyframes dictation-in{0%{opacity:0;transform:translate(4px)}}.project-composer .dictation-button{width:36px;height:36px}@media (max-width:760px){:root .app-shell .dictation-button,:root .app-shell .project-composer .dictation-button{width:44px;height:44px}.voice-wave{width:56px}.dictation-load{text-overflow:ellipsis;max-width:120px;overflow:hidden}.dictation{gap:4px}}@media (prefers-reduced-motion:reduce){:root .app-shell .dictation-button:after{transition:none}.dictation-live,.dictation-load,.dictation-dot,:root .app-shell .dictation[data-state] .dictation-button:after{animation:none}}.dictation-cancel{display:none}:root .app-shell .dictation:not([data-state=idle]) .dictation-cancel{width:40px;height:40px;color:var(--muted);background:0 0;border-radius:50%;flex-shrink:0;order:-1;place-items:center;display:inline-grid}@media (hover:hover) and (pointer:fine){:root .app-shell .dictation-cancel:hover{background:var(--hover);color:var(--text)}}.dictation-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--muted);animation:dictation-in .22s var(--ease-out);flex:1;font-size:14px;line-height:1.3;overflow:hidden}.dictation-thinking{background:linear-gradient(90deg,var(--muted) 30%,var(--text) 50%,var(--muted) 70%) 0 0/200% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;animation:1.6s linear infinite dictation-shimmer}@keyframes dictation-shimmer{to{background-position:-200% 0}}:root .app-shell .dictation[data-sends][data-state=recording] .dictation-button{background:var(--text);color:var(--bg)}:root .app-shell .dictation[data-sends][data-state=recording] .dictation-button:after{opacity:0;animation:none}:root:root .app-shell .composer:has(.dictation:not([data-state=idle]))>:is(textarea,.composer-add){display:none}:root:root .app-shell .composer:has(.dictation:not([data-state=idle])) .composer-right{grid-area:1/1/auto/-1;place-self:center stretch;width:100%;min-width:0;display:flex}:root:root .app-shell .composer:has(.dictation:not([data-state=idle])) .composer-right>:not(.dictation){display:none}:root .app-shell .dictation:not([data-state=idle]){flex:1;gap:8px;min-width:0}:root .app-shell .dictation:not([data-state=idle]) .dictation-live{flex:1;gap:12px;min-width:0}:root .app-shell .dictation:not([data-state=idle]) .voice-wave{flex:1;width:auto;min-width:0;height:30px}:root .app-shell .dictation:not([data-state=idle]) .dictation-time{color:var(--text);font-size:13px}:root .app-shell .project-composer:has(.dictation:not([data-state=idle])) .project-send{display:none}@media (prefers-reduced-motion:reduce){.dictation-thinking{color:var(--muted);background:0 0;animation:none}}:root[data-motion=reduced] .dictation-thinking{color:var(--muted);background:0 0;animation:none}
