:root{color-scheme:dark;--bg:#070c1b;--surface:#10182b;--line:#26324c;--muted:#a1b0cc;--blue:#93dcff;--purple:#a890ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#eef3ff;font:16px/1.5 'Segoe UI',sans-serif}.grid{position:fixed;inset:0;pointer-events:none;background:linear-gradient(transparent 39px,#1b294529 40px),linear-gradient(90deg,transparent 39px,#1b294529 40px);background-size:40px 40px;mask-image:linear-gradient(#000,transparent)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#18233a;border-radius:9px;padding:11px 17px}button:hover{border-color:var(--blue);background:#20314e}button:disabled{opacity:.5;cursor:wait}button.primary{background:linear-gradient(110deg,#8bdcff,#a48bff);color:#081020;border:0;font-weight:700;display:flex;justify-content:space-between;gap:24px}input,select,textarea{width:100%;background:#090f1e;border:1px solid var(--line);border-radius:8px;color:#fff;padding:12px;margin:6px 0 15px}input:focus,textarea:focus{outline:2px solid #92d9ff}label{display:block;font-size:14px;color:#c6d2e9}h1,h2,h3,p{margin:0 0 18px}h1{font-size:36px;letter-spacing:-1px;line-height:1.16}h2{font-size:26px;letter-spacing:-.6px}h3{font-size:18px}p,small{color:var(--muted)}small{font-size:13px}.eyebrow{display:block;font:12px/1.5 Consolas,monospace;letter-spacing:2px;color:var(--blue);margin-bottom:16px}.card{background:linear-gradient(130deg,#142039ec,#0e1426ed);border:1px solid var(--line);border-radius:18px;padding:28px}.card>button{margin-top:8px}#login{position:relative;max-width:1120px;min-height:100vh;margin:auto;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:100px;padding:48px}.brand-hero>img{width:145px;margin:0 0 24px -20px}.brand-hero h1{font-size:52px}.brand-hero p{max-width:430px}.brand-hero small{display:block;margin-top:48px;font-family:Consolas,monospace;font-size:11px;letter-spacing:1px}#loginForm{padding:38px}#loginForm .primary{width:100%;margin-top:10px}#loginError{color:#ffabb5;font-size:14px;margin-top:12px}#shell{position:relative;min-height:100vh}#shell:not([hidden]){display:flex}aside{position:fixed;inset:0 auto 0 0;width:248px;background:#080e1eea;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column}.wordmark{display:flex;align-items:center;font-size:25px;font-weight:650;gap:5px;margin-bottom:48px}.wordmark img{width:48px}.wordmark span{font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:8px}nav{display:grid;gap:8px}nav button{text-align:left;background:transparent;border-color:transparent;color:var(--muted);padding:12px 15px}nav button.active{background:#192441;color:var(--blue);border-color:#334563}.aside-bottom{margin-top:auto;display:grid;gap:14px;padding:12px}.aside-bottom span{font-size:14px}.aside-bottom small{font-size:12px}main{margin-left:248px;padding:44px 48px;width:calc(100% - 248px);max-width:1660px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}header h1{margin:0}header .eyebrow{margin-bottom:12px}#notice{margin-bottom:20px;color:var(--blue);white-space:pre-wrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.stat strong{font-size:42px;font-weight:550;display:block;margin:12px 0}.stat small{color:var(--blue)}.cols{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.kv{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);gap:20px}.kv:last-child{border:0}.badge{font:12px Consolas,monospace;color:var(--blue);background:#20314b;padding:4px 8px;border-radius:5px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:15px 12px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:500}td button{font-size:13px;padding:6px 10px;margin-right:6px}td select{width:115px;margin:0;padding:7px}.message{display:flex;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.avatar{width:42px;height:42px;border-radius:10px;background:linear-gradient(130deg,#2c576d,#483b73);display:grid;place-items:center;flex-shrink:0}.message-body{flex:1;min-width:0;overflow-wrap:anywhere}.message-body p{white-space:pre-wrap;color:#e2e9f7;margin:8px 0}.message-body time{font-size:12px;color:var(--muted);margin-left:10px}.message-body img{max-width:100%;max-height:260px;border-radius:10px;display:block;margin-top:12px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.empty{padding:38px;text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;color:#677895;font:11px Consolas,monospace;letter-spacing:2px;margin-top:48px}#content{animation:enter .25s ease-out}a{color:var(--blue)}@keyframes enter{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:1000px){main{padding:28px 24px}.cols{grid-template-columns:1fr}.stats{gap:10px}.card{padding:20px}#login{gap:35px;padding:30px}.brand-hero h1{font-size:42px}}@media(max-width:720px){#login{grid-template-columns:1fr;gap:25px}.brand-hero{display:none}aside{position:static;width:100%;padding:12px}.wordmark{margin:0 0 12px}.aside-bottom{display:flex;align-items:center;padding:4px}.aside-bottom small{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap}#shell:not([hidden]){display:block}main{margin:0;width:100%;padding:24px 16px}.stats{grid-template-columns:1fr}.stat strong{font-size:32px}.stat{display:flex;gap:15px;align-items:center;justify-content:space-between}.stat p,.stat strong{margin:0}h1{font-size:30px}footer span{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
.role-owner{color:#c3a2ff;background:#34244d}.role-admin{color:#ffb68e;background:#442d26}.role-mod{color:#81dec6;background:#173d3b}.role-member{color:#93dcff;background:#20314b}
.chat-stream{max-height:55vh;overflow:auto;margin:18px 0}.chat-compose{border-top:1px solid var(--line);padding-top:22px}.chat-compose small{display:block;margin-bottom:14px}.chat-compose button{margin-top:12px}.message-body{min-width:0;overflow-wrap:anywhere}.message-body p{white-space:pre-wrap}
