/* ═══════════════ OSON POCHTA — yangi admin panel dizayn tizimi ═══════════════
 * REDIZAYN 2026-10 (spec 2026-10-08-redizayn-claude-design): Claude Design maketlari — Coinbase uslubi, OSON to'q sariq brendi,
 * Onest shrifti, faqat yorug' rejim. Tokenlar manbasi — maket `ds/tokens.css` (kontrast juftliklari u yerda tekshirilgan).
 * Tokenlar HEX bo'lishi SHART: `tms*.js` ularni `alphaHex(cv('--x'), a)` bilan shaffoflashtiradi.
 * Eski panel token NOMLARI (--panel-2, --line-2, --dim, --info, --fire ...) ham yangi qiymatlarga
 * bog'langan — modullar kodi o'zgarmay yangi ko'rinish oladi. 1-qismda faqat yorug' rejim. */

:root{
  /* Brend va neytral (maket ds/tokens.css) — yangi kod shularni ishlatadi */
  --brand:#EA580C; --brand-strong:#C9460C; --brand-strong-hover:#B03C08; --brand-soft:#FDEEE5; --brand-soft-hover:#FBE1D2;
  --brand-ink:#A93A07; --brand-tint:#FFF7F2;
  --surface:#FFFFFF; --surface-2:#F1F2F4; --surface-3:#E7E9EC; --line-strong:#D1D5DB;
  --text-2:#5B616E; --text-3:#7C8391; --inverse:#0A0B0D;
  --up:#098551; --up-soft:#E7F6EE; --down:#CF202F; --down-soft:#FDECEC; --warn-soft:#FEF3E2; --info-soft:#E8F1FD;
  --font:"Onest",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-pill:999px;
  --shadow-pop:0 8px 24px rgba(10,11,13,.12),0 2px 6px rgba(10,11,13,.06);
  --focus-ring:0 0 0 3px #FFFFFF,0 0 0 5px #C9460C;
  /* Eski token NOMLARI — yangi qiymatlar (modullar kodi o'zgarmay yangi ko'rinish oladi) */
  --sb-from:#FFFFFF; --sb-mid:#FFFFFF; --sb-to:#FFFFFF;
  --sb-text:#0A0B0D; --sb-muted:#5B616E; --sb-accent:#C9460C;
  --accent:#C9460C; --accent-2:#EA580C; --accent-ink:#FFFFFF; --accent-soft:#FDEEE5;
  --bg:#FFFFFF; --panel:#FFFFFF; --panel-2:#F1F2F4; --line:#E5E7EB; --line-2:#D1D5DB;
  --text:#0A0B0D; --label:#0A0B0D; --dim:#5B616E; --muted:#5B616E;
  --k1:#C9460C; --k2:#0B5CC7; --k3:#6D28D9; --k4:#9A5B00;
  --k1-bg:#FDEEE5; --k2-bg:#E8F1FD; --k3-bg:#F3EEFE; --k4-bg:#FEF3E2; --fail-bg:#FDECEC;
  --ok:#098551; --info:#0B5CC7; --warn:#9A5B00; --fail:#CF202F; --fire:#EA580C; --critical:#B42318;
  --radius:16px; --radius-sm:12px;
  --shadow:0 0 0 rgba(10,11,13,0);
  --sb-w:256px; --sb-w-min:72px; --top-h:64px;
  /* Filiallar xaritasi — viloyat iqlimi ranglari (tms-filial-xarita.js TMS_FX_CLIMATE) */
  /* issiq hududlar sarg'ishroq (foydalanuvchi talabi 2026-09-27): cho'l — xaki-yashil, dasht — limon, subtropik (Surxondaryo) — iliq sariq */
  --geo-desert:#B3C35C; --geo-oasis:#38BDF8; --geo-valley:#4ADE80; --geo-steppe:#C4D452; --geo-mount:#10B981; --geo-city:#0EA5E9; --geo-subtrop:#D6C64A;
  /* Chegaralar va yo'llar — o'zaro farqli (foydalanuvchi talabi 2026-09-27): viloyat — to'q ko'k-kulrang, tuman — oq; magistral — qizil,
     katta yo'l — to'q sariq, asosiy — kulrang; hammasi oq "yostiq" (casing) ustida */
  --geo-border:#1E3A5F; --geo-border-dist:#FFFFFF; --road-m:#DC2626; --road-a:#F59E0B; --road-r:#64748B; --road-casing:#FFFFFF;
  color-scheme:light;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font:400 14px/1.5 var(--font);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--brand-ink)}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
h1,h2,h3{margin:0}
.ico{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}
/* Matn ichidagi ikonka (emoji o'rniga: batareya, joy, chek...) — `svgI('battery','in')` */
.ico.in{display:inline-block;width:13px;height:13px;vertical-align:-2px}

/* ── Kirish ekrani ── */
/* Chapda brend paneli (55%), o'ngda och fonda forma kartasi; 900px dan tor ekranda faqat forma */
.login-bg{position:fixed;inset:0;display:none;grid-template-columns:55fr 45fr;background:var(--bg);overflow:auto}
.login-bg.show{display:grid}
.login-hero{position:relative;overflow:hidden;display:flex;align-items:center;min-height:100%;
  background:
    radial-gradient(circle at 78% 12%,rgba(255,255,255,.22),transparent 24%),
    radial-gradient(circle at 6% 92%,rgba(255,255,255,.14),transparent 22%),
    linear-gradient(152deg,#F2610F 0%,var(--brand-strong) 55%,var(--brand-strong-hover) 100%)}
.login-hero-in{padding:0 52px;max-width:600px;color:var(--accent-ink)}
.login-hero-logo{height:54px;display:block;margin-left:76px;filter:brightness(0) invert(1)}
.login-chip{display:inline-flex;align-items:center;gap:8px;margin-top:52px;padding:7px 15px;border-radius:999px;
  border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);font-size:13px;font-weight:500}
.login-chip .ico,.login-feats .ico{width:17px;height:17px}
.login-lead{margin-top:48px;font-size:16.5px;line-height:1.75;color:rgba(255,255,255,.88);max-width:470px}
.login-feats{list-style:none;margin:38px 0 0;padding:0;display:flex;flex-direction:column;gap:17px;font-size:14.5px;color:rgba(255,255,255,.92)}
.login-feats li{display:flex;align-items:center;gap:13px}
.login-side{display:flex;align-items:center;justify-content:center;padding:24px 16px}
.login{width:100%;max-width:438px;background:var(--panel);border-radius:var(--r-xl);padding:48px 36px 36px;
  box-shadow:none;display:flex;flex-direction:column}
.login>img{height:46px;align-self:center}
.login h1{text-align:center;font-size:28px;line-height:34px;font-weight:700;color:var(--text);margin-top:26px;letter-spacing:-.02em}
.login-sub{text-align:center;font-size:15px;color:var(--dim);margin-top:10px}
.login label{font-size:14px;font-weight:600;color:var(--text);margin:20px 0 8px}
.login label:first-of-type{margin-top:30px}
.login-f{position:relative;display:flex;align-items:center}
.login-f>.ico{position:absolute;left:16px;width:18px;height:18px;color:var(--muted);pointer-events:none}
.login-f input{width:100%;height:52px;border:1px solid transparent;border-radius:var(--r-md);padding:0 46px 0 45px;outline:none;
  background:var(--surface-2);font:inherit;font-size:16px;color:var(--text);transition:border-color .15s,box-shadow .15s,background .15s}
.login-f input::placeholder{color:var(--muted)}
.login-f input:focus{border-color:var(--brand-strong);background:var(--panel);box-shadow:0 0 0 3px var(--brand-soft)}
.login-eye{position:absolute;right:8px;width:36px;height:36px;border:0;background:none;border-radius:8px;color:var(--dim);
  display:grid;place-items:center;cursor:pointer}
.login-eye:hover{background:var(--line)}
.login-eye .ico{width:18px;height:18px}
.login button[type=submit]{margin-top:24px;height:52px;border:0;border-radius:var(--r-pill);cursor:pointer;color:var(--accent-ink);font-size:16px;font-weight:600;
  background:var(--brand-strong);box-shadow:none;transition:background-color .15s,transform .15s}
.login button[type=submit]:hover{background:var(--brand-strong-hover)}
.login button[type=submit]:active{transform:translateY(1px)}
.login button[type=submit]:disabled{opacity:.65;cursor:default}
.login .e{color:var(--fail);font-size:12.5px;margin-top:12px;text-align:center}
.login .e:empty{display:none}
.login-copy{text-align:center;font-size:12px;color:var(--muted);margin-top:28px}
.login-alt{text-align:center;font-size:13px;color:var(--muted);margin:14px 0 0}
.login-alt a{color:var(--accent);font-weight:600;text-decoration:none}
.login-alt a:hover{text-decoration:underline}
@media (max-width:900px){.login-bg{grid-template-columns:1fr}.login-hero{display:none}}
@media (max-width:480px){.login{padding:36px 22px 26px;border-radius:16px}}

/* ── Karkas ── */
.app{display:none;min-height:100vh}
.app.show{display:flex}
.side{position:fixed;inset:0 auto 0 0;width:var(--sb-w);z-index:40;display:flex;flex-direction:column;color:var(--sb-text);
  background:var(--surface);border-right:1px solid var(--line);transition:width .18s ease,transform .2s ease}
.side .brand{height:var(--top-h);padding:14px 40px;border-bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}
.side .brand img.full{height:30px;align-self:flex-start}
.side .brand img.mark{height:32px;display:none}
.side .brand small{font-size:8px;letter-spacing:1.2px;font-weight:600;color:var(--text-2);margin-top:4px;white-space:nowrap;align-self:flex-start}
/* Logo ustiga kursor kelsa — yumshoq porlash (foydalanuvchi so'rovi) */
.side .brand{position:relative}
.side .brand img{transition:filter .25s ease}
.side .brand img:hover{filter:drop-shadow(0 0 8px rgba(234,88,12,.28))}
/* Menyuni yig'ish — sidebar brendining o'ng chetida, bilinar-bilinmas (hover/fokusda aniq) */
.side .brand .collapse-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:7px;
  background:none;color:var(--sb-text);opacity:.28;display:grid;place-items:center;cursor:pointer;transition:opacity .15s,background .15s;padding:0}
.side .brand .collapse-btn .ico{width:16px;height:16px}
.side .brand .collapse-btn:hover,.side .brand .collapse-btn:focus-visible{opacity:1;background:var(--surface-2)}
/* Yig'ilgan menyuda tugma belgining o'rnida — logo ustiga kelganda chiqadi (aks holda qaytarib ochib bo'lmasdi) */
.app.mini .side .brand .collapse-btn{right:50%;transform:translate(50%,-50%);opacity:0;pointer-events:none}
.app.mini .side .brand:hover .collapse-btn,.app.mini .side .brand .collapse-btn:focus-visible{opacity:1;pointer-events:auto;background:var(--surface-2)}
.app.mini .side .brand:hover img.mark{opacity:.2}
.app.mini .side .brand .collapse-btn .ico{transform:scaleX(-1)}
.nav{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 12px 16px;display:flex;flex-direction:column;gap:2px}
.nav::-webkit-scrollbar{width:0}
.nav .it{display:flex;align-items:center;gap:12px;min-height:40px;padding:8px 12px;border-radius:var(--r-pill);color:var(--sb-text);cursor:pointer;
  background:none;border:0;width:100%;text-align:left;font-size:15px;font-weight:500;white-space:nowrap;text-decoration:none;transition:background-color .12s}
.nav .it:hover{background:var(--surface-2)}
.nav .it.on{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}
.nav .it.on .ico{color:var(--sb-accent)}
.nav .it .ico{width:20px;height:20px;color:var(--text-2)}
.nav .it .lb{flex:1;overflow:hidden;text-overflow:ellipsis}
.nav .it .cnt{font-size:12px;font-weight:600;color:var(--text-2)}
.nav .it .soon{font-size:11px;padding:1px 8px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2)}
.nav .it .chev{width:16px;height:16px;color:var(--text-3);transition:transform .15s;transform:rotate(-90deg)}
.nav .it.open .chev{transform:none}
/* Yopiq guruh ichida joriy bo'lim — sarlavha belgilanadi (guruhlar kirishda doim yopiq) */
.nav .it.in{color:var(--brand-ink);font-weight:600}
.nav .it.in .ico{color:var(--sb-accent)}
.nav .sub{margin:1px 0 5px 22px;padding-left:10px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
.nav .sub .it{min-height:36px;padding:6px 12px;font-size:14px}
.nav .sub .ico{width:16px;height:16px}
/* Ichki guruh (papka ichida papka, 2 qavat) — kamroq surilish */
.nav .sub .sub{margin-left:12px;padding-left:7px}
/* Bo'lim ichidagi bo'limlar (shell.js: navLeafHtml) — yopiq bo'lsa `hidden`; yig'ilgan menyuda ota ostida tekis ikonkalar */
.nav .sub.kids[hidden]{display:none}
.app:is(.mini,.rail) .nav .sub.kids,.app:is(.mini,.rail) .nav .sub.kids[hidden]{display:flex;margin:0;padding:0;border-left:0}
/* Sozlamalar → Menyu (shell.js: navCfgPage) — muharrir sidebar ko'rinishidagi panelda, yonida yordam kartasi */
.navcfg{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:20px;align-items:start}
.navcfg-side{border-radius:var(--r-lg);color:var(--sb-text);padding:6px 0;background:var(--surface);border:1px solid var(--line)}
.navcfg-side .nav{overflow:visible}
.navcfg-h{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 10px}
.navcfg-h .ico{color:var(--accent)}
.navcfg-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--muted);line-height:1.45}
@media (max-width:720px){.navcfg{grid-template-columns:minmax(0,1fr)}}
.nav .nv-reset{margin:8px 0 0;padding:7px 10px;border-radius:8px;border:1px dashed var(--line-strong);background:none;color:var(--sb-text);
  display:flex;align-items:center;gap:8px;font:inherit;font-size:12px;cursor:pointer;opacity:.75;flex:none;text-align:left}
.nav .nv-reset:hover{opacity:1;background:var(--surface-2)}
.nav .nv-reset .ico{width:15px;height:15px}
.nav .nv-row{border-radius:8px}
.nav .nv-it{display:flex;align-items:center;gap:8px;padding:5px 4px 5px 6px;border-radius:8px;background:var(--surface-2);cursor:grab;user-select:none}
.nav .nv-it .lb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav .nv-it .grip{width:14px;height:14px;opacity:.45}
.nav .nv-mv{width:20px;height:22px;border:0;border-radius:6px;background:none;color:inherit;display:grid;place-items:center;cursor:pointer;opacity:.7;padding:0;flex:none}
.nav .nv-mv:hover{background:var(--surface-3);opacity:1}
.nav .nv-mv:disabled{opacity:.18;cursor:default;background:none}
.nav .nv-mv .ico{width:14px;height:14px}
.nav .nv-mv.up .ico{transform:rotate(180deg)}
.nav .nv-sub{margin:3px 0 4px 16px;padding-left:8px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.nav .nv-sub .nv-it{font-size:12.5px;padding:3px 2px 3px 5px;gap:5px}
.nav .nv-sub .nv-it .ico:not(.grip){width:14px;height:14px}
.nav .nv-sub .nv-sub{margin-left:10px;padding-left:6px}
.nav .nv-row.dragging{opacity:.4}
.nav .nv-row.drop-before{box-shadow:0 -2px 0 var(--sb-accent)}
.nav .nv-row.drop-after{box-shadow:0 2px 0 var(--sb-accent)}
.nav .nv-row.drop-into>.nv-it,.nav .nv-empty.drop-into{outline:2px solid var(--sb-accent);outline-offset:-2px}
.nav .nv-mv.pick.on{background:var(--surface-3);opacity:1}
.nav .nv-pick{display:flex;flex-direction:column;gap:2px;margin:3px 0 4px 22px;padding:4px;border-radius:8px;background:var(--surface-2)}
.nav .nv-pick button{display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:6px;background:none;color:var(--sb-text);
  font:inherit;font-size:12px;cursor:pointer;text-align:left}
.nav .nv-pick button:hover,.nav .nv-pick button:focus-visible{background:var(--surface-3);color:var(--text)}
.nav .nv-pick .ico{width:14px;height:14px}
/* Super Admin'da qatorda 4 ta tugma — guruh ichida joy uchun sudrash belgisi yashiriladi (qator baribir sudraladi) */
.nav .nv-sub .nv-row.can-ren>.nv-it .grip{display:none}
.nav .nv-mv.ren.on{background:var(--surface-3);opacity:1}
.nav .nv-ren{display:flex;flex-direction:column;gap:6px;margin:4px 0 6px 22px;padding:8px;border-radius:8px;background:var(--surface-2)}
.nav .nv-ren label{display:flex;align-items:center;gap:6px;font-size:11px}
.nav .nv-ren label span{width:20px;opacity:.7;font-weight:600}
.nav .nv-ren input{flex:1;min-width:0;padding:5px 7px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface-2);
  color:var(--text);font:inherit;font-size:12px}
.nav .nv-ren input::placeholder{color:var(--text-3)}
.nav .nv-ren input:focus{outline:none;border-color:var(--sb-accent)}
.nav .nv-ren small{font-size:10.5px;opacity:.6;line-height:1.35}
.nav .nv-ren-a{display:flex;gap:6px}
.nav .nv-ren-a button{flex:1;padding:5px 8px;border-radius:6px;border:1px solid var(--line-strong);background:none;color:var(--sb-text);font:inherit;font-size:12px;cursor:pointer}
.nav .nv-ren-a button.ok{background:var(--sb-accent);border-color:var(--sb-accent);color:#fff;font-weight:600}
.nav .nv-ren-a button:disabled{opacity:.5;cursor:default}
/* O'z papkasi (shell.js navRenForm): nom ustida yorliq, o'chirish — alohida qatorda */
.nav .nv-ren label.col{flex-direction:column;align-items:stretch;gap:4px}
.nav .nv-ren label.col span{width:auto}
.nav .nv-ren-a{flex-wrap:wrap}
.nav .nv-ren-a button.del{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--fail);border-color:var(--fail)}
.nav .nv-ren-a button.del .ico{width:13px;height:13px}
.nav .nv-add{margin-top:10px}
.nav .nv-empty{font-size:11.5px;opacity:.6;padding:8px;border:1px dashed var(--line-strong);border-radius:8px}
.side .user{margin:10px 12px 12px;padding:8px 12px;border-radius:var(--r-md);background:none;border-top:0;display:flex;align-items:center;gap:9px;cursor:pointer;flex:none;position:relative;border:0;color:inherit;text-align:left}
.side .user .av{width:40px;height:40px;border-radius:50%;background:var(--brand-soft);display:grid;place-items:center;color:var(--brand-ink);font-weight:700;flex:none}
.side .user .who{flex:1;min-width:0;line-height:1.3}
.side .user b{display:block;color:var(--text);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .user small{font-size:12px;color:var(--text-2);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umenu{position:absolute;left:10px;right:10px;bottom:68px;background:var(--surface);color:var(--text);border-radius:var(--r-md);box-shadow:var(--shadow-pop);padding:6px;display:none}
.umenu.show{display:block}
.umenu button{width:100%;display:flex;gap:10px;align-items:center;min-height:44px;padding:8px 12px;border:0;background:none;border-radius:var(--r-sm);cursor:pointer;color:var(--fail);font-weight:500}
.umenu button:hover{background:var(--panel-2)}

/* Yig'ilgan menyu (faqat ikonkalar) */
.app:is(.mini,.rail) .side{width:var(--sb-w-min)}
.app:is(.mini,.rail) .side .brand img.full,.app:is(.mini,.rail) .side .brand small{display:none}
.app:is(.mini,.rail) .side .brand img.mark{display:block;align-self:center}
.app:is(.mini,.rail) .side .brand{padding:14px 8px}
.app:is(.mini,.rail) .nav .it{justify-content:center;padding:0;width:48px;min-height:44px;align-self:center}
.app:is(.mini,.rail) .nav .it .lb,.app:is(.mini,.rail) .nav .it .cnt,.app:is(.mini,.rail) .nav .it .chev,.app:is(.mini,.rail) .nav .it .soon,.app:is(.mini,.rail) .nav .sub{display:none}
.app:is(.mini,.rail) .side .user .who{display:none}
.app:is(.mini,.rail) .side .user{justify-content:center}
.app:is(.mini,.rail) .main{margin-left:var(--sb-w-min)}
.app:is(.mini,.rail) .nav{padding:8px 0 16px;align-items:stretch}
.app:is(.mini,.rail) .nav .it.in{background:var(--brand-soft)}
.app:is(.mini,.rail) .nav .it.in .ico{color:var(--brand-ink)}

.main{flex:1;min-width:0;margin-left:var(--sb-w);transition:margin-left .18s ease;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:30;height:var(--top-h);background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 32px}
.top h1{font-size:18px;font-weight:700;letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iconbtn{width:40px;height:40px;border-radius:50%;border:0;background:var(--surface-2);display:grid;place-items:center;cursor:pointer;color:var(--text);position:relative;flex:none;transition:background-color .12s}
.iconbtn:hover{background:var(--surface-3);color:var(--text)}
.iconbtn.nav-back{width:auto;padding:0 14px 0 10px;border-radius:var(--r-pill);display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px;
  color:var(--brand-ink);background:var(--brand-soft)}
.iconbtn.nav-back:hover{background:var(--brand-soft-hover);color:var(--brand-ink)}
.iconbtn .badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--down);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px var(--surface)}
.iconbtn .badge[hidden],.iconbtn[hidden]{display:none}   /* display:grid `hidden` atributini bosib ketmasin */
.seg{display:flex;background:var(--surface-2);border:0;border-radius:var(--r-pill);padding:3px;flex:none}
.seg button{border:0;background:none;padding:6px 14px;border-radius:var(--r-pill);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer}
.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(10,11,13,.08)}
.top select{border:0;border-radius:var(--r-pill);height:40px;padding:0 14px;background:var(--surface-2);font-weight:600;max-width:220px}
.content{padding:24px 32px 40px;display:flex;flex-direction:column;gap:16px;min-width:0}
/* React bo'lim ildizi — bloklar orasida bir xil oraliq (aks holda kartalar bir-biriga yopishardi; kabinetda .cab-page>.rx-root) */
.content>.rx-root{display:flex;flex-direction:column;gap:16px;min-width:0}
.hamb{display:none}
.scrim{display:none}
/* Telefon: pastki yorliqlar (Shell.tsx TabBar; maket admin/Sidebar `sb-tabbar`) — faqat kirgandan keyin, ≤767 px */
.mtab{display:none}
@media (max-width:767px){
  .app.show .mtab{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;left:0;right:0;bottom:0;z-index:38;
    height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}
  .mtab a,.mtab button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;border:0;background:none;
    color:var(--text-2);font:inherit;font-size:11px;font-weight:600;text-decoration:none;cursor:pointer;padding:0 2px}
  .mtab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mtab .ico{width:22px;height:22px}
  .mtab .on{color:var(--brand-ink)}
  .app.show .main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
}

/* ── Komponentlar (tms*.js ham shularni ishlatadi) ── */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;min-width:0}
.card-pad{padding:20px}
.card-h{display:flex;align-items:center;gap:12px;padding:18px 20px 12px;flex-wrap:wrap}
.card-h h2{font-size:18px;line-height:24px;font-weight:700;letter-spacing:-.01em}
.card-h .meta{font-size:13px;color:var(--text-2)}
.card-h .right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;max-width:100%}
h3.ch{font-size:15px;font-weight:600}
.grid-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.grid-kpi.k5{grid-template-columns:repeat(5,minmax(0,1fr))}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:12px}
.kpi{--kc:var(--accent);position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:none;min-width:0}
.kpi.click{cursor:pointer}
.kpi.click:hover{background:var(--surface-2)}
.kpi .l{font-size:14px;font-weight:500;color:var(--text-2)}
.kpi .v{font-size:28px;font-weight:600;margin-top:8px;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12px;color:var(--text-2);margin-top:6px}
.kpi .ki{position:absolute;right:16px;top:16px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--kc);background:var(--kb,var(--accent-soft))}

.btn{background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-pill);min-height:40px;padding:8px 18px;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background-color .12s,color .12s}
.btn:hover{background:var(--surface-3);color:var(--text)}
.btn.primary{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--brand-strong-hover);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.sm{min-height:32px;padding:5px 14px;font-size:13px}

/* Sig'masa — sahifani emas, yorliqlar qatorining O'ZINI siljitadi (telefon 375 px; 2026-10-03 responsivlik tekshiruvi) */
.tabs{display:inline-flex;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0;gap:24px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.tabs button{border:0;background:none;padding:10px 0;border-radius:0;font-weight:600;font-size:15px;color:var(--text-2);cursor:pointer;flex:0 0 auto;white-space:nowrap;box-shadow:inset 0 -2px 0 transparent}
.tabs button.on{background:none;color:var(--brand-ink);box-shadow:inset 0 -2px 0 var(--brand-strong)}

input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--r-md);padding:9px 12px;background:var(--surface);outline:none;font-size:14px}
input:focus,select:focus,textarea:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px var(--brand-soft)}
.filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:16px 20px}
.filterbar .search{display:flex;align-items:center;gap:8px;border:0;border-radius:var(--r-pill);padding:9px 16px;flex:1;min-width:220px;background:var(--surface-2)}
.filterbar .search input{border:0;padding:0;flex:1;min-width:0;box-shadow:none;background:transparent}

.tbl{overflow-x:auto}
table{width:100%;border-collapse:collapse}
thead th{text-align:left;font-size:13px;letter-spacing:0;text-transform:none;color:var(--text-2);font-weight:500;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap}
th.r,td.r{text-align:right}
tbody td{padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px}
tbody tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}
tbody tr.click:hover{background:var(--surface-2)}
/* Umumiy jadval qatlami (web-react table/layer.ts — admin, kabinet, hamkor): 2x bosib saralash, qatorni ochish, Excel/PDF.
   `touch-action:manipulation` — telefonda 2x teginish sahifani kattalashtirmaydi (saralaydi). ⇅ — saralanadigan ustun (sichqoncha ustida). */
table.jd-t thead th{user-select:none;-webkit-user-select:none}
table.jd-t thead th.jd-s{touch-action:manipulation}
table.jd-t thead th.jd-s:not(.jd-asc):not(.jd-desc):hover::after{content:" \21C5";font-size:10px;color:var(--muted);opacity:.65}
table.jd-t thead th.jd-asc,table.jd-t thead th.jd-desc{color:var(--accent)}
table.jd-t thead th.jd-asc::after{content:" \25B2";font-size:9px;color:var(--accent)}
table.jd-t thead th.jd-desc::after{content:" \25BC";font-size:9px;color:var(--accent)}
tbody tr.jd-open,tbody tr[data-jdo="1"]{cursor:pointer}
tbody tr.jd-open:hover,tbody tr[data-jdo="1"]:hover{background:var(--surface-2)}
.jd-tools{display:inline-flex;gap:6px;align-items:center}
.card-h > .jd-tools{margin-left:8px}
.card-h > h2 + .jd-tools,.card-h > .meta + .jd-tools{margin-left:auto}
.jd-tools .btn.sm{padding:4px 9px;font-size:11.5px}
.jd-bar{display:flex;justify-content:flex-end;padding:6px 16px}
.dsec .jd-bar{padding:0 0 6px}
.mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:12.5px}
.tag,.pill{display:inline-block;font-size:12px;line-height:16px;font-weight:600;padding:4px 10px;border-radius:var(--r-pill);white-space:nowrap;background:var(--surface-2);color:var(--text-2)}
.pill.ok{background:var(--up-soft);color:var(--ok)}.pill.info{background:var(--info-soft);color:var(--info)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.fail{background:var(--down-soft);color:var(--fail)}
.empty{padding:32px 20px;text-align:center;font-size:14px;color:var(--text-2)}
.err-card{padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--label)}
.err-card b{color:var(--fail)}
.soon-card{padding:48px 20px;text-align:center;color:var(--muted)}
.soon-card .ico{width:34px;height:34px;margin:0 auto 10px;color:var(--accent)}
.soon-card h2{font-size:18px;color:var(--text);margin-bottom:4px}

/* Yon oyna */
.drawer-bg{position:fixed;inset:0;background:rgba(10,11,13,.48);z-index:60;display:none;justify-content:flex-end}
.drawer-bg.show{display:flex}
.drawer{width:480px;max-width:100%;height:100%;overflow-y:auto;background:var(--panel);display:flex;flex-direction:column;box-shadow:-12px 0 32px rgba(10,11,13,.12);
  border-radius:var(--r-xl) 0 0 var(--r-xl)}   /* o'ngdan chiqadigan oyna — chap burchaklari yumaloq (foydalanuvchi so'rovi) */
@media (max-width:520px){.drawer{border-radius:0}}
/* Mijoz formasi: filial tanlash ro'yxati va parol qatori (tms-mijoz.js) */
.mj-chk{border:1px solid var(--line);border-radius:10px;max-height:200px;overflow-y:auto;padding:4px 6px;background:var(--panel)}
.mj-chk label{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:7px;cursor:pointer;font-weight:600;font-size:13px}
.mj-chk label:hover{background:var(--surface-2)}
.mj-chk label small{margin-left:auto;font-weight:500;font-size:11px;color:var(--muted)}
.mj-chk input{width:16px;height:16px;accent-color:var(--accent);flex:none}
.mj-pw{display:flex;gap:8px;align-items:center}
.mj-pw input{flex:1;min-width:0}
.drawer.wide{width:min(1000px,96vw)}
.drawer-h{padding:16px 24px;border-bottom:1px solid var(--line);min-height:64px;display:flex;align-items:center;gap:12px;position:sticky;top:0;background:var(--panel);z-index:1}
.drawer-h h2,.drawer-h h3{font-size:20px;line-height:26px;font-weight:700;letter-spacing:-.01em}
.drawer-h .x{margin-left:auto;width:40px;height:40px;border-radius:50%;background:var(--surface-2);border:none;color:var(--text);font-size:22px;line-height:1;cursor:pointer;flex:none}
.drawer-h .dr-back{width:40px;height:40px;border-radius:50%;background:var(--surface-2);border:none;color:var(--text);cursor:pointer;flex:none;display:grid;place-items:center;padding:0}
.drawer-h .dr-back:hover{background:var(--line)}
.drawer-s{padding:16px 24px;border-bottom:1px solid var(--line)}
.dsec{padding:20px 24px;border-bottom:1px solid var(--line);overflow-x:auto}
/* Drawer — flex ustun: bo'limlar siqilmasin (aks holda kichik ekranda har biri o'z skrolli bilan qisqaradi), butun drawer skroll qiladi */
.drawer>*{flex-shrink:0}
/* React yon oynasi: bo'limlar `display:contents` o'ramlari (`#rx-drawer`, `kit.Rx` — klass `rx-c`) ichida — `.drawer>*` ularga yetmaydi,
 * bo'limlar siqilib `overflow-x:auto` tufayli HAR BIRI o'z skrolliga ega bo'lardi (jo'natma kartasi, 2026-10-16). Faqat to'g'ridan zanjir. */
.drawer>.rx-c>*,.drawer>.rx-c>.rx-c>*{flex-shrink:0}
/* Kenglikni sudrab o'zgartirish tutqichi (`shared/core.ts`) — oynaning chap chetida; kenglik brauzerda eslab qolinadi, 2x bosish — standart */
.drawer-rs{flex:none;width:12px;margin-right:-6px;position:relative;z-index:1;cursor:col-resize;touch-action:none}
.drawer-rs::after{content:"";position:absolute;left:4px;top:50%;width:4px;height:44px;margin-top:-22px;border-radius:2px;background:var(--line);opacity:0;transition:opacity .15s}
.drawer-rs:hover::after,.drawer-bg.rs-on .drawer-rs::after{opacity:1;background:var(--accent)}
.drawer-bg.rs-on{cursor:col-resize;user-select:none}
@media (max-width:520px){.drawer-rs{display:none}}
.dsec .lbl,.lbl{font-size:13px;letter-spacing:0;text-transform:none;color:var(--text-2);font-weight:600;margin-bottom:10px}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
/* Yorliq + maydon (`<label>Matn<input>`) — matn maydonga yopishib qolmasin (2026-09-27, jonli o'lchov: 2.5 px edi).
 * Oyna ichida — ustma-ust 6 px; filtr qatorida — yonma-yon 8 px. Belgilash katakchasi/radio va qidiruv yorlig'i chetda. */
.dsec label:not(.search):has(> input:not([type=checkbox]):not([type=radio]):not([type=hidden]), > select, > textarea){display:flex;flex-direction:column;gap:6px}
.filterbar label:not(.search):has(> input:not([type=checkbox]):not([type=radio]):not([type=hidden]), > select){display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}
.filterbar label:not(.search) > input:not([type=checkbox]):not([type=radio]),.filterbar label:not(.search) > select{min-width:0;max-width:100%}
.drow{display:flex;gap:10px;min-width:0}
.dgrid .drow{flex-direction:column;gap:3px}
.drow .k{font-size:13px;color:var(--text-2);line-height:1.4}
.drow .v{font-size:14px;word-break:break-word;line-height:1.45}
.hist{display:flex;gap:12px;padding-bottom:12px}
.hist i{width:9px;height:9px;border-radius:50%;flex:none;margin-top:4px}
.drawer-f{margin-top:auto;padding:16px 24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:9px;position:sticky;bottom:0;background:var(--panel)}
.drawer-f .btn{min-height:48px;padding:12px 20px}
.drawer-f .btn.primary{flex:1;justify-content:center}

.flash{position:fixed;top:16px;right:16px;z-index:90;max-width:min(420px,92vw);padding:12px 18px;border-radius:var(--r-md);font-size:14px;line-height:1.5;border:0;border-left:0;background:var(--inverse);color:#fff;box-shadow:var(--shadow-pop)}
.flash.ok{border-left-color:var(--ok)}
.flash.bad{background:var(--fail);color:#fff}
.flash.wait{color:#C4C8D0}

/* ── Kuryer ↔ filial yozishmasi (Kuryerlar → Xabarlar, tms-kuryer.js) ── */
.kc-wrap{display:grid;grid-template-columns:300px 1fr;min-height:520px;border-top:1px solid var(--line)}
.kc-list{border-right:1px solid var(--line);overflow-y:auto;max-height:640px}
.kc-it{padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer;display:flex;gap:10px;align-items:flex-start}
.kc-it:hover{background:var(--bg)}
.kc-it.on{background:var(--accent-soft)}
.kc-it .nm{font-weight:600;font-size:13px}
.kc-it .pv{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kc-it .un{margin-left:auto;background:var(--accent);color:var(--accent-ink);border-radius:10px;font-size:11px;font-weight:700;padding:1px 7px;flex:none}
.kc-pane{display:flex;flex-direction:column;min-width:0}
.kc-head{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}
.kc-msgs{flex:1;overflow-y:auto;max-height:520px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.kc-m{max-width:72%;padding:8px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line);font-size:13px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.kc-m.st{align-self:flex-end;background:var(--accent-soft);border-color:var(--accent-soft)}
.kc-m .mt{font-size:11px;color:var(--muted);margin-top:4px;white-space:normal}
.kc-m .ps{font-weight:600;color:var(--warn)}
.kc-form{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:flex-end}
.kc-form textarea{flex:1;min-height:42px;max-height:140px;resize:vertical}
/* Ishga qabul (tms-ishga-qabul.js, spec xodimlar-h4a §8): nomzodlar bosqichlar bo'yicha ustunlarda; o'tish — faqat karta tugmalari */
.iq-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow-x:auto;padding:0 16px 16px}
.iq-col{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-height:120px;display:flex;flex-direction:column;gap:8px}
.iq-col h3{font-size:12px;font-weight:600;color:var(--label);display:flex;justify-content:space-between;margin:0 2px 2px}
.iq-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 11px;cursor:pointer;display:flex;flex-direction:column;gap:4px}
.iq-card:hover{border-color:var(--accent)}
.iq-card b{font-size:13px}
.iq-app{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px}
.iq-app-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.iq-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.iq-link input{flex:1;min-width:0}
.iq-qr{width:132px;height:132px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px;background:var(--panel)}
.iq-pre{white-space:pre-line}
/* H4b: talablar belgilari, mos nomzodlar, analitika voronkasi */
.iq-chks{display:flex;flex-wrap:wrap;gap:6px 14px}
.iq-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.iq-x{border:0;background:none;color:inherit;cursor:pointer;padding:0 0 0 4px;font-size:14px;line-height:1}
.iq-lnk{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;text-align:left}
.iq-lnk:hover{text-decoration:underline}
.iq-an{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.iq-funs{padding:4px 16px 16px;display:flex;flex-direction:column;gap:10px}
.iq-fun{display:grid;grid-template-columns:120px 1fr 44px 44px;gap:10px;align-items:center}
.iq-fun-bar{height:12px;background:var(--bg);border-radius:6px;overflow:hidden}
.iq-fun-bar i{display:block;height:100%;background:var(--accent);border-radius:6px}
@media (max-width:720px){.iq-an{grid-template-columns:1fr}.iq-fun{grid-template-columns:90px 1fr 36px 40px}}
@media (max-width:720px){.iq-board{grid-template-columns:repeat(4,minmax(200px,1fr))}}
@media (max-width:760px){.kc-wrap{grid-template-columns:1fr}.kc-list{max-height:240px;border-right:0;border-bottom:1px solid var(--line)}
  .kc-form{flex-wrap:wrap}.kc-form textarea{flex-basis:100%}.kc-form input{flex:1;min-width:0}.kc-m{max-width:88%}}

/* ── Bosh sahifa ── */
.home-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.home-bar .per{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-2);flex-wrap:wrap;max-width:100%}
.home-bar .per input{height:40px;border:0;border-radius:var(--r-pill);background:var(--surface-2);padding:0 14px;font-weight:600}
.home-bar .per input:focus{background:var(--surface);box-shadow:inset 0 0 0 2px var(--brand-strong)}
.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px}
.bars{display:flex;align-items:flex-end;gap:4px;height:180px;padding:0 20px}
.bars .b{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;background:var(--brand-tint);border-radius:var(--r-xs,6px);position:relative;min-width:0}
.bars .b i{display:block;width:100%;border-radius:var(--r-xs,6px) var(--r-xs,6px) 2px 2px;background:var(--brand);transition:background-color .12s}
.bars .b:hover i{background:var(--brand-strong)}
.bars .b .n{position:absolute;top:-18px;font-size:11px;color:var(--text-2);font-weight:600;font-variant-numeric:tabular-nums}
.bars-x{display:flex;gap:4px;padding:8px 20px 18px;font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}
.bars-x span{flex:1;text-align:center;min-width:0}
.donut-box{display:flex;gap:20px;align-items:center;padding:4px 20px 20px;flex-wrap:wrap}
.legend{flex:1;min-width:150px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.legend div{display:flex;align-items:center;gap:8px}
.legend .dot{width:10px;height:10px;border-radius:3px;flex:none}
.legend .nm{flex:1;min-width:0;color:var(--text)}
.legend .c{color:var(--text-2);min-width:28px;text-align:right;font-variant-numeric:tabular-nums}
.legend .p{font-weight:600;min-width:36px;text-align:right;font-variant-numeric:tabular-nums}

/* ── Moslashuvchan ── */
@media (max-width:1180px){.home-grid{grid-template-columns:1fr}}
@media (max-width:767px){
  .side{transform:translateX(-100%);width:var(--sb-w)!important;visibility:hidden}
  .app.drawer-open .side{visibility:visible;box-shadow:10px 0 30px rgba(0,0,0,.25)}
  .app.drawer-open .side{transform:none}
  .app.drawer-open .scrim{display:block;position:fixed;inset:0;background:rgba(10,11,13,.48);z-index:35}
  .main,.app:is(.mini,.rail) .main{margin-left:0}
  .app:is(.mini,.rail) .side .brand img.full,.app:is(.mini,.rail) .side .brand small{display:block}
  .app:is(.mini,.rail) .side .brand img.mark{display:none}
  .app:is(.mini,.rail) .nav .it{justify-content:flex-start;padding:8px 12px;width:100%}
  .app:is(.mini,.rail) .nav .it .lb,.app:is(.mini,.rail) .nav .it .cnt,.app:is(.mini,.rail) .nav .it .chev,.app:is(.mini,.rail) .nav .it .soon,.app:is(.mini,.rail) .side .user .who{display:initial}
  .app:is(.mini,.rail) .nav .sub{display:flex}
  .app:is(.mini,.rail) .nav .sub.kids{margin:1px 0 5px 22px;padding-left:10px;border-left:1px solid var(--line)}
  .app:is(.mini,.rail) .nav .sub.kids[hidden]{display:none}
  .hamb{display:grid}
}
@media (max-width:1023px){
  .collapse-btn,.side .brand .collapse-btn{display:none}
  .grid-kpi,.grid-kpi.k5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .top{padding:0 16px;gap:8px}
  .iconbtn.nav-back{padding:0 9px}.nav-back-t{display:none}
  .content{padding:16px 16px 32px}
  .dgrid{grid-template-columns:1fr}
}
@media (max-width:639px){
  .grid-kpi{grid-template-columns:1fr}
  .grid-kpi.k5{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Sarlavha 375 px ga sig'sin: davomat tugmalari faqat ikonka, oraliq va tanlagich ixcham */
  .top{gap:6px}
  .top select{max-width:72px;min-width:0;padding:8px 4px}
  .top .hdr-lbl{display:none}
  .top .seg button{padding:5px 7px}
  .grid-2{grid-template-columns:minmax(0,1fr)}
  .bars .b .n{display:none}
}
/* 320 px: filial tanlagichi bilan sarlavha (2+ filial) sig'sin */
@media (max-width:359px){
  .top{gap:4px;padding:0 8px}
}


/* ── Monitoring (Bosh sahifa → Monitoring, tms-monitor.js) ── */
.mon-root{display:flex;flex-direction:column;gap:14px;min-width:0}
.mon-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text-2)}
.mon-bar .pill{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.mon-bar .pill:not(.ok):not(.warn):not(.info):not(.fail){background:var(--surface-2);color:var(--text-2)}
.mon-bar .mon-upd{margin-left:auto}
.mon-root .kpi .l{padding-right:32px;white-space:normal;line-height:1.3}
.mon-root .home-grid>*{min-width:0}
.mon-root .card-h .meta{display:flex;flex-wrap:wrap;align-items:center;row-gap:4px;min-width:0}
.mon-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:mon-pulse 1.6s ease-in-out infinite}
@keyframes mon-pulse{0%,100%{opacity:1}50%{opacity:.25}}
.mon-leg{display:inline-flex;align-items:center;gap:5px;margin-left:10px;font-size:12px;color:var(--text-2)}
.mon-leg i{width:9px;height:9px;border-radius:50%;display:inline-block}
.mon-map-wrap{position:relative}
.mon-map{height:420px;border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.mon-map-empty{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:500;background:var(--surface);border:0;
  border-radius:var(--r-pill);padding:8px 16px;font-size:13px;color:var(--text-2);box-shadow:var(--shadow-pop);max-width:90%;text-align:center}
.tabs.sm{gap:16px}.tabs.sm button{padding:6px 0;font-size:13px}
.mon-feed{max-height:420px;overflow-y:auto;border-top:1px solid var(--line)}
.mon-ev{display:flex;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .6s}
.mon-ev:hover{background:var(--surface-2)}
.mon-ev.new{background:var(--brand-tint)}
.mon-ev .t{font-size:12px;color:var(--text-2);min-width:40px;padding-top:2px;font-variant-numeric:tabular-nums}
.mon-ev .b{min-width:0;flex:1}
.mon-ev .r1{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mon-ev .r2{font-size:12px;color:var(--text-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.mon-root .home-grid>#tmFeed{order:-1}.mon-map{height:300px}.mon-feed{max-height:360px}.mon-bar .mon-upd{margin-left:0;flex-basis:100%}}

/* ── Excel/CSV import (js/imp-ui.js — kabinet va admin panel; ranglar faqat tokenlardan) ── */
.imp-drop{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;border:2px dashed var(--line-strong);border-radius:var(--r-xl);margin:16px 20px;padding:32px 16px;background:var(--surface)}
.imp-drop.on{border-color:var(--brand-strong);background:var(--brand-tint)}
.imp-drop>.ico{width:48px;height:48px;padding:12px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink)}
.imp-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.imp-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.imp-stat{font-size:13px;color:var(--text-2)}
.imp-sp{flex:1}
.imp-warn{color:var(--warn);font-size:13px}
.imp-r.error td,.imp-r.failed td{border-bottom:0}
.imp-r.error td:first-child{box-shadow:inset 3px 0 0 var(--fail)}
.imp-r.ok td:first-child{box-shadow:inset 3px 0 0 var(--ok)}
.imp-er td{color:var(--fail);font-size:12px;padding-top:0}
.imp-pg{display:flex;gap:4px;flex-wrap:wrap;padding:10px 16px}
.imp-foot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.imp-map{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;color:var(--text)}
.imp-map input,.imp-map select{width:100%}
.imp-map.bad input{border-color:var(--fail)}
.imp-map small{color:var(--fail)}
.imp-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.imp-prog{display:flex;flex-direction:column;gap:10px;align-items:center}
.imp-meter{width:100%;max-width:420px;height:8px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}
.imp-meter i{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .3s}
.imp-done{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:30px 16px}
.imp-done>.ico{width:56px;height:56px;padding:14px;border-radius:50%;background:var(--up-soft);color:var(--ok)}
@media (max-width:639px){.imp-2{grid-template-columns:1fr}.imp-foot .btn{flex:1;justify-content:center}}
.imp-wrap{display:flex;flex-direction:column;gap:14px;min-width:0}
.imp-wrap .sub,.imp-bar .sub{font-size:12px;color:var(--text-2)}

/* ── Bildirishnomalar (tms-notify.js): qo'ng'iroqcha drawer'i ── */
.ntf-h{display:flex;flex-direction:column;gap:9px;min-width:0}
.ntf-body{display:flex;flex-direction:column;min-width:0}
.ntf-bar{display:flex;justify-content:flex-end;padding:10px 20px 0}
.ntf-list{display:flex;flex-direction:column;padding:4px 0 14px}
.ntf-day{padding:16px 24px 6px;font-size:13px;font-weight:600;color:var(--text-2)}
.ntf-it{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;border:0;background:none;padding:12px 24px;cursor:pointer;
  border-bottom:1px solid var(--line);font:inherit;color:var(--text-2);min-height:56px}
.ntf-it:hover{background:var(--surface-2)}
.ntf-it.unread{background:var(--brand-tint)}
.ntf-it.unread b{color:var(--text)}
.ntf-it:not(.unread) b{font-weight:500}
.ntf-dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:6px;background:var(--info)}
.ntf-dot.fail{background:var(--fail)}.ntf-dot.warn{background:var(--warn)}.ntf-dot.info{background:var(--info)}
.ntf-tx{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.ntf-tx b{font-size:14px;line-height:1.4}
.ntf-tx span{font-size:13px;color:var(--text-2);line-height:1.45;overflow-wrap:anywhere}
.ntf-t{font-size:12px;color:var(--text-3);white-space:nowrap;padding-top:2px;font-variant-numeric:tabular-nums}
.ntf-more{align-self:center;margin:12px auto 0}
.ntf-tg{border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ntf-tg p{font-size:13px;color:var(--text-2);margin:0}
.ntf-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px}
.ntf-code b{font-size:15px;letter-spacing:1px}
.ntf-ins{white-space:pre-wrap;font-size:13px;background:var(--surface-2);border:0;border-radius:var(--r-md);padding:12px 14px;margin:0}
.ntf-pref{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;min-height:52px;border-bottom:1px solid var(--line);font-size:14px}
.ntf-pref>span{min-width:0}
@media (max-width:480px){.ntf-pref{flex-direction:column;align-items:flex-start}.ntf-it{padding:11px 16px}}

/* ── Ochiq API hujjati (js/core.js:apiDocsHtml) — admin va kabinet umumiy, ranglar faqat tokenlar ── */
.apd{display:flex;flex-direction:column;gap:14px;min-width:0}
.apd-sec{padding:4px 20px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.apd-sec p,.apd-body p{margin:4px 0 0;font-size:14px;line-height:1.55;color:var(--text-2)}
.apd-row{display:flex;flex-direction:column;gap:6px;min-width:0}
.apd-row>b{font-size:13px;font-weight:600;color:var(--text-2)}
.apd-pre{margin:0;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2);border:0;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--text);max-width:100%;overflow-x:auto}
.apd code,.apd-chip{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:12px}
.apd p code{padding:1px 6px;border-radius:var(--r-xs,6px);background:var(--surface-2);border:0}
.apd-chip{display:inline-block;margin:2px 2px 0 0;padding:2px 8px;border-radius:var(--r-pill);background:var(--surface-2);border:0;color:var(--text)}
.apd-list{display:flex;flex-direction:column;padding:0 8px 10px}
.apd-ep{border-bottom:1px solid var(--line)}
.apd-ep:last-child{border-bottom:0}
.apd-ep>summary{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:48px;cursor:pointer;list-style:none;flex-wrap:wrap;border-radius:var(--r-md)}
.apd-ep>summary::-webkit-details-marker{display:none}
.apd-ep>summary:hover{background:var(--surface-2)}
.apd-ep[data-empty]>summary{cursor:default}
.apd-m{flex:none;min-width:52px;text-align:center;font-size:11px;font-weight:700;letter-spacing:.3px;padding:3px 8px;border-radius:var(--r-pill);border:0;background:var(--surface-2)}
.apd-get{color:var(--info);background:var(--info-soft)!important}.apd-post{color:var(--ok);background:var(--up-soft)!important}.apd-patch{color:var(--warn);background:var(--warn-soft)!important}
.apd-path{font-weight:600;color:var(--text);word-break:break-all}
.apd-t{font-size:13px;color:var(--text-2);margin-left:auto}
.apd-body{display:flex;flex-direction:column;gap:6px;padding:2px 12px 14px 74px;font-size:13px;min-width:0}
.apd-body>div>b{font-size:13px;color:var(--text);margin-right:4px}
@media (max-width:640px){.apd-t{margin-left:0;flex-basis:100%}.apd-body{padding-left:10px}}

/* ── Filiallar xaritasi (tms-filial-xarita.js): qiya 3D, guruh rangi `--g` klass orqali ── */
.fx-stage{position:relative;padding:4px 14px 12px;min-height:220px}
.fx-svg{display:block;width:100%;height:auto;max-height:68vh;user-select:none;-webkit-user-select:none}
/* Hududlar — ILIQ palitra (foydalanuvchi qarori 2026-09-26: sovuq ranglar emas): sariq-qahrang, to'q sariq, terrakota, marjon, pushti */
/* Iqlim ranglari (foydalanuvchi talabi: och yashil, havorang va yaqin ranglar); --gp — ton (bir xil iqlimli qo'shnilar farqlansin) */
.fx-cl-desert{--g:var(--geo-desert)}.fx-cl-oasis{--g:var(--geo-oasis)}.fx-cl-valley{--g:var(--geo-valley)}.fx-cl-subtrop{--g:var(--geo-subtrop)}
.fx-cl-steppe{--g:var(--geo-steppe)}.fx-cl-mount{--g:var(--geo-mount)}.fx-cl-city{--g:var(--geo-city)}.fx-none{--g:var(--muted);--gp:14%}
.fx-t0{--gp:32%}.fx-t1{--gp:46%}.fx-t2{--gp:24%}
.fx-ground{fill:var(--text);opacity:.07;filter:blur(5px);transition:opacity .35s}
.fx-focus .fx-ground{opacity:0}
.fx-grp,.fx-wall{transition:transform .22s ease,opacity .35s ease;transform-box:view-box}
.fx-grp{cursor:pointer}
.fx-wall{pointer-events:none}
.fx-grp.fx-none{cursor:default}
/* Fokusda filialga biriktirilmagan tuman (filial rejimi) — yashirilmaydi, "teshik" o'rniga qizil chegarali och fon (fxEngine.ts:focus) */
.fx-focus .fx-grp.fx-none .fx-d{fill:color-mix(in srgb,var(--fail) 10%,var(--panel));stroke:var(--fail);stroke-width:1.4px;stroke-dasharray:4 3;stroke-opacity:.8}
.fx-focus .fx-grp.fx-none .fx-ol{stroke:var(--fail);stroke-dasharray:4 3}
.fx-grp.hov,.fx-wall.hov{transform:translateY(-10px)}
.fx-lift{filter:drop-shadow(0 14px 9px color-mix(in srgb,var(--text) 28%,transparent))}
.fx-grp.dim,.fx-wall.dim{opacity:0;pointer-events:none}
.fx-wall path{fill:color-mix(in srgb,var(--g) 55%,var(--text));fill-rule:evenodd}
.fx-d{fill:color-mix(in srgb,var(--g) var(--gp,30%),var(--panel));stroke:var(--geo-border-dist);stroke-opacity:.85;stroke-width:.7px;vector-effect:non-scaling-stroke;transition:fill .18s}
/* Fokusdagi tumanlar — bir-biriga yaqin tuslar (tmsFxShade: qo'shnilar har xil data-sh) */
.fx-focus .fx-d[data-sh="0"]{fill:color-mix(in srgb,var(--g) 22%,var(--panel))}
.fx-focus .fx-d[data-sh="1"]{fill:color-mix(in srgb,var(--g) 46%,var(--panel))}
.fx-focus .fx-d[data-sh="2"]{fill:color-mix(in srgb,color-mix(in srgb,var(--g) 72%,var(--geo-city)) 34%,var(--panel))}
.fx-focus .fx-d[data-sh="3"]{fill:color-mix(in srgb,color-mix(in srgb,var(--g) 72%,var(--geo-subtrop)) 54%,var(--panel))}
.fx-focus .fx-d[data-sh="4"]{fill:color-mix(in srgb,var(--g) 14%,var(--panel))}
/* Yo'llar: casing (oq, kengroq) + rang; respublikada faqat magistral, fokusda hammasi */
.fx-roads{pointer-events:none}
.fx-rdc,.fx-rd{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.fx-rdc{stroke:var(--road-casing);stroke-opacity:.9}
.fx-rdc.rd-m{stroke-width:3.4px}.fx-rd.rd-m{stroke:var(--road-m);stroke-width:1.8px}
.fx-rdc.rd-a{stroke-width:2.6px}.fx-rd.rd-a{stroke:var(--road-a);stroke-width:1.3px}
.fx-rdc.rd-r{stroke-width:1.8px}.fx-rd.rd-r{stroke:var(--road-r);stroke-width:.8px}
/* Respublikada: M + A (vodiy, Xorazm/Nukus yo'nalishlari A-raqamli — foydalanuvchi talabi 2026-09-27), A ingichkaroq; asosiy — fokusda
 * yoki erkin kattalashtirilganda (`fx-zin`) */
.fx-svg:not(.fx-focus):not(.fx-zin) .fx-rdc.rd-a{stroke-width:2px}.fx-svg:not(.fx-focus):not(.fx-zin) .fx-rd.rd-a{stroke-width:1px}
.fx-roads .rd-r{display:none}
.fx-focus .fx-roads .rd-r,.fx-zin .fx-roads .rd-r{display:inline}
.fx-focus .fx-rdc.rd-m{stroke-width:4.6px}.fx-focus .fx-rd.rd-m{stroke-width:2.6px}
.fx-focus .fx-rdc.rd-a{stroke-width:3.4px}.fx-focus .fx-rd.rd-a{stroke-width:1.8px}
.no-roads .fx-roads{display:none}
.fx-dlbl.nofit{display:none!important}
/* Yo'l raqami (M39/A373) va shaharlar — tmsFxOverlaysDraw; o'lcham ekranda doimiy (transform scale) */
.fx-sh rect{stroke:var(--road-casing);stroke-width:1.2px}
.fx-sh text{font:700 9.5px var(--font);text-anchor:middle;dominant-baseline:central;letter-spacing:.2px}
.fx-sh.sh-m rect{fill:var(--road-m)}.fx-sh.sh-m text{fill:var(--road-casing)}
.fx-sh.sh-a rect{fill:var(--road-a)}.fx-sh.sh-a text{fill:var(--text)}
.fx-ct circle{fill:var(--panel);stroke:var(--text);stroke-width:1.4px}
.fx-ct.ct-cap circle{fill:var(--text);stroke:var(--panel);stroke-width:1.6px}
.fx-ct.ct-reg circle{fill:var(--text);stroke:var(--panel)}
.fx-ct text{font:500 11px var(--font);fill:var(--text);dominant-baseline:central;paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round}
.fx-ct.ct-cap text,.fx-ct.ct-reg text{font-weight:700}
.fx-svg:not(.fx-focus):not(.fx-zin) .fx-ct.ct-city,.fx-svg:not(.fx-focus):not(.fx-zin) .fx-ct.ct-reg text{display:none}
/* Erkin kattalashtirish (g'ildirak, sudrash, tugmalar) — tmsFxZoomAt; kattalashganda hover ko'tarilishi o'chadi (siljish masshtab bilan o'sardi) */
.fx-svg.fx-pan{cursor:grab}.fx-svg.fx-grab,.fx-svg.fx-grab *{cursor:grabbing!important}
.fx-zin .fx-grp.hov,.fx-zin .fx-wall.hov,.fx-zin .fx-lg.hov{transform:none}
.fx-zc{position:absolute;right:20px;top:10px;z-index:2;display:flex;flex-direction:column;gap:6px}
.fx-zc button{width:36px;height:36px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;
  background:var(--surface);color:var(--text);font:600 18px/1 var(--font);cursor:pointer;box-shadow:var(--shadow-pop)}
.fx-zc button:hover{background:var(--surface-2)}
.fx-zc button:disabled{opacity:.4;cursor:default}
.fx-zlv{font-size:11px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}
/* Tuman darajasi (fokusda tumanni 2 marta bosish) — tanlangan tuman ajraladi */
.fx-dsel .fx-lg:not(.dim) .fx-dlbl{opacity:.45}
.fx-dsel .fx-lg:not(.dim) .fx-dlbl.sel{opacity:1}
.fx-dsel .fx-grp:not(.dim) .fx-d:not(.sel){fill:color-mix(in srgb,var(--g) 8%,var(--panel))}
.fx-dsel .fx-d.sel{stroke:var(--geo-border);stroke-width:2.6px}
/* Telefon: kattalashmagan xaritada barmoq sahifani aylantiradi (ikki barmoq — xarita), kattalashganda — xaritani suradi */
.fx-svg{touch-action:pan-y}.fx-svg.fx-pan{touch-action:none}
/* Qidiruv va qatlam paneli */
.fx-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 20px 8px}
.fx-search{display:flex;align-items:center;gap:8px;flex:1 1 260px;max-width:420px;border:0;border-radius:var(--r-pill);
  padding:0 16px;background:var(--surface-2);color:var(--text-2)}
.fx-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;height:40px;font-size:14px;color:var(--text);box-shadow:none}
.fx-search:focus-within{background:var(--surface);box-shadow:inset 0 0 0 2px var(--brand-strong)}
.fx-search input.bad{color:var(--fail)}
.fx-bar select[hidden]{display:none}
/* Issiqlik xaritasi (tmsFxLayerPaint): data-layer — qatlam, data-ht — daraja; ranglar faqat tokenlardan */
.fx-svg[data-layer] .fx-d[data-ht="n"],.fx-hs[data-ht="n"]{fill:color-mix(in srgb,var(--muted) 12%,var(--panel));background:color-mix(in srgb,var(--muted) 12%,var(--panel))}
.fx-svg[data-layer] .fx-d[data-ht="z"],.fx-hs[data-ht="z"]{fill:color-mix(in srgb,var(--ok) 10%,var(--panel));background:color-mix(in srgb,var(--ok) 10%,var(--panel))}
.fx-svg[data-layer="vol"] .fx-d[data-ht="0"],.fx-hs[data-l="vol"][data-ht="0"]{fill:color-mix(in srgb,var(--info) 16%,var(--panel));background:color-mix(in srgb,var(--info) 16%,var(--panel))}
.fx-svg[data-layer="vol"] .fx-d[data-ht="1"],.fx-hs[data-l="vol"][data-ht="1"]{fill:color-mix(in srgb,var(--info) 32%,var(--panel));background:color-mix(in srgb,var(--info) 32%,var(--panel))}
.fx-svg[data-layer="vol"] .fx-d[data-ht="2"],.fx-hs[data-l="vol"][data-ht="2"]{fill:color-mix(in srgb,var(--info) 50%,var(--panel));background:color-mix(in srgb,var(--info) 50%,var(--panel))}
.fx-svg[data-layer="vol"] .fx-d[data-ht="3"],.fx-hs[data-l="vol"][data-ht="3"]{fill:color-mix(in srgb,var(--info) 70%,var(--panel));background:color-mix(in srgb,var(--info) 70%,var(--panel))}
.fx-svg[data-layer="vol"] .fx-d[data-ht="4"],.fx-hs[data-l="vol"][data-ht="4"]{fill:color-mix(in srgb,var(--info) 88%,var(--text));background:color-mix(in srgb,var(--info) 88%,var(--text))}
.fx-svg[data-layer="late"] .fx-d[data-ht="0"],.fx-hs[data-l="late"][data-ht="0"]{fill:color-mix(in srgb,var(--fail) 16%,var(--panel));background:color-mix(in srgb,var(--fail) 16%,var(--panel))}
.fx-svg[data-layer="late"] .fx-d[data-ht="1"],.fx-hs[data-l="late"][data-ht="1"]{fill:color-mix(in srgb,var(--fail) 32%,var(--panel));background:color-mix(in srgb,var(--fail) 32%,var(--panel))}
.fx-svg[data-layer="late"] .fx-d[data-ht="2"],.fx-hs[data-l="late"][data-ht="2"]{fill:color-mix(in srgb,var(--fail) 50%,var(--panel));background:color-mix(in srgb,var(--fail) 50%,var(--panel))}
.fx-svg[data-layer="late"] .fx-d[data-ht="3"],.fx-hs[data-l="late"][data-ht="3"]{fill:color-mix(in srgb,var(--fail) 70%,var(--panel));background:color-mix(in srgb,var(--fail) 70%,var(--panel))}
.fx-svg[data-layer="late"] .fx-d[data-ht="4"],.fx-hs[data-l="late"][data-ht="4"]{fill:color-mix(in srgb,var(--fail) 88%,var(--text));background:color-mix(in srgb,var(--fail) 88%,var(--text))}
.fx-svg[data-layer="pct"] .fx-d[data-ht="0"],.fx-hs[data-l="pct"][data-ht="0"]{fill:color-mix(in srgb,var(--fail) 60%,var(--panel));background:color-mix(in srgb,var(--fail) 60%,var(--panel))}
.fx-svg[data-layer="pct"] .fx-d[data-ht="1"],.fx-hs[data-l="pct"][data-ht="1"]{fill:color-mix(in srgb,color-mix(in srgb,var(--fail) 50%,var(--warn)) 55%,var(--panel));background:color-mix(in srgb,color-mix(in srgb,var(--fail) 50%,var(--warn)) 55%,var(--panel))}
.fx-svg[data-layer="pct"] .fx-d[data-ht="2"],.fx-hs[data-l="pct"][data-ht="2"]{fill:color-mix(in srgb,var(--warn) 50%,var(--panel));background:color-mix(in srgb,var(--warn) 50%,var(--panel))}
.fx-svg[data-layer="pct"] .fx-d[data-ht="3"],.fx-hs[data-l="pct"][data-ht="3"]{fill:color-mix(in srgb,color-mix(in srgb,var(--warn) 40%,var(--ok)) 50%,var(--panel));background:color-mix(in srgb,color-mix(in srgb,var(--warn) 40%,var(--ok)) 50%,var(--panel))}
.fx-svg[data-layer="pct"] .fx-d[data-ht="4"],.fx-hs[data-l="pct"][data-ht="4"]{fill:color-mix(in srgb,var(--ok) 60%,var(--panel));background:color-mix(in srgb,var(--ok) 60%,var(--panel))}
.fx-svg[data-layer="unc"] .fx-d[data-ht="u"],.fx-hs[data-ht="u"]{fill:color-mix(in srgb,var(--fail) 55%,var(--panel));background:color-mix(in srgb,var(--fail) 55%,var(--panel))}
.fx-svg[data-layer="unc"] .fx-d[data-ht="c"],.fx-hs[data-ht="c"]{fill:color-mix(in srgb,var(--ok) 14%,var(--panel));background:color-mix(in srgb,var(--ok) 14%,var(--panel))}
.fx-svg[data-layer] .fx-grp.hov .fx-d,.fx-svg[data-layer].fx-focus .fx-d:hover{filter:brightness(.93)}
.fx-svg[data-layer="due"] .fx-d[data-ht="0"],.fx-hs[data-l="due"][data-ht="0"]{fill:color-mix(in srgb,var(--warn) 16%,var(--panel));background:color-mix(in srgb,var(--warn) 16%,var(--panel))}
.fx-svg[data-layer="due"] .fx-d[data-ht="1"],.fx-hs[data-l="due"][data-ht="1"]{fill:color-mix(in srgb,var(--warn) 32%,var(--panel));background:color-mix(in srgb,var(--warn) 32%,var(--panel))}
.fx-svg[data-layer="due"] .fx-d[data-ht="2"],.fx-hs[data-l="due"][data-ht="2"]{fill:color-mix(in srgb,var(--warn) 50%,var(--panel));background:color-mix(in srgb,var(--warn) 50%,var(--panel))}
.fx-svg[data-layer="due"] .fx-d[data-ht="3"],.fx-hs[data-l="due"][data-ht="3"]{fill:color-mix(in srgb,var(--warn) 70%,var(--panel));background:color-mix(in srgb,var(--warn) 70%,var(--panel))}
.fx-svg[data-layer="due"] .fx-d[data-ht="4"],.fx-hs[data-l="due"][data-ht="4"]{fill:color-mix(in srgb,var(--warn) 88%,var(--text));background:color-mix(in srgb,var(--warn) 88%,var(--text))}
.fx-svg[data-layer="cli"] .fx-d[data-ht="0"],.fx-hs[data-l="cli"][data-ht="0"]{fill:color-mix(in srgb,var(--accent) 16%,var(--panel));background:color-mix(in srgb,var(--accent) 16%,var(--panel))}
.fx-svg[data-layer="cli"] .fx-d[data-ht="1"],.fx-hs[data-l="cli"][data-ht="1"]{fill:color-mix(in srgb,var(--accent) 32%,var(--panel));background:color-mix(in srgb,var(--accent) 32%,var(--panel))}
.fx-svg[data-layer="cli"] .fx-d[data-ht="2"],.fx-hs[data-l="cli"][data-ht="2"]{fill:color-mix(in srgb,var(--accent) 50%,var(--panel));background:color-mix(in srgb,var(--accent) 50%,var(--panel))}
.fx-svg[data-layer="cli"] .fx-d[data-ht="3"],.fx-hs[data-l="cli"][data-ht="3"]{fill:color-mix(in srgb,var(--accent) 70%,var(--panel));background:color-mix(in srgb,var(--accent) 70%,var(--panel))}
.fx-svg[data-layer="cli"] .fx-d[data-ht="4"],.fx-hs[data-l="cli"][data-ht="4"]{fill:color-mix(in srgb,var(--accent) 88%,var(--text));background:color-mix(in srgb,var(--accent) 88%,var(--text))}
/* O'sish: qizil (tushish) — neytral — yashil (o'sish) */
.fx-svg[data-layer="trend"] .fx-d[data-ht="0"],.fx-hs[data-l="trend"][data-ht="0"]{fill:color-mix(in srgb,var(--fail) 60%,var(--panel));background:color-mix(in srgb,var(--fail) 60%,var(--panel))}
.fx-svg[data-layer="trend"] .fx-d[data-ht="1"],.fx-hs[data-l="trend"][data-ht="1"]{fill:color-mix(in srgb,var(--fail) 28%,var(--panel));background:color-mix(in srgb,var(--fail) 28%,var(--panel))}
.fx-svg[data-layer="trend"] .fx-d[data-ht="2"],.fx-hs[data-l="trend"][data-ht="2"]{fill:color-mix(in srgb,var(--muted) 14%,var(--panel));background:color-mix(in srgb,var(--muted) 14%,var(--panel))}
.fx-svg[data-layer="trend"] .fx-d[data-ht="3"],.fx-hs[data-l="trend"][data-ht="3"]{fill:color-mix(in srgb,var(--ok) 28%,var(--panel));background:color-mix(in srgb,var(--ok) 28%,var(--panel))}
.fx-svg[data-layer="trend"] .fx-d[data-ht="4"],.fx-hs[data-l="trend"][data-ht="4"]{fill:color-mix(in srgb,var(--ok) 62%,var(--panel));background:color-mix(in srgb,var(--ok) 62%,var(--panel))}
/* Jonli yangilanish: o'zgargan tuman bir lahza yonadi */
.fx-d.fx-flash{animation:fxflash 1.8s ease}
@keyframes fxflash{0%,100%{filter:none}25%{filter:brightness(1.3) saturate(1.4)}}
.fx-live{display:inline-flex;align-items:center;gap:5px}
.fx-live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:fxpulse 2s ease infinite}
@keyframes fxpulse{0%,100%{opacity:1}50%{opacity:.3}}
/* Yo'nalishlar oqimi — sxematik egri, harakatlanuvchi shtrix (ota → bola) */
.fx-fl{fill:none;stroke:var(--accent);stroke-opacity:.72;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:7 5;animation:fxflow 1.4s linear infinite;cursor:help}
.fx-fl.zero{stroke:var(--muted);stroke-opacity:.35;animation:none}
@keyframes fxflow{to{stroke-dashoffset:-24}}
.fx-fl-n{pointer-events:none}
.fx-fl-n rect{fill:var(--accent);stroke:var(--panel);stroke-width:1.2px}
.fx-fl-n text{font:700 9.5px var(--font);fill:var(--accent-ink);text-anchor:middle;dominant-baseline:central}
@media (prefers-reduced-motion:reduce){.fx-fl,.fx-live-dot,.fx-d.fx-flash{animation:none}}
/* Yetkazish nuqtalari (tuman darajasi) — holat rangi */
.fx-pt{fill:var(--info);stroke:var(--panel);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:pointer}
.fx-pt.st-out_for_delivery{fill:var(--ok)}.fx-pt.st-delivery_failed,.fx-pt.st-returning{fill:var(--fail)}.fx-pt.st-at_branch{fill:var(--k4)}
.fx-pt:hover{stroke:var(--text)}
/* Kuryerning bugungi yo'li */
.fx-trk{fill:none;stroke:var(--k4);stroke-width:2.4px;stroke-opacity:.85;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.fx-trk-l{margin-top:10px;display:flex;align-items:center;gap:6px;color:var(--label)}
/* Tuman paneli */
.fx-assign{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 20px 12px;padding:14px 16px;border-radius:var(--r-lg);
  background:var(--down-soft);border:0}
.fx-assign>div{flex:1 1 260px}
.fx-list-n{margin:0 18px 6px}
#fxList tr[data-t]{cursor:pointer}
#fxList tr[data-t]:hover{background:var(--surface-2)}
.fx-late{color:var(--fail);font-weight:600}
.fx-lg-heat{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.fx-hs{display:inline-block;width:14px;height:10px;border-radius:2px;border:1px solid var(--line)}
.fx-tip-bad{color:var(--fail);font-weight:600;margin-top:4px}
/* To'liq ekran */
.fx-card-full:fullscreen{overflow:auto;background:var(--bg)}
.fx-card-full:fullscreen .fx-svg{max-height:calc(100vh - 150px)}
.no-roads .fx-sh,.fx-sh.hid,.fx-ct.hid,.fx-ct.noname text{display:none}
.fx-lg-sh{font:700 9px var(--font);font-style:normal;color:var(--road-casing);background:var(--road-m);border-radius:3px;padding:1px 4px}
.fx-lg-ct{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--text);background:var(--panel)}
.fx-lg-ct.reg{background:var(--text);border-color:var(--panel);box-shadow:0 0 0 1px var(--text)}
.fx-lg-bd{width:18px;border-top:2px solid var(--geo-border)}
.fx-lg-bd.dist{border-top:2px solid var(--line);box-shadow:0 0 0 1px var(--panel)}
.fx-lg-rd{width:18px;height:4px;border-radius:2px;background:var(--road-m);box-shadow:0 0 0 1px var(--road-casing)}
.fx-lg-rd.a{background:var(--road-a)}.fx-lg-rd.r{background:var(--road-r);height:2px}
.fx-grp.hov .fx-d{fill:color-mix(in srgb,var(--g) calc(var(--gp,30%) + 18%),var(--panel))}
/* Nomlar: viloyat (respublikada) va tuman (fokusda) — hudud rangining to'q varianti, oq "halo" bilan */
.fx-lg{transition:transform .22s ease,opacity .35s ease;transform-box:view-box}
.fx-lg.hov{transform:translateY(-10px)}
.fx-lg.dim{opacity:0;pointer-events:none}
.fx-lbl,.fx-dlbl{fill:color-mix(in srgb,var(--g) 45%,var(--text));text-anchor:middle;dominant-baseline:central;font-family:Onest,system-ui,sans-serif;
  stroke:var(--panel);stroke-width:3px;stroke-linejoin:round;paint-order:stroke;vector-effect:non-scaling-stroke}
.fx-lbl{font-size:13px;font-weight:700;cursor:pointer;letter-spacing:.2px}
.fx-lbl.sm{font-size:9.5px}
.fx-lbl:hover{text-decoration:underline}
.fx-dlbl{font-weight:600;pointer-events:none;display:none}
.fx-focus .fx-lbl{display:none}
.fx-focus .fx-lg:not(.dim) .fx-dlbl{display:inline}
.fx-pick{max-width:200px;font-size:13px}
/* Kuryer belgilari — holat rangi */
.fx-cr{cursor:pointer;filter:drop-shadow(0 1px 2px color-mix(in srgb,var(--text) 45%,transparent))}
.fx-cr circle{fill:var(--muted);stroke:var(--panel);stroke-width:3px;vector-effect:non-scaling-stroke}
.fx-lg-cr{width:11px;height:11px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);background:var(--ok)}
.fx-lg-cr.stop{background:var(--k4)}.fx-lg-cr.off{background:var(--muted)}
.fx-legend [hidden]{display:none}
.fx-cr-note{margin:0 20px 12px;padding:12px 14px;border-radius:var(--r-lg);background:var(--warn-soft);border:0;
  color:var(--text);font-size:13px;display:flex;gap:8px;align-items:flex-start;line-height:1.45}
.fx-cr-note .ico{color:var(--k4);flex:none;margin-top:2px}
.fx-cr-note.in-stage{margin:8px 0 0}
.fx-cr-note[hidden]{display:none}
.fx-cr.st-moving circle,.fx-cr.st-on_route circle{fill:var(--ok)}
.fx-cr.st-stopped circle{fill:var(--k4)}
.fx-cr.st-blocked circle{fill:var(--fail)}
.fx-cr.sel circle{stroke:var(--text);stroke-width:3px}
.fx-cr-card{margin:0 20px 12px;border:0;border-radius:var(--r-xl);padding:16px 20px;background:var(--surface-2)}
.fx-cr-h{display:flex;align-items:center;gap:12px}
.fx-cr-h .fx-av{width:40px;height:40px;font-size:16px}
.fx-cr-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px}
.fx-cr-k{background:var(--surface);border:0;border-radius:var(--r-md);padding:10px 14px}
.fx-cr-v{font-size:20px;font-weight:600;margin-top:4px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
tr.sel{background:var(--brand-tint)}
@media (max-width:1100px){.fx-cr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fx-ol{fill:none;stroke:var(--geo-border);stroke-opacity:.85;stroke-width:1.4px;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.fx-grp.hov .fx-ol{stroke-width:2.2px}
.fx-rl{fill:none;stroke:var(--geo-border);stroke-opacity:.55;stroke-width:1px;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}
.fx-focus .fx-d{stroke-width:1.2px;stroke-opacity:1}
.fx-focus .fx-d:hover{fill:color-mix(in srgb,var(--g) 55%,var(--panel))}
.fx-focus .fx-ol{stroke-width:2.4px}
.fx-mk circle{fill:var(--surface);stroke:var(--brand-strong);stroke-width:2px;vector-effect:non-scaling-stroke}
.fx-mk.hub circle{fill:var(--brand-strong)}
.fx-mk.pvz circle{stroke:var(--k4)}
.fx-tip{position:absolute;z-index:3;pointer-events:none;background:var(--surface);border:0;border-radius:var(--r-md);box-shadow:var(--shadow-pop);padding:10px 12px;font-size:13px;max-width:280px}
.fx-tip[hidden]{display:none}
.fx-tip-n{display:flex;flex-wrap:wrap;gap:4px 10px;margin:5px 0 3px}
.fx-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--text-2);margin-top:4px}
.fx-legend span{display:inline-flex;align-items:center;gap:6px}
.fx-lg-mk{width:9px;height:9px;border-radius:50%;border:2px solid var(--brand-strong);background:var(--surface)}
.fx-lg-mk.hub{background:var(--brand-strong)}
.fx-lg-mk.pvz{border-color:var(--k4)}
.fx-lg-rl{width:18px;border-top:1.5px dashed var(--text);opacity:.5}
.fx-src{font-size:11px;color:var(--text-3);text-align:right;margin-top:2px}
.fx-hero{display:flex;align-items:center;gap:16px;padding:20px 24px;border:0;border-radius:var(--r-xl);background:var(--surface-2);box-shadow:none}
.fx-av{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);font-weight:700;font-size:20px;flex:none}
.fx-hero-t{flex:1;min-width:0}
.fx-hero-n{font-size:22px;line-height:28px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fx-chip{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:4px 12px;border:0;border-radius:var(--r-pill);font-size:13px;font-weight:500;color:var(--text-2);background:var(--surface)}
.fx-hero-k{border:0;border-radius:var(--r-lg);background:var(--surface);padding:12px 18px;text-align:right;min-width:120px}
.fx-hero-v{font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--brand-ink);font-variant-numeric:tabular-nums}
.fx-sub{margin:24px 2px 12px;font-size:18px;line-height:24px;font-weight:700}
.fx-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.fx-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:none;min-height:150px;transition:background-color .12s}
.fx-card.click{cursor:pointer}
.fx-card.click:hover{background:var(--surface-2)}
.fx-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}
.fx-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.fx-ic .ico{width:22px;height:22px}
.fx-ic-wh{color:var(--k1);background:var(--k1-bg)}.fx-ic-pvz{color:var(--k2);background:var(--k2-bg)}
.fx-ic-cash{color:var(--ok);background:var(--up-soft)}.fx-ic-emp{color:var(--k3);background:var(--k3-bg)}.fx-ic-cli{color:var(--fire);background:var(--k4-bg)}
.fx-go{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}
.fx-go .ico{width:14px;height:14px}
.fx-card-l{font-size:14px;font-weight:500;color:var(--text-2)}
.fx-card-v{font-size:28px;font-weight:600;margin-top:4px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fx-card-s{font-size:12px;color:var(--text-2);margin-top:4px}
/* ── Filiallar kartalari (tms-filial-karta.js) + ichki sahifa breadcrumb ── */
.fk-q input{width:200px}
/* Karta kengligi ≥ 320px: 4 ko'rsatkich (2×2) va amallar qatori sig'sin — 260px da yozuvlar kesilib, tugmalar siqilardi */
.fk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:16px;padding:4px 20px 20px}
.fk-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:20px 20px 14px;display:flex;flex-direction:column;
  cursor:pointer;transition:background-color .12s,border-color .12s;min-width:0}
.fk-card:hover{border-color:var(--line-strong);background:var(--brand-tint)}
.fk-card.pinned{border-color:var(--brand-soft-hover);background:var(--brand-tint)}
.fk-head{display:flex;align-items:flex-start;gap:12px}
.fk-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--brand-ink);background:var(--brand-soft);flex:none}
.fk-ic .ico{width:21px;height:21px}
.fk-t{flex:1;min-width:0}
.fk-n{font-size:17px;line-height:22px;font-weight:700;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fk-id{font-size:12px;color:var(--text-2);margin-top:3px}
.fk-addr{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--text-2);margin:14px 0;flex:1;line-height:1.45}
.fk-addr .ico{color:var(--text-3);flex:none;margin-top:2px}
.fk-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.fk-actions .fk-ib{flex:none;width:36px;height:36px}
.fk-ib{width:36px;height:36px;border-radius:50%;border:0;background:var(--surface-2);color:var(--text-2);display:grid;place-items:center;cursor:pointer;padding:0;transition:background-color .12s}
.fk-ib .ico{width:15px;height:15px}
.fk-ib:hover{color:var(--text);background:var(--surface-3)}
.fk-ib:disabled{opacity:.4;cursor:default}
.fk-ib.on{color:var(--brand-ink);background:var(--brand-soft)}
.fk-ib.warn{background:var(--warn-soft);color:var(--warn)}
.fk-ib.ok{background:var(--up-soft);color:var(--ok)}
.fk-go{margin-left:auto;border:0;background:none;color:var(--brand-ink);font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:8px 4px;min-height:36px}
.fk-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 16px;border-top:1px solid var(--line)}
/* Kundalik ish (lib/branch-ops.ts), muammo belgisi, solishtirish */
.fk-card.problem{border-color:color-mix(in srgb,var(--fail) 45%,var(--line))}
.fk-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:-4px 0 12px}
.fk-kpis>div{background:var(--surface-2);border:0;border-radius:var(--r-md);padding:8px 12px;min-width:0;
  display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.fk-kpis>div.wide{grid-column:1/-1}
.fk-kpis span{flex:1;min-width:0;font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fk-kpis b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.fk-kpis .warn b{color:var(--warn)}.fk-kpis .bad{background:var(--down-soft)}.fk-kpis .bad b{color:var(--fail)}
.fk-prob{font-size:12px;color:var(--fail);margin:-4px 0 10px;line-height:1.4}
.fk-prob.big{margin:0 20px 12px;padding:12px 14px;border-radius:var(--r-lg);background:var(--down-soft);display:flex;gap:6px;align-items:center}
.fk-cmp{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer;user-select:none;white-space:nowrap}
.fk-cmpbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 20px 12px;padding:8px 8px 8px 20px;border-radius:var(--r-pill);background:var(--inverse);color:var(--accent-ink);border:0}
.fk-cmpbar>span{flex:1;min-width:200px;font-size:14px;font-weight:600}
.fk-cmpbar[hidden]{display:none}
.fk-okgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:12px;padding:0 20px 20px}
.fk-ok{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px}
.fk-ok.warn .fx-cr-v{color:var(--warn)}.fk-ok.bad{border-color:transparent;background:var(--down-soft)}.fk-ok.bad .fx-cr-v{color:var(--fail)}
td.fk-best{color:var(--ok);font-weight:700}
/* Tumanlar kesimida (filial sahifasi) — kichik xarita + jadval, bir-birini ajratadi */
.fk-dl{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin:-4px 0 10px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fk-dwrap{display:grid;grid-template-columns:minmax(260px,5fr) 7fr;gap:16px;padding:0 20px 8px;align-items:start}
.fk-dwrap>*{min-width:0}   /* jadval ustunni kengaytirib sahifaga gorizontal siljish bermasin (o'zi ichida aylanadi) */
@media (max-width:1000px){.fk-dwrap{grid-template-columns:1fr}}
.fk-dmap{border:0;border-radius:var(--r-xl);background:var(--surface-2);padding:8px;min-height:220px}
.fx-svg.fk-mini{max-height:380px;height:360px}
.fk-ctx path{fill:color-mix(in srgb,var(--muted) 8%,var(--panel));stroke:var(--line);stroke-width:.6px;vector-effect:non-scaling-stroke}
.fk-mini .fx-d{cursor:pointer;stroke-width:1.2px}
.fk-mini .fx-d.hl,.fk-mini .fx-d:hover{stroke:var(--geo-border);stroke-width:2.6px;filter:brightness(.95)}
.fk-ml{font:600 11px var(--font);fill:var(--text);text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--panel);stroke-width:3px;
  stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.fk-ml.nofit{display:none}
.fk-dtbl tr[data-did]{cursor:pointer}
.fk-dtbl tr.hl,.fk-dtbl tr[data-did]:hover{background:var(--brand-tint)}
.fk-dtbl th a{color:inherit;text-decoration:none}.fk-dtbl th a.on{color:var(--brand-ink)}
.fk-dtbl tfoot td{font-weight:700;border-top:1px solid var(--line);background:var(--surface-2)}
.fk-up{color:var(--ok);font-weight:600}.fk-down{color:var(--fail);font-weight:600}
.fk-dlg{padding:0 20px 16px}
.fk-pager{display:flex;gap:8px}
.fk-bar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.fk-crumbs{font-size:14px;color:var(--text-2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fk-crumbs a{color:var(--text-2);text-decoration:none}
.fk-crumbs a:hover{color:var(--brand-ink)}
.fk-crumbs b{color:var(--text)}
.fk-sep{opacity:.6}
#fkSubRight a.btn{text-decoration:none}
@media (max-width:1100px){.fx-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.fx-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-hero{flex-wrap:wrap}}

/* ── Atom klasslar (dizayn R2, 2026-09-26): tms*.js dagi takroriy inline style="…" o'rniga. `!important` ATAYLAB — inline
   uslubning ustunligiga teng bo'lsin (ko'rinish o'zgarmasin). Yangi kodda: `class="u-muted u-fs12"`, `style` emas.
   Ro'yxat `admin-shell.test.ts` bilan qulflangan (har bir klass AYNAN bitta deklaratsiya). */
.u-muted{color:var(--muted)!important}.u-fail{color:var(--fail)!important}.u-warn{color:var(--warn)!important}.u-accent{color:var(--accent)!important}
.u-w100{width:100%!important}.u-ox{overflow-x:auto!important}.u-r{text-align:right!important}.u-nw{white-space:nowrap!important}
.u-pt0{padding-top:0!important}.u-f1{flex:1!important}.u-b6{font-weight:600!important}.u-h12{height:12px!important}
.u-fs11{font-size:11px!important}.u-fs115{font-size:11.5px!important}.u-fs12{font-size:12px!important}
.u-mt3{margin-top:3px!important}.u-mt8{margin-top:8px!important}.u-mt10{margin-top:10px!important}.u-mt12{margin-top:12px!important}.u-mt14{margin-top:14px!important}
/* display / margin-bottom atom YO'Q: JS ularni el.style / hidden bilan o'zgartiradi, !important klass bunga to'sqinlik qilardi */
/* ── SKLAD (Saralash markazi: Manifestlash · Yacheykalash · Qaytarish) — tms-sklad.js ── */
.sk-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.sk-crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;max-width:100%;font-size:14px;color:var(--text-2)}
.sk-crumb a{color:var(--text-2);text-decoration:none}.sk-crumb a:hover{color:var(--brand-ink)}
.sk-crumb b{color:var(--text);font-weight:600}.sk-crumb svg{width:14px;height:14px;transform:rotate(-90deg)}
.sk-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;max-width:100%}
.sk-seg button{padding:8px 18px;font-size:14px}
.sk-pad{padding:20px}
.sk-hint-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.sk-hint{font-size:14px;color:var(--text-2);line-height:1.5}
.sk-cellbox{background:var(--surface-2);border:0;border-radius:var(--r-xl);padding:16px;margin-bottom:16px}
.sk-cellbox-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.sk-cellbox-h b{font-size:15px;font-weight:700}.sk-cellbox-h .right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}
.sk-ico{padding:6px 8px}.sk-ico svg{width:15px;height:15px}
.sk-cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));gap:10px}
.sk-cell{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 12px 10px;display:flex;flex-direction:column;gap:3px;min-width:0;transition:border-color .12s,background-color .12s}
.sk-cell:hover{border-color:var(--line-strong);background:var(--brand-tint)}
.sk-cell.prob{background:var(--warn-soft);border-color:transparent}
.sk-cell.off{opacity:.55}
.sk-cell-h{display:flex;align-items:baseline;gap:6px;padding-right:14px}
.sk-cell-h b{font-size:14px;font-weight:700;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.sk-cnt{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.sk-cnt small{font-size:11px;font-weight:500;color:var(--text-2)}
.sk-cell .x{position:absolute;top:5px;right:6px;border:0;background:none;color:var(--text-3);font-size:15px;line-height:1;cursor:pointer;padding:2px}
.sk-cell .x:hover{color:var(--fail)}
.sk-sub{font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk-ds{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk-cell-b{display:flex;gap:6px;margin-top:6px}
.sk-cell-b .btn{min-height:32px;padding:4px 12px;font-size:12px;background:var(--surface-2)}
.sk-lbl{display:block;font-size:13px;font-weight:600;color:var(--text);margin:4px 0 6px}
.sk-note{font-size:12px;color:var(--text-2);margin-top:6px}
.sk-scan{display:flex;gap:10px;align-items:stretch;margin-top:12px}
.sk-scan-in{flex:1;min-width:0;display:flex;align-items:center;gap:12px;border:0;border-radius:var(--r-lg);background:var(--surface);box-shadow:inset 0 0 0 2px var(--brand-strong);min-height:60px;padding:8px 18px;cursor:text}
.sk-scan-in:focus-within{box-shadow:inset 0 0 0 2px var(--brand-strong),0 0 0 4px var(--brand-soft)}
.sk-scan-in svg{width:24px;height:24px;color:var(--brand-ink);flex:none}
.sk-scan-in span{display:flex;flex-direction:column;flex:1;min-width:0}
.sk-scan-in small{font-size:12px;color:var(--text-2)}
.sk-scan-in input{border:0;background:none;padding:2px 0 0;font-size:18px;font-weight:600;box-shadow:none;width:100%}
.sk-go{min-width:130px;min-height:44px;font-size:14px}
.sk-res{margin-top:16px;border:0;border-radius:var(--r-xl);background:var(--brand-soft);padding:16px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.sk-res.warn{background:var(--warn-soft)}.sk-res.fail{background:var(--down-soft)}
.sk-res .big{font-size:40px;font-weight:700;line-height:1.05;letter-spacing:-.02em;color:var(--brand-ink)}
.sk-res.warn .big{color:var(--warn)}.sk-res.fail .big{color:var(--fail);font-size:18px}
.sk-res .meta{font-size:14px;color:var(--text-2)}
.sk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:12px;margin-top:12px}
.sk-ok-card{background:var(--brand-tint);border-color:var(--brand-soft)}
.sk-list{max-height:560px;overflow:auto}
.sk-list td{font-size:13px}
.sk-list a{color:var(--brand-ink);font-weight:600;text-decoration:none;cursor:pointer}.sk-list a:hover{text-decoration:underline}
tr.sk-row-warn td{background:var(--warn-soft)}
.sk-badge{display:inline-block;margin-left:8px;padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;border:0;background:var(--warn-soft);color:var(--warn);white-space:nowrap}
.sk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:12px;margin-bottom:16px}
.sk-kpi{border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;background:var(--surface)}
.sk-kpi .v{font-size:24px;font-weight:600;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.sk-kpi .l{font-size:13px;color:var(--text-2);margin-top:4px}
.sk-row{display:flex;gap:8px;align-items:center}
.sk-row select{flex:1;min-width:0}
.sk-row input{flex:1.4;min-width:0}
.sk-cell{cursor:pointer}
.sk-cell-top{margin-bottom:12px}.sk-cell-top .sk-crumb a{color:var(--text-2)}
.sk-danger{color:var(--fail);border-color:transparent;background:var(--down-soft)}
.sk-danger:hover{color:var(--fail);background:var(--down-soft);border-color:var(--fail)}
.sk-mf-h{margin-bottom:12px}.sk-mf-h b{font-size:16px;font-weight:700}.sk-mf-h select{flex:0 1 380px}
.sk-mf-sum{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;font-size:14px}
.sk-mf-code{font-size:18px;font-weight:700;color:var(--brand-ink);cursor:pointer}.sk-route{color:var(--text-2)}
.sk-sub-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 20px;margin-top:12px}
.sk-sub-card h4{font-size:16px;font-weight:700;margin:0 0 10px}
.sk-big-n{font-size:16px;font-weight:700;color:var(--brand-ink);margin-bottom:8px}
.sk-sub-card .sk-scan{margin-top:0}
.sk-ok-btn{background:var(--ok);border-color:var(--ok);color:var(--accent-ink);font-weight:600;align-self:stretch}.sk-ok-btn:hover{background:var(--ok);color:var(--accent-ink);opacity:.9}
.sk-q{flex:0 1 320px!important}
.sk-acts{white-space:normal;min-width:150px}.sk-acts .btn{margin:2px 0;white-space:nowrap}
.sk-dlist{margin-top:8px;border:1px solid var(--line);border-radius:var(--r-md);max-height:280px;overflow:auto}
.sk-ditem{display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:40px;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer}
.sk-ditem:last-child{border-bottom:0}.sk-ditem:hover{background:var(--surface-2)}
.sk-ditem.off{cursor:default;opacity:.6}.sk-ditem input{width:auto;margin:0}
.sk-fil{display:flex;gap:6px;align-items:center;margin-left:auto;flex-wrap:wrap}
.sk-fil select,.sk-fil input{padding:6px 10px;font-size:13px;width:auto}
.sk-pager{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;font-size:13px;color:var(--text-2)}
.sk-pager .btn{min-height:32px;padding:4px 12px;border-radius:var(--r-pill)}
.sk-sub-h{font-size:13px;color:var(--text-2);padding:0 20px 8px}
tr.click{cursor:pointer}

/* ── Xaritadan tanlash (js/geo-pick.js, spec 2026-09-26-xaritadan-manzil) — admin va kabinet (kabinet o'z tokenlari bilan) ── */
.gp-bg{position:fixed;inset:0;background:rgba(10,11,13,.48);z-index:400;display:flex;align-items:center;justify-content:center;padding:16px}
.gp{width:min(820px,100%);height:min(640px,100%);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);
  display:flex;flex-direction:column;overflow:hidden}
.gp-h{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:12px 16px 12px 24px;border-bottom:1px solid var(--line);font-size:18px;font-weight:700;color:var(--text)}
.gp-x{border:0;background:var(--surface-2);color:var(--text);cursor:pointer;width:40px;height:40px;padding:0;border-radius:50%;display:grid;place-items:center}
.gp-x:hover{background:var(--surface-3)}
.gp-x .ico{width:18px;height:18px}
.gp-s{position:relative;display:flex;align-items:center;gap:8px;margin:12px 24px;border:0;border-radius:var(--r-pill);padding:0 16px;background:var(--surface-2)}
.gp-s>.ico{color:var(--text-2)}
.gp-s input{border:0;flex:1;padding:11px 0;background:transparent;min-width:0;box-shadow:none}
.gp-s:focus-within{background:var(--surface);box-shadow:inset 0 0 0 2px var(--brand-strong)}
.gp-hits{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:0;border-radius:var(--r-lg);padding:6px;
  box-shadow:var(--shadow-pop);z-index:3;max-height:240px;overflow:auto}
.gp-hits button{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;border:0;background:none;padding:10px 12px;border-radius:var(--r-md);cursor:pointer;color:var(--text);font-size:14px}
.gp-hits button:hover{background:var(--surface-2)}
.gp-hits .ico{color:var(--text-2);margin-top:2px}
.gp-hit-e{padding:10px 12px;color:var(--text-2);font-size:13px}
.gp-map{position:relative;flex:1;min-height:240px;margin:0 24px;border-radius:var(--r-lg);overflow:hidden;border:0}
.gp-c{position:absolute;inset:0}
.gp-err{display:grid;place-items:center;height:100%;color:var(--muted);font-size:13px;padding:16px;text-align:center}
.gp-me{position:absolute;right:12px;bottom:12px;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:var(--surface);
  color:var(--brand-ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-pop)}
.gp-me .ico{width:18px;height:18px}
/* Markazdagi pin (yetkazib berish ilovalaridagidek): uchi xarita markazida; surish paytida ko'tariladi, soyasi kichrayadi */
.gp-pin{position:absolute;left:50%;top:50%;z-index:2;width:36px;height:50px;transform:translate(-50%,-100%);pointer-events:none}
.gp-pin[hidden]{display:none}
.gp-pin svg{display:block;width:36px;height:50px;color:var(--brand-strong);filter:drop-shadow(0 4px 8px rgba(10,11,13,.25));
  transition:transform .18s cubic-bezier(.2,.8,.2,1)}
.gp-pin svg path{fill:currentColor}
.gp-pin svg circle{fill:var(--surface)}
.gp-pin i{position:absolute;left:50%;bottom:-3px;width:12px;height:5px;margin-left:-6px;border-radius:50%;background:rgba(10,11,13,.35);
  transition:transform .18s cubic-bezier(.2,.8,.2,1),opacity .18s}
.gp-pin.up svg{transform:translateY(-12px)}
.gp-pin.up i{transform:scale(.6);opacity:.55}
.gp-hint[hidden]{display:none}
/* Koordinatani qo'lda kiritish (qidiruv qatoridagi "Koordinata" tugmasi) */
.gp-ll-t{flex:none;border:0;border-radius:var(--r-pill);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;
  min-height:32px;padding:0 12px;cursor:pointer;white-space:nowrap}
.gp-ll-t:hover{background:var(--surface-3)}
.gp-ll-t.on{background:var(--brand-soft);color:var(--brand-ink)}
.gp-ll{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px 12px;align-items:end;margin:-4px 24px 12px}
.gp-ll[hidden]{display:none}
.gp-ll label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text-2);min-width:0}
.gp-ll input{width:100%;min-width:0;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:15px}
.gp-ll .btn{min-height:42px}
.gp-ll-e{grid-column:1/-1;margin:0;font-size:13px;color:var(--fail)}
.gp-ll-e.warn{color:var(--warn)}
.gp-ll-e:empty{display:none}
.gp-ll-h{grid-column:1/-1;margin:0;font-size:12px;color:var(--text-2)}
.gp-res>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.gp-ll-v{font-size:12px;color:var(--text-2)}
.gp-ll-v:empty{display:none}
@media (max-width:600px){.gp-ll{margin:-2px 10px 10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gp-ll .btn{grid-column:1/-1}}
.gp-map .gp-hint{left:12px;right:12px;transform:none;width:fit-content;margin:0 auto;white-space:normal;text-align:center;border-radius:16px}
@media (prefers-reduced-motion:reduce){.gp-pin svg,.gp-pin i{transition:none}}
.gp-hint{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:2;background:var(--inverse);border:0;border-radius:var(--r-pill);
  padding:6px 14px;font-size:13px;color:var(--accent-ink);pointer-events:none;white-space:nowrap}
.gp-f{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;flex-wrap:wrap}
.gp-res{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:200px;font-size:14px;color:var(--text-2)}
.gp-res.on{color:var(--text)}
.gp-res .ico{color:var(--brand-ink);margin-top:2px}
.gp-btns{display:flex;gap:8px}
.gp-bind{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.gp-bind .ico{color:var(--brand-ink)}
.gp-set{font-size:13px;color:var(--text-2)}
.gp-set a{color:var(--brand-ink)}
@media (max-width:600px){.gp-bg{padding:0}.gp{width:100%;height:100%;border-radius:0}.gp-map{margin:0 10px}.gp-s{margin:10px}.gp-f{padding:10px}.gp-btns{width:100%}.gp-btns .btn{flex:1;justify-content:center}}
.dgrid>.gp-bind,.cab-form>.gp-bind,.fgrid>.gp-bind{grid-column:1/-1}
.gp-mini{height:180px;border:0;border-radius:var(--r-lg);overflow:hidden;margin-top:8px;position:relative}
/* Sozlamalar → Stikerlar (yorliq konstruktori, tms-stiker.js) */
.stk-grid{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;gap:14px;align-items:start}
.stk-grid>*{min-width:0}
@media (max-width:1180px){.stk-grid{grid-template-columns:1fr}}
.stk-add{display:flex;flex-wrap:wrap;gap:6px}
.stk-els{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-md)}
.stk-li{padding:8px 12px;min-height:36px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line)}
.stk-li:last-child{border-bottom:0}
.stk-li.on{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}
.stk-stage{overflow:auto;padding:24px;background:var(--surface-2);border-radius:var(--r-xl);display:flex;justify-content:center}
.stk-paper{position:relative;background:var(--surface);box-shadow:0 1px 3px rgba(10,11,13,.16);flex:none;user-select:none;overflow:hidden}
.stk-el{position:absolute;box-sizing:border-box;cursor:move;color:var(--text);overflow:hidden;display:flex;flex-direction:column;padding:0 2px}
.stk-el:hover{outline:1px dashed var(--text-3)}
.stk-el.on{outline:2px solid var(--brand-strong);z-index:5}
.stk-el.t-line{padding:0;overflow:visible}
.stk-cap{color:var(--muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stk-val{flex:1;display:flex;flex-direction:column;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
.stk-val.ml{display:-webkit-box;-webkit-box-orient:vertical;white-space:normal;justify-content:flex-start}
.stk-bar-code{flex:1;background:repeating-linear-gradient(90deg,var(--text) 0 2px,transparent 2px 3px,var(--text) 3px 4px,transparent 4px 7px)}
.stk-qr{margin:auto;background:conic-gradient(var(--text) 25%,transparent 0 50%,var(--text) 0 75%,transparent 0) 0 0/20% 20%}
.stk-logo{width:100%;height:100%;object-fit:contain;pointer-events:none}
.stk-h{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:2px;background:var(--brand-strong);cursor:nwse-resize}
.stk-chk{display:inline-flex;gap:6px;align-items:center;margin-right:14px;font-size:13px}
.stk-bar{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}

/* ── TARQATISH → Filiallar (tms-disp-staff.js): filtrlar, filiallar daraxti, xodimlar jadvali ── */
.ds-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.ds-f{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text);min-width:0}
.ds-f:nth-child(1){flex:1.4 1 240px}.ds-f:nth-child(2){flex:1 1 170px}.ds-f:nth-child(3){flex:0 1 auto}.ds-f:nth-child(4){flex:0 1 190px}
.ds-f input,.ds-f select{font-size:14px;padding:9px 12px}
.ds-in{display:flex;align-items:center;gap:8px;border:0;border-radius:var(--r-pill);background:var(--surface-2);padding:0 16px}
.ds-in input{border:0!important;box-shadow:none!important;padding:10px 0;flex:1;min-width:0;background:none}
.ds-in svg{width:16px;height:16px;color:var(--text-2);flex:none}
.ds-range input{flex:0 0 auto;width:130px}.ds-range i{font-style:normal;color:var(--text-2)}
.ds-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.ds-grid{grid-template-columns:1fr}}
.ds-tree{padding:0;overflow:hidden}
.ds-tree-h{display:flex;align-items:center;gap:8px;padding:14px 16px 8px;font-size:13px;font-weight:600;color:var(--text-2);background:var(--surface);border-bottom:0}
.ds-tree-h svg{width:16px;height:16px;color:var(--text-2)}
.ds-tree-b{max-height:calc(100vh - 260px);overflow:auto;padding:4px 10px 12px}
.ds-node{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border-radius:var(--r-pill);font-size:14px;font-weight:600;color:var(--text);cursor:pointer;min-width:0}
.ds-node:hover{background:var(--surface-2)}
.ds-node.on{background:var(--brand-soft);color:var(--brand-ink)}
.ds-node svg{width:16px;height:16px;flex:none;color:var(--text-2)}
.ds-node.on svg{color:var(--brand-ink)}
.ds-leaf{padding-left:36px;font-weight:500}.ds-leaf svg{color:var(--text-3)}
.ds-lbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-car{display:inline-flex;width:14px;justify-content:center}.ds-car svg{width:12px;height:12px;color:var(--text-3);transform:rotate(-90deg);transition:transform .15s}
.ds-car.open svg{transform:none}
.ds-none{padding:4px 12px 8px 36px;font-size:13px;color:var(--text-2)}
.ds-main{padding:0;min-width:0}
.ds-head{padding:20px 20px 12px}.ds-head h2{font-size:18px;line-height:24px;font-weight:700;letter-spacing:-.01em;margin:0 0 8px}
.ds-crumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin-bottom:6px}
.ds-crumb a{color:var(--brand-ink);cursor:pointer}.ds-crumb svg{width:12px;height:12px;transform:rotate(-90deg)}
.ds-pills{display:flex;gap:8px;flex-wrap:wrap}
.ds-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:600;background:var(--surface-2);border:0;color:var(--text-2)}
.ds-pill.dark{background:var(--inverse);color:var(--accent-ink)}
.ds-tag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600;background:var(--surface-2);border:0;color:var(--text-2);vertical-align:middle}
.ds-link{color:var(--brand-ink);font-weight:600;cursor:pointer}
/* Sozlamalar → ma'lumotnomalar (tms-sprav.js): Manzillar, Jo'natma turlari */
.sp-crumbs{font-size:14px;color:var(--text-2);margin-bottom:12px}
.sp-crumbs a{color:var(--brand-ink);text-decoration:none}
.sp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.sp-title{font:700 18px/24px var(--font);letter-spacing:-.01em}
.sp-tools{display:flex;gap:8px}
.sp-tools .btn.on{background:var(--brand-soft);color:var(--brand-ink);border-color:transparent}
.sp-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.sp-filters input{min-width:240px;flex:0 1 280px}
.sp-drill{color:var(--brand-ink);font-weight:600;text-decoration:none}
.sp-drill span{color:var(--text-2)}
.sp-ib{width:36px;height:36px;border-radius:50%;border:0;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-left:6px;color:var(--text);transition:background-color .12s}
.sp-ib:hover{background:var(--surface-3)}
.sp-ib:disabled{opacity:.4;cursor:default}
.sp-ib .ico{width:15px;height:15px}
.sp-ib.pw{background:var(--warn-soft);color:var(--warn)}
.sp-ib.pw:not(.on){background:var(--surface-2);color:var(--text-3)}
.pill.sp-off{background:var(--surface-2);color:var(--text-2)}
.sp-foot{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 0;font-size:13px;color:var(--text-2)}
/* Sozlamalar → Narx: rejim ustamalari katagi (tms-narx-sozlama.js) */
.nx-grid td.nx-td{padding:6px 8px;min-width:150px}
.nx-cell{display:flex;align-items:center;gap:3px}
.nx-cell input{width:84px;min-width:0;padding:6px 8px;text-align:right}
.nx-k{border:0;background:var(--surface-2);color:var(--text-2);border-radius:var(--r-pill);padding:6px 9px;font-size:12px;font-weight:600;cursor:pointer;line-height:1}
.nx-k.on{background:var(--brand-soft);color:var(--brand-ink)}
.nx-k:disabled{cursor:default;opacity:.6}
/* ── SOZLAMALAR → ROLLAR (tms-rollar.js) ── */
.rl-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.rl-bar .rl-q{flex:1;min-width:180px}
.rl-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
@media (max-width:980px){.rl-grid{grid-template-columns:minmax(0,1fr)}}
.rl-side{position:sticky;top:12px}
.rl-grp{border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:12px;overflow:hidden}
.rl-grp-h{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 16px;background:var(--surface-2);font-weight:600;cursor:pointer}
.rl-grp-h .n{margin-left:auto;font-size:13px;color:var(--text-2);font-weight:500}
.rl-perm{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:4px 10px;align-items:start;padding:12px 16px;border-top:1px solid var(--line)}
.rl-perm.off{opacity:.55}
.rl-perm .h{grid-column:2/-1;font-size:13px;color:var(--text-2)}
.rl-perm .why{grid-column:2/-1;font-size:12px;color:var(--warn)}
.rl-warn{border:0;border-radius:var(--r-lg);background:var(--down-soft);padding:14px 16px;margin-top:12px;color:var(--fail)}
.rl-warn label{display:flex;gap:8px;align-items:center;margin-top:8px;color:var(--text);font-weight:600}
.rl-secs{display:flex;flex-wrap:wrap;gap:6px}
.rl-list{display:flex;flex-direction:column;gap:6px}
.rl-li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.rl-mx{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:var(--r-lg)}
.rl-mx table{border-collapse:separate;border-spacing:0;font-size:13px}
.rl-mx th,.rl-mx td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.rl-mx thead th{position:sticky;top:0;background:var(--surface);z-index:2}
.rl-mx td:first-child,.rl-mx th:first-child{position:sticky;left:0;background:var(--surface);z-index:1;white-space:normal;min-width:220px}
.rl-mx thead th:first-child{z-index:3}
.rl-mx .g td{background:var(--surface-2);font-weight:600}
.rl-mx .c{text-align:center;color:var(--ok);font-weight:700}
.rl-mx td.e{cursor:pointer}
.rl-mx td.e:hover{background:var(--brand-tint)}

/* ═══════════════ MOLIYA bo'limi (tms-moliya.js): Kassalar, ДДС, Приход в кассу, АПК, АПД, Analitika, Nazorat markazi ═══════════════ */
.fn-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.fn-head h1{font-size:22px;line-height:28px;font-weight:700;letter-spacing:-.02em}
.fn-head .fn-sub{font-size:14px;color:var(--text-2);margin-top:4px}
.fn-head .fn-acts{display:flex;gap:8px;flex-wrap:wrap}
.fn-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fn-chips button{border:0;background:transparent;border-radius:var(--r-pill);min-height:36px;padding:0 16px;font-size:14px;font-weight:600;color:var(--text-2);cursor:pointer;transition:background-color .12s,color .12s}
.fn-chips button:hover{background:var(--surface-2);color:var(--text)}
.fn-chips button.on{background:var(--brand-soft);color:var(--brand-ink)}
.fn-chips input[type=date]{height:36px;padding:0 12px;font-size:13px;border-radius:var(--r-pill)}
.fn-st{display:flex;gap:6px;flex-wrap:wrap}
.fn-st button{border:0;background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:var(--r-pill);min-height:36px;padding:0 14px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}
.fn-st button.on{box-shadow:none;color:var(--brand-ink);background:var(--brand-soft)}
.fn-st button .n{margin-left:6px;font-weight:600;color:var(--text-2)}
.fn-st button.on .n{color:var(--brand-ink)}
.fn-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:12px}
.fn-bar .fn-fl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fn-bar select,.fn-bar input{min-width:150px}
.fn-under{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:16px 0;max-width:100%;overflow-x:auto;scrollbar-width:none}
.fn-under button{border:0;background:none;padding:10px 0;font-size:15px;font-weight:600;color:var(--text-2);cursor:pointer;border-radius:0;flex:0 0 auto;white-space:nowrap;box-shadow:inset 0 -2px 0 transparent}
.fn-under button.on{color:var(--brand-ink);background:none;box-shadow:inset 0 -2px 0 var(--brand-strong)}
.fn-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.fn-kpis.k6{grid-template-columns:repeat(6,minmax(0,1fr))}
.fn-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 20px;min-width:0;box-shadow:none}
.fn-kpi.hl{border-color:transparent;background:var(--brand-tint);box-shadow:inset 0 0 0 1px var(--brand-soft-hover)}
.fn-kpi .l{font-size:14px;color:var(--text-2);font-weight:500;display:flex;align-items:center;gap:6px}
.fn-kpi .l .ico{width:14px;height:14px}
.fn-kpi .v{font-size:24px;font-weight:600;margin-top:8px;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}
.fn-kpi .s{font-size:12px;color:var(--text-2);margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fn-up{color:var(--ok)!important}.fn-down{color:var(--fail)!important}.fn-warnc{color:var(--warn)!important}.fn-infoc{color:var(--info)!important}
.fn-delta{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);background:var(--up-soft);color:var(--ok)}
.fn-delta.neg{background:var(--down-soft);color:var(--fail)}.fn-delta.nil{background:var(--surface-2);color:var(--text-2)}
.fn-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:12px;margin-bottom:12px}
.fn-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fn-pb{display:flex;align-items:flex-end;gap:10px;height:150px;padding:18px 18px 0}
.fn-pb .g{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%;min-width:0;position:relative}
.fn-pb .g i{display:block;width:40%;max-width:16px;border-radius:var(--r-xs,6px) var(--r-xs,6px) 2px 2px;min-height:2px;position:relative}
.fn-pb .g i.in{background:var(--brand)}
.fn-pb .g i.out{background:var(--text-3)}
.fn-pb .g i b{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:600;color:var(--text-2);white-space:nowrap}
.fn-pbx{display:flex;gap:10px;padding:8px 18px 16px;font-size:12px;color:var(--text-2)}
.fn-pbx span{flex:1;text-align:center}.fn-pbx span.on{color:var(--text);font-weight:700}
.fn-lg{display:flex;gap:16px;font-size:12px;color:var(--text-2)}
.fn-lg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.fn-hb{display:flex;flex-direction:column;gap:10px;padding:4px 18px 16px}
.fn-hb .r{display:grid;grid-template-columns:minmax(80px,1fr) 1.4fr auto;gap:12px;align-items:center;font-size:13px}
.fn-hb .r .t{height:8px;background:var(--surface-2);border-radius:var(--r-pill);overflow:hidden}
.fn-hb .r .t i{display:block;height:100%;background:var(--text-3);border-radius:inherit}
.fn-hb .r .t i.in{background:var(--brand)}.fn-hb .r .t i.out{background:var(--down)}
.fn-hb .r .nm{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-hb .r .nm.none{font-style:italic;color:var(--text-2)}
.fn-hb .r .am{font-weight:600;font-variant-numeric:tabular-nums}
.fn-donut{display:flex;gap:18px;align-items:center;padding:4px 18px 16px;flex-wrap:wrap}
.fn-donut svg{flex:none}
.fn-donut .c1{font-size:6.6px;font-weight:600;fill:var(--text)}.fn-donut .c2{font-size:3.3px;fill:var(--text-2)}
.fn-lg i.fn-bg-in{background:var(--brand)}.fn-lg i.fn-bg-out{background:var(--text-3)}
.fn-leg{flex:1;min-width:170px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.fn-leg .r{display:flex;align-items:center;gap:8px}
.fn-leg .dot{width:10px;height:10px;border-radius:3px;flex:none}
.fn-leg .nm{flex:1;min-width:0;color:var(--text)}.fn-leg .p{font-weight:600;min-width:44px;text-align:right}.fn-leg .c{color:var(--text-2);min-width:36px;text-align:right}
.fn-leg .v{font-weight:600;font-size:15px}
/* Statistikadan Buyurtmalarga "2 marta bosib" (web-react `shipments/drill.ts`) */
/* 2x bosiladigan son: kursor shakli o'zgarmaydi (strelka), faqat rangi — foydalanuvchi talabi 2026-10-17 */
[data-drill]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='24' viewBox='0 0 20 24'%3E%3Cpath d='M2 1.5v18l4.6-4.3 3.1 6.9 3.2-1.5-3.1-6.8H17z' fill='%23EA580C' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2,default;user-select:none}
div[data-drill]:hover,tr[data-drill]:hover>td,td[data-drill]:hover{background:var(--accent-soft)}
.fn-leg .r[data-drill]{border-radius:6px;margin:-2px -4px;padding:2px 4px}
.bars .b[data-drill]:hover i{filter:brightness(1.15)}
.fn-donut circle[data-drill]:hover{stroke-width:6.5}
.donut-box circle[data-drill]:hover{stroke-width:22}
.donut-box .legend>div[data-drill]{border-radius:6px}
.sh-drill{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.sh-drill>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-drill button{border:0;background:none;cursor:pointer;color:inherit;font-weight:700}
table.fn-t td{font-size:14px;padding:12px 16px}
table.fn-t th{padding:12px 16px}
.fn-n{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}
.fn-link{color:var(--brand-ink);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.fn-link:hover{text-decoration:underline}
.fn-sm{font-size:12px;color:var(--text-2);margin-top:2px}
.fn-sm.ok{color:var(--info)}.fn-sm.bad{color:var(--fail)}
.fn-ib{display:inline-flex;gap:4px}
.fn-ib button{width:36px;height:36px;border:0;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;color:var(--text);cursor:pointer;transition:background-color .12s}
.fn-ib button:hover{background:var(--surface-3)}
.fn-ib .ico{width:15px;height:15px}
.fn-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;font-size:13px;color:var(--text-2);border-top:1px solid var(--line)}
.fn-pager .pg{display:flex;align-items:center;gap:8px}
.fn-pager .pg button{width:36px;height:36px;border-radius:50%;border:0;background:var(--surface-2);cursor:pointer;color:var(--text)}
.fn-pager .pg button:disabled{opacity:.4;cursor:default}
.fn-pager b{color:var(--text);font-weight:600}
.fn-alerts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fn-alert{border:0;border-radius:var(--r-xl);padding:16px 20px;font-size:14px;font-weight:600}
.fn-alert .fn-sm{font-weight:500}
.fn-alert.fail{background:var(--down-soft);color:var(--fail)}
.fn-alert.fail .fn-sm{color:var(--fail)}
.fn-alert.warn{background:var(--warn-soft);color:var(--warn);cursor:pointer}
.fn-alert.ok{background:var(--up-soft);color:var(--ok)}
.fn-feed{max-height:220px;overflow-y:auto;padding:0 18px 12px}
.fn-feed .r{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px;border-bottom:1px solid var(--line)}
.fn-feed .r:last-child{border-bottom:0}
.fn-feed .t{flex:1;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-feed .tm{font-size:12px;color:var(--text-3);white-space:nowrap}
.fn-av{width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none;text-transform:uppercase}
.fn-av.lg{width:44px;height:44px;font-size:14px}
.fn-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:12px;padding:0 20px 20px}
.fn-cc{display:flex;gap:12px;border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;cursor:pointer;background:var(--surface);transition:background-color .12s}
.fn-cc:hover{background:var(--surface-2)}
.fn-cc .nm{font-weight:600;font-size:15px}
.fn-cc .ct{display:flex;align-items:baseline;gap:6px;margin-top:6px}
.fn-cc .ct b{font-size:22px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fn-cc .ct span{font-size:12px;color:var(--text-2)}
.fn-cc .ct .pill{margin-left:auto}
.fn-prog{height:6px;background:var(--surface-2);border-radius:var(--r-pill);overflow:hidden;margin-top:10px}
.fn-prog i{display:block;height:100%;background:var(--brand);border-radius:inherit}
.fn-badge{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--r-pill);background:var(--down-soft);color:var(--fail)}
.fn-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding:20px}
.fn-meta .k{font-size:13px;color:var(--text-2);font-weight:500}
.fn-meta .v{font-size:15px;font-weight:600;margin-top:4px;line-height:1.45}
.fn-seal{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--brand-tint);border:0;border-radius:var(--r-lg);padding:12px 16px;margin-bottom:12px;font-size:13px;color:var(--text)}
.fn-seal input{max-width:150px}
.fn-bal{padding:16px 20px}
.fn-bal .k{font-size:13px;color:var(--text-2);font-weight:500}
.fn-bal .v{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}
.fn-bal .v small{font-size:12.5px;font-weight:600;margin-left:6px}
tr.fn-ret td{background:var(--brand-tint)}
.fn-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-2);cursor:pointer;margin-bottom:8px;border:0;background:none;padding:6px 0;min-height:36px}
.fn-back:hover{color:var(--brand-ink)}
.fn-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px}
.fn-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text);font-weight:600}
.fn-form .w{grid-column:1/-1}
.fn-form .hint{font-size:12px;color:var(--text-2);font-weight:500}
@media (max-width:1100px){.fn-grid{grid-template-columns:1fr 1fr}.fn-kpis.k6{grid-template-columns:repeat(3,minmax(0,1fr))}.fn-meta{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.fn-grid,.fn-grid2,.fn-alerts,.fn-form{grid-template-columns:1fr}.fn-kpis,.fn-kpis.k6{grid-template-columns:1fr 1fr}.fn-meta{grid-template-columns:1fr 1fr}}

/* Ilova ichidagi panel (spec 2026-09-27-ilova-yagona-skaner-va-panel §4.2): chiqish va PIN — ilova Profilida */
.in-app #logoutBtn,.in-app #pinBtn{display:none!important}

/* "Tuman / shahar / AYP" — yozib tanlash (core.js:placePick, foydalanuvchi talabi 2026-09-28). Admin va kabinet (kabinet tokenlari o'zi) */
.pp{position:relative;width:100%}
.pp-in{width:100%}
.pp-dd{position:absolute;z-index:70;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:0;border-radius:var(--r-lg);
  box-shadow:var(--shadow-pop);max-height:300px;overflow:auto;padding:6px}
.pp-it{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:9px 12px;border:0;border-radius:var(--r-md);
  background:none;text-align:left;cursor:pointer;font:inherit;color:var(--text)}
.pp-it b{font-weight:600}
.pp-it span{font-size:12px;color:var(--text-2)}
.pp-it.on,.pp-it:hover{background:var(--surface-2)}
.pp-no{padding:10px 12px;color:var(--text-2);font-size:13px}

/* ═══ Boshqaruv — orgstruktura daraxti (tms-boshqaruv.js, spec 2026-09-28-boshqaruv-moduli §8) ═══ */
.bq-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bq-org{overflow:auto;padding:24px;border:0;border-radius:var(--r-xl);background:var(--surface-2);min-height:320px;max-height:calc(100vh - 250px)}
.bq-zoom{transform:scale(var(--z,1));transform-origin:0 0;width:max-content;margin:0 auto}
.bq-tree,.bq-tree ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center}
.bq-tree li{position:relative;padding:24px 8px 0;display:flex;flex-direction:column;align-items:center}
.bq-tree li::before,.bq-tree li::after{content:'';position:absolute;top:0;right:50%;width:50%;height:24px;border-top:2px solid var(--line-strong)}
.bq-tree li::after{right:auto;left:50%;border-left:2px solid var(--line-strong)}
.bq-tree li:only-child::before,.bq-tree li:only-child::after{display:none}
.bq-tree li:only-child{padding-top:24px}
.bq-tree li:first-child::before,.bq-tree li:last-child::after{border:0 none}
.bq-tree li:last-child::before{border-right:2px solid var(--line-strong);border-radius:0 6px 0 0}
.bq-tree li:first-child::after{border-radius:6px 0 0 0}
.bq-tree li>ul{position:relative;padding-top:24px}
.bq-tree li>ul::before{content:'';position:absolute;top:0;left:50%;height:24px;border-left:2px solid var(--line-strong)}
.bq-tree li:only-child>ul{padding-top:0}
.bq-tree>li{padding-top:0}
.bq-tree>li::before,.bq-tree>li::after{display:none}
.bq-node{position:relative;min-width:190px;max-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px 16px;text-align:left;cursor:pointer;box-shadow:none;transition:border-color .12s}
.bq-node:hover{border-color:var(--brand-strong)}
.bq-node.vac{border-style:dashed;border-color:var(--warn)}
.bq-node.dim{opacity:.4}
.bq-node.drop,.bq-root-drop.drop{outline:2px solid var(--brand-strong);outline-offset:2px}
.bq-t{font-weight:700;font-size:14px;color:var(--text);line-height:1.3}
.bq-d{font-size:12px;color:var(--text-2);margin-top:2px}
.bq-h{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:8px;color:var(--text);min-width:0}
.bq-h span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bq-h.vac{color:var(--warn);font-weight:600}
.bq-av{width:24px;height:24px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.bq-f{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.bq-tg{position:absolute;left:50%;bottom:-11px;transform:translateX(-50%);border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-pill);font-size:11px;font-weight:600;padding:0 9px;line-height:20px;cursor:pointer;color:var(--text-2);z-index:1}
/* Orgstruktura → Bo'limlar (Org.tsx:DeptTree): bo'lim — blok, ichida lavozimlar bo'ysunish daraxti */
.bq-dept{position:relative;min-width:280px;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);text-align:left;
  box-shadow:0 1px 2px color-mix(in srgb,var(--text) 6%,transparent)}
.bq-dept.drop{outline:2px solid var(--brand-strong);outline-offset:2px}
.bq-dh{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--brand-tint);border-radius:var(--r-lg) var(--r-lg) 0 0}
.bq-dh[draggable=true]{cursor:grab}
.bq-db{padding:6px 6px 14px}
.bq-none{padding:6px 8px}
.bq-vc{color:var(--warn);font-weight:600}
.bq-prow{padding:6px 8px 6px calc(8px + var(--lv,0) * 16px);border-radius:var(--r-sm);cursor:pointer;border:1px solid transparent}
.bq-prow:hover{background:var(--surface-2);border-color:var(--line)}
.bq-prow.dim{opacity:.4}
.bq-prow.drop{outline:2px solid var(--brand-strong);outline-offset:1px;background:var(--surface-2)}
.bq-pt{font-size:13px;line-height:1.35;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}
.bq-pl{color:var(--text-2);margin-right:2px}
.bq-up{font-size:11px;color:var(--text-2);background:var(--surface-2);border-radius:var(--r-pill);padding:1px 7px}
.bq-ph{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:12px;color:var(--text);min-width:0}
.bq-ph .bq-h{margin-top:0;font-size:12px}
.bq-hc{display:inline-flex;align-items:center;gap:6px;min-width:0}
.bq-add{width:24px;height:24px;flex:none;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-pill);color:var(--brand-strong);font-weight:700;
  line-height:1;cursor:pointer;padding:0}
.bq-add:hover{background:var(--brand-soft)}
.bq-hint{padding:0 16px 12px}
.bq-root-drop{border:1px dashed var(--line-strong);border-radius:var(--r-lg);padding:10px 14px;font-size:13px;color:var(--text-2);margin-bottom:12px;text-align:center}
.bq-resp{padding:10px 0;border-bottom:1px solid var(--line)}
.bq-resp:last-child{border-bottom:0}
.bq-tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap}
.bq-tabs button{white-space:nowrap}
@media (max-width:640px){.bq-node{min-width:150px;max-width:180px}.bq-org{max-height:none;padding:10px}.bq-kpi .grid-kpi,.grid-kpi.bq-kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bq-root-drop{display:none}}
/* Boshqaruv M3 — KPI */
.bq-bar{display:inline-block;vertical-align:middle;width:72px;height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}.bq-bar i{display:block;height:100%;border-radius:inherit;background:var(--brand)}
.bq-bar.green i{background:var(--ok)}.bq-bar.yellow i{background:var(--warn)}.bq-bar.red i{background:var(--fail)}.bq-up{color:var(--ok)}.bq-kpic .drow .v{text-align:right}
/* Boshqaruv M4 — topshiriqlar */
.bq-acts{display:flex;flex-wrap:wrap;gap:6px}.bq-pre{white-space:pre-wrap;word-break:break-word}.bq-cm{padding:8px 0;border-bottom:1px solid var(--line)}.bq-cm:last-of-type{border-bottom:0}
/* Boshqaruv M5 — dashboard */
.bq-prob{padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.bq-prob:last-child{border-bottom:0}.bq-prob:hover{background:var(--surface-2)}
@media (min-width:641px){.grid-kpi.bq-kpi5{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* Boshqaruv M6 — Men */
.bq-me{max-width:760px}.bq-pad{padding:0 20px 16px}.bq-mt{padding:10px 0;border-bottom:1px solid var(--line)}.bq-mt:last-child{border-bottom:0}

/* ═══ Redizayn 2026-10 (maket admin/T3, T7, ShipmentCard, 3.2): bo'lim-xos qo'shimchalar ═══ */
/* Skaner maydoni (Skaner, Qabul) — maket `g-scan`: katta, oq, brend chegarali; kod — monospace */
input.rx-scan{height:64px;padding:0 20px;border:0;border-radius:var(--r-xl);background:var(--surface);box-shadow:inset 0 0 0 2px var(--brand-strong);
  font:600 20px ui-monospace,"SF Mono",Menlo,Consolas,monospace;letter-spacing:.02em}
input.rx-scan.sm{height:52px;border-radius:var(--r-lg);font-size:17px}
input.rx-scan::placeholder{font:500 15px var(--font);letter-spacing:0;color:var(--text-3)}
input.rx-scan:focus{box-shadow:inset 0 0 0 2px var(--brand-strong),0 0 0 4px var(--brand-soft)}
@media (max-width:400px){input.rx-scan{font-size:16px;letter-spacing:0}}
/* Jo'natmalar ro'yxati (T3): trek qalin; telefonda jadval o'rniga ro'yxat qatorlari (sarlavhasiz, matn siqilmaydi) */
.sh-tbl td.mono{font-weight:600;font-size:13.5px}
@media (max-width:639px){
  .sh-tbl thead{display:none}
  .sh-tbl,.sh-tbl tbody{display:block}
  .sh-tbl tr.click{display:grid;grid-template-columns:24px minmax(0,1fr) auto;column-gap:10px;row-gap:3px;padding:12px 16px;border-bottom:1px solid var(--line)}
  .sh-tbl tr.click:last-child{border-bottom:0}
  .sh-tbl tr.click td{padding:0;border:0;font-size:14px;min-width:0}
  .sh-tbl tr.click td:nth-child(1){grid-column:1;grid-row:1/span 4;padding-top:2px}
  .sh-tbl tr.click td:nth-child(2){grid-column:2;grid-row:1;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sh-tbl tr.click td:nth-child(3){grid-column:3;grid-row:1;justify-self:end}
  .sh-tbl tr.click td:nth-child(4){grid-column:2/4;grid-row:2}
  .sh-tbl tr.click td:nth-child(5){grid-column:2;grid-row:3;font-size:13px}
  .sh-tbl tr.click td:nth-child(8){grid-column:3;grid-row:3;font-size:12px}
  .sh-tbl tr.click td:nth-child(6){grid-column:2;grid-row:4;text-align:left;font-size:13px}
  .sh-tbl tr.click td:nth-child(7){grid-column:3;grid-row:4;font-size:13px}
  .sh-tbl tr.click td[data-l]::before{content:attr(data-l) " ";color:var(--text-2);font-weight:500}
}
/* Jo'natma kartasi (ShipmentCard): IXCHAM (foydalanuvchi talabi 2026-10-16) — bitta umumiy skroll, zich oraliqlar; maydonlar ustunlari
 * oyna kengligiga moslashadi (kenglik tutqich bilan o'zgaradi: tor — 1–2, keng — 3–4 ustun); trek — qalin sarlavha; tarix — vaqt chizig'i */
.drawer-h.sc-head{align-items:flex-start;padding:12px 18px;min-height:0}
/* Boshqa kartalar: sarlavhaga `dk-c` qo'ying — shu ixcham uslub (bitta manba; mijoz kartasidan boshlandi 2026-10-16) */
.drawer-h.dk-c{align-items:flex-start;padding:12px 18px;min-height:0}
.drawer-h.dk-c h2{font-size:18px;line-height:24px}
.sc-trk{font:700 19px/24px var(--font);letter-spacing:-.02em;overflow-wrap:anywhere}
.sc-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:5px}
.drawer:has(.sc-head,.dk-c) .dsec{padding:11px 18px}
.drawer:has(.sc-head,.dk-c) .dsec .lbl{margin-bottom:6px}
.drawer:has(.sc-head,.dk-c) .dgrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:7px 16px}
.drawer:has(.sc-head,.dk-c) .dgrid>.d-full{grid-column:1/-1}
/* Forma maydonlari (filial oynasi kabi) — maydon juda torayib qolmasin */
.drawer:has(.sc-head,.dk-c) .dgrid:has(input:not([type=checkbox]):not([type=radio]),select,textarea){grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.drawer:has(.sc-head,.dk-c) .drow .k{font-size:12px;line-height:1.3}
.drawer:has(.sc-head,.dk-c) .drow .v{font-size:13.5px;line-height:1.35}
.drawer:has(.sc-head,.dk-c) .drawer-f{padding:10px 18px}
.drawer:has(.sc-head,.dk-c) .drawer-f .btn{min-height:40px;padding:8px 16px}
.sc-tl .hist{position:relative;gap:12px;padding-bottom:11px}
.sc-tl .hist:last-child{padding-bottom:0}
.sc-tl .hist>i{position:relative;z-index:1;width:10px;height:10px;margin-top:4px;box-shadow:0 0 0 3px var(--surface)}
.sc-tl .hist:not(:last-child)::before{content:"";position:absolute;left:4px;top:16px;bottom:0;width:2px;border-radius:2px;background:var(--line)}
.sc-tl .hist b{font-size:14px;font-weight:600}
/* Jo'natmalar ro'yxati: yaratilganiga 5 kundan oshgan, hali yakunlanmagan buyurtma — och qizil fon (foydalanuvchi talabi 2026-10-19; Shipments.tsx:isStale) */
tr.sh-old>td{background:var(--fail-bg)}
