:root,[data-theme=dark]{--color-bg:#0b0d0c;--color-surface:#151817;--color-surface-2:#1f2321;--color-text:#eef2ee;--color-muted:#9ba49e;--color-primary:#5ce88a;--color-primary-text:#05130a;--color-primary-soft:#163324;--color-user:var(--color-primary-soft);--color-tony:var(--color-surface);--color-border:#262b28;--color-ok:var(--color-primary);--color-warn:#f2b84b;--color-error:#ff7b6e;--color-focus:var(--color-primary);--shadow-sheet:0 -6px 24px #0000008c;--shadow-toast:0 8px 24px #0009;--shadow-orb:0 0 0 12px #5ce88a29}[data-theme=light]{--color-bg:#f4f6f3;--color-surface:#fff;--color-surface-2:#e8ede8;--color-text:#161a17;--color-muted:#5b635d;--color-primary:#0d6f38;--color-primary-text:#fff;--color-primary-soft:#daf3e1;--color-user:var(--color-primary-soft);--color-tony:var(--color-surface);--color-border:#d9e0da;--color-ok:var(--color-primary);--color-warn:#9c5500;--color-error:#c0362c;--color-focus:var(--color-primary);--shadow-sheet:0 -6px 24px #161a170f;--shadow-toast:0 8px 24px #161a1729;--shadow-orb:0 0 0 12px #0d6f381f}[data-theme=g2]{--color-bg:#000;--color-surface:#000;--color-surface-2:#0a2a12;--color-text:#4dff7c;--color-muted:#2fa352;--color-primary:#4dff7c;--color-primary-text:#000;--color-primary-soft:#103d1c;--color-user:var(--color-primary-soft);--color-tony:var(--color-surface);--color-border:#1f6b34;--color-ok:var(--color-primary);--color-warn:#8fd9a5;--color-error:#e6ffe9;--color-focus:var(--color-primary);--shadow-sheet:none;--shadow-toast:none;--shadow-orb:none}[data-theme=light-code]{--color-bg:#f5f7fa;--color-surface:#fff;--color-surface-2:#fff;--color-text:#1b1f24;--color-muted:#5c6670;--color-primary:#1f4e79;--color-primary-text:#fff;--color-primary-soft:#dbe8f5;--color-user:#dbe8f5;--color-tony:#fff;--color-border:#d6dbe1;--color-ok:#2e7d32;--color-warn:#b26a00;--color-error:#b3261e;--color-focus:#7fb3e6;--shadow-sheet:none;--shadow-toast:0 4px 12px #0003;--shadow-orb:none}[data-theme=dark-code]{--color-bg:#121821;--color-surface:#1a222e;--color-surface-2:#1a222e;--color-text:#e6ebf0;--color-muted:#9aa5b1;--color-primary:#7fb3e6;--color-primary-text:#0f1a26;--color-primary-soft:#24405c;--color-user:#24405c;--color-tony:#1a222e;--color-border:#2c3945;--color-ok:#6fcf7a;--color-warn:#e0a04a;--color-error:#f28b82;--color-focus:#7fb3e6;--shadow-sheet:none;--shadow-toast:0 4px 12px #0009;--shadow-orb:none}:root{--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-48:48px;--space-6:6px;--space-10:10px;--space-14:14px;--radius:18px;--radius-control:12px;--radius-sheet:24px;--radius-logo:22px;--radius-pill:999px;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.36s;--duration-breathe:1.8s;--duration-pulse:.9s;--easing-standard:cubic-bezier(.2, 0, 0, 1);--easing-enter:cubic-bezier(0, 0, .2, 1);--easing-exit:cubic-bezier(.4, 0, 1, 1);--easing-breathe:cubic-bezier(.45, 0, .55, 1);--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}.display{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);letter-spacing:-.02em;font-size:32px;font-weight:600;line-height:1.15}.heading{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);letter-spacing:-.01em;font-size:20px;font-weight:600;line-height:1.3}.body-lg{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:18px;font-weight:400;line-height:1.45}.label{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:14px;font-weight:500;line-height:1.3}.glass-line{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:28px;font-weight:500;line-height:1.3}.glass-text{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:22px;font-weight:400;line-height:1.35}.glass-meta{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:18px;font-weight:400;line-height:1.3}.body{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:16px;font-weight:400;line-height:1.45}.title{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:1.2rem;font-weight:700;line-height:1.4}.chip{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:.85rem;font-weight:400;line-height:1.4}.status{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:13px;font-weight:400;line-height:1.4}.caption{font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:12px;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans,system-ui, sans-serif);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.45}.screen{height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.screen--center{text-align:center;padding-left:var(--space-24);padding-right:var(--space-24);justify-content:center;align-items:center}.signin h1{margin:var(--space-16) 0 var(--space-4);letter-spacing:-.02em;font-size:32px;font-weight:600;line-height:1.15}.signin p{max-width:28rem;margin:0 0 var(--space-24);color:var(--color-muted)}.signin__logo{border-radius:var(--radius-logo)}.signin__error{color:var(--color-error)}.button{font:inherit;padding:var(--space-8) var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-height:44px;transition:background var(--duration-fast) var(--easing-standard), transform var(--duration-fast) var(--easing-standard);font-size:14px;font-weight:500;line-height:1.3}.button:active{background:var(--color-surface-2);transform:scale(.98)}.button:disabled{opacity:.5;cursor:default;transform:none}.button--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.button--small{min-height:36px;padding:var(--space-4) var(--space-12)}.button:focus-visible,.composer__input:focus-visible,.chip__dismiss:focus-visible,.mic:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.header{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-bg);display:flex}.header__title{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600;line-height:1.3}.header__actions{gap:var(--space-8);display:flex}.conversation{padding:var(--space-8) var(--space-16) var(--space-16);gap:var(--space-16);overscroll-behavior:contain;flex-direction:column;flex:1;margin:0;list-style:none;display:flex;overflow-y:auto}.conversation__empty{color:var(--color-muted);text-align:center;margin:auto}.utterance{max-width:85%;padding:var(--space-8) var(--space-12);border-radius:var(--radius);background:var(--color-tony);align-self:flex-start}.utterance--user{background:var(--color-user);align-self:flex-end}.utterance--user+.utterance--user,.utterance--tony+.utterance--tony{margin-top:calc(var(--space-8) - var(--space-16))}.utterance--current .utterance__text{font-size:18px;line-height:1.45}.utterance--pending{opacity:.6}.utterance__text{white-space:pre-wrap;word-break:break-word;margin:0}.utterance__caption{margin:var(--space-4) 0 0;color:var(--color-muted);font-size:12px}.chips{gap:var(--space-8);padding:0 var(--space-16) var(--space-8);flex-wrap:wrap;margin:0;list-style:none;display:flex}.chip{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-12);border-radius:var(--radius-pill);background:var(--color-surface-2);min-height:32px;animation:chip-in var(--duration-base) var(--easing-enter);font-size:14px;font-weight:500;line-height:1.3;display:inline-flex}.chip:before{content:"";border-radius:var(--radius-pill);background:var(--color-muted);width:8px;height:8px;margin-right:var(--space-4);flex:none}.chip--queued,.chip--running,.chip--waiting_for_user{color:var(--color-warn)}.chip--queued:before,.chip--running:before,.chip--waiting_for_user:before{background:var(--color-warn)}.chip--running:before{animation:pulse var(--duration-pulse) var(--easing-breathe) infinite alternate}.chip--done{color:var(--color-ok)}.chip--done:before{background:var(--color-ok)}.chip--failed,.chip--cancelled{color:var(--color-error)}.chip--failed:before,.chip--cancelled:before{background:var(--color-error)}.chip__dismiss{font:inherit;color:var(--color-muted);cursor:pointer;padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);background:0 0;border:none;min-width:28px;min-height:24px;font-size:16px;line-height:1}.status{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-16);color:var(--color-muted);background:var(--color-bg);font-size:13px;display:flex}.status>span:before{content:"";border-radius:var(--radius-pill);width:8px;height:8px;margin-right:var(--space-8);vertical-align:1px;background:currentColor;display:inline-block}.status--open{color:var(--color-ok)}.status--closed,.status--notice{color:var(--color-warn)}.composer{align-items:flex-end;gap:var(--space-12);padding:var(--space-12) var(--space-16) var(--space-16);background:var(--color-surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-sheet);display:flex}.composer__input{font:inherit;padding:var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-2);color:var(--color-text);resize:none;flex:1;min-height:44px;max-height:120px}.composer__input::placeholder{color:var(--color-muted)}.composer__input:disabled{opacity:.5}.mic{border-radius:var(--radius-pill);background:var(--color-primary);width:44px;height:44px;color:var(--color-primary-text);cursor:pointer;transition:background var(--duration-base) var(--easing-standard), box-shadow var(--duration-base) var(--easing-standard), transform var(--duration-fast) var(--easing-standard);border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.mic:active{transform:scale(.96)}.mic svg{fill:currentColor;width:20px;height:20px}.mic--listening{background:var(--color-primary-soft);color:var(--color-primary);box-shadow:var(--shadow-orb);animation:breathe var(--duration-breathe) var(--easing-breathe) infinite alternate}.mic--large{width:72px;height:72px}.mic--large svg{width:28px;height:28px}.mic:disabled{opacity:.5;cursor:default;box-shadow:none;animation:none}.voice{align-items:center;gap:var(--space-24);flex-direction:column;display:flex}.orb{border-radius:var(--radius-pill);background:var(--color-primary);width:96px;height:96px;box-shadow:var(--shadow-orb);transition:background var(--duration-base) var(--easing-standard), transform var(--duration-base) var(--easing-standard)}.orb--idle{background:var(--color-surface-2);box-shadow:none}.orb--listening{animation:breathe var(--duration-breathe) var(--easing-breathe) infinite alternate}.orb--thinking{background:var(--color-primary-soft);animation:pulse var(--duration-pulse) var(--easing-breathe) infinite alternate}.orb--speaking{animation:speak calc(var(--duration-pulse) / 2) var(--easing-breathe) infinite alternate}.voice__word{color:var(--color-muted);margin:0;font-size:14px;font-weight:500;line-height:1.3}.voice__text{text-align:center;max-width:28rem;margin:0;font-size:18px;line-height:1.45}.toasts{left:var(--space-16);right:var(--space-16);bottom:calc(96px + env(safe-area-inset-bottom));gap:var(--space-8);z-index:10;flex-direction:column;display:flex;position:fixed}.toast{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-16);border-radius:var(--radius-control);background:var(--color-error);color:var(--color-primary-text);box-shadow:var(--shadow-toast);animation:toast-in var(--duration-base) var(--easing-enter);display:flex}.toast .chip__dismiss{color:var(--color-primary-text)}@keyframes breathe{0%{transform:scale(1)}to{transform:scale(1.08)}}@keyframes pulse{0%{opacity:.55}to{opacity:1}}@keyframes speak{0%{transform:scale(.96)}to{transform:scale(1.04)}}@keyframes chip-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.chip,.toast,.orb,.mic--listening,.chip--running:before{animation:none}}@media (width>=720px){.screen--main{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);background:var(--color-bg);max-width:760px;margin:0 auto}}.glass{background:var(--color-bg);width:640px;height:350px;color:var(--color-text);font-family:var(--font-sans,system-ui, sans-serif);flex-direction:column;justify-content:space-between;padding:24px 32px;display:flex}.glass__meta{color:var(--color-muted);justify-content:space-between;margin:0;font-size:18px;line-height:1.3;display:flex}.glass__line{margin:0;font-size:28px;font-weight:500;line-height:1.3}.glass__text{max-height:6.75em;margin:0;font-size:22px;line-height:1.35;overflow:hidden}.glass__state{color:var(--color-muted);align-items:center;gap:12px;font-size:18px;display:flex}.glass__state:before{content:"";border-radius:var(--radius-pill);background:var(--color-primary);width:12px;height:12px}.glass__state--listening:before{animation:pulse var(--duration-pulse) var(--easing-breathe) infinite alternate}.glass__chips{color:var(--color-muted);gap:16px;margin:0;padding:0;font-size:18px;list-style:none;display:flex}.glass__chips li:before{content:"· "}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.screen{min-height:100dvh}.header__mark{flex:none;width:28px;height:28px}.header__title{margin-right:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.utterance__delivery{align-items:center;gap:var(--space-8);margin-top:var(--space-8);color:var(--color-error);flex-wrap:wrap;display:flex}.utterance__delivery>span:before{content:"";border-radius:var(--radius-pill);width:8px;height:8px;margin-right:var(--space-8);vertical-align:1px;background:currentColor;display:inline-block}.mic{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.voice-panel{padding:var(--space-16);background:var(--color-surface)}
