/* ═══════════════════════════════════════════════════════════════════════
   hb-settings-drawer.css — "Tizim sozlamalari" (2026-08-19)

   Shaxsiy interfeys sozlamalari: soat/ob-havo vidjeti + sidebar menyusini
   sozlash, bitta sirg'anuvchi "shisha" tortmada (sidebardan ochiladi,
   template/shared/hb_nav_items.html + hb-settings-drawer.js).

   ⚠️ FRAGILE: bu fayl HAR sahifada yuklanadi (hb_shell_base.html). Tortma
   `position:fixed` + aniq `z-index:1200` bilan — bugungi produksiya
   xatolari sinfidan qochish uchun ATAYLAB (backdrop-filter'li elementga
   z-index YO'Q bo'lsa tagidagi kontent bosishni "o'g'irlab" ketishi
   mumkin, TZ'dagi ogohlantirish). Tortma HECH QACHON #hbSidebar/.hb-drawer
   ICHIGA emas, shu fayl ICHIDA <body>ning to'g'ridan-to'g'ri farzandi
   sifatida joylashtiriladi (hb_shell_base.html), shu bois sidebar tor-rail
   kengligiga (--hb-rail-w) HECH QANDAY ta'siri yo'q.
   ═══════════════════════════════════════════════════════════════════════ */

/* 2026-08-19 QAYTA TUZATISH: ilgari blur FAQAT shu pardada emas, .hb-set-drawer
   panelining o'zida edi (pastda) — shu bois panel matni/tugmalari "yuvilib
   ketgan" ko'rinardi. Endi xiralashtirish shu YERGA — pardaga — ko'chirildi,
   panel esa qattiq sirt. */
/* 2026-08-20 VIZUAL SAYQAL: parda endi ZUMRAD tusli (rgba(6,78,59,.35)) —
   neytral qora o'rniga, shu bois tortma ochilganda butun ekran platformaning
   zumrad identitetiga bo'yaladi. Blur 12→8px: panelning O'ZI ham endi
   yarim-shaffof (pastda), ikkala qatlam bir vaqtda kuchli xiralashtirsa
   ortdagi kontent "loyqa ko'lmak"ka aylanardi. */
.hb-set-bg{
  position:fixed; inset:0; z-index:1199;
  background:rgba(6,78,59,.35) !important;
  backdrop-filter:blur(8px) !important; -webkit-backdrop-filter:blur(8px) !important;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
.hb-set-bg.open{ opacity:1; pointer-events:auto; }

/* 2026-08-20: panelga "muzli shisha" QAYTARILDI, lekin yuqoridagi
   2026-08-19 izohidagi xatoga TUSHMASDAN. O'shanda panel sezilarli
   shaffof edi va matn yuvilib ketardi; endi sirt 92% QALIN
   (color-mix ... 92%, transparent) — ya'ni atigi 8% shaffoflik, bu
   faqat ortdagi rangni ozgina "sezdiradi", kontrastni esa buzmaydi.
   Matn/tugmalar hamon to'liq o'qiladi (QA, ikkala mavzuda tekshirildi). */
.hb-set-drawer{
  position:fixed; right:0; top:0;
  /* `dvh` — MOBIL KLAVIATURA uchun: `vh` klaviatura ochilganda ham eski
     (to'liq) balandlikda qolib, tortmaning pastki qismini klaviatura
     ostiga surib yuborardi. `dvh` ko'rinadigan haqiqiy balandlikka
     moslashadi. Birinchi satr — `dvh` yo'q eski brauzerlar uchun zaxira. */
  height:100vh; height:100dvh; max-height:100dvh;
  width:420px !important; max-width:90vw !important;
  z-index:1200;
  background:color-mix(in srgb, var(--hb-sfc) 92%, transparent) !important;
  backdrop-filter:blur(28px) !important; -webkit-backdrop-filter:blur(28px) !important;
  border-left:1.5px solid var(--hb-brd) !important;
  box-shadow:-15px 0 45px rgba(6,78,59,.15) !important;
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
}
.hb-set-drawer.open{ transform:translateX(0); pointer-events:auto; }
@media (prefers-reduced-motion:reduce){
  .hb-set-drawer, .hb-set-bg{ transition:none; }
}

.hb-set-head{
  flex:none; border-bottom:1px solid var(--hb-brd);
  /* Telefonda tortma to'liq balandlikda — `env(safe-area-inset-top)`siz
     sarlavha "notch"/holat qatori ostida qolib ketardi. */
  padding:max(20px, calc(12px + env(safe-area-inset-top, 0px))) 20px 16px;
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
}
.hb-set-head-t{ font-size:17px; font-weight:800; color:var(--hb-txt); letter-spacing:-.3px; }
.hb-set-head-s{ font-size:12px; color:var(--hb-mut); margin-top:4px; font-weight:600; }

/* Yopish tugmasi — "muzli" doira: panelning shisha tusiga hamohang, va
   hover'da ZUMRAD (platforma aksenti) bilan yonadi. */
.hb-set-close{
  flex:none; width:34px; height:34px; border-radius:999px;
  border:1px solid var(--hb-brd);
  background:color-mix(in srgb, var(--hb-txt) 5%, transparent);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  color:var(--hb-mut); cursor:pointer;
  display:grid; place-items:center; font-size:14px; line-height:1;
  transition:background .15s, color .15s, border-color .15s, transform .15s;
}
.hb-set-close:hover{
  background:color-mix(in srgb, var(--hb-acc) 16%, transparent);
  border-color:var(--hb-acc); color:var(--hb-acc-text);
  transform:rotate(90deg);
}
.hb-set-close:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:2px; }

/* ── Varaq almashtirgich — INDIVIDUAL, ALOHIDA tugmalar (2026-08-24,
   buyurtmachi topgan haqiqiy nuqson: "sozlamalardagi tablarni va boshqa
   joydagilarni hech qachon bunday bitta qolipga solma, har doim
   dona-dona alohida tursin") ──────────────────────────────────────────
   ESKI (2026-08-20 — 2026-08-24 oralig'i) yondashuv — BITTA umumiy
   kapsula foni (`background`) + ichida sirpanadigan "thumb" (::before) —
   ANIQ shu "bitta qolip" ko'rinishini berardi: barcha varaqlar bir xil
   yaxlit pastadigan chegara ichida, vizual jihatdan "bitta blok" bo'lib
   o'qilardi. Buyurtmachi buni umuman rad etdi — HAR BIR tugma har doim
   O'ZINING alohida foni/chegarasi bilan chizilishi kerak (5-varaq
   truncation muammosi HAM shu bilan birga hal bo'ladi: endi gorizontal
   SKROLL ishlatiladi, matn hech qachon kesilmaydi/2 qatorga tushmaydi). */
.hb-set-tabs{
  flex:none; display:flex; gap:6px; margin:12px 16px 2px;
  overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
}
.hb-set-tabs::-webkit-scrollbar{ display:none }
.hb-set-tab{
  flex:none; padding:8px 14px; border-radius:999px; cursor:pointer;
  background:var(--hb-sfc2); border:1px solid var(--hb-brd);
  color:var(--hb-mut); font-family:inherit; font-weight:700; font-size:11.5px;
  white-space:nowrap; transition:background .15s, color .15s, border-color .15s;
}
.hb-set-tab:hover{ color:var(--hb-txt); }
.hb-set-tab.active{
  color:var(--hb-acc-ink);
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--hb-acc) 92%, transparent),
    color-mix(in srgb, var(--hb-acc) 72%, transparent));
  border-color:transparent;
  box-shadow:0 2px 10px rgba(6,78,59,.28);
}
.hb-set-tab:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:2px; }

/* `min-height:0` — flex bolasi bo'lgani uchun SHART: usiz kontent uzun
   bo'lganda `overflow-y:auto` ishlamay, tortma o'zi cho'zilib ketardi.
   Pastki bo'shliq telefon "home indicator"ini hisobga oladi, shu bois
   oxirgi karta barmoq chizig'i ostida qolib ketmaydi. */
.hb-set-body{
  flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:16px; padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px));
}
.hb-set-pane{ display:none; }
.hb-set-pane.active{ display:block; }

/* ── Apple guruh-uslub karta ───────────────────────────────────────────
   2026-08-19: fon endi drawer paneli bilan bir xil solid sirt ustida
   ozgina tint (avvalgi shaffof-hb-sfc drawer bilan deyarli farqlanmay
   qolgan edi — panel qattiq bo'lgach kontrast yetarli emas edi). ── */
/* 2026-08-20 vizual sayqal: yumshoqroq burchak (16→18), biroz kattaroq
   ichki bo'shliq (14→18) va aniqroq 1.5px chegara — kartalar shisha panel
   ustida "qalqib turgan" his beradi. */
.hb-set-group{
  border-radius:18px;
  background:color-mix(in srgb, var(--hb-txt) 2.5%, var(--hb-sfc));
  border:1.5px solid var(--hb-brd);
  padding:18px; margin-bottom:14px;
  transition:border-color .15s, box-shadow .15s;
}
.hb-set-group-t{ font-size:11.5px; font-weight:800; color:var(--hb-mut);
  text-transform:uppercase; letter-spacing:.5px; margin-bottom:12px; }

/* ── Tartiblanadigan vidjet guruhlari (2026-08-20) ──────────────────────
   Sarlavha endi qator: ⠿ dastak + nom + ↑/↓ tugmalari. Dastak/tugma
   uslublari sidebar qatorlaridan QAYTA ISHLATILADI (.hb-set-nav-handle,
   .hb-set-nav-steps/.hb-set-nav-step) — ikkinchi uslub to'plami
   yaratilmadi, shu bois ikkala varaq bir xil "his" beradi. */
.hb-set-group-head{
  display:flex; align-items:center; gap:8px; margin-bottom:12px;
}
.hb-set-group-head .hb-set-group-t{ flex:1; min-width:0; margin-bottom:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hb-set-group-sortable{ transition:opacity .2s ease, border-color .15s, box-shadow .15s; }
.hb-set-group-sortable.dragging{ opacity:.45; }
.hb-set-group-sortable.drag-over{ border-color:var(--hb-acc); }
.hb-set-row{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:9px 0;
}
.hb-set-row + .hb-set-row{ border-top:1px solid var(--hb-brd); }
.hb-set-row-lbl{ font-size:13px; font-weight:700; color:var(--hb-txt); }
.hb-set-row-hint{ font-size:11px; color:var(--hb-mut); font-weight:600; margin-top:1px; }

/* ── Qidiriladigan combobox (tz/shahar) ──────────────────────────────── */
.hb-set-combo{ position:relative; margin-bottom:4px; }
.hb-set-combo-input{
  width:100%; box-sizing:border-box; padding:10px 12px; border-radius:12px;
  border:1px solid var(--hb-brd); background:var(--hb-sfc2); color:var(--hb-txt);
  font-family:inherit; font-size:13px; font-weight:600;
  transition:border-color .15s, background .15s;
}
.hb-set-combo-input:focus{ outline:none; border-color:var(--hb-acc); background:var(--hb-sfc); }
.hb-set-combo-list{
  position:absolute; left:0; right:0; top:calc(100% + 6px);
  max-height:220px; overflow-y:auto; z-index:5;
  background:var(--hb-sfc); border:1px solid var(--hb-brd2); border-radius:12px;
  box-shadow:var(--hb-shadow); padding:6px; display:none;
}
.hb-set-combo.open .hb-set-combo-list{ display:block; }
.hb-set-combo-item{
  padding:8px 10px; border-radius:9px; cursor:pointer; font-size:12.5px; font-weight:600;
  color:var(--hb-txt); display:flex; justify-content:space-between; gap:8px;
}
.hb-set-combo-item:hover, .hb-set-combo-item.hi{ background:var(--hb-sfc2); }
.hb-set-combo-item span.hb-set-combo-sub{ color:var(--hb-mut); font-weight:600; font-size:11px; }
.hb-set-combo-empty{ padding:10px; font-size:12px; color:var(--hb-mut); text-align:center; }

/* ── GPS "kapsula" tugmasi (2026-08-20 vizual sayqal) ───────────────────
   Avval to'la kenglikdagi uzuq-chiziqli to'rtburchak edi — "yakunlanmagan"
   ko'rinardi. Endi zumrad tusli KAPSULA (999px), qatorga markazlangan va
   faqat kerakli kenglikni egallaydi. Matn JS'da almashadi
   ("📍 Aniqlanmoqda…") — shu bois kenglik QAT'IY EMAS, matnga moslashadi
   va `min-height` bilan almashuvda sakramaydi. */
.hb-set-gps-wrap{ display:flex; justify-content:center; margin-top:10px; }
.hb-set-gps-btn{
  max-width:100%; padding:9px 16px; min-height:36px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--hb-acc) 38%, transparent);
  background:color-mix(in srgb, var(--hb-acc) 10%, transparent);
  color:var(--hb-acc-text); font-family:inherit; font-weight:700; font-size:12px;
  cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  text-align:center; line-height:1.25;
  transition:background .15s, border-color .15s, transform .12s, box-shadow .15s;
}
.hb-set-gps-btn:hover:not(:disabled){
  background:color-mix(in srgb, var(--hb-acc) 18%, transparent);
  border-color:var(--hb-acc);
  box-shadow:0 4px 14px rgba(6,78,59,.18);
}
.hb-set-gps-btn:active:not(:disabled){ transform:scale(.97); }
.hb-set-gps-btn:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:2px; }
.hb-set-gps-btn:disabled{ opacity:.55; cursor:default; }

/* ── Davomat ovozi guruhi (2026-08-20) ────────────────────────────────────
   Faqat IKKI narsa uchun lokal uslub kerak bo'ldi:
     · balandlik slayderi — UI kitda `range` komponenti YO'Q (18 elementni
       tekshirdim), shu bois `.hb-set-gps-btn` bilan bir xil qoidada
       (tortmaning O'Z lokal boshqaruvi) yozildi;
     · "eshitib ko'rish" tugmalari qatori — oddiy uch ustunli grid.
   Tugmachalar (switch) va ohang tanlagichi (segmented) — kitning O'Z
   komponentlari, bu yerda ular uchun HECH QANDAY qoida yo'q. */
.hb-set-range{
  -webkit-appearance:none; appearance:none;
  width:100%; height:6px; margin:4px 0 2px; padding:0;
  border-radius:999px; background:var(--hb-sfc2); border:1px solid var(--hb-brd);
  cursor:pointer;
}
.hb-set-range:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:3px; }
.hb-set-range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:18px; height:18px; border-radius:50%;
  background:var(--hb-acc); border:2px solid var(--hb-sfc);
  box-shadow:0 1px 4px rgba(0,0,0,.35); cursor:pointer;
}
.hb-set-range::-moz-range-thumb{
  width:16px; height:16px; border-radius:50%;
  background:var(--hb-acc); border:2px solid var(--hb-sfc);
  box-shadow:0 1px 4px rgba(0,0,0,.35); cursor:pointer;
}
.hb-set-range-val{
  font-size:12px; font-weight:800; color:var(--hb-acc-text);
  font-variant-numeric:tabular-nums;
}
/* `auto-fit` + `minmax` — uch tugma keng joyda bitta qatorda, tor joyda
   (yoki uzun tarjimada, masalan ruscha "Мелодия выхода") o'zi ikki
   qatorga bo'linadi. Qat'iy 3 ustun bo'lsa matn kesilib qolardi. */
.hb-set-preview-row{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(104px, 1fr));
  gap:8px; margin-top:2px;
}
.hb-set-preview-row .hbk-btn{ width:100%; justify-content:center; text-align:center; }
.hb-set-preview-row .hbk-btn span{ white-space:normal; line-height:1.25; }

/* ── iOS uslubidagi zumrad tugmachalar (2026-08-20) ─────────────────────
   ⚠️ QAMROV ATAYLAB TOR: qoidalar FAQAT `.hb-set-drawer` ICHIDA amal
   qiladi. Umumiy `.hbk-switch` (static/shared/ui/components/switch.css)
   butun platformada — davomat, so'rovnomalar, jarimalar, akademiya —
   ishlatiladi; uni global o'zgartirish bitta tortma uchun 4 ilovaning
   ko'rinishini o'zgartirib yuborardi. Shu bois bu yerda faqat USTIDAN
   yoziladi, kit fayliga TEGILMAGAN.

   HTML tuzilishi ham, `input`ning o'zi ham (holat, `change` hodisasi,
   `disabled`) TEGILMAGAN — bu sof piksel qatlami. */
.hb-set-drawer .hbk-switch-track{
  box-sizing:border-box;
  width:46px; height:28px;
  background:color-mix(in srgb, var(--hb-txt) 16%, var(--hb-sfc2));
  border:1px solid var(--hb-brd);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.12);
  transition:background-color .22s cubic-bezier(.2,.8,.3,1), border-color .22s;
}
.hb-set-drawer .hbk-switch-knob{
  top:2px; left:2px; width:22px; height:22px;
  background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,.28), 0 0 1px rgba(0,0,0,.18);
  transition:transform .22s cubic-bezier(.2,.8,.3,1), background-color .22s;
}
.hb-set-drawer .hbk-switch input:checked + .hbk-switch-track{
  background:linear-gradient(135deg, var(--hb-acc), var(--hb-acc-d, var(--hb-acc)));
  border-color:var(--hb-acc);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.10), 0 0 0 3px color-mix(in srgb, var(--hb-acc) 14%, transparent);
}
.hb-set-drawer .hbk-switch input:checked + .hbk-switch-track .hbk-switch-knob{
  transform:translateX(18px); background:#fff;
}
/* Bosib turilganda knob biroz cho'ziladi — haqiqiy iOS tugmachasidagidek */
.hb-set-drawer .hbk-switch:active .hbk-switch-knob{ width:25px; }
.hb-set-drawer .hbk-switch input:checked:active + .hbk-switch-track .hbk-switch-knob{ transform:translateX(15px); }
.hb-set-drawer .hbk-switch input:disabled + .hbk-switch-track{ opacity:.45; }
.hb-set-drawer .hbk-switch input:focus-visible + .hbk-switch-track{
  outline:2px solid var(--hb-acc); outline-offset:3px;
}

.hb-set-save-state{
  font-size:11px; font-weight:700; color:var(--hb-mut); text-align:center; padding:2px 0 0;
  min-height:16px; transition:opacity .2s;
}
.hb-set-save-state.ok{ color:var(--hb-ok); }
.hb-set-save-state.err{ color:var(--hb-danger); }

/* ── Sidebar customizer — sortable rows ──────────────────────────────── */
.hb-set-nav-row{
  display:flex; align-items:center; gap:8px;
  padding:9px 8px; border-radius:14px;
  background:var(--hb-sfc2); border:1px solid transparent;
  margin-bottom:7px;
  transition:transform .25s ease, opacity .2s ease, background .15s, border-color .15s;
}
.hb-set-nav-row.dragging{ opacity:.45; }
.hb-set-nav-row.drag-over{ border-color:var(--hb-acc); }
.hb-set-nav-row.pulse .hb-set-nav-ic{ animation:hbSetPulse .5s ease; }
@keyframes hbSetPulse{
  0%{ box-shadow:0 0 0 0 rgba(var(--hb-acc-rgb),.55); }
  100%{ box-shadow:0 0 0 9px rgba(var(--hb-acc-rgb),0); }
}
.hb-set-nav-row.hidden-item{ opacity:.5; }
/* ── Tortish dastagi (2026-08-20 vizual sayqal) ─────────────────────────
   Avval shunchaki 16px kul rang belgi edi — bosish maydoni juda kichkina
   (telefonda barmoq bilan tegib bo'lmasdi) va "tortsa bo'ladi"ligi ko'zga
   tashlanmasdi. Endi 24×28px yumaloq maydon: hover'da zumrad tusga kiradi,
   bosilganda esa "ushlab olindi" his beradi.

   ⚠️ `touch-action:none` SAQLANDI: bu satr HTML5 drag&drop uchun emas,
   sensorli ekranda dastakni ushlaganda sahifa SKROLL bo'lib ketmasligi
   uchun (guruh/til qatorlari `touchstart`da draggable yoqadi —
   hb-settings-drawer.js::hbSetWireWidgetGroups/hbSetWireLangRows).
   Uslub faqat ko'rinish qatlami — hodisa tinglagichlariga tegilmagan. */
.hb-set-nav-handle{
  flex:none; cursor:grab; color:var(--hb-mut);
  width:24px; height:28px; border-radius:8px;
  display:grid; place-items:center;
  font-size:14px; line-height:1; letter-spacing:-1px;
  user-select:none; touch-action:none;
  background:transparent; border:1px solid transparent;
  transition:background .15s, color .15s, border-color .15s, transform .12s;
}
.hb-set-nav-handle:hover{
  background:color-mix(in srgb, var(--hb-acc) 12%, transparent);
  border-color:color-mix(in srgb, var(--hb-acc) 35%, transparent);
  color:var(--hb-acc-text);
}
.hb-set-nav-handle:active{ cursor:grabbing; transform:scale(.92); }
.hb-set-nav-rank{
  flex:none; width:22px; height:22px; border-radius:999px; background:var(--hb-sfc);
  border:1px solid var(--hb-brd); color:var(--hb-mut); font-size:10px; font-weight:800;
  display:grid; place-items:center;
}
.hb-set-nav-ic{
  flex:none; width:26px; height:26px; border-radius:8px; background:var(--hb-sfc);
  display:grid; place-items:center; color:var(--hb-txt); transition:box-shadow .15s;
}
.hb-set-nav-ic svg{ width:15px; height:15px; display:block; }
.hb-set-nav-name{
  flex:1; min-width:0; font-size:12.5px; font-weight:700; color:var(--hb-txt);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.hb-set-nav-steps{ display:flex; flex-direction:column; gap:1px; flex:none; }
.hb-set-nav-step{
  width:20px; height:14px; border:0; background:transparent; color:var(--hb-mut);
  cursor:pointer; display:grid; place-items:center; border-radius:4px; padding:0;
}
.hb-set-nav-step:hover{ background:var(--hb-sfc); color:var(--hb-txt); }
.hb-set-nav-step:disabled{ opacity:.25; cursor:default; }
.hb-set-nav-step svg{ width:11px; height:11px; }

/* ── "Til" guruhi qatorlari (2026-08-20) ────────────────────────────────
   Sidebar qatorlari (.hb-set-nav-row) uslubi USTIGA qo'shimcha: qator
   bosiladigan (til tanlash) va faol til ✓ bilan belgilanadi. Ro'yxatning
   O'ZI tortib qayta tartiblanadi — tartib topbar til-menyusiga ham
   qo'llanadi (hb-settings-drawer.js::applyLangOrderToDom). */
.hb-set-lang-row{ cursor:pointer; }
.hb-set-lang-row:hover{ background:var(--hb-sfc); }
.hb-set-lang-row:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:2px; }
.hb-set-lang-row.is-active{
  border-color:var(--hb-acc);
  background:color-mix(in srgb, var(--hb-acc) 10%, var(--hb-sfc2));
}
.hb-set-lang-code{
  flex:none; min-width:30px; height:22px; padding:0 6px; border-radius:7px;
  background:var(--hb-sfc); border:1px solid var(--hb-brd);
  color:var(--hb-mut); font-size:10px; font-weight:800; letter-spacing:.3px;
  display:grid; place-items:center; text-transform:uppercase;
}
.hb-set-lang-row.is-active .hb-set-lang-code{ color:var(--hb-acc-text); border-color:var(--hb-acc); }
.hb-set-lang-check{
  flex:none; width:16px; text-align:center; font-size:12px; font-weight:800;
  color:var(--hb-acc-text); opacity:0;
}
.hb-set-lang-row.is-active .hb-set-lang-check{ opacity:1; }

.hb-set-nav-reset{
  width:100%; margin-top:4px; padding:9px; border-radius:11px; border:1px solid var(--hb-brd);
  background:transparent; color:var(--hb-mut); font-weight:700; font-size:12px; cursor:pointer;
}
.hb-set-nav-reset:hover{ background:var(--hb-sfc2); color:var(--hb-txt); }

/* ── Pastki panel varag'i (2026-08-24) — "Olib tashlash" (×) tugmasi
   qo'shilgan (katalogdan qo'shilgan, zavod-5talikda YO'Q) bandlar uchun,
   va "Tugma qo'shish" chiplari. `.hb-set-nav-row/-handle/-rank/-ic/-name/
   -steps/-step` — sidebar/bosh-sahifa-karta qatorlaridan QAYTA
   ISHLATILADI, yangi uslub to'plami yaratilmadi. ── */
.hb-set-nav-del{
  flex:none; width:22px; height:22px; border:0; background:transparent;
  color:var(--hb-mut); cursor:pointer; display:grid; place-items:center;
  border-radius:7px; padding:0;
}
.hb-set-nav-del:hover{ background:color-mix(in srgb, var(--hb-danger) 14%, transparent); color:var(--hb-danger); }
.hb-set-nav-del svg{ width:13px; height:13px; }
.hb-set-bnav-add{ display:flex; flex-wrap:wrap; gap:7px; }
.hb-set-bnav-add-btn{
  border:1px solid transparent; font-family:inherit; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s;
}
.hb-set-bnav-add-btn:hover{
  background:color-mix(in srgb, var(--hb-acc) 14%, transparent);
  border-color:color-mix(in srgb, var(--hb-acc) 35%, transparent);
  color:var(--hb-acc-text);
}
.hb-set-bnav-add-btn svg{ width:13px; height:13px; flex:none; }

/* ── Ranglar varag'i — accent tanlagich (2026-08-24) ──────────────────── */
.hb-set-color-row{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; padding:2px 0 4px; }
.hb-set-color-swatch{
  position:relative; width:34px; height:34px; flex:none; border-radius:99px;
  border:2px solid var(--hb-sfc); box-shadow:0 0 0 1px var(--hb-brd);
  cursor:pointer; display:grid; place-items:center;
  transition:transform .12s ease, box-shadow .15s ease;
}
.hb-set-color-swatch:hover{ transform:translateY(-1px); }
.hb-set-color-swatch:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:2px; }
.hb-set-color-swatch .hb-set-color-check{
  opacity:0; color:#fff; font-size:14px; font-weight:800;
  text-shadow:0 1px 3px rgba(0,0,0,.55); transition:opacity .12s ease;
}
.hb-set-color-swatch.active{ box-shadow:0 0 0 2px var(--hb-sfc), 0 0 0 4px var(--hb-txt); }
.hb-set-color-swatch.active .hb-set-color-check{ opacity:1; }

/* 2026-08-24 (buyurtmachi: "rangni erkin tanlay olsin") — brauzerning
   native <input type=color> — tayyor 6 tanlovdan tashqari istalgan HEX'ni
   tanlash uchun. Standart chegara/qalinlik olib tashlanadi (Chrome/Firefox
   ikkalasida ham har xil ichki DOM), o'rniga yuqoridagi doira-tugmalar
   bilan BIR XIL o'lcham/radius/faol-holat uslubi qo'llaniladi. */
.hb-set-color-custom{
  width:34px; height:34px; flex:none; border-radius:99px;
  border:2px solid var(--hb-sfc); box-shadow:0 0 0 1px var(--hb-brd);
  padding:0; cursor:pointer; background:transparent;
  transition:transform .12s ease, box-shadow .15s ease;
}
.hb-set-color-custom:hover{ transform:translateY(-1px); }
.hb-set-color-custom:focus-visible{ outline:2px solid var(--hb-acc); outline-offset:2px; }
.hb-set-color-custom.active{ box-shadow:0 0 0 2px var(--hb-sfc), 0 0 0 4px var(--hb-txt); }
.hb-set-color-custom::-webkit-color-swatch-wrapper{ padding:0; border-radius:99px; overflow:hidden; }
.hb-set-color-custom::-webkit-color-swatch{ border:none; border-radius:99px; }
.hb-set-color-custom::-moz-color-swatch{ border:none; border-radius:99px; }

/* 2026-08-24 (buyurtmachi: "rang tanlash imkoniyati juda kam") — erkin
   rang tanlagich ALLAQACHON bor edi, lekin 6 ta tayyor rang orasida
   oddiy doira sifatida "yashiringan" edi, hech qanday yozuv/belgisiz —
   foydalanuvchi buni tanlov CHEKLANGAN deb o'ylagan. Endi ALOHIDA
   ko'rinadi: burchakda doimiy "+" nishonchasi + pastida doimiy yozuv
   ("Boshqa") — endi faqat hover-tooltipga tayanmaydi. */
.hb-set-color-custom-wrap{
  display:flex; flex-direction:column; align-items:center; gap:3px;
  position:relative;
}
.hb-set-color-custom-wrap::after{
  content:'+'; position:absolute; top:-3px; right:-3px;
  width:15px; height:15px; border-radius:99px;
  background:var(--hb-acc); color:var(--hb-acc-ink, #fff);
  font-size:11px; font-weight:800; line-height:15px; text-align:center;
  border:2px solid var(--hb-sfc); pointer-events:none;
}
.hb-set-color-custom-label{
  font-size:9.5px; font-weight:700; color:var(--hb-mut); white-space:nowrap;
}

/* ── Ranglar varag'i — burchak radiusi katakchasi (2026-08-24) ──────────
   2x2 grid, jismoniy burchak joylashuviga mos: TL/TR yuqori qator,
   BL/BR pastki qator — kichik "burchak diagrammasi" hissi beradi. */
.hb-set-radius-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:8px 10px; padding:2px 0 4px;
}
.hb-set-radius-cell{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:8px 10px; border-radius:11px; background:var(--hb-sfc2); border:1px solid var(--hb-brd);
}
.hb-set-radius-cell-l{ font-size:11.5px; font-weight:700; color:var(--hb-mut); }
.hb-set-radius-input{
  width:52px; height:28px; border-radius:8px; border:1px solid var(--hb-brd);
  background:var(--hb-sfc); color:var(--hb-txt); font-family:inherit; font-weight:700;
  font-size:12.5px; text-align:center; padding:0 4px;
}
.hb-set-radius-input:focus{ outline:none; border-color:var(--hb-acc); }

/* ── Telefon ────────────────────────────────────────────────────────────
   ⚠️ `!important` SHART: yuqoridagi `width:420px !important` /
   `max-width:90vw !important` (2026-08-20 shisha panel qoidasi) bo'lmasa
   bu yerdagi oddiy e'lonni BOSIB O'TARDI va tortma telefonda ham 420px
   (yoki 90vw) bo'lib, chetda foydasiz tirqish qolardi. */
@media (max-width:480px){
  .hb-set-drawer{ width:100vw !important; max-width:100vw !important; border-left:0 !important; }
  /* Klaviatura ochilganda ro'yxat ekranning yarmidan ko'pini egallab,
     tanlash mumkin bo'lgan variantlarni surib chiqarib yubormasin. */
  .hb-set-combo-list{ max-height:min(220px, 34dvh); }
}

/* Klaviatura ochilganda (past va keng ko'rinish) — kartalar ixchamlashadi,
   shu bois fokusdagi maydon hamon ko'rinib turadi. */
@media (max-height:520px){
  .hb-set-head{ padding-top:12px; padding-bottom:10px; }
  .hb-set-group{ padding:14px; margin-bottom:10px; }
  .hb-set-combo-list{ max-height:min(180px, 40dvh); }
}

/* ── Foydalanuvchi-yashirgan sidebar bandlari ────────────────────────────
   ⚠️ FAQAT QO'SHIMCHA qatlam — hb_shell_base.html'dagi rol-cheklovi
   ([data-hb-admin-only], !important bilan) BUTUNLAY mustaqil ishlaydi.
   Bu klass hech qachon biror narsani "ko'rsatish" uchun ishlatilmaydi,
   faqat yashirish uchun (static/shared/hb-settings-drawer.js::applyNavToDom). */
.hb-navitem-userhidden{ display:none !important; }
