:root{--bg:#0f1720;--panel:#161f2b;--panel2:#1c2735;--line:#263445;--text:#e6edf3;--muted:#8b98a8;--accent:#58a6ff;--ok:#3fb950;--warn:#d29922;--err:#f85149;--int:#3d2f0a}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
#app{height:100%}
button{font:inherit;color:inherit;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:6px 10px;cursor:pointer}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);border-color:var(--accent);color:#06121f;font-weight:600}
button.danger{border-color:var(--err);color:var(--err)}
button:disabled{opacity:.5;cursor:default}
input,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px;width:100%}
.login{height:100%;display:flex;align-items:center;justify-content:center}
.login form{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px;width:320px;display:flex;flex-direction:column;gap:10px}
.login h1{margin:0 0 6px;font-size:20px}
.err{color:var(--err);min-height:18px;font-size:13px}
.app{height:100%;display:grid;grid-template-rows:auto 1fr auto}
.top{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}
.top .grow{flex:1}.top b{font-size:15px}
.live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:4px}
.live.on{background:var(--ok)}
.main{display:grid;grid-template-columns:320px 1fr 320px;min-height:0}
.col{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}
.col:last-child{border-right:0}
.tabs{display:flex;border-bottom:1px solid var(--line)}
.tabs button{flex:1;border:0;border-radius:0;background:none;padding:10px}
.tabs button.on{border-bottom:2px solid var(--accent);color:var(--accent)}
.list{overflow-y:auto;flex:1}
.item{padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.item:hover,.item.sel{background:var(--panel2)}
.item .row{display:flex;gap:6px;align-items:center}
.item .name{font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .sub{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.dot.on{background:var(--ok)}
.tag{font-size:11px;border:1px solid var(--line);border-radius:10px;padding:0 6px;color:var(--muted)}
.tag.agent{border-color:#a371f7;color:#a371f7}.tag.banned{border-color:var(--err);color:var(--err)}
.unread{background:var(--err);color:#fff;border-radius:10px;padding:0 6px;font-size:11px}
.chat{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}
.chathead{padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel)}
.msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:78%;padding:8px 11px;border-radius:10px;background:var(--panel2);white-space:pre-wrap;overflow-wrap:anywhere}
.msg small{display:block;color:var(--muted);font-size:11px;margin-bottom:2px}
.msg.out{align-self:flex-end;background:#12365f}
.msg.visitor{background:var(--panel2)}
.msg.internal{background:var(--int);border:1px dashed var(--warn);align-self:center;max-width:90%}
.msg.bot{background:#27193f;border:1px solid #6e40c9}
.composer{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--panel)}
.composer textarea{height:44px;resize:none}
.hint{padding:0 12px 6px;color:var(--muted);font-size:12px;background:var(--panel)}
.side{overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}
.side h3{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kv{display:grid;grid-template-columns:110px 1fr;gap:2px 8px;font-size:12.5px}
.kv span:nth-child(odd){color:var(--muted)}.kv span{overflow-wrap:anywhere}
.btnrow{display:flex;gap:6px;flex-wrap:wrap}
.tl{font-size:12px;color:var(--muted)}.tl div{padding:2px 0;border-bottom:1px dotted var(--line);overflow-wrap:anywhere}
.empty{color:var(--muted);padding:24px;text-align:center}
.drawer{border-top:1px solid var(--line);background:var(--panel);max-height:38vh;display:flex;flex-direction:column}
.drawer .bar{display:flex;gap:8px;align-items:center;padding:6px 12px;border-bottom:1px solid var(--line)}
.drawer .bar .grow{flex:1}
.drawer pre,.logs{margin:0;overflow:auto;padding:8px 12px;font:12px/1.4 ui-monospace,Consolas,monospace;flex:1;white-space:pre-wrap}
.lg{padding:1px 0}.lg .l-debug{color:var(--muted)}.lg .l-info{color:var(--accent)}.lg .l-warn{color:var(--warn)}.lg .l-error{color:var(--err)}
.lg .sc{color:#a371f7}.lg .ts{color:var(--muted)}
.diagbox{padding:8px 12px;overflow:auto;font-size:12.5px}
@media(max-width:900px){.main{grid-template-columns:1fr}.col,.chat{border-right:0;border-bottom:1px solid var(--line);max-height:50vh}.side{max-height:40vh}}
