:root{--bg:#0e0b26;--panel:#171338;--line:#2a2550;--txt:#e9e7ff;--mut:#9a96c8;--acc:#6c5ce7;--ok:#27ae60;--bad:#e74c3c;--warn:#f39c12;--info:#3498db}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif;display:flex;min-height:100vh}
a{color:#a99cff;text-decoration:none}a:hover{text-decoration:underline}
.side{width:210px;background:var(--panel);border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{font-weight:700;font-size:18px;margin-bottom:18px}.side nav{display:flex;flex-direction:column;gap:2px;flex:1}
.side nav a{padding:9px 12px;border-radius:8px;color:var(--txt)}.side nav a.on,.side nav a:hover{background:var(--acc);text-decoration:none}
.badge{background:var(--bad);border-radius:10px;padding:0 7px;font-size:11px;margin-left:4px}.logout{color:var(--mut);font-size:13px}
main{flex:1;padding:24px;min-width:0}h1{margin:0 0 18px;font-size:22px}h2{font-size:16px;margin:22px 0 10px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.card b{display:block;font-size:22px}.card span{color:var(--mut);font-size:12px}
.box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px}
table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
th,td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase}
tr:last-child td{border-bottom:0}.tw{overflow-x:auto}
input,select,textarea{width:100%;background:#0e0b26;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit}
textarea{min-height:90px}label{display:block;color:var(--mut);font-size:12px;margin:10px 0 4px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer;font:inherit}.btn:hover{text-decoration:none;filter:brightness(1.1)}
.btn.ok{background:var(--ok)}.btn.bad{background:var(--bad)}.btn.gray{background:#3a3566}.btn.sm{padding:4px 10px;font-size:12px}
form.inline{display:inline}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px}.flash.ok{background:#173d2a;border:1px solid var(--ok)}.flash.bad{background:#451d1d;border:1px solid var(--bad)}
.pill{padding:2px 9px;border-radius:10px;font-size:12px;background:#3a3566}.pill.ok{background:#173d2a;color:#6ee7a0}.pill.bad{background:#451d1d;color:#ff8f8f}.pill.warn{background:#4a3410;color:#ffc766}.pill.info{background:#143049;color:#8fd0ff}
.pager{margin:14px 0;display:flex;gap:6px}.pager a{padding:4px 10px;border:1px solid var(--line);border-radius:6px}.pager a.on{background:var(--acc)}
.mut{color:var(--mut)}.login{margin:auto;width:340px;max-width:92vw}
@media(max-width:760px){body{flex-direction:column}.side{width:100%;height:auto;position:static}.side nav{flex-direction:row;flex-wrap:wrap}}
