:root{--asphalt:#0e1113;--steel:#171b1f;--steel-2:#1f252a;--line:#2a3238;--line-2:#384249;--ink:#e8ecef;--muted:#8a97a0;--faint:#5c6870;--amber:#ea8a2e;--amber-dim:#b96a1f;--pos:#4fb477;--neg:#e5634d;--mono:ui-monospace, SFMono-Regular, "SF Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--dock-h:84px;--radius:12px;--shadow-float:0 1px 0 #ffffff05 inset, 0 8px 24px -12px #000000b3, 0 2px 8px -4px #ea8a2e14}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}html{background:var(--asphalt);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:radial-gradient(120% 80% at 50% -10%, #14181c 0%, var(--asphalt) 60%), var(--asphalt);min-height:100dvh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none}::selection{background:#ea8a2e47}.mono{font-family:var(--mono)}.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--faint);font-size:11px}.app{border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;max-width:760px;height:100dvh;margin:0 auto;display:flex}.topbar{border-bottom:1px solid var(--line);background:linear-gradient(180deg, var(--steel), #171b1f99);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex:none;align-items:center;gap:12px;padding:14px 16px;display:flex}.brand{font-family:var(--mono);letter-spacing:.06em;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.brand .chev{color:var(--amber)}.brand .sub{color:var(--muted);font-weight:500}.live{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-size:10px;display:inline-flex}.dot{background:var(--pos);border-radius:50%;width:7px;height:7px;animation:2.4s ease-out infinite pulse-dot;box-shadow:0 0 #4fb47780}@keyframes pulse-dot{0%{box-shadow:0 0 #4fb47773}70%{box-shadow:0 0 0 6px #4fb47700}to{box-shadow:0 0 #4fb47700}}.src-chip{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);white-space:nowrap;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:10px}.logout{color:var(--faint);cursor:pointer;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:none;padding:4px;font-size:10px}.logout:hover{color:var(--muted)}.logout:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:4px}.stream{padding:20px 16px calc(var(--dock-h) + 20px);scroll-behavior:smooth;flex-direction:column;flex:auto;gap:18px;display:flex;overflow-y:auto}.empty{margin:auto 0;padding:8px 4px 24px}.empty h1{font-family:var(--sans);letter-spacing:-.01em;color:var(--ink);margin:10px 0 6px;font-size:22px;font-weight:600;line-height:1.3}.empty p{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.6}.chips{flex-direction:column;gap:10px;display:flex}.chip{text-align:left;background:var(--steel);border:1px solid var(--line);color:var(--ink);border-radius:var(--radius);font-size:14px;font-family:var(--sans);cursor:pointer;padding:13px 14px;transition:transform .15s cubic-bezier(.2,.7,.2,1),border-color .15s,background .15s}.chip:before{content:"▸";color:var(--amber);font-family:var(--mono);margin-right:10px}.chip:hover{border-color:var(--line-2);background:var(--steel-2);transform:translate(2px)}.chip:active{transform:translate(0)scale(.995)}.chip:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.msg{flex-direction:column;gap:6px;animation:.28s cubic-bezier(.2,.7,.2,1) rise;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.msg .who{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10px}.msg.user{align-items:flex-end}.msg.user .who{color:var(--faint)}.bubble{border-radius:var(--radius);white-space:pre-wrap;word-wrap:break-word;max-width:88%;padding:12px 14px;font-size:15px;line-height:1.6}.msg.user .bubble{background:var(--steel-2);border:1px solid var(--line);border-bottom-right-radius:4px}.msg.assistant .bubble{border-left:2px solid var(--amber);background:0 0;border-radius:0;max-width:100%;padding-left:14px}.msg.assistant .bubble.err{border-left-color:var(--neg);color:var(--neg)}.caret{background:var(--amber);width:8px;margin-left:1px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.sqllog{border:1px solid var(--line);background:#0f121499;border-radius:10px;margin-top:4px;overflow:hidden}.sqllog>summary{cursor:pointer;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;padding:8px 12px;font-size:10px;list-style:none;display:flex}.sqllog>summary::-webkit-details-marker{display:none}.sqllog>summary:before{content:"▸";color:var(--amber);transition:transform .15s}.sqllog[open]>summary:before{transform:rotate(90deg)}.sqllog .rows{flex-direction:column;gap:8px;padding:0 12px 10px;display:flex}.sqllog code{font-family:var(--mono);color:#b9c6cd;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5}.sqllog .n{color:var(--faint)}.sqllog .bad{color:var(--neg)}.dock{padding:12px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:linear-gradient(0deg, var(--steel) 60%, #171b1fd9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex:none;position:sticky;bottom:0}.dock form{align-items:flex-end;gap:10px;display:flex}.field{background:var(--asphalt);border:1px solid var(--line);border-radius:14px;flex:auto;align-items:center;transition:border-color .15s;display:flex}.field:focus-within{border-color:var(--amber-dim)}.field textarea{resize:none;color:var(--ink);font-family:var(--sans);background:0 0;border:none;outline:none;flex:auto;max-height:120px;padding:12px 14px;font-size:15px;line-height:1.5}.field textarea::placeholder{color:var(--faint)}.send,.mic{cursor:pointer;border:none;flex:none;place-items:center;transition:transform .12s,background .15s,opacity .15s;display:grid}.send{background:var(--steel-2);width:44px;height:44px;color:var(--ink);border:1px solid var(--line);border-radius:12px}.send:hover{background:#262d33}.send:disabled{opacity:.4;cursor:not-allowed}.send:active{transform:scale(.94)}.mic{background:var(--amber);color:#1a1205;border-radius:50%;width:52px;height:52px;position:relative;box-shadow:0 6px 20px -8px #ea8a2e8c}.mic:hover{background:#f0963d}.mic:active{transform:scale(.94)}.mic.listening{background:var(--neg);color:#200}.mic.listening:after{content:"";border:2px solid var(--neg);border-radius:50%;animation:1.2s ease-out infinite ring;position:absolute;inset:-6px}@keyframes ring{0%{opacity:.8;transform:scale(.9)}to{opacity:0;transform:scale(1.5)}}.send:focus-visible,.mic:focus-visible,.chip:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.gate{place-items:center;min-height:100dvh;padding:24px;display:grid}.card{background:var(--steel);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow-float);border-radius:16px;padding:28px 24px}.card .brand{margin-bottom:22px;font-size:16px}.card h1{letter-spacing:-.01em;margin:0 0 6px;font-size:20px;font-weight:600}.card p{color:var(--muted);margin:0 0 18px;font-size:14px;line-height:1.6}.card label{margin-bottom:16px;display:block}.card input[type=email]{background:var(--asphalt);border:1px solid var(--line);width:100%;color:var(--ink);font-size:15px;font-family:var(--sans);border-radius:10px;padding:12px 14px}.card input:focus{border-color:var(--amber-dim);outline:none}.btn{background:var(--amber);color:#1a1205;width:100%;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:none;border-radius:10px;padding:13px;font-size:13px;font-weight:600;transition:background .15s,transform .1s}.btn:hover{background:#f0963d}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.note{color:var(--faint);margin-top:16px;font-size:12px;line-height:1.6}.note.err{color:var(--neg)}.note.ok{color:var(--pos)}.note a{color:var(--amber)}.skip{background:var(--amber);color:#1a1205;z-index:10;font-family:var(--mono);padding:8px 12px;font-size:12px;position:absolute;top:0;left:-9999px}.skip:focus{top:8px;left:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
