/**
 * DesignCode UI — Glass style, brand «Перевозки»
 * Loaded after Bootstrap; overrides via CSS variables (--dc-*, --ta-*).
 */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ─── Primitives ─── */
:root {
    --dc-font: 'Inter', system-ui, -apple-system, sans-serif;
    --dc-brand: #4f46e5;
    --dc-brand-hover: #4338ca;
    --dc-accent: #4f46e5;
    --dc-accent-muted: rgba(79, 70, 229, 0.28);
    --dc-focus-ring: rgba(79, 70, 229, 0.22);
    --dc-accent-glow: rgba(79, 70, 229, 0.45);
    --dc-radius: 10px;
    --dc-radius-sm: 8px;
    --ta-btn-lg-height: 42px;
    --ta-btn-lg-padding: 0.5rem 1.25rem;
    --ta-btn-lg-font: 0.9375rem;
    --ta-btn-md-height: 36px;
    --ta-btn-md-padding: 0.375rem 1rem;
    --ta-btn-md-font: 0.875rem;
    --ta-btn-sm-height: 28px;
    --ta-btn-sm-padding: 0.2rem 0.65rem;
    --ta-btn-sm-font: 0.8125rem;
    --dc-blur: 10px;
    --dc-blur-strong: 20px;
    --dc-screen-padding: 24px;
    --dc-sidebar-width: 260px;
    --dc-sidebar-collapsed-width: 72px;
    --dc-sidebar-gap: 12px;
    --dc-sidebar-inset: 12px;
    --dc-main-offset: calc(var(--dc-sidebar-width) + var(--dc-sidebar-inset) + var(--dc-sidebar-gap));
    --dc-main-offset-collapsed: calc(var(--dc-sidebar-collapsed-width) + var(--dc-sidebar-inset) + var(--dc-sidebar-gap));

    /* Light — glass on soft background */
    --dc-bg-base: #e8ecf4;
    --dc-bg-gradient-1: rgba(159, 115, 241, 0.12);
    --dc-bg-gradient-2: rgba(95, 197, 255, 0.15);
    --dc-bg-gradient-3: rgba(255, 172, 137, 0.1);
    --dc-bg-grid: rgba(0, 0, 0, 0.04);

    --dc-fg-primary: #111827;
    --dc-fg-secondary: rgba(17, 24, 39, 0.65);
    --dc-glass-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.55) 100%);
    --dc-glass-border: rgba(255, 255, 255, 0.85);
    --dc-glass-shadow:
        0 1px 0 rgba(0, 0, 0, 0.04),
        0 5px 10px rgba(0, 0, 0, 0.06),
        0 15px 30px rgba(0, 0, 0, 0.08);
    /* Непрозрачная поверхность без backdrop-filter (плавный скролл) */
    --dc-surface-solid: rgba(255, 255, 255, 0.97);

    --dc-glass-glow: conic-gradient(
        from 90deg at 50% 50%,
        rgba(159, 115, 241, 0) 0%,
        rgba(95, 197, 255, 0.2) 50%,
        rgba(255, 172, 137, 0.15) 75%,
        rgba(159, 115, 241, 0) 100%
    );

    --dc-nav-active-bg: linear-gradient(90deg, rgba(17, 24, 39, 0.12) 0%, rgba(17, 24, 39, 0) 100%);
    --dc-nav-active-border: var(--dc-accent);
    --dc-divider: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.12) 0%, transparent 70%);

    /* Components */
    --dc-input-bg: rgba(255, 255, 255, 0.55);
    --dc-input-border: rgba(17, 24, 39, 0.18);
    --dc-input-placeholder: rgba(17, 24, 39, 0.4);
    --dc-table-border: rgba(17, 24, 39, 0.08);
    --dc-table-hover: rgba(17, 24, 39, 0.04);
    --dc-table-sticky-bg: rgba(255, 255, 255, 0.78);
    --dc-chart-grid: rgba(17, 24, 39, 0.08);
    --dc-chart-bar-bg: rgba(17, 24, 39, 0.55);
    --dc-chart-bar-border: #374151;
    --dc-chart-gradient-start: rgba(17, 24, 39, 0.35);
    --dc-chart-gradient-end: rgba(17, 24, 39, 0.01);
    --dc-btn-outline-bg: rgba(255, 255, 255, 0.4);
    --dc-btn-outline-border: rgba(17, 24, 39, 0.22);
    --dc-btn-outline-hover-border: rgba(17, 24, 39, 0.32);
    --dc-btn-shadow: 0 1px 0 rgba(0, 0, 0, 0.06), 0 4px 12px rgba(17, 24, 39, 0.12);
    --dc-link: #1d4ed8;
    --dc-link-hover: #1e40af;
    --dc-alert-success-bg: rgba(34, 197, 94, 0.12);
    --dc-alert-success-border: rgba(34, 197, 94, 0.35);
    --dc-alert-warning-bg: rgba(245, 158, 11, 0.12);
    --dc-alert-warning-border: rgba(245, 158, 11, 0.35);
    --dc-alert-danger-bg: rgba(239, 68, 68, 0.1);
    --dc-alert-danger-border: rgba(239, 68, 68, 0.35);
    --dc-alert-info-bg: rgba(59, 130, 246, 0.1);
    --dc-alert-info-border: rgba(59, 130, 246, 0.3);
    --dc-alert-success-fg: #166534;
    --dc-alert-warning-fg: #92400e;
    --dc-btn-warning-bg: #d97706;
    --dc-btn-warning-border: #b45309;
    --dc-btn-warning-hover-bg: #b45309;
    --dc-btn-warning-hover-border: #92400e;
    --dc-btn-warning-fg: #ffffff;
    --dc-btn-warning-focus-ring: rgba(245, 158, 11, 0.4);
    --dc-alert-danger-fg: #991b1b;
    --dc-alert-info-fg: #1e40af;

    --dc-badge-payment-cash-bg: #fef3c7;
    --dc-badge-payment-cash-fg: #92400e;
    --dc-badge-payment-cash-border: #fcd34d;
    --dc-badge-payment-corporate-bg: #e5e7eb;
    --dc-badge-payment-corporate-fg: #374151;
    --dc-badge-payment-corporate-border: #d1d5db;
    --dc-badge-status-completed-bg: #22c55e;
    --dc-badge-status-completed-fg: #fff;
    --dc-badge-status-completed-border: #16a34a;
    --dc-badge-status-planned-bg: #e5e7eb;
    --dc-badge-status-planned-fg: #374151;
    --dc-badge-status-planned-border: #d1d5db;
    --dc-badge-status-cancelled-bg: #fee2e2;
    --dc-badge-status-cancelled-fg: #991b1b;
    --dc-badge-status-cancelled-border: #fca5a5;

    --dc-salary-totals-bg: #e5e7eb;
    --dc-salary-totals-fg: #111827;
    --dc-salary-totals-border: #9ca3af;

    --dc-file-btn-fg: #374151;
    --dc-file-btn-bg: #f3f4f6;
    --dc-file-btn-border: #d1d5db;
    --dc-file-btn-hover-bg: #e5e7eb;
    --dc-file-btn-hover-border: #9ca3af;

    --dc-select2-selection-bg: var(--dc-input-bg);
    --dc-select2-selection-border: var(--dc-input-border);
    --dc-select2-selection-fg: var(--dc-fg-primary);
    --dc-select2-dropdown-bg: var(--dc-surface-solid);
    --dc-select2-dropdown-border: var(--dc-input-border);
    --dc-select2-option-highlight-bg: var(--dc-table-hover);
    --dc-select2-option-selected-bg: var(--dc-table-hover);
    --dc-select2-arrow: rgba(17, 24, 39, 0.45);
    --dc-select2-focus-border: var(--dc-brand);
    --dc-select2-focus-ring: var(--dc-focus-ring);
    --dc-select2-filter-focus-border: var(--dc-brand);
    --dc-select2-filter-focus-ring: var(--dc-focus-ring);
    --dc-dropdown-bg: var(--dc-glass-bg);
    --dc-dropdown-border: var(--dc-glass-border);

    /* Motion — calm defaults (DesignCode-style) */
    --dc-motion-fast: 150ms;
    --dc-motion-base: 200ms;
    --dc-motion-slow: 280ms;
    --dc-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --dc-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
}

body.theme-dark,
html.theme-dark-early {
    --dc-brand: #6366f1;
    --dc-brand-hover: #4f46e5;
    --dc-accent: #6366f1;
    --dc-accent-muted: rgba(99, 102, 241, 0.28);
    --dc-focus-ring: rgba(99, 102, 241, 0.22);
    --dc-accent-glow: rgba(99, 102, 241, 0.45);
    --dc-bg-base: #0b0f1a;
    --dc-bg-gradient-1: rgba(95, 197, 255, 0.08);
    --dc-bg-gradient-2: rgba(159, 115, 241, 0.1);
    --dc-bg-gradient-3: rgba(242, 98, 181, 0.06);
    --dc-bg-grid: rgba(255, 255, 255, 0.03);

    --dc-fg-primary: #f9fafb;
    --dc-fg-secondary: rgba(255, 255, 255, 0.7);
    --dc-glass-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0.06) 100%);
    --dc-surface-solid: rgba(32, 38, 52, 0.98);
    --dc-glass-border: rgba(255, 255, 255, 0.18);
    --dc-glass-shadow:
        0 1px 0 rgba(0, 0, 0, 0.2),
        0 5px 10px rgba(0, 0, 0, 0.15),
        0 20px 40px rgba(0, 0, 0, 0.25);
    --dc-nav-active-bg: linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
    --dc-nav-active-border: rgba(255, 255, 255, 0.9);
    --dc-divider: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.15) 0%, transparent 70%);

    --dc-input-bg: rgba(255, 255, 255, 0.08);
    --dc-input-border: rgba(255, 255, 255, 0.2);
    --dc-input-placeholder: rgba(255, 255, 255, 0.4);
    --dc-table-border: rgba(255, 255, 255, 0.08);
    --dc-table-hover: rgba(255, 255, 255, 0.06);
    --dc-table-sticky-bg: rgba(32, 36, 48, 0.94);
    --dc-chart-grid: rgba(255, 255, 255, 0.1);
    --dc-chart-bar-bg: rgba(147, 197, 253, 0.45);
    --dc-chart-bar-border: #93c5fd;
    --dc-chart-gradient-start: rgba(147, 197, 253, 0.4);
    --dc-chart-gradient-end: rgba(147, 197, 253, 0.01);
    --dc-btn-outline-bg: rgba(255, 255, 255, 0.06);
    --dc-btn-outline-border: rgba(255, 255, 255, 0.22);
    --dc-btn-outline-hover-border: rgba(255, 255, 255, 0.35);
    --dc-btn-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 8px 20px rgba(0, 0, 0, 0.35);
    --dc-link: #93c5fd;
    --dc-link-hover: #bfdbfe;
    --dc-alert-success-bg: rgba(6, 78, 59, 0.5);
    --dc-alert-success-border: rgba(34, 197, 94, 0.4);
    --dc-alert-warning-bg: rgba(120, 53, 15, 0.45);
    --dc-alert-warning-border: rgba(245, 158, 11, 0.4);
    --dc-alert-danger-bg: rgba(127, 29, 29, 0.45);
    --dc-alert-danger-border: rgba(239, 68, 68, 0.4);
    --dc-alert-info-bg: rgba(30, 58, 95, 0.5);
    --dc-alert-info-border: rgba(59, 130, 246, 0.4);
    --dc-alert-success-fg: #d1fae5;
    --dc-alert-warning-fg: #fef3c7;
    --dc-btn-warning-bg: #f59e0b;
    --dc-btn-warning-border: #fbbf24;
    --dc-btn-warning-hover-bg: #fbbf24;
    --dc-btn-warning-hover-border: #fcd34d;
    --dc-btn-warning-fg: #111827;
    --dc-btn-warning-focus-ring: rgba(251, 191, 36, 0.45);
    --dc-alert-danger-fg: #fecaca;
    --dc-alert-info-fg: #bfdbfe;

    --dc-badge-payment-cash-bg: #d97706;
    --dc-badge-payment-cash-fg: #111827;
    --dc-badge-payment-cash-border: #fbbf24;
    --dc-badge-payment-corporate-bg: #4b5563;
    --dc-badge-payment-corporate-fg: #f9fafb;
    --dc-badge-payment-corporate-border: #6b7280;
    --dc-badge-status-completed-bg: #16a34a;
    --dc-badge-status-completed-fg: #f0fdf4;
    --dc-badge-status-completed-border: #22c55e;
    --dc-badge-status-planned-bg: #4b5563;
    --dc-badge-status-planned-fg: #f3f4f6;
    --dc-badge-status-planned-border: #6b7280;
    --dc-badge-status-cancelled-bg: #dc2626;
    --dc-badge-status-cancelled-fg: #fef2f2;
    --dc-badge-status-cancelled-border: #f87171;

    --dc-file-btn-fg: #f9fafb;
    --dc-file-btn-bg: #4b5563;
    --dc-file-btn-border: #6b7280;
    --dc-file-btn-hover-bg: #6b7280;
    --dc-file-btn-hover-border: #9ca3af;

    --dc-select2-arrow: rgba(255, 255, 255, 0.55);
    --dc-focus-ring: rgba(255, 255, 255, 0.22);
    --dc-select2-focus-ring: var(--dc-focus-ring);
    --dc-select2-filter-focus-border: rgba(255, 255, 255, 0.55);
    --dc-select2-filter-focus-ring: var(--dc-focus-ring);
    --dc-select2-option-highlight-bg: rgba(96, 165, 250, 0.35);
    --dc-select2-option-selected-bg: rgba(96, 165, 250, 0.22);
}

/* Map DesignCode tokens → existing TransportAccount tokens */
body.dc-ui {
    font-family: var(--dc-font);
    --bs-body-font-family: var(--dc-font);
    --bs-body-color: var(--dc-fg-primary);
    --bs-body-bg: transparent;
    --bs-border-radius: var(--dc-radius-sm);
    --bs-primary: var(--dc-brand);
    --bs-primary-rgb: 79, 70, 229;
    --sidebar-width: var(--dc-sidebar-width);
    --sidebar-text: var(--dc-fg-secondary);
    --sidebar-text-hover: var(--dc-fg-primary);
    --sidebar-bg: transparent;
    --sidebar-border: transparent;
    --sidebar-active-bg: var(--dc-table-hover);
    --card-bg: transparent;
    --card-header-color: var(--dc-fg-primary);
    --input-border: var(--dc-input-border);
    --table-th-color: var(--dc-fg-secondary);
    --table-border: var(--dc-table-border);
    --border-subtle: 1px solid var(--dc-glass-border);
    --ta-btn-primary-bg: var(--dc-brand);
    --ta-btn-primary-border: var(--dc-brand);
    --ta-btn-primary-fg: #fff;
    --ta-btn-primary-hover-bg: var(--dc-brand-hover);
    --ta-btn-primary-hover-border: var(--dc-brand-hover);
    --ta-btn-outline-fg: var(--dc-fg-primary);
    --ta-btn-outline-border: var(--dc-btn-outline-border);
    --ta-btn-outline-hover-fg: var(--dc-fg-primary);
    --ta-btn-outline-hover-bg: var(--dc-table-hover);
    --ta-btn-outline-hover-border: var(--dc-btn-outline-hover-border);
    --ta-content-fg: var(--dc-fg-primary);
    --ta-content-muted: var(--dc-fg-secondary);
    --ta-link: var(--dc-link);
    --ta-link-hover: var(--dc-link-hover);
    --ta-input-fg: var(--dc-fg-primary);
    --ta-input-bg-raised: var(--dc-input-bg);
    --ta-input-placeholder: var(--dc-input-placeholder);
    --ta-surface: transparent;
    --ta-surface-raised: var(--dc-input-bg);
    --ta-select2-bg: var(--dc-select2-selection-bg);
    --ta-select2-fg: var(--dc-select2-selection-fg);
    --ta-select2-border: var(--dc-select2-selection-border);
    --ta-select2-dropdown-bg: var(--dc-select2-dropdown-bg);
    --ta-select2-dropdown-border: var(--dc-select2-dropdown-border);
    --ta-select2-placeholder: var(--dc-input-placeholder);
    --ta-select2-arrow: var(--dc-select2-arrow);
    --ta-select2-option-fg: var(--dc-select2-selection-fg);
    --ta-select2-option-highlight-bg: var(--dc-select2-option-highlight-bg);
    --ta-select2-option-highlight-fg: var(--dc-select2-selection-fg);
    --ta-select2-search-bg: var(--dc-select2-selection-bg);
    --ta-select2-search-fg: var(--dc-select2-selection-fg);
    --ta-surface: var(--dc-input-bg);
    --ta-surface-raised: var(--dc-input-bg);
    --ta-surface-deep: var(--dc-bg-base);
    --ta-border-strong: var(--dc-glass-border);
    --ta-emphasis-muted: var(--dc-fg-secondary);
    --ta-alert-fg: var(--dc-fg-primary);
    --ta-alert-success-fg: var(--dc-alert-success-fg);
    --ta-alert-warning-fg: var(--dc-alert-warning-fg);
    --ta-alert-danger-fg: var(--dc-alert-danger-fg);
    --ta-alert-info-fg: var(--dc-alert-info-fg);
    --ta-file-btn-fg: var(--dc-file-btn-fg);
    --ta-file-btn-bg: var(--dc-file-btn-bg);
    --ta-file-btn-border: var(--dc-file-btn-border);
    --ta-file-btn-hover-bg: var(--dc-file-btn-hover-bg);
    --ta-file-btn-hover-border: var(--dc-file-btn-hover-border);
    --ta-badge-fg: #fff;
}

body.dc-ui.theme-dark,
html.theme-dark-early:has(body.dc-ui) {
    color-scheme: dark;
}

body.dc-ui.theme-dark {
    --ta-btn-primary-bg: var(--dc-brand);
    --ta-btn-primary-border: var(--dc-brand);
    --ta-btn-primary-hover-bg: var(--dc-brand-hover);
    --ta-btn-primary-hover-border: var(--dc-brand-hover);
    --ta-btn-outline-hover-fg: var(--dc-fg-primary);
    --ta-table-light-th-bg: rgba(255, 255, 255, 0.06);
    --ta-table-light-th-fg: var(--dc-fg-primary);
    --ta-table-light-th-border: var(--dc-table-border);
    --ta-alert-success-bg: var(--dc-alert-success-bg);
    --ta-alert-success-border: var(--dc-alert-success-border);
    --ta-alert-warning-bg: var(--dc-alert-warning-bg);
    --ta-alert-warning-border: var(--dc-alert-warning-border);
    --ta-alert-danger-bg: var(--dc-alert-danger-bg);
    --ta-alert-danger-border: var(--dc-alert-danger-border);
    --ta-alert-info-bg: var(--dc-alert-info-bg);
    --ta-alert-info-border: var(--dc-alert-info-border);
    --bs-primary-rgb: 99, 102, 241;
}

/* ─── App background (static) ─── */
.app-background {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-color: var(--dc-bg-base);
    overflow: hidden;
}

.app-background::before {
    content: '';
    position: absolute;
    inset: -20%;
    background:
        radial-gradient(ellipse 80% 60% at 15% 20%, var(--dc-bg-gradient-1), transparent 55%),
        radial-gradient(ellipse 70% 50% at 85% 15%, var(--dc-bg-gradient-2), transparent 50%),
        radial-gradient(ellipse 60% 55% at 70% 85%, var(--dc-bg-gradient-3), transparent 55%);
}

.app-background::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--dc-bg-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--dc-bg-grid) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse 90% 80% at 50% 40%, black 20%, transparent 75%);
    opacity: 0.6;
}

/* ─── Glass surface utility ─── */
.dc-glass {
    position: relative;
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius);
    box-shadow: var(--dc-glass-shadow);
    -webkit-backdrop-filter: blur(var(--dc-blur));
    backdrop-filter: blur(var(--dc-blur));
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .dc-glass {
        background: rgba(255, 255, 255, 0.92);
    }
    body.dc-ui.theme-dark .dc-glass {
        background: rgba(31, 41, 55, 0.95);
    }
}

/* Свечение отключено: filter:blur(40px) на псевдоэлементе сильно тормозит скролл */
.dc-glass::before {
    content: none;
}

/* ─── Icons (Figma exports, transparent PNG + mask) ─── */
.dc-icon {
    display: inline-block;
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
    vertical-align: middle;
    background-color: var(--dc-fg-secondary);
    opacity: 0.9;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.dc-icon--lg {
    width: 1.35rem;
    height: 1.35rem;
}

.sidebar-nav-link.active .dc-icon,
.sidebar-nav-link:hover .dc-icon,
.sidebar-brand .dc-icon {
    background-color: var(--dc-fg-primary);
    opacity: 1;
}

.dc-icon--dashboard { -webkit-mask-image: url('../icons/dc/dashboard.svg'); mask-image: url('../icons/dc/dashboard.svg'); }
.dc-icon--today { -webkit-mask-image: url('../icons/dc/today.svg'); mask-image: url('../icons/dc/today.svg'); }
.dc-icon--routes { -webkit-mask-image: url('../icons/dc/routes.svg'); mask-image: url('../icons/dc/routes.svg'); }
.dc-icon--passengers { -webkit-mask-image: url('../icons/dc/passengers.svg'); mask-image: url('../icons/dc/passengers.svg'); }
.dc-icon--organizations { -webkit-mask-image: url('../icons/dc/organizations.svg'); mask-image: url('../icons/dc/organizations.svg'); }
.dc-icon--drivers { -webkit-mask-image: url('../icons/dc/drivers.svg'); mask-image: url('../icons/dc/drivers.svg'); }
.dc-icon--companies { -webkit-mask-image: url('../icons/dc/companies.svg'); mask-image: url('../icons/dc/companies.svg'); }
.dc-icon--documentation { -webkit-mask-image: url('../icons/dc/documentation.svg'); mask-image: url('../icons/dc/documentation.svg'); }
.dc-icon--salary { -webkit-mask-image: url('../icons/dc/salary.svg'); mask-image: url('../icons/dc/salary.svg'); }
.dc-icon--tablo { -webkit-mask-image: url('../icons/dc/tablo.svg'); mask-image: url('../icons/dc/tablo.svg'); }
.dc-icon--brand { -webkit-mask-image: url('../icons/dc/brand.svg'); mask-image: url('../icons/dc/brand.svg'); }
.dc-icon--moon { -webkit-mask-image: url('../icons/dc/moon.svg'); mask-image: url('../icons/dc/moon.svg'); }
.dc-icon--sun { -webkit-mask-image: url('../icons/dc/sun.svg'); mask-image: url('../icons/dc/sun.svg'); }
.dc-icon--user { -webkit-mask-image: url('../icons/dc/user.svg'); mask-image: url('../icons/dc/user.svg'); }
.dc-icon--logout { -webkit-mask-image: url('../icons/dc/logout.svg'); mask-image: url('../icons/dc/logout.svg'); }
.dc-icon--menu { -webkit-mask-image: url('../icons/dc/menu.svg'); mask-image: url('../icons/dc/menu.svg'); }
.dc-icon--close { -webkit-mask-image: url('../icons/dc/close.svg'); mask-image: url('../icons/dc/close.svg'); }
.dc-icon--collapse-left { -webkit-mask-image: url('../icons/dc/collapse-left.svg'); mask-image: url('../icons/dc/collapse-left.svg'); }
.dc-icon--collapse-right { -webkit-mask-image: url('../icons/dc/collapse-right.svg'); mask-image: url('../icons/dc/collapse-right.svg'); }
.dc-icon--settings { -webkit-mask-image: url('../icons/dc/settings.svg'); mask-image: url('../icons/dc/settings.svg'); }

/* Action / content icons */
.dc-icon--plus { -webkit-mask-image: url('../icons/dc/plus.svg'); mask-image: url('../icons/dc/plus.svg'); }
.dc-icon--arrow-left { -webkit-mask-image: url('../icons/dc/arrow-left.svg'); mask-image: url('../icons/dc/arrow-left.svg'); }
.dc-icon--search { -webkit-mask-image: url('../icons/dc/search.svg'); mask-image: url('../icons/dc/search.svg'); }
.dc-icon--trash { -webkit-mask-image: url('../icons/dc/trash.svg'); mask-image: url('../icons/dc/trash.svg'); }
.dc-icon--download { -webkit-mask-image: url('../icons/dc/download.svg'); mask-image: url('../icons/dc/download.svg'); }
.dc-icon--upload { -webkit-mask-image: url('../icons/dc/upload.svg'); mask-image: url('../icons/dc/upload.svg'); }
.dc-icon--pencil { -webkit-mask-image: url('../icons/dc/pencil.svg'); mask-image: url('../icons/dc/pencil.svg'); }
.dc-icon--save { -webkit-mask-image: url('../icons/dc/save.svg'); mask-image: url('../icons/dc/save.svg'); }
.dc-icon--file { -webkit-mask-image: url('../icons/dc/file.svg'); mask-image: url('../icons/dc/file.svg'); }
.dc-icon--file-check { -webkit-mask-image: url('../icons/dc/file-check.svg'); mask-image: url('../icons/dc/file-check.svg'); }
.dc-icon--chart { -webkit-mask-image: url('../icons/dc/chart.svg'); mask-image: url('../icons/dc/chart.svg'); }
.dc-icon--receipt { -webkit-mask-image: url('../icons/dc/receipt.svg'); mask-image: url('../icons/dc/receipt.svg'); }
.dc-icon--warning { -webkit-mask-image: url('../icons/dc/warning.svg'); mask-image: url('../icons/dc/warning.svg'); }
.dc-icon--user-add { -webkit-mask-image: url('../icons/dc/user-add.svg'); mask-image: url('../icons/dc/user-add.svg'); }
.dc-icon--phone { -webkit-mask-image: url('../icons/dc/phone.svg'); mask-image: url('../icons/dc/phone.svg'); }
.dc-icon--printer { -webkit-mask-image: url('../icons/dc/printer.svg'); mask-image: url('../icons/dc/printer.svg'); }
.dc-icon--eye { -webkit-mask-image: url('../icons/dc/eye.svg'); mask-image: url('../icons/dc/eye.svg'); }
.dc-icon--swap { -webkit-mask-image: url('../icons/dc/swap.svg'); mask-image: url('../icons/dc/swap.svg'); }
.dc-icon--plane { -webkit-mask-image: url('../icons/dc/plane.svg'); mask-image: url('../icons/dc/plane.svg'); }
.dc-icon--list { -webkit-mask-image: url('../icons/dc/list.svg'); mask-image: url('../icons/dc/list.svg'); }
.dc-icon--bell { -webkit-mask-image: url('../icons/dc/bell.svg'); mask-image: url('../icons/dc/bell.svg'); }
.dc-icon--chat { -webkit-mask-image: url('../icons/dc/chat.svg'); mask-image: url('../icons/dc/chat.svg'); }
.dc-icon--grid { -webkit-mask-image: url('../icons/dc/grid.svg'); mask-image: url('../icons/dc/grid.svg'); }
.dc-icon--calendar-check { -webkit-mask-image: url('../icons/dc/calendar-check.svg'); mask-image: url('../icons/dc/calendar-check.svg'); }
.dc-icon--folder { -webkit-mask-image: url('../icons/dc/folder.svg'); mask-image: url('../icons/dc/folder.svg'); }

/* Aliases → existing nav icons */
.dc-icon--speedometer2,
.dc-icon--dashboard-alt { -webkit-mask-image: url('../icons/dc/dashboard.svg'); mask-image: url('../icons/dc/dashboard.svg'); }
.dc-icon--people,
.dc-icon--person { -webkit-mask-image: url('../icons/dc/passengers.svg'); mask-image: url('../icons/dc/passengers.svg'); }
.dc-icon--calendar-day { -webkit-mask-image: url('../icons/dc/today.svg'); mask-image: url('../icons/dc/today.svg'); }
.dc-icon--building { -webkit-mask-image: url('../icons/dc/organizations.svg'); mask-image: url('../icons/dc/organizations.svg'); }
.dc-icon--person-badge { -webkit-mask-image: url('../icons/dc/drivers.svg'); mask-image: url('../icons/dc/drivers.svg'); }
.dc-icon--briefcase { -webkit-mask-image: url('../icons/dc/companies.svg'); mask-image: url('../icons/dc/companies.svg'); }
.dc-icon--wallet2 { -webkit-mask-image: url('../icons/dc/salary.svg'); mask-image: url('../icons/dc/salary.svg'); }
.dc-icon--folder2-open,
.dc-icon--folder2 { -webkit-mask-image: url('../icons/dc/documentation.svg'); mask-image: url('../icons/dc/documentation.svg'); }
.dc-icon--file-earmark-text,
.dc-icon--file-earmark-richtext,
.dc-icon--file-earmark-spreadsheet,
.dc-icon--file-pdf { -webkit-mask-image: url('../icons/dc/file.svg'); mask-image: url('../icons/dc/file.svg'); }
.dc-icon--file-earmark-check { -webkit-mask-image: url('../icons/dc/file-check.svg'); mask-image: url('../icons/dc/file-check.svg'); }
.dc-icon--file-earmark-arrow-up { -webkit-mask-image: url('../icons/dc/upload.svg'); mask-image: url('../icons/dc/upload.svg'); }
.dc-icon--graph-up { -webkit-mask-image: url('../icons/dc/chart.svg'); mask-image: url('../icons/dc/chart.svg'); }
.dc-icon--arrow-left-right { -webkit-mask-image: url('../icons/dc/swap.svg'); mask-image: url('../icons/dc/swap.svg'); }
.dc-icon--exclamation-triangle { -webkit-mask-image: url('../icons/dc/warning.svg'); mask-image: url('../icons/dc/warning.svg'); }
.dc-icon--person-plus { -webkit-mask-image: url('../icons/dc/user-add.svg'); mask-image: url('../icons/dc/user-add.svg'); }
.dc-icon--box-arrow-in-right { -webkit-mask-image: url('../icons/dc/user.svg'); mask-image: url('../icons/dc/user.svg'); }
.dc-icon--list-ul { -webkit-mask-image: url('../icons/dc/list.svg'); mask-image: url('../icons/dc/list.svg'); }
.dc-icon--grid-3x3-gap { -webkit-mask-image: url('../icons/dc/grid.svg'); mask-image: url('../icons/dc/grid.svg'); }
.dc-icon--airplane { -webkit-mask-image: url('../icons/dc/plane.svg'); mask-image: url('../icons/dc/plane.svg'); }
.dc-icon--telephone { -webkit-mask-image: url('../icons/dc/phone.svg'); mask-image: url('../icons/dc/phone.svg'); }
.dc-icon--truck { -webkit-mask-image: url('../icons/dc/routes.svg'); mask-image: url('../icons/dc/routes.svg'); }
.dc-icon--pencil-square { -webkit-mask-image: url('../icons/dc/pencil.svg'); mask-image: url('../icons/dc/pencil.svg'); }
.dc-icon--x-lg { -webkit-mask-image: url('../icons/dc/close.svg'); mask-image: url('../icons/dc/close.svg'); }
.dc-icon--plus-lg { -webkit-mask-image: url('../icons/dc/plus.svg'); mask-image: url('../icons/dc/plus.svg'); }

/* Legacy / mistaken names → avoid grey squares */
.dc-icon--signpost-2 { -webkit-mask-image: url('../icons/dc/routes.svg'); mask-image: url('../icons/dc/routes.svg'); }
.dc-icon--check { -webkit-mask-image: url('../icons/dc/file-check.svg'); mask-image: url('../icons/dc/file-check.svg'); }
.dc-icon--file-excel,
.dc-icon--file-earmark-spreadsheet { -webkit-mask-image: url('../icons/dc/chart.svg'); mask-image: url('../icons/dc/chart.svg'); }
.dc-icon--people-fill { -webkit-mask-image: url('../icons/dc/passengers.svg'); mask-image: url('../icons/dc/passengers.svg'); }
.dc-icon--info-circle { -webkit-mask-image: url('../icons/dc/file.svg'); mask-image: url('../icons/dc/file.svg'); }
.dc-icon--file-word,
.dc-icon--file-earmark-word { -webkit-mask-image: url('../icons/dc/file.svg'); mask-image: url('../icons/dc/file.svg'); }

body.dc-ui .btn .dc-icon,
body.dc-ui h1 .dc-icon,
body.dc-ui h5 .dc-icon,
body.dc-ui .card-header .dc-icon,
body.dc-ui .card-title .dc-icon {
    margin-right: 0.35em;
}

body.dc-ui .btn-sm .dc-icon {
    width: 1rem;
    height: 1rem;
}

/* Заливные кнопки: иконка = цвет текста кнопки (белый на brand) */
body.dc-ui :is(
    .btn-primary,
    .btn-success,
    .btn-danger,
    .btn-warning,
    .btn-dark,
    .btn-info
) .dc-icon {
    background-color: currentColor;
    opacity: 1;
}

body.dc-ui h1 .dc-icon {
    width: 1.25rem;
    height: 1.25rem;
}

/* ─── Sidebar shell (DesignCode Side Menu) ─── */
body.dc-ui .sidebar {
    width: var(--dc-sidebar-width);
    border: none;
    background: transparent;
    padding: 0;
    display: flex;
    flex-direction: column;
    transition: width var(--dc-motion-slow) var(--dc-ease-out);
    z-index: 200;
}

body.dc-ui .sidebar.dc-glass-panel {
    overflow: visible;
}

body.dc-ui .sidebar-inner {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    height: 100%;
    padding: var(--container-padding, 16px);
    gap: 4px;
    overflow: visible;
}

/* Desktop: сайдбар закреплён, контент скроллится отдельно */
@media (min-width: 992px) {
    body.dc-ui .sidebar {
        position: fixed;
        top: var(--dc-sidebar-inset);
        left: var(--dc-sidebar-inset);
        bottom: var(--dc-sidebar-inset);
        height: calc(100vh - var(--dc-sidebar-inset) * 2);
        max-height: calc(100vh - var(--dc-sidebar-inset) * 2);
        min-height: 0;
        margin: 0;
    }

    body.dc-ui .main-content {
        margin-left: var(--dc-main-offset);
        width: auto;
        min-height: 100vh;
        transition: margin-left var(--dc-motion-slow) var(--dc-ease-out);
    }

    body.dc-ui.sidebar-collapsed .sidebar {
        width: var(--dc-sidebar-collapsed-width);
    }

    body.dc-ui.sidebar-collapsed .main-content {
        margin-left: var(--dc-main-offset-collapsed);
    }
}

body.dc-ui .sidebar-header,
body.dc-ui .sidebar-company-select,
body.dc-ui .sidebar-footer {
    border: none;
    background: transparent;
}

body.dc-ui .sidebar-header {
    padding: 0 0 8px;
    margin-bottom: 4px;
}

body.dc-ui .sidebar-brand {
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: -0.02em;
    color: var(--dc-fg-primary) !important;
    gap: 10px;
    background: transparent;
}

body.dc-ui .sidebar-brand .dc-icon {
    width: 1.25rem;
    height: 1.25rem;
    opacity: 1;
}

/* Логотип приложения (иконка перевозок) */
body.dc-ui .app-logo__img {
    width: 2.5rem;
    height: 2.5rem;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
    background: transparent;
}

body.dc-ui .sidebar-brand .app-logo__img {
    width: 2.25rem;
    height: 2.25rem;
}

body.sidebar-collapsed .sidebar-brand .app-logo__img {
    width: 2rem;
    height: 2rem;
}

body.dc-ui .app-mobile-bar__brand {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    color: var(--dc-fg-primary);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: -0.02em;
}

body.dc-ui .app-mobile-bar__brand:hover {
    color: var(--dc-fg-primary);
    opacity: 0.9;
}

body.dc-ui .app-mobile-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1035;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    border-radius: 0;
    border-bottom: 1px solid var(--dc-glass-border);
}

body.dc-ui .app-mobile-bar__brand {
    background: transparent;
}

body.dc-ui .app-mobile-bar .sidebar-overlay-toggler {
    position: static;
    flex-shrink: 0;
}

body.dc-ui .app-mobile-bar .app-logo__img {
    width: 2rem;
    height: 2rem;
}

body.dc-ui .app-mobile-bar__title {
    font-weight: 600;
    font-size: 0.9375rem;
}

@media (max-width: 991.98px) {
    body.dc-ui .main-content {
        padding-top: 0;
    }

    body.dc-ui .main-content .container-fluid {
        padding-top: calc(3.25rem + var(--dc-screen-padding, 1rem));
    }

    body.dc-ui .app-mobile-bar .sidebar-overlay-toggler {
        position: static;
        top: auto;
        left: auto;
        z-index: auto;
        box-shadow: none;
    }
}

body.dc-ui .sidebar-collapse-btn .dc-icon,
body.dc-ui .sidebar-toggler .dc-icon,
body.dc-ui .sidebar-overlay-toggler .dc-icon {
    margin: 0;
}

body.dc-ui .sidebar-user {
    gap: 10px;
}

body.dc-ui .sidebar-user .dc-icon {
    margin-right: 0;
}

body.dc-ui .theme-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

body.dc-ui .dropdown-menu.dc-glass {
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius);
    box-shadow: var(--dc-glass-shadow);
    -webkit-backdrop-filter: blur(var(--dc-blur-strong));
    backdrop-filter: blur(var(--dc-blur-strong));
    background: var(--dc-glass-bg);
    padding: 6px;
}

body.dc-ui .sidebar-nav {
    flex: 1;
    overflow-y: auto;
    padding: 4px 0;
}

body.dc-ui .sidebar-nav-group-label {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--dc-fg-secondary);
    padding: 12px 16px 4px;
}

body.dc-ui .sidebar-nav-link {
    position: relative;
    padding: 8px 16px;
    margin: 0;
    border-radius: var(--dc-radius-sm);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25rem;
    color: var(--dc-fg-secondary) !important;
    gap: 12px;
}

body.dc-ui .sidebar-nav-link:hover {
    color: var(--dc-fg-primary) !important;
    background: rgba(128, 128, 128, 0.08);
}

body.dc-ui .sidebar-nav-link.active {
    color: var(--dc-fg-primary) !important;
    font-weight: 500;
    background: var(--dc-nav-active-bg);
    border-left: none;
    padding-left: 16px;
    box-shadow: inset 3px 0 8px -2px var(--dc-accent-glow);
}

body.dc-ui .sidebar-nav-link.active::before {
    content: '';
    position: absolute;
    left: 6px;
    top: 10px;
    bottom: 10px;
    width: 3px;
    background: var(--dc-nav-active-border);
    border-radius: 1.5px;
    transition: all var(--dc-motion-base) var(--dc-ease-out);
}

body.dc-ui .sidebar-nav-link.active::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 10px;
    bottom: 10px;
    width: 3px;
    background: var(--dc-nav-active-border);
    filter: blur(4px);
    opacity: 0.6;
}

body.dc-ui .sidebar-nav-link .dc-icon {
    margin-right: 0;
    width: 16px;
    height: 16px;
}

body.dc-ui .sidebar-nav-divider {
    height: 1px;
    margin: 4px 8px;
    background: var(--dc-divider);
    border: none;
    list-style: none;
}

body.dc-ui .sidebar-company-select {
    padding: 8px 0;
    margin-bottom: 4px;
}

body.dc-ui .sidebar-company-label {
    font-size: 0.75rem;
    color: var(--dc-fg-secondary);
}

body.dc-ui .sidebar-company-select-el,
body.dc-ui .sidebar-footer .form-select,
body.dc-ui .sidebar-footer .btn {
    font-size: 0.8125rem;
}

body.dc-ui .sidebar-footer {
    padding: 8px 0 0;
    margin-top: auto;
    position: relative;
    z-index: 30;
    overflow: visible;
}

/* Меню пользователя: непрозрачный фон, «Выход» не перекрывается кнопкой темы */
body.dc-ui .sidebar-footer .sidebar-user-dropdown.dropdown-menu {
    background: var(--dc-bg-base);
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius);
    box-shadow: var(--dc-glass-shadow);
    padding: 6px;
    min-width: 11rem;
    margin-bottom: 0.35rem;
    z-index: 1100;
}

body.dc-ui .sidebar-footer .sidebar-user-dropdown .dropdown-item,
body.dc-ui .sidebar-footer .sidebar-user-dropdown .sidebar-logout-btn {
    color: var(--dc-fg-primary);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: var(--dc-radius-sm);
    padding: 0.5rem 0.75rem;
}

body.dc-ui .sidebar-footer .sidebar-user-dropdown .dropdown-item:hover,
body.dc-ui .sidebar-footer .sidebar-user-dropdown .sidebar-logout-btn:hover,
body.dc-ui .sidebar-footer .sidebar-user-dropdown .sidebar-logout-btn:focus {
    background: var(--dc-table-hover);
    color: var(--dc-fg-primary);
}

body.dc-ui .sidebar-footer .sidebar-logout-form {
    margin: 0;
    padding: 0;
}

body.dc-ui .sidebar-footer .sidebar-logout-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

body.dc-ui .sidebar-footer .sidebar-logout-btn .dc-icon {
    background-color: currentColor;
    flex-shrink: 0;
}

body.dc-ui .sidebar-footer .sidebar-user-dropdown .dropdown-divider {
    border-color: var(--dc-glass-border);
    margin: 0.35rem 0;
    opacity: 1;
}

body.dc-ui .sidebar-theme-toggle .theme-toggle-btn {
    border: 1px solid var(--dc-glass-border);
    background: rgba(128, 128, 128, 0.06);
    border-radius: var(--dc-radius-sm);
    font-size: 0.8125rem;
    font-weight: 500;
}

body.dc-ui .sidebar-collapse-btn,
body.dc-ui .sidebar-toggler,
body.dc-ui .sidebar-overlay-toggler {
    border: 1px solid var(--dc-glass-border);
    background: var(--dc-glass-bg);
    -webkit-backdrop-filter: blur(var(--dc-blur));
    backdrop-filter: blur(var(--dc-blur));
    border-radius: var(--dc-radius-sm);
    box-shadow: var(--dc-glass-shadow);
}

body.dc-ui .sidebar-overlay-toggler {
    color: var(--dc-fg-primary);
}

/* ─── Main content area ─── */
body.dc-ui .main-content .container-fluid {
    padding: var(--dc-screen-padding);
    padding-top: max(var(--dc-screen-padding), 1.5rem);
}

body.dc-ui .main-content .card {
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius);
    box-shadow: var(--dc-glass-shadow);
    -webkit-backdrop-filter: blur(var(--dc-blur));
    backdrop-filter: blur(var(--dc-blur));
}

body.dc-ui .main-content .card-header {
    background: transparent;
    border-bottom: 1px solid var(--dc-glass-border);
    color: var(--dc-fg-primary);
    font-weight: 600;
}

body.dc-ui .main-content .card-footer {
    background: transparent;
    border-top: 1px solid var(--dc-glass-border);
}

body.dc-ui .main-content .card-body {
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content .text-muted {
    color: var(--dc-fg-secondary) !important;
}

body.dc-ui .main-content h1,
body.dc-ui .main-content .h1,
body.dc-ui .main-content h2,
body.dc-ui .main-content .h2 {
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content a:not(.btn) {
    color: var(--dc-link);
}

body.dc-ui .main-content a:not(.btn):hover {
    color: var(--dc-link-hover);
}

/* ─── Phase 3: Buttons ─── */
body.dc-ui .main-content .btn {
    font-weight: 500;
    border-radius: var(--dc-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    
    /* MD (Default) */
    font-size: var(--ta-btn-md-font);
    padding: var(--ta-btn-md-padding);
    min-height: var(--ta-btn-md-height);
    
    transition: background-color var(--dc-motion-fast) var(--dc-ease-standard),
                border-color var(--dc-motion-fast) var(--dc-ease-standard),
                box-shadow var(--dc-motion-base) var(--dc-ease-out),
                color var(--dc-motion-fast) var(--dc-ease-standard),
                transform var(--dc-motion-base) var(--dc-ease-out) !important;
    will-change: transform, box-shadow;
}

body.dc-ui .main-content .btn-sm {
    font-size: var(--ta-btn-sm-font) !important;
    padding: var(--ta-btn-sm-padding) !important;
    min-height: var(--ta-btn-sm-height) !important;
    border-radius: calc(var(--dc-radius-sm) - 1px) !important;
}

body.dc-ui .main-content .btn-lg {
    font-size: var(--ta-btn-lg-font) !important;
    padding: var(--ta-btn-lg-padding) !important;
    min-height: var(--ta-btn-lg-height) !important;
    border-radius: calc(var(--dc-radius-sm) + 2px) !important;
}

/* Premium Hover-Lift and Tactile active effects */
body.dc-ui .main-content :is(
    .dc-report-cards .card,
    .dc-stat-card,
    .btn-primary,
    .btn-outline-primary,
    .btn-outline-secondary,
    .dc-btn-group:not(:has(> .btn:only-child))
):hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 6px rgba(0, 0, 0, 0.02),
        0 10px 20px rgba(0, 0, 0, 0.07),
        inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
}

body.dc-ui .main-content :is(
    .dc-report-cards .card,
    .dc-stat-card,
    .btn-primary,
    .btn-outline-primary,
    .btn-outline-secondary,
    .dc-btn-group:not(:has(> .btn:only-child))
):active {
    transform: translateY(0);
    box-shadow: var(--dc-glass-shadow) !important;
}

body.dc-ui .main-content .btn-primary {
    background: var(--ta-btn-primary-bg);
    border-color: var(--ta-btn-primary-border);
    color: var(--ta-btn-primary-fg);
    box-shadow: var(--dc-btn-shadow);
}

body.dc-ui .main-content .btn-primary:hover,
body.dc-ui .main-content .btn-primary:focus {
    background: var(--ta-btn-primary-hover-bg);
    border-color: var(--ta-btn-primary-hover-border);
    color: var(--ta-btn-primary-fg);
    box-shadow: var(--dc-btn-shadow);
    transform: translateY(-1px);
}

body.dc-ui .main-content .btn-primary:focus-visible {
    outline: 2px solid var(--dc-brand);
    outline-offset: 2px;
    box-shadow: var(--dc-btn-shadow), 0 0 0 3px var(--dc-focus-ring);
}

body.dc-ui .main-content .btn-success {
    box-shadow: 0 4px 12px rgba(34, 197, 94, 0.25);
}

body.dc-ui .main-content .btn-success:hover,
body.dc-ui .main-content .btn-success:focus {
    box-shadow: 0 6px 16px rgba(34, 197, 94, 0.3);
    transform: translateY(-1px);
}

body.dc-ui .main-content .btn-danger {
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.2);
}

body.dc-ui .main-content .btn-danger:hover,
body.dc-ui .main-content .btn-danger:focus {
    box-shadow: 0 6px 16px rgba(239, 68, 68, 0.25);
    transform: translateY(-1px);
}

body.dc-ui .main-content .btn-warning {
    background: var(--dc-btn-warning-bg);
    border-color: var(--dc-btn-warning-border);
    color: var(--dc-btn-warning-fg);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.28);
}

body.dc-ui .main-content .btn-warning:hover,
body.dc-ui .main-content .btn-warning:focus {
    background: var(--dc-btn-warning-hover-bg);
    border-color: var(--dc-btn-warning-hover-border);
    color: var(--dc-btn-warning-fg);
    box-shadow: 0 4px 14px rgba(245, 158, 11, 0.32);
    transform: translateY(-1px);
}

body.dc-ui .main-content .btn-warning:focus-visible {
    outline: 2px solid var(--dc-btn-warning-border);
    outline-offset: 2px;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.28), 0 0 0 3px var(--dc-btn-warning-focus-ring);
}

body.dc-ui .main-content :is(
    .btn-outline-primary,
    .btn-outline-secondary,
    .btn-outline-success,
    .btn-outline-danger
) {
    background: var(--dc-btn-outline-bg);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-color: var(--ta-btn-outline-border);
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content :is(
    .btn-outline-primary,
    .btn-outline-secondary,
    .btn-outline-success,
    .btn-outline-danger
):hover {
    background: var(--dc-table-hover);
    border-color: var(--ta-btn-outline-hover-border);
    color: var(--dc-fg-primary);
    transform: translateY(-1px);
}

body.dc-ui .main-content :is(
    .btn-outline-primary,
    .btn-outline-secondary,
    .btn-outline-success,
    .btn-outline-danger,
    .btn-secondary
):is(:focus, :focus-visible) {
    border-color: var(--dc-brand);
    box-shadow: 0 0 0 3px var(--dc-focus-ring);
    outline: none;
}

body.dc-ui .main-content .btn-secondary {
    background: var(--dc-btn-outline-bg);
    border-color: var(--ta-btn-outline-border);
    color: var(--dc-fg-primary);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

body.dc-ui .main-content .btn-secondary:hover,
body.dc-ui .main-content .btn-secondary:focus {
    background: var(--dc-table-hover);
    border-color: var(--ta-btn-outline-hover-border);
    color: var(--dc-fg-primary);
    transform: translateY(-1px);
}

body.dc-ui .sidebar .btn-outline-primary {
    background: var(--dc-btn-outline-bg);
    border-color: var(--dc-glass-border);
    color: var(--dc-fg-primary);
}

body.dc-ui .sidebar .btn-outline-primary:hover,
body.dc-ui .sidebar .btn-outline-primary:focus {
    background: var(--dc-table-hover);
    border-color: var(--dc-glass-border);
    color: var(--dc-fg-primary);
    transform: translateY(-1px);
}

body.dc-ui .sidebar :is(.form-select, .form-control) {
    background-color: var(--dc-input-bg);
    border: 1px solid var(--dc-input-border);
    border-radius: var(--dc-radius-sm);
    color: var(--dc-fg-primary);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

body.dc-ui .sidebar .btn-primary {
    background: var(--dc-brand);
    border-color: var(--dc-brand);
}

body.dc-ui .sidebar .btn-primary:hover,
body.dc-ui .sidebar .btn-primary:focus {
    background: var(--dc-brand-hover);
    border-color: var(--dc-brand-hover);
    transform: translateY(-1px);
}

/* ─── Button group (DesignCode / Figma — единая glass-панель) ─── */
body.dc-ui .dc-btn-group {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
    padding: 4px;
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius);
    -webkit-backdrop-filter: blur(var(--dc-blur));
    backdrop-filter: blur(var(--dc-blur));
    box-shadow: var(--dc-glass-shadow);
}

body.dc-ui .dc-btn-group > .btn {
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    border-radius: calc(var(--dc-radius-sm) - 1px) !important;
    background: transparent !important;
    color: var(--dc-fg-primary);
    position: relative;
    z-index: 0;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body.dc-ui .dc-btn-group > .btn:hover,
body.dc-ui .dc-btn-group > .btn:focus-visible {
    z-index: 1;
    background: var(--dc-table-hover) !important;
    color: var(--dc-fg-primary);
}

body.dc-ui .dc-btn-group > .btn:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 20%;
    height: 60%;
    width: 1px;
    background: var(--dc-glass-border);
    pointer-events: none;
}

body.dc-ui .dc-btn-group > .btn-primary {
    background: var(--ta-btn-primary-bg) !important;
    border-color: transparent !important;
    color: var(--ta-btn-primary-fg) !important;
}

body.dc-ui .dc-btn-group > .btn-primary:hover,
body.dc-ui .dc-btn-group > .btn-primary:focus-visible {
    background: var(--ta-btn-primary-hover-bg) !important;
    color: var(--ta-btn-primary-fg) !important;
    box-shadow: 0 0 0 2px var(--dc-focus-ring) !important;
}

body.dc-ui .dc-btn-group > .btn-primary::after {
    display: none;
}

/* Одна кнопка в группе — без glass-рамки (организации, договоры) */
body.dc-ui .dc-btn-group:has(> .btn:only-child) {
    padding: 0;
    background: none;
    border: none;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body.dc-ui .dc-btn-group:has(> .btn:only-child) > .btn-primary {
    box-shadow: var(--dc-btn-shadow) !important;
    border-radius: var(--dc-radius-sm) !important;
}

@media (max-width: 575.98px) {
    body.dc-ui .dc-btn-group {
        display: flex;
        flex-direction: column;
        width: 100%;
        padding: 4px;
    }

    body.dc-ui .dc-btn-group > .btn {
        width: 100%;
        justify-content: center;
    }

    body.dc-ui .dc-btn-group > .btn:not(:last-child)::after {
        left: 12%;
        right: 12%;
        top: auto;
        bottom: 0;
        width: auto;
        height: 1px;
    }
}

/* ─── Forms ─── */
body.dc-ui .main-content :is(.form-control, .form-select) {
    background-color: var(--dc-input-bg);
    border: 1px solid var(--dc-input-border);
    border-radius: var(--dc-radius-sm);
    color: var(--dc-fg-primary);
    font-size: 0.875rem;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

body.dc-ui .main-content .form-control::placeholder {
    color: var(--dc-input-placeholder);
}

body.dc-ui .main-content :is(.form-control, .form-select):focus {
    background-color: var(--dc-input-bg);
    border-color: var(--dc-brand);
    color: var(--dc-fg-primary);
    box-shadow: 0 0 0 3px var(--dc-focus-ring);
    outline: none;
}

body.dc-ui .sidebar :is(.form-control, .form-select):focus {
    border-color: var(--dc-brand);
    box-shadow: 0 0 0 3px var(--dc-focus-ring);
    outline: none;
}

/* Native <select>: OS dropdown must match dark theme (status/driver on «Сегодня», tablo, etc.) */
body.dc-ui.theme-dark .main-content :is(.form-select, select),
body.dc-ui.theme-dark .sidebar :is(.form-select, select) {
    color-scheme: dark;
}

body.dc-ui.theme-dark .main-content select option,
body.dc-ui.theme-dark .sidebar select option {
    background-color: var(--dc-surface-solid);
    color: var(--dc-fg-primary);
}

body.dc-ui.theme-dark .main-content :is(.form-select, select):not(.select2-hidden-accessible) {
    background-color: var(--dc-input-bg);
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content .form-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--dc-fg-secondary);
    margin-bottom: 0.35rem;
}

body.dc-ui .main-content .invalid-feedback {
    font-size: 0.8125rem;
}

body.dc-ui .main-content .form-check-input {
    border-color: var(--dc-input-border);
    background-color: var(--dc-input-bg);
}

body.dc-ui .main-content .form-check-input:checked {
    background-color: var(--dc-brand);
    border-color: var(--dc-brand);
}

/* ─── Tables ─── */
body.dc-ui .main-content .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--dc-fg-primary);
    --bs-table-border-color: var(--dc-table-border);
    margin-bottom: 0;
}

body.dc-ui .main-content .table thead th {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dc-fg-secondary);
    border-bottom: 1px solid var(--dc-table-border);
    background: transparent;
}

body.dc-ui .main-content thead.table-light th {
    background: var(--dc-input-bg) !important;
    color: var(--dc-fg-primary) !important;
    border-color: var(--dc-table-border) !important;
}

body.dc-ui .main-content .table tbody td {
    border-bottom: 1px solid var(--dc-table-border);
    vertical-align: middle;
    font-size: 0.875rem;
}

body.dc-ui .main-content .table tbody tr:hover td {
    background: var(--dc-table-hover);
}

body.dc-ui .main-content .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: rgba(128, 128, 128, 0.03);
}

body.dc-ui .main-content .table thead th a {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
}

body.dc-ui .main-content .table thead th a:hover {
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content .table-ta-sticky-actions th:last-child,
body.dc-ui .main-content .table-ta-sticky-actions td:last-child {
    background-color: var(--dc-table-sticky-bg, var(--dc-input-bg));
    -webkit-backdrop-filter: blur(var(--dc-blur));
    backdrop-filter: blur(var(--dc-blur));
}

body.dc-ui .main-content .table-ta-sticky-actions tbody tr:hover td:last-child {
    background-color: var(--dc-table-hover);
}

/* Компактные списки: организации, наши организации */
body.dc-ui .table-ta-compact-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body.dc-ui .table-ta-compact-wrap .table-ta-compact {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
}

body.dc-ui .table-ta-compact :is(th, td) {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.dc-ui .table-ta-compact .ta-compact-col-name,
body.dc-ui .table-ta-compact .ta-compact-col-inn,
body.dc-ui .table-ta-compact .ta-compact-col-kpp,
body.dc-ui .table-ta-compact .ta-compact-col-bank {
    white-space: nowrap;
}

body.dc-ui .table-ta-compact .ta-compact-col-name {
    width: 32%;
}

body.dc-ui .table-ta-compact .ta-compact-col-inn {
    width: 15%;
}

body.dc-ui .table-ta-compact .ta-compact-col-kpp {
    width: 12%;
}

body.dc-ui .table-ta-compact .ta-compact-col-bank {
    width: 31%;
}

body.dc-ui .table-ta-compact .ta-compact-col-actions {
    width: 10%;
    overflow: visible;
    text-align: center;
    vertical-align: middle;
}

body.dc-ui .table-ta-compact .ta-compact-col-actions .ta-row-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    justify-content: center;
    max-width: 100%;
}

body.dc-ui .table-ta-compact .ta-compact-col-actions .ta-row-actions > .btn {
    padding: 0.2rem 0.4rem;
    flex-shrink: 0;
}

body.dc-ui .table-ta-compact thead th,
body.dc-ui .table-ta-compact tbody td {
    padding: 0.45rem 0.5rem;
}

@media (max-width: 575.98px) {
    body.dc-ui .table-ta-compact .ta-compact-col-name { width: 28%; }
    body.dc-ui .table-ta-compact .ta-compact-col-inn { width: 22%; }
    body.dc-ui .table-ta-compact .ta-compact-col-kpp { width: 0; display: none; }
    body.dc-ui .table-ta-compact .ta-compact-col-bank { width: 30%; }
    body.dc-ui .table-ta-compact .ta-compact-col-actions { width: 20%; }
}

/* ─── Alerts ─── */
body.dc-ui .main-content .alert {
    border-radius: var(--dc-radius-sm);
    border-width: 1px;
    font-size: 0.875rem;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

body.dc-ui .main-content .alert-success {
    background: var(--dc-alert-success-bg);
    border-color: var(--dc-alert-success-border);
    color: var(--dc-alert-success-fg);
}

body.dc-ui .main-content .alert-warning {
    background: var(--dc-alert-warning-bg);
    border-color: var(--dc-alert-warning-border);
    color: var(--dc-alert-warning-fg);
}

body.dc-ui .main-content .alert-danger,
body.dc-ui .main-content .alert-error {
    background: var(--dc-alert-danger-bg);
    border-color: var(--dc-alert-danger-border);
    color: var(--dc-alert-danger-fg);
}

body.dc-ui .main-content .alert-info {
    background: var(--dc-alert-info-bg);
    border-color: var(--dc-alert-info-border);
    color: var(--dc-alert-info-fg);
}

body.dc-ui .main-content .alert-light {
    background: var(--dc-input-bg);
    border-color: var(--dc-glass-border);
    color: var(--dc-fg-primary);
}

/* ─── Modals ─── */
body.dc-ui .modal-content {
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius);
    box-shadow: var(--dc-glass-shadow);
    -webkit-backdrop-filter: blur(var(--dc-blur-strong));
    backdrop-filter: blur(var(--dc-blur-strong));
    color: var(--dc-fg-primary);
}

body.dc-ui .modal-header {
    border-bottom: 1px solid var(--dc-glass-border);
}

body.dc-ui .modal-footer {
    border-top: 1px solid var(--dc-glass-border);
}

body.dc-ui.theme-dark .btn-close {
    filter: invert(1) grayscale(100%);
    opacity: 0.7;
}

/* Premium Modal Slide-in up & blur */
body.dc-ui .modal.fade .modal-dialog {
    transform: scale(0.96) translateY(30px);
    transition: transform var(--dc-motion-slow) var(--dc-ease-out) !important;
}

body.dc-ui .modal.show .modal-dialog {
    transform: scale(1) translateY(0);
}

body.dc-ui .modal-backdrop {
    background-color: var(--dc-bg-base) !important;
    opacity: 0;
    transition: opacity var(--dc-motion-base) var(--dc-ease-standard) !important;
}

body.dc-ui .modal-backdrop.show {
    opacity: 0.45 !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

/* ─── Pagination & dropdowns (main) ─── */
body.dc-ui .main-content .pagination {
    gap: 4px;
    padding: 4px;
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    border-radius: calc(var(--dc-radius-sm) + 4px);
    display: inline-flex;
    -webkit-backdrop-filter: blur(var(--dc-blur));
    backdrop-filter: blur(var(--dc-blur));
    box-shadow: var(--dc-glass-shadow);
}

body.dc-ui .main-content .pagination .page-item {
    margin: 0;
}

body.dc-ui .main-content .pagination .page-link {
    background: transparent;
    border: 1px solid transparent;
    color: var(--dc-fg-secondary);
    border-radius: var(--dc-radius-sm);
    padding: 6px 12px;
    min-width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all var(--dc-motion-fast) var(--dc-ease-standard);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.dc-ui .main-content .pagination .page-item.active .page-link {
    background: var(--dc-nav-active-bg) !important;
    border-color: var(--dc-nav-active-border) !important;
    color: var(--dc-fg-primary) !important;
    box-shadow: inset 0 0 6px var(--dc-accent-glow), 0 0 10px var(--dc-accent-glow) !important;
    font-weight: 600;
}

body.dc-ui .main-content .pagination .page-link:hover {
    background: var(--dc-table-hover);
    color: var(--dc-fg-primary);
    border-color: var(--dc-glass-border);
}

body.dc-ui .main-content .pagination .page-item.disabled .page-link {
    background: transparent;
    border-color: transparent;
    color: var(--dc-fg-secondary);
    opacity: 0.35;
    pointer-events: none;
}

body.dc-ui .main-content .dropdown-menu:not(.dc-glass) {
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    border-radius: var(--dc-radius-sm);
    box-shadow: var(--dc-glass-shadow);
    -webkit-backdrop-filter: blur(var(--dc-blur-strong));
    backdrop-filter: blur(var(--dc-blur-strong));
}

body.dc-ui .main-content .dropdown-item {
    color: var(--dc-fg-primary);
    border-radius: 4px;
}

body.dc-ui .main-content .dropdown-item:hover {
    background: var(--dc-table-hover);
    color: var(--dc-fg-primary);
}

/* ─── List group & mobile cards ─── */
body.dc-ui .main-content .list-group-item {
    background: transparent;
    border-color: var(--dc-table-border);
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content .list-group-item:hover {
    background: var(--dc-table-hover);
}

body.dc-ui .mobile-data-card-list .mobile-data-card {
    border-bottom: 1px solid var(--dc-table-border);
}

body.dc-ui .mobile-data-card-meta-row dt {
    color: var(--dc-fg-secondary);
}

/* ─── Badges (glass border) ─── */
body.dc-ui .main-content .badge {
    font-weight: 500;
    font-size: 0.75rem;
    border-radius: 6px;
    padding: 0.3em 0.55em;
}

body.dc-ui .main-content :is(
    .badge-ta-payment-cash,
    .badge-ta-payment-corporate,
    .badge-ta-status-completed,
    .badge-ta-status-planned,
    .badge-ta-status-cancelled
) {
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

body.dc-ui .main-content .badge-ta-payment-cash {
    background-color: var(--dc-badge-payment-cash-bg);
    color: var(--dc-badge-payment-cash-fg);
    border: 1px solid var(--dc-badge-payment-cash-border);
}

body.dc-ui .main-content .badge-ta-payment-corporate {
    background-color: var(--dc-badge-payment-corporate-bg);
    color: var(--dc-badge-payment-corporate-fg);
    border: 1px solid var(--dc-badge-payment-corporate-border);
}

body.dc-ui .main-content .badge-ta-status-completed {
    background-color: var(--dc-badge-status-completed-bg);
    color: var(--dc-badge-status-completed-fg);
    border: 1px solid var(--dc-badge-status-completed-border);
}

body.dc-ui .main-content .badge-ta-status-planned {
    background-color: var(--dc-badge-status-planned-bg);
    color: var(--dc-badge-status-planned-fg);
    border: 1px solid var(--dc-badge-status-planned-border);
}

body.dc-ui .main-content .badge-ta-status-cancelled {
    background-color: var(--dc-badge-status-cancelled-bg);
    color: var(--dc-badge-status-cancelled-fg);
    border: 1px solid var(--dc-badge-status-cancelled-border);
}

body.dc-ui .main-content .badge:not([class*="badge-ta-"]) {
    color: var(--ta-badge-fg);
}

/* ─── Theme utilities (без цепочек .theme-dark !important) ─── */
body.dc-ui .text-muted {
    color: var(--dc-fg-secondary);
}

body.dc-ui .main-content :is(
    .card-body, .card-header, .table td, .table th,
    h1, .h1, .card-title, .card-text, .list-group-item,
    .list-group-item a, .fs-4, .fw-semibold, p
) {
    color: inherit;
}

body.dc-ui .main-content .form-control[type="file"]::file-selector-button {
    color: var(--dc-file-btn-fg);
    background-color: var(--dc-file-btn-bg);
    border: 1px solid var(--dc-file-btn-border);
}

body.dc-ui .main-content .form-control[type="file"]::file-selector-button:hover {
    background-color: var(--dc-file-btn-hover-bg);
    border-color: var(--dc-file-btn-hover-border);
}

body.dc-ui .main-content .form-control[type="file"]::-webkit-file-upload-button {
    color: var(--dc-file-btn-fg);
    background-color: var(--dc-file-btn-bg);
    border: 1px solid var(--dc-file-btn-border);
}

body.dc-ui .main-content .form-control[type="file"]::-webkit-file-upload-button:hover {
    background-color: var(--dc-file-btn-hover-bg);
    border-color: var(--dc-file-btn-hover-border);
}

body.dc-ui .main-content .salary-totals-row td {
    background-color: var(--dc-salary-totals-bg);
    color: var(--dc-salary-totals-fg);
    border-top: 2px solid var(--dc-salary-totals-border);
}

body.dc-ui .main-content #route-duplicate-hint.route-duplicate-hint--visible {
    position: relative;
    padding: 0.9rem 1rem 0.9rem 1.1rem;
    border: 1px solid rgba(245, 158, 11, 0.5) !important;
    border-left: 5px solid #f59e0b !important;
    border-radius: var(--dc-radius-sm, 8px);
    background: linear-gradient(90deg, rgba(245, 158, 11, 0.18), rgba(245, 158, 11, 0.06));
    color: var(--dc-fg-primary);
    box-shadow: 0 10px 28px rgba(245, 158, 11, 0.14);
    animation: taDuplicatePulse 1.6s ease-out 1;
}

body.dc-ui .main-content #route-duplicate-hint .route-duplicate-hint__title {
    display: block;
    margin-bottom: 0.55rem;
    font-weight: 700;
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content #route-duplicate-hint .route-duplicate-hint__item {
    padding: 0.65rem 0;
    border-top: 1px solid rgba(245, 158, 11, 0.28);
}

body.dc-ui .main-content #route-duplicate-hint .route-duplicate-hint__date {
    font-weight: 700;
}

body.dc-ui .main-content #route-duplicate-hint .route-duplicate-hint__route {
    font-weight: 650;
}

body.dc-ui .main-content #route-duplicate-hint .route-duplicate-hint__meta {
    color: var(--dc-fg-secondary);
    font-size: 0.875rem;
}

body.dc-ui .main-content #route-duplicate-hint .route-duplicate-hint__link {
    display: inline-flex;
    margin-top: 0.35rem;
    color: var(--dc-link);
    font-weight: 650;
}

@keyframes taDuplicatePulse {
    0% {
        transform: translateY(-2px);
        box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.35);
    }
    70% {
        box-shadow: 0 0 0 8px rgba(245, 158, 11, 0);
    }
    100% {
        transform: translateY(0);
        box-shadow: 0 10px 28px rgba(245, 158, 11, 0.14);
    }
}

body.dc-ui .main-content .recon-form-page :is(.form-label, .card-title, label, em) {
    color: inherit;
}

body.dc-ui .main-content .recon-form-page em {
    color: var(--dc-fg-secondary);
}

/* ─── Select2 (bootstrap-5 theme; light/dark только через --dc-select2-*) ─── */
body.dc-ui .select2-container {
    width: 100%;
    max-width: 100%;
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection {
    background-color: var(--dc-select2-selection-bg);
    border-color: var(--dc-select2-selection-border);
    color: var(--dc-select2-selection-fg);
    border-radius: var(--dc-radius-sm);
    min-height: calc(1.5em + 0.75rem + 2px);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection__rendered {
    color: var(--dc-select2-selection-fg);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection__placeholder {
    color: var(--dc-input-placeholder);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection__clear {
    color: var(--dc-select2-arrow);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection__arrow b {
    border-color: var(--dc-select2-arrow) transparent transparent transparent;
}

body.dc-ui .select2-container--bootstrap-5.select2-container--open .select2-selection__arrow b {
    border-color: transparent transparent var(--dc-select2-arrow) transparent;
}

/* Фокус: формы — brand; фильтр маршрутов — нейтральное кольцо */
body.dc-ui .select2-container--bootstrap-5.select2-container--focus .select2-selection,
body.dc-ui .select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: var(--dc-select2-focus-border);
    box-shadow: 0 0 0 3px var(--dc-select2-focus-ring);
}

body.dc-ui .filter-form-routes .select2-container--bootstrap-5.select2-container--focus .select2-selection,
body.dc-ui .filter-form-routes .select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: var(--dc-select2-filter-focus-border);
    box-shadow: 0 0 0 3px var(--dc-select2-filter-focus-ring);
}

body.dc-ui .select2-container--bootstrap-5 .select2-dropdown {
    background: var(--dc-select2-dropdown-bg);
    border: 1px solid var(--dc-select2-dropdown-border);
    border-radius: var(--dc-radius-sm);
    box-shadow: var(--dc-glass-shadow);
    color: var(--dc-select2-selection-fg);
    z-index: 1060;
}

body.dc-ui .select2-container--bootstrap-5 .select2-results__option {
    color: var(--dc-select2-selection-fg);
}

body.dc-ui .select2-container--bootstrap-5 .select2-results__option--highlighted,
body.dc-ui .select2-dropdown.ta-select2-dropdown .select2-results__option--highlighted {
    background: var(--dc-select2-option-highlight-bg);
    color: var(--dc-select2-selection-fg);
}

body.dc-ui .select2-container--bootstrap-5 .select2-results__option--selected {
    background-color: var(--dc-select2-option-selected-bg);
    color: var(--dc-select2-selection-fg);
}

body.dc-ui .select2-container--bootstrap-5 .select2-results__option--disabled {
    color: var(--dc-fg-secondary);
}

body.dc-ui .select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field {
    background: var(--dc-select2-selection-bg);
    border-color: var(--dc-select2-selection-border);
    color: var(--dc-select2-selection-fg);
    border-radius: var(--dc-radius-sm);
}

body.dc-ui .select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field:focus,
body.dc-ui .ta-select2-dropdown .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--dc-select2-filter-focus-border);
    box-shadow: 0 0 0 3px var(--dc-select2-filter-focus-ring);
    outline: none;
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice {
    background-color: var(--dc-select2-option-highlight-bg);
    border-color: var(--dc-select2-selection-border);
    color: var(--dc-select2-selection-fg);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--dc-select2-arrow);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: var(--dc-select2-selection-fg);
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0.25rem 0.35rem;
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple .select2-search--inline {
    flex: 1 1 8rem;
    min-width: 8rem;
}

body.dc-ui .select2-dropdown.ta-select2-dropdown {
    background: var(--dc-select2-dropdown-bg) !important;
    background-color: var(--dc-select2-dropdown-bg) !important;
}

body.dc-ui .route-bulk-passengers-field {
    position: relative;
}

body.dc-ui .route-bulk-passengers-field:has(.select2-container--open) {
    z-index: 25;
}

/* Фильтр маршрутов — dropdown */
body.dc-ui .filter-form-routes .select2-container {
    width: 100%;
}

body.dc-ui .select2-dropdown.ta-select2-dropdown {
    border-radius: var(--dc-radius-sm);
    overflow: hidden;
}

body.dc-ui .filter-form-routes .ta-select2-dropdown .select2-search--dropdown {
    padding: 0.5rem 0.65rem 0.35rem;
}

body.dc-ui .filter-form-routes .ta-select2-dropdown .select2-results > .select2-results__options {
    padding: 0.2rem 0;
}

body.dc-ui .filter-form-routes .ta-select2-dropdown .select2-results__option {
    padding: 0.45rem 0.65rem;
}

body.dc-ui .filter-form-routes__row--last {
    border-top-color: var(--dc-table-border);
}

/* ─── Filter bar (Figma Search Medium: 32px, Footnote labels) ─── */
body.dc-ui .dc-filter-card .card-header {
    border-bottom: 1px solid var(--dc-table-border);
    color: var(--dc-fg-secondary);
}

body.dc-ui .dc-filter-bar__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem 0.75rem;
    align-items: end;
}

body.dc-ui .dc-filter-bar__field--period,
body.dc-ui .dc-filter-bar__field--route {
    grid-column: span 2;
}

body.dc-ui .dc-filter-bar__period .form-select {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
}

body.dc-ui .dc-filter-bar__label {
    display: block;
    margin-bottom: 0.2rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--dc-fg-secondary);
}

body.dc-ui .dc-filter-bar__period {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

body.dc-ui .dc-filter-bar__period .form-control {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
}

body.dc-ui .dc-filter-bar__period-sep {
    flex-shrink: 0;
    color: var(--dc-fg-secondary);
    font-size: 0.75rem;
    line-height: 1;
    user-select: none;
}

body.dc-ui .dc-filter-bar__actions {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
    padding-bottom: 1px;
    grid-column: span 2;
}

body.dc-ui .dc-filter-bar :is(.form-control-sm, .form-select-sm) {
    min-height: 32px;
    padding: 0.25rem 0.625rem;
    font-size: 0.875rem;
    line-height: 1.25;
}

body.dc-ui .dc-filter-bar .select2-container--bootstrap-5 .select2-selection,
body.dc-ui .dc-filter-bar .ta-select2-selection--compact.select2-selection {
    min-height: 32px !important;
    padding: 0.125rem 1.75rem 0.125rem 0.5rem !important;
    font-size: 0.875rem;
    line-height: 1.25;
}

body.dc-ui .dc-filter-bar .select2-container--bootstrap-5 .select2-selection__rendered {
    line-height: 1.25;
    padding: 0;
}

body.dc-ui .dc-filter-bar .select2-container--bootstrap-5 .select2-selection__arrow {
    height: 30px;
}

body.dc-ui .dc-filter-bar .btn-sm {
    min-height: 32px;
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
}

body.dc-ui .dc-filter-bar .ta-select2-dropdown .select2-search--dropdown {
    padding: 0.35rem 0.5rem 0.25rem;
}

body.dc-ui .dc-filter-bar .ta-select2-dropdown .select2-results__option {
    padding: 0.35rem 0.5rem;
    font-size: 0.875rem;
}

/* ——— Страница «Сегодня» (рабочий стол диспетчера) ——— */
body.dc-ui .ta-today-header__copy {
    min-width: 0;
    flex-basis: 0;
}

body.dc-ui .ta-today-header > .dc-btn-group {
    margin-left: auto;
}

body.dc-ui .ta-today-status,
body.dc-ui .ta-today-driver {
    min-width: 7.5rem;
    max-width: 11rem;
}

body.dc-ui .table-ta-routes .select2-container,
body.dc-ui .table-ta-today-wrap .select2-container {
    min-width: 7.5rem;
    max-width: 11rem;
}

body.dc-ui .ta-today-select2-selection.select2-selection {
    min-height: 31px;
    font-size: 0.8125rem;
}

body.dc-ui .select2-dropdown.ta-today-select2-dropdown {
    border-radius: var(--dc-radius-sm);
    overflow: hidden;
}

body.dc-ui .ta-today-select2-dropdown .select2-results__option {
    padding: 0.4rem 0.65rem;
    font-size: 0.875rem;
}

/* Неподсвеченные пункты всегда читаемы (нативный select на Windows не стилизуется) */
body.dc-ui.theme-dark .select2-dropdown.ta-today-select2-dropdown {
    background: #1f2937;
    border-color: rgba(255, 255, 255, 0.22);
}

body.dc-ui.theme-dark .select2-dropdown.ta-today-select2-dropdown .select2-results__option {
    color: #f3f4f6;
}

body.dc-ui.theme-dark .select2-dropdown.ta-today-select2-dropdown .select2-results__option--highlighted,
body.dc-ui.theme-dark .select2-dropdown.ta-today-select2-dropdown .select2-results__option--highlighted[aria-selected] {
    background-color: #2563eb !important;
    color: #fff !important;
}

body.dc-ui .ta-today-phone .btn {
    line-height: 1.2;
}

body.dc-ui .ta-today-toast {
    position: fixed;
    bottom: 1.25rem;
    right: 1.25rem;
    z-index: 1080;
    padding: 0.5rem 0.85rem;
    border-radius: var(--dc-radius-md, 8px);
    background: var(--dc-surface-elevated, #1f2937);
    color: var(--dc-text-primary, #f9fafb);
    font-size: 0.875rem;
    box-shadow: var(--dc-shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.2));
}

body.dc-ui .ta-today-toast--error {
    background: #7f1d1d;
}

body.dc-ui .dc-today-filters .badge {
    font-weight: 500;
}

/* ——— Empty states (DS-05) и подсказки (PR-15) ——— */
body.dc-ui .dc-empty-state {
    padding: 2rem 1.25rem;
    text-align: center;
}

body.dc-ui .dc-empty-state__title {
    font-weight: 600;
    margin-bottom: 0.35rem;
}

body.dc-ui .dc-empty-state__text {
    color: var(--dc-text-muted, #6b7280);
    font-size: 0.875rem;
    max-width: 28rem;
    margin: 0 auto 1rem;
}

body.dc-ui .dc-empty-state__actions {
    justify-content: center;
    flex-wrap: wrap;
}

body.dc-ui .dc-feature-tips {
    border-style: dashed;
    border-color: var(--dc-border-subtle, rgba(0, 0, 0, 0.12));
    background: var(--dc-surface-muted, rgba(0, 0, 0, 0.02));
}

body.dc-ui .dc-feature-tips__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.35rem;
}

@media (min-width: 768px) {
    body.dc-ui .dc-feature-tips__list {
        grid-template-columns: 1fr 1fr;
        column-gap: 1.5rem;
    }
}

body.dc-ui .dc-feature-tips__list a {
    font-weight: 500;
}

@media (max-width: 1399.98px) {
    body.dc-ui .dc-filter-bar__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    body.dc-ui .dc-filter-bar__field--period,
    body.dc-ui .dc-filter-bar__field--route {
        grid-column: span 2;
    }

    body.dc-ui .dc-filter-bar__actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 991.98px) {
    body.dc-ui .dc-filter-bar__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.dc-ui .dc-filter-bar__field--period,
    body.dc-ui .dc-filter-bar__field--route,
    body.dc-ui .dc-filter-bar__actions {
        grid-column: 1 / -1;
    }

    body.dc-ui .dc-filter-bar__actions {
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
    body.dc-ui .dc-filter-bar__grid {
        grid-template-columns: 1fr;
    }
}

/* Select2: перебить select2-bootstrap-5-theme (CDN) + data-bs-theme */
body.dc-ui .select2-container--bootstrap-5 .select2-selection--single,
body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple {
    background-color: var(--dc-select2-selection-bg) !important;
    border-color: var(--dc-select2-selection-border) !important;
}

body.dc-ui .select2-container--bootstrap-5 .select2-selection__rendered {
    color: var(--dc-select2-selection-fg) !important;
}

body.dc-ui .select2-container--bootstrap-5.select2-container--focus .select2-selection--single,
body.dc-ui .select2-container--bootstrap-5.select2-container--open .select2-selection--single,
body.dc-ui .select2-container--bootstrap-5.select2-container--focus .select2-selection--multiple,
body.dc-ui .select2-container--bootstrap-5.select2-container--open .select2-selection--multiple {
    border-color: var(--dc-select2-focus-border) !important;
    box-shadow: 0 0 0 3px var(--dc-select2-focus-ring) !important;
}

body.dc-ui .filter-form-routes .select2-container--bootstrap-5.select2-container--focus .select2-selection,
body.dc-ui .filter-form-routes .select2-container--bootstrap-5.select2-container--open .select2-selection,
body.dc-ui .dc-filter-bar .select2-container--bootstrap-5.select2-container--focus .select2-selection,
body.dc-ui .dc-filter-bar .select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: var(--dc-select2-filter-focus-border) !important;
    box-shadow: 0 0 0 3px var(--dc-select2-filter-focus-ring) !important;
}

body.dc-ui .select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected] {
    background-color: var(--dc-select2-option-highlight-bg) !important;
    color: var(--dc-select2-selection-fg) !important;
}

/* Тёмная тема (theme-dark + data-bs-theme на <html>) */
body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-selection--single,
body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-selection--multiple,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-selection--single,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple {
    background-color: var(--dc-input-bg) !important;
    border-color: var(--dc-input-border) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-selection__rendered,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-selection__rendered {
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-selection__placeholder,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-selection__placeholder {
    color: var(--dc-input-placeholder) !important;
    background: transparent !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-dropdown,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-dropdown {
    background: var(--dc-surface-solid) !important;
    background-color: var(--dc-surface-solid) !important;
    border-color: var(--dc-input-border) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-results__option,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-results__option {
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-results__option--highlighted,
body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected],
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-results__option--highlighted,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected] {
    background-color: var(--dc-select2-option-highlight-bg) !important;
    color: #fff !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-results__option--selected,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-results__option--selected {
    background-color: var(--dc-select2-option-selected-bg) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field {
    background-color: var(--dc-input-bg) !important;
    border-color: var(--dc-input-border) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice,
html[data-bs-theme="dark"] body.dc-ui .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice {
    background-color: var(--dc-select2-option-selected-bg) !important;
    border-color: var(--dc-input-border) !important;
    color: var(--dc-fg-primary) !important;
}

@media (min-width: 992px) {
    :root {
        --dc-screen-padding: 32px;
    }
}

@media (min-width: 1400px) {
    :root {
        --dc-screen-padding: 48px;
    }
}

/* ─── Свёрнутый сайдбар (только иконки, как в макете) ─── */
body.sidebar-collapsed.dc-ui .sidebar-brand-text,
body.sidebar-collapsed.dc-ui .sidebar-nav-text,
body.sidebar-collapsed.dc-ui .sidebar-nav-group-label,
body.sidebar-collapsed.dc-ui .sidebar-company-select,
body.sidebar-collapsed.dc-ui .sidebar-company-label,
body.sidebar-collapsed.dc-ui .theme-toggle-text,
body.sidebar-collapsed.dc-ui .sidebar-user .sidebar-nav-text,
body.sidebar-collapsed.dc-ui .sidebar-footer .dropdown-toggle::after {
    display: none !important;
}

body.sidebar-collapsed.dc-ui .sidebar-header {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding-bottom: 8px;
}

body.sidebar-collapsed.dc-ui .sidebar-header-actions {
    order: 2;
    width: 100%;
    justify-content: center;
}

body.sidebar-collapsed.dc-ui .sidebar-brand {
    justify-content: center;
    width: 100%;
    padding: 4px 0;
}

body.sidebar-collapsed.dc-ui .sidebar-brand .dc-icon {
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
}

body.sidebar-collapsed.dc-ui .sidebar-collapse-btn {
    width: 100%;
    justify-content: center;
    display: flex;
    align-items: center;
    padding: 6px;
}

body.sidebar-collapsed.dc-ui .sidebar-nav-group {
    margin: 0;
    padding: 0;
    height: 0;
    overflow: hidden;
}

body.sidebar-collapsed.dc-ui .sidebar-nav-link {
    justify-content: center;
    padding: 10px 8px;
    margin: 2px 0;
    border-left: none !important;
    padding-left: 8px !important;
    gap: 0;
}

body.sidebar-collapsed.dc-ui .sidebar-nav-link.active {
    border-left: none !important;
    padding-left: 8px !important;
    border-radius: var(--dc-radius-sm);
    background: var(--dc-nav-active-bg);
    box-shadow: none;
}

body.sidebar-collapsed.dc-ui .sidebar-nav-link.active::after {
    display: none;
}

body.sidebar-collapsed.dc-ui .sidebar-nav-link .dc-icon {
    width: 18px;
    height: 18px;
    margin: 0;
}

body.sidebar-collapsed.dc-ui .sidebar-theme-toggle .theme-toggle-btn {
    width: 100%;
    justify-content: center;
    padding: 8px;
    min-height: 40px;
}

body.sidebar-collapsed.dc-ui .sidebar-theme-toggle .theme-toggle-btn .dc-icon {
    margin: 0;
}

body.sidebar-collapsed.dc-ui .sidebar-user {
    justify-content: center;
    padding: 8px 0;
}

body.sidebar-collapsed.dc-ui .sidebar-user .dc-icon {
    margin: 0;
}

body.sidebar-collapsed.dc-ui .sidebar-footer .dropdown,
body.sidebar-collapsed.dc-ui .sidebar-footer .dropup,
body.sidebar-collapsed.dc-ui .sidebar-footer .sidebar-user-menu {
    width: 100%;
}

body.sidebar-collapsed.dc-ui .sidebar-footer .sidebar-user.dropdown-toggle::before {
    display: none;
}

@media (max-width: 991.98px) {
    body.dc-ui .sidebar {
        margin: 0;
        min-height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100vh;
        max-height: 100vh;
        width: var(--dc-sidebar-width);
    }

    body.dc-ui .main-content {
        margin-left: 0;
    }

    body.dc-ui.sidebar-collapsed .sidebar {
        width: var(--dc-sidebar-width);
    }

    body.dc-ui .sidebar.dc-glass-panel {
        border-radius: 0;
    }
}

/* ═══════════════════════════════════════════════════════════
   Phase 4: страницы и особые layout
   ═══════════════════════════════════════════════════════════ */

/* bg-light → glass panel */
body.dc-ui .main-content :is(.bg-light, .card.bg-light) {
    background: var(--dc-input-bg) !important;
    border: 1px solid var(--dc-glass-border);
    color: var(--dc-fg-primary) !important;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

body.dc-ui .main-content .card.bg-light .card-body {
    background: transparent !important;
}

/* Грузоперевозка: строки этапов и грузов (без bg-white) */
body.dc-ui .main-content :is(.cargo-leg-row, .cargo-item-row) {
    background: var(--dc-surface-solid) !important;
    border-color: var(--dc-glass-border) !important;
    color: var(--dc-fg-primary);
}

body.dc-ui .main-content :is(.cargo-leg-row, .cargo-item-row) .form-label {
    color: var(--dc-fg-secondary);
}

/* Вход / регистрация */
body.dc-ui .dc-auth-page .card {
    max-width: 420px;
    margin: 0 auto;
}

body.dc-ui .dc-auth-page .card-header {
    font-weight: 600;
}

/* Акт сверки — конструктор */
body.dc-ui .main-content .recon-form-page h2 {
    font-weight: 600;
    letter-spacing: -0.02em;
}

body.dc-ui .main-content .recon-form-page .recon-builder-table {
    font-size: 0.8125rem;
}

body.dc-ui .main-content .recon-form-page .recon-builder-table :is(th, td) {
    border-color: var(--dc-table-border) !important;
    vertical-align: middle;
}

body.dc-ui .main-content .recon-form-page .recon-builder-table thead th {
    background: var(--dc-input-bg) !important;
    color: var(--dc-fg-primary) !important;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

body.dc-ui .main-content .recon-form-page .recon-builder-table .table-secondary :is(th, td) {
    background: var(--dc-table-hover) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui .main-content .recon-form-page .recon-builder-table :is(.table-light th, .table-light td, td.bg-light) {
    background: rgba(128, 128, 128, 0.08) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui .main-content .recon-form-page .recon-builder-table input.form-control {
    font-size: 0.8125rem;
    padding: 0.25rem 0.4rem;
    min-height: auto;
}

body.dc-ui .main-content .recon-form-page .card-footer .btn-success {
    box-shadow: 0 4px 14px rgba(34, 197, 94, 0.3);
}

/* Форма маршрута */
body.dc-ui .main-content .route-trip-type {
    gap: 0.75rem;
}

body.dc-ui .main-content .route-trip-type .route-trip-type__booking:first-of-type {
    border-left-color: var(--dc-glass-border);
}

body.dc-ui .main-content #route-duplicate-hint.alert-light:not(.route-duplicate-hint--visible) {
    background: var(--dc-input-bg);
    border-color: var(--dc-glass-border);
    color: var(--dc-fg-primary);
}

/* Табло */
body.dc-ui .main-content .tablo-status-badge {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25em 0.5em;
    border-radius: 6px;
}

/* Документация — карточки отчётов */
body.dc-ui .main-content .dc-report-cards .card {
    transition: box-shadow var(--dc-motion-fast), transform var(--dc-motion-fast);
}

body.dc-ui .main-content .dc-report-cards .card:hover {
    box-shadow: var(--dc-glass-shadow), 0 8px 24px rgba(17, 24, 39, 0.08);
}

body.dc-ui .main-content .dc-report-cards .card-title {
    font-weight: 600;
    font-size: 1rem;
}

/* Зарплата — таблица в карточке */
body.dc-ui .main-content .salary-table-wrap {
    border-radius: 0 0 var(--dc-radius) var(--dc-radius);
    overflow: hidden;
}

/* KPI / stat cards on dashboard */
body.dc-ui .main-content .dc-stat-card .fs-4 {
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--dc-fg-primary);
}

/* Page enter — all pages (base.html .dc-page-content) */
@keyframes dc-page-enter {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script) {
    animation: dc-page-enter var(--dc-motion-base) var(--dc-ease-out) both;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(1) {
    animation-delay: 0ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(2) {
    animation-delay: 40ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(3) {
    animation-delay: 80ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(4) {
    animation-delay: 120ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(5) {
    animation-delay: 160ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(6) {
    animation-delay: 200ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(7) {
    animation-delay: 240ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(8) {
    animation-delay: 280ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(9) {
    animation-delay: 320ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(10) {
    animation-delay: 360ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(11) {
    animation-delay: 400ms;
}

body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script):nth-child(n + 12) {
    animation-delay: 440ms;
}

body.dc-ui .dc-page-content > .modal,
body.dc-ui .dc-page-content > script {
    animation: none;
}

/* Dashboard KPI row: stagger cards, not the row wrapper */
body.dc-ui .dc-stat-row.dc-page-enter-skip > .col:nth-child(1) > .card {
    animation: dc-page-enter var(--dc-motion-base) var(--dc-ease-out) both;
    animation-delay: 70ms;
}

body.dc-ui .dc-stat-row.dc-page-enter-skip > .col:nth-child(2) > .card {
    animation: dc-page-enter var(--dc-motion-base) var(--dc-ease-out) both;
    animation-delay: 105ms;
}

body.dc-ui .dc-stat-row.dc-page-enter-skip > .col:nth-child(3) > .card {
    animation: dc-page-enter var(--dc-motion-base) var(--dc-ease-out) both;
    animation-delay: 140ms;
}

body.dc-ui .dc-stat-row.dc-page-enter-skip > .col:nth-child(4) > .card {
    animation: dc-page-enter var(--dc-motion-base) var(--dc-ease-out) both;
    animation-delay: 175ms;
}

body.dc-ui .dc-stat-row.dc-page-enter-skip > .col:nth-child(5) > .card {
    animation: dc-page-enter var(--dc-motion-base) var(--dc-ease-out) both;
    animation-delay: 210ms;
}

body.dc-ui .dc-page-content > .card,
body.dc-ui .dc-stat-card {
    transition:
        box-shadow var(--dc-motion-base) var(--dc-ease-out),
        transform var(--dc-motion-base) var(--dc-ease-out);
}

body.dc-ui .dc-page-content > .card:hover,
body.dc-ui .dc-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--dc-glass-shadow), 0 6px 20px rgba(17, 24, 39, 0.06);
}

body.dc-ui.theme-dark .dc-page-content > .card:hover,
body.dc-ui.theme-dark .dc-stat-card:hover {
    box-shadow: var(--dc-glass-shadow), 0 8px 24px rgba(0, 0, 0, 0.28);
}

/* Import / bulk hints */
body.dc-ui .main-content .alert pre,
body.dc-ui .main-content pre.bg-light {
    background: var(--dc-input-bg) !important;
    border: 1px solid var(--dc-glass-border);
    color: var(--dc-fg-primary);
    border-radius: var(--dc-radius-sm);
}

/* Организация detail tabs */
body.dc-ui .main-content .nav-tabs {
    border-bottom-color: var(--dc-table-border);
}

body.dc-ui .main-content .nav-tabs .nav-link {
    color: var(--dc-fg-secondary);
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
}

body.dc-ui .main-content .nav-tabs .nav-link:hover {
    color: var(--dc-fg-primary);
    border-bottom-color: var(--dc-glass-border);
}

body.dc-ui .main-content .nav-tabs .nav-link.active {
    color: var(--dc-fg-primary);
    font-weight: 500;
    border-bottom-color: var(--dc-brand);
    background: transparent;
}

/* Focus — клавиатура: outline + ореол на полях; кнопки — в правилах выше */
body.dc-ui .main-content :is(.form-control, .form-select):focus-visible {
    outline: 2px solid var(--dc-brand);
    outline-offset: 2px;
    box-shadow: 0 0 0 3px var(--dc-focus-ring);
}

body.dc-ui .main-content :is(.page-link, .nav-link, a.card):focus-visible {
    outline: 2px solid var(--dc-brand);
    outline-offset: 2px;
}

body.dc-ui .dc-btn-group > .btn:focus-visible {
    box-shadow: 0 0 0 2px var(--dc-focus-ring) !important;
}

body.dc-ui .sidebar-nav-link:focus-visible,
body.dc-ui .sidebar-theme-btn:focus-visible,
body.dc-ui .sidebar-toggle-btn:focus-visible {
    outline: 2px solid var(--dc-brand);
    outline-offset: 2px;
}

/* Формы импорта / массового создания */
body.dc-ui .main-content .dc-form-page .card-header {
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

body.dc-ui .main-content .dc-page-header h1 {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

/* ─── Landing (public page, no Bootstrap) ─── */
body.dc-ui.dc-landing {
    font-family: var(--dc-font);
    font-size: 16px;
    line-height: 1.6;
    color: var(--dc-fg-primary);
    background: transparent;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -webkit-font-smoothing: antialiased;
}

body.dc-ui.dc-landing .btn {
    display: inline-block;
    font-family: inherit;
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--dc-radius-sm);
    border: 1px solid transparent;
    transition:
        background var(--dc-motion-fast) var(--dc-ease-out),
        border-color var(--dc-motion-fast) var(--dc-ease-out),
        box-shadow var(--dc-motion-fast) var(--dc-ease-out);
    cursor: pointer;
}

body.dc-ui.dc-landing .btn-sm {
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
}

body.dc-ui.dc-landing .btn-lg {
    font-size: 1rem;
    padding: 0.75rem 1.5rem;
}

body.dc-ui.dc-landing .btn-primary {
    background: var(--ta-btn-primary-bg);
    border-color: var(--ta-btn-primary-border);
    color: var(--ta-btn-primary-fg);
    box-shadow: var(--dc-btn-shadow);
}

body.dc-ui.dc-landing .btn-primary:hover,
body.dc-ui.dc-landing .btn-primary:focus {
    background: var(--ta-btn-primary-hover-bg);
    border-color: var(--ta-btn-primary-hover-border);
    color: var(--ta-btn-primary-fg);
}

body.dc-ui.dc-landing .btn:focus-visible {
    outline: 2px solid var(--dc-brand);
    outline-offset: 2px;
}

/* ─── Scroll performance: blur на каждой карточке = перерисовка фона каждый кадр ─── */
body.dc-ui .main-content .card {
    background: var(--dc-surface-solid);
    content-visibility: auto;
    contain-intrinsic-size: auto 140px;
}

body.dc-ui .main-content :is(
    .card,
    .dc-btn-group:not(:has(> .btn:only-child)),
    .alert,
    .form-control,
    .form-select,
    .btn-outline-primary,
    .btn-outline-secondary,
    .btn-outline-success,
    .btn-outline-danger,
    .btn-secondary,
    .bg-light,
    .card.bg-light,
    .table-ta-sticky-actions th:last-child,
    .table-ta-sticky-actions td:last-child
) {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body.dc-ui .main-content .dc-btn-group:not(:has(> .btn:only-child)) {
    background: var(--dc-surface-solid);
}

body.dc-ui .sidebar.dc-glass,
body.dc-ui .app-mobile-bar.dc-glass {
    background: var(--dc-surface-solid);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body.dc-ui .dropdown-menu.dc-glass,
body.dc-ui .select2-container--bootstrap-5 .select2-dropdown,
body.dc-ui .modal-content {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body.dc-ui .modal-content {
    background: var(--dc-surface-solid);
}

body.dc-ui .sidebar-collapse-btn,
body.dc-ui .sidebar-toggler,
body.dc-ui .sidebar-overlay-toggler {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

@media (prefers-reduced-motion: reduce) {
    .app-background::before,
    .dc-glass::before {
        animation: none;
    }

    body.dc-ui :is(.card, .dc-glass, .dc-btn-group, .modal-content, .select2-dropdown) {
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }

    body.dc-ui .main-content .dc-report-cards .card:hover,
    body.dc-ui .dc-page-content > .card:hover,
    body.dc-ui .dc-stat-card:hover {
        transform: none;
    }

    body.dc-ui .dc-page-content > *:not(.dc-page-enter-skip):not(.modal):not(script),
    body.dc-ui .dc-stat-row.dc-page-enter-skip > .col > .card {
        animation: none;
        opacity: 1;
        transform: none;
    }
}

/* ─── Dashboard Premium Enhancements ─── */

/* KPI Cards Accents and Watermarks */
body.dc-ui .main-content .dc-stat-card {
    position: relative;
    overflow: hidden;
}

body.dc-ui .main-content .dc-stat-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--dc-brand), transparent);
    opacity: 0.25;
    transition: opacity var(--dc-motion-base) var(--dc-ease-out);
}

body.dc-ui .main-content .dc-stat-card:hover::after {
    opacity: 0.85;
}

body.dc-ui .main-content .dc-stat-card__watermark {
    position: absolute;
    right: -16px;
    bottom: -16px;
    width: 84px;
    height: 84px;
    background-color: var(--dc-fg-primary);
    opacity: 0.04;
    pointer-events: none;
    transition: transform var(--dc-motion-slow) var(--dc-ease-out), opacity var(--dc-motion-slow) var(--dc-ease-out);
}

body.dc-ui .main-content .dc-stat-card:hover .dc-stat-card__watermark {
    transform: scale(1.15) rotate(-5deg);
    opacity: 0.08;
}

/* Quick Actions Dock */
body.dc-ui .main-content .dc-quick-actions-dock {
    border-radius: var(--dc-radius);
    padding: 1.25rem;
    background: var(--dc-glass-bg);
    border: 1px solid var(--dc-glass-border);
    box-shadow: var(--dc-glass-shadow);
}

body.dc-ui .main-content .dc-quick-actions-title {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--dc-fg-secondary);
    margin-bottom: 0.75rem;
}

body.dc-ui .main-content .dc-quick-actions-dock .dc-btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    padding: 0 !important;
}

body.dc-ui .main-content .dc-quick-actions-dock .dc-btn-group .btn {
    border-radius: var(--dc-radius-sm) !important;
    font-weight: 500;
    font-size: 0.84rem;
    padding: 0.4rem 0.85rem;
    transition: transform var(--dc-motion-fast) var(--dc-ease-out), background-color var(--dc-motion-fast), border-color var(--dc-motion-fast), box-shadow var(--dc-motion-fast);
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.4);
    border: 1px solid var(--dc-btn-outline-border);
    color: var(--dc-fg-primary);
}

body.dc-ui.theme-dark .main-content .dc-quick-actions-dock .dc-btn-group .btn {
    background: rgba(255, 255, 255, 0.05);
}

body.dc-ui .main-content .dc-quick-actions-dock .dc-btn-group .btn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.7);
    border-color: var(--dc-btn-outline-hover-border);
    box-shadow: 0 4px 12px rgba(17, 24, 39, 0.05);
}

body.dc-ui.theme-dark .main-content .dc-quick-actions-dock .dc-btn-group .btn:hover {
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

body.dc-ui .main-content .dc-quick-actions-dock .dc-btn-group .btn-primary {
    background: var(--dc-brand) !important;
    border-color: var(--dc-brand) !important;
    color: #ffffff !important;
}

body.dc-ui .main-content .dc-quick-actions-dock .dc-btn-group .btn-primary:hover {
    background: var(--dc-brand-hover) !important;
    border-color: var(--dc-brand-hover) !important;
}

/* Staggered Animations */
@keyframes dc-fade-in-up {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

body.dc-ui .dc-animate-fade-in {
    opacity: 0;
    animation: dc-fade-in-up var(--dc-motion-slow) var(--dc-ease-out) both;
}

body.dc-ui .dc-delay-1 { animation-delay: 40ms; }
body.dc-ui .dc-delay-2 { animation-delay: 80ms; }
body.dc-ui .dc-delay-3 { animation-delay: 120ms; }
body.dc-ui .dc-delay-4 { animation-delay: 160ms; }
body.dc-ui .dc-delay-5 { animation-delay: 200ms; }
body.dc-ui .dc-delay-6 { animation-delay: 240ms; }
body.dc-ui .dc-delay-7 { animation-delay: 280ms; }
body.dc-ui .dc-delay-8 { animation-delay: 320ms; }

/* Dashboard table compactness & aesthetics */
body.dc-ui .main-content .table-ta-dashboard {
    table-layout: auto;
    width: 100%;
    font-size: 0.85rem;
}

body.dc-ui .main-content .table-ta-dashboard th {
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.65rem 0.50rem;
    color: var(--dc-fg-secondary);
    border-bottom: 1px solid var(--dc-table-border);
}

body.dc-ui .main-content .table-ta-dashboard td {
    padding: 0.65rem 0.50rem;
    vertical-align: middle;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-passenger {
    width: 28%;
    min-width: 150px;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-route {
    width: 28%;
    min-width: 160px;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-date {
    width: 6.5rem;
    white-space: nowrap;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-driver {
    width: 20%;
    min-width: 110px;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-tariff {
    width: 7rem;
    text-align: right;
    white-space: nowrap;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-status {
    width: 7.5rem;
    white-space: nowrap;
    text-align: center;
    padding-right: 1.5rem !important;
}

body.dc-ui .main-content .table-ta-dashboard .ta-routes-col-actions {
    width: 4.5rem;
    text-align: center;
    padding-right: 1.5rem !important;
}

body.dc-ui .main-content .table-ta-dashboard .ta-row-actions {
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
}

body.dc-ui .main-content .table-ta-dashboard .ta-row-actions .btn {
    padding: 0 !important;
    height: 26px !important;
    width: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--dc-fg-secondary) !important;
    transition: background-color var(--dc-motion-fast) var(--dc-ease-out), color var(--dc-motion-fast) var(--dc-ease-out);
}

body.dc-ui .main-content .table-ta-dashboard .ta-row-actions .btn:hover {
    background: rgba(128, 128, 128, 0.12) !important;
    color: var(--dc-fg-primary) !important;
    border-radius: var(--dc-radius-sm) !important;
}

body.dc-ui.theme-dark .main-content .table-ta-dashboard .ta-row-actions .btn:hover {
    background: rgba(255, 255, 255, 0.1) !important;
}

/* Disable sticky positioning and shadows for dashboard table action column */
body.dc-ui .main-content .table-ta-dashboard th:last-child,
body.dc-ui .main-content .table-ta-dashboard td:last-child {
    position: static !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* PR-15: Animation to hide Useful Features block */
body.dc-ui .dc-tips-hiding {
    opacity: 0 !important;
    transform: scale(0.97) translateY(-15px) !important;
    max-height: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    transition: opacity var(--dc-motion-slow) var(--dc-ease-out),
                transform var(--dc-motion-slow) var(--dc-ease-out),
                max-height var(--dc-motion-slow) var(--dc-ease-out),
                margin var(--dc-motion-slow) var(--dc-ease-out),
                padding var(--dc-motion-slow) var(--dc-ease-out) !important;
}

/* Glassmorphism modal styling */
body.dc-ui .dc-modal-glass .modal-content {
    background: var(--dc-glass-bg) !important;
    backdrop-filter: blur(20px) saturate(125%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(125%) !important;
    border: 1px solid var(--dc-glass-border) !important;
    border-radius: calc(var(--dc-radius) * 1.5) !important;
    box-shadow: var(--dc-glass-shadow) !important;
    color: var(--dc-fg-primary) !important;
    transition: background var(--dc-motion-base) var(--dc-ease-out), border var(--dc-motion-base) var(--dc-ease-out);
}

body.dc-ui .dc-modal-glass .modal-header {
    border-bottom: 1px solid var(--dc-table-border) !important;
}

body.dc-ui .dc-modal-glass .modal-footer {
    border-top: 1px solid var(--dc-table-border) !important;
}

body.dc-ui .dc-modal-glass .modal-title {
    font-weight: 600;
    letter-spacing: -0.01em;
}

body.dc-ui .dc-modal-glass .form-control,
body.dc-ui .dc-modal-glass .form-select {
    background-color: rgba(255, 255, 255, 0.45) !important;
    border-color: rgba(17, 24, 39, 0.15) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui.theme-dark .dc-modal-glass .form-control,
body.dc-ui.theme-dark .dc-modal-glass .form-select {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

body.dc-ui .dc-modal-glass .form-control:focus,
body.dc-ui .dc-modal-glass .form-select:focus {
    background-color: rgba(255, 255, 255, 0.6) !important;
    border-color: var(--dc-brand) !important;
    box-shadow: 0 0 0 3px var(--dc-focus-ring) !important;
}

body.dc-ui.theme-dark .dc-modal-glass .form-control:focus,
body.dc-ui.theme-dark .dc-modal-glass .form-select:focus {
    background-color: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.7) !important;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15) !important;
}

/* Responsive vertical divider for analytics split dashboard card */
@media (min-width: 768px) {
    body.dc-ui .border-start-md {
        border-left: 1px solid var(--dc-table-border) !important;
        padding-left: 1.5rem !important;
    }
}

/* Sidebar interactive list toggles */
body.dc-ui .dc-toggle-icon {
    transition: transform var(--dc-motion-base) var(--dc-ease-out) !important;
}
body.dc-ui .dc-toggle-icon--active {
    transform: rotate(180deg) !important;
}
body.dc-ui .fs-7 {
    font-size: 0.78rem !important;
}/* Leaflet map integration & WOW neon animations */
body.dc-ui #map {
    border-radius: 0 0 var(--dc-radius) var(--dc-radius) !important;
    overflow: hidden;
}

body.dc-ui .dc-map-driver-ping {
    background-color: #00f2fe;
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(0, 242, 254, 0.7);
    animation: dc-ping 1.6s infinite cubic-bezier(0.66, 0, 0, 1);
    width: 12px;
    height: 12px;
    border: 2px solid white;
}

@keyframes dc-ping {
    0% { box-shadow: 0 0 0 0 rgba(0, 242, 254, 0.8); }
    70% { box-shadow: 0 0 0 12px rgba(0, 242, 254, 0); }
    100% { box-shadow: 0 0 0 0 rgba(0, 242, 254, 0); }
}

body.dc-ui .leaflet-container {
    background: var(--dc-surface-solid) !important;
    font-family: var(--dc-font) !important;
}

body.dc-ui .leaflet-bar {
    border: 1px solid var(--dc-glass-border) !important;
    box-shadow: var(--dc-glass-shadow) !important;
    border-radius: var(--dc-radius-sm) !important;
    overflow: hidden;
}

body.dc-ui .leaflet-bar a {
    background-color: var(--dc-glass-bg) !important;
    color: var(--dc-fg-primary) !important;
    border-bottom: 1px solid var(--dc-table-border) !important;
}

body.dc-ui .leaflet-bar a:hover {
    background-color: var(--dc-table-hover) !important;
    color: var(--dc-fg-primary) !important;
}

body.dc-ui .leaflet-tooltip {
    background: var(--dc-surface-solid) !important;
    border: 1px solid var(--dc-glass-border) !important;
    border-radius: var(--dc-radius-sm) !important;
    color: var(--dc-fg-primary) !important;
    font-size: 0.78rem !important;
    font-weight: 500 !important;
    box-shadow: var(--dc-glass-shadow) !important;
    padding: 4px 8px !important;
}

body.dc-ui .leaflet-tooltip-top:before {
    border-top-color: var(--dc-surface-solid) !important;
}

/* Live flight statuses warning badge */
body.dc-ui .badge-ta-status-warning {
    background-color: rgba(245, 158, 11, 0.12) !important;
    color: #d97706 !important;
    border: 1px solid rgba(245, 158, 11, 0.35) !important;
    backdrop-filter: blur(4px);
}
body.dc-ui.theme-dark .badge-ta-status-warning {
    background-color: rgba(245, 158, 11, 0.18) !important;
    color: #fbbf24 !important;
    border: 1px solid rgba(245, 158, 11, 0.35) !important;
}

/* Proactive Assistant Toast Card */
body.dc-ui .dc-assistant-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1060;
    width: 360px;
    border: 1px solid var(--dc-glass-border) !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), var(--dc-glass-shadow) !important;
    border-radius: var(--dc-radius) !important;
    padding: 16px !important;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease !important;
}
body.dc-ui .dc-assistant-toast.hiding {
    transform: translateY(30px) scale(0.9) !important;
    opacity: 0 !important;
    pointer-events: none;
}
body.dc-ui .dc-assistant-glow {
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border-radius: calc(var(--dc-radius) + 1px);
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.4), rgba(245, 158, 11, 0)) !important;
    z-index: -1;
    opacity: 0.6;
}
body.dc-ui .dc-assistant-icon-box {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(245, 158, 11, 0.15) !important;
    color: #d97706 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
body.dc-ui.theme-dark .dc-assistant-icon-box {
    background-color: rgba(245, 158, 11, 0.2) !important;
    color: #fbbf24 !important;
}
body.dc-ui .dc-assistant-success-flash {
    animation: dc-success-flash-anim 0.6s ease-out;
}
@keyframes dc-success-flash-anim {
    0% { background-color: rgba(16, 185, 129, 0.3) !important; }
    100% { background-color: transparent !important; }
}

/* ─── Sidebar Hierarchical Accordion ─── */
body.dc-ui .sidebar-nav-group-wrapper {
    margin-bottom: 4px;
    list-style: none;
}

body.dc-ui .sidebar-nav-group-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 8px 16px;
    background: transparent;
    border: none;
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25rem;
    color: var(--dc-fg-secondary) !important;
    text-align: left;
    border-radius: var(--dc-radius-sm);
    transition: background var(--dc-motion-fast) var(--dc-ease-out), color var(--dc-motion-fast) var(--dc-ease-out);
    margin-bottom: 2px;
    cursor: pointer;
}

body.dc-ui .sidebar-nav-group-trigger:hover,
body.dc-ui .sidebar-nav-group-trigger[aria-expanded="true"] {
    color: var(--dc-fg-primary) !important;
    background: rgba(128, 128, 128, 0.08);
}

body.dc-ui .sidebar-nav-group-trigger:focus,
body.dc-ui .sidebar-nav-group-trigger:focus-visible {
    outline: none;
    box-shadow: none;
}

body.dc-ui .sidebar-nav-group-trigger:focus-visible {
    background: rgba(128, 128, 128, 0.12);
}

body.dc-ui .sidebar-nav-group-trigger .d-flex {
    gap: 12px;
}

body.dc-ui .sidebar-nav-group-trigger .sidebar-nav-group-title {
    margin-left: 0 !important;
}

body.dc-ui .sidebar-nav-group-trigger .dc-icon {
    margin-right: 0;
    background-color: var(--dc-fg-secondary);
}

body.dc-ui .sidebar-nav-group-trigger:hover .dc-icon,
body.dc-ui .sidebar-nav-group-trigger[aria-expanded="true"] .dc-icon {
    background-color: var(--dc-fg-primary);
}

body.dc-ui .sidebar-nav-group-trigger:hover .sidebar-group-chevron,
body.dc-ui .sidebar-nav-group-trigger[aria-expanded="true"] .sidebar-group-chevron {
    background-color: var(--dc-fg-primary);
}

/* Chevron indicator using existing arrow-left icon */
body.dc-ui .sidebar-group-chevron {
    width: 10px;
    height: 10px;
    background-color: var(--dc-fg-secondary);
    transition: transform var(--dc-motion-base) var(--dc-ease-standard);
    -webkit-mask-image: url('../icons/dc/arrow-left.svg');
    mask-image: url('../icons/dc/arrow-left.svg');
    transform: rotate(180deg); /* Points right initially */
}

/* Rotate chevron when expanded */
body.dc-ui .sidebar-nav-group-trigger[aria-expanded="true"] .sidebar-group-chevron {
    transform: rotate(270deg); /* Points down */
    background-color: var(--dc-fg-primary);
}

/* In collapsed mode, chevrons are hidden */
body.sidebar-collapsed .sidebar-group-chevron {
    display: none !important;
}

/* Sub-list nesting */
body.dc-ui .sidebar-sub-list {
    padding-left: 20px;
    margin-left: 14px;
    border-left: 1px dashed var(--dc-glass-border);
    margin-top: 4px;
    margin-bottom: 8px;
    list-style: none;
}

body.dc-ui .sidebar-sub-list .sidebar-nav-item {
    list-style: none;
    margin-bottom: 2px;
}

body.dc-ui .sidebar-sub-list .sidebar-nav-link {
    padding: 6px 12px;
    font-size: 0.8125rem;
    gap: 8px;
}

/* Sublist active indicator line */
body.dc-ui .sidebar-sub-list .sidebar-nav-link.active {
    border-left: none;
    padding-left: 12px;
}

body.dc-ui .sidebar-sub-list .sidebar-nav-link.active::before {
    left: 4px;
    top: 8px;
    bottom: 8px;
    width: 2px;
}

body.dc-ui .sidebar-sub-list .sidebar-nav-link.active::after {
    left: 4px;
    top: 8px;
    bottom: 8px;
    width: 2px;
}

/* Collapsed sidebar dropdown behavior */
@media (min-width: 992px) {
    body.sidebar-collapsed .sidebar-nav-group-wrapper {
        position: relative;
    }

    body.sidebar-collapsed .sidebar-nav-group-trigger {
        padding: 8px 10px;
        justify-content: center;
    }

    body.sidebar-collapsed .sidebar-nav-group-trigger .sidebar-nav-group-title {
        display: none;
    }

    body.sidebar-collapsed .sidebar-sub-list {
        display: none !important;
        padding-left: 0;
        margin-left: 0;
        border-left: none;
        margin-top: 0;
        margin-bottom: 0;
    }
}

/* Глобальный поиск — выпадающие предложения */
.dc-search-container {
    position: relative;
    width: 100%;
}

.dc-search-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    margin-top: 6px;
    max-height: 480px;
    overflow-y: auto;
    
    /* Стеклянный стиль (Glassmorphic) — Темная тема по умолчанию */
    background: rgba(30, 41, 59, 0.96) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    border-radius: 8px;
    box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.5), 0 8px 15px -6px rgba(0, 0, 0, 0.4);
    
    display: none;
    padding: 8px 0;
}

body.theme-light .dc-search-suggestions {
    background: rgba(255, 255, 255, 0.98) !important;
    border-color: rgba(0, 0, 0, 0.12) !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.dc-search-suggestions__category {
    padding: 6px 16px 4px;
}

.dc-search-suggestions__category-title {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #38bdf8 !important; /* Яркий лазурный для темной темы */
    margin-bottom: 2px;
}

body.theme-light .dc-search-suggestions__category-title {
    color: #0284c7 !important; /* Насыщенный синий для светлой темы */
}

.dc-search-suggestions__item {
    display: block;
    padding: 8px 16px;
    color: var(--dc-fg-primary) !important;
    text-decoration: none !important;
    font-size: 0.875rem;
    transition: background-color var(--dc-motion-base) var(--dc-ease-standard);
}

.dc-search-suggestions__item:hover,
.dc-search-suggestions__item.keyboard-selected {
    background-color: rgba(255, 255, 255, 0.12) !important;
    text-decoration: none !important;
    outline: none;
}

body.theme-light .dc-search-suggestions__item:hover,
body.theme-light .dc-search-suggestions__item.keyboard-selected {
    background-color: rgba(0, 0, 0, 0.06) !important;
}

.dc-search-suggestions__item-title {
    font-weight: 600;
    color: #ffffff !important; /* Чистый белый в темной теме */
}

body.theme-light .dc-search-suggestions__item-title {
    color: #111827 !important; /* Почти черный в светлой теме */
}

.dc-search-suggestions__item-meta {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.6) !important; /* Контрастный светло-серый в темной теме */
    margin-top: 2px;
}

body.theme-light .dc-search-suggestions__item-meta {
    color: rgba(17, 24, 39, 0.6) !important; /* Контрастный темно-серый в светлой теме */
}

.dc-search-suggestions__empty {
    padding: 16px;
    text-align: center;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.65) !important;
}

body.theme-light .dc-search-suggestions__empty {
    color: rgba(17, 24, 39, 0.6) !important;
}

.dc-search-suggestions__divider {
    height: 1px;
    background-color: rgba(255, 255, 255, 0.12) !important;
    margin: 4px 0;
}

body.theme-light .dc-search-suggestions__divider {
    background-color: rgba(0, 0, 0, 0.08) !important;
}

