:root{--bg:#0a0b0d;--panel:#12151a;--line:#272b32;--muted:#8d96a5;--text:#f4f6f8;--red:#e31b23;--red2:#ff3940}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,system-ui,Segoe UI,Arial,sans-serif}a{color:#fff;text-decoration:none}.topbar{height:66px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#0d0f12;position:sticky;top:0;z-index:5}.brand{font-weight:900;letter-spacing:.6px}.brand span{color:var(--red)}.brand small{font-weight:600;color:var(--muted);margin-left:10px}.brand.big{font-size:27px}.topuser{display:flex;gap:18px;align-items:center;color:var(--muted)}.shell{display:flex;min-height:calc(100vh - 66px)}.sidebar{width:230px;border-right:1px solid var(--line);padding:18px;background:#0d0f12}.sidebar a{display:block;padding:11px 12px;border-radius:8px;margin:3px 0;color:#d9dde4}.sidebar a:hover{background:#171b20}.content{flex:1;padding:28px;max-width:1500px}h1{font-size:25px;margin:0 0 22px}h2{font-size:18px}h3{font-size:14px;color:#cbd1da;margin-top:22px}.cards{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:16px}.stat,.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}.stat b{font-size:30px;display:block}.stat span,.muted{color:var(--muted)}.actions{margin:20px 0}.button,button{background:var(--red);color:white;border:0;border-radius:8px;padding:10px 15px;font-weight:700;cursor:pointer}.button:hover,button:hover{background:var(--red2)}.button.small{padding:6px 10px;font-size:12px}.loginwrap,.setup{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(430px,100%);padding:34px}.login h2{margin-bottom:22px}.login form,.setup form{display:grid;gap:15px}label{display:grid;gap:6px;color:#d8dde5}input,select,textarea{width:100%;background:#0b0d10;color:#fff;border:1px solid #30353e;border-radius:8px;padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:#6f7682}.error,.notice{padding:11px 13px;border-radius:8px;margin:12px 0}.error{background:#361317;border:1px solid #7f222a}.notice{background:#132d1d;border:1px solid #22683a}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.full{grid-column:1/-1}.checks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px}.checks label{display:flex;align-items:center;background:#0b0d10;border:1px solid #2b3038;padding:10px;border-radius:8px}.checks input{width:auto}.checks small{margin-left:auto;color:var(--muted)}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;background:var(--panel)}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:#9ba4b2;font-size:12px;text-transform:uppercase}td a{color:#ff646a}.badge{background:#20242b;padding:5px 8px;border-radius:6px;font-size:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}dl{display:grid;grid-template-columns:120px 1fr;gap:7px 14px}dt{color:var(--muted)}dd{margin:0}.file{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:11px 0}.file small{color:var(--muted)}.uploadbox{display:grid;grid-template-columns:1fr 130px auto;gap:8px;margin-top:16px}.chat{max-height:400px;overflow:auto}.msg{padding:12px 0;border-bottom:1px solid var(--line)}.msg span{color:var(--muted);font-size:11px;margin-left:8px}.msg p{margin:6px 0}.chatinput{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:14px}.setup .card{width:min(620px,100%)}code{background:#090a0c;padding:2px 5px;border-radius:4px}@media(max-width:900px){.sidebar{width:180px}.cards,.formgrid,.grid2{grid-template-columns:1fr}.checks{grid-template-columns:1fr 1fr}.full{grid-column:auto}}@media(max-width:650px){.shell{display:block}.sidebar{width:auto;border-right:0;border-bottom:1px solid var(--line);display:flex;overflow:auto}.sidebar a{white-space:nowrap}.content{padding:18px}.topuser span{display:none}.cards{grid-template-columns:1fr}.checks{grid-template-columns:1fr}.uploadbox,.chatinput{grid-template-columns:1fr}}
.statusbar{display:grid;grid-template-columns:1fr auto;gap:8px;margin:14px 0}
