:root{
  --bg:#f4f6fa;--card:#fff;--tx:#1b2430;--mut:#667085;--line:#e4e8ef;--pri:#1a73e8;--pri-d:#1558b0;
  --ok:#2e7d32;--kech:#f9a825;--bugun:#ef6c00;--uzoq:#c62828;--yoq:#6d4c41;
  --ok-bg:#e8f5e9;--kech-bg:#fff8e1;--bugun-bg:#fff3e0;--uzoq-bg:#ffebee;--yoq-bg:#efebe9;--shadow:0 1px 3px rgba(16,24,40,.08);
}
:root[data-theme=dark]{
  --bg:#0f1520;--card:#18202e;--tx:#e6ebf3;--mut:#98a2b3;--line:#273246;--pri:#6aa6ff;--pri-d:#8fbaff;
  --ok:#66bb6a;--kech:#ffca28;--bugun:#ffa040;--uzoq:#ef6b6b;--yoq:#bcaaa4;
  --ok-bg:#16301a;--kech-bg:#3a3010;--bugun-bg:#3a2510;--uzoq-bg:#3b1a1a;--yoq-bg:#2c2420;--shadow:none;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--pri);text-decoration:none}
.hidden{display:none!important}
.muted{color:var(--mut)}.small{font-size:12px}
.shell{display:flex;min-height:100vh}
.side{width:230px;background:var(--card);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.logo{font-weight:700;font-size:18px;padding:4px 10px 16px}
.side nav a{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;color:var(--tx);margin-bottom:2px}
.side nav a:hover{background:var(--bg)}
.side nav a.on{background:var(--pri);color:#fff}
.side-foot{margin-top:auto;padding:10px}
.pill{background:var(--uzoq);color:#fff;border-radius:99px;padding:0 7px;font-size:11px;margin-left:auto}
.pill:empty{display:none}
.main{flex:1;min-width:0}
.top{display:flex;gap:10px;align-items:center;padding:12px 22px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.search{flex:1}
.search input{width:100%;max-width:520px;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--tx)}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--tx);cursor:pointer;font:inherit}
.btn:hover{border-color:var(--pri)}
.btn.primary{background:var(--pri);color:#fff;border-color:var(--pri)}
.btn.small{padding:5px 10px;font-size:12px}
.btn.icon{padding:8px 11px}
.menu{display:none}
.view{padding:22px;max-width:1500px}
h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 10px}
.sub{color:var(--mut);margin-bottom:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px}
.kpi{cursor:pointer;transition:.15s;position:relative;overflow:hidden}
.kpi:hover{transform:translateY(-2px);border-color:var(--pri)}
.kpi .n{font-size:30px;font-weight:700;line-height:1.1}
.kpi .l{color:var(--mut);font-size:12.5px;margin-top:2px}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c,var(--pri))}
.row2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);margin-bottom:16px}
.row3{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.gauge{display:flex;align-items:center;gap:18px}
.gauge .big{font-size:38px;font-weight:700}
.tcard{cursor:pointer;transition:.15s}
.tcard:hover{border-color:var(--pri);transform:translateY(-2px)}
.tcard .hd{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.tcard .nm{font-weight:600}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600}
.s-Faol{background:var(--ok-bg);color:var(--ok)}.s-Kechikkan{background:var(--kech-bg);color:#b78100}
:root[data-theme=dark] .s-Kechikkan{color:var(--kech)}
.s-BugunYoq{background:var(--bugun-bg);color:var(--bugun)}.s-Uzoq{background:var(--uzoq-bg);color:var(--uzoq)}.s-Yoq{background:var(--yoq-bg);color:var(--yoq)}
.bar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--line)}
.bar i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12px;color:var(--mut)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;color:var(--mut);font-weight:600;white-space:nowrap;cursor:pointer;user-select:none}
th.nosort{cursor:default}
tbody tr{cursor:pointer}tbody tr:hover{background:var(--bg)}
.tw{overflow:auto}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.filters select,.filters input{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--tx);font:inherit}
.fchip{padding:6px 12px;border:1px solid var(--line);border-radius:99px;cursor:pointer;background:var(--card);font-size:13px}
.fchip.on{background:var(--pri);color:#fff;border-color:var(--pri)}
.ball{display:inline-block;min-width:34px;text-align:center;border-radius:8px;padding:2px 6px;font-weight:700;font-size:12.5px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.ins{display:flex;flex-direction:column;gap:8px}
.ins div{padding:10px 12px;border-radius:10px;background:var(--bg);border-left:4px solid var(--c,var(--pri))}
.list .it{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}
.list .it:last-child{border:0}
.drawer{position:fixed;inset:0;z-index:20}
.drawer-bg{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.drawer-body{position:absolute;right:0;top:0;bottom:0;width:min(640px,100%);background:var(--bg);overflow:auto;padding:18px;box-shadow:-8px 0 30px rgba(0,0,0,.25)}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0}
.kv div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.kv b{display:block;font-size:16px}.kv span{color:var(--mut);font-size:12px}
.sab{margin:8px 0}.sab .t{display:flex;justify-content:space-between;gap:10px}
.sab .b{height:6px;background:var(--line);border-radius:4px;margin-top:4px}.sab .b i{display:block;height:100%;border-radius:4px;background:var(--pri)}
.strip{display:flex;gap:3px}.strip i{flex:1;height:26px;border-radius:4px;background:var(--line);position:relative}
.chart{width:100%;height:150px}
.chart text{fill:var(--mut);font-size:10px}
.login{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:50}
.login-card{width:340px;display:flex;flex-direction:column;gap:12px}
.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.login-card input{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--tx)}
.err{color:var(--uzoq);min-height:18px;font-size:13px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:10px 18px;border-radius:10px;z-index:60}
#map{height:calc(100vh - 190px);min-height:420px;border-radius:14px;border:1px solid var(--line)}
.empty{padding:30px;text-align:center;color:var(--mut)}
.skel{background:linear-gradient(90deg,var(--line),transparent,var(--line));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:10px;height:70px}
@keyframes sk{to{background-position:-200% 0}}
@media (max-width:900px){
  .side{position:fixed;left:-250px;z-index:30;transition:.2s;box-shadow:4px 0 20px rgba(0,0,0,.2)}
  .side.open{left:0}.menu{display:inline-flex}
  .row2{grid-template-columns:1fr}.view{padding:14px}.top{padding:10px 12px;flex-wrap:wrap}
  #btnPdf,#btnOut{display:none}
}
@media print{.side,.top,.filters,.btn{display:none!important}}

.pill2{background:var(--bugun)}
.v-Yangi{background:var(--uzoq-bg);color:var(--uzoq)}.v-Jarayonda{background:var(--kech-bg);color:#b78100}.v-Hal{background:var(--ok-bg);color:var(--ok)}
.heat{border-collapse:separate;border-spacing:2px;width:auto}
.heat th,.heat td{padding:0;border:0;text-align:center;cursor:default}
.heat td.c{width:22px;height:22px;border-radius:4px;font-size:9px;color:#0006}
.heat td.nm{padding:0 10px 0 0;text-align:left;white-space:nowrap;font-size:13px;cursor:pointer}
.heat th{font-size:9px;font-weight:400;color:var(--mut);cursor:default}
.hv{background:var(--bg);border-radius:10px;padding:10px;margin-top:10px}
.hv textarea,.hv select{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--tx);font:inherit;margin:4px 0 8px}
.ev{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start}
.ev .ic{font-size:18px}
