@font-face{font-family:Montserrat;src:url(/static/Montserrat.ttf) format("truetype");font-weight:100 900}
:root{--am:#FFD200;--vm:#BF0811;--vmh:#A0060E;--az:#003489;--azt:#082478;--bg:#F5F7FB;--bd:#E6E9F0;--tx:#1d2433;--mu:#6b7385;--ok:#16a34a;--off:#dc2626}
*{box-sizing:border-box}body{margin:0;font-family:Montserrat,Arial,sans-serif;background:var(--bg);color:var(--tx);font-size:14px}
a{color:var(--az)}.wrap{display:flex;min-height:100vh}
.side{width:236px;background:#fff;border-right:1px solid var(--bd);padding:20px 14px;position:sticky;top:0;height:100vh;flex-shrink:0}
.side img{width:170px;margin:0 8px 6px}.side .pill{display:inline-block;background:var(--am);color:var(--azt);font-weight:800;font-size:11px;border-radius:99px;padding:3px 10px;margin:0 8px 18px}
.side a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--tx);font-weight:600;margin-bottom:2px}
.side a.on,.side a:hover{background:#FFF6CC;color:var(--azt)}.side a.on{box-shadow:inset 3px 0 0 var(--vm)}
.side .me{position:absolute;bottom:16px;left:14px;right:14px;font-size:12px;color:var(--mu)}
main{flex:1;padding:24px 28px;min-width:0}
h1{font-size:22px;margin:0 0 4px;color:var(--azt);font-weight:800}.muted{color:var(--mu)}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
.card{background:#fff;border:1px solid var(--bd);border-radius:16px;padding:16px 18px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.kpi .l{font-size:12px;color:var(--mu);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.kpi .v{font-size:30px;font-weight:800;color:var(--azt);margin-top:4px}
.kpi .d{font-size:12px;color:var(--mu)}.kpi.red{border-top:4px solid var(--vm)}.kpi.yel{border-top:4px solid var(--am)}.kpi.blu{border-top:4px solid var(--az)}.kpi.grn{border-top:4px solid var(--ok)}
.grid2{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}@media(max-width:1000px){.grid2{grid-template-columns:1fr}.side{display:none}main{padding:16px}}
h2{font-size:15px;margin:0 0 12px;color:var(--azt)}
table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--mu);font-weight:700;padding:8px;border-bottom:1px solid var(--bd)}
td{padding:9px 8px;border-bottom:1px solid #f0f2f6;vertical-align:middle}
.btn{display:inline-block;background:var(--vm);color:#fff;border:0;border-radius:10px;padding:9px 16px;font:700 13px Montserrat,Arial;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--vmh)}.btn.sec{background:#fff;color:var(--az);border:1px solid var(--bd)}.btn.sm{padding:5px 10px;font-size:12px}
input,select,textarea{font:500 13px Montserrat,Arial;padding:8px 10px;border:1px solid #d5dae4;border-radius:9px;background:#fff;color:var(--tx)}
form.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:end}form.inline label{display:flex;flex-direction:column;font-size:11px;color:var(--mu);font-weight:700;gap:4px}
.badge{display:inline-block;font-size:11px;font-weight:700;border-radius:99px;padding:3px 9px}.b-on{background:#dcfce7;color:#166534}.b-off{background:#fee2e2;color:#991b1b}
.b-new{background:#FFF3B0;color:#7a5b00}.b-rec{background:#E0E9FF;color:var(--az)}.b-role{background:#eef1f6;color:#334}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.dot.on{background:var(--ok)}.dot.off{background:var(--off)}
pre{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:14px;overflow:auto;font-size:12px;max-height:420px;white-space:pre-wrap;word-break:break-all}
.city{margin-bottom:16px}.nasrow{border:1px solid var(--bd);border-radius:12px;margin:10px 0;overflow:hidden}
.nashead{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#FAFBFD;gap:10px;flex-wrap:wrap}
.heat{display:grid;grid-template-columns:34px repeat(24,1fr);gap:2px;font-size:10px;color:var(--mu)}.heat div{height:18px;border-radius:3px}
.bar{height:10px;background:#eef1f6;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--vm)}
.err{background:#FDECEC;color:var(--vm);padding:10px;border-radius:10px;font-weight:700;margin-bottom:12px}
.legend span{display:inline-flex;align-items:center;gap:6px;margin-right:14px;font-size:12px;color:var(--mu)}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.okmsg{background:#dcfce7;color:#166534;padding:10px;border-radius:10px;font-weight:700;margin-bottom:12px}
.tabs{display:flex;gap:6px;margin:-6px 0 16px;flex-wrap:wrap}.tabs a{padding:7px 14px;border-radius:99px;background:#fff;border:1px solid var(--bd);text-decoration:none;font-weight:700;font-size:12px;color:var(--az)}
.tabs a.on{background:var(--am);border-color:var(--am);color:var(--azt)}
.danger{border:1px solid #f5c2c2;background:#FFF7F7}.danger h2{color:var(--vm)}
.log{background:#F8FAFC;color:var(--tx);border:1px solid var(--bd)}.log .ok{color:#166534}.log .bad{color:var(--vm);font-weight:700}
.b-warn{background:#FFF3B0;color:#7a5b00}
.mini{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}.mini div{background:#FAFBFD;border:1px solid var(--bd);border-radius:10px;padding:8px 10px}.mini b{display:block;font-size:18px;color:var(--azt)}.mini span{font-size:11px;color:var(--mu);font-weight:700;text-transform:uppercase}
