:root{--bg: #0b0d12;--surface: #141821;--surface-2: #1c2130;--ink: #e8edf7;--muted: #8b93a7;--primary: #4d8eff;--primary-2: #3a7df0;--line: #273041;--ok: #3cd7ff;--err: #ef4444}*{box-sizing:border-box}body{margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}input,textarea,select,button{font:inherit}a{color:inherit;text-decoration:none}.brand{font-weight:800;font-size:1.2rem;letter-spacing:.3px}.brand span{color:var(--primary)}.brand--lg{font-size:1.8rem;margin-bottom:8px}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login__card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px;display:flex;flex-direction:column;gap:8px}.login__card h1{margin:4px 0 16px;font-size:1.4rem}.login__card label{font-size:.85rem;color:var(--muted);margin-top:8px}.login__card input{padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--ink)}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.side{background:var(--surface);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.side a{padding:10px 12px;border-radius:8px;color:var(--muted)}.side a:hover{background:var(--surface-2);color:var(--ink)}.side a.active{background:var(--primary);color:#fff}.side .brand{margin-bottom:16px}.side__spacer{flex:1}.side__user{font-size:.8rem;color:var(--muted);padding:8px 12px}.content{padding:24px 28px;overflow:auto}.btn{padding:10px 16px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--primary:hover{background:var(--primary-2)}.btn--ghost{background:transparent}.btn:disabled{opacity:.6;cursor:default}.page{max-width:900px}.page h1{margin:0 0 4px}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0;display:flex;flex-direction:column;gap:8px}.card input,.card textarea,.card select{padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--ink)}.list{display:flex;flex-direction:column}.row{display:flex;gap:12px;align-items:center}.check{display:flex;gap:6px;align-items:center;color:var(--muted)}.tag{font-size:.7rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:2px 8px;color:var(--ok)}.msg{padding:8px 12px;border-radius:8px;font-size:.9rem}.msg--err{background:#ef44441f;color:var(--err)}.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{text-align:left;padding:8px;border-bottom:1px solid var(--line);font-size:.9rem}.bar{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.bar__fill{height:100%;background:var(--primary)}.chat{display:flex;flex-direction:column;height:calc(100vh - 48px);max-width:860px}.chat__bar{display:flex;gap:10px;align-items:center;padding-bottom:12px}.chat__bar select{padding:8px 10px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--ink)}.chat__log{flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:8px 0}.msg-row{display:flex}.msg-row--user{justify-content:flex-end}.bubble{max-width:75%;padding:10px 14px;border-radius:12px;white-space:pre-wrap}.msg-row--user .bubble{background:var(--primary);color:#fff}.msg-row--assistant .bubble{background:var(--surface);border:1px solid var(--line)}.chat__input{display:flex;gap:10px;padding-top:12px}.chat__input textarea{flex:1;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--ink);resize:none}.demo-hint{margin-top:12px;padding:10px 12px;background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;font-size:.82rem;color:var(--muted);text-align:center;line-height:1.5}.demo-hint code{color:var(--ok);background:#3cd7ff14;padding:1px 5px;border-radius:4px}
