:root{--primary:#1560F1;--primary-h:#0b4fd1;--soft:#e7effe;--bg:#f5f8fd;--surf:#fff;--ink:#0f172a;--txt:#334155;--mut:#64748b;--mut2:#94a3b8;--bd:#e6ebf3;--r:14px;
 --ok:#16a34a;--ok-s:#e8f7ee;--warn:#f59e0b;--warn-s:#fef3e2;--bad:#dc2626;--bad-s:#fdeaea;--orange:#f97316;--orange-s:#ffede0;--sh:0 1px 3px rgba(15,23,42,.05),0 8px 30px -18px rgba(15,23,42,.15)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font-family:'Inter',system-ui,sans-serif;line-height:1.55;background-image:radial-gradient(1100px 560px at 50% -280px,rgba(21,96,241,.07),transparent 60%);background-repeat:no-repeat}
h1,h2,h3{font-family:'Space Grotesk','Inter',sans-serif;color:var(--ink);letter-spacing:-.02em;margin:0}
a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-h)}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.topbar{background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:20}
.topbar__in{display:flex;align-items:center;gap:22px;height:62px}
.brand{font-family:'Space Grotesk';font-weight:700;font-size:1.2rem}.brand__mark{background:linear-gradient(90deg,var(--primary),#38bdf8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.brand__sub{color:var(--mut2);font-weight:600}
.nav{display:flex;gap:4px;margin-left:6px}.nav a{color:var(--mut);font-weight:600;font-size:.92rem;padding:.5rem .8rem;border-radius:9px}.nav a:hover{background:var(--soft);color:var(--primary)}.nav a.active{background:var(--soft);color:var(--primary)}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.88rem}.who{color:var(--mut)}.logout{color:var(--mut)}
.main{padding:28px 20px 40px}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:1.6rem}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);padding:18px 20px}
.stat .k{color:var(--mut);font-size:.82rem;font-weight:600}.stat .v{font-size:2rem;font-weight:800;font-family:'Space Grotesk'}
.stat.ok .v{color:var(--ok)}.stat.warn .v{color:var(--warn)}.stat.bad .v{color:var(--bad)}.stat.orange .v{color:var(--orange)}
.section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut2);font-weight:700;margin:26px 0 12px}
.tbl{width:100%;border-collapse:collapse;background:var(--surf);border:1px solid var(--bd);border-radius:12px;overflow:hidden;box-shadow:var(--sh)}
.tbl th,.tbl td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--bd);font-size:.92rem}
.tbl th{background:#f8fafc;color:var(--mut);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em}
.tbl tr:last-child td{border-bottom:0}.tbl tr:hover td{background:#fafcff}
.mono{font-family:'JetBrains Mono',monospace;font-size:.85em}
.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;padding:.2rem .6rem;border-radius:999px}.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.ok{color:var(--ok);background:var(--ok-s)}.pill.warn{color:var(--warn);background:var(--warn-s)}.pill.bad{color:var(--bad);background:var(--bad-s)}.pill.orange{color:var(--orange);background:var(--orange-s)}.pill.muted{color:var(--mut);background:#eef2f7}
.btn{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;padding:.55rem 1rem;border-radius:10px;border:1px solid transparent;cursor:pointer}
.btn--p{background:linear-gradient(135deg,var(--primary),var(--primary-h));color:#fff;box-shadow:0 6px 18px -8px rgba(21,96,241,.5)}.btn--p:hover{filter:brightness(1.06);color:#fff}
.btn--g{background:#fff;border-color:var(--bd);color:var(--txt)}.btn--g:hover{border-color:var(--primary);color:var(--primary)}.btn--sm{padding:.35rem .7rem;font-size:.82rem}
.row{display:grid;gap:14px}.row-2{grid-template-columns:1fr 1fr}.row-3{grid-template-columns:1fr 1fr 1fr}
label{display:block;font-weight:600;color:var(--ink);font-size:.88rem}
.input{width:100%;margin-top:6px;padding:.6rem .8rem;border:1px solid var(--bd);border-radius:10px;font:inherit;background:#fff;color:var(--ink)}
.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(21,96,241,.15)}
.muted{color:var(--mut)}.empty{color:var(--mut2);text-align:center;padding:26px}
.alert{padding:.8rem 1rem;border-radius:10px;margin-bottom:16px}.alert--ok{background:var(--ok-s);color:#166534}.alert--error{background:var(--bad-s);color:#991b1b}.alert--info{background:var(--soft);color:#0b3aa0}
.foot{color:var(--mut2);text-align:center;font-size:.84rem;padding:24px 0 30px}
.chart{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:8px}
.chart .bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.chart .seg{border-radius:3px 3px 0 0}.chart .seg.s{background:var(--ok)}.chart .seg.b{background:var(--bad)}.chart .seg.d{background:var(--warn)}
.chart .lab{font-size:.62rem;color:var(--mut2);text-align:center;margin-top:4px}
.timeline{border-left:2px solid var(--bd);padding-left:20px;margin-top:8px}
.tl{position:relative;padding-bottom:18px}.tl:last-child{padding-bottom:0}
.tl::before{content:"";position:absolute;left:-27px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:3px solid #fff;box-shadow:0 0 0 2px var(--soft)}
.tl__h{font-weight:700;color:var(--ink);font-size:.92rem}.tl__t{color:var(--mut2);font-size:.8rem;margin:2px 0 4px}.tl__m{color:var(--txt);font-size:.9rem}
.login-wrap{max-width:400px;margin:9vh auto}.login-card{background:#fff;border:1px solid var(--bd);border-radius:16px;box-shadow:var(--sh);padding:28px}
@media(max-width:820px){.cards{grid-template-columns:repeat(2,1fr)}.row-2,.row-3{grid-template-columns:1fr}.nav{display:none}}
