:root{--bg:#f6f7f9;--panel:#fff;--panel-2:#f0f2f5;--border:#e2e5ea;--text:#1c2230;--muted:#6b7385;--accent:#4f46e5;--accent-text:#fff;--user-bubble:#4f46e5;--user-text:#fff;--ok:#138a52;--ok-bg:#e3f6ec;--err:#c4302b;--err-bg:#fdecea;--claude:#d97757;--codex:#10a37f;--gemini:#4285f4;--code-bg:#f3f4f7;--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1117;--panel:#171a22;--panel-2:#1f232d;--border:#2a2f3b;--text:#e6e8ee;--muted:#9aa2b5;--accent:#7c74ff;--user-bubble:#4b44c9;--ok:#4ccf8e;--ok-bg:#12301f;--err:#ff7a73;--err-bg:#3a1716;--code-bg:#11141b;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:7px 12px}button:hover:not(:disabled){background:var(--panel-2)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:#0000}button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}button.ghost{background:0 0;border-color:#0000}button.small{padding:4px 9px;font-size:13px}button.icon{color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:12px}button.wide{width:100%}input,select,textarea{background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:0;padding:7px 10px}input:focus,textarea:focus,select:focus{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);border-color:var(--accent)}input.num{width:70px}code,pre{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px}pre{white-space:pre-wrap;word-break:break-word}.muted{color:var(--muted)}.small{font-size:13px}.center{place-items:center;height:100%;display:grid}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.err{color:var(--err)}.err.banner{background:var(--err-bg);border-radius:8px;margin:8px 0;padding:10px 14px}.err-text{color:var(--err)}.ok-text{color:var(--ok)}.badge{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:11px}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.p-claude{background:var(--claude)}.p-codex{background:var(--codex)}.p-gemini{background:var(--gemini)}.p-veo{background:#a142f4}.vid{background:#000;border-radius:10px;max-width:min(100%,520px);max-height:420px;display:block}.pill{border:1px solid var(--border);border-radius:99px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;display:inline-flex}.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:#0000}.pill.off{background:var(--err-bg);color:var(--err);border-color:#0000}.login{place-items:center;min-height:100%;padding:16px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);width:min(380px,100%);box-shadow:var(--shadow);border-radius:14px;gap:12px;padding:28px;display:grid}.brand{align-items:center;gap:8px;font-weight:650;display:flex}.brand.big{font-size:22px}.logo{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-size:16px;display:inline-grid}.app{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:16px;padding:8px 16px;display:flex}.topbar nav{flex:1;gap:4px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:14px;text-decoration:none}.tab.active{background:var(--panel-2);color:var(--text);font-weight:600}.who{align-items:center;gap:8px;font-size:14px;display:flex}.chat-layout{flex:1;grid-template-columns:290px 1fr;min-height:0;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;gap:8px;min-height:0;padding:12px;display:flex}.conv-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.conv-list li{cursor:pointer;border-radius:8px;padding:8px 10px}.conv-list li:hover{background:var(--panel-2)}.conv-list li.active{background:color-mix(in srgb, var(--accent) 12%, transparent)}.conv-list li.empty{cursor:default}.conv-title{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:14px;display:flex;overflow:hidden}.conv-meta{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.conv-meta .badge{margin:0}.conv-meta .icon{visibility:hidden;margin-left:auto}.conv-list li:hover .icon{visibility:visible}.status-row{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding-top:8px;display:flex}.chat-main{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 20px;display:flex}.chat-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.messages{flex-direction:column;flex:1;gap:14px;padding:20px;display:flex;overflow-y:auto}.messages>*{width:100%;max-width:820px;margin-inline:auto}.welcome{text-align:center;margin-top:12vh}.welcome h2{margin:0 0 6px}.msg{flex-direction:column;gap:4px;display:flex}.msg.user{align-items:flex-end}.bubble{overflow-wrap:anywhere;border-radius:14px;max-width:100%;padding:10px 14px}.msg.user .bubble{background:var(--user-bubble);color:var(--user-text);border-bottom-right-radius:4px;max-width:85%}.msg.assistant .bubble{background:var(--panel);border:1px solid var(--border);border-bottom-left-radius:4px}.msg.error .bubble{background:var(--err-bg)}.plain{white-space:pre-wrap}.pending{color:var(--muted);align-items:center;gap:8px;width:fit-content;display:inline-flex}.meta{color:var(--muted);align-items:center;gap:6px;padding:0 4px;font-size:12px;display:flex}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md pre{background:var(--code-bg);white-space:pre;border-radius:8px;padding:10px 12px;overflow-x:auto}.md :not(pre)>code{background:var(--code-bg);border-radius:4px;padding:1px 5px}.md table{border-collapse:collapse;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:4px 8px}.atts{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.chip{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:3px 9px;font-size:13px;text-decoration:none;display:inline-flex}.thumb{border-radius:8px;max-width:220px;max-height:140px;display:block}.composer{border-top:1px solid var(--border);background:var(--panel);padding:12px 20px 16px}.composer>*{max-width:820px;margin-inline:auto}.composer .atts{margin:0 auto 8px}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;field-sizing:content;flex:1;min-height:40px;max-height:200px}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.spinner.tiny{width:10px;height:10px}@keyframes spin{to{transform:rotate(360deg)}}.only-mobile{display:none}.admin{align-content:start;gap:16px;padding:20px;display:grid;overflow-y:auto}.admin>*{width:100%;max-width:1050px;margin-inline:auto}.card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:16px 20px}.card h3{margin:4px 0 12px;font-size:16px}.card h3:not(:first-child){margin-top:22px}.prov-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.prov{border:1px solid var(--border);border-radius:10px;gap:8px;padding:12px;display:grid}.prov-head{align-items:center;gap:8px;display:flex}.prov-head .pill{margin-left:auto}.prov pre{background:var(--code-bg);border-radius:6px;max-height:160px;padding:8px;overflow:auto}.keybox{background:var(--ok-bg);border-radius:10px;gap:8px;margin-bottom:12px;padding:12px;display:grid}.keybox code{word-break:break-all;-webkit-user-select:all;user-select:all;font-size:14px}.table-wrap{margin-top:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 8px}th{color:var(--muted);font-size:13px;font-weight:500}tr.inactive td{opacity:.5}.routing{gap:10px;display:grid}.routing label{gap:4px;display:grid}.card label.row{margin:8px 0}@media (width<=760px){.chat-layout{grid-template-columns:1fr;position:relative}.sidebar{z-index:5;box-shadow:var(--shadow);transition:transform .2s;position:absolute;inset:0 20% 0 0;transform:translate(-105%)}.show-side .sidebar{transform:none}.only-mobile{display:inline-block}.topbar{gap:8px;padding:8px 12px}.who .muted{display:none}.messages,.composer,.admin{padding-inline:16px}.composer{padding:8px 10px 10px}.composer-row{flex-wrap:wrap;gap:6px}.composer textarea{flex:100%;order:-1;min-height:48px;font-size:16px}.composer-row select{flex:1;max-width:none}.composer-row .primary{flex:none;padding-inline:18px}.tab{white-space:nowrap;padding:6px 8px}.topbar nav{gap:0}.msg.user .bubble{max-width:92%}}.seg{background:var(--panel-2);border-radius:10px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.seg button{background:0 0;border:0;border-radius:8px}.seg button.on{background:var(--panel);box-shadow:var(--shadow);font-weight:600}.form-grid{gap:10px;max-width:420px;display:grid}.form-grid label{gap:4px;font-size:14px;display:grid}tr.pending td{background:color-mix(in srgb, var(--accent) 7%, transparent)}.ok-box{background:var(--ok-bg);color:var(--ok);border-radius:8px;margin-bottom:10px;padding:10px 14px}
