:root{--color-primary:#000;--color-secondary:#555;--color-tertiary:#000;--color-neutral:#fff;--color-surface:#fff;--color-danger:#b91c1c;--color-muted:var(--color-secondary);--font-display:"JetBrains Mono", ui-monospace, monospace;--font-body:"JetBrains Mono", ui-monospace, monospace;--font-mono:"JetBrains Mono", ui-monospace, monospace;--tracking-ui:.08em;--tracking-tab:.1em;--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-10:80px;--border-width:2px;--border:var(--border-width) solid var(--color-primary);--level-0:none;--level-1:2px 2px 0 0 var(--color-primary);--level-2:4px 4px 0 0 var(--color-primary);--level-3:6px 6px 0 0 var(--color-primary);--level-4:8px 8px 0 0 var(--color-primary);--level-error:4px 4px 0 0 var(--color-danger);--duration-fast:.14s;--duration-base:.2s;--easing:cubic-bezier(.22, 1, .36, 1);font:400 16px/1.55 var(--font-body);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-primary);background:var(--color-surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:15px}}:root[data-theme=dark]{--color-primary:#fff;--color-tertiary:#fff;--color-neutral:#000;--color-surface:#000;--color-muted:color-mix(in srgb, var(--color-primary) 66%, var(--color-surface));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--color-surface);min-height:100svh;color:var(--color-primary);margin:0}#root{flex-direction:column;min-height:100svh;display:flex}::selection{background:var(--color-primary);color:var(--color-neutral)}:focus-visible{outline:var(--border-width) solid var(--color-primary);outline-offset:3px}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-primary);margin:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.btn{justify-content:center;align-items:center;gap:var(--space-1);font-family:var(--font-body);text-transform:uppercase;letter-spacing:var(--tracking-ui);border-radius:var(--radius-md);cursor:pointer;transition:box-shadow var(--duration-base) var(--easing), background-color var(--duration-fast) var(--easing), color var(--duration-fast) var(--easing), border-color var(--duration-fast) var(--easing);flex-shrink:0;font-size:.8125rem;font-weight:700;line-height:1;display:inline-flex}.btn:disabled{opacity:.4;filter:grayscale(.4);cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-neutral);border:var(--border);padding:12px 24px}.btn--secondary{background:var(--color-surface);color:var(--color-primary);border:var(--border);padding:12px 24px}.btn--outline{color:var(--color-primary);border:var(--border-width) dashed var(--color-primary);background:0 0;padding:12px 24px}.btn--ghost{color:var(--color-primary);background:0 0;border:none;padding:10px 0}.btn--primary:hover:not(:disabled),.btn--secondary:hover:not(:disabled){box-shadow:var(--level-2)}.btn--primary:active:not(:disabled),.btn--secondary:active:not(:disabled){box-shadow:var(--level-0)}.btn--ghost:hover:not(:disabled){text-underline-offset:3px;text-decoration:underline}.btn.is-selected,.btn.is-selected:hover:not(:disabled){background:var(--color-primary);color:var(--color-neutral);border-color:var(--color-primary)}.btn--icon{width:44px;height:44px;padding:0}.btn--icon svg{flex-shrink:0;width:20px;height:20px}.crash{gap:var(--space-2);max-width:52ch;margin:var(--space-10) auto;padding:var(--space-3);border:var(--border-width) solid var(--color-danger);box-shadow:var(--level-error);background:var(--color-surface);color:var(--color-primary);flex-direction:column;align-items:flex-start;display:flex}.crash__title{color:var(--color-danger);font-family:var(--font-display);letter-spacing:var(--tracking-ui);text-transform:uppercase;margin:0;font-size:1.25rem}.crash__body{margin:0;font-size:.875rem;line-height:1.6}.pulse-blocks{gap:var(--space-1);display:flex}.pulse-blocks i{border:var(--border);background:var(--color-surface);width:12px;height:12px;animation:.9s step-end infinite pulse-block}.pulse-blocks i:nth-child(2){animation-delay:.3s}.pulse-blocks i:nth-child(3){animation-delay:.6s}@keyframes pulse-block{0%,33%{background:var(--color-primary)}34%,to{background:var(--color-surface)}}@media (prefers-reduced-motion:reduce){.pulse-blocks i{background:var(--color-primary)}}.backend-gate{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2);text-align:center;flex-direction:column;flex:1;display:flex}.backend-gate__title{font-family:var(--font-display);letter-spacing:var(--tracking-ui);text-transform:uppercase;margin:0;font-size:1rem}.backend-gate__body{max-width:42ch;color:var(--color-muted);margin:0;font-size:.875rem;line-height:1.6}.backend-gate__elapsed{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tab);color:var(--color-muted);margin:0;font-size:.875rem}.auth-gate{flex-direction:column;flex:1;min-height:0;display:flex}.auth-restoring{flex:1;justify-content:center;align-items:center;display:flex}.auth{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-2);text-align:center;flex-direction:column;flex:1;display:flex}.auth .mark{width:32px;height:32px;color:var(--color-primary)}.auth h1{text-transform:uppercase;letter-spacing:var(--tracking-ui);margin:0;font-size:1.25rem;font-weight:800;line-height:1}.auth__form{gap:var(--space-2);text-align:left;flex-direction:column;width:100%;max-width:340px;display:flex}.auth__field{gap:var(--space-1);flex-direction:column;display:flex}.auth__field>span{text-transform:uppercase;letter-spacing:var(--tracking-tab);font-size:.6875rem;font-weight:700}.auth__field input{border:var(--border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-primary);font-family:var(--font-body);transition:box-shadow var(--duration-base) var(--easing), border-color var(--duration-fast) var(--easing);padding:12px;font-size:.875rem;line-height:1.4}.auth__field input:focus,.auth__field input:focus-visible{box-shadow:var(--level-2);outline:none}.auth__field input:disabled{opacity:.4;cursor:not-allowed}.auth__field small{color:var(--color-muted);letter-spacing:var(--tracking-ui);font-size:.6875rem}.auth__error{padding:var(--space-1);border:var(--border-width) solid var(--color-danger);color:var(--color-danger);margin:0;font-size:.75rem;line-height:1.5}.auth__switch{color:var(--color-muted);font-family:var(--font-body);text-transform:uppercase;letter-spacing:var(--tracking-ui);text-underline-offset:3px;cursor:pointer;transition:color var(--duration-fast) var(--easing);background:0 0;border:none;padding:0;font-size:.6875rem;text-decoration:underline}.auth__switch:hover:not(:disabled){color:var(--color-primary)}.auth__switch:disabled{opacity:.4;cursor:not-allowed}.header__email{color:var(--color-muted);letter-spacing:var(--tracking-ui);text-overflow:ellipsis;white-space:nowrap;max-width:14ch;font-size:.6875rem;overflow:hidden}.shell{width:100%;height:100svh;display:flex}.app{background:var(--color-surface);flex-direction:column;flex:1;min-width:0;max-width:760px;height:100svh;margin:0 auto;display:flex;overflow:hidden}.sidebar{border-right:var(--border);background:var(--color-surface);flex-direction:column;flex-shrink:0;width:240px;height:100%;display:flex;overflow:hidden}.sidebar-header{justify-content:space-between;align-items:center;gap:var(--space-1);padding:0 var(--space-2);border-bottom:var(--border);flex-shrink:0;height:64px;display:flex}.sidebar-title{text-transform:uppercase;letter-spacing:var(--tracking-tab);color:var(--color-muted);font-size:.6875rem;font-weight:800}.sidebar-list{flex-direction:column;flex:1;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.sidebar-empty{padding:var(--space-2);color:var(--color-muted);text-align:center;font-size:.75rem}.sidebar-error{margin:0 var(--space-2) var(--space-2);padding-left:var(--space-1);border-left:4px solid var(--color-danger);color:var(--color-primary);font-size:.75rem}.sidebar-item{align-items:stretch;display:flex}.sidebar-item:not(:last-child){border-bottom:var(--border)}.sidebar-item-select{min-width:0;min-height:44px;padding:0 var(--space-1) 0 var(--space-2);color:var(--color-primary);cursor:pointer;text-align:left;font-family:var(--font-body);transition:background-color var(--duration-fast) var(--easing);background:0 0;border:none;flex:1;align-items:center;font-size:.8125rem;display:flex}.sidebar-item-select:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.sidebar-item-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-item.is-selected .sidebar-item-select{background:var(--color-primary);color:var(--color-neutral)}.sidebar-item.is-selected .sidebar-item-select:hover{background:var(--color-primary)}.sidebar-item-delete.btn--icon{width:44px;height:44px}.sidebar-item-delete svg{width:16px;height:16px}.sidebar-item-delete:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.sidebar-item.is-selected .sidebar-item-delete{color:var(--color-neutral)}.sidebar-item.is-selected .sidebar-item-delete:hover:not(:disabled){background:color-mix(in srgb, var(--color-neutral) 20%, transparent);color:var(--color-danger)}@media (width<=720px){.shell{flex-direction:column;height:100svh}.app{flex:1;height:auto;min-height:0}.sidebar{border-right:none;border-bottom:var(--border);width:100%;height:auto;max-height:25svh}.sidebar-header{height:48px}.sidebar-list{flex-direction:row;gap:6px;padding:6px;overflow:auto hidden}.sidebar-item{border:var(--border);flex-shrink:0}.sidebar-item:not(:last-child){border-bottom:var(--border)}.sidebar-item-select{max-width:40vw;padding:0 var(--space-1)}}.header{align-items:center;gap:var(--space-1);padding:0 var(--space-2);flex-shrink:0;height:64px;display:flex}.header .mark{width:18px;height:18px;color:var(--color-primary);flex-shrink:0}.header h1{text-transform:uppercase;letter-spacing:var(--tracking-ui);flex:1;margin:0;font-size:1rem;font-weight:800;line-height:1}.eyebrow{background:var(--color-primary);color:var(--color-neutral);padding:5px var(--space-1);text-transform:uppercase;letter-spacing:var(--tracking-tab);font-size:.5625rem;font-weight:700;line-height:1}.main{flex-direction:column;flex:1;min-height:0;display:flex}.chat{min-height:0;padding:var(--space-3) var(--space-2);gap:var(--space-3);scrollbar-width:thin;scrollbar-color:transparent transparent;scrollbar-gutter:stable;transition:scrollbar-color var(--duration-base) var(--easing);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat:hover,.chat:focus-within{scrollbar-color:var(--color-primary) transparent}.chat::-webkit-scrollbar{width:10px}.chat::-webkit-scrollbar-track{background:0 0}.chat::-webkit-scrollbar-thumb{background:padding-box content-box;border:3px solid #0000}.chat:hover::-webkit-scrollbar-thumb{background:var(--color-primary);background-clip:content-box}.chat:focus-within::-webkit-scrollbar-thumb{background:var(--color-primary);background-clip:content-box}.empty-state{text-align:center;max-width:30rem;padding:0 var(--space-2);margin:auto}.empty-state .mark{color:var(--color-primary);width:32px;height:32px;margin:0 auto var(--space-3);display:block}.empty-state h2{text-transform:uppercase;letter-spacing:var(--tracking-ui);margin:0 0 var(--space-2);font-size:1.5rem;font-weight:800;line-height:1.3}.empty-state h2 em{background:var(--color-primary);color:var(--color-neutral);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 6px;font-style:normal}.empty-state p{color:var(--color-muted);margin:0;font-size:.8125rem;line-height:1.6}.message{flex-direction:column;gap:6px;display:flex}.message.user{align-items:flex-end}.message.assistant{align-items:flex-start}.message-role{text-transform:uppercase;letter-spacing:var(--tracking-tab);color:var(--color-muted);font-size:.5625rem;font-weight:700}.tool-chips{flex-wrap:wrap;gap:6px;display:flex}.tool-chip{padding:4px var(--space-1);border:2px solid var(--color-primary);text-transform:uppercase;letter-spacing:var(--tracking-tab);color:var(--color-primary);background:var(--color-surface);align-items:center;font-size:.625rem;font-weight:700;display:inline-flex}.tool-chip.is-start{color:var(--color-muted);border-style:dashed}.tool-chip.is-ok{border-style:solid}.tool-chip.is-failed{border-color:var(--color-danger);color:var(--color-danger)}.source-list{flex-wrap:wrap;gap:6px;max-width:84%;margin:0;padding:0;list-style:none;display:flex}.source-chip{max-width:14rem;padding:4px var(--space-1);border:2px solid var(--color-primary);text-transform:uppercase;letter-spacing:var(--tracking-tab);color:var(--color-muted);background:var(--color-surface);transition:color var(--duration-fast) var(--easing);align-items:center;gap:4px;font-size:.625rem;font-weight:700;text-decoration:none;display:inline-flex}a.source-chip:hover{color:var(--color-primary);text-underline-offset:3px;text-decoration:underline}.source-chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.source-chip svg{flex-shrink:0;width:10px;height:10px}.usage-note{letter-spacing:var(--tracking-tab);color:var(--color-muted);font-size:.5625rem;font-weight:600}.bubble{max-width:84%;padding:var(--space-1) 14px;border:var(--border);border-radius:var(--radius-md);white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;font-size:.875rem;line-height:1.6}.message.user .bubble{background:var(--color-primary);color:var(--color-neutral)}.message.assistant .bubble{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--level-1)}.bubble.error{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-danger);box-shadow:var(--level-error)}.typing{align-items:center;gap:6px;padding:3px 0;display:inline-flex}.typing span{background:var(--color-primary);width:8px;height:8px}.skeleton{--skeleton-fill:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));width:100%;margin:auto}.skeleton-bubble{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.skeleton-line{background:var(--skeleton-fill);height:11px;animation:skeleton-breathe 1.4s var(--easing) infinite;display:block}.skeleton-line.is-full{width:100%}.skeleton-line.is-long{width:82%}.skeleton-line.is-mid{width:60%}.skeleton-line.is-short{width:38%}.skeleton-line:nth-child(2){animation-delay:.12s}.skeleton-line:nth-child(3){animation-delay:.24s}.skeleton-role{background:var(--skeleton-fill);width:54px;height:7px;animation:skeleton-breathe 1.4s var(--easing) infinite}.message.user .skeleton-bubble .skeleton-line{background:var(--color-neutral)}@keyframes skeleton-breathe{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.skeleton-line,.skeleton-role{opacity:1;animation:none}}.markdown{white-space:normal;max-width:64ch}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:1.2em 0}.markdown ul,.markdown ol{margin:1.2em 0;padding-left:1.5em}.markdown li,.markdown li>p{margin:.5em 0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{text-transform:uppercase;letter-spacing:var(--tracking-ui);margin:1.2em 0 .5em;font-weight:800;line-height:1.3}.markdown h1{font-size:1.15rem}.markdown h2{font-size:1.05rem}.markdown h3{font-size:.95rem}.markdown h4{font-size:.875rem}.markdown a{color:inherit;text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.markdown strong{font-weight:800}.markdown blockquote{border-left:4px solid;margin:1.2em 0;padding:.8em 1em}.markdown code{font-family:var(--font-mono);background:var(--color-primary);color:var(--color-neutral);padding:.1em .35em;font-size:.85em}.markdown pre{background:var(--color-primary);color:var(--color-neutral);border:var(--border);padding:var(--space-1) 12px;margin:1.2em 0;overflow-x:auto}.markdown pre code{color:inherit;background:0 0;padding:0}.markdown hr{border:none;border-top:var(--border);margin:1.2em 0}.markdown table{border-collapse:collapse;margin:1.2em 0;font-size:.9em;display:block;overflow-x:auto}.markdown th,.markdown td{border:var(--border);text-align:left;padding:6px 10px}.markdown th{text-transform:uppercase;letter-spacing:var(--tracking-ui);font-weight:700}.message.user .bubble .markdown code,.message.user .bubble .markdown pre{background:var(--color-neutral);color:var(--color-primary);border-color:var(--color-neutral)}.composer-wrap{padding:var(--space-2);flex-shrink:0}.composer{background:var(--color-surface);border:var(--border);border-radius:var(--radius-md);transition:box-shadow var(--duration-base) var(--easing);flex-direction:column;display:flex}.composer:focus-within{box-shadow:var(--level-1)}.composer-strip{align-items:center;gap:var(--space-1);min-height:36px;padding:6px 10px;font-size:.6875rem;display:flex}.status-label{text-transform:uppercase;letter-spacing:var(--tracking-tab);color:var(--color-muted);font-weight:700}.status-label.is-error{color:var(--color-primary);border-left:4px solid var(--color-danger);padding-left:var(--space-1)}.attachment-chip{padding:4px 4px 4px var(--space-1);border:var(--border);align-items:center;gap:6px;max-width:100%;font-size:.6875rem;display:inline-flex}.attachment-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-status{text-transform:uppercase;letter-spacing:var(--tracking-tab);color:var(--color-muted);flex-shrink:0;font-weight:700}.attachment-chip:not(.is-ready){padding-right:var(--space-1)}.attachment-chip.is-failed{border-left:4px solid var(--color-danger)}.attachment-chip.is-failed .attachment-status{color:var(--color-primary)}.attachment-reason{color:var(--color-muted)}.attachment-remove{background:var(--color-primary);width:24px;height:24px;color:var(--color-neutral);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.attachment-remove:after{content:"";position:absolute;inset:-10px}.attachment-remove svg{width:14px;height:14px}.voice-interim{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.voice-dot{background:var(--color-primary);flex-shrink:0;width:8px;height:8px}.composer textarea{resize:none;width:100%;font-family:var(--font-body);min-height:44px;max-height:9rem;color:var(--color-primary);background:0 0;border:none;padding:12px;font-size:.875rem;line-height:1.6}.composer textarea:focus,.composer textarea:focus-visible{outline:none}.composer textarea::placeholder{color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--tracking-ui);font-size:.8125rem}.composer-controls{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-1);display:flex}.controls-left,.controls-right{align-items:center;gap:var(--space-1);display:flex}.mic-wrap{flex-shrink:0;display:flex;position:relative}.mic-ring{border:var(--border);pointer-events:none;position:absolute;inset:0}.btn.talk-btn{height:44px;padding:0 14px}.talk-btn svg{flex-shrink:0;width:18px;height:18px}.model-select{max-width:11rem;height:44px;padding:0 var(--space-1);border:var(--border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary);font-family:var(--font-mono);cursor:pointer;transition:box-shadow var(--duration-base) var(--easing);font-size:.75rem}.model-select:hover:not(:disabled){box-shadow:var(--level-1)}.model-select:disabled{opacity:.4;cursor:not-allowed}.send-countdown{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:1}@media (width<=480px){.composer-controls{flex-wrap:wrap}.model-select{max-width:8rem}.bubble,.source-list{max-width:100%}}
