:root{--bg:#f3f5f8;--card:#fff;--tx:#18222d;--mu:#5d6a7a;--ac:#1f6feb;--ac2:#e36414;--ok:#1a7f37;--bad:#b42318;--warn:#b7791f;--bd:#e0e6ed;--side:#0f2a36;--sidetx:#cfe0e6;--r:12px}
@media(prefers-color-scheme:dark){:root{--bg:#0e141b;--card:#17202a;--tx:#e8edf3;--mu:#9aa6b6;--ac:#5aa0ff;--ac2:#f0883e;--ok:#3fb950;--bad:#f0746b;--warn:#e3b341;--bd:#2a3543;--side:#0a1a22}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.5 -apple-system,"Segoe UI",Roboto,Inter,sans-serif}
a{color:var(--ac)}h1{font-size:22px;margin:0 0 4px}h2{font-size:17px;margin:0 0 8px}h3{font-size:15px;margin:14px 0 6px}
.shell{display:flex;min-height:100vh}.side{width:220px;background:var(--side);color:var(--sidetx);padding:18px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;flex-shrink:0}
.brand{font-weight:800;font-size:20px;color:#fff;padding:2px 10px 16px}.brand span{color:var(--ac2)}.brand small{font-weight:500;font-size:12px;color:#8fb0bc;margin-left:4px}
.side nav{display:flex;flex-direction:column;gap:2px;flex:1}.side nav a{color:var(--sidetx);text-decoration:none;padding:9px 12px;border-radius:9px;display:flex;justify-content:space-between;align-items:center;font-size:14.5px}
.side nav a:hover{background:rgba(255,255,255,.08)}.side nav a.on{background:var(--ac);color:#fff}.side .n{background:var(--ac2);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px}
.me{border-top:1px solid rgba(255,255,255,.12);padding:12px 10px 0;font-size:12.5px}.me b{color:#fff;display:block}.me form{margin-top:8px}.me button{width:100%;background:rgba(255,255,255,.1);color:#fff;border:0}
.content{flex:1;min-width:0;padding:20px 22px 70px;max-width:1280px;margin:0 auto}.sub{color:var(--mu);font-size:13.5px;margin-bottom:14px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px;margin:12px 0}.card h2{display:flex;justify-content:space-between;align-items:center}
.grid{display:grid;gap:12px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.g2.obory{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}@media(max-width:1100px){.g2.obory{grid-template-columns:1fr}}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px}.kpi .v{font-size:28px;font-weight:700;line-height:1.1}.kpi .l{color:var(--mu);font-size:13px;margin-top:4px}.kpi .s{font-size:12px;color:var(--mu)}
.kpi.hl{border-color:var(--ac)}.kpi.ok .v{color:var(--ok)}.kpi.warn .v{color:var(--warn)}
table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th,table.t td{padding:8px 9px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}table.t th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--mu);white-space:nowrap}
table.t th a{color:var(--mu);text-decoration:none}table.t tr:hover td{background:rgba(127,127,127,.06)}table.t td.num,table.t th.num{text-align:right}.wrap{overflow-x:auto}
.pill{display:inline-block;font-size:12px;padding:1px 9px;border-radius:999px;border:1px solid var(--bd);background:var(--bg);white-space:nowrap}.pill.green{background:#e3f4e8;color:#14612d;border-color:#b9e2c5}.pill.red{background:#fde8e6;color:#8f1d12;border-color:#f3c0bb}
.pill.amber{background:#fdf3dc;color:#8a5a00;border-color:#f1dcA0}.pill.blue{background:#e3eefd;color:#16478f;border-color:#b9d2f5}.pill.grey{color:var(--mu)}
@media(prefers-color-scheme:dark){.pill.green{background:#12301c;color:#7ee29a;border-color:#1f5230}.pill.red{background:#3a1613;color:#ff9b92;border-color:#5a2420}.pill.amber{background:#37290a;color:#f0cb6a;border-color:#5a4410}.pill.blue{background:#112847;color:#9cc5ff;border-color:#1f4478}}
label{display:block;font-size:12px;color:var(--mu);margin:10px 0 3px;text-transform:uppercase;letter-spacing:.03em}
input[type=text],input[type=email],input[type=password],input[type=datetime-local],input[type=number],select,textarea{width:100%;font:inherit;color:var(--tx);background:var(--bg);border:1px solid var(--bd);border-radius:8px;padding:8px 10px}
textarea{min-height:120px;resize:vertical}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}.filters>*{width:auto;min-width:140px}
button,.btn{font:inherit;border:1px solid var(--bd);background:var(--card);color:var(--tx);padding:8px 14px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block}
button.ok{background:var(--ok);border-color:var(--ok);color:#fff}button.bad{color:var(--bad)}button.ac,.btn.ac{background:var(--ac);border-color:var(--ac);color:#fff}button.sm{padding:3px 9px;font-size:13px}
.msg{padding:10px 14px;border-radius:8px;margin:0 0 14px;background:var(--card);border:1px solid var(--ac)}.msg.err{border-color:var(--bad);color:var(--bad)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.tabs a{padding:6px 12px;border:1px solid var(--bd);border-radius:999px;color:var(--tx);text-decoration:none;font-size:14px;background:var(--card)}.tabs a.on{background:var(--ac);border-color:var(--ac);color:#fff}
.meta{color:var(--mu);font-size:13px;margin:4px 0 8px}.info{background:var(--bg);border-radius:8px;padding:8px 10px;font-size:14px;margin:8px 0}.empty{color:var(--mu);text-align:center;padding:36px 0}
details{margin-top:10px}summary{cursor:pointer;color:var(--mu)}iframe.prev{width:100%;height:760px;border:1px solid var(--bd);border-radius:8px;background:#fff}
.legend{display:flex;gap:14px;font-size:12.5px;color:var(--mu);margin-top:4px}.lg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.bar{height:8px;background:var(--bg);border-radius:99px;overflow:hidden;margin-top:6px}.bar>i{display:block;height:100%;background:var(--ac);border-radius:99px}
.tel{font-size:22px;font-weight:700;text-decoration:none}.login{max-width:400px;margin:9vh auto;padding:0 16px}.login .card{padding:24px}.brand.dark{color:var(--tx);font-size:26px;padding:0 0 4px}
#mapa{height:540px;border-radius:var(--r);border:1px solid var(--bd);z-index:0}.leg{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--mu);margin:8px 0}.leg i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.inl{display:inline}.inl button{padding:3px 9px;font-size:13px}.msgbox{white-space:pre-wrap;background:var(--bg);border-radius:8px;padding:10px 12px;font-size:14px}.msgbox.out{border-left:3px solid var(--ac)}.pw{font:700 20px/1.4 ui-monospace,Menlo,monospace;background:var(--bg);padding:8px 12px;border-radius:8px;display:inline-block}
@media(max-width:860px){.shell{display:block}.side{width:auto;height:auto;position:sticky;top:0;z-index:5;flex-direction:row;align-items:center;padding:8px;overflow-x:auto;gap:6px}.brand{padding:0 8px 0 4px;font-size:17px;white-space:nowrap}.brand small{display:none}.side nav{flex-direction:row;flex:0 0 auto}.side nav a{white-space:nowrap;padding:8px 10px}.me{border:0;padding:0 0 0 8px;white-space:nowrap}.me b,.me span{display:none}.me form{margin:0}.me button{width:auto;padding:6px 10px}.content{padding:14px 12px 60px}#mapa{height:60vh}.kpi .v{font-size:24px}}
tr.called>td{opacity:.62}tr.called>td:last-child{opacity:1}
@media(max-width:700px){
.hm{display:none}
h1{font-size:21px}
.filters{flex-direction:column;align-items:stretch}.filters>*{width:100%;max-width:none!important;flex:none}
.grid,.g2,.g3,.g4,.g2.obory{grid-template-columns:1fr 1fr!important}
.card{padding:12px}
button,.btn,input,select,textarea{min-height:42px;font-size:16px}
button.sm{min-height:38px;padding:6px 12px}
table.t{font-size:13px}table.t th,table.t td{padding:7px 6px}
.row{flex-wrap:wrap}
#mapa{height:55vh}
form.inl{display:inline-block;margin:2px 0}
}
@media(max-width:420px){.grid,.g2,.g3,.g4,.g2.obory{grid-template-columns:1fr!important}.kpi .v{font-size:22px}}
.grid>*,.content>*{min-width:0}svg{max-width:100%;height:auto}.content{overflow-x:hidden}
@media(max-width:420px){.grid.g4{grid-template-columns:1fr 1fr!important}.kpi .l{font-size:12px}.kpi{padding:10px}.kpi .v{font-size:20px}}
