:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-pill:999px;--color-bg:#0F172A;--color-surface:#182235;--color-surface-elevated:#202D42;--color-text:#F8FAFC;--color-secondary:#A8B3C7;--color-border:#344258;--color-accent:#5B5FEA;--color-accent-pressed:#4F46E5;--color-listening:#34D399;--color-thinking:#FBBF24;--color-speaking:#A78BFA;--color-danger:#FDA4AF;--color-focus:#C7D2FE;--app-viewport-height:100svh;--app-viewport-offset-top:0px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;color:var(--color-text);background:var(--color-bg)}@supports (height:100dvh){:root{--app-viewport-height:100dvh}}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--color-bg)}body{margin:0}button,input{font:inherit}button{touch-action:manipulation}button:focus-visible,input:focus-visible{outline:none;box-shadow:0 0 0 3px #c7d2fe8c}.app-shell{position:fixed;top:var(--app-viewport-offset-top);left:50%;transform:translate(-50%);width:min(100%,480px);height:var(--app-viewport-height);min-height:0;overflow:hidden;display:grid;grid-template-rows:36px minmax(0,1fr) auto auto;gap:12px;padding:max(var(--space-3),env(safe-area-inset-top)) var(--space-4) max(var(--space-2),env(safe-area-inset-bottom))}.app-header{height:36px;display:flex;align-items:center;gap:var(--space-2);min-width:0}.app-header b{font-size:17px;line-height:22px;font-weight:650}.state-status{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-secondary);font-size:13px;line-height:18px;font-weight:500}.state-icon{width:10px;height:10px;flex:none;border-radius:50%;background:var(--color-secondary)}.state-icon[data-active=true][data-state=listening]{background:var(--color-listening);animation:listen-pulse 1.2s steps(2,end) infinite}.state-icon[data-state=thinking]{background:var(--color-thinking)}.state-icon[data-state=speaking]{background:var(--color-speaking)}.hearing-bars{display:inline-flex;align-items:center;gap:2px;width:18px;height:18px;flex:none;color:var(--color-listening)}.hearing-bars i{display:block;width:4px;height:7px;border-radius:var(--radius-pill);background:currentColor;animation:hearing-wave .72s ease-in-out infinite}.hearing-bars i:nth-child(2){animation-delay:.12s}.hearing-bars i:nth-child(3){animation-delay:.24s}.transcript{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-size:16px;line-height:23px}.empty-state{margin:0;color:var(--color-secondary)}.message{display:flex;flex-direction:column;gap:var(--space-1);margin:0 0 var(--space-3);opacity:.88}.message:last-of-type{opacity:1}.speaker{font-size:12px;line-height:16px;font-weight:600;color:var(--color-secondary)}.message p{margin:0}.message-user{align-items:flex-end}.message-user .speaker{width:82%;text-align:right}.message-user p{width:fit-content;max-width:82%;padding:8px 10px;border-radius:var(--radius-md);background:var(--color-surface-elevated)}.message-assistant{align-items:flex-start}.message-assistant p{width:100%}.message-tool p{color:var(--color-secondary);font-size:14px;line-height:20px}.live-caption{position:sticky;bottom:0;margin:var(--space-2) 0 0;padding:6px 10px;border:1px solid color-mix(in srgb,var(--color-listening) 55%,var(--color-border));border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text);box-shadow:0 4px 14px #00000047;font-size:14px;line-height:20px;font-weight:500}.error{color:var(--color-danger);font-size:13px;line-height:18px}.text-composer{height:48px;display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--space-2)}.call-toggle,.text-composer button,.login button{border:0;cursor:pointer}.call-toggle{width:44px;height:44px;align-self:center;display:grid;place-items:center;border-radius:50%;background:var(--color-surface-elevated);color:var(--color-text)}.call-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.call-toggle.is-active{background:#be123c;color:#fff1f2}.call-toggle:active{background:var(--color-accent-pressed)}.call-toggle.is-active:active{background:#9f1239}.composer-input{position:relative;min-width:0;height:48px}.composer-input input{width:100%;height:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 48px 0 14px;background:var(--color-surface);color:var(--color-text);font-size:16px;line-height:22px}.composer-input input::placeholder{color:var(--color-secondary)}.composer-input button{position:absolute;right:0;top:0;width:44px;height:48px;border-radius:0 var(--radius-md) var(--radius-md) 0;background:transparent;color:var(--color-accent);font-size:20px;line-height:1;font-weight:650}.composer-input button:disabled{color:var(--color-secondary);opacity:.55}.login{min-height:100%;display:grid;place-items:center;padding:max(var(--space-4),env(safe-area-inset-top)) var(--space-4) max(var(--space-4),env(safe-area-inset-bottom))}.login form{width:min(100%,400px);display:flex;flex-direction:column;gap:14px;padding:26px;border-radius:var(--radius-lg);background:var(--color-surface)}.login h1,.login p{margin:0}.login p{color:var(--color-secondary)}.login input{height:48px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 14px;background:var(--color-bg);color:var(--color-text);font-size:16px}.login button{min-height:44px;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-text);font-size:16px;font-weight:650}.login small{color:var(--color-danger)}@keyframes listen-pulse{50%{opacity:.55}}@keyframes hearing-wave{50%{height:14px;opacity:.72}}:root{--app-safe-area-bottom:env(safe-area-inset-bottom)}.app-shell{padding-bottom:max(var(--space-2),var(--app-safe-area-bottom))}@media(max-height:700px){.app-shell{grid-template-rows:32px minmax(0,1fr) auto auto;gap:var(--space-2);padding-inline:var(--space-3)}.app-header{height:32px}.transcript{padding:var(--space-3)}.text-composer,.composer-input,.composer-input button{height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}.hearing-bars i{animation:none!important}}
