:root{--navy:#14213d;--navy2:#1f3260;--accent:#fca311;--bg:#f4f6fa;--card:#fff;--line:#e3e7ef;--muted:#6b7488;--ok:#1a8f4c;--bad:#c0392b}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:#1d2433;font-size:14px}
a{color:var(--navy2)}
header{background:var(--navy);color:#fff;padding:0 16px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-height:52px}
header .logo{font-weight:700;letter-spacing:.3px}
header nav{display:flex;gap:4px;flex-wrap:wrap}
header nav a{color:#cfd6e6;text-decoration:none;padding:8px 12px;border-radius:6px}
header nav a.on,header nav a:hover{background:var(--navy2);color:#fff}
header .right{margin-left:auto}
header .right a{color:#cfd6e6;text-decoration:none}
main{padding:18px;max-width:1500px;margin:0 auto}
h1{font-size:20px;margin:4px 0 14px}
h2{font-size:16px;margin:18px 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
.stat .v{font-size:24px;font-weight:700;color:var(--navy)}
.stat .l{color:var(--muted);font-size:12px;margin-top:2px}
table{width:100%;border-collapse:collapse;background:var(--card)}
th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#eef1f7;font-size:12px;color:#3b4560;position:sticky;top:0}
td.n,th.n{text-align:right;white-space:nowrap}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px}
.btn{display:inline-block;border:0;border-radius:6px;padding:7px 12px;background:var(--navy2);color:#fff;cursor:pointer;font-size:13px;text-decoration:none}
.btn.sec{background:#e6e9f0;color:#1d2433}
.btn.ok{background:var(--ok)}
.btn.bad{background:var(--bad)}
.btn.sm{padding:4px 8px;font-size:12px}
input[type=text],input[type=password],input[type=number],select{padding:7px 9px;border:1px solid #c9cfdb;border-radius:6px;font-size:14px;width:100%;max-width:420px}
input.sm{width:70px}
label{display:block;margin:10px 0 4px;color:#3b4560}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.muted{color:var(--muted)}
.tag{display:inline-block;padding:2px 7px;border-radius:10px;font-size:11px;background:#eef1f7;margin:1px}
.tag.bad{background:#fdecea;color:var(--bad)}
.tag.ok{background:#e7f6ee;color:var(--ok)}
.pos{color:var(--ok);font-weight:600}
.neg{color:var(--bad);font-weight:600}
img.thumb{width:54px;height:54px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px}
.title{max-width:380px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.dot.on{background:var(--ok)}.dot.off{background:var(--bad)}
.filters a{margin-right:6px}
.filters a.on{font-weight:700;text-decoration:none;color:#000}
.login{max-width:340px;margin:12vh auto}
.inline{display:inline}
.ev{font-size:12px;border-bottom:1px solid var(--line);padding:5px 0}
.ev .a{color:var(--muted);margin-right:6px}
.ev.error{color:var(--bad)}
