:root,[data-theme=dark]{--bg: #0c0d12;--panel: #12141b;--panel-2: #181b24;--raise: #1f2330;--line: #262a37;--text: #e8eaf0;--muted: #8a90a2;--accent: #8b7cff;--accent-2: #5ee1d0;--accent-soft: rgba(139, 124, 255, .14);--danger: #ff6b7a;--danger-soft: rgba(255, 107, 122, .1);--c-violet: #a28bff;--c-teal: #45d3c4;--c-green: #4cd486;--c-amber: #f4b55b;--c-rose: #ff7aa8;--code-bg: #0a0b10;--shadow: 0 12px 40px rgba(0, 0, 0, .45);--hl-key: #c4a5ff;--hl-str: #8ee6a8;--hl-num: #f7c37a;--hl-com: #6b7186;--hl-fn: #7cc8ff;--hl-type: #5ee1d0;color-scheme:dark}[data-theme=light]{--bg: #f6f6f9;--panel: #ffffff;--panel-2: #f1f2f6;--raise: #e9ebf1;--line: #e1e3ea;--text: #171923;--muted: #666d80;--accent: #6a58f0;--accent-2: #0f9e8e;--accent-soft: rgba(106, 88, 240, .1);--danger: #d9364a;--danger-soft: rgba(217, 54, 74, .08);--c-violet: #7a5cf0;--c-teal: #0f9e8e;--c-green: #1f9d57;--c-amber: #c47f12;--c-rose: #d6336c;--code-bg: #f3f4f8;--shadow: 0 12px 32px rgba(20, 24, 40, .12);--hl-key: #7a3fd1;--hl-str: #1d7f43;--hl-num: #b55d00;--hl-com: #8a90a2;--hl-fn: #1e62c9;--hl-type: #0f8577;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.6 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.45}code,pre,textarea{font-family:JetBrains Mono,ui-monospace,Cascadia Code,Consolas,monospace}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}svg.mark{stroke:none}.muted{color:var(--muted)}.small{font-size:12.5px}.grow{flex:1;min-width:0}.pad{padding:8px 12px}.link{color:var(--accent);font-weight:600;margin-left:8px}.link:hover{text-decoration:underline}.app{display:grid;grid-template-columns:272px 1fr;height:100%;overflow:hidden}main{min-width:0;height:100%;display:flex;flex-direction:column}.sidebar{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 10px;gap:10px;min-height:0}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16.5px;letter-spacing:-.01em;padding:4px 8px 6px}.logo{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.logo svg{stroke:#fff;stroke-width:3}.new-chat{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);font-weight:600;transition:border-color .15s,background .15s}.new-chat:hover{border-color:var(--accent);background:var(--accent-soft)}.conv-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin:0 -2px;padding:0 2px}.conv{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:9px;cursor:pointer}.conv:hover{background:var(--panel-2)}.conv.on{background:var(--raise)}.conv-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.conv .icon-btn{opacity:0}.conv:hover .icon-btn,.conv.on .icon-btn{opacity:1}.side-foot{display:flex;gap:6px;border-top:1px solid var(--line);padding-top:10px}.side-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;flex:1;font-weight:500}.side-btn:hover,.side-btn.on{background:var(--panel-2)}.icon-btn{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--muted)}.icon-btn:hover{background:var(--panel-2);color:var(--text)}.icon-btn.ghost{width:28px;height:28px}.icon-btn.ghost svg{width:15px;height:15px}.scrim,.mobile-only{display:none}.chat{display:flex;flex-direction:column;flex:1;min-height:0}.topbar{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid var(--line);min-height:56px}.top-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread{flex:1;overflow-y:auto}.messages{max-width:800px;margin:0 auto;padding:28px 24px 12px;display:flex;flex-direction:column;gap:22px}.msg.user{display:flex;justify-content:flex-end}.bubble{background:var(--raise);padding:10px 15px;border-radius:18px 18px 4px;max-width:78%;white-space:pre-wrap;word-wrap:break-word}.msg.assistant{animation:rise .25s ease-out}.msg-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:3px 9px 3px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line)}.tier{font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}.tier-free{color:var(--c-violet);background:color-mix(in srgb,var(--c-violet) 14%,transparent)}.tier-local{color:var(--c-teal);background:color-mix(in srgb,var(--c-teal) 14%,transparent)}.tier-paid{color:var(--c-amber);background:color-mix(in srgb,var(--c-amber) 15%,transparent)}.meta{margin-top:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.caret{display:inline-block;width:8px;height:16px;background:var(--accent);border-radius:2px;vertical-align:-3px;margin-left:2px;animation:blink 1s steps(2) infinite}.typing{display:flex;gap:5px;padding:10px 0}.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:bounce 1.2s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}.error-card{margin-top:6px;background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--text);padding:10px 14px;border-radius:12px;font-size:14px}.error-card strong{color:var(--danger);margin-right:4px}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.notice{margin:18px auto 0;max-width:520px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding:12px 16px;border-radius:12px;font-size:14px}.notice.error{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol{margin:0 0 12px}.md h1,.md h2,.md h3{margin:18px 0 8px;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.35em}.md h2{font-size:1.2em}.md h3{font-size:1.05em}.md a{color:var(--accent)}.md :not(pre)>code{background:var(--panel-2);border:1px solid var(--line);padding:1px 6px;border-radius:6px;font-size:.88em}.md table{border-collapse:collapse;margin:0 0 12px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);padding:6px 10px;text-align:left}.md th{background:var(--panel-2)}.md blockquote{margin:0 0 12px;padding-left:14px;border-left:3px solid var(--line);color:var(--muted)}.code{margin:0 0 14px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--code-bg)}.code-head{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;color:var(--muted);background:var(--panel-2);border-bottom:1px solid var(--line)}.code-head button{font-size:12px;color:var(--muted);padding:2px 8px;border-radius:6px}.code-head button:hover{color:var(--text);background:var(--raise)}.code pre{margin:0;padding:14px 16px;overflow-x:auto;font-size:13.5px;line-height:1.55}.hljs-keyword,.hljs-built_in,.hljs-selector-tag,.hljs-literal{color:var(--hl-key)}.hljs-string,.hljs-attr,.hljs-regexp{color:var(--hl-str)}.hljs-number,.hljs-symbol{color:var(--hl-num)}.hljs-comment,.hljs-quote{color:var(--hl-com);font-style:italic}.hljs-title,.hljs-function .hljs-title,.hljs-title.function_{color:var(--hl-fn)}.hljs-type,.hljs-class .hljs-title,.hljs-title.class_,.hljs-meta{color:var(--hl-type)}.empty{max-width:720px;margin:0 auto;padding:12vh 24px 24px;text-align:center}.empty-logo{width:54px;height:54px;margin:0 auto 18px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.empty-logo svg{width:26px;height:26px}.empty h1{font-size:28px;letter-spacing:-.02em;margin:0 0 6px}.suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px;text-align:left}.suggestions button{min-width:0;text-align:left;align-items:flex-start;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:3px;transition:border-color .15s,transform .15s}.suggestions button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.suggestions strong{font-size:14px}.suggestions strong,.suggestions span{max-width:100%}.suggestions span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer-wrap{padding:8px 24px 16px}.composer{max-width:800px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:12px 12px 10px 16px;box-shadow:var(--shadow);transition:border-color .15s}.composer:focus-within{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}.composer textarea{width:100%;resize:none;border:0;outline:0;background:transparent;color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,sans-serif;max-height:220px;padding:2px 0 8px}.composer-bar{display:flex;align-items:center;gap:8px}.composer-bar .grow-gap{flex:1}.send{margin-left:auto;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--accent);color:#fff;transition:transform .1s,opacity .15s}.send:hover:not(:disabled){transform:scale(1.05)}.send.stop{background:var(--text);color:var(--bg)}.hint{max-width:800px;margin:8px auto 0;text-align:center;font-size:12px}.picker{position:relative}.picker-btn{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);font-size:13.5px;font-weight:600;max-width:260px}.picker-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-btn:hover{border-color:var(--accent)}.chev svg{width:14px;height:14px;color:var(--muted)}.picker-menu{position:absolute;bottom:calc(100% + 8px);left:0;width:320px;max-height:420px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:6px;z-index:20;animation:rise .15s ease-out}.picker-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 10px 4px}.picker-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border-radius:9px;font-size:14px}.picker-item:hover:not(:disabled),.picker-item.on{background:var(--panel-2)}.picker-item.on{box-shadow:inset 0 0 0 1px var(--accent)}.picker-desc{display:block;font-size:12px;color:var(--muted);font-weight:400}.demo-bar{padding:9px 20px;font-size:13.5px;background:var(--accent-soft);border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.demo-bar a{color:var(--accent);font-weight:600;white-space:nowrap}.demo-card{margin-top:4px;padding:12px 14px;border-radius:12px;font-size:14px;background:var(--accent-soft);border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent)}.demo-card a{color:var(--accent);font-weight:600}.route-strip{margin:-2px -2px 10px;padding:8px 10px;border-radius:12px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);font-size:13.5px;animation:rise .2s ease-out}.route-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.route-cat{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--accent)}.route-line .link{margin-left:0}.override{margin-left:auto;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font:inherit;font-size:12.5px;max-width:210px}.route-why{margin:8px 0 4px;font-size:13.5px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--panel-2);border-radius:10px;border:1px solid var(--line)}.route-strip .route-why{margin-bottom:0;background:var(--panel)}.chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:2px}.chips code{font-size:11.5px;padding:1px 7px;border-radius:6px;background:var(--raise)}.route-tag{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--accent);padding:3px 9px;border-radius:999px;border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent)}.route-tag:hover,.route-tag.on{background:var(--accent-soft);border-style:solid}.picker-menu.down{bottom:auto;top:calc(100% + 8px)}.settings{max-width:900px;margin:0 auto;padding:28px 24px 48px}.settings h1{font-size:26px;letter-spacing:-.02em;margin:0 0 4px}.settings h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:32px 0 12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}.card p{margin:6px 0}.card-head{display:flex;align-items:center;gap:10px}.provider{display:flex;flex-direction:column}.provider .btn{margin-top:auto;align-self:flex-start}.status{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;margin:10px 0 2px}.status i{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status.ok{color:var(--c-green)}.status.ok i{background:var(--c-green);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-green) 25%,transparent)}.status.bad{color:var(--danger)}.status.bad i{background:var(--danger)}.status.off{color:var(--muted)}.test-result{font-size:12.5px;padding:8px 10px;border-radius:8px;margin:4px 0 10px;word-break:break-word}.test-result.ok{background:color-mix(in srgb,var(--c-green) 12%,transparent)}.test-result.bad{background:var(--danger-soft)}.btn{padding:7px 14px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);font-weight:600;font-size:13.5px;margin-top:8px}.btn:hover:not(:disabled){border-color:var(--accent)}.callout{margin-top:14px;padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--c-amber) 9%,transparent);border:1px solid color-mix(in srgb,var(--c-amber) 28%,transparent);font-size:14px}.routes{display:flex;flex-direction:column;gap:8px}.route-row{display:flex;gap:16px;align-items:flex-start;padding:14px 16px}.route-name{width:160px;flex:none;display:flex;flex-direction:column}.prefer{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pref{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.pref.on{color:var(--text);border-color:color-mix(in srgb,var(--c-green) 50%,transparent);background:color-mix(in srgb,var(--c-green) 9%,transparent)}code{font-size:.9em}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;z-index:40;transform:translate(-100%);transition:transform .2s ease}.nav-open .sidebar{transform:none;box-shadow:var(--shadow)}.nav-open .scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:30}.mobile-only{display:grid}.topbar{padding:10px 16px}.messages{padding:20px 16px 8px}.composer-wrap{padding:6px 16px 12px}.suggestions{grid-template-columns:1fr}.empty{padding-top:8vh;padding-inline:16px}.bubble{max-width:90%}.picker-menu{width:min(320px,calc(100vw - 48px))}.hint{display:none}.route-row{flex-direction:column;gap:6px}.route-name{width:auto}.override{margin-left:0;max-width:100%}.settings{padding:20px 16px 40px}}
