
/* Sahifalar orasida silliq o'tish: menyu joyida qoladi, faqat ish maydoni
   qisqa almashadi (Chrome/Edge; qo'llamaydigan brauzer oddiy ochadi). */
@view-transition { navigation: auto; }
.admin-sidebar { view-transition-name: admin-sidebar; }
.admin-mobile-nav { view-transition-name: admin-mobile-nav; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 120ms; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none; }
}

/* QA-2 ko'rinishi (Habib tasdiqlagan maket, 04.10): och kulrang-yashil fon, oq
   kartalar ingichka halqa soyasi bilan, yorug' sidebar. Rang faqat holat/amal
   ma'nosida: yashil — havola/faol, qizil — qarz/xato, sariq — e'tibor, ko'k —
   avans. Katta tugma yashil emas, to'q siyoh rangida. Shrift — tizim shrifti
   (CSP font-src 'self', shrift fayli qo'shilmaydi). */
:root {
  --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --bg: #eef1ec;
  --surface: #fff;
  --surface-2: #f6f8f4;
  --ink: #172019;
  --muted: #5f6a61;
  --line: #e1e6df;
  --paper: #f6f8f4;
  --card: #fff;
  --btn: #172019;
  --btn-hover: #2c382f;
  --btn-ink: #fff;
  --green: #197a48;
  --green-dark: #105d37;
  --green-soft: #e6f3ea;
  --red: #9b3527;
  --red-soft: #fbebe7;
  --blue: #245b87;
  --blue-soft: #e5eff7;
  --track: #e9eee7;
  --bar: #b9d7c4;
  --balance-debt: var(--red);
  --balance-credit: #245b87;
  --balance-settled: #5f6a61;
  --amber: #9a520a;
  --amber-soft: #fff1d9;
  --shadow: 0 1px 2px rgb(23 32 25 / 6%), 0 0 0 1px var(--line);
  --shadow-pop: 0 14px 34px rgb(23 32 25 / 14%), 0 0 0 1px var(--line);
  --focus: #f2b84b;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { min-height: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--font); font-size: 14px; line-height: 1.4;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
button, input, select, textarea { font: inherit; }
a { color: var(--green); }
.skip-link {
  position: fixed; z-index: 100; left: 16px; top: 12px; transform: translateY(-150%);
  padding: 10px 14px; border-radius: 9px; background: #fff; color: var(--green-dark);
  font-weight: 800;
}
/* Soya faqat fokusda: ekrandan tashqaridagi havola telefonda soya izi qoldirmasin. */
.skip-link:focus { transform: translateY(0); box-shadow: 0 8px 24px rgb(23 32 25 / 18%); }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--focus); outline-offset: 2px;
}

/* ------------------------------- umumiy hukmron son (DEC-196); Bosh sahifa: HOME_CSS (DEC-330) */
/* Vizual vazn uch pog'onada: hukmron ~40px, ikkilamchi 22px, jadval 13.5px. */
.dash-label {
  margin: 0 0 6px; font-size: 13px; font-weight: 550; color: var(--muted);
}
.dash-figure {
  margin: 0; font-size: 33px; font-weight: 650; line-height: 1.05;
  letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}
.dash-figure.good { color: var(--green-dark); }
.dash-figure.bad { color: var(--red); }
.dash-note { margin: 6px 0 0; font-size: 12px; color: var(--muted); }

/* ------------------------------------------------------------------ shell */
/* Sidebar alohida oq karta: ish maydoni bilan bir fonda, 16px oraliq bilan.
   05.10 (Habib, 1920 da yon bo'shliqlar): qobiq suyuq — sidebar doim chap chetda,
   ish maydoni oynaning qolganini egallaydi. Faqat juda katta monitorda (>2100px)
   ish ustuni 1840px bilan cheklanadi va sidebar yonida chapda qoladi (markazda emas). */
.admin-shell {
  min-height: 100vh; display: grid; grid-template-columns: 228px minmax(0, 1840px);
  gap: 16px; align-items: start; padding: 16px;
}
.admin-sidebar {
  position: sticky; top: 16px; height: calc(100vh - 32px); display: flex; flex-direction: column;
  gap: 12px; padding: 14px; border-radius: 18px; background: var(--surface); color: var(--ink);
  box-shadow: var(--shadow);
}
.admin-brand { display: flex; align-items: center; gap: 10px; padding: 2px 4px; }
.admin-brand > .admin-brand-mark {
  width: 34px; height: 34px; flex: none; display: grid; place-items: center;
  border-radius: 10px; background: var(--surface-2); box-shadow: 0 0 0 1px var(--line);
}
.admin-brand-mark img { width: 30px; height: auto; display: block; object-fit: contain; }
.admin-brand strong, .admin-brand small, .admin-user strong, .admin-user small { display: block; }
.admin-brand strong { font-size: 14px; font-weight: 650; letter-spacing: -.01em; line-height: 1.2; }
.admin-brand small { margin-top: 1px; color: var(--muted); font-size: 12px; }
/* Menyu uzun bo'lsa faqat ro'yxat suriladi; foydalanuvchi bloki pastda qoladi. */
.admin-sidebar nav { display: flex; flex-direction: column; gap: 1px; min-height: 0; overflow-y: auto; margin: 0 -4px; padding: 0 4px; }
.admin-nav-group {
  margin: 12px 8px 4px; color: var(--muted); font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
}
.admin-nav-group:first-child { margin-top: 2px; }
.admin-sidebar nav a {
  min-height: 34px; display: flex; align-items: center; gap: 10px; padding: 7px 8px;
  border-radius: 9px; color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 500;
}
.admin-nav-icon {
  width: 16px; height: 16px; flex: 0 0 16px; display: grid; place-items: center;
  color: var(--muted);
}
.admin-nav-icon svg {
  width: 16px; height: 16px; display: block; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.admin-sidebar nav a:hover { background: var(--surface-2); }
/* Faol band (QA-2 polish 04.10): yashil-och fon + yashil qalin yozuv + yashil
   belgi; chap chiziq/rail yo'q. Rang yagona signal emas: fon va qalinlik ham bor. */
.admin-sidebar nav a.active {
  background: var(--green-soft); color: var(--green-dark); font-weight: 650;
}
.admin-sidebar nav a.active:hover { background: var(--green-soft); }
.admin-sidebar nav a.active .admin-nav-icon { color: var(--green); }
.admin-user {
  display: flex; align-items: center; gap: 10px; margin-top: auto;
  padding: 8px; border-radius: 12px; background: var(--surface-2);
}
.admin-user > span {
  width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 50%;
  background: var(--green-soft); color: var(--green); font-size: 12px; font-weight: 700;
}
.admin-user > div { min-width: 0; }
/* Ism kesilmaydi («DEMO Ad…» emas): ism yuqori qatorda butun kenglikda (kerak
   bo'lsa ikki qatorga o'tadi), «Admin · PIN» va «Chiqish» pastki qatorda. */
@supports (display: contents) {
  .admin-user { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 0 10px; }
  .admin-user > span { grid-row: 1 / 3; }
  .admin-user > div { display: contents; }
  .admin-user strong { grid-column: 2 / 4; }
  .admin-user small { grid-column: 2; align-self: center; }
  .admin-user form { grid-column: 3; grid-row: 2; }
}
.admin-user strong { font-size: 13px; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.admin-user small { margin-top: 1px; color: var(--muted); font-size: 12px; }
.admin-user form { margin-left: auto; flex: none; }
.admin-user button {
  min-height: 30px; padding: 0 8px; border: 0; border-radius: 8px;
  background: transparent; color: var(--muted); font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.admin-user button:hover { background: var(--surface); color: var(--ink); }
/* «Admin · PIN» bo'linmaydi: PIN havolasi butun; tor sidebar (≤1050px, 198px) da
   bezak initsiallar olinadi — ism va rol qatoriga joy (05.10). */
.admin-user small a { white-space: nowrap; }
@media (min-width: 721px) and (max-width: 1050px) {
  @supports (display: contents) {
    .admin-user { grid-template-columns: minmax(0, 1fr) auto; }
    .admin-user > span { display: none; }
    .admin-user strong { grid-column: 1 / -1; }
    .admin-user small { grid-column: 1; }
    .admin-user form { grid-column: 2; }
  }
}
/* Past oyna (05.10, real brauzer: 1440×900 oyna = 727px, 1366×768 ≈ 600px, 1100×760 = 583px
   ko'rinish). Sichqoncha bilan ishlatiladigan desktop menyu: hamma band, brend va
   foydalanuvchi bloki suriluvchisiz ko'rinadi (≥580px). Shrift o'lchami o'zgarmaydi.
   ≥800px — odatiy ritm; ≤799px — ixcham (band 32px); ≤680px — zich (band 30px, brend
   ixcham, foydalanuvchi bloki bitta qator: ism · PIN · Chiqish). */
@media (min-width: 721px) and (max-height: 799px) {
  .admin-shell { padding-block: 12px; }
  .admin-sidebar { gap: 8px; padding: 12px; top: 12px; height: calc(100vh - 24px); }
  .admin-sidebar nav { gap: 0; }
  .admin-nav-group { margin: 8px 8px 3px; }
  .admin-nav-group:first-child { margin-top: 0; }
  .admin-sidebar nav a { min-height: 32px; padding: 6px 8px; }
  .admin-user { padding: 6px 8px; }
}
@media (min-width: 721px) and (max-height: 680px) {
  .admin-shell { padding-block: 8px; }
  .admin-sidebar { gap: 6px; padding: 8px 10px; top: 8px; height: calc(100vh - 16px); }
  .admin-nav-group { margin: 5px 8px 1px; line-height: 1.2; }
  .admin-sidebar nav a { min-height: 30px; padding: 5px 8px; }
  .admin-brand { padding: 0 4px; }
  .admin-brand > .admin-brand-mark { width: 28px; height: 28px; border-radius: 8px; }
  .admin-brand-mark img { width: 24px; }
  .admin-brand small { display: none; }
  .admin-user { padding: 4px 4px 4px 8px; }
  @supports (display: contents) {
    .admin-user { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; }
    .admin-user > span, .admin-user-role { display: none; }
    .admin-user strong { grid-column: 1; grid-row: 1; }
    .admin-user small { grid-column: 2; grid-row: 1; margin: 0; }
    .admin-user form { grid-column: 3; grid-row: 1; }
  }
}
.admin-mobile-nav { display: none; }

/* ---------------------------------------------------------------- topbar */
/* Sarlavha alohida oq chiziq emas: sahifa ichida, amallar bilan bir qatorda. */
.admin-workspace { min-width: 0; }
.admin-topbar {
  min-height: 0; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 12px 16px; padding: 6px 2px 14px;
}
.admin-topbar.has-subtitle { min-height: 0; }
.admin-topbar h1 { margin: 0; font-size: 26px; font-weight: 650; line-height: 1.15; letter-spacing: -.02em; text-wrap: balance; }
.admin-subtitle { margin: 3px 0 0; color: var(--muted); font-size: 13.5px; }
.eyebrow {
  margin: 0 0 3px; font-size: 12px; font-weight: 600; color: var(--muted);
}
.eyebrow.amber { color: var(--amber); }
.admin-content { min-width: 0; padding: 0 0 32px; }

/* ---------------------------------------------------------------- flash */
.flash { min-height: 44px; display: flex; align-items: center; padding: 11px 14px;
  border-radius: 12px; margin-bottom: 14px; font-size: 13px; font-weight: 600; }
.flash.ok { background: var(--green-soft); color: var(--green-dark); box-shadow: 0 0 0 1px #c7e1d0; }
.flash.error { background: var(--red-soft); color: var(--red); box-shadow: 0 0 0 1px #efcdc5; }

/* --------------------------------------------------------------- metrics */
.admin-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric-card { min-width: 0; padding: 16px; border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); }
/* Asosiy karta gradient bilan emas, kattaroq son bilan ajraladi. */
.metric-card.primary strong { font-size: 30px; letter-spacing: -.03em; }
.metric-card span, .metric-card small, .metric-card em { display: block; }
.metric-card span { color: var(--muted); font-size: 13px; font-weight: 550; }
.metric-card strong { display: block; margin: 6px 0 6px; font-size: 22px; font-weight: 650; line-height: 1.15; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.metric-card small { color: var(--muted); font-size: 12.5px; }
.metric-card em { margin-top: 8px; color: var(--green-dark); font-size: 12px; font-style: normal; font-weight: 650; }
.secondary-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 12px; }
/* Uch kartali qator (Kassa): birinchisi — hukmron, keng karta. */
.admin-metrics.three { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); align-items: start; }

/* ---------------------------------------------------------------- panels */
.admin-panel { border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); overflow: hidden;
  margin-top: 14px; }
.admin-panel.open { overflow: visible; }
.admin-panel-title {
  min-height: 50px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 8px 16px; padding: 12px 16px;
}
.admin-panel-title h2 { margin: 0; font-size: 15px; font-weight: 650; line-height: 1.25; letter-spacing: -.01em; }
.admin-panel-title > strong { font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; }
.count-badge { min-width: 24px; height: 22px; padding: 0 7px; display: inline-grid; place-items: center;
  border-radius: 99px; background: var(--amber-soft); color: var(--amber); font-size: 12px; font-weight: 650;
  font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- tables */
/* Sarlavha qatori surface-2 fonda, 12px xira yorliq; qatorlar 13.5px, ingichka chiziq. */
.admin-table-wrap { overflow-x: auto; }
.admin-table-row {
  min-height: 48px; display: grid; align-items: center; gap: 12px; padding: 10px 16px;
  border-bottom: 1px solid var(--line); color: var(--ink); font-size: 13.5px;
}
.admin-table-row:not(.heading):hover { background: var(--surface-2); }
.admin-table-row.clickable { cursor: pointer; }
.admin-table-row.clickable:hover { background: var(--surface-2); }
.admin-table-row:last-child { border-bottom: 0; }
.admin-table-row.heading {
  min-height: 36px; padding-block: 8px; background: var(--surface-2); color: var(--muted);
  font-size: 12px; font-weight: 550; border-top: 1px solid var(--line);
}
.admin-table-row strong, .admin-table-row small { display: block; }
.admin-table-row strong { color: var(--ink); font-size: 13.5px; font-weight: 600; }
.admin-table-row small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.table-link { color: var(--green-dark); font-weight: 650; text-decoration: none; }
.table-link:hover, .table-link:focus-visible { text-decoration: underline; }
.admin-table-row .negative { color: var(--red); font-weight: 650; }
.admin-table-row .num { text-align: right; font-variant-numeric: tabular-nums; }
/* 05.10 desktop: dataTable qatorlari bitta to'rda — ustunlar qatordan qatorga
   siljimaydi (avval har qator o'z to'rida edi), summa («2 392 500») bo'linmaydi;
   sig'masa jadval o'z ichida suriladi.
   Telefon (≤720px) eski holicha. */
@media (min-width: 721px) {
  @supports (grid-template-columns: subgrid) {
    [data-grid-table] { display: grid; column-gap: 12px; }
    [data-grid-table] > .admin-table-row { grid-column: 1 / -1; grid-template-columns: subgrid !important; }
    [data-grid-table] > .admin-table-row > .num { white-space: nowrap; }
  }
}
.admin-table-row .muted { color: var(--muted); }
.balance-cell { display: grid; gap: 3px; font-variant-numeric: tabular-nums; }
.balance-cell strong { white-space: nowrap; }
.balance-cell.debt strong { color: var(--balance-debt); }
.balance-cell.advance strong { color: var(--balance-credit); }
.balance-cell.settled strong, .balance-cell.settled small { color: var(--balance-settled); }
.data-footnote { padding: 12px 16px; background: var(--surface-2); color: var(--muted); font-size: 12px; line-height: 1.5; }
.empty { padding: 24px 16px; color: var(--muted); font-size: 13px; }
.expense-word-list { display: grid; }
.expense-word-row { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; align-items: center; padding: 10px 16px; border-top: 1px solid var(--line); }
.expense-word-row small { display: block; color: var(--muted); font-size: 12px; }
.expense-word-map { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 16px; }
.expense-word-map select, .expense-word-map input { min-width: 160px; }
.admin-tabs { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 8px; }
.admin-tabs a { padding: 6px 12px; border-radius: 999px; background: var(--surface); box-shadow: var(--shadow); color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 550; }
.admin-tabs a:hover { background: var(--surface-2); color: var(--ink); }
.admin-tabs a.active { background: var(--btn); color: var(--btn-ink); box-shadow: none; }
.mobile-sales-list, .mobile-trips-list, .mobile-activity-list, .mobile-customers-list,
.mobile-cash-list, .mobile-report-list, .mobile-audit-list { display: none; }
.pin-grid { max-width: 420px; }
.staff-list { display: grid; }
.staff-row {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 14px; align-items: center; gap: 12px;
  padding: 12px 17px; border-top: 1px solid var(--line); color: inherit; text-decoration: none;
}
.staff-list .staff-row:first-child { border-top: 0; }
.staff-row:hover { background: var(--surface-2); }
.staff-avatar {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background: var(--green-soft); color: var(--green-dark); font-weight: 700;
}
.staff-main { display: grid; gap: 2px; min-width: 0; }
.staff-main strong { font-size: 15px; }
.staff-main small, .staff-phone { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.staff-chevron { color: var(--muted); font-size: 20px; }
.staff-dialog { width: min(620px, calc(100vw - 32px)); }
.staff-dialog .flash { margin: 12px 17px 0; }
/* Dublikat odam (BR-LEDGER-039): qarz/xavf qizili (.pill.debt, Android T.Debt/DebtSoft/DebtLine). */
.flash.customer-similar {
  display: block; margin: 12px 0 4px; background: var(--red-soft); color: var(--red); box-shadow: 0 0 0 1px #efcdc5;
}
.customer-similar a { color: var(--red); font-weight: 700; }
#customer-create-dialog input[aria-invalid="true"] { box-shadow: 0 0 0 2px var(--red); }
.customer-similar p { margin: 0; }
.customer-similar ul { margin: 8px 0; padding-left: 18px; }
.customer-similar li { margin: 4px 0; }
.staff-roles { display: grid; gap: 8px; margin: 0; padding: 0 17px 14px; border: 0; }
.staff-roles legend { padding: 0 0 6px; font-size: 12.5px; font-weight: 550; color: var(--muted); }
.staff-role {
  display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; padding: 10px 12px;
  border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 10px; cursor: pointer;
}
.staff-role:has(input:checked) { box-shadow: 0 0 0 2px var(--green); background: var(--green-soft); }
.staff-role span { display: grid; gap: 2px; }
.staff-role small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.pin-field { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.staff-line {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 17px; border-bottom: 1px solid var(--line);
}
.staff-line:last-child { border-bottom: 0; }
.staff-line > span { display: grid; gap: 3px; min-width: 0; }
.staff-line small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.staff-line > button, .staff-line > a { flex: none; }
.pin-visible { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .25em; }
.admin-user small a {
  display: inline; padding: 0 2px; border-radius: 4px; color: inherit; font-size: 12px; font-weight: 600;
}
.admin-user small a:hover { background: var(--surface); color: var(--ink); }

/* ----------------------------------------------------------------- pills */
/* Chip: rang + matn birga (rang yagona signal emas). */
.pill { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 99px;
  font-size: 12px; font-style: normal; font-weight: 600; line-height: 1.45; white-space: nowrap; }
.pill.good { background: var(--green-soft); color: var(--green); }
.pill.warning { background: var(--amber-soft); color: var(--amber); }
/* Manzil belgilangan holat signal emas: sariq faqat amal kerak bo'lgan
   yo'naltirish boshqaruvida qoladi (BR-UX-002). */
.pill.direct { background: var(--green-soft); color: var(--green); }
.pill.debt { background: var(--red-soft); color: var(--red); }
.pill.neutral { background: var(--track); color: var(--muted); }
.pill.info { background: var(--blue-soft); color: var(--blue); }

/* -------------------------------------------------------------- reys tools */
.trip-page-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-bottom: 12px; }
.trip-dialog {
  width: min(820px, calc(100vw - 32px)); max-height: min(90vh, 860px); padding: 0;
  border: 0; border-radius: 16px; background: transparent; overflow: hidden;
  box-shadow: 0 24px 70px rgb(12 23 16 / 24%);
}
.trip-dialog::backdrop { background: rgb(16 25 19 / 48%); }
.trip-dialog-card { overflow: auto; max-height: min(90vh, 860px); border-radius: 16px; background: #fff; }
.trip-dialog-card > header {
  position: sticky; z-index: 2; top: 0; display: flex; align-items: center;
  justify-content: space-between; gap: 20px; min-height: 64px; padding: 14px 18px;
  border-bottom: 1px solid var(--line); background: #fff;
}
.trip-dialog-card > header h2 { margin: 0; font-size: 18px; font-weight: 650; letter-spacing: -.01em; }
/* Yangi reys: faqat maydonlar scroll qiladi, yakuniy amallar doim ko‘rinadi. */
[data-trip-dialog] .trip-dialog-card {
  display: flex; flex-direction: column; height: min(90dvh, 860px); overflow: hidden;
}
[data-trip-create-form] { display: flex; flex: 1; flex-direction: column; min-height: 0; }
[data-trip-create-form] > .modal-grid { min-height: 0; overflow-y: auto; flex: 1; }
[data-trip-create-form] > .modal-actions {
  flex-shrink: 0; margin: 0; padding: 12px 18px; background: #fff; border-top: 1px solid var(--line);
}
.dialog-close {
  width: 38px; height: 38px; border: 0; border-radius: 10px; box-shadow: var(--shadow);
  background: var(--surface); color: var(--muted); font-size: 22px; line-height: 1; cursor: pointer;
}
.dialog-close:hover { background: var(--surface-2); color: var(--ink); }
.ticketless-check {
  display: flex !important; align-items: center; align-self: end; grid-auto-flow: column;
  grid-template-columns: auto 1fr !important; min-height: 39px; padding: 0 4px;
  color: var(--ink) !important; text-transform: none !important; letter-spacing: 0 !important;
}
.ticketless-check input { width: 20px !important; height: 20px !important; margin: 0; }
.ticketless-check span { font-size: 12px; font-weight: 700; }
.trip-destination-fieldset, .trip-channel-fieldset {
  min-width: 0; margin: 0; padding: 12px; border: 0; box-shadow: 0 0 0 1px var(--line);
  border-radius: 12px; background: var(--surface-2);
}
.trip-destination-fieldset > legend, .trip-channel-fieldset > legend {
  padding: 0 5px; color: var(--muted); font-size: 12.5px; font-weight: 550;
}
.trip-destination-segment { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trip-destination-segment label { display: block; }
.trip-destination-segment input { position: absolute; opacity: 0; pointer-events: none; }
.trip-destination-segment span {
  min-height: 42px; display: grid; place-items: center; padding: 7px 9px;
  border: 1px solid var(--line); border-right-width: 0; background: #fff;
  color: var(--muted); font-size: 13px; font-weight: 600; text-align: center;
  cursor: pointer;
}
.trip-destination-segment label:first-child span { border-radius: 9px 0 0 9px; }
.trip-destination-segment label:last-child span { border-right-width: 1px; border-radius: 0 9px 9px 0; }
.trip-destination-segment input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }
.trip-destination-segment input:checked + span {
  border-color: var(--btn); background: var(--btn); color: var(--btn-ink);
}
.destination-customer { margin-top: 12px; }
.destination-unknown {
  display: flex !important; grid-template-columns: auto 1fr !important; align-items: center;
  gap: 8px !important; margin-top: 10px; color: var(--ink) !important;
  text-transform: none !important; letter-spacing: 0 !important;
}
.destination-unknown input { width: 19px !important; height: 19px !important; margin: 0; }
.destination-unknown span { font-size: 12px; font-weight: 700; }

.trip-filter-panel {
  overflow: hidden; margin-bottom: 12px; border: 0; box-shadow: var(--shadow);
  border-radius: 16px; background: var(--surface);
}
.trip-filter-head {
  min-height: 48px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 12px 16px 4px;
}
.trip-filter-head h2 { margin: 0; font-size: 15px; font-weight: 650; }
.trip-filter-head span { color: var(--muted); font-size: 12px; }
.trip-filter-grid {
  display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px; padding: 14px 16px 10px;
}
.trip-filter-grid label {
  display: grid; gap: 5px; color: var(--muted); font-size: 12.5px; font-weight: 550;
}
.trip-filter-grid input, .trip-filter-grid select {
  width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 0; box-shadow: 0 0 0 1px var(--line);
  border-radius: 10px; background: var(--surface-2); color: var(--ink); font-size: 13.5px;
  text-transform: none; letter-spacing: 0;
}
.trip-filter-grid input:focus, .trip-filter-grid select:focus { box-shadow: 0 0 0 2px var(--ink); outline: 0; }
.trip-filter-actions { display: flex; gap: 8px; padding: 0 16px 14px; }
.filter-chips { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 16px 14px; }
.filter-chip {
  min-height: 30px; display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px;
  border: 0; border-radius: 999px; background: var(--surface-2); box-shadow: 0 0 0 1px var(--line);
  color: var(--ink); font-size: 12.5px; font-weight: 550; text-decoration: none;
}
.filter-chip:hover { box-shadow: 0 0 0 1px var(--ink); }
.filter-chip span { font-size: 16px; line-height: 1; }
.typeahead { position: relative; min-width: 0; }
.typeahead > input { width: 100%; }
.typeahead-list {
  position: absolute; z-index: 20; top: calc(100% + 4px); left: 0; right: 0;
  max-height: 224px; overflow-y: auto; padding: 5px; border: 0;
  border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-pop);
}
.typeahead-list[hidden] { display: none; }
.typeahead-list [role="option"] {
  min-height: 38px; display: flex; align-items: center; padding: 8px 10px;
  border-radius: 8px; color: var(--ink); font-size: 13.5px; font-weight: 500;
  text-transform: none; letter-spacing: 0; cursor: pointer;
}
.typeahead-list [role="option"] strong { font-weight: 700; color: var(--green-dark); }
.typeahead-list [role="option"][aria-selected="true"],
.typeahead-list [role="option"]:hover { background: var(--surface-2); }
/* Maydon holati matn bilan aytiladi: tanlanganmi, yangi yozuvmi yoki hali
   hal qilinmaganmi. Rang yolg'iz signal bo'lmaydi (BR-UX-004). */
.typeahead-status {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--muted);
  /* Label ichida turadi, lekin label emas: yorliq uppercase uslubini
     meros qilib olmaydi. */
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}
.typeahead-status[data-tone="warn"] { color: #7a5610; }
.typeahead-status[data-tone="new"] { color: var(--green-dark); }
.typeahead-list .typeahead-create {
  border-top: 1px solid var(--line); color: var(--amber); font-weight: 800;
}
.typeahead-list .typeahead-create::before { content: '+ '; font-weight: 900; }
.typeahead-list .typeahead-create:hover { background: var(--amber-soft); }

/* ------------------------------------------------- umumiy qidiruv (A-05, K-13) */
/* Topbar o'ng tomoni, amallar oldida: sarlavhani siqmaydi (o'lchami qat'iy, joy
   yetmasa keyingi qatorga o'tadi). Telefon (≤720px) scope emas — maydon yashirin,
   /panel/search sahifasi ishlaydi. */
.shell-search { position: relative; flex: 0 0 340px; width: 340px; margin-left: auto; align-self: flex-end; }
.shell-search input {
  width: 100%; height: 38px; padding: 0 34px 0 34px; border: 0; border-radius: 10px;
  background: var(--surface); color: var(--ink); font-size: 14px; box-shadow: var(--shadow);
  -webkit-appearance: none; appearance: none;
}
.shell-search input::-webkit-search-cancel-button { display: none; }
.shell-search input::placeholder { color: var(--muted); }
.shell-search input:focus { outline: 0; box-shadow: 0 0 0 2px var(--ink); }
.shell-search-icon {
  position: absolute; left: 11px; top: 11px; width: 16px; height: 16px; pointer-events: none;
  fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round;
}
.shell-search-key {
  position: absolute; right: 9px; top: 9px; min-width: 20px; height: 20px; padding: 0 5px;
  display: grid; place-items: center; border-radius: 6px; background: var(--surface-2);
  box-shadow: 0 0 0 1px var(--line); color: var(--muted); font: 600 12px/1 var(--font); pointer-events: none;
}
.shell-search input:focus ~ .shell-search-key, .shell-search input:not(:placeholder-shown) ~ .shell-search-key { display: none; }
.shell-search-list {
  position: absolute; z-index: 40; top: calc(100% + 6px); right: 0; width: min(460px, calc(100vw - 32px));
  max-height: min(480px, calc(100vh - 120px)); overflow-y: auto; padding: 6px;
  border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-pop);
}
.shell-search-section + .shell-search-section { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--line); }
.shell-search-head {
  display: flex; justify-content: space-between; gap: 8px; padding: 6px 10px 4px;
  color: var(--muted); font-size: 12px; font-weight: 600;
}
.shell-search-option {
  min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 7px 10px; border-radius: 8px; color: var(--ink); text-decoration: none; font-size: 14px;
}
.shell-search-option[aria-selected="true"], .shell-search-option:hover { background: var(--surface-2); }
.shell-search-main { min-width: 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.shell-search-label { font-weight: 600; overflow-wrap: anywhere; }
.shell-search-sub { color: var(--muted); font-size: 13px; font-weight: 400; }
.shell-search-meta { flex: none; display: flex; gap: 12px; color: var(--muted); font-size: 13px; white-space: nowrap; }
.shell-search-all { justify-content: flex-start; margin-top: 4px; border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; color: var(--green-dark); }
.shell-search-empty { margin: 0; padding: 12px 10px; color: var(--muted); font-size: 14px; }
.shell-search-count { color: var(--muted); font-size: 12px; font-weight: 600; }
.shell-search-page { margin: 0 0 14px; }
.shell-search-page .shell-search { width: min(560px, 100%); margin: 0; }
.shell-search-page .shell-search input { height: 44px; font-size: 15px; }
.shell-search-page .shell-search-icon, .shell-search-page .shell-search-key { top: 14px; }
.shell-search-page .shell-search-key { top: 12px; }
.shell-search-group + .shell-search-group { margin-top: 14px; }
@media (max-width: 1100px) { .shell-search { flex-basis: 260px; width: 260px; } }
@media (max-width: 720px) { .admin-topbar > .shell-search { display: none; } }
.trip-documents { display: grid; justify-items: start; gap: 3px; }
.trip-doc-ttn { color: var(--muted) !important; font-size: 12px !important; font-weight: 500; }
.trip-ticketless {
  display: inline-flex !important; width: max-content; margin-top: 3px !important;
  padding: 2px 8px; border-radius: 999px; background: var(--track); color: var(--muted) !important;
  font-size: 11.5px !important; font-weight: 600;
}
.trip-ticket-missing { display: inline-flex !important; width: max-content;
  margin-top: 3px !important; padding: 2px 8px; border-radius: 999px;
  background: var(--amber-soft); color: var(--amber) !important; font-size: 11.5px !important;
  font-weight: 600; }
.trip-status-stack { display: grid; justify-items: start; gap: 4px; }
.trip-awaiting-check { align-content: end; grid-template-columns: auto 1fr !important; }
.trip-awaiting-check input { width: 19px !important; height: 19px !important; margin: 0; }
.trip-awaiting-check span { align-self: center; color: var(--ink); font-size: 12.5px;
  text-transform: none; letter-spacing: 0; }
.factory-strengths { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; border: 0; }
.factory-strengths > legend { padding: 0 0 6px; color: var(--muted); font-size: 12.5px; font-weight: 550; }
.factory-strength { display: inline-flex; align-items: center; gap: 8px; }
.mobile-trip-card-bottom.trip-documents { align-items: start; }

/* ----------------------------------------------------------------- forms */
/* Tugma iyerarxiyasi: asosiy — to'q siyoh, ikkilamchi — oq halqali karta,
   xavfli — qizil. Brend yashili havola va faol holat uchun qoladi. */
.admin-primary {
  min-height: 38px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--btn);
  color: var(--btn-ink); font-size: 13.5px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
a.admin-primary { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.admin-primary:hover { background: var(--btn-hover); }
.admin-danger {
  min-height: 38px; padding: 0 14px; border: 0; border-radius: 10px;
  background: var(--red); color: #fff; font-size: 13.5px; font-weight: 600; cursor: pointer;
}
.admin-danger:hover { background: #7f2a1f; }
/* Yig'iluvchi sidebar: 13-14 dyuymli noutbukda jadval uchun joy ochadi. */
.admin-sidebar-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; flex: none; margin-left: auto; padding: 0; border: 0;
  border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer;
}
.admin-sidebar-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.admin-sidebar-toggle:hover { background: var(--surface-2); color: var(--ink); }
.admin-shell.sidebar-collapsed { grid-template-columns: 68px minmax(0, 1840px); }
.admin-shell.sidebar-collapsed .admin-brand div,
.admin-shell.sidebar-collapsed .admin-nav-group,
/* Yig'ilganda faqat yorliq matni yashiriladi: ikon qolmasa menyu bo'sh
   qora chiziqqa aylanadi va bo'limlar umuman ko'rinmaydi. */
.admin-shell.sidebar-collapsed .admin-sidebar nav a > span:not(.admin-nav-icon),
.admin-shell.sidebar-collapsed .admin-user div,
.admin-shell.sidebar-collapsed .admin-user form { display: none; }
.admin-shell.sidebar-collapsed .admin-sidebar { padding: 14px 8px; }
.admin-shell.sidebar-collapsed .admin-sidebar nav a { justify-content: center; padding: 9px 0; }
.admin-shell.sidebar-collapsed .admin-brand { flex-direction: column; justify-content: center; padding: 0 0 6px; }
.admin-shell.sidebar-collapsed .admin-user { padding: 6px 0; background: transparent; }
.admin-shell.sidebar-collapsed .admin-sidebar-toggle { transform: rotate(180deg); margin: 0; }
.admin-shell.sidebar-collapsed .admin-user { display: flex; justify-content: center; }
.admin-nav-badge {
  margin-left: auto; min-width: 22px; padding: 1px 7px; border-radius: 99px;
  background: var(--amber-soft); color: var(--amber); font-size: 12px; font-style: normal;
  font-weight: 650; text-align: center; font-variant-numeric: tabular-nums;
}
.admin-shell.sidebar-collapsed .admin-nav-badge {
  position: absolute; margin: 0; transform: translate(11px, -9px);
}
.admin-shell.sidebar-collapsed .admin-sidebar nav a { position: relative; }
/* Reyslar/Kassa belgisi bosilsa navbat ochiladi (2-bosqich, Habib 04.10). */
[data-badge-href] { cursor: pointer; }

.admin-secondary {
  min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 0 14px; border: 0; border-radius: 10px; text-decoration: none; white-space: nowrap;
  background: var(--surface); color: var(--ink); font-size: 13.5px; font-weight: 600;
  cursor: pointer; box-shadow: var(--shadow);
}
.admin-secondary:hover { background: var(--surface-2); }
.admin-primary:disabled, .admin-danger:disabled, .admin-secondary:disabled { opacity: .45; cursor: not-allowed; }
.modal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px; padding: 16px 17px; }
/* Forma: yorliq 12.5px xira (bosh harf emas), maydon surface-2 fonda halqa bilan. */
.modal-grid label {
  display: grid; gap: 5px; color: var(--muted); font-size: 12.5px; font-weight: 550;
}
.modal-grid input, .modal-grid select, .modal-grid textarea {
  width: 100%; min-width: 0; height: 40px; padding: 0 11px; border: 0; box-shadow: 0 0 0 1px var(--line);
  border-radius: 10px; background: var(--surface-2); color: var(--ink); outline: 0;
  font: inherit; font-size: 14px; font-weight: 400; text-transform: none; letter-spacing: 0;
}
.modal-grid textarea { height: auto; min-height: 80px; padding: 9px 11px; }
.modal-grid input:focus, .modal-grid select:focus, .modal-grid textarea:focus {
  box-shadow: 0 0 0 2px var(--ink); background: var(--surface);
}
.modal-grid input[type="checkbox"], .modal-grid input[type="radio"] {
  width: auto; height: auto; box-shadow: none; background: none; accent-color: var(--green);
}
.modal-grid .wide { grid-column: 1 / -1; }
/* Magnit (Habib 16.10): bo'sh to'lov usuli maydonining o'ng chetida; bosilsa Naqd shu maydonga o'tadi. */
.split-field { position: relative; display: block; }
.modal-grid .split-field input { padding-right: 40px; }
.split-magnet { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border: 0;
  background: none; color: var(--green); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.split-magnet[hidden] { display: none; }
.form-extra { border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 10px; background: var(--surface-2); }
.form-extra > summary { min-height: 40px; display: flex; align-items: center; padding: 0 11px;
  color: var(--muted); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.form-extra > label { padding: 0 10px 10px; }
.derived-value {
  min-height: 40px; display: flex; align-items: center; padding: 0 11px;
  border: 1px dashed var(--line); border-radius: 10px; background: var(--surface-2);
  color: var(--ink); font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums;
}
.modal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 17px 16px; }
.modal-note { margin: 0 17px 16px; padding: 10px 12px; border-radius: 10px;
  background: var(--surface-2); color: var(--muted); font-size: 12.5px; line-height: 1.5; }
/* 05.10 keng ekran: ish maydoni suyuq (1920 da ~1630px). Matn qatori va forma maydoni
   cho'zilmaydi — izoh ~90ch, maydon 560px gacha (ustun torroq bo'lsa ustun eni);
   pastki izoh chizig'i to'liq eni, matni 90ch. */
.modal-note { max-width: 90ch; }
.data-footnote { padding-right: max(16px, calc(100% - 90ch)); }
.admin-content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.admin-content select { max-width: 560px; }
.admin-content textarea { max-width: 720px; }
.impact-note { margin: 0 17px 16px; padding: 10px 12px; border: 0;
  border-radius: 10px; background: var(--amber-soft); color: var(--amber); font-size: 13px; line-height: 1.5; }
.confirm-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0;
  margin: 0; padding: 5px 17px 16px;
}
.confirm-grid > div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.confirm-grid > div:nth-child(odd) { padding-right: 18px; }
.confirm-grid > .wide { grid-column: 1 / -1; padding-right: 0; }
.confirm-grid dt { margin-bottom: 4px; color: var(--muted); font-size: 12.5px; font-weight: 550; }
.confirm-grid dd { margin: 0; color: var(--ink); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.balance-transition { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center; gap: 10px; }
.balance-transition > b { color: var(--muted); font-size: 16px; }
.change-table { display: grid; padding: 4px 17px 14px; }
.change-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 24px minmax(0, 1fr);
  align-items: center; gap: 10px; min-height: 52px; border-bottom: 1px solid var(--line); }
.change-row > strong { color: var(--muted); font-size: 12.5px; font-weight: 550; }
.change-row > span { color: var(--ink); font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.change-row > b { color: var(--muted); text-align: center; }
.confirmation-reason { display: grid; gap: 5px; margin: 0 17px 16px; padding: 12px;
  border-radius: 10px; background: var(--surface-2); }
.confirmation-reason span { color: var(--muted); font-size: 12.5px; font-weight: 550; }
.confirmation-reason strong { color: var(--ink); font-size: 13.5px; }
.sale-correction-items { display: grid; gap: 8px; }
.sale-correction-item { display: grid; grid-template-columns: minmax(220px, 1.4fr) 1fr 1fr;
  gap: 10px; padding: 11px; border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 12px;
  background: var(--surface-2); }

details.admin-panel > summary {
  min-height: 50px; display: flex; align-items: center; gap: 10px; padding: 12px 16px;
  font-size: 15px; font-weight: 650; cursor: pointer; list-style: none;
}
details.admin-panel > summary::-webkit-details-marker { display: none; }
details.admin-panel > summary::before {
  content: '+'; width: 22px; height: 22px; display: inline-grid; place-items: center; flex: none;
  border-radius: 7px; background: var(--surface-2); box-shadow: 0 0 0 1px var(--line);
  color: var(--ink); font-weight: 650; line-height: 1;
}
details.admin-panel > summary:hover { background: var(--surface-2); }
details.admin-panel[open] > summary { border-bottom: 1px solid var(--line); }
details.admin-panel[open] > summary::before { content: '−'; }

/* Dollar kursi Kassa ichida: ikki qiymat doim ko'rinadi, forma kerakda ochiladi. */
.usd-rate-values { display: flex; flex-wrap: wrap; gap: 8px 32px; margin: 0; padding: 4px 16px 14px; }
.usd-rate-values dt { color: var(--muted); font-size: 13px; font-weight: 550; }
.usd-rate-values dd { margin: 4px 0 0; font-size: 18px; font-weight: 650; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.usd-rate-values .muted { color: var(--muted); font-weight: 600; }
.usd-rate-form { border-top: 1px solid var(--line); }
.usd-rate-form > summary {
  padding: 11px 16px; color: var(--green); font-size: 13px; font-weight: 600;
  cursor: pointer; list-style: none;
}
.usd-rate-form > summary::-webkit-details-marker { display: none; }
.usd-rate-form > summary::before { content: '+ '; }
.usd-rate-form[open] > summary::before { content: '− '; }

/* ------------------------------------------------ A-04 mijozlar va Mijoz 360 */
/* Ro'yxat operatsion asbob, karta esa besh blok: kim, qancha, qanday narxda,
   nima bo'lgan va fon ma'lumot. Amal formasi sahifada ochiq turmaydi. */
.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
/* Mijozlar: uchta alohida karta (maket .metrics); jim qarzdor — qizil yumshoq karta. */
.customer-position {
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 12px;
  margin-bottom: 14px;
}
.customer-position > * { padding: 16px; border-radius: 16px; background: var(--card); box-shadow: var(--shadow);
  color: inherit; text-decoration: none; min-width: 0; }
.customer-position > a:hover { box-shadow: 0 0 0 1px var(--ink); }
.customer-position .dash-figure.bad { color: var(--red); }
.customer-position .advance .dash-figure { color: var(--blue); }
.customer-position .quiet:not(.calm) { background: var(--red-soft); box-shadow: 0 0 0 1px #efcdc5; }
.customer-position .quiet:not(.calm) .dash-label,
.customer-position .quiet:not(.calm) .dash-figure,
.customer-position .quiet:not(.calm) .dash-note { color: var(--red); }
.customer-position .dash-figure { font-size: 22px; letter-spacing: -.02em; }
.customer-position > :first-child .dash-figure { font-size: 32px; }

.customer-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.customer-search { flex: 1 1 260px; min-width: 220px; max-width: 380px; }
.customer-search input { width: 100%; }
.customer-toolbar-sort {
  display: flex; align-items: center; gap: 6px; margin-left: auto; flex-wrap: wrap;
}
.customer-toolbar-sort > span:first-child {
  color: var(--muted); font-size: 12.5px; font-weight: 550;
}
.customer-toolbar input {
  padding: 9px 12px; border: 0; border-radius: 10px; box-shadow: var(--shadow);
  background: var(--card); color: var(--ink); font: inherit; font-size: 13.5px;
}
.customer-toolbar input:focus { box-shadow: 0 0 0 2px var(--ink); outline: 0; }
/* Segment guruhi (maket .seg): oq kapsula ichida tugmalar, faoli to'q. */
.customer-segments {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px; margin-bottom: 12px;
  padding: 3px; border-radius: 12px; background: var(--surface); box-shadow: var(--shadow);
}
.customer-segments .customer-segment, .customer-segments .customer-chip { box-shadow: none; background: transparent; }
.customer-segments .customer-segment.active, .customer-segments .customer-chip.active { background: var(--btn); }
.customer-filters {
  display: grid; gap: 8px; margin-bottom: 14px; padding: 12px 16px;
  border: 0; border-radius: 16px; background: var(--card); box-shadow: var(--shadow);
}
.customer-filter-row { display: grid; grid-template-columns: 116px 1fr; align-items: center; gap: 8px; }
.customer-filter-row > span:first-child {
  color: var(--muted); font-size: 12.5px; font-weight: 550;
}
.customer-filter-row > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.customer-period-form { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.customer-period-form input {
  padding: 5px 9px; border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 9px;
  background: var(--surface-2); color: var(--ink); font: inherit; font-size: 13px;
}
.customer-period-form button { padding: 5px 12px; }
.customer-period-kind { display: inline-flex; flex-wrap: wrap; gap: 6px; padding-left: 8px; border-left: 1px solid var(--line); }
.customer-filters-reset { justify-self: start; color: var(--muted); font-size: 12px; font-weight: 700; }
/* Sement bazalar (DEC-337): ko'rsatkich plitkasi; sahifa CSS'i bases_panel.ts'da. */
.outlet-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.outlet-metric {
  display: grid; gap: 2px; padding: 10px 12px; border: 0; border-radius: 12px; background: var(--surface-2);
  color: inherit; text-decoration: none;
}
a.outlet-metric:hover { box-shadow: 0 0 0 1px var(--ink); }
.outlet-metric span { color: var(--muted); font-size: 12.5px; font-weight: 550; }
.outlet-metric b { font-size: 19px; font-weight: 650; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.outlet-metric b.bad { color: var(--balance-debt); }
.outlet-metric b.good { color: var(--balance-credit); }
.outlet-metric small { color: var(--muted); font-size: 12px; }
.outlet-back { margin: 0 0 10px; font-size: 13px; }
.outlet-back a { font-weight: 700; }
.customer-row-outlet { display: inline-block; margin-left: 6px; color: var(--muted); font-size: 12px; font-weight: 550; }
.customer-row-outlet.unlinked { color: var(--muted); } /* qizil faqat qarz/xato (11.10 ko'rigi) */
@media (max-width: 720px) {
  .customer-filter-row { grid-template-columns: 1fr; gap: 5px; }
  .customer-period-kind { padding-left: 0; border-left: 0; }
}
/* Filtr chipi: oq kapsula halqa bilan; faoli to'q siyoh (maket segmenti). */
.customer-segment, .customer-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 12px;
  border: 0; border-radius: 9px; background: var(--card); box-shadow: var(--shadow);
  color: var(--muted); font-size: 13px; font-weight: 550; text-decoration: none; white-space: nowrap;
}
.customer-segment:hover, .customer-chip:hover { background: var(--surface-2); color: var(--ink); }
.customer-segment b, .customer-chip b { font-weight: 600; font-variant-numeric: tabular-nums; opacity: .75; }
.customer-segment.active, .customer-chip.active { background: var(--btn); color: var(--btn-ink); box-shadow: none; }
.customer-segment.active b, .customer-chip.active b { opacity: .8; }
.customer-row-movement { display: block; color: var(--muted); font-size: 12px; }
.customer-balance-cell { display: grid; gap: 2px; justify-items: end; text-align: right; }
.customer-balance-cell b { font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; }
.customer-balance-cell small { color: var(--muted); font-size: 12px; }
.customer-balance-cell.debt b { color: var(--balance-debt); }
.customer-balance-cell.advance b { color: var(--balance-credit); }
.customer-balance-cell.settled b { color: var(--balance-settled); }
.modal-field { display: grid; gap: 6px; }
.modal-field > span:first-child {
  color: var(--muted); font-size: 12.5px; font-weight: 550;
}
.choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; }
.choice { position: relative; display: block; }
.choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice span {
  display: block; padding: 10px 12px; border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 10px;
  background: var(--card); color: var(--ink); font-size: 13.5px; font-weight: 550;
  letter-spacing: 0; text-transform: none; cursor: pointer;
}
.choice input:checked + span {
  box-shadow: 0 0 0 2px var(--green); background: var(--green-soft); color: var(--green-dark); font-weight: 650;
}
.choice input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }
/* Manzil ustunidagi amal: holat yorlig'i emas, aniq tugma. */
.trip-route-pick {
  display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px;
  border: 0; border-radius: 8px; background: var(--amber-soft); box-shadow: 0 0 0 1px #ecd2a5;
  color: var(--amber); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.trip-route-pick::before { content: '+'; margin-right: 6px; font-weight: 700; }
.trip-route-pick:hover { box-shadow: 0 0 0 1px var(--amber); }
.mobile-trip-row { display: grid; gap: 8px; justify-items: start; }
.mobile-trip-row > .mobile-trip-card { justify-self: stretch; }
.trip-quick-filters {
  display: flex; flex-wrap: wrap; align-items: center; gap: 7px; padding: 0 17px 12px;
}
.trip-quick-gap { flex: 1; min-width: 8px; }
.trip-quick-filters .customer-chip b { font-weight: 650; }
.trip-totals {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px;
  margin: 0 17px 12px; padding: 12px 16px; border: 0;
  border-radius: 12px; background: var(--surface-2);
}
.trip-totals > span { display: grid; gap: 2px; }
.trip-totals small { color: var(--muted); font-size: 12.5px; font-weight: 550; }
.trip-totals b { font-size: 18px; font-weight: 650; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.trip-totals-note { align-self: center; color: var(--amber); font-size: 12px; font-weight: 700; }
.trip-totals-note.ok { color: var(--muted); font-weight: 600; }
/* Bank: asosiy harakat turi, ikkilamchi filtrlar va summa hierarchy. */
.bank-overview { background: var(--surface); border: 0; box-shadow: var(--shadow); border-radius: 16px; padding: 16px; }
.bank-overview-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.bank-overview-head h2 { margin: 0 0 4px; font-size: 13px; font-weight: 550; color: var(--muted); }
.bank-overview-head > div > span { font-size: 12.5px; color: var(--muted); }
/* Davr tanlovi — segment guruhi (maket .seg); G9: umumiy periodSegment (.list-toolbar). */
.list-toolbar.bank-period-bar { margin: 0; }
.bank-period-bar .period-more .row-menu-list { left: auto; right: 0; }
.bank-periods { display: inline-flex; gap: 2px; flex-wrap: wrap; padding: 3px; border-radius: 11px;
  background: var(--surface); box-shadow: var(--shadow); }
.bank-period { padding: 6px 11px; border-radius: 8px; text-decoration: none; font-size: 13px; font-weight: 550; color: var(--muted); }
.bank-period.active { background: var(--btn); color: var(--btn-ink); }
.bank-period:not(.active):hover, .bank-filter-option:not(.active):hover { color: var(--ink); background: var(--surface-2); }
.bank-metrics { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 48px; margin-top: 18px; }
.bank-metric { display: grid; gap: 4px; }
.bank-metric > small { color: var(--muted); font-size: 13px; font-weight: 550; }
.bank-metric strong { font-size: clamp(24px, 2.4vw, 32px); font-weight: 650; letter-spacing: -.03em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.bank-metric strong > span { font-size: 14px; font-weight: 550; letter-spacing: 0; color: var(--muted); margin-left: 4px; }
.bank-metric.income strong, .bank-row-amount.income { color: var(--green); }
.bank-metric.expense strong, .bank-row-amount.expense { color: var(--red); }
.bank-pending { display: grid; gap: 4px; padding: 10px 14px; border: 0; border-radius: 12px; background: var(--amber-soft);
  color: var(--amber); text-decoration: none; font-size: 12.5px; }
.bank-pending:hover { box-shadow: 0 0 0 1px var(--amber); }
.bank-pending > span { font-size: 13.5px; font-weight: 600; }
.bank-records { margin-top: 14px; }
.bank-records-head { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 16px; }
.bank-directions { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 11px; background: var(--surface-2); box-shadow: 0 0 0 1px var(--line); }
.bank-tab { display: inline-flex; align-items: center; padding: 7px 14px; min-height: 36px;
  border-radius: 8px; text-decoration: none; color: var(--muted); font-size: 13.5px; font-weight: 600; }
.bank-tab.active { background: var(--btn); color: var(--btn-ink); }
.bank-tab:not(.active):hover { background: var(--surface); color: var(--ink); }
.bank-record-count { color: var(--muted); font-size: 12.5px; white-space: nowrap; }
.bank-filter-groups { display: flex; justify-content: space-between; gap: 12px 28px; flex-wrap: wrap;
  padding: 4px 16px 8px; }
.bank-filter-group { display: flex; gap: 10px; align-items: baseline; min-width: 0; }
.bank-filter-label { font-size: 12.5px; color: var(--muted); padding-top: 6px; }
.bank-filter-group nav { display: flex; gap: 3px; flex-wrap: wrap; }
.bank-filter-option { display: inline-flex; align-items: center; min-height: 32px; padding: 5px 10px;
  border-radius: 8px; color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 550; }
.bank-filter-option.active { background: var(--surface-2); box-shadow: 0 0 0 1px var(--line); color: var(--ink); font-weight: 650; }
.bank-search > summary { font-size: 13px; font-weight: 550; }
.bank-list-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.bank-row-amount { display: block; font-variant-numeric: tabular-nums; font-size: 14px; font-weight: 650; white-space: nowrap; }
.bank-customers { display: flex; flex-wrap: wrap; gap: 5px; }
.bank-payment-link { text-decoration: none; }
.bank-payment-link:focus-visible { outline: 2px solid var(--green-dark); outline-offset: 4px; border-radius: 3px; }
.bank-row-direction { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; }
.bank-empty-reset { margin: 0; padding: 0 20px 20px; font-size: 13px; }
.bank-empty-reset a { color: var(--green-dark); font-weight: 600; }
.bank-records .admin-table-row > [role="cell"]:nth-child(2) { color: var(--muted); font-size: 12.5px; }
.bank-records .admin-table-row > [role="cell"]:nth-child(5) { color: var(--muted); line-height: 1.5; }
.bank-directions a:focus-visible, .bank-periods a:focus-visible, .bank-filter-group a:focus-visible {
  outline: 2px solid var(--green); outline-offset: 3px;
}
@media (max-width: 720px) {
  .bank-overview { padding: 16px; }
  .bank-overview-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  .bank-periods { margin-left: -7px; }
  .bank-period { padding: 7px 9px; min-height: 34px; }
  .bank-metrics { gap: 20px; margin-top: 18px; }
  .bank-metric { flex: 1 1 135px; }
  .bank-metric strong { font-size: 22px; }
  .bank-metric strong > span { display: block; margin-top: 3px; font-size: 11px; }
  .bank-records-head { padding: 12px; flex-wrap: wrap; gap: 8px; }
  .bank-tab { padding: 10px 11px; font-size: 12px; }
  .bank-filter-groups { padding: 12px 14px 4px; gap: 8px; }
  .bank-filter-group { gap: 6px; align-items: flex-start; width: 100%; }
  .bank-filter-label { width: 34px; flex-shrink: 0; padding-top: 11px; }
  .bank-filter-option { min-height: 40px; padding: 7px; }
  .bank-records .admin-table-row.heading { display: none; }
  .bank-records .admin-table-row:not(.heading) { display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important; gap: 9px 12px; padding: 16px; min-width: 0; }
  .bank-records .admin-table-row > [role="cell"] { display: block !important; min-width: 0; }
  .bank-records .admin-table-row > [role="cell"]:nth-child(1) { grid-column: 1; grid-row: 1; font-size: 11px; }
  .bank-records .admin-table-row > [role="cell"]:nth-child(2) { grid-column: 2; grid-row: 1; text-align: right; }
  .bank-records .admin-table-row > [role="cell"]:nth-child(3) { grid-column: 1; grid-row: 2; font-size: 12px; }
  .bank-records .admin-table-row > [role="cell"]:nth-child(4) { grid-column: 2; grid-row: 2; text-align: right; }
  .bank-records .admin-table-row > [role="cell"]:nth-child(5) { grid-column: 1 / -1; grid-row: 3; }
  .bank-records .admin-table-row > [role="cell"]:nth-child(6) { grid-column: 1 / -1; grid-row: 4; }
}
/* Dialogdagi "bu mijoz to'lovi emas" qismi yig'ilgan turadi: asosiy ish
   biriktirish, bu esa istisno. */
.bank-not-customer { margin: 0 17px 14px; border-top: 1px solid var(--line); }
.bank-not-customer > summary {
  padding: 12px 0 0; color: var(--muted); font-size: 13px; font-weight: 600;
  cursor: pointer; list-style: none;
}
.bank-not-customer > summary::-webkit-details-marker { display: none; }
.bank-not-customer > summary::before { content: '+ '; font-weight: 900; }
.bank-not-customer[open] > summary::before { content: '− '; }
.bank-not-customer .modal-field, .bank-not-customer label.wide { display: grid; gap: 5px;
  margin-top: 12px; color: var(--muted); font-size: 12.5px; font-weight: 550; }
.bank-not-customer input[type="text"], .bank-not-customer input:not([type]) {
  width: 100%; height: 40px; padding: 0 11px; border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 10px;
  background: var(--surface-2); font: inherit; font-size: 14px; text-transform: none; letter-spacing: 0; font-weight: 400;
}
.bank-not-customer .modal-actions { padding: 12px 0 0; }
.bank-not-customer .modal-note { padding: 8px 0 0; }
/* Rol x huquq matritsasi: chap ustun yopishib turadi, rol ustunlari tor. */
.role-matrix-wrap { overflow-x: auto; margin: 0 0 14px; }
.role-matrix { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.role-matrix th, .role-matrix td { padding: 9px 10px; border-bottom: 1px solid var(--line); }
.role-matrix thead th { position: sticky; top: 0; background: var(--surface-2); text-align: center;
  color: var(--muted); font-size: 12px; font-weight: 550; }
.role-matrix thead th:first-child { text-align: left; }
.role-matrix thead small { display: block; margin-top: 2px; font-size: 11px;
  font-weight: 600; letter-spacing: 0; text-transform: none; }
.role-matrix tbody th { text-align: left; font-weight: 600; }
.role-matrix tbody th strong { display: block; font-size: 13px; }
.role-matrix tbody th small { color: var(--muted); font-size: 11px; font-weight: 500; }
.role-matrix td { text-align: center; }
.role-matrix-group th { background: var(--surface-2); color: var(--muted); font-size: 11px;
  font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.role-matrix-cell { display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; gap: 4px; cursor: pointer; }
.role-scroll-hint { display: none; }
.role-matrix-cell input { width: 17px; height: 17px; accent-color: var(--green); }
.role-matrix-locked { font-size: 11px; }
/* Qator ichidagi qaytarish amali: yorliq va tugma yonma-yon. */
.bank-inline-form { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bank-undo {
  min-height: 28px; padding: 3px 10px; border: 0; box-shadow: var(--shadow); border-radius: 8px;
  background: var(--surface); color: var(--muted); font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.bank-undo:hover { background: var(--surface-2); color: var(--ink); }
.bank-outflow { position: relative; display: inline-block; }
.bank-outflow > summary { list-style: none; display: inline-flex; align-items: center; }
.bank-outflow > summary::-webkit-details-marker { display: none; }
.bank-outflow[open] > summary { background: var(--surface-2); color: var(--ink); }
.bank-outflow-panel {
  position: absolute; z-index: 20; top: calc(100% + 6px); right: 0; display: grid; gap: 12px;
  width: 260px; padding: 12px; border: 0; border-radius: 12px;
  background: var(--card); box-shadow: var(--shadow-pop);
}
.bank-outflow-panel form { display: grid; gap: 8px; }
.bank-outflow-panel form + form { padding-top: 12px; border-top: 1px solid var(--line); }
.bank-outflow-panel label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); font-weight: 600; }
.bank-outflow-panel select { width: 100%; }
/* Bo'sh davr: uchta nol o'rniga bitta tinch izoh. */
.bank-empty-period {
  margin: 0 17px 12px; padding: 13px 15px; border: 1px dashed var(--line);
  border-radius: 10px; background: var(--paper); color: var(--muted); font-size: 12.5px;
}
/* Filtr grid ichida uzun maydon butun qatorni oladi. */
.trip-filter-grid label.wide { grid-column: 1 / -1; }
.trip-advanced-filter > summary {
  padding: 0 17px 14px; color: var(--green); font-size: 13px;
  font-weight: 600; cursor: pointer; list-style: none;
}
.trip-advanced-filter > summary::-webkit-details-marker { display: none; }
.trip-advanced-filter > summary::before { content: '+ '; font-weight: 700; }
.trip-advanced-filter[open] > summary::before { content: '− '; }
.trip-route-summary {
  display: grid; gap: 3px; margin: 0; padding: 12px 17px 0; color: var(--ink);
}
.trip-route-summary strong { font-size: 15px; }
.trip-route-summary small { color: var(--muted); font-size: 12px; }
/* Narx maydoni ostidagi izoh: kelishilgan narx bormi yoki qo'lda kerakmi. */
.route-price-note { font-size: 12px; font-weight: 500; text-transform: none; letter-spacing: 0;
  color: var(--muted); }
.route-price-note[data-tone="ok"] { color: var(--green-dark); }
.route-price-note[data-tone="warn"] { color: #7a5610; }
.trip-route-impact {
  margin: 0 17px; padding: 10px 13px; border: 0;
  border-radius: 10px; background: var(--green-soft);
  color: var(--green-dark); font-size: 13.5px; font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.customer-pager {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; padding: 10px 16px;
  border-top: 1px solid var(--line); color: var(--muted); font-size: 12.5px;
}
.customer-pager a { margin-left: 12px; font-weight: 600; }

.row-menu { position: relative; display: inline-block; }
.row-menu > summary {
  display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
  border: 0; border-radius: 9px; background: var(--card); box-shadow: var(--shadow);
  color: var(--muted); font-weight: 700; list-style: none; cursor: pointer;
}
.row-menu > summary:hover { background: var(--surface-2); color: var(--ink); }
.row-menu > summary::-webkit-details-marker { display: none; }
.row-menu[open] > summary { background: var(--surface-2); color: var(--ink); }
.row-menu-list {
  position: absolute; z-index: 20; top: calc(100% + 5px); right: 0; display: grid;
  min-width: 220px; overflow: hidden; padding: 4px; border: 0; border-radius: 12px;
  background: var(--card); box-shadow: var(--shadow-pop);
}
.row-menu-list a, .row-menu-list button {
  padding: 9px 12px; border: 0; border-radius: 8px; background: none;
  color: var(--ink); font-size: 13.5px; text-align: left; text-decoration: none; cursor: pointer;
}
.row-menu-list a:hover, .row-menu-list button:hover { background: var(--surface-2); }
.row-menu-list a.danger { color: var(--red); }
.record-actions { align-items: center; }
.record-actions .record-delete { color: var(--red); }

.customer-price-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 130px 110px; gap: 12px;
  align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--line); font-size: 13.5px;
}
.customer-price-row:last-of-type { border-bottom: 0; }
.customer-price-mark { font-weight: 700; }
.customer-price-value { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.customer-price-value i { color: var(--muted); font-size: 11.5px; font-style: normal; font-weight: 500; }
.customer-price-from { color: var(--muted); font-size: 12px; text-align: right; }
.section-label { margin: 18px 0 5px; font-size: 16px; }
.report-balance-scope { margin: 0 0 10px; font-size: 13px; }
.customer-price-empty { margin: 0; padding: 12px 16px; color: var(--muted); font-size: 13px; }
.customer-seller-sees { margin: 0; padding: 10px 16px 0; font-size: 14px; }
.customer-seller-sees b { color: var(--ink); }
.customer-price-history, .customer-revisions { padding: 8px 16px; border-top: 1px solid var(--line); }
.customer-price-history > summary, .customer-revisions > summary {
  color: var(--muted); font-size: 12px; font-weight: 700; cursor: pointer;
}
.customer-price-history p, .customer-revisions p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }

.customer-quiet {
  margin-top: 12px; overflow: hidden; border: 0; box-shadow: var(--shadow);
  border-radius: 16px; background: var(--surface-2);
}
.customer-secondary-section { margin-top: 14px; }
.customer-secondary-section > summary { cursor: pointer; padding: 14px 16px; font-size: 14px; font-weight: 650; }
.customer-secondary-section > summary > small { margin-left: 12px; font-weight: 400; color: var(--muted); font-size: 12px; }
.customer-profile-info { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 8px 20px 20px; }
.customer-profile-info > div { display: grid; gap: 5px; font-size: 13px; }
.customer-profile-info span { color: var(--muted); }
.customer-profile-info strong { overflow-wrap: anywhere; }
.customer-profile-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 0 20px 20px; }

/* Customer account: a compact balance followed directly by readable transactions. */
.customer-summary { margin-bottom: 14px; padding: 16px; border: 0; border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); }
.customer-summary-main { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.customer-summary-balance > span { display: block; color: var(--muted); font-size: 14px; font-weight: 600; }
.customer-summary-balance > strong { display: block; margin-top: 4px; color: var(--ink); font-size: 34px; font-weight: 650; line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.customer-summary-balance > strong i { font-size: 14px; font-weight: 400; font-style: normal; letter-spacing: 0; color: var(--muted); }
.customer-summary-balance.debt > strong { color: var(--balance-debt); }
.customer-summary-balance.advance > strong { color: var(--balance-credit); }
.customer-summary-balance.settled > strong, .ledger-balance.settled strong { color: var(--balance-settled); }
.customer-summary-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.customer-summary-actions .row-menu > summary { width: 40px; height: 40px; }
.customer-summary-meta { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: flex-start; font-size: 13px; margin-top: 9px; }
.customer-summary-meta > b { color: var(--red); }
.customer-account-breakdown > summary { cursor: pointer; color: var(--green-dark); font-weight: 500; }
.customer-account-breakdown-body { width: min(410px, calc(100vw - 66px)); padding: 10px 0 0; }
.customer-account-breakdown-body > p { margin: 0 0 8px; color: var(--muted); font-size: 12px; }
.customer-account-breakdown-body > div { display: flex; justify-content: space-between; gap: 16px; padding: 5px 0; }
.customer-account-breakdown-body b { text-align: right; font-variant-numeric: tabular-nums; }
.customer-account-breakdown-body small { color: var(--muted); }
.customer-account-view .customer-ledger-panel { overflow: visible; }
.customer-table-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 16px; border-bottom: 1px solid var(--line); }
/* Mijoz kartasi: «Excel» — hisob varaqasi (Habib 16.10: matn havola ko'rinmadi, katta tugma emas): kichik tugma, Davr yonida. */
.customer-table-toolbar .customer-statement-export { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px; margin-left: auto;
  border-radius: 9px; background: var(--surface); box-shadow: var(--shadow); color: var(--ink); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.customer-table-toolbar .customer-statement-export::before { content: ""; width: 14px; height: 14px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2'/%3E%3C/svg%3E") center/contain no-repeat; }
.customer-table-toolbar .customer-statement-export:hover { background: var(--surface-2); }
.customer-account-view .customer-tabs { display: flex; min-width: 0; gap: 18px; }
.customer-account-view .customer-tab { flex-shrink: 0; display: inline-flex; gap: 6px; align-items: center; min-height: 50px; border-bottom: 2px solid transparent; padding: 0 2px; font-size: 14px; font-weight: 600; color: var(--muted); text-decoration: none; }
.customer-account-view .customer-tab.active { color: var(--green-dark); border-bottom-color: var(--green); }
.customer-tab small { font-size: 12px; color: var(--muted); font-weight: 400; }
.customer-period-menu > summary { width: auto; min-height: 38px; padding: 0 8px; border: 0; font-size: 13px; font-weight: 500; }
.customer-period-menu > summary { box-shadow: none; }
.customer-period-menu .row-menu-list a[aria-current] { background: var(--surface-2); font-weight: 650; }
.customer-period-menu .customer-history-toggle { border-top: 1px solid var(--line); }
.customer-record-table { width: 100%; border-spacing: 0; border-collapse: separate; table-layout: fixed; }
.customer-record-table th { padding: 12px 16px; text-align: left; background: var(--surface-2); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 600; }
.customer-record-table th:first-child { width: 96px; }
.customer-record-table th:nth-child(2) { width: 132px; }
.customer-record-table th:nth-child(4) { width: 112px; }
.customer-record-table th:nth-child(5), .customer-record-table th:nth-child(6) { width: 156px; }
.customer-record-table th:last-child { width: 54px; padding-left: 0; padding-right: 12px; }
.customer-record-table td { padding: 15px 16px; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--ink); vertical-align: middle; overflow-wrap: anywhere; }
.customer-record-table tbody tr:last-child td { border-bottom: 0; }
.customer-record-row:hover { background: var(--surface-2); }
.customer-record-table .customer-record-date { color: var(--muted); font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.customer-record-type { display: inline-block; font-size: 13px; font-weight: 700; color: var(--muted); padding: 4px 8px; border-radius: 5px; background: var(--surface-2); }
.customer-record-type.payment { color: var(--green-dark); background: #e8f4ed; }
.customer-record-description > strong, .customer-record-reference { display: block; color: var(--ink); font-size: 15px; font-weight: 650; line-height: 1.4; text-decoration: none; }
.customer-record-reference:hover { text-decoration: underline; text-underline-offset: 3px; }
.customer-record-detail { display: block; color: var(--muted); font-size: 14px; line-height: 1.45; margin-top: 3px; }
.customer-record-provenance { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; }
.customer-record-warning { display: inline-block; margin-top: 4px; font-size: 12px; color: #825315; }
.customer-record-table .customer-record-amount { text-align: right; font-variant-numeric: tabular-nums; }
.customer-record-table td.customer-record-amount { font-size: 17px; font-weight: 700; }
.customer-record-row.payment .customer-record-amount { color: var(--green-dark); }
/* Habib 09.10: kim kiritdi, yozuvdan keyingi qoldiq va savdoning qarz qismi. */
.customer-record-table td.customer-record-actor { color: var(--ink); font-size: 14px; }
.customer-record-table .customer-record-balance { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.customer-record-table td.customer-record-balance { font-size: 15px; font-weight: 600; color: var(--muted); }
.customer-record-table td.customer-record-balance.advance { color: var(--balance-credit); }
.customer-record-settlement { display: block; margin-top: 3px; font-size: 14px; line-height: 1.45; color: var(--muted); }
.customer-record-debt { color: var(--balance-debt); font-weight: 650; }
.customer-record-advance { color: var(--balance-credit); font-weight: 650; }
.customer-record-table .customer-record-menu { padding: 10px 12px 10px 0; text-align: right; }
.customer-record-menu .row-menu > summary { border-color: transparent; width: 34px; height: 38px; background: transparent; }
.customer-record-menu .row-menu > summary:hover, .customer-record-menu .row-menu[open] > summary { background: var(--surface-2); }
.customer-record-row.historical td, .customer-record-row.historical strong { color: var(--muted); }
.customer-record-row.historical .customer-record-amount { font-weight: 500; }
.customer-period-total { margin: 0; padding: 12px 16px; text-align: right; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.customer-history-notice { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 0; padding: 10px 16px; color: var(--muted); background: var(--surface-2); font-size: 13px; }
.customer-reference-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 14px; margin-top: 16px; }
.customer-reference-grid .customer-secondary-section { margin-top: 0; background: #fff; }
.customer-reference-grid .customer-secondary-section > summary { padding: 14px 16px; min-height: 50px; font-size: 14px; }
@media (max-width: 980px) { .customer-reference-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .customer-summary { padding: 16px; margin-bottom: 12px; }
  .customer-summary-main { align-items: flex-start; gap: 12px; }
  .customer-summary-balance > strong { font-size: 27px; }
  .customer-summary-actions { width: 100%; }
  .customer-summary-actions .row-menu { margin-left: auto; }
  .customer-summary-actions .admin-primary, .customer-summary-actions .admin-secondary { min-height: 44px; }
  .customer-table-toolbar { gap: 6px; padding: 0 10px; }
  .customer-account-view .customer-tabs { gap: 12px; }
  .customer-account-view .customer-tab { min-height: 46px; font-size: 13px; gap: 3px; }
  .customer-period-menu > summary { padding: 0 4px; }
  /* Tablar o'z qatorida suriladi; Davr tanlovi ularni yopmaydi (alohida qator). */
  .customer-table-toolbar { flex-wrap: wrap; gap: 0 6px; }
  .customer-account-view .customer-tabs { flex: 1 0 100%; overflow-x: auto; }
  .customer-period-menu { margin-left: auto; }
  .customer-record-table, .customer-record-table tbody { display: block; }
  .customer-record-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .customer-record-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(100px,auto) 32px; grid-template-areas: 'kind amount menu' 'description description description' 'actor balance balance' 'date date date'; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
  .customer-record-table .customer-record-row td { padding: 0; border: 0; }
  .customer-record-kind { grid-area: kind; align-self: center; }
  .customer-record-date { grid-area: date; font-size: 12px !important; }
  .customer-record-description { grid-area: description; }
  .customer-record-amount { grid-area: amount; align-self: center; }
  .customer-record-actor { grid-area: actor; font-size: 13px !important; color: var(--muted) !important; }
  .customer-record-balance { grid-area: balance; font-size: 13px !important; }
  .customer-record-balance::before { content: 'Qoldiq '; font-weight: 500; }
  .customer-record-menu { grid-area: menu; align-self: center; }
  .customer-record-menu .row-menu > summary { width: 36px; height: 44px; }
  .customer-record-detail { font-size: 14px; }
  .customer-reference-grid { gap: 10px; }
}
@media (max-width: 360px) {
  .customer-table-toolbar { flex-wrap: wrap; }
  .customer-account-view .customer-tabs { width: 100%; justify-content: space-between; }
  .customer-period-menu { margin-left: auto; }
}

.attach-trip {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) 90px 158px; gap: 12px;
  align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--line); font-size: 13.5px;
}
.attach-trip:last-child { border-bottom: 0; }
.attach-trip-main small { display: block; color: var(--muted); font-size: 11.5px; }
.attach-trip-tons { color: var(--muted); text-align: right; font-variant-numeric: tabular-nums; }
.attach-trip-price { display: flex; align-items: center; gap: 7px; }
.attach-trip-price input {
  width: 100%; min-width: 0; padding: 7px 9px; border: 1px solid var(--line);
  border-radius: 8px; font: inherit; text-align: right; font-variant-numeric: tabular-nums;
}
.attach-trip-price i { color: var(--muted); font-size: 11px; font-style: normal; white-space: nowrap; }
.confirm-rows { border-top: 1px solid var(--line); }
.confirm-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 90px 150px 140px; gap: 12px;
  align-items: center; padding: 9px 16px; border-bottom: 1px solid var(--line); font-size: 13px;
}
.confirm-row small { display: block; color: var(--muted); font-size: 11.5px; }
.confirm-row .num { text-align: right; font-variant-numeric: tabular-nums; }

/* Eski detail komponenti hali boshqa oqimlarda ishlatiladi. */
.ledger-balance { min-width: 170px; padding: 14px; border-radius: 12px; background: var(--red-soft); text-align: right; }
.ledger-balance.advance { background: var(--blue-soft); }
.ledger-balance.settled { background: var(--paper); }
.ledger-balance small, .ledger-balance strong { display: block; }
.ledger-balance small { margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.ledger-balance strong { font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; }
.ledger-balance.debt strong { color: var(--balance-debt); }
.ledger-balance.advance strong { color: var(--balance-credit); }

/* ----------------------------------------------------------------- login */
body.login {
  display: grid; place-items: center; min-height: 100vh; padding: 16px; background: var(--bg);
}
body.login form, body.login .login-card {
  width: min(360px, calc(100vw - 32px)); padding: 24px; border: 0;
  border-radius: 18px; background: var(--surface); display: grid; gap: 14px;
  box-shadow: var(--shadow);
}
body.login .brand-badge {
  width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px;
  background: var(--surface-2); box-shadow: 0 0 0 1px var(--line);
}
body.login .brand-badge img { width: 38px; height: auto; display: block; object-fit: contain; }
body.login h1 { margin: 0; font-size: 22px; font-weight: 650; letter-spacing: -.02em; }
body.login .sub { margin: -8px 0 0; color: var(--muted); font-size: 13px; }
body.login label {
  display: grid; gap: 5px; color: var(--muted); font-size: 12.5px; font-weight: 550;
}
body.login input {
  height: 42px; padding: 0 11px; border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 10px;
  background: var(--surface-2); color: var(--ink); outline: 0; font: inherit; font-size: 15px;
  text-transform: none; letter-spacing: 0;
}
body.login input:focus { box-shadow: 0 0 0 2px var(--ink); background: var(--surface); }
body.login .admin-primary { min-height: 42px; }
/* Remote MCP konsenti (/oauth/authorize, BR-ACCESS-041): radio tanlov va ikki tugma. */
body.login .oauth-choice { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
body.login .oauth-choice legend { margin-bottom: 4px; color: var(--muted); font-size: 12.5px; font-weight: 550; }
body.login .oauth-choice label {
  display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px;
  box-shadow: 0 0 0 1px var(--line); color: var(--ink); font-size: 14px; font-weight: 500;
}
body.login .oauth-choice input { height: 18px; width: 18px; margin: 2px 0 0; padding: 0; box-shadow: none; flex: none; }
body.login .oauth-choice small { display: block; color: var(--muted); font-size: 12.5px; }
body.login .oauth-actions { display: flex; gap: 8px; }
body.login .oauth-actions button { flex: 1; min-height: 42px; }
body.login .notice-card { margin: 0; }
body.login .login-card { width: min(460px, calc(100vw - 32px)); }

.admin-actions-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.admin-actions-row a { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.admin-filter-bar {
  display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin: 0 0 12px;
  padding: 14px 16px; border: 0; border-radius: 16px; background: var(--surface); box-shadow: var(--shadow);
}
.admin-filter-bar .modal-grid {
  flex: 1 1 680px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px; padding: 0;
}
.admin-filter-bar .modal-actions { flex: 0 0 auto; padding: 0; }
.admin-filter-bar .filter-search { grid-column: span 2; }
.admin-panel .admin-filter-bar { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.notice-card {
  margin: 12px 0; padding: 14px 16px; border: 0; border-radius: 14px;
  background: var(--green-soft); color: var(--ink);
}
.notice-card strong { font-size: 15px; font-weight: 650; }
.notice-card p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.notice-card code { padding: 2px 5px; border-radius: 5px; background: #fff; color: var(--green-dark); }
/* Nusxalanadigan qiymat (Claude manzili, Agent kaliti; BR-ACCESS-041): matn va yonida tugma, telefonda tugma pastga tushadi. */
.copy-field { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 0; }
.copy-field code { flex: 1 1 220px; min-width: 0; padding: 9px 11px; border-radius: 8px; background: #fff;
  color: var(--green-dark); font-size: 13px; word-break: break-all; user-select: all; }
.copy-field button { flex: none; min-height: 36px; }
.connect-steps { margin: 10px 0 0; padding-left: 20px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.connect-steps li + li { margin-top: 4px; }
.management-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px;
}
/* 05.10 keng ekran: karta cho'zilmaydi, ustun qo'shiladi (~360px dan keng karta). */
@media (min-width: 1440px) { .management-grid { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); } }
.management-card {
  min-height: 112px; display: flex; flex-direction: column; gap: 6px; padding: 16px;
  border: 0; border-radius: 16px; background: var(--surface); box-shadow: var(--shadow);
  color: var(--ink); text-decoration: none;
}
.management-card:hover { background: var(--surface-2); }
.management-card strong { font-size: 15px; font-weight: 650; }
.management-card span { color: var(--muted); font-size: 13px; line-height: 1.45; }
.management-card em { margin-top: auto; color: var(--green); font-size: 13px; font-style: normal; font-weight: 600; }
.management-count {
  margin-left: 6px; padding: 1px 7px; border-radius: 99px; background: var(--amber-soft);
  color: var(--amber); font-size: 12px; font-weight: 650; font-variant-numeric: tabular-nums; vertical-align: 1px;
}
.management-section + .management-section { margin-top: 24px; }
.management-section h2 {
  margin: 0; color: var(--muted); font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
}
.period-switch {
  display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 16px 0;
}
.period-switch a {
  min-height: 32px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0 12px; border: 0; border-radius: 9px; box-shadow: var(--shadow);
  background: var(--surface); color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 550;
}
.period-switch a:hover { background: var(--surface-2); color: var(--ink); }
.period-switch a.active {
  background: var(--btn); color: var(--btn-ink); box-shadow: none;
}
.trip-detail-card {
  margin: 12px 0; overflow: hidden; border: 0; border-radius: 16px;
  background: var(--surface); box-shadow: var(--shadow);
}
.trip-detail-titlebar {
  min-height: 58px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 14px 20px; border-bottom: 1px solid var(--line);
}
.trip-detail-titlebar > strong { font-size: 16px; font-weight: 650; letter-spacing: -.01em; }
.trip-detail-signals { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.trip-detail-primary {
  display: grid; grid-template-columns: minmax(190px, 1fr) minmax(240px, 1.2fr) auto;
  align-items: center; gap: 28px; padding: 24px 20px 18px;
}
.trip-detail-value { min-width: 0; }
.trip-detail-value strong, .trip-detail-value small, .trip-detail-value span { display: block; }
.trip-detail-value strong {
  color: var(--ink); font-size: clamp(26px, 2.6vw, 40px); font-weight: 650; line-height: 1.05;
  letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}
.trip-detail-value small { margin-top: 7px; color: var(--muted); font-size: 12px; }
.trip-detail-value span { margin-top: 4px; color: var(--muted); font-size: 13px; font-weight: 600; }
.trip-detail-actions { display: flex; align-self: start; gap: 7px; }
.trip-detail-identity {
  display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0 20px 20px;
  color: var(--muted); font-size: 13px; font-weight: 600; overflow-wrap: anywhere;
}
.trip-detail-identity span { color: var(--muted); }
.trip-detail-facts { margin: 0; border-top: 1px solid var(--line); }
.trip-detail-facts > div {
  display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px;
  padding: 11px 20px; border-bottom: 1px solid var(--line);
}
.trip-detail-facts > div:last-child { border-bottom: 0; }
.trip-detail-facts dt {
  color: var(--muted); font-size: 13px; font-weight: 550;
}
.trip-detail-facts dd { margin: 0; color: var(--ink); font-size: 13.5px; line-height: 1.45; overflow-wrap: anywhere; }
.trip-stock-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trip-detail-context-note {
  margin: 12px 0; padding: 12px 16px; border: 0; border-radius: 12px;
  background: var(--surface-2); color: var(--muted); font-size: 13px; line-height: 1.5;
}
.mobile-trip-card { color: var(--ink); text-decoration: none; }

@media (max-width: 1050px) {
  .admin-shell { grid-template-columns: 198px minmax(0, 1fr); }
  .admin-metrics { grid-template-columns: repeat(2, 1fr); }
  .trip-filter-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
}
@media (max-width: 720px) {
  .admin-shell { display: block; }
  .admin-sidebar { display: none; }
  .admin-shell { padding: 12px; }
  .admin-topbar { min-height: 0; padding: 4px 2px 12px; }
  .admin-topbar.has-subtitle { min-height: 0; }
  .admin-topbar h1 { font-size: 22px; }
  .admin-subtitle { margin-top: 3px; font-size: 13px; }
  .admin-content { padding: 0 0 94px; }
  .trip-page-actions { justify-content: stretch; }
  .trip-page-actions .admin-primary { width: 100%; min-height: 48px; font-size: 13px; }
  .trip-dialog { width: calc(100vw - 20px); max-height: calc(100vh - 24px); }
  .trip-dialog-card { max-height: calc(100vh - 24px); }
  [data-trip-dialog] .trip-dialog-card { height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); }
  [data-trip-create-form] > .modal-actions {
    display: grid; grid-template-columns: 1fr 1fr; padding: 10px 14px;
  }
  .role-scroll-hint { display: block; margin: 10px 14px; color: var(--muted); font-size: 12px; }
  .trip-dialog-card > header { min-height: 68px; padding: 12px 14px; }
  .trip-dialog-card > header h2 { font-size: 18px; }
  .trip-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px; }
  .trip-detail-primary { grid-template-columns: 1fr 1fr; }
  .trip-detail-actions { grid-column: 1 / -1; }
  .trip-filter-grid input, .trip-filter-grid select { height: 46px; font-size: 14px; }
  .trip-filter-actions { align-items: stretch; flex-direction: column; padding: 0 14px 14px; }
  .trip-filter-actions .admin-primary, .trip-filter-actions .admin-secondary {
    width: 100%; min-height: 46px;
  }
  .filter-chips { padding: 0 14px 14px; }
  .filter-chip { min-height: 36px; }
  .customer-position { grid-template-columns: 1fr; }
  .customer-profile-info { grid-template-columns: 1fr; }
  .customer-secondary-section > summary > small { display: block; margin: 5px 0 0; }
  .customer-price-row { grid-template-columns: minmax(0, 1fr) 116px; }
  .customer-price-from { display: block; grid-column: 1 / -1; text-align: left; }
  .attach-trip { grid-template-columns: 22px minmax(0, 1fr) 132px; }
  .attach-trip-tons { display: none; }
  .confirm-row { grid-template-columns: minmax(0, 1fr) 124px; }
  .confirm-row .num:nth-of-type(2) { display: none; }
  .row-menu-list { min-width: 190px; }
  .admin-metrics { grid-template-columns: 1fr 1fr; gap: 8px; }
  .secondary-metrics { grid-template-columns: 1fr 1fr; margin-top: 8px; }
  .secondary-metrics .metric-card:last-child { grid-column: 1 / -1; }
  .admin-metrics.three { grid-template-columns: 1fr 1fr; }
  .admin-metrics.three > :first-child { grid-column: 1 / -1; }
  .metric-card { padding: 14px; }
  .metric-card strong { font-size: 19px; }
  .metric-card.primary strong { font-size: 26px; }
  .admin-panel { margin-top: 10px; border-radius: 14px; }
  details.admin-panel > summary, .admin-panel-title { min-height: 52px; padding: 12px 14px; }
  details.admin-panel > summary { font-size: 15px; }
  .modal-grid { grid-template-columns: 1fr; gap: 14px; padding: 15px 14px; }
  .modal-grid label { font-size: 13px; }
  .modal-grid input, .modal-grid select { height: 48px; padding: 0 12px; font-size: 15px; }
  .modal-grid .wide { grid-column: auto; }
  .form-extra > summary { min-height: 48px; font-size: 12px; }
  .derived-value { min-height: 48px; font-size: 14px; }
  .modal-actions { align-items: stretch; flex-direction: column; padding: 0 14px 14px; }
  .modal-actions .admin-primary, .modal-actions .admin-secondary,
  .modal-actions .admin-danger { width: 100%; min-height: 48px; font-size: 13px; }
  .modal-note { margin: 0 14px 14px; font-size: 12.5px; }
  .admin-actions-row { display: grid; grid-template-columns: 1fr; }
  .admin-actions-row .admin-secondary { min-height: 48px; }
  .admin-filter-bar { display: block; padding: 14px; }
  .admin-filter-bar .modal-grid { display: grid; padding: 0; }
  .admin-filter-bar .modal-actions { padding: 12px 0 0; }
  .admin-filter-bar .filter-search { grid-column: auto; }
  .admin-panel .admin-filter-bar { padding: 14px; }
  .period-switch { padding: 14px 14px 0; overflow-x: auto; flex-wrap: nowrap; }
  .period-switch a { flex: 0 0 auto; min-height: 40px; font-size: 13px; }
  .trip-detail-titlebar { align-items: flex-start; flex-direction: column; padding: 14px; }
  .trip-detail-signals { justify-content: flex-start; }
  .trip-detail-primary { grid-template-columns: 1fr; gap: 20px; padding: 20px 14px 16px; }
  .trip-detail-value strong { font-size: 29px; }
  .trip-detail-actions { grid-column: auto; display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .trip-detail-actions .admin-secondary, .trip-detail-actions .admin-danger {
    width: 100%; min-height: 48px;
  }
  .trip-detail-identity { padding: 0 14px 16px; font-size: 12px; }
  .trip-detail-facts > div { grid-template-columns: 1fr; gap: 4px; padding: 12px 14px; }
  .trip-stock-metrics { grid-template-columns: 1fr; }
  .confirm-grid { grid-template-columns: 1fr; padding: 4px 14px 14px; }
  .confirm-grid > div:nth-child(odd) { padding-right: 0; }
  .confirm-grid > .wide { grid-column: auto; }
  .confirm-grid dt { font-size: 12.5px; }
  .confirm-grid dd { font-size: 14px; }
  .change-table { padding: 2px 14px 14px; }
  .change-row { grid-template-columns: 1fr 22px 1fr; padding: 10px 0; }
  .change-row > strong { grid-column: 1 / -1; }
  .change-row > span { font-size: 13px; }
  .confirmation-reason { margin: 0 14px 14px; }
  .sale-correction-item { grid-template-columns: 1fr; }
  .admin-table-row { min-width: 1050px; font-size: 11px; }
  .admin-table-row.heading { font-size: 11px; }
  .desktop-sales-table { display: none; }
  .desktop-trips-table { display: none; }
  .desktop-activity-table { display: none; }
  .desktop-customers-table { display: none; }
  .desktop-cash-table { display: none; }
  .desktop-report-table { display: none; }
  .desktop-audit-table { display: none; }
  .mobile-sales-list { display: grid; gap: 10px; padding: 12px; }
  .mobile-trips-list { display: grid; gap: 10px; padding: 12px; }
  .mobile-activity-list { display: grid; gap: 10px; padding: 12px; }
  .mobile-customers-list { display: grid; gap: 10px; padding: 12px; }
  .mobile-cash-list { display: grid; gap: 10px; padding: 12px; }
  .mobile-report-list { display: grid; gap: 8px; padding: 12px; }
  .mobile-audit-list { display: grid; gap: 10px; padding: 12px; }
  .mobile-sale-card {
    display: grid; gap: 5px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface); color: var(--ink); text-decoration: none;
  }
  .mobile-sale-card-top, .mobile-sale-card-bottom {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-sale-card-top time { color: var(--muted); font-size: 11px; }
  .mobile-sale-card > strong { font-size: 16px; }
  .mobile-sale-card > span:not(.mobile-sale-card-top):not(.mobile-sale-card-bottom) {
    color: var(--muted); font-size: 12px;
  }
  .mobile-sale-card-bottom { margin-top: 5px; }
  .mobile-sale-card-bottom small { color: var(--muted); font-size: 11px; }
  .mobile-sale-card-bottom b { color: var(--green-dark); font-size: 14px; }
  .mobile-sale-card > small { color: #8b5a3c; font-size: 11px; }
  .mobile-sale-balance { font-weight: 800; }
  .mobile-sale-balance.debt { color: var(--balance-debt); }
  .mobile-sale-balance.advance { color: var(--balance-credit); }
  .mobile-sale-balance.settled { color: var(--balance-settled); }
  .mobile-customer-card {
    display: grid; gap: 6px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface); color: var(--ink); text-decoration: none;
  }
  .mobile-customer-card-top, .mobile-customer-card-bottom {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-customer-card-top strong { font-size: 16px; overflow-wrap: anywhere; }
  .mobile-customer-card > small, .mobile-customer-card-bottom small {
    color: var(--muted); font-size: 11px;
  }
  .mobile-customer-card > span:not(.mobile-customer-card-top):not(.mobile-customer-card-bottom) {
    color: var(--muted); font-size: 12px;
  }
  .mobile-customer-card-bottom b { color: var(--green-dark); font-size: 11px; }
  .mobile-cash-card, .mobile-report-card {
    display: grid; gap: 8px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface);
  }
  .mobile-cash-card > span, .mobile-report-card > span {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-cash-card strong, .mobile-report-card strong { font-size: 14px; }
  .mobile-cash-card small, .mobile-report-card small { color: var(--muted); font-size: 11px; }
  .mobile-cash-card > b, .mobile-report-card b { color: var(--green-dark); font-size: 14px; }
  .mobile-trip-card {
    display: grid; gap: 5px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface);
  }
  .mobile-trip-card-top, .mobile-trip-card-bottom {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-trip-card-top time { color: var(--muted); font-size: 11px; }
  .mobile-trip-card > strong { font-size: 16px; }
  .mobile-trip-card > span:not(.mobile-trip-card-top):not(.mobile-trip-card-bottom) {
    color: var(--muted); font-size: 12px;
  }
  .mobile-trip-card > b { margin-top: 3px; color: var(--green-dark); font-size: 14px; }
  .mobile-trip-card-bottom small { color: var(--muted); font-size: 11px; }
  .mobile-trip-card-bottom .negative { color: var(--red); font-size: 11px; }
  .mobile-activity-card {
    display: grid; gap: 6px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface);
  }
  .mobile-activity-card-top, .mobile-activity-card-bottom {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-activity-card-top time, .mobile-activity-card > small,
  .mobile-activity-card-bottom small { color: var(--muted); font-size: 11px; }
  .mobile-activity-card > strong { font-size: 16px; overflow-wrap: anywhere; }
  .mobile-activity-card > span:not(.mobile-activity-card-top):not(.mobile-activity-card-bottom) {
    color: var(--muted); font-size: 12px; overflow-wrap: anywhere;
  }
  .mobile-activity-card-bottom { margin-top: 5px; }
  .mobile-activity-card-bottom b { color: var(--green-dark); font-size: 14px; }
  .mobile-audit-card {
    display: grid; gap: 6px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface);
  }
  .mobile-audit-card-top {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-audit-card-top time { color: var(--muted); font-size: 11px; }
  .mobile-audit-card > strong { font-size: 15px; overflow-wrap: anywhere; }
  .mobile-audit-card > span:not(.mobile-audit-card-top) {
    color: var(--muted); font-size: 12px; overflow-wrap: anywhere;
  }
  .mobile-audit-card > span b { color: var(--ink); }
  .mobile-audit-card > small {
    color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere;
  }
  .mobile-record-card {
    display: grid; gap: 6px; padding: 14px; border: 0; box-shadow: var(--shadow);
    border-radius: 14px; background: var(--surface);
  }
  .mobile-record-card-top {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-record-card-top time { color: var(--muted); font-size: 11px; }
  .mobile-record-card > strong { font-size: 17px; overflow-wrap: anywhere; }
  .mobile-record-card > span:not(.mobile-record-card-top) {
    color: var(--muted); font-size: 12px; overflow-wrap: anywhere;
  }
  .mobile-record-card > span b { color: var(--ink); }
  .mobile-record-card > small {
    color: #8b5a3c; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere;
  }
  .staff-row { grid-template-columns: 36px minmax(0, 1fr) 12px; padding: 12px 14px; }
  .staff-row .staff-state { grid-column: 2; grid-row: 2; justify-self: start; }
  .staff-row .staff-state:empty { display: none; }
  .staff-row .staff-chevron { grid-column: 3; grid-row: 1 / span 2; }
  .staff-avatar { width: 36px; height: 36px; grid-row: 1 / span 2; }
  .pin-field input { min-height: 46px; font-size: 16px; }
  .staff-line { flex-direction: column; align-items: stretch; }
  .staff-line > button, .staff-line > a { text-align: center; min-height: 44px; }
  .flash { font-size: 13px; }
  .management-grid { grid-template-columns: 1fr; gap: 10px; }
  .management-card { min-height: 0; padding: 16px; }

  /* Telefonda hech bir matn 11px dan kichik emas (F9). QA-2'da chip/yorliqlar
     desktopda ham 12px+; bu ro'yxat faqat hali kichik qolganlarni ko'taradi. */
  .role-matrix thead small { font-size: 11px; }
  .trip-doc-ttn, .trip-ticketless, .trip-ticket-missing { font-size: 11px !important; }

  /* Seller ilovasidagi kabi: ikonka tepada, sodda label pastda. */
  .admin-mobile-nav {
    position: fixed; z-index: 50; left: 0; right: 0; bottom: 0;
    display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
    min-height: 68px; padding: 6px 2px max(6px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--line); background: var(--surface);
    box-shadow: 0 -6px 20px rgb(23 32 25 / 6%);
  }
  .admin-mobile-nav-item {
    position: relative;
    min-width: 0; min-height: 52px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 3px; padding: 4px 0;
    border: 0; border-radius: 10px; background: transparent; color: var(--muted);
    text-align: center; text-decoration: none; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .admin-mobile-nav-item svg {
    width: 24px; height: 24px; fill: none; stroke: currentColor;
    stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
  }
  .admin-mobile-nav-item span {
    max-width: 100%; overflow: hidden; color: inherit; font-size: 11px;
    font-weight: 600; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap;
  }
  .admin-mobile-nav-item.active { color: var(--green); background: var(--surface-2); }
  .mobile-activity-card-bottom b.negative { color: var(--red); }
  .mobile-activity-card-bottom b.neutral { color: var(--ink); }
  .admin-mobile-badge {
    position: absolute; right: 7px; top: 0; min-width: 18px; padding: 1px 5px;
    border-radius: 99px; background: var(--amber-soft); color: var(--amber); font-size: 11px;
    font-style: normal; font-weight: 700; box-shadow: 0 0 0 2px var(--surface);
  }
  /* Tizim shrifti Arialdan kengroq: faol yorliq qalinlashsa ham «Bosh sahifa» kesilmasin. */
  .admin-mobile-nav-item.active span { color: var(--ink); font-weight: 650; letter-spacing: -.01em; }
  .admin-mobile-more-wrap { min-width: 0; }
  .admin-mobile-more-wrap > summary { list-style: none; }
  .admin-mobile-more-wrap > summary::-webkit-details-marker { display: none; }
  .admin-mobile-more {
    position: fixed; z-index: 60; left: 12px; right: 12px;
    bottom: calc(76px + env(safe-area-inset-bottom)); display: grid; gap: 4px;
    max-height: calc(100dvh - 110px); overflow-y: auto;
    padding: 12px; border: 0; border-radius: 18px;
    background: var(--surface); box-shadow: 0 18px 48px rgb(23 32 25 / 22%), 0 0 0 1px var(--line);
  }
  .admin-mobile-more > strong { padding: 5px 8px 9px; font-size: 11px; font-weight: 600; color: var(--muted);
    letter-spacing: .08em; text-transform: uppercase; }
  .admin-mobile-more > a, .admin-mobile-more button {
    min-height: 48px; display: flex; align-items: center; width: 100%; padding: 0 12px;
    border: 0; border-radius: 10px; background: var(--surface-2); color: var(--ink);
    font-size: 14px; font-weight: 550; text-align: left; text-decoration: none;
  }
  .admin-mobile-more > a[aria-current="page"] { box-shadow: 0 0 0 1px var(--line); font-weight: 650; }
  .admin-more-badge {
    margin-left: auto; min-width: 22px; padding: 1px 7px; border-radius: 99px;
    background: var(--amber-soft); color: var(--amber); font-size: 12px; font-style: normal;
    font-weight: 700; text-align: center; font-variant-numeric: tabular-nums;
  }
  .admin-mobile-more form { margin: 0; }
  .admin-mobile-more button { color: var(--red); cursor: pointer; }
}
@media (prefers-reduced-motion: no-preference) {
  button, .admin-sidebar nav a, .admin-mobile-nav-item {
    transition: background .15s ease, box-shadow .15s ease, color .15s ease;
  }
}

.trip-pager{display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin:0;padding:10px 16px;font-size:13px;color:var(--muted)}
@media(max-width:720px){.trip-pager{padding:10px 14px}}
/* 6 tabli pastki menyu 360–384px da «Bosh sahifa»ni kesmasin: faqat nav yorliqlari 10px. */
@media(max-width:384px){.admin-mobile-nav-item span{font-size:10px}}
.trip-pager .pager-count{color:var(--muted)}
.trip-pager .pager-note{opacity:.8}
.trip-pager .pager-steps{display:flex;gap:8px}
.trip-pager .pager-step{padding:4px 10px;border:1px solid var(--line);
  border-radius:6px;text-decoration:none;color:var(--text)}
.trip-pager .pager-step.disabled{opacity:.4;border-style:dashed}

.registry-choices{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.registry-choice{display:flex;align-items:center;gap:8px;padding:8px 10px;
  border:1px solid var(--line);border-radius:6px;cursor:pointer}
.registry-choice:hover{background:var(--hover,rgba(0,0,0,.03))}
.registry-choice input{margin:0}

.access-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px}
.access-tabs a,.access-members a{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);text-decoration:none}
.access-tabs a[aria-current]{border-color:#25855a;background:#edf7f0;box-shadow:inset 0 0 0 1px #25855a}
.access-tabs small{display:block;margin-top:5px;color:var(--muted)}.access-editor{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;max-width:980px}
.access-editor header p,.access-note{color:var(--muted);line-height:1.6;font-size:13px}.access-editor h3{font-size:15px;margin:24px 0 8px;border-bottom:2px solid var(--line);padding-bottom:12px}
.access-row{display:grid;grid-template-columns:1fr 210px;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.access-row p{font-size:13px;color:var(--muted);line-height:1.5;margin:4px 0}.access-row small{display:block;color:var(--muted);font-size:12px}
.access-choice{display:flex;align-items:flex-end;flex-direction:column;gap:6px}.access-choice input[type=checkbox]{width:24px;height:24px;accent-color:#25855a}.access-choice select{width:100%;min-height:44px;border-radius:8px;padding:8px;border:1px solid var(--line);background:white}
.access-choice output{font-size:12px;color:var(--muted);text-align:right}.access-row[data-access-allowed=true] output{color:var(--green-dark)}.access-save{position:sticky;bottom:0;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--line);margin-top:20px}.access-save span{font-size:13px;color:var(--muted)}
.access-members{max-width:980px;margin:24px 0}.access-members a{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.access-members span{font-size:13px;color:var(--muted)}
@media(max-width:680px){.access-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.access-editor{padding:16px}.access-row{grid-template-columns:1fr;gap:10px}.access-choice{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.access-choice select{width:auto;min-width:180px}.access-save{bottom:78px;flex-wrap:wrap}.access-members a{flex-direction:column}.access-choice output{text-align:left}}

.match-payment-row{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}.match-payment-row span{flex:1}.match-payment-row small{display:block;color:var(--muted);margin-top:5px}.match-payment-row input[type=radio]{width:22px;height:22px;accent-color:#25855a}.match-new-payment{margin:24px 0;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.match-new-payment summary{cursor:pointer;font-weight:600}.match-new-payment label{display:block;margin:12px 0}.match-new-payment input,.match-new-payment select{display:block;width:100%;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:8px}
@media(max-width:680px){.match-payment-row{flex-wrap:wrap}.match-payment-row a{font-size:12px}.match-payment-row form{width:100%}}
.sheet-destination-content{padding:18px;overflow-wrap:anywhere}.sheet-destination-content>p:first-child{margin-top:0}.sheet-destination-content .admin-actions-row{flex-wrap:wrap;margin-bottom:0}.sheet-destination-content form{margin:0}

.destination-inline{display:flex;align-items:center;gap:14px;width:100%;margin:0;flex-wrap:wrap}.destination-inline-info{flex:1;min-width:130px}.destination-inline-info>strong{display:block}.destination-inline-info small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.destination-inline-actions{display:flex;align-items:center;gap:7px}.route-confirm{border:0;border-radius:8px;background:#31794f;color:white;font:inherit;font-size:12px;font-weight:650;min-height:38px;padding:8px 13px;cursor:pointer}.route-confirm:disabled{opacity:.6;cursor:wait}.route-text-button{border:0;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:12px;min-height:36px;padding:5px;cursor:pointer}.destination-inline [data-inline-price]{width:145px;min-height:36px;border:1px solid var(--line);border-radius:6px;padding:7px 9px;margin-top:6px;background:white;font:inherit;font-size:13px}.destination-inline-error{flex-basis:100%;color:var(--red);white-space:normal}.destination-inline-done{margin-left:auto;color:#31794f;font-size:12px}.destination-is-done{outline:none;opacity:.8}.route-workbar{display:flex;align-items:center;gap:16px;margin:16px 0 8px}.route-workbar>strong{margin-right:auto}.route-workbar form{margin:0}.route-filter-disclosure{margin:0 0 14px;color:var(--muted);font-size:13px}.route-filter-disclosure>summary{cursor:pointer;min-height:32px}.route-filter-disclosure .trip-filter-panel{margin-top:10px}.route-mobile-card{border:1px solid var(--line);background:#fff;border-radius:12px;margin:10px 0;padding:14px}.route-mobile-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.route-mobile-summary a{color:inherit;text-decoration:none}.route-mobile-summary small{display:block;color:var(--muted);margin-top:4px;font-size:11px}
@media(max-width:680px){.route-workbar{gap:8px}.route-workbar .admin-secondary{padding:9px;font-size:12px}.destination-inline{gap:8px}.destination-inline-info{min-width:135px}.destination-inline-actions{gap:4px}.route-confirm{min-height:42px}.destination-inline-info small{font-size:11px}.route-mobile-card .destination-inline-info{min-width:130px}}
@media(max-width:680px){.route-focused-list>.admin-panel{background:transparent;border:0;padding:0;box-shadow:none}.route-focused-list .mobile-trips-list{padding:0}.route-focused-list .route-mobile-card:first-child{margin-top:0}}
.bank-sheet-cell{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bank-sheet-cell select{max-width:100%;min-height:36px;margin-top:6px;border:1px solid var(--line);border-radius:6px;padding:6px}.bank-records-head>form{margin:0}.bank-sheet-cell .destination-inline-info{min-width:110px}
.route-factory-price{margin:-4px 0 12px;color:var(--muted);font-size:12px}
/* W2-3: majburiy maydon belgisi; JS required'ni almashtirsa ham to'g'ri (CSS :has). */
.required-mark{display:none;color:#b42318;font-weight:800}
label:has(> input:required, > select:required, > textarea:required, > .typeahead input:required) > .field-label > .required-mark{display:inline}
/* W2-2: qayta ochilgan formadagi xato va odatdan tashqari qiymat tasdig'i. */
.form-error,.form-warning{margin:12px 17px 0}
.form-warning{display:block}.form-warning ul{margin:6px 0 0;padding-left:18px}
form > .confirm-check{display:flex;gap:8px;align-items:center;margin:10px 17px 0;font-size:13px;font-weight:700}
.list-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;color:var(--muted);font-size:13px}
.list-pager a{font-weight:800}
.near-day-payments{margin-top:12px}
.expense-split-fields{border:1px solid var(--line);border-radius:9px;padding:6px 10px 0;margin:0}
.expense-split-fields>legend{padding:0 4px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.expense-split-fields .modal-grid{padding:6px 0}
.trip-revision-change{display:block;color:var(--muted)}
/* Kassa kirim/chiqim: maydon, izoh va tugmalar bitta chap chiziqda (forma o'z paddingiga ega). */
.cash-entry-form>.modal-grid{padding:0;align-items:end}
.cash-entry-form>.access-note{margin:16px 0}
.cash-entry-form>.modal-actions{padding:0}
.cash-entry-form>.flash,.cash-entry-form>.confirm-check{margin:0 0 16px}
/* QA-2: yuqoridagi ixcham (bir qatorli) qoidalarni yangi sirtga keltirish —
   ramka o'rniga halqa soyasi, asosiy tugma to'q siyoh. */
.trip-pager .pager-step { border: 0; box-shadow: var(--shadow); border-radius: 8px; background: var(--surface);
  color: var(--ink); font-size: 12.5px; font-weight: 600; }
.trip-pager .pager-step.disabled { box-shadow: 0 0 0 1px var(--line); background: transparent; }
.registry-choice { border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 10px; }
.registry-choice:hover { background: var(--surface-2); }
.access-tabs a, .access-members a { border: 0; box-shadow: var(--shadow); border-radius: 14px; }
.access-tabs a[aria-current] { background: var(--surface); box-shadow: 0 0 0 2px var(--ink); color: var(--ink); }
.access-editor { border: 0; box-shadow: var(--shadow); }
.route-confirm { background: var(--btn); border-radius: 10px; font-weight: 600; }
.route-confirm:hover { background: var(--btn-hover); }
.route-mobile-card { border: 0; box-shadow: var(--shadow); border-radius: 14px; }
.expense-split-fields { border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: 12px; }
.expense-split-fields > legend { font-size: 12.5px; font-weight: 550; text-transform: none; letter-spacing: 0; }
.required-mark { color: var(--red); }
.list-pager a { font-weight: 600; }
/* Karta ichidagi chip oddiy qatorda (metric-card em blok qoidasi tegmaydi). */
.bank-overview .bank-empty-period { margin: 14px 0 0; }
.metric-card em.pill { display: inline-flex; margin: 0 4px 0 0; font-size: 12px; font-weight: 600; }
.cash-variance.neg strong { color: var(--red); }
.cash-variance.ok strong { color: var(--green); }

/* QA-2 Kassa: kutilgan naqd tarkibi — masshtabli gorizontal ustunlar. */
.cash-expected { display: grid; gap: 12px; align-content: start; }
.cash-expected-head strong { font-size: 32px; }
.cash-build { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cash-build li { display: grid; grid-template-columns: 82px minmax(0, 1fr) 104px; gap: 10px; align-items: center; font-size: 12.5px; }
.cash-build .lbl { color: var(--muted); }
.cash-build .track { height: 8px; border-radius: 99px; background: var(--track); overflow: hidden; }
.cash-build .fill { display: block; height: 100%; border-radius: 99px; }
.cash-build .fill.pos { background: var(--green); }
.cash-build .fill.neg { background: var(--red); opacity: .8; }
.cash-build .fill.tot { background: var(--btn); }
.cash-build .val { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cash-build .val.neg { color: var(--red); }
.cash-build li.total { padding-top: 8px; border-top: 1px dashed var(--line); }
.cash-build li.total .lbl { color: var(--ink); font-weight: 600; }
/* Chapda kunlik harakat, o'ngda sanoq formasi va kurs. */
.cash-cols { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); gap: 12px; align-items: start; }
.cash-cols-main > .admin-panel:first-child, .cash-cols-side > :first-child { margin-top: 14px; }
.cash-cols-side { display: grid; gap: 0; min-width: 0; }
.cash-cols-side .modal-grid { grid-template-columns: 1fr 1fr; }
.cash-cols-side .modal-grid > label:nth-of-type(n+3) { grid-column: 1 / -1; }
.cash-diff { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px;
  margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--surface-2); color: var(--ink); font-size: 13px; }
.cash-diff b { font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; }
.cash-diff small { flex-basis: 100%; font-size: 12.5px; font-weight: 600; }
.cash-diff[data-state="bad"] { background: var(--red-soft); color: var(--red); }
.cash-diff[data-state="ok"] { background: var(--green-soft); color: var(--green-dark); }
@media (max-width: 1100px) {
  .admin-metrics.three { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .admin-metrics.three > :first-child { grid-column: 1 / -1; }
  .cash-cols { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (max-width: 720px) {
  .cash-expected-head strong { font-size: 26px; }
  .cash-build li { grid-template-columns: 74px minmax(0, 1fr) 96px; }
  .cash-cols-side .modal-grid { grid-template-columns: 1fr; }
}
/* Pul topshirish qatorlari (Habib 07.10): Kassada «Oldim» bir bosishda va «Topshirish tarixi».
   Ustunlar qat'iy kenglikda — summa bir chiziqda o'ngga; forma ochilsa qator surilmaydi,
   forma keyingi qatorda to'liq kenglikda. Kompyuter va telefon uchun bitta naqsh. */
.transfer-list { display: grid; }
.transfer-page-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 2px; }
.transfer-row {
  display: grid; align-items: center; gap: 6px 16px; padding: 12px 16px; border-top: 1px solid var(--line);
}
.transfer-row.inbox { grid-template-columns: minmax(0, 1fr) 170px auto 170px; }
.transfer-row.history { grid-template-columns: minmax(0, 1fr) 110px 170px 140px 150px; }
.transfer-row.heading {
  padding-top: 9px; padding-bottom: 9px; background: var(--surface-2);
  color: var(--muted); font-size: 12px; font-weight: 650;
}
.transfer-who { display: grid; gap: 2px; min-width: 0; }
.transfer-who strong { font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.transfer-who small { color: var(--muted); font-size: 12.5px; line-height: 1.4; overflow-wrap: anywhere; }
.transfer-time { color: var(--muted); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.transfer-amount { text-align: right; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums;
  white-space: nowrap; }
.transfer-row.heading .transfer-amount { font-size: 12px; font-weight: 650; }
.transfer-status { color: var(--muted); font-size: 13px; }
.transfer-status.sent { color: var(--amber); font-weight: 650; }
.transfer-status.rejected { color: var(--red); }
.transfer-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.transfer-actions form { margin: 0; }
.transfer-row > details { min-width: 0; }
.transfer-row > details[open] { grid-column: 1 / -1; }
.transfer-row summary {
  display: inline-flex; align-items: center; min-height: 38px; padding: 0 12px; border-radius: 10px;
  background: var(--surface); box-shadow: var(--shadow); color: var(--ink); font-size: 13px; font-weight: 600;
  white-space: nowrap; list-style: none; cursor: pointer;
}
.transfer-row summary::-webkit-details-marker { display: none; }
.transfer-row details[open] > summary { background: var(--surface-2); }
.transfer-row details form {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); align-items: end; gap: 10px;
  max-width: 760px; margin-top: 10px; padding: 12px; border-radius: 12px; box-shadow: 0 0 0 1px var(--line);
}
.transfer-row details label { display: grid; gap: 5px; color: var(--muted); font-size: 12.5px; font-weight: 550; }
.transfer-row details input {
  width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 0; border-radius: 9px;
  box-shadow: 0 0 0 1px var(--line); background: var(--surface-2); color: var(--ink); font: inherit; font-size: 13.5px;
}
.transfer-row details button { justify-self: start; }
@media (max-width: 1100px) {
  .transfer-row.history { grid-template-columns: minmax(0, 1fr) 100px 150px 130px; }
  .transfer-row.history > details { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .transfer-row.inbox, .transfer-row.history { grid-template-columns: minmax(0, 1fr) auto; }
  .transfer-row.heading { display: none; }
  .transfer-row.inbox > .transfer-actions, .transfer-row.inbox > details { grid-column: 1 / -1; }
  .transfer-row.history > .transfer-time { grid-column: 1; grid-row: 2; }
  .transfer-row.history > .transfer-status { grid-column: 2; grid-row: 2; text-align: right; }
  .transfer-row.history > details { grid-column: 1 / -1; }
}
/* ------------------------------------------- ro‘yxatlar v2 (A-02, 11.10) */
/* Sahifa: sarlavha → bitta boshqaruv qatori → bitta panel (stat-chiziq, tablar,
   36 px jadval, pastda jami/sahifalash). Tokenlar o'zgarmagan, faqat tartib. */
/* Habib 11.10: «hamma narsa bir biriga juda zich» — qator 44 px, ustunlar orasi kengroq, bloklar orasi 16–20 px. */
.list-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; }
.list-toolbar .period-shortcuts { display: inline-flex; flex-wrap: nowrap; gap: 2px; margin: 0; padding: 3px;
  border-radius: 9px; background: var(--surface); box-shadow: var(--shadow); }
.list-toolbar .period-shortcuts > a, .list-toolbar .period-shortcuts > .period-more > summary {
  padding: 5px 11px; border-radius: 7px; background: transparent; box-shadow: none; color: var(--muted);
  font-size: 13px; font-weight: 550; white-space: nowrap; text-decoration: none; }
.list-toolbar .period-shortcuts > a:hover { background: var(--surface-2); color: var(--ink); }
.list-toolbar .period-shortcuts > a[aria-current=page],
.list-toolbar .period-shortcuts > .period-more.current > summary { background: var(--btn); color: var(--btn-ink); }
.period-more > summary { display: inline-flex; width: auto; height: auto; cursor: pointer; }
.period-more .row-menu-list { left: 0; right: auto; min-width: 250px; }
.period-more form, .filter-dd-form { display: grid; gap: 8px; padding: 8px; border-top: 1px solid var(--line); }
.period-more label, .filter-dd-form label { display: grid; gap: 4px; color: var(--muted); font-size: 12px; font-weight: 550; }
.filter-dd-head { margin: 0; padding: 8px 12px 4px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 550; }
.period-more input, .filter-dd-form input { height: 34px; padding: 0 9px; border: 0; border-radius: 8px; box-shadow: 0 0 0 1px var(--line);
  background: var(--surface-2); color: var(--ink); font: inherit; font-size: 13px; }
.period-more .row-menu-list > a[aria-current] { background: var(--surface-2); font-weight: 650; }
.list-search { display: flex; align-items: center; gap: 8px; flex: 0 1 300px; min-width: 220px; height: 34px;
  margin: 0; padding: 0 12px; border-radius: 9px; background: var(--surface); box-shadow: var(--shadow); color: var(--muted); }
.list-search:focus-within { box-shadow: 0 0 0 2px var(--ink); }
.list-search svg { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.list-search input, .list-search .typeahead > input { width: 100%; min-width: 0; height: 32px; padding: 0; border: 0;
  background: transparent; box-shadow: none; color: var(--ink); font: inherit; font-size: 13px; outline: 0; }
.list-search .typeahead { flex: 1; }
.filter-dd > summary { width: auto; height: 34px; gap: 6px; padding: 0 11px; color: var(--ink);
  font-size: 13px; font-weight: 550; white-space: nowrap; }
.filter-dd > summary::after { content: '▾'; color: var(--muted); font-size: 11px; }
.filter-dd > summary b { font-weight: 650; }
.filter-dd.set > summary { box-shadow: 0 0 0 1px var(--ink); }
.filter-dd .row-menu-list { left: 0; right: auto; max-height: min(420px, 60vh); overflow: auto; }
.filter-dd .row-menu-list a[aria-current] { background: var(--surface-2); font-weight: 650; }
/* Ikonka tugma (Habib 11.10: yozuv kamroq) — matn aria-label/title'da. */
.icon-button { display: inline-grid; place-items: center; cursor: pointer; color: var(--muted); }
.icon-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-button:hover { color: var(--ink); }
.list-reset { color: var(--muted); font-size: 12.5px; font-weight: 600; text-decoration: none; }
.list-reset:hover { color: var(--ink); }
.list-toolbar-end { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.list-panel { margin-top: 0; overflow: visible; }
/* Panel mazmuni kengligida (Habib 11.10): bo'sh qolsa qator chiziqlari ekran oxirigacha cho'zilmaydi. */
.list-panel.fit { width: fit-content; max-width: 100%; min-width: min(640px, 100%); }
@media (max-width: 720px) { .list-panel.fit { width: auto; min-width: 0; } }
/* Teng ustunlar, lekin son hech qachon qisilmaydi: sig'masa keyingi qatorga o'tadi. */
.stat-strip { display: flex; flex-wrap: wrap; overflow: hidden; }
.stat-strip > div { flex: 1 1 0; min-width: max-content; margin: 0 -1px -1px 0; padding: 10px 18px 11px;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stat-label, .stat-sub { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 12px; line-height: 14px; color: var(--muted); }
.stat-label { font-weight: 550; }
.stat-value { display: block; margin-top: 2px; font-size: 21px; font-weight: 650; line-height: 22px;
  letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); }
.stat-value small { margin-left: 4px; font-size: 12.5px; font-weight: 550; letter-spacing: 0; color: var(--muted); }
.stat-sub { margin-top: 1px; font-variant-numeric: tabular-nums; }
/* Yorliq va izoh ustun kengligini belgilamaydi — faqat son (izoh sig'masa «…»). */
.stat-strip .stat-label, .stat-strip .stat-sub { width: 0; min-width: 100%; }
.stat-strip .debt .stat-value { color: var(--balance-debt); }
.stat-strip .adv .stat-value { color: var(--balance-credit); }
.stat-note { margin: 0; padding: 6px 16px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12.5px; }
.panel-tabs { display: flex; align-items: center; gap: 2px 12px; padding: 4px 14px 0; border-bottom: 1px solid var(--line); }
.panel-tabs > nav { display: flex; gap: 2px; min-width: 0; }
.panel-tabs > nav > a { margin-bottom: -1px; padding: 11px 12px 12px; border-bottom: 2px solid transparent;
  color: var(--muted); font-size: 13px; font-weight: 550; text-decoration: none; white-space: nowrap; }
.panel-tabs > nav > a:hover { color: var(--ink); }
.panel-tabs > nav > a b { margin-left: 4px; font-weight: 600; opacity: .7; font-variant-numeric: tabular-nums; }
.panel-tabs > nav > a[aria-current] { color: var(--ink); border-bottom-color: var(--ink); }
.panel-tabs-end { margin-left: auto; display: flex; align-items: center; gap: 8px; padding-bottom: 4px;
  color: var(--muted); font-size: 12.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.panel-tabs-end .row-menu > summary { width: auto; height: 30px; padding: 0 10px; box-shadow: none; font-size: 12.5px; font-weight: 550; }
.dot { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-size: 12.5px; font-weight: 550; white-space: nowrap; }
.dot::before { content: ''; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.dot.g::before { background: var(--green); }
.dot.b::before { background: var(--blue); }
.dot.r::before { background: var(--red); }
.dot.a::before { background: var(--amber); }
.dot.r { color: var(--red); }
.dot.a { color: var(--amber); }
.list-table .admin-table-row { min-height: 44px; gap: 20px; padding: 6px 18px; font-size: 13.5px; }
.list-table .admin-table-row.heading { min-height: 38px; padding-block: 8px; border-top: 0; }
@media (min-width: 721px) { @supports (grid-template-columns: subgrid) { .list-table [data-grid-table] { column-gap: 20px; } } }
@media (min-width: 1600px) { .list-table .admin-table-row { gap: 32px; padding-inline: 24px; } .list-table [data-grid-table] { column-gap: 32px !important; } }
@media (min-width: 721px) and (max-width: 1439px) { .list-table .admin-table-row { gap: 10px; padding-inline: 12px; font-size: 13px; } .list-table [data-grid-table] { column-gap: 10px !important; } }
.list-table .admin-table-row small { margin-top: 0; }
.list-table .admin-table-row b { font-weight: 600; }
.list-table .admin-table-row .q { margin-left: 6px; color: var(--muted); font-size: 12px; font-weight: 500; }
.list-table .admin-table-row .m { color: var(--muted); }
.list-table .admin-table-row .row-menu > summary { width: 26px; height: 26px; box-shadow: none; background: transparent; }
.list-table .admin-table-row .row-menu > summary:hover, .list-table .admin-table-row .row-menu[open] > summary { background: var(--surface-2); }
.list-table .tag { display: inline-block; margin-right: 4px; padding: 0 6px; border-radius: 6px; background: var(--surface-2);
  box-shadow: 0 0 0 1px var(--line); color: var(--muted); font-size: 11.5px; font-weight: 600; vertical-align: 1px; }
.list-table .num .debt, .list-table .debt-text { color: var(--balance-debt); }
.list-table .num .adv, .list-table .adv-text { color: var(--balance-credit); }
.list-table .num .settled { color: var(--balance-settled); }
.list-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px;
  padding: 12px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.list-foot b { color: var(--ink); font-weight: 650; }
.list-foot a { margin-left: 10px; color: var(--green-dark); font-weight: 600; text-decoration: none; }
.list-foot a:first-child { margin-left: 0; }
/* Mijoz kartasi v2: chip-belgilar, varaqa + o'ng ustun (340 px), Habib daftari ustunlari. */
.customer-head-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: -8px 0 12px; }
.customer-head-chips > * { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px;
  background: var(--surface); box-shadow: var(--shadow); color: var(--ink); font-size: 12px; font-weight: 550; text-decoration: none; }
.customer-head-chips > a { color: var(--green-dark); }
.customer-head-chips .y { background: var(--amber-soft); box-shadow: 0 0 0 1px #ecd2a5; color: var(--amber); }
.customer-head-chips .r, .customer-head-chips .unlinked { color: var(--red); }
.customer-two { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 12px; align-items: start; }
.customer-main { min-width: 0; }
.customer-main > .admin-panel:first-child { margin-top: 0; }
.customer-side { display: grid; gap: 12px; min-width: 0; }
.customer-side-card { margin: 0; border-radius: 14px; background: var(--surface); box-shadow: var(--shadow); overflow: hidden; }
.customer-side-card > h2 { display: flex; align-items: center; gap: 8px; margin: 0; padding: 11px 16px 8px;
  font-size: 13px; font-weight: 650; letter-spacing: -.01em; }
.customer-side-card > h2 small { color: var(--muted); font-size: 12px; font-weight: 500; }
.side-help { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; box-shadow: 0 0 0 1px var(--line);
  color: var(--muted); font-size: 11px; font-weight: 650; cursor: help; }
.customer-side-card > h2 .route-text-button, .customer-side-card > h2 .pill { margin-left: auto; }
.customer-side-card > h2 .pill + .route-text-button { margin-left: 6px; }
.customer-side-card.customer-quiet > summary { padding: 11px 16px; font-size: 13px; font-weight: 650; cursor: pointer; }
.side-kv { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 16px;
  border-top: 1px solid var(--line); font-size: 13px; }
.side-kv > span:first-child { min-width: 0; }
.side-kv small { display: block; color: var(--muted); font-size: 11.5px; font-weight: 500; }
.side-kv b { font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.side-kv .m { color: var(--muted); }
.customer-side-card .customer-price-empty { margin: 0; padding: 8px 16px 10px; border-top: 1px solid var(--line);
  color: var(--muted); font-size: 12.5px; line-height: 1.45; }
.customer-side-card .side-actions { padding: 8px 16px 10px; border-top: 1px solid var(--line); }
.customer-side-card .customer-price-history, .customer-side-card .customer-account-breakdown {
  margin: 0; padding: 8px 16px 10px; border-top: 1px solid var(--line); font-size: 12.5px; }
.customer-side-card .customer-price-history > summary, .customer-side-card .customer-account-breakdown > summary {
  cursor: pointer; color: var(--green-dark); font-weight: 600; }
.customer-side-card .customer-account-breakdown-body { width: auto; }
.customer-side-card .customer-record-warning { display: block; margin: 0; padding: 0 16px 10px; }
.customer-side-card .customer-profile-info { padding: 0 16px 12px; }
.customer-ledger-panel .list-foot .customer-period-total { margin: 0; padding: 0; border: 0; text-align: left; font-size: 12.5px; }
.customer-record-table.ledger-v2 { table-layout: fixed; }
.ledger-v2 th { height: 32px; padding: 0 10px; font-size: 12px; }
.ledger-v2 th:nth-child(1) { width: 96px; }
.ledger-v2 th:nth-child(2) { width: 104px; }
.ledger-v2 th:nth-child(3) { width: auto; }
.ledger-v2 th:nth-child(4) { width: 70px; }
.ledger-v2 th:nth-child(5), .ledger-v2 th:nth-child(6) { width: 100px; }
.ledger-v2 th:nth-child(7) { width: 112px; }
.ledger-v2 th:nth-child(8) { width: 112px; }
.ledger-v2 th:nth-child(9) { width: 40px; padding: 0 8px 0 0; }
.customer-record-table.ledger-v2 td { padding: 5px 10px; font-size: 13px; line-height: 1.35; }
.ledger-v2 .customer-record-date { font-size: 12.5px !important; }
.ledger-v2 .customer-record-reference, .ledger-v2 .customer-record-description > strong { display: inline; font-size: 13px; font-weight: 600; }
.ledger-v2 .customer-record-detail { display: inline; margin: 0; font-size: 12.5px; }
.ledger-v2 .customer-record-reference + .customer-record-detail,
.ledger-v2 .customer-record-description > strong + .customer-record-detail { margin-left: 10px; }
.ledger-v2 .customer-record-detail .q { margin-left: 8px; color: var(--muted); font-size: 12px; }
.ledger-v2 .customer-record-provenance { margin-top: 1px; }
.ledger-v2 .customer-record-price { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.customer-record-table.ledger-v2 td.customer-record-amount { font-size: 13px; font-weight: 600; white-space: nowrap; }
.ledger-v2 td.customer-record-paid, .customer-record-row.payment .customer-record-paid { color: var(--green-dark); }
.customer-record-row.payment .customer-record-amount:not(.customer-record-paid) { color: inherit; }
.customer-record-table.ledger-v2 td.customer-record-balance { font-size: 13px; font-weight: 600; color: var(--ink); }
.customer-record-table.ledger-v2 td.customer-record-actor { color: var(--muted); font-size: 12.5px; }
.ledger-v2 .customer-record-menu .row-menu > summary { width: 26px; height: 26px; box-shadow: none; background: transparent; }
@media (min-width: 1101px) and (max-width: 1599px) {
  .customer-two { grid-template-columns: minmax(0, 1fr) 280px; }
  .ledger-v2 th { padding: 0 8px; }
  .customer-record-table.ledger-v2 td { padding: 5px 8px; }
  .ledger-v2 th:nth-child(2) { width: 78px; }
  .ledger-v2 th:nth-child(4) { width: 56px; }
  .ledger-v2 th:nth-child(5), .ledger-v2 th:nth-child(6) { width: 86px; }
  .ledger-v2 th:nth-child(7) { width: 98px; }
  .ledger-v2 th:nth-child(8) { width: 68px; }
  .ledger-v2 th:nth-child(9) { width: 34px; }
  .ledger-v2 th:nth-child(1) { width: 62px; }
  .ledger-v2 .customer-record-time { display: none; }
}
@media (max-width: 1100px) {
  .customer-two { grid-template-columns: 1fr; }
  .customer-side { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); align-items: start; }
}
@media (max-width: 700px) {
  .ledger-v2 .customer-record-row { grid-template-areas: 'kind amount menu' 'description description description' 'actor balance balance' 'date date date'; }
  .ledger-v2 .customer-record-price { display: none; }
  .ledger-v2 .customer-record-amount:empty { display: none; }
  /* Sarlavha yashirin: yo'nalish belgisi qaytadi (+ qarzni oshirdi, − kamaytirdi). */
  .ledger-v2 td.customer-record-amount:not(.customer-record-paid)::before { content: '+'; }
  .ledger-v2 td.customer-record-paid::before { content: '−'; }
  .ledger-v2 .customer-record-reference, .ledger-v2 .customer-record-detail { display: block; }
  .ledger-v2 .customer-record-reference + .customer-record-detail { margin-left: 0; }
  .customer-side { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .list-toolbar { gap: 6px; }
  .list-toolbar .period-shortcuts { max-width: 100%; overflow-x: auto; }
  .list-search { flex: 1 1 100%; }
  .list-toolbar-end { margin-left: 0; }
  .stat-strip > div { flex-basis: 40%; min-width: 0; padding: 8px 12px; }
  .stat-value { font-size: 19px; }
  .panel-tabs { flex-wrap: wrap; padding: 2px 6px 0; }
  .panel-tabs > nav { overflow-x: auto; max-width: 100%; }
  .panel-tabs-end { margin-left: 0; padding: 4px 6px 6px; }
  .list-foot { padding: 9px 12px; }
}

.section-note{font-size:13px;color:var(--muted);margin:0 0 16px}
.mobile-operational{display:none}
.operational-list{overflow:hidden}
.operational-list .admin-table-row>:nth-child(4),.operational-list .admin-table-row>:nth-child(5){text-align:right}
.range-options>summary{cursor:pointer;color:var(--green-dark);font-size:13px;padding:8px 0}
.supplier-history .admin-filter-bar{padding:12px 0;margin:0;border:0;box-shadow:none}
.list-pager{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:14px 16px;font-size:13px;border-top:1px solid var(--line)}
.period-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.period-shortcuts a{padding:7px 12px;border:0;box-shadow:var(--shadow);border-radius:9px;text-decoration:none;font-size:13px;font-weight:550;color:var(--muted);background:var(--card)}
.period-shortcuts a:hover{background:var(--surface-2);color:var(--ink)}
.period-shortcuts a[aria-current=page]{background:var(--btn);color:var(--btn-ink);box-shadow:none}
.bonus-records{padding:0;overflow:hidden}
.bonus-record{border-bottom:1px solid var(--line)}
.bonus-record>summary{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 20px;gap:20px;align-items:center;padding:16px;cursor:pointer;list-style:none}
.bonus-record>summary::-webkit-details-marker{display:none}
.bonus-record>summary strong,.bonus-record>summary small{display:block}
.bonus-record>summary small{margin-top:4px;font-size:13px;color:var(--muted)}
.bonus-record>summary:hover,.bonus-record[open]>summary{background:var(--paper)}
.bonus-record-detail{padding:0 20px 20px;border-top:1px solid var(--line)}
.bonus-source{font-size:13px}
.destructive-text{color:var(--balance-debt);background:transparent;border:0;padding:10px 14px;text-align:left;cursor:pointer;font:inherit}
.compact-stock-row{display:block;padding:14px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.compact-stock-row>span{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:8px}
.compact-stock-row>strong,.compact-stock-row>small,.compact-stock-row>em{display:block}
.compact-stock-row>small{margin-top:4px;color:var(--muted);font-size:13px}
.compact-stock-row>em{margin-top:8px;color:var(--green-dark);font-size:13px;font-style:normal}
.supplier-history>h2{margin-top:0;font-size:18px}
.supplier-mobile-row{padding:14px 0;border-bottom:1px solid var(--line)}
.supplier-mobile-row>header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.supplier-mobile-row>header strong{text-align:right;font-size:15px;font-variant-numeric:tabular-nums}
.supplier-mobile-row>header time{font-size:12px;color:var(--muted);flex-shrink:0}
.supplier-mobile-row>span,.supplier-mobile-row>a{display:block;margin-top:4px}
.mobile-price-record{padding:16px;border-bottom:1px solid var(--line)}
.mobile-price-record>a{text-decoration:none;color:var(--ink)}
.mobile-price-record dl{margin:12px 0 0;display:grid;gap:10px}
.mobile-price-record dl>div{display:flex;gap:12px;justify-content:space-between;font-size:13px}
.mobile-price-record dt{color:var(--muted)}
.mobile-price-record dd{margin:0;text-align:right;font-weight:600}
@media(max-width:760px){
 .desktop-operational{display:none}.mobile-operational{display:block}
 .bonus-record>summary{grid-template-columns:minmax(0,1fr) 20px;gap:8px;padding:14px}
 .bonus-record>summary>span:nth-child(2){grid-column:1;grid-row:2}
 .bonus-record>summary>span:last-child{grid-column:2;grid-row:1}
 .bonus-record-detail{padding:0 14px 16px}
 .supplier-account .card{padding:16px}.supplier-account .supplier-history{padding:16px 12px}
 .supplier-account .admin-filter-bar{padding:0;border:0;box-shadow:none}
 .list-pager{gap:8px;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.bonus-record,.period-shortcuts a{transition:none}}


.home{display:grid;gap:14px}
.home-num{white-space:nowrap}
/* 1. Hero ixcham (QA-2 polish 04.10): chap yarim — hukmron savdo kartasi, o'ng
   yarim — ikki pul kartasi yonma-yon. Ustunlar pastdagi .home-cols bilan bir o'qda. */
.home-kpis{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.home-kpi-side{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;min-width:0}
.home-kpi-side:empty{display:none}
.home-card{border-radius:16px;background:var(--card);box-shadow:var(--shadow);min-width:0;overflow:hidden}
.home-kpis .home-card{padding:14px 16px}
/* Katta son chapda, «Savdolar N ta» o'ngda — ichki bo'sh joy yo'q. */
.home-sales{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 20px}
.home-sales-main{min-width:0}
.home-figure{margin:0;font-size:40px;font-weight:650;line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}
.home-figure small{margin-left:4px;font-size:14px;font-weight:550;color:var(--muted);letter-spacing:0}
/* Umumiy .empty paddingi bu yerga tegishli emas: matn label bilan bir chiziqda. */
.home-figure.empty{padding:0;font-size:28px;color:var(--muted)}
.home-figure2{margin:0;font-size:22px;font-weight:650;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.home-figure2.debt{color:var(--red)}
.home-figure2.advance{color:var(--blue)}
.home-sub{margin:6px 0 0;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.home-sub a{font-weight:600;text-decoration:none}
.home-sub a:hover{text-decoration:underline}
.home-split{display:flex;flex-wrap:wrap;gap:8px 28px;padding:0 0 2px 20px;border-left:1px solid var(--line)}
.home-split span{display:block;color:var(--muted);font-size:12.5px}
.home-split b{font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}
.home-direct{grid-column:1/-1;margin:0}
.home-delta{font-weight:650;color:var(--ink)}
.home-delta.up{color:var(--green)}
.home-delta.down{color:var(--red)}
/* 2. «Bugun hal qilish kerak» (Habib 04.10): mavzu plitkalari, tartibi doimiy.
   05.10: 1–4 plitka, bo'sh katak yo'q. Ustun soni blok kengligidan (container
   query — sidebar kengligi viewportga bog'liq emas): odatda 2 ustun, toq oxirgi
   plitka qatorni egallaydi; 3 tasi ≥900px, 4 tasi ≥1200px bo'lsa bitta qatorda
   (plitka ~290px dan tor bo'lmaydi: 1100 da 2+1, 1440 da 4 ta 2×2, 1680+ da 4 qatorda). Telefon — 1 ustun. Daraja so'zi faqat Naqd pulda. */
.home-exceptions{border-radius:16px;background:var(--card);box-shadow:var(--shadow);min-width:0;overflow:hidden;container-type:inline-size}
.home-exceptions>h2{margin:0;padding:14px 16px 10px;font-size:15px;font-weight:650;letter-spacing:-.01em}
.home-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px}
.home-tiles.n1{grid-template-columns:minmax(0,1fr)}
.home-tiles>.home-tile:last-child:nth-child(odd){grid-column:1/-1}
@container (min-width:900px){
 .home-tiles.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-tiles.n3>.home-tile:last-child{grid-column:auto}
}
@container (min-width:1200px){
 .home-tiles.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.home-tile{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:13px}
.home-tile.r{border-color:var(--red);box-shadow:inset 3px 0 0 var(--red)}
.home-tile.a{box-shadow:inset 3px 0 0 var(--amber)}
.home-tile>header{display:flex;align-items:center;gap:8px;min-width:0}
.home-tile>header i{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2)}
.home-tile>header svg{width:15px;height:15px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.home-tile.r>header i{background:var(--red-soft)}.home-tile.r>header svg{stroke:var(--red)}
.home-tile.a>header i{background:var(--amber-soft)}.home-tile.a>header svg{stroke:var(--amber)}
.home-tile h3{margin:0;font-size:14px;font-weight:650;min-width:0}
.home-tile-level{margin-left:auto;padding:2px 8px;border-radius:99px;font-style:normal;font-size:12px;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.home-tile.r .home-tile-level{background:var(--red-soft);color:var(--red)}
.home-tile.a .home-tile-level{background:var(--amber-soft);color:var(--amber)}
.home-tile-figure{margin:2px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-variant-numeric:tabular-nums}
.home-tile-figure b{font-size:28px;font-weight:650;line-height:1.1;letter-spacing:-.02em}
.home-tile.r .home-tile-figure b{color:var(--red)}
.home-tile-figure span{font-size:13px;font-weight:600;color:var(--ink)}
.home-tile-line{margin:0;font-size:12.5px;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.home-tile-line a{color:inherit;text-decoration:none}
.home-tile-line a:hover{text-decoration:underline}
.home-tile-note.a{color:var(--amber);font-weight:600}
.home-tile-note.r{color:var(--red);font-weight:600}
/* «bugun +N» (2-bosqich): bugun paydo bo'lgan qism; 0 bo'lsa chizilmaydi. */
.home-tile-delta{padding:1px 7px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}
.home-tile-more summary{cursor:pointer;color:var(--muted);font-size:12.5px;font-weight:550;list-style:none;display:inline-flex;gap:4px;align-items:baseline;border-radius:6px}
.home-tile-more summary::-webkit-details-marker{display:none}
.home-tile-more summary::after{content:"▾";font-size:11px}
.home-tile-more[open] summary::after{content:"▴"}
.home-tile-more .home-sub-list a{color:inherit;text-decoration:none}
.home-tile-more .home-sub-list a:hover{text-decoration:underline}
.home-tile-open{margin-top:auto;padding-top:4px;align-self:flex-end;white-space:nowrap;font-size:13px;font-weight:600;color:var(--green);text-decoration:none}
.home-tile-open:hover{text-decoration:underline}
/* Hammasi nol: bitta xira qator, karta/banner yo'q. */
.home-todo-clear{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:0 4px;color:var(--muted);font-size:13px}
.home-todo-clear h2{margin:0;font-size:13px;font-weight:600;color:var(--muted)}
.home-todo-clear p{margin:0}
/* Navbatni ko'radi, lekin hal qilmaydi (kuzatuvchi): sokin ma'lumot qatori, plitka/belgi yo'q. */
.home-todo-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:0 4px;color:var(--muted);font-size:13px}
.home-todo-info h2{margin:0;font-size:13px;font-weight:600;color:var(--muted)}
.home-todo-info p{margin:0;font-variant-numeric:tabular-nums}
.home-todo-info a{color:inherit}
.home-sub-list{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px}
.home-sub-list li{padding:6px 10px;border-radius:8px;background:var(--surface-2);font-size:12.5px;font-weight:400;font-variant-numeric:tabular-nums}
/* Karta sarlavhasi (maket panel-head): 15px, o'ngda jami yoki havola. */
.home-card>h2{margin:0;padding:14px 16px 10px;font-size:15px;font-weight:650;letter-spacing:-.01em;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}
.home-card>h2>span{font-size:14px;font-weight:650;color:var(--ink);letter-spacing:0;font-variant-numeric:tabular-nums}
.home-card>h2>span a{font-size:13px;font-weight:600;text-decoration:none}
.home-card>h2>span a:hover{text-decoration:underline}
.home-card>h2>a{color:inherit;text-decoration:none}
.home-card>h2>a::after{content:' →';color:var(--muted);font-weight:500}
.home-card>h2>a:hover{text-decoration:underline}
/* 3. 30 kun. */
.home-chart{margin:0;padding:0 16px 10px}
.home-chart svg{display:block;width:100%;height:150px}
.home-chart rect{fill:var(--bar)}
.home-chart rect.today{fill:var(--green)}
.home-chart polyline{stroke:var(--blue);stroke-width:2}
.home-chart-max{margin:0 0 6px;font-size:12px;color:var(--muted)}
.home-chart figcaption{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:12px;color:var(--muted)}
.home-legend{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--muted)}
.home-legend i{display:inline-block;margin:0 2px 0 8px}
.home-legend .sw-bar{width:10px;height:10px;border-radius:3px;background:var(--bar)}
.home-legend .sw-line{width:14px;height:3px;border-radius:2px;background:var(--blue)}
.home-chart-foot{padding:12px 16px 14px;border-top:1px solid var(--line)}
.home-summary{margin:0;font-size:13px;font-variant-numeric:tabular-nums}
.home-summary small,.home-note{color:var(--muted);font-size:12.5px}
.home-note{margin:6px 0 0}
/* A-05 D1 (G5): «Yorliq: qiymat» qatorlari va kanal qismlari — «·» bilan tizilmaydi. */
.home-facts{display:grid;gap:4px;margin:0;font-size:13px;font-variant-numeric:tabular-nums}
.home-facts>div{display:flex;justify-content:space-between;gap:12px}
.home-facts dt{color:var(--muted)}
.home-facts dt::after{content:':'}
.home-facts dd{margin:0;font-weight:600;text-align:right}
.home-facts dd small{font-weight:500;color:var(--muted);font-size:12px}
.home-parts{display:flex;flex-wrap:wrap;gap:2px 14px}
.home-faint{opacity:.8}
.home-creditors{display:grid;gap:6px;margin-top:8px}
.home-todo-info p{display:flex;flex-wrap:wrap;gap:4px 16px}
/* 4. Ikki ustun (QA-2 polish): chapda 30 kun + Qop qayerda, o'ngda Pul kimda.
   Nom va summa bir qatorda, ingichka trek pastda. */
.home-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
.home-col{display:grid;gap:12px;min-width:0}
.home-col .home-chart svg{height:130px}
.home-rows{display:grid;gap:10px;padding:0 16px 14px}
.home-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:baseline;font-size:13.5px;color:var(--ink);text-decoration:none}
a.home-row:hover .who{text-decoration:underline}
.home-row .who{font-weight:600;min-width:0}
.home-row .who small{margin-left:6px;font-weight:400;font-size:12px;color:var(--muted)}
.home-row .amt{text-align:right;white-space:nowrap;font-weight:650;font-variant-numeric:tabular-nums}
.home-row .amt.neg{color:var(--red)}
.home-row .amt small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
.home-row.transit{padding-top:10px;border-top:1px dashed var(--line)}
.home-row.transit .who small{display:block;margin:1px 0 0}
.home-row>.home-bar{grid-column:1/-1;grid-row:2}
.home-bar{display:block;height:6px;background:var(--track);border-radius:99px;overflow:hidden}
.home-bar i{display:block;height:100%;background:var(--green);border-radius:99px}
.home-bar.muted i,.home-bar.transit i{background:var(--amber)}
.home-bar.debt i{background:var(--red);opacity:.75}
.home-bar.negative i{background:var(--red)}
.home-stock-row+.home-stock-row{padding-top:10px;border-top:1px dashed var(--line)}
.home-mix{grid-column:1/-1;display:flex;gap:2px;height:8px;border-radius:99px;overflow:hidden;background:var(--track)}
.home-mix span{display:block;height:100%}
.home-mix-legend{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12px;color:var(--muted)}
.home-mix-legend b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.home-mix-legend .neg b{color:var(--red)}
.home-mix-legend i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:2px}
.home-mix .m1,.home-mix-legend .m1{background:#197a48}
.home-mix .m2,.home-mix-legend .m2{background:#5fae80}
.home-mix .m3,.home-mix-legend .m3{background:#245b87}
.home-mix .m4,.home-mix-legend .m4{background:#c9862a}
.home-more{display:block;padding:0 16px 14px;font-size:13px;font-weight:600;text-align:right;text-decoration:none}
.home-more:hover{text-decoration:underline}
/* 5. Qarzlar: raqamlar ajratuvchi chiziq bilan, keyin ikki ustunli qarzdorlar. */
.home-debt-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border-top:1px solid var(--line)}
.home-debt-figures>div{padding:14px 16px;min-width:0}
.home-debt-figures>div+div{border-left:1px solid var(--line)}
.home-subhead{margin:0;padding:12px 16px 2px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line)}
.home-cards-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.home-cards-head .home-num{font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:650}
.home-row.card-balance .who small{display:block;margin:1px 0 0}
.home-row.card-balance.stale .who small{color:var(--amber);font-weight:600}
.home-debtors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;padding:0 16px 10px}
/* Qarzdor qatori: nom | ulush chizig'i | summa (eski QA kabi); telefonda chiziq pastda. */
.home-debtors .home-row{grid-template-columns:minmax(0,1.3fr) minmax(48px,1fr) minmax(11ch,max-content);align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.home-debtors .home-row>.home-bar{grid-column:auto;grid-row:auto}
.home-debtors .home-row .amt{color:var(--red);font-weight:600}
.home-links{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;padding:2px 2px 8px}
.home-links a{color:var(--muted);text-decoration:none}
.home-links a:hover{color:var(--ink);text-decoration:underline}
/* 05.10 keng ekran (≥1680px, Bosh sahifa ~1400px+): pastki qism uch ustunli to'r —
   30 kun | Qop qayerda | Pul kimda (ikki qator baland), Qarzlar 30 kun va Qop qayerda
   ostida. Uzun «Pul kimda» yonida bo'sh joy qolmaydi; cho'zilgan ikki ulkan karta yo'q.
   Pul kimda bo'lmasa (huquq) — avvalgi tartib. */
@media(min-width:1680px){
 .home:has(> .home-cols){grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);align-items:start}
 .home:has(> .home-cols)>*{grid-column:1/-1}
 .home:has(> .home-cols)>.home-cols,.home-cols>.home-col{display:contents}
 .home-cols .home-month{grid-column:1}
 .home-cols .home-month:only-child{grid-column:1/3}
 .home-cols .home-stock{grid-column:2}
 .home-cols .home-cash{grid-column:3;grid-row:span 2}
 .home:has(> .home-cols)>.home-debt{grid-column:1/3}
}
@media(max-width:1100px){
 .home-kpis,.home-cols{grid-template-columns:1fr}
}
@media(max-width:620px){
 .home-kpi-side{grid-auto-flow:row}
 .home-sales{grid-template-columns:1fr}
 .home-split{padding:8px 0 0;border-left:0;border-top:1px solid var(--line)}
 .home-debtors .home-row{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
 .home-debtors .home-row>.home-bar{grid-column:1/-1;grid-row:2}
 .home-figure{font-size:32px}
 .home-debt-figures{grid-template-columns:1fr}
 .home-debt-figures>div+div{border-left:0;border-top:1px solid var(--line)}
 .home-debtors{grid-template-columns:1fr}
 .home-tiles{grid-template-columns:1fr}
}


.m3-only { display: none; }
.m3-fab, .m3-tile-form { display: contents; }
.m3-fab { display: none; }
@media (max-width: 720px) {
  .m3-only { display: block; }
  .m3-hide { display: none !important; }
  /* Menyu belgisi — nuqta (A-08); son aria-label'da. */
  .admin-mobile-badge.dot { min-width: 0; width: 8px; height: 8px; padding: 0; top: 3px; right: calc(50% - 18px);
    font-size: 0; line-height: 0; color: transparent; background: #c98a1c; box-shadow: 0 0 0 2px var(--surface); }
  .admin-mobile-more.m3-sheet { left: 0; right: 0; bottom: calc(68px + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0;
    padding: 18px 16px 20px; background: var(--bg); box-shadow: 0 -12px 40px rgb(23 32 25 / 22%); gap: 0; }
  .m3-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .m3-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 92px;
    border: 0; border-radius: 16px; background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; font-weight: 600;
    text-decoration: none; cursor: pointer; width: 100%; }
  .m3-tile svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  .m3-tile[aria-current="page"] { box-shadow: inset 0 0 0 2px var(--green); }
  .m3-tile.danger { color: var(--red); }
  .admin-mobile-more .m3-tile { min-height: 92px; padding: 0; background: var(--surface); }
  /* «+» (A-08): o'ng pastda, menyu ustida; ochilganda pastdan varaq. */
  .m3-fab { display: block; }
  /* «+» faqat v3 asosiy sahifalarida (19.10 ko'rik: formalarda maydonlarni yopardi). */
  body:not(:has([data-m3-home], [data-m3-trips], [data-m3-kassa], .cust-v3)) .m3-fab { display: none; }
  .m3-fab > summary { position: fixed; z-index: 55; right: 16px; bottom: calc(84px + env(safe-area-inset-bottom)); width: 56px; height: 56px;
    border-radius: 28px; background: var(--green); color: #fff; display: grid; place-items: center; list-style: none; cursor: pointer;
    box-shadow: 0 4px 12px rgb(23 32 25 / 22%); }
  .m3-fab > summary::-webkit-details-marker { display: none; }
  .m3-fab > summary svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
  .m3-fab[open] > summary { transform: rotate(45deg); }
  .m3-fab[open]::before { content: ""; position: fixed; inset: 0; z-index: 54; background: rgb(23 32 25 / 40%); }
  /* «Boshqa» menyu ichida (z-index 50 konteksti): fon menyu ostida, sahifa ustida. */
  .admin-mobile-more-wrap[open]::before { content: ""; position: fixed; inset: 0; z-index: -1; background: rgb(23 32 25 / 40%); }
  body:has(.admin-mobile-more-wrap[open]) .m3-fab { display: none; }
  .m3-fab .m3-sheet { position: fixed; z-index: 56; left: 0; right: 0; bottom: calc(68px + env(safe-area-inset-bottom));
    padding: 18px 16px 20px; border-radius: 20px 20px 0 0; background: var(--bg); box-shadow: 0 -12px 40px rgb(23 32 25 / 22%); }
  .m3-fab .m3-tile:nth-child(1) svg { color: var(--green); }
  .m3-fab .m3-tile:nth-child(2) svg { color: var(--amber); }
  /* Telefon sahifa bloklari: ramka va soyasiz guruh, ulush chizig'i, ikonka. */
  .m3 { color: var(--ink); }
  .m3 .v { font-variant-numeric: tabular-nums; white-space: nowrap; }
  .m3 .mu { color: var(--muted); }
  .m3 .ic { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex: none; }
  /* Habib 19.10: «balans — so'z ham, ikonka ham»: qisqa yorliq (1–2 so'z) ikonka va son yonida. */
  .m3-h { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--muted); }
  .m3-chip .w { font-size: 15px; font-weight: 550; }
  .m3-chip { flex: none; }
  .m3-big { font-size: 38px; font-weight: 700; letter-spacing: -.02em; line-height: 1.12; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .m3-bar { display: flex; height: 10px; border-radius: 5px; overflow: hidden; background: var(--track); }
  .m3-bar > i { display: block; height: 100%; }
  .m3-grp { background: var(--surface); border-radius: 14px; overflow: hidden; }
  .m3-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 0 16px;
    font-size: 16px; color: var(--ink); text-decoration: none; }
  .m3-row + .m3-row { border-top: 1px solid var(--line); }
  .m3-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .m3-card { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 14px; background: var(--surface);
    color: var(--ink); text-decoration: none; }
  .m3-card .lab { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--muted); }
  .m3-card .val { font-size: 18px; font-weight: 650; }
  .m3-chips { display: flex; gap: 10px; flex-wrap: wrap; }
  .m3-chip { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 22px; background: var(--surface);
    font-size: 17px; font-weight: 650; color: var(--ink); text-decoration: none; }
  .m3-dot { width: 8px; height: 8px; border-radius: 4px; background: #c98a1c; flex: none; }
  .m3-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--muted); }
  .m3-legend span { display: inline-flex; align-items: center; gap: 6px; }
  .m3-legend b { width: 8px; height: 8px; border-radius: 4px; display: inline-block; }
  .m3-base { display: block; color: var(--ink); text-decoration: none; }
  .m3-base + .m3-base { margin-top: 16px; }
  .m3-base .top { display: flex; justify-content: space-between; align-items: baseline; font-size: 16px; }
  .m3-sp-cash { background: var(--green); } .m3-sp-card { background: var(--blue); } .m3-sp-bank { background: #8a968c; }
  .m3-sp-usd { background: #b4bfb5; } .m3-sp-debt { background: var(--red); }
  .m3-debt { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding: 10px 16px;
    font-size: 16px; color: var(--ink); text-decoration: none; }
  .m3-debt + .m3-debt { border-top: 1px solid var(--line); }
  .m3-debt .t { grid-column: 1 / -1; height: 4px; border-radius: 2px; background: var(--red-soft); }
  .m3-debt .t i { display: block; height: 100%; border-radius: 2px; background: var(--red); }
  .m3-pills { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; }
  .m3-pills::-webkit-scrollbar { display: none; }
  .m3-pill { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-radius: 20px;
    background: var(--track); color: var(--ink); font-size: 15px; font-weight: 550; text-decoration: none; }
  .m3-pill.on { background: var(--ink); color: #fff; }
  .m3-more { position: relative; flex: none; }
  .m3-more > summary { background: transparent; box-shadow: none; width: 40px; height: 40px; border-radius: 20px; display: grid; place-items: center; list-style: none; font-size: 20px;
    font-weight: 700; color: var(--muted); cursor: pointer; }
  .m3-more > summary::-webkit-details-marker { display: none; }
  .m3-more > .row-menu-list { right: 0; left: auto; min-width: 220px; }
  .m3-more .sv-menu > a { min-height: 44px; display: flex; align-items: center; font-size: 15px; }
  .m3-pill .ic { width: 18px; height: 18px; }
  .m3-op { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 56px;
    padding: 6px 16px; box-sizing: border-box; color: var(--ink); text-decoration: none; font-size: 16px; }
  .m3-op + .m3-op { border-top: 1px solid var(--line); }
  .m3-op .t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .m3-op small { display: block; font-size: 13px; color: var(--muted); }
  /* Reyslar (telefon): yo'naltirish navbati kartasi va qoldiq chizig'i bilan reys qatori. */
  .m3-trip { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; align-items: center; padding: 12px 16px;
    color: var(--ink); text-decoration: none; }
  .m3-trip + .m3-trip { border-top: 1px solid var(--line); }
  .m3-trip small { font-size: 13px; color: var(--muted); white-space: nowrap; }
  .m3-trip .pb { grid-column: 1 / -1; height: 6px; border-radius: 3px; background: var(--track); overflow: hidden; }
  .m3-trip .pb i { display: block; height: 100%; background: var(--green); }
  /* Yo'naltirilmagan reyslar (19.10 QA ko'rigi: katta kartalar ekranni to'ldirardi) — bitta guruhda ixcham qatorlar. */
  .m3-unr-grp { box-shadow: inset 3px 0 0 #c98a1c; }
  .m3-unr { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 2px 12px; align-items: center; padding: 10px 12px 10px 16px; }
  .m3-unr + .m3-unr { border-top: 1px solid var(--line); }
  .m3-unr .t { min-width: 0; font-size: 16px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .m3-unr small { display: block; font-size: 13px; font-weight: 400; color: var(--muted); }
  .m3-btn { height: 40px; padding: 0 14px; border: 0; border-radius: 20px; background: var(--green); color: #fff;
    font: inherit; font-size: 15px; font-weight: 650; cursor: pointer; white-space: nowrap; }
  .m3-search > summary { width: 44px; height: 44px; display: grid; place-items: center; list-style: none; color: var(--muted); cursor: pointer; }
  .m3-search > summary::-webkit-details-marker { display: none; }
  .m3-search[open] { flex-basis: 100%; order: 9; }
  .m3-search[open] > summary { display: none; }
  .m3-search input { width: 100%; box-sizing: border-box; height: 46px; border: 0; border-radius: 12px; padding: 0 14px;
    background: var(--surface); font: inherit; font-size: 16px; }
  /* Kartalar: grid bolasi min-content bilan kengayib sahifani surardi (375 px'da 425 px). */
  .cards-layout { grid-template-columns: minmax(0, 1fr); }
  .cards-layout > * { min-width: 0; }
  .bank-overview-head > .list-toolbar { min-width: 0; max-width: 100%; }
  /* Telefonda sarlavha qatori v3 sahifada keraksiz (sahifa o'z boshini chizadi). */
  .admin-workspace:has([data-m3-home]) .admin-topbar, .admin-workspace:has([data-m3-base-page]) .admin-topbar,
  .admin-workspace:has([data-m3-kassa]) .admin-topbar,
  .admin-workspace:has([data-m3-trips]) .admin-topbar { display: none; }
}

