:root{--bg:#0d1117;--panel:#11161d;--panel-2:#161c25;--border:#232c38;--text:#d6dde6;--muted:#8893a0;--accent:#5b8db8;--accent-dim:#2b3f52;--danger:#c2554d;--user:#1b2733}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--accent)}.shell{display:flex;height:100vh}.sidebar{width:260px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.brand{padding:16px;border-bottom:1px solid var(--border)}.brand h1{font-size:14px;margin:0;letter-spacing:.5px}.brand .sub{color:var(--muted);font-size:11px;margin-top:3px}.side-section{padding:12px 16px}.side-section .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}.ws{padding:7px 9px;border-radius:6px;cursor:pointer;color:var(--text);margin-bottom:2px;font-size:13px}.ws:hover{background:var(--panel-2)}.ws.active{background:var(--accent-dim)}.side-foot{margin-top:auto;padding:12px 16px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.main{flex:1 1;display:flex;flex-direction:column;min-width:0}.topbar{padding:10px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px}.badge{font-size:11px;color:var(--accent);border:1px solid var(--accent-dim);border-radius:999px;padding:3px 10px}.spacer{flex:1 1}button,input,select,textarea{font-family:inherit;font-size:13px}input[type=password],input[type=text],select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}button{background:var(--accent-dim);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 14px;cursor:pointer}button:hover{border-color:var(--accent)}button.ghost{background:transparent}.messages{flex:1 1;overflow-y:auto;padding:22px 18px}.msg{max-width:760px;margin:0 auto 16px}.msg .role{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px;display:flex;align-items:center;gap:8px}.msg .bubble{white-space:pre-wrap;line-height:1.55}.msg.user .bubble{background:var(--user);border:1px solid var(--border);border-radius:8px;padding:11px 13px}.empty{color:var(--muted);text-align:center;margin-top:18vh}.msg-actions{display:inline-flex;gap:8px;opacity:0;transition:opacity .12s}.msg:hover .msg-actions{opacity:1}.msg-actions span{cursor:pointer;font-size:13px}.msg-actions span:hover{color:var(--accent)}.convo-actions{opacity:.35}.ws:hover .convo-actions{opacity:1}.convo-actions span{cursor:pointer}.compare-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.compare-col{border:1px solid var(--border);border-radius:8px;padding:10px 12px;min-width:0}.compare-head{color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}@media (max-width:720px){.compare-grid{grid-template-columns:1fr}}.md{white-space:normal}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 10px;line-height:1.55}.md ol,.md ul{margin:0 0 10px;padding-left:22px}.md li{margin:2px 0}.md h1,.md h2,.md h3,.md h4{margin:16px 0 8px;line-height:1.3}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md a{text-decoration:underline}.md blockquote{margin:0 0 10px;padding-left:12px;border-left:3px solid var(--accent-dim);color:var(--muted)}.md code{background:var(--user);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.9em;font-family:ui-monospace,Cascadia Code,Menlo,Consolas,monospace}.md pre{background:#0d1218;border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin:0 0 10px}.md pre code{background:none;border:none;padding:0;font-size:.85em;line-height:1.5}.md table{border-collapse:collapse;margin:0 0 10px;font-size:.92em}.md td,.md th{border:1px solid var(--border);padding:5px 9px;text-align:left}.md th{background:var(--user)}.md hr{border:none;margin:14px 0}.composer,.md hr{border-top:1px solid var(--border)}.composer{padding:14px 18px}.composer .row{max-width:760px;margin:0 auto;display:flex;gap:10px;align-items:flex-end}.composer textarea{flex:1 1;resize:none;min-height:44px;max-height:200px}.err{color:var(--danger);font-size:12px;max-width:760px;margin:6px auto 0}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:28px;width:320px}.login-card h1{font-size:16px;margin:0 0 4px}.login-card .sub{color:var(--muted);font-size:12px;margin-bottom:20px}.login-card label{display:block;color:var(--muted);font-size:12px;margin:12px 0 5px}.login-card input{width:100%}.login-card button{width:100%;margin-top:20px}