/*
 * Ombor CRM dizayn tizimi.
 * Tokenlar Tailwind palitrasidan: neytral = slate, aksent = blue-600, holat ranglari =
 * emerald / amber / rose / sky. Bootstrap 5.3 o'zgaruvchilari qayta belgilanadi, shuning
 * uchun sahifalardagi Bootstrap klasslari yangi ko'rinishni avtomatik oladi.
 */

/* ---------- Shrift: Inter (lokal, internet shart emas) ---------- */
@font-face {
    font-family: 'Inter'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('../vendor/inter/inter-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Inter'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('../vendor/inter/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Inter'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('../vendor/inter/inter-cyrillic-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ---------- Tokenlar: yorug' mavzu ---------- */
:root, [data-bs-theme=light] {
    --bs-font-sans-serif: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --bs-body-font-size: .875rem;
    --bs-body-line-height: 1.55;

    --bs-body-color: #1e293b;            /* slate-800 */
    --bs-body-color-rgb: 30, 41, 59;
    --bs-emphasis-color: #0f172a;        /* slate-900 */
    --bs-body-bg: #f1f5f9;               /* slate-100: ish maydoni */
    --bs-body-bg-rgb: 241, 245, 249;
    --bs-secondary-color: #64748b;       /* slate-500 */
    --bs-secondary-color-rgb: 100, 116, 139;
    --bs-tertiary-color: #94a3b8;        /* slate-400 */
    --bs-secondary-bg: #e2e8f0;
    --bs-tertiary-bg: #f8fafc;           /* slate-50 */
    --bs-border-color: #e2e8f0;          /* slate-200 */
    --bs-border-color-translucent: rgba(15, 23, 42, .08);
    --bs-heading-color: #0f172a;

    --bs-primary: #2563eb;  --bs-primary-rgb: 37, 99, 235;      /* blue-600 */
    --bs-success: #059669;  --bs-success-rgb: 5, 150, 105;      /* emerald-600 */
    --bs-warning: #d97706;  --bs-warning-rgb: 217, 119, 6;      /* amber-600 */
    --bs-danger: #e11d48;   --bs-danger-rgb: 225, 29, 72;       /* rose-600 */
    --bs-info: #0284c7;     --bs-info-rgb: 2, 132, 199;         /* sky-600 */
    --bs-secondary: #64748b; --bs-secondary-rgb: 100, 116, 139;
    --bs-dark: #0f172a;     --bs-dark-rgb: 15, 23, 42;

    --bs-primary-bg-subtle: #eff6ff;   --bs-primary-text-emphasis: #1d4ed8;   --bs-primary-border-subtle: #bfdbfe;
    --bs-success-bg-subtle: #ecfdf5;   --bs-success-text-emphasis: #047857;   --bs-success-border-subtle: #a7f3d0;
    --bs-warning-bg-subtle: #fffbeb;   --bs-warning-text-emphasis: #b45309;   --bs-warning-border-subtle: #fde68a;
    --bs-danger-bg-subtle: #fff1f2;    --bs-danger-text-emphasis: #be123c;    --bs-danger-border-subtle: #fecdd3;
    --bs-info-bg-subtle: #f0f9ff;      --bs-info-text-emphasis: #0369a1;      --bs-info-border-subtle: #bae6fd;
    --bs-secondary-bg-subtle: #f1f5f9; --bs-secondary-text-emphasis: #334155; --bs-secondary-border-subtle: #e2e8f0;
    --bs-dark-bg-subtle: #e2e8f0;      --bs-dark-text-emphasis: #0f172a;      --bs-dark-border-subtle: #cbd5e1;

    --bs-link-color: #2563eb; --bs-link-color-rgb: 37, 99, 235;
    --bs-link-hover-color: #1d4ed8; --bs-link-hover-color-rgb: 29, 78, 216;
    --bs-border-radius: .5rem; --bs-border-radius-sm: .375rem; --bs-border-radius-lg: .75rem; --bs-border-radius-xl: 1rem;
    --bs-focus-ring-color: rgba(59, 130, 246, .25);

    --app-surface: #ffffff;
    --app-surface-muted: #f8fafc;
    --app-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --app-shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
    --app-shadow-lg: 0 10px 30px -10px rgba(15, 23, 42, .25);
    --app-input-border: #cbd5e1;         /* slate-300 */
    --app-sidebar-bg: #0f172a;           /* slate-900 */
    --app-sidebar-border: #1e293b;
    --app-sidebar-text: #cbd5e1;         /* slate-300 */
    --app-sidebar-muted: #64748b;
    --app-sidebar-hover: rgba(148, 163, 184, .10);
    --app-sidebar-active: rgba(59, 130, 246, .18);
    --app-topbar-bg: rgba(255, 255, 255, .85);
    --app-thead-bg: #f8fafc;
    --app-row-hover: #f8fafc;
}

/* ---------- Tokenlar: qorong'i mavzu ---------- */
[data-bs-theme=dark] {
    --bs-body-color: #cbd5e1;  --bs-body-color-rgb: 203, 213, 225;
    --bs-emphasis-color: #f1f5f9;
    --bs-body-bg: #0b1120;     --bs-body-bg-rgb: 11, 17, 32;
    --bs-secondary-color: #94a3b8; --bs-secondary-color-rgb: 148, 163, 184;
    --bs-tertiary-color: #64748b;
    --bs-secondary-bg: #1e293b;
    --bs-tertiary-bg: #0f172a;
    --bs-border-color: #1e293b;
    --bs-border-color-translucent: rgba(148, 163, 184, .12);
    --bs-heading-color: #f1f5f9;

    --bs-primary: #3b82f6;  --bs-primary-rgb: 59, 130, 246;
    --bs-success: #10b981;  --bs-success-rgb: 16, 185, 129;
    --bs-warning: #f59e0b;  --bs-warning-rgb: 245, 158, 11;
    --bs-danger: #f43f5e;   --bs-danger-rgb: 244, 63, 94;
    --bs-info: #0ea5e9;     --bs-info-rgb: 14, 165, 233;

    --bs-primary-bg-subtle: rgba(59, 130, 246, .14);  --bs-primary-text-emphasis: #93c5fd;  --bs-primary-border-subtle: rgba(59, 130, 246, .35);
    --bs-success-bg-subtle: rgba(16, 185, 129, .14);  --bs-success-text-emphasis: #6ee7b7;  --bs-success-border-subtle: rgba(16, 185, 129, .35);
    --bs-warning-bg-subtle: rgba(245, 158, 11, .14);  --bs-warning-text-emphasis: #fcd34d;  --bs-warning-border-subtle: rgba(245, 158, 11, .35);
    --bs-danger-bg-subtle: rgba(244, 63, 94, .14);    --bs-danger-text-emphasis: #fda4af;   --bs-danger-border-subtle: rgba(244, 63, 94, .35);
    --bs-info-bg-subtle: rgba(14, 165, 233, .14);     --bs-info-text-emphasis: #7dd3fc;     --bs-info-border-subtle: rgba(14, 165, 233, .35);
    --bs-secondary-bg-subtle: #1e293b;                --bs-secondary-text-emphasis: #cbd5e1; --bs-secondary-border-subtle: #334155;
    --bs-dark-bg-subtle: #1e293b;                     --bs-dark-text-emphasis: #e2e8f0;      --bs-dark-border-subtle: #334155;

    --bs-link-color: #60a5fa; --bs-link-color-rgb: 96, 165, 250;
    --bs-link-hover-color: #93c5fd; --bs-link-hover-color-rgb: 147, 197, 253;

    --app-surface: #0f172a;
    --app-surface-muted: #111c33;
    --app-shadow-sm: none;
    --app-shadow: none;
    --app-shadow-lg: 0 10px 30px -10px rgba(0, 0, 0, .6);
    --app-input-border: #334155;
    --app-sidebar-bg: #020617;           /* slate-950 */
    --app-sidebar-border: #1e293b;
    --app-topbar-bg: rgba(11, 17, 32, .85);
    --app-thead-bg: #111c33;
    --app-row-hover: #111c33;
}

/* ---------- Asos ---------- */
body { font-feature-settings: 'cv11', 'ss01'; -webkit-font-smoothing: antialiased; }
h1, .h1, h2, .h2, h3, .h3 { letter-spacing: -.02em; font-weight: 600; }
h4, .h4, h5, .h5 { font-weight: 600; letter-spacing: -.01em; }
a { text-decoration: none; }
main a:not(.btn):not(.nav-link):not(.list-group-item):not(.card):hover { text-decoration: underline; text-underline-offset: 2px; }
code { color: var(--bs-secondary-text-emphasis); background: var(--bs-secondary-bg-subtle); padding: .1em .35em; border-radius: .25rem; font-size: .85em; }
.num, .table td.num, .table th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabular { font-variant-numeric: tabular-nums; }
.min-w-0 { min-width: 0; }
.text-muted, .text-secondary { color: var(--bs-secondary-color) !important; }
.fw-medium { font-weight: 500 !important; }
::selection { background: rgba(59, 130, 246, .25); }
kbd { background: var(--app-surface); color: var(--bs-secondary-color); border: 1px solid var(--bs-border-color); border-bottom-width: 2px; font-size: .7rem; padding: .05rem .35rem; border-radius: .3rem; font-family: inherit; }

/* ---------- Karkas: sidebar + asosiy ustun ---------- */
.app-shell { display: flex; min-height: 100vh; }
.app-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.app-content { padding: 1.5rem; width: 100%; max-width: 1600px; }
@media (max-width: 575.98px) { .app-content { padding: 1rem; } }

.sidebar {
    width: 256px; flex-shrink: 0; background: var(--app-sidebar-bg); color: var(--app-sidebar-text);
    border-right: 1px solid var(--app-sidebar-border);
}
/* Bootstrap .offcanvas-lg katta ekranda fonni "transparent !important" qiladi */
.sidebar.offcanvas-lg { background-color: var(--app-sidebar-bg) !important; }
@media (min-width: 992px) {
    .sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; }
    .sidebar .offcanvas-body { flex: 1 1 auto; flex-direction: column; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #334155 transparent; }
}
.sidebar.offcanvas-lg { --bs-offcanvas-bg: var(--app-sidebar-bg); --bs-offcanvas-color: var(--app-sidebar-text); --bs-offcanvas-width: 272px; }
.sidebar-brand { display: flex; align-items: center; gap: .75rem; padding: 1.1rem 1.25rem; color: #fff; }
.sidebar-brand:hover { color: #fff; }
.brand-mark {
    width: 36px; height: 36px; border-radius: .625rem; display: grid; place-items: center; flex-shrink: 0;
    background: linear-gradient(135deg, #3b82f6, #1d4ed8); color: #fff; font-size: 1.1rem;
    box-shadow: 0 6px 16px -6px rgba(37, 99, 235, .8);
}
.brand-name { font-weight: 700; letter-spacing: -.01em; line-height: 1.1; }
.brand-sub { font-size: .72rem; color: var(--app-sidebar-muted); }
.sidebar-heading { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--app-sidebar-muted); padding: 1.1rem 1.5rem .35rem; }
.sidebar .nav-link {
    display: flex; align-items: center; gap: .7rem; margin: 1px .75rem; padding: .5rem .75rem; border-radius: .5rem;
    color: var(--app-sidebar-text); font-weight: 500; transition: background-color .15s ease-out, color .15s ease-out;
}
.sidebar .nav-link .bi { font-size: 1.05rem; color: var(--app-sidebar-muted); transition: color .15s ease-out; }
.sidebar .nav-link:hover { background: var(--app-sidebar-hover); color: #fff; }
.sidebar .nav-link:hover .bi { color: #cbd5e1; }
.sidebar .nav-link.active { background: var(--app-sidebar-active); color: #fff; box-shadow: inset 2px 0 0 #3b82f6; }
.sidebar .nav-link.active .bi { color: #60a5fa; }
.sidebar .nav-count { margin-left: auto; font-size: .7rem; font-weight: 600; padding: .1rem .45rem; border-radius: 999px; background: rgba(148, 163, 184, .16); color: #e2e8f0; }
.sidebar .nav-count.is-warning { background: rgba(245, 158, 11, .2); color: #fcd34d; }
.sidebar .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* Accordion bo'lim sarlavhalari */
.sidebar-section {
    display: flex; align-items: center; gap: .7rem; width: calc(100% - 1.5rem); margin: .35rem .75rem 0; padding: .55rem .75rem;
    border: 0; border-radius: .5rem; background: none; color: #e2e8f0; font-weight: 600; font-size: .82rem; text-align: left;
    transition: background-color .15s ease-out;
}
.sidebar-section > .bi:first-child { font-size: 1.05rem; color: var(--app-sidebar-muted); }
.sidebar-section:hover { background: var(--app-sidebar-hover); }
.sidebar-section:focus-visible { outline: 2px solid #3b82f6; outline-offset: 1px; }
.sidebar-section .chevron { margin-left: auto; font-size: .75rem; color: var(--app-sidebar-muted); transition: transform .2s ease-out; }
.sidebar-section.collapsed .chevron { transform: rotate(-90deg); }
.sidebar-section .section-count { margin-left: auto; }
.sidebar-section .section-count + .chevron { margin-left: .4rem; }
.sidebar-section:not(.collapsed) .section-count { display: none; }
.sidebar-section:not(.collapsed) .section-count + .chevron { margin-left: auto; }
.sidebar-group { position: relative; padding: .15rem 0 .35rem; }
.sidebar-group::before { content: ''; position: absolute; left: 1.95rem; top: .2rem; bottom: .5rem; width: 1px; background: var(--app-sidebar-border); }
.sidebar-group .nav-link { margin-left: 1.6rem; padding-left: .85rem; }
.sidebar-group .nav-link .bi { font-size: .95rem; }
.sidebar-footer { padding: 1rem 1.25rem; border-top: 1px solid var(--app-sidebar-border); font-size: .72rem; color: var(--app-sidebar-muted); margin-top: auto; }

.topbar {
    position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; gap: .75rem;
    padding: .65rem 1.5rem; background: var(--app-topbar-bg); backdrop-filter: saturate(180%) blur(8px);
    border-bottom: 1px solid var(--bs-border-color);
}
@media (max-width: 575.98px) { .topbar { padding: .6rem 1rem; } }
.topbar-search { position: relative; flex: 1 1 auto; max-width: 560px; }
.topbar-search .bi-search { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--bs-tertiary-color); pointer-events: none; }
.topbar-search .form-control { padding-left: 2.4rem; padding-right: 2.5rem; background: var(--bs-tertiary-bg); border-color: transparent; }
.topbar-search .form-control:focus { background: var(--app-surface); }
.topbar-search kbd { position: absolute; right: .6rem; top: 50%; transform: translateY(-50%); }
.icon-btn {
    width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: .5rem; flex-shrink: 0;
    border: 1px solid var(--bs-border-color); background: var(--app-surface); color: var(--bs-secondary-color);
    transition: background-color .15s ease-out, color .15s ease-out;
}
.icon-btn:hover { color: var(--bs-emphasis-color); background: var(--bs-tertiary-bg); }
.user-chip { display: flex; align-items: center; gap: .6rem; padding: .25rem .5rem .25rem .25rem; border-radius: .6rem; border: 1px solid transparent; background: none; color: inherit; }
.user-chip:hover, .user-chip[aria-expanded=true] { background: var(--bs-tertiary-bg); border-color: var(--bs-border-color); }
.avatar {
    width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0;
    background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); font-weight: 600; font-size: .78rem;
}
.user-chip .name { font-weight: 600; font-size: .82rem; line-height: 1.2; color: var(--bs-emphasis-color); }
.user-chip .role { font-size: .72rem; color: var(--bs-secondary-color); line-height: 1.2; }

/* ---------- Sahifa sarlavhasi ---------- */
.page-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.page-title { font-size: 1.5rem; font-weight: 650; letter-spacing: -.025em; margin: 0; color: var(--bs-emphasis-color); display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.page-subtitle { color: var(--bs-secondary-color); margin-top: .25rem; }
/* Oddiy sahifalardagi sarlavhalar ham page-title bilan bir xil ko'rinadi */
.app-content h1.h4 { font-size: 1.5rem; font-weight: 650; letter-spacing: -.025em; color: var(--bs-emphasis-color); }
.app-content > h1.h4.mb-3, .app-content > .d-flex.mb-3:first-of-type { margin-bottom: 1.5rem !important; }
.page-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.page-eyebrow { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--bs-primary); margin-bottom: .2rem; }

/* ---------- Kartalar ---------- */
.card {
    --bs-card-bg: var(--app-surface); --bs-card-border-color: var(--bs-border-color); --bs-card-border-radius: .75rem;
    --bs-card-inner-border-radius: calc(.75rem - 1px); --bs-card-cap-bg: transparent; --bs-card-cap-padding-y: .85rem; --bs-card-cap-padding-x: 1.25rem;
    --bs-card-spacer-x: 1.25rem; --bs-card-spacer-y: 1.1rem;
    box-shadow: var(--app-shadow);
}
.card-header { font-weight: 600; color: var(--bs-emphasis-color); display: flex; align-items: center; gap: .5rem; }
.card-header .bi { color: var(--bs-secondary-color); }
.card-footer { background: var(--app-surface-muted); }
a.card { transition: border-color .15s ease-out, box-shadow .15s ease-out, transform .15s ease-out; color: inherit; }
a.card:hover { border-color: var(--bs-primary-border-subtle); box-shadow: var(--app-shadow-lg); transform: translateY(-1px); }

/* KPI kartasi */
.kpi { display: flex; gap: 1rem; align-items: flex-start; }
.kpi-icon { width: 44px; height: 44px; border-radius: .75rem; display: grid; place-items: center; font-size: 1.25rem; flex-shrink: 0; }
.kpi-label { font-size: .8rem; color: var(--bs-secondary-color); font-weight: 500; }
.kpi-value { font-size: 1.75rem; font-weight: 650; letter-spacing: -.03em; line-height: 1.15; color: var(--bs-emphasis-color); font-variant-numeric: tabular-nums; }
.kpi-hint { font-size: .78rem; color: var(--bs-secondary-color); }
.tone-primary { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); }
.tone-success { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
.tone-warning { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); }
.tone-danger  { background: var(--bs-danger-bg-subtle);  color: var(--bs-danger-text-emphasis); }
.tone-info    { background: var(--bs-info-bg-subtle);    color: var(--bs-info-text-emphasis); }
.tone-secondary { background: var(--bs-secondary-bg-subtle); color: var(--bs-secondary-text-emphasis); }

/* Tezkor amallar */
.quick-action {
    display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; border-radius: .75rem;
    background: var(--app-surface); border: 1px solid var(--bs-border-color); color: var(--bs-emphasis-color); font-weight: 500;
    box-shadow: var(--app-shadow-sm); transition: border-color .15s ease-out, box-shadow .15s ease-out;
}
.quick-action:hover { border-color: var(--bs-primary-border-subtle); box-shadow: var(--app-shadow-lg); color: var(--bs-emphasis-color); }
.quick-action .kpi-icon { width: 36px; height: 36px; font-size: 1.05rem; border-radius: .6rem; }

/* ---------- Jadvallar ---------- */
.table {
    --bs-table-bg: transparent; --bs-table-color: var(--bs-body-color); --bs-table-border-color: var(--bs-border-color);
    --bs-table-hover-bg: var(--app-row-hover); --bs-table-hover-color: var(--bs-body-color); margin-bottom: 0;
}
.table > :not(caption) > * > * { padding: .7rem 1rem; }
.table-sm > :not(caption) > * > * { padding: .5rem .85rem; }
.table > thead > tr > th {
    background: var(--app-thead-bg); color: var(--bs-secondary-color); font-size: .72rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .05em; border-bottom-width: 1px; white-space: nowrap;
}
.card > .table-responsive > .table > thead > tr:first-child > th:first-child,
.card > .table-responsive:first-child > .table > thead > tr:first-child > th:first-child { border-top-left-radius: calc(.75rem - 1px); }
.card > .table-responsive:first-child > .table > thead > tr:first-child > th:last-child { border-top-right-radius: calc(.75rem - 1px); }
.table > tbody > tr:last-child > * { border-bottom: 0; }
.table td, .table th { vertical-align: middle; }
.table-nowrap td, .table-nowrap th { white-space: nowrap; }
.table .text-wrap { white-space: normal; min-width: 180px; }
.table-danger { --bs-table-bg: var(--bs-danger-bg-subtle); --bs-table-color: inherit; --bs-table-border-color: var(--bs-border-color); }
.table-warning { --bs-table-bg: var(--bs-warning-bg-subtle); --bs-table-color: inherit; --bs-table-border-color: var(--bs-border-color); }
.table-secondary { --bs-table-bg: var(--app-surface-muted); --bs-table-color: var(--bs-secondary-color); --bs-table-border-color: var(--bs-border-color); }
.table-light { --bs-table-bg: var(--app-thead-bg); --bs-table-color: inherit; --bs-table-border-color: var(--bs-border-color); }
.table-bordered > :not(caption) > * > * { border-color: var(--bs-border-color); }
.cell-title { font-weight: 500; color: var(--bs-emphasis-color); }
.cell-sub { font-size: .78rem; color: var(--bs-secondary-color); }
.qty-pos { color: var(--bs-success-text-emphasis); font-weight: 500; }
.qty-neg { color: var(--bs-danger-text-emphasis); font-weight: 500; }
.sticky-head thead th { position: sticky; top: 61px; z-index: 2; }

/* ---------- Holat belgilari ---------- */
.status {
    display: inline-flex; align-items: center; gap: .4rem; padding: .2rem .6rem; border-radius: 999px;
    font-size: .74rem; font-weight: 600; line-height: 1.4; white-space: nowrap; border: 1px solid transparent;
}
.status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status.count { min-width: 1.6rem; justify-content: center; padding: .15rem .5rem; }
.status.count::before { display: none; }
.status-primary { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); border-color: var(--bs-primary-border-subtle); }
.status-secondary { background: var(--bs-secondary-bg-subtle); color: var(--bs-secondary-text-emphasis); border-color: var(--bs-secondary-border-subtle); }
.status-info { background: var(--bs-info-bg-subtle); color: var(--bs-info-text-emphasis); border-color: var(--bs-info-border-subtle); }
.status-warning { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); border-color: var(--bs-warning-border-subtle); }
.status-success { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); border-color: var(--bs-success-border-subtle); }
.status-danger { background: var(--bs-danger-bg-subtle); color: var(--bs-danger-text-emphasis); border-color: var(--bs-danger-border-subtle); }
.status-dark { background: var(--bs-dark-bg-subtle); color: var(--bs-dark-text-emphasis); border-color: var(--bs-dark-border-subtle); }
.badge { font-weight: 600; letter-spacing: .01em; }
.badge.text-bg-light { background: var(--bs-secondary-bg-subtle) !important; color: var(--bs-secondary-text-emphasis) !important; border-color: var(--bs-border-color) !important; }
.badge.text-bg-warning { background: var(--bs-warning-bg-subtle) !important; color: var(--bs-warning-text-emphasis) !important; }
.badge.text-bg-secondary { background: var(--bs-secondary-bg-subtle) !important; color: var(--bs-secondary-text-emphasis) !important; }
.badge.text-bg-dark { background: var(--bs-dark-bg-subtle) !important; color: var(--bs-dark-text-emphasis) !important; }

/* ---------- Hujjat bosqichlari ---------- */
.doc-steps { display: flex; align-items: center; gap: .5rem; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.doc-step { display: flex; align-items: center; gap: .5rem; color: var(--bs-tertiary-color); font-size: .8rem; font-weight: 500; }
.doc-step .dot {
    width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .7rem; font-weight: 700;
    border: 2px solid var(--bs-border-color); background: var(--app-surface);
}
.doc-step.done { color: var(--bs-secondary-color); }
.doc-step.done .dot { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
.doc-step.current { color: var(--bs-emphasis-color); font-weight: 600; }
.doc-step.current .dot { border-color: var(--bs-primary); color: var(--bs-primary); box-shadow: 0 0 0 4px var(--bs-primary-bg-subtle); }
.doc-step.failed .dot { background: var(--bs-danger); border-color: var(--bs-danger); color: #fff; }
.doc-step.failed { color: var(--bs-danger-text-emphasis); font-weight: 600; }
.doc-step-line { width: 28px; height: 2px; background: var(--bs-border-color); border-radius: 2px; }
.doc-step-line.done { background: var(--bs-primary); }
.doc-steps.is-cancelled .doc-step, .doc-steps.is-cancelled .doc-step-line { opacity: .55; }

/* Hujjat ma'lumot paneli */
.info-list { margin: 0; }
.info-list > div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed var(--bs-border-color); }
.info-list > div:last-child { border-bottom: 0; }
.info-list dt { font-weight: 500; color: var(--bs-secondary-color); font-size: .8rem; }
.info-list dd { margin: 0; text-align: right; color: var(--bs-emphasis-color); font-weight: 500; }
.info-list dd .sub { display: block; font-size: .75rem; color: var(--bs-secondary-color); font-weight: 400; }

/* Bo'sh holat */
.empty-state { text-align: center; padding: 2.5rem 1rem; }
.empty-state .empty-icon {
    width: 56px; height: 56px; border-radius: 1rem; display: inline-grid; place-items: center; font-size: 1.5rem;
    background: var(--bs-secondary-bg-subtle); color: var(--bs-secondary-color); margin-bottom: .85rem;
}
.empty-state .empty-title { font-weight: 600; color: var(--bs-emphasis-color); }
.empty-state .empty-text { color: var(--bs-secondary-color); max-width: 420px; margin: .25rem auto 1rem; }

/* Progress (qoldiq / minimum) */
.progress { --bs-progress-height: .375rem; --bs-progress-bg: var(--bs-secondary-bg-subtle); --bs-progress-border-radius: 999px; }
.progress-bar { --bs-progress-bar-bg: var(--bs-primary); }

/* ---------- Tugmalar ---------- */
.btn { --bs-btn-font-weight: 500; --bs-btn-padding-x: .9rem; --bs-btn-padding-y: .45rem; --bs-btn-font-size: .875rem; --bs-btn-border-radius: .5rem;
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem; transition: all .15s ease-out; }
.btn-sm { --bs-btn-padding-x: .6rem; --bs-btn-padding-y: .3rem; --bs-btn-font-size: .8rem; --bs-btn-border-radius: .4rem; }
.btn-lg { --bs-btn-padding-y: .65rem; --bs-btn-font-size: 1rem; --bs-btn-border-radius: .6rem; }
.btn-primary {
    --bs-btn-bg: #2563eb; --bs-btn-border-color: #2563eb; --bs-btn-hover-bg: #1d4ed8; --bs-btn-hover-border-color: #1d4ed8;
    --bs-btn-active-bg: #1e40af; --bs-btn-active-border-color: #1e40af; --bs-btn-disabled-bg: #93c5fd; --bs-btn-disabled-border-color: #93c5fd;
    --bs-btn-focus-shadow-rgb: 59, 130, 246; box-shadow: 0 1px 2px rgba(37, 99, 235, .25);
}
.btn-success {
    --bs-btn-bg: #059669; --bs-btn-border-color: #059669; --bs-btn-hover-bg: #047857; --bs-btn-hover-border-color: #047857;
    --bs-btn-active-bg: #065f46; --bs-btn-active-border-color: #065f46; --bs-btn-focus-shadow-rgb: 16, 185, 129;
}
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary-text-emphasis); --bs-btn-border-color: var(--bs-primary-border-subtle); --bs-btn-bg: var(--app-surface);
    --bs-btn-hover-bg: var(--bs-primary-bg-subtle); --bs-btn-hover-color: var(--bs-primary-text-emphasis); --bs-btn-hover-border-color: var(--bs-primary-border-subtle);
    --bs-btn-active-bg: var(--bs-primary-bg-subtle); --bs-btn-active-color: var(--bs-primary-text-emphasis); --bs-btn-active-border-color: var(--bs-primary);
}
.btn-outline-secondary {
    --bs-btn-color: var(--bs-body-color); --bs-btn-border-color: var(--bs-border-color); --bs-btn-bg: var(--app-surface);
    --bs-btn-hover-bg: var(--bs-tertiary-bg); --bs-btn-hover-color: var(--bs-emphasis-color); --bs-btn-hover-border-color: var(--app-input-border);
    --bs-btn-active-bg: var(--bs-secondary-bg); --bs-btn-active-color: var(--bs-emphasis-color); --bs-btn-active-border-color: var(--app-input-border);
    box-shadow: var(--app-shadow-sm);
}
.btn-outline-danger {
    --bs-btn-color: var(--bs-danger-text-emphasis); --bs-btn-border-color: var(--bs-danger-border-subtle); --bs-btn-bg: var(--app-surface);
    --bs-btn-hover-bg: var(--bs-danger-bg-subtle); --bs-btn-hover-color: var(--bs-danger-text-emphasis); --bs-btn-hover-border-color: var(--bs-danger-border-subtle);
    --bs-btn-active-bg: var(--bs-danger-bg-subtle); --bs-btn-active-color: var(--bs-danger-text-emphasis); --bs-btn-active-border-color: var(--bs-danger);
}
.btn-secondary { --bs-btn-bg: #334155; --bs-btn-border-color: #334155; --bs-btn-hover-bg: #1e293b; --bs-btn-hover-border-color: #1e293b; }

/* ---------- Formalar ---------- */
.form-label { font-weight: 500; font-size: .8rem; color: var(--bs-emphasis-color); margin-bottom: .35rem; }
.form-text { color: var(--bs-secondary-color); font-size: .78rem; }
.form-control, .form-select { border-color: var(--app-input-border); border-radius: .5rem; padding: .5rem .75rem; font-size: .875rem; background-color: var(--app-surface); }
.form-control-sm, .form-select-sm { padding: .3rem .55rem; font-size: .8rem; border-radius: .4rem; }
.form-control-lg { padding: .65rem .9rem; font-size: 1rem; border-radius: .6rem; }
.form-control:focus, .form-select:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, .2); }
.form-control::placeholder { color: var(--bs-tertiary-color); }
.form-check-input { border-color: var(--app-input-border); }
.form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); }
.form-check-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, .2); }
.input-group-text { background: var(--bs-tertiary-bg); border-color: var(--app-input-border); color: var(--bs-secondary-color); }
.qty-input { max-width: 8rem; text-align: right; font-variant-numeric: tabular-nums; }
.form-section { background: var(--app-surface-muted); border: 1px solid var(--bs-border-color); border-radius: .75rem; padding: 1rem 1.1rem; }

/* Mahsulot tanlagich */
.picker { position: relative; }
.picker .dropdown-menu { width: 100%; max-height: 320px; overflow-y: auto; }

/* ---------- Boshqa komponentlar ---------- */
.dropdown-menu {
    --bs-dropdown-bg: var(--app-surface); --bs-dropdown-border-color: var(--bs-border-color); --bs-dropdown-border-radius: .65rem;
    --bs-dropdown-link-active-bg: var(--bs-primary-bg-subtle); --bs-dropdown-link-active-color: var(--bs-primary-text-emphasis);
    --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); --bs-dropdown-item-padding-y: .45rem; --bs-dropdown-font-size: .875rem;
    box-shadow: var(--app-shadow-lg); padding: .35rem;
}
.dropdown-item { border-radius: .4rem; display: flex; align-items: center; gap: .55rem; }
.dropdown-item .bi { color: var(--bs-secondary-color); }
.list-group { --bs-list-group-bg: transparent; --bs-list-group-border-color: var(--bs-border-color); --bs-list-group-action-hover-bg: var(--app-row-hover); --bs-list-group-item-padding-x: 1.25rem; }
.alert { --bs-alert-border-radius: .65rem; border-width: 1px; }
.pagination { --bs-pagination-color: var(--bs-body-color); --bs-pagination-bg: var(--app-surface); --bs-pagination-border-color: var(--bs-border-color);
    --bs-pagination-hover-bg: var(--bs-tertiary-bg); --bs-pagination-hover-color: var(--bs-emphasis-color); --bs-pagination-hover-border-color: var(--bs-border-color);
    --bs-pagination-active-bg: var(--bs-primary); --bs-pagination-active-border-color: var(--bs-primary);
    --bs-pagination-disabled-bg: var(--app-surface-muted); --bs-pagination-disabled-border-color: var(--bs-border-color);
    --bs-pagination-font-size: .85rem; --bs-pagination-border-radius: .5rem; margin-bottom: 0; }
nav[role=navigation] p.small { color: var(--bs-secondary-color); margin-bottom: 0; }
.btn-group > .btn-outline-secondary { box-shadow: none; }
details > summary { cursor: pointer; color: var(--bs-primary-text-emphasis); }

/* Toast xabarlar */
.toast-stack { position: fixed; top: 1rem; right: 1rem; z-index: 1090; display: flex; flex-direction: column; gap: .5rem; }
.app-toast {
    display: flex; align-items: flex-start; gap: .65rem; min-width: 280px; max-width: 420px; padding: .8rem 1rem;
    background: var(--app-surface); border: 1px solid var(--bs-border-color); border-left: 4px solid var(--bs-success);
    border-radius: .65rem; box-shadow: var(--app-shadow-lg); color: var(--bs-emphasis-color); font-weight: 500;
    animation: toast-in .2s ease-out;
}
.app-toast .bi { color: var(--bs-success); font-size: 1.1rem; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Mahsulot rasmi */
.product-thumb { width: 160px; height: 160px; object-fit: contain; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); }

/* Kirish sahifasi */
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: 1fr; background: var(--bs-body-bg); }
@media (min-width: 992px) { .auth-shell { grid-template-columns: minmax(420px, 5fr) 7fr; } }
.auth-brand {
    position: relative; overflow: hidden; color: #e2e8f0; padding: 3rem; display: none; flex-direction: column; justify-content: space-between;
    background: radial-gradient(1200px 500px at -10% -10%, rgba(59, 130, 246, .35), transparent 60%),
                radial-gradient(800px 400px at 110% 110%, rgba(14, 165, 233, .18), transparent 60%), #0f172a;
}
@media (min-width: 992px) { .auth-brand { display: flex; } }
.auth-brand::after {
    content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image: linear-gradient(rgba(148, 163, 184, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, .07) 1px, transparent 1px);
    background-size: 32px 32px; mask-image: linear-gradient(180deg, #000, transparent 85%);
}
.auth-brand > * { position: relative; z-index: 1; }
.auth-brand h2 { color: #fff; font-size: 2rem; line-height: 1.2; max-width: 440px; letter-spacing: -.03em; }
.auth-feature { display: flex; gap: .85rem; align-items: flex-start; margin-top: 1.1rem; max-width: 420px; }
.auth-feature .bi { width: 34px; height: 34px; border-radius: .6rem; display: grid; place-items: center; background: rgba(59, 130, 246, .18); color: #93c5fd; flex-shrink: 0; }
.auth-feature strong { color: #fff; display: block; font-weight: 600; }
.auth-feature span { color: #94a3b8; font-size: .85rem; }
.auth-form { display: flex; align-items: center; justify-content: center; padding: 2rem 1.25rem; }
.auth-card { width: 100%; max-width: 400px; }

/* Telefonda jadval qatorlari kartochkaga aylanadi (yig'ish va sanoq): kiritish maydoni ekrandan chiqmaydi */
@media (max-width: 575.98px) {
    .table-stack thead { display: none; }
    .table-stack, .table-stack tbody, .table-stack tr, .table-stack td { display: block; width: 100%; }
    .table-stack tr { padding: .75rem 1rem; border-bottom: 1px solid var(--bs-border-color); }
    .table-stack tr:last-child { border-bottom: 0; }
    .table-stack > :not(caption) > * > * { padding: .2rem 0 !important; border: 0; white-space: normal !important; text-align: left; }
    .table-stack td[data-label] { display: flex; justify-content: space-between; align-items: center; gap: 1rem; text-align: right; }
    .table-stack td[data-label]::before { content: attr(data-label); color: var(--bs-secondary-color); font-size: .78rem; font-weight: 500; }
    .table-stack td.stack-title { font-size: .95rem; padding-bottom: .35rem !important; }
    .table-stack .qty-input { max-width: 9rem; margin-left: 0 !important; }
}

/* Omborchi telefonda: katta bosiladigan maydonlar */
@media (max-width: 576px) {
    .btn { --bs-btn-padding-y: .6rem; }
    .form-control, .form-select { min-height: 44px; }
    .page-title { font-size: 1.3rem; }
}
@media print {
    .sidebar, .topbar, .no-print, .btn, .toast-stack { display: none !important; }
    .app-content { padding: 0 !important; }
    .card { box-shadow: none; }
}

/* Ishni boshlash qadamlari */
.onboarding-step { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; flex: none; border-radius: 999px; border: 1.5px solid var(--bs-primary); color: var(--bs-primary); font-size: .8rem; font-weight: 600; }

/* Tanlov kartochkasi (radio): xodim darajasi */
.choice-card { display: flex; gap: .75rem; align-items: flex-start; height: 100%; padding: .85rem 1rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; cursor: pointer; transition: border-color .15s ease-out, background-color .15s ease-out; }
.choice-card:hover { background: var(--bs-tertiary-bg); }
.choice-card:has(input:checked) { border-color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
.choice-card .form-check-input { margin-top: .2rem; flex: none; }
fieldset:disabled .choice-card { cursor: not-allowed; opacity: .75; }
