/* ============================================================
   MyWarehouse — глобальный стиль
   Стиль: МойСклад-подобный, приглушённые тона
   Desktop-first, адаптив вниз, тёмная тема через CSS-переменные
   ============================================================ */

/* ---------- ПЕРЕМЕННЫЕ: СВЕТЛАЯ ТЕМА ---------- */
:root {
    /* Фон */
    --mw-bg: #eef1f5; /* общий фон страницы */
    --mw-surface: #ffffff; /* карточки, панели */
    --mw-surface-2: #f4f6f9; /* вложенные блоки, hover */
    /* Границы */
    --mw-border: #d8dee6;
    --mw-border-strong: #c4ccd6;
    /* Текст */
    --mw-text: #1f2733;
    --mw-text-dim: #4a5565;
    --mw-text-muted: #8a93a4;
    /* Акценты (приглушённые) */
    --mw-primary: #2f6fb3; /* кнопки, ссылки */
    --mw-primary-hover: #255a91;
    --mw-primary-soft: #e3edf7; /* светлая подложка primary */
    /* Статусные цвета (мягкие) */
    --mw-success: #3f8c5c;
    --mw-success-soft: #e3f0e8;
    --mw-warning: #a87a2c;
    --mw-warning-soft: #f5ecdb;
    --mw-danger: #b04a4a;
    --mw-danger-soft: #f5e3e3;
    --mw-info: #3a7e8c;
    --mw-info-soft: #e0eef0;
    /* Топ-панель и табы (МойСклад-стиль) */
    --mw-topbar-bg: #2c4a6b; /* тёмно-синяя, приглушённая */
    --mw-topbar-bg-hover: #375d84;
    --mw-topbar-text: #e8eef5;
    --mw-topbar-active: #3d6a99;
    --mw-tabs-bg: #ffffff;
    --mw-tabs-text: #4a5565;
    --mw-tabs-active-border: #2f6fb3;
    --mw-tabs-active-text: #1f2733;
    /* Тени */
    --mw-shadow: 0 1px 3px rgba(31, 39, 51, 0.06);
    --mw-shadow-md: 0 2px 8px rgba(31, 39, 51, 0.08);
    --mw-shadow-lg: 0 6px 20px rgba(31, 39, 51, 0.1);
    /* Скругления */
    --mw-radius: 6px;
    --mw-radius-sm: 4px;
    /* Плотность (МойСклад — компактный) */
    --mw-row-h: 34px;
    --mw-pad-y: 10px;
    --mw-pad-x: 14px;
}

/* ---------- ПЕРЕМЕННЫЕ: ТЁМНАЯ ТЕМА ---------- */
html.dark-theme {
    --mw-bg: #14171d;
    --mw-surface: #1c2028;
    --mw-surface-2: #232831;
    --mw-border: #2b313c;
    --mw-border-strong: #3a4250;
    --mw-text: #dfe4ec;
    --mw-text-dim: #a8b0bd;
    --mw-text-muted: #6f7886;
    --mw-primary: #4a89c7;
    --mw-primary-hover: #5d9ad6;
    --mw-primary-soft: rgba(74, 137, 199, 0.15);
    --mw-success: #5aab77;
    --mw-success-soft: rgba(90, 171, 119, 0.15);
    --mw-warning: #c79a4a;
    --mw-warning-soft: rgba(199, 154, 74, 0.15);
    --mw-danger: #c76a6a;
    --mw-danger-soft: rgba(199, 106, 106, 0.15);
    --mw-info: #5a9aa8;
    --mw-info-soft: rgba(90, 154, 168, 0.15);
    --mw-topbar-bg: #1a2838;
    --mw-topbar-bg-hover: #22364a;
    --mw-topbar-text: #c8d3e0;
    --mw-topbar-active: #2a4257;
    --mw-tabs-bg: #1c2028;
    --mw-tabs-text: #a8b0bd;
    --mw-tabs-active-border: #4a89c7;
    --mw-tabs-active-text: #dfe4ec;
    --mw-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    --mw-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
    --mw-shadow-lg: 0 6px 20px rgba(0, 0, 0, 0.5);
}

/* ============================================================
   БАЗА
   ============================================================ */

html {
    font-size: 14px;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 14px;
    }
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--mw-bg);
    color: var(--mw-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 0.875rem;
    line-height: 1.45;
    transition: background-color 0.2s, color 0.2s;
}

a {
    color: var(--mw-primary);
    text-decoration: none;
}

    a:hover {
        color: var(--mw-primary-hover);
        text-decoration: underline;
    }

/* ============================================================
   NAVBAR — МойСклад-стиль: тёмно-синяя полоса
   ============================================================ */

.mw-navbar {
    background: var(--mw-topbar-bg);
    padding: 0;
    box-shadow: var(--mw-shadow-md);
    z-index: 1030;
}

    .mw-navbar .navbar-brand {
        color: var(--mw-topbar-text) !important;
        font-weight: 600;
        font-size: 0.95rem;
        padding: 10px 16px;
        white-space: nowrap;
    }

        .mw-navbar .navbar-brand:hover {
            background: var(--mw-topbar-bg-hover);
            text-decoration: none;
        }

    .mw-navbar .nav-link {
        color: var(--mw-topbar-text) !important;
        font-size: 0.85rem;
        padding: 10px 12px;
        border-radius: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2px;
        transition: background 0.15s;
        line-height: 1.2;
    }

        .mw-navbar .nav-link i {
            font-size: 1.1rem;
            display: block;
        }

        .mw-navbar .nav-link:hover {
            background: var(--mw-topbar-bg-hover);
            text-decoration: none;
        }

        .mw-navbar .nav-link.active,
        .mw-navbar .nav-item.show .nav-link {
            background: var(--mw-topbar-active);
        }

    .mw-navbar .dropdown-toggle::after {
        display: none;
    }

    .mw-navbar .navbar-toggler {
        border-color: rgba(255, 255, 255, 0.2);
        margin: 6px 12px;
    }

        .mw-navbar .navbar-toggler:focus {
            box-shadow: 0 0 0 0.15rem rgba(74, 137, 199, 0.4);
        }

/* ============================================================
   TABS — белая полоса под navbar (как в МойСклад)
   ============================================================ */

.mw-tabs {
    background: var(--mw-tabs-bg);
    border-bottom: 1px solid var(--mw-border);
    padding: 0 16px;
    display: flex;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: thin;
}

    .mw-tabs::-webkit-scrollbar {
        height: 4px;
    }

    .mw-tabs::-webkit-scrollbar-thumb {
        background: var(--mw-border-strong);
        border-radius: 2px;
    }

.mw-tab {
    display: inline-block;
    padding: 12px 18px;
    color: var(--mw-tabs-text);
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
}

    .mw-tab:hover {
        color: var(--mw-tabs-active-text);
        text-decoration: none;
    }

    .mw-tab.active {
        color: var(--mw-tabs-active-text);
        border-bottom-color: var(--mw-tabs-active-border);
        font-weight: 600;
    }

/* ============================================================
   КОНТЕЙНЕР / MAIN
   ============================================================ */

.mw-main {
    flex: 1 0 auto;
    width: 100%;
    padding: 16px;
}

@media (min-width: 1400px) {
    .mw-main {
        padding: 20px 24px;
    }
}

.mw-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

@media (min-width: 1600px) {
    .mw-container {
        max-width: 1700px;
    }
}

/* ============================================================
   PAGE HEADER — заголовок страницы с действиями
   ============================================================ */

.mw-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
    padding: 4px 0;
}

.mw-page-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--mw-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.mw-page-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

/* ============================================================
   КАРТОЧКИ / ПАНЕЛИ
   ============================================================ */

.mw-card {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    box-shadow: var(--mw-shadow);
    padding: 16px;
}

.mw-card-header {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--mw-text);
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--mw-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* ============================================================
   ФИЛЬТР-ПАНЕЛЬ (как в МойСклад)
   ============================================================ */

.mw-filter-panel {
    background: var(--mw-surface-2);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    padding: 12px 14px;
    margin-bottom: 14px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px 12px;
    align-items: end;
}

@media (min-width: 1600px) {
    /* На очень широких экранах — больше колонок */
    .mw-filter-panel {
        grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    }
}

.mw-filter-item {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0; /* чтобы flex не растягивал */
}

    .mw-filter-item label {
        font-size: 0.72rem;
        color: var(--mw-text-muted);
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        margin: 0;
    }

    .mw-filter-item .form-control,
    .mw-filter-item .form-select {
        font-size: 0.82rem;
        height: 32px;
        padding: 4px 8px;
    }

.mw-filter-actions {
    display: flex;
    gap: 6px;
    align-items: flex-end;
    justify-content: flex-end;
    grid-column: 1 / -1; /* кнопки внизу во всю ширину */
    padding-top: 4px;
}

@media (min-width: 1600px) {
    /* На широком — кнопки прилипают к правому краю последней строки */
    .mw-filter-actions {
        grid-column: auto / -1;
        justify-content: flex-end;
    }
}

@media (max-width: 767.98px) {
    .mw-filter-panel {
        grid-template-columns: 1fr;
        padding: 10px;
        gap: 8px;
    }
}

/* ============================================================
   КНОПКИ — приглушённые
   ============================================================ */

.btn {
    font-size: 0.82rem;
    padding: 6px 14px;
    border-radius: var(--mw-radius-sm);
    font-weight: 500;
    transition: background 0.15s, border-color 0.15s;
}

.btn-primary {
    background: var(--mw-primary);
    border-color: var(--mw-primary);
    color: #fff;
}

    .btn-primary:hover,
    .btn-primary:focus {
        background: var(--mw-primary-hover);
        border-color: var(--mw-primary-hover);
        color: #fff;
    }

.btn-success {
    background: var(--mw-success);
    border-color: var(--mw-success);
    color: #fff;
}

    .btn-success:hover {
        background: #4a7f68;
        border-color: #4a7f68;
        color: #fff;
    }

.btn-warning {
    background: var(--mw-warning);
    border-color: var(--mw-warning);
    color: #fff;
}

    .btn-warning:hover {
        background: #8f6822;
        border-color: #8f6822;
        color: #fff;
    }

.btn-danger {
    background: var(--mw-danger);
    border-color: var(--mw-danger);
    color: #fff;
}

    .btn-danger:hover {
        background: #963d3d;
        border-color: #963d3d;
        color: #fff;
    }

.btn-outline-secondary {
    color: var(--mw-text-dim);
    border-color: var(--mw-border-strong);
    background: var(--mw-surface);
}

    .btn-outline-secondary:hover {
        background: var(--mw-surface-2);
        color: var(--mw-text);
        border-color: var(--mw-border-strong);
    }

.btn-sm {
    padding: 4px 10px;
    font-size: 0.78rem;
}

/* ============================================================
   ТАБЛИЦЫ — компактные, МойСклад-стиль
   ============================================================ */

.mw-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
}

.table {
    margin: 0;
    color: var(--mw-text);
    font-size: 0.82rem;
    width: 100%;
}

    .table > thead > tr > th {
        background: var(--mw-surface-2);
        color: var(--mw-text-dim);
        font-weight: 600;
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        border-bottom: 1px solid var(--mw-border);
        padding: 8px 10px;
        white-space: nowrap;
        vertical-align: middle;
    }

    .table > tbody > tr > td {
        padding: 7px 10px;
        border-bottom: 1px solid var(--mw-border);
        vertical-align: middle;
        color: var(--mw-text);
    }

    .table > tbody > tr:last-child > td {
        border-bottom: none;
    }

    .table > tbody > tr:hover > td {
        background: var(--mw-surface-2);
    }

.table-striped > tbody > tr:nth-of-type(odd) > td {
    background: rgba(0, 0, 0, 0.015);
}

html.dark-theme .table-striped > tbody > tr:nth-of-type(odd) > td {
    background: rgba(255, 255, 255, 0.02);
}

/* ============================================================
   ФОРМЫ
   ============================================================ */

.form-control,
.form-select {
    font-size: 0.85rem;
    padding: 6px 10px;
    border-radius: var(--mw-radius-sm);
    border: 1px solid var(--mw-border-strong);
    background: var(--mw-surface);
    color: var(--mw-text);
    transition: border-color 0.15s, box-shadow 0.15s;
}

    .form-control:focus,
    .form-select:focus {
        border-color: var(--mw-primary);
        box-shadow: 0 0 0 0.15rem var(--mw-primary-soft);
        background: var(--mw-surface);
        color: var(--mw-text);
    }

.form-label {
    font-size: 0.78rem;
    color: var(--mw-text-dim);
    font-weight: 500;
    margin-bottom: 4px;
}

.form-control::placeholder {
    color: var(--mw-text-muted);
}

/* ============================================================
   БЕЙДЖИ / СТАТУСЫ
   ============================================================ */

.badge {
    font-size: 0.72rem;
    font-weight: 500;
    padding: 3px 8px;
    border-radius: 3px;
}

    .badge.bg-success {
        background: var(--mw-success) !important;
        color: #fff;
    }

    .badge.bg-warning {
        background: var(--mw-warning) !important;
        color: #fff;
    }

    .badge.bg-danger {
        background: var(--mw-danger) !important;
        color: #fff;
    }

    .badge.bg-info {
        background: var(--mw-info) !important;
        color: #fff;
    }

    .badge.bg-primary {
        background: var(--mw-primary) !important;
        color: #fff;
    }

    .badge.bg-secondary {
        background: var(--mw-surface-2) !important;
        color: var(--mw-text-dim);
        border: 1px solid var(--mw-border);
    }

/* ============================================================
   DROPDOWN
   ============================================================ */

.dropdown-menu {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius-sm);
    box-shadow: var(--mw-shadow-md);
    padding: 4px;
    font-size: 0.85rem;
}

.dropdown-item {
    border-radius: 3px;
    padding: 6px 12px;
    color: var(--mw-text);
}

    .dropdown-item:hover,
    .dropdown-item:focus {
        background: var(--mw-primary-soft);
        color: var(--mw-primary);
    }

.dropdown-divider {
    border-color: var(--mw-border);
    margin: 4px 0;
}

/* ============================================================
   ALERT / УВЕДОМЛЕНИЯ
   ============================================================ */

.alert {
    border-radius: var(--mw-radius-sm);
    padding: 10px 14px;
    font-size: 0.85rem;
    border: 1px solid transparent;
}

.alert-success {
    background: var(--mw-success-soft);
    border-color: var(--mw-success);
    color: var(--mw-success);
}

.alert-danger {
    background: var(--mw-danger-soft);
    border-color: var(--mw-danger);
    color: var(--mw-danger);
}

.alert-warning {
    background: var(--mw-warning-soft);
    border-color: var(--mw-warning);
    color: var(--mw-warning);
}

.alert-info {
    background: var(--mw-info-soft);
    border-color: var(--mw-info);
    color: var(--mw-info);
}

/* ============================================================
   FOOTER
   ============================================================ */

.mw-footer {
    flex-shrink: 0;
    background: var(--mw-surface);
    border-top: 1px solid var(--mw-border);
    color: var(--mw-text-muted);
    font-size: 0.78rem;
    padding: 10px 16px;
    text-align: center;
}

    .mw-footer a {
        color: var(--mw-text-muted);
        margin-left: 10px;
    }

        .mw-footer a:hover {
            color: var(--mw-primary);
            text-decoration: none;
        }

/* ============================================================
   АДАПТИВ — мобильный
   ============================================================ */

@media (max-width: 991.98px) {
    /* Навбар — вертикальный, компактный */
    .mw-navbar .navbar-collapse {
        background: var(--mw-topbar-bg);
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        padding: 6px 0;
        max-height: 70vh;
        overflow-y: auto;
    }

    .mw-navbar .nav-link {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
        padding: 10px 18px;
    }

        .mw-navbar .nav-link i {
            font-size: 1rem;
            width: 20px;
            text-align: center;
        }

    /* Табы — скролл */
    .mw-tabs {
        padding: 0 8px;
    }

    .mw-tab {
        padding: 10px 12px;
        font-size: 0.8rem;
    }
}

@media (max-width: 767.98px) {
    .mw-main {
        padding: 10px;
    }

    .mw-page-header {
        margin-bottom: 10px;
    }

    .mw-page-title {
        font-size: 1.05rem;
    }

    .mw-card {
        padding: 12px;
        border-radius: var(--mw-radius);
    }

    .mw-filter-panel {
        padding: 10px 12px;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    /* Таблица — крупнее строки под палец */
    .table > tbody > tr > td {
        padding: 9px 8px;
        font-size: 0.82rem;
    }

    .table > thead > tr > th {
        padding: 8px;
        font-size: 0.72rem;
    }

    .btn {
        font-size: 0.8rem;
        padding: 6px 12px;
    }
}

@media (max-width: 400px) {
    html {
        font-size: 13px;
    }

    .mw-navbar .navbar-brand {
        font-size: 0.85rem;
        padding: 8px 10px;
    }
}

/* ============================================================
   PRINT
   ============================================================ */

@media print {
    body {
        background: #fff !important;
        color: #000 !important;
    }

    .mw-navbar,
    .mw-tabs,
    .mw-footer,
    .mw-page-actions,
    .mw-filter-panel {
        display: none !important;
    }

    .mw-main {
        padding: 0;
    }

    .table,
    .table th,
    .table td {
        color: #000 !important;
        background: #fff !important;
        border-color: #999 !important;
    }
}

/* ============================================================
   HOME / DASHBOARD
   ============================================================ */

.mw-welcome {
    background: linear-gradient(135deg, var(--mw-primary) 0%, #1d4e7d 100%);
    color: #fff;
    padding: 20px 24px;
    border-radius: var(--mw-radius);
    margin-bottom: 16px;
    box-shadow: var(--mw-shadow-md);
    position: relative;
    overflow: hidden;
}

    .mw-welcome::after {
        content: '';
        position: absolute;
        right: -40px;
        top: -40px;
        width: 200px;
        height: 200px;
        background: rgba(255, 255, 255, 0.06);
        border-radius: 50%;
        pointer-events: none;
    }

    .mw-welcome h2 {
        margin: 0 0 6px 0;
        font-size: 1.25rem;
        font-weight: 600;
    }

    .mw-welcome .mw-welcome-sub {
        opacity: 0.92;
        font-size: 0.82rem;
    }

.mw-badge-soft {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 500;
    display: inline-block;
}

.mw-welcome-time {
    text-align: right;
    position: relative;
    z-index: 1;
    line-height: 1.1;
}

    .mw-welcome-time .date {
        font-size: 0.78rem;
        opacity: 0.85;
    }

    .mw-welcome-time .clock {
        font-size: 1.5rem;
        font-weight: 700;
    }

/* ---------- Stat cards ---------- */

.mw-stat-card {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    padding: 14px 16px;
    box-shadow: var(--mw-shadow);
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    transition: transform 0.15s, box-shadow 0.15s;
}

    .mw-stat-card:hover {
        transform: translateY(-2px);
        box-shadow: var(--mw-shadow-md);
    }

    .mw-stat-card .mw-stat-value {
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--mw-text);
        line-height: 1.1;
        margin-bottom: 2px;
    }

    .mw-stat-card .mw-stat-label {
        font-size: 0.7rem;
        color: var(--mw-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        font-weight: 500;
    }

    .mw-stat-card .mw-stat-icon {
        font-size: 1.5rem;
        width: 44px;
        height: 44px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

.mw-stat-icon.primary {
    background: var(--mw-primary-soft);
    color: var(--mw-primary);
}

.mw-stat-icon.success {
    background: var(--mw-success-soft);
    color: var(--mw-success);
}

.mw-stat-icon.warning {
    background: var(--mw-warning-soft);
    color: var(--mw-warning);
}

.mw-stat-icon.info {
    background: var(--mw-info-soft);
    color: var(--mw-info);
}

.mw-stat-icon.danger {
    background: var(--mw-danger-soft);
    color: var(--mw-danger);
}

/* ---------- Quick actions ---------- */

.mw-quick-action {
    display: flex;
    align-items: center;
    padding: 9px 12px;
    border-radius: var(--mw-radius-sm);
    background: var(--mw-surface-2);
    color: var(--mw-text);
    text-decoration: none;
    transition: background 0.15s, color 0.15s, transform 0.15s;
    margin-bottom: 6px;
    border: 1px solid var(--mw-border);
    font-size: 0.83rem;
    font-weight: 500;
}

    .mw-quick-action:hover {
        background: var(--mw-primary);
        color: #fff;
        border-color: var(--mw-primary);
        transform: translateX(3px);
        text-decoration: none;
    }

        .mw-quick-action:hover i {
            color: #fff !important;
        }

    .mw-quick-action i {
        font-size: 1rem;
        margin-right: 10px;
        width: 18px;
        text-align: center;
        flex-shrink: 0;
    }

/* ---------- Section header ---------- */

.mw-section-header {
    font-size: 0.88rem;
    font-weight: 600;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--mw-border);
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--mw-text);
}

    .mw-section-header i {
        font-size: 1rem;
    }

/* ---------- Empty state ---------- */

.mw-empty {
    text-align: center;
    padding: 24px 10px;
    color: var(--mw-text-muted);
}

    .mw-empty i {
        font-size: 32px;
        opacity: 0.5;
        margin-bottom: 6px;
        display: block;
    }

/* ---------- Alert attention ---------- */

.mw-alert-attention {
    background: var(--mw-warning-soft);
    border: 1px solid var(--mw-warning);
    border-radius: var(--mw-radius);
    padding: 10px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

    .mw-alert-attention .text {
        display: flex;
        align-items: center;
        gap: 8px;
        color: var(--mw-warning);
        font-weight: 500;
        font-size: 0.85rem;
    }

        .mw-alert-attention .text i {
            font-size: 1.15rem;
        }

    .mw-alert-attention a {
        background: var(--mw-warning);
        color: #fff;
        padding: 5px 12px;
        border-radius: var(--mw-radius-sm);
        text-decoration: none;
        font-weight: 600;
        font-size: 0.78rem;
        white-space: nowrap;
    }

        .mw-alert-attention a:hover {
            filter: brightness(1.1);
            color: #fff;
            text-decoration: none;
        }

/* ---------- Home grid ---------- */

.mw-home-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

@media (max-width: 1199.98px) {
    .mw-home-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767.98px) {
    .mw-home-grid {
        grid-template-columns: 1fr;
    }
}

.mw-home-grid .mw-col-full {
    grid-column: 1 / -1;
}

/* ============================================================
   AUTH PAGES (Login, Register, Profile, ChangePassword)
   ============================================================ */

.mw-auth-wrap {
    display: flex;
    justify-content: center;
    padding: 24px 0;
}

.mw-auth-card {
    width: 100%;
    max-width: 440px;
}

    .mw-auth-card.wide {
        max-width: 760px;
    }

.mw-auth-header {
    padding: 14px 20px;
    border-bottom: 1px solid var(--mw-border);
    background: var(--mw-surface-2);
    border-radius: var(--mw-radius) var(--mw-radius) 0 0;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--mw-text);
}

    .mw-auth-header i {
        font-size: 1.1rem;
        color: var(--mw-primary);
    }

.mw-auth-body {
    padding: 20px;
}

.mw-auth-footer {
    padding: 14px 20px;
    border-top: 1px solid var(--mw-border);
    background: var(--mw-surface-2);
    border-radius: 0 0 var(--mw-radius) var(--mw-radius);
    text-align: center;
    font-size: 0.85rem;
}

/* Информационные строки в профиле */
.mw-profile-row {
    display: flex;
    padding: 8px 0;
    border-bottom: 1px solid var(--mw-border);
    font-size: 0.88rem;
}

    .mw-profile-row:last-child {
        border-bottom: none;
    }

    .mw-profile-row .label {
        width: 40%;
        color: var(--mw-text-muted);
        font-weight: 500;
    }

    .mw-profile-row .value {
        width: 60%;
        color: var(--mw-text);
        font-weight: 500;
    }

/* Кнопочная группа */
.mw-btn-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 16px;
}

@media (max-width: 767.98px) {
    .mw-auth-body {
        padding: 16px;
    }

    .mw-profile-row {
        flex-direction: column;
        padding: 10px 0;
    }

        .mw-profile-row .label,
        .mw-profile-row .value {
            width: 100%;
        }

        .mw-profile-row .label {
            margin-bottom: 2px;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.4px;
        }
}

/* ============================================================
   GPS PAGES (Dashboard + Tracking)
   ============================================================ */

/* Пульсация маркеров и индикатора */
@keyframes mw-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.1);
        opacity: 0.6;
    }
}

.mw-pulse {
    animation: mw-pulse 1.5s ease-in-out infinite;
}

/* Карта */
.mw-map {
    width: 100%;
    height: 550px;
    border-radius: var(--mw-radius);
    border: 1px solid var(--mw-border);
}

@media (max-width: 767.98px) {
    .mw-map {
        height: 400px;
    }
}

/* Список агентов (Dashboard) */
.mw-gps-agents {
    height: 560px;
    overflow-y: auto;
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
}

    .mw-gps-agents::-webkit-scrollbar,
    .mw-gps-history::-webkit-scrollbar {
        width: 5px;
    }

    .mw-gps-agents::-webkit-scrollbar-thumb {
        background: var(--mw-primary);
        border-radius: 5px;
    }

.mw-gps-history::-webkit-scrollbar-thumb {
    background: var(--mw-text-muted);
    border-radius: 5px;
}

/* Элемент агента в списке */
.mw-agent-item {
    padding: 10px 12px;
    border-bottom: 1px solid var(--mw-border);
    cursor: pointer;
    transition: background 0.15s;
    color: var(--mw-text);
    font-size: 0.85rem;
}

    .mw-agent-item:last-child {
        border-bottom: none;
    }

    .mw-agent-item:hover {
        background: var(--mw-surface-2);
    }

    .mw-agent-item.active {
        background: var(--mw-primary-soft);
        border-left: 3px solid var(--mw-primary);
    }

/* История (список точек) */
.mw-gps-history {
    height: 200px;
    overflow-y: auto;
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
}

.mw-history-item {
    padding: 8px 10px;
    border-bottom: 1px solid var(--mw-border);
    cursor: pointer;
    font-size: 0.78rem;
    color: var(--mw-text);
    transition: background 0.15s;
}

    .mw-history-item:last-child {
        border-bottom: none;
    }

    .mw-history-item:hover {
        background: var(--mw-surface-2);
        color: var(--mw-primary);
    }

/* Индикатор трекинга (Tracking.cshtml) */
.mw-gps-status-icon {
    font-size: 5rem;
    line-height: 1;
}

.mw-gps-stat {
    background: var(--mw-surface-2);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius-sm);
    padding: 14px;
    text-align: center;
}

    .mw-gps-stat .label {
        font-size: 0.72rem;
        color: var(--mw-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.4px;
    }

    .mw-gps-stat .value {
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--mw-text);
        font-variant-numeric: tabular-nums;
    }

/* ============================================================
   ТАБЛИЦА ПОЗИЦИЙ (Заказ поставщику, Приёмка, Реализация)
   ============================================================ */

/* Контейнер: не обрезает выпадающие списки */
.mw-items-table {
    overflow: visible !important;
    background: var(--mw-surface);
    border-radius: var(--mw-radius);
}

    .mw-items-table .table {
        margin-bottom: 0;
    }

    /* Заголовок "прилипает" при скролле */
    .mw-items-table thead th {
        position: sticky;
        top: 0;
        z-index: 5;
        background: var(--mw-surface-2);
    }

    /* Номер строки */
    .mw-items-table .row-number {
        font-size: 0.75rem;
        color: var(--mw-text-muted);
        font-weight: 600;
        text-align: center;
        vertical-align: middle;
        padding: 6px 4px;
        background: var(--mw-surface-2);
    }

    /* Строки — чуть выше для тача */
    .mw-items-table tbody td {
        vertical-align: middle;
        padding: 6px 8px;
    }

    /* Инпуты внутри — компактно */
    .mw-items-table .form-control-sm {
        height: 32px;
        font-size: 0.82rem;
        padding: 4px 8px;
    }

    .mw-items-table .form-select-sm {
        font-size: 0.82rem;
        padding: 4px 8px;
    }

/* Итоги внизу */
.mw-items-totals {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    padding: 12px 16px;
    border-top: 1px solid var(--mw-border);
    background: var(--mw-surface-2);
    border-radius: 0 0 var(--mw-radius) var(--mw-radius);
    gap: 4px;
}

.mw-total-row {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 0.85rem;
    min-width: 220px;
    justify-content: space-between;
}

    .mw-total-row .label {
        color: var(--mw-text-dim);
        font-weight: 500;
    }

    .mw-total-row .value {
        font-weight: 700;
        color: var(--mw-text);
        font-variant-numeric: tabular-nums;
    }

    .mw-total-row.grand {
        font-size: 1rem;
        border-top: 1px solid var(--mw-border);
        padding-top: 6px;
        margin-top: 4px;
        min-width: 240px;
    }

        .mw-total-row.grand .value {
            color: var(--mw-primary);
            font-size: 1.1rem;
        }

/* Tom Select: выпадающий список поверх всего */
.mw-items-table .ts-wrapper {
    position: relative;
    z-index: 1;
}

    .mw-items-table .ts-wrapper.dropdown-active {
        z-index: 100;
    }

.mw-items-table .ts-dropdown {
    z-index: 9999 !important;
    border: 1px solid var(--mw-border) !important;
    box-shadow: var(--mw-shadow-md) !important;
    max-height: 320px;
    overflow-y: auto;
}

    .mw-items-table .ts-dropdown .option {
        padding: 8px 12px;
        font-size: 0.85rem;
    }

        .mw-items-table .ts-dropdown .option.active {
            background: var(--mw-primary-soft) !important;
            color: var(--mw-primary) !important;
        }

.mw-items-table .ts-control {
    min-height: 32px;
    padding: 4px 8px;
    font-size: 0.82rem;
    border-color: var(--mw-border-strong);
    border-radius: var(--mw-radius-sm);
    background: var(--mw-surface);
    color: var(--mw-text);
}

    .mw-items-table .ts-control.focus {
        border-color: var(--mw-primary);
        box-shadow: 0 0 0 0.15rem var(--mw-primary-soft);
    }

/* Мобильный — карточный вид */
@media (max-width: 767.98px) {
    .mw-items-table thead {
        display: none;
    }

    .mw-items-table tbody tr {
        display: block;
        border: 1px solid var(--mw-border);
        border-radius: var(--mw-radius-sm);
        margin-bottom: 8px;
        padding: 10px;
        background: var(--mw-surface);
    }

    .mw-items-table tbody td {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 4px 0;
        border: none;
    }

        .mw-items-table tbody td::before {
            content: attr(data-label);
            font-size: 0.72rem;
            color: var(--mw-text-muted);
            text-transform: uppercase;
            letter-spacing: 0.4px;
            min-width: 70px;
            font-weight: 600;
        }

        .mw-items-table tbody td[data-label=""]::before,
        .mw-items-table tbody td:first-child::before {
            content: none;
        }

    .mw-items-table .row-number {
        display: none;
    }

    .mw-items-table .form-control-sm,
    .mw-items-table .ts-control {
        width: 100%;
    }
}

/* ============================================================
   REPORTS — Index (карточки отчётов)
   ============================================================ */

.mw-reports-section {
    margin-bottom: 24px;
}

.mw-reports-section-title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--mw-text-muted);
    margin-bottom: 10px;
    padding-left: 2px;
}

.mw-report-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}

.mw-report-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    padding: 14px 16px;
    text-decoration: none;
    color: var(--mw-text);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
    box-shadow: var(--mw-shadow);
    position: relative;
    overflow: hidden;
}

    .mw-report-card:hover {
        border-color: var(--mw-primary);
        box-shadow: var(--mw-shadow-md);
        transform: translateY(-2px);
        text-decoration: none;
        color: var(--mw-text);
    }

    .mw-report-card .icon {
        width: 44px;
        height: 44px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.3rem;
        flex-shrink: 0;
    }

        .mw-report-card .icon.primary {
            background: var(--mw-primary-soft);
            color: var(--mw-primary);
        }

        .mw-report-card .icon.success {
            background: var(--mw-success-soft);
            color: var(--mw-success);
        }

        .mw-report-card .icon.warning {
            background: var(--mw-warning-soft);
            color: var(--mw-warning);
        }

        .mw-report-card .icon.danger {
            background: var(--mw-danger-soft);
            color: var(--mw-danger);
        }

        .mw-report-card .icon.info {
            background: var(--mw-info-soft);
            color: var(--mw-info);
        }

    .mw-report-card .body {
        flex: 1;
        min-width: 0;
    }

    .mw-report-card .title {
        font-size: 0.9rem;
        font-weight: 600;
        color: var(--mw-text);
        margin-bottom: 3px;
        line-height: 1.3;
    }

    .mw-report-card .desc {
        font-size: 0.78rem;
        color: var(--mw-text-muted);
        line-height: 1.4;
    }

    .mw-report-card .arrow {
        color: var(--mw-text-muted);
        font-size: 0.9rem;
        opacity: 0;
        transition: opacity 0.15s, transform 0.15s;
        align-self: center;
    }

    .mw-report-card:hover .arrow {
        opacity: 1;
        transform: translateX(3px);
        color: var(--mw-primary);
    }

/* ============================================================
   REPORTS — Страница отчёта (фильтр + таблица + итоги)
   ============================================================ */

.mw-report-filter {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    box-shadow: var(--mw-shadow);
    padding: 14px 16px;
    margin-bottom: 14px;
}

    .mw-report-filter .row {
        --bs-gutter-x: 12px;
        --bs-gutter-y: 10px;
    }

    .mw-report-filter .form-label {
        font-size: 0.72rem;
        color: var(--mw-text-muted);
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        margin-bottom: 3px;
    }

    .mw-report-filter .form-control,
    .mw-report-filter .form-select {
        font-size: 0.82rem;
        height: 34px;
        padding: 4px 10px;
    }

    .mw-report-filter .form-check {
        font-size: 0.82rem;
        padding-top: 22px;
    }

.mw-report-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.mw-report-summary-item {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    box-shadow: var(--mw-shadow);
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

    .mw-report-summary-item .label {
        font-size: 0.7rem;
        color: var(--mw-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.3px;
        font-weight: 600;
    }

    .mw-report-summary-item .value {
        font-size: 1.15rem;
        font-weight: 700;
        color: var(--mw-text);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

        .mw-report-summary-item .value.success {
            color: var(--mw-success);
        }

        .mw-report-summary-item .value.danger {
            color: var(--mw-danger);
        }

        .mw-report-summary-item .value.primary {
            color: var(--mw-primary);
        }

        .mw-report-summary-item .value.info {
            color: var(--mw-info);
        }

        .mw-report-summary-item .value.warning {
            color: var(--mw-warning);
        }

.mw-report-table {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    box-shadow: var(--mw-shadow);
    overflow: hidden;
}

    .mw-report-table .table {
        margin: 0;
        font-size: 0.8rem;
    }

    .mw-report-table thead th {
        background: var(--mw-surface-2);
        color: var(--mw-text-dim);
        font-weight: 600;
        font-size: 0.72rem;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        padding: 8px 10px;
        border-bottom: 1px solid var(--mw-border);
        white-space: nowrap;
        vertical-align: middle;
    }

    .mw-report-table tbody td {
        padding: 6px 10px;
        border-bottom: 1px solid var(--mw-border);
        vertical-align: middle;
    }

    .mw-report-table tbody tr:last-child td {
        border-bottom: none;
    }

    .mw-report-table tbody tr:hover td {
        background: var(--mw-surface-2);
    }

    .mw-report-table tbody tr.group-row td {
        background: var(--mw-surface-2);
        font-weight: 700;
        font-size: 0.78rem;
        color: var(--mw-text);
        padding: 6px 10px;
    }

    .mw-report-table tfoot td {
        background: var(--mw-surface-2);
        font-weight: 700;
        padding: 8px 10px;
        border-top: 1px solid var(--mw-border);
    }

.mw-report-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.mw-report-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--mw-text-muted);
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
}

    .mw-report-empty i {
        font-size: 2.5rem;
        opacity: 0.4;
        display: block;
        margin-bottom: 10px;
    }

    .mw-report-empty .title {
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--mw-text-dim);
        margin-bottom: 4px;
    }

    .mw-report-empty .desc {
        font-size: 0.82rem;
    }

@media (max-width: 767.98px) {
    .mw-report-grid {
        grid-template-columns: 1fr;
    }

    .mw-report-filter {
        padding: 12px;
    }

    .mw-report-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .mw-report-summary-item {
        padding: 10px 12px;
    }

        .mw-report-summary-item .value {
            font-size: 0.95rem;
        }
}

/* ============================================================
   INLINE-ФИЛЬТР (в одну строку, с переносом)
   Используется в Index.cshtml (Приёмки, Заказы, Реализация, ...)
   ============================================================ */
.mw-filter-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    align-items: flex-end;
}

    .mw-filter-inline .mw-filter-item {
        flex: 0 0 auto;
        min-width: 150px;
        max-width: 200px;
        display: flex;
        flex-direction: column;
        gap: 3px;
    }

        .mw-filter-inline .mw-filter-item label {
            font-size: 0.72rem;
            color: var(--mw-text-muted);
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.3px;
            margin: 0;
            display: block;
        }

        .mw-filter-inline .mw-filter-item .form-control,
        .mw-filter-inline .mw-filter-item .form-select {
            font-size: 0.82rem;
            height: 34px;
            padding: 4px 8px;
        }

    /* Поле поиска — растягивается */
    .mw-filter-inline .mw-filter-search {
        flex: 1 1 260px;
        min-width: 200px;
        max-width: 100%;
    }

    /* Кнопки — прижимаются вправо */
    .mw-filter-inline .mw-filter-actions {
        display: flex;
        gap: 6px;
        margin-left: auto;
        flex-shrink: 0;
        align-items: flex-end;
    }

/* Мобильный — колонки */
@media (max-width: 767.98px) {
    .mw-filter-inline {
        flex-direction: column;
        align-items: stretch;
    }

        .mw-filter-inline .mw-filter-item {
            max-width: 100%;
            min-width: auto;
        }

        .mw-filter-inline .mw-filter-actions {
            margin-left: 0;
            justify-content: flex-end;
        }
}

/* ============================================================
   CHAIN — связанные документы (цепочка)
   Используется в Details: PurchaseOrders, Receipts, Transfers,
   InternalReceipts, Sales
   ============================================================ */
.mw-chain {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.mw-chain-item {
    padding: 8px 12px;
    border-radius: var(--mw-radius-sm);
    background: var(--mw-surface-2);
    border: 1px solid var(--mw-border);
    text-decoration: none;
    color: var(--mw-text);
    transition: all 0.15s;
    min-width: 140px;
}

    .mw-chain-item:hover {
        background: var(--mw-primary-soft);
        border-color: var(--mw-primary);
        text-decoration: none;
        color: var(--mw-text);
    }

    .mw-chain-item.current {
        border-color: var(--mw-primary);
        background: var(--mw-primary-soft);
        font-weight: 600;
    }

.mw-chain-type {
    font-size: 0.7rem;
    color: var(--mw-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}

.mw-chain-number {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--mw-text);
    margin-bottom: 2px;
}

.mw-chain-status {
    font-size: 0.7rem;
}

.mw-chain-arrow {
    color: var(--mw-text-muted);
    font-size: 1rem;
}

@media (max-width: 767.98px) {
    .mw-chain {
        flex-direction: column;
        align-items: stretch;
    }

    .mw-chain-arrow {
        transform: rotate(90deg);
        text-align: center;
    }

    .mw-chain-item {
        min-width: auto;
    }
}

/* ============================================================
   HOME — быстрые плитки и ссылки под метриками
   ============================================================ */

/* Ссылка «Перейти →» под метрикой */
.mw-stat-sub {
    margin-top: 4px;
    font-size: 0.8rem;
}

.mw-stat-link {
    color: var(--mw-primary);
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 500;
    transition: color 0.15s;
}

    .mw-stat-link:hover {
        color: var(--mw-primary-hover);
        text-decoration: underline;
    }

/* Сетка быстрых плиток */
.mw-quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

@media (max-width: 576px) {
    .mw-quick-actions-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Плитка */
.mw-quick-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 16px 8px;
    border: 1px solid var(--mw-border);
    border-radius: var(--mw-radius);
    background: var(--mw-surface);
    color: var(--mw-text);
    text-decoration: none;
    transition: all 0.15s ease;
    font-size: 0.82rem;
    font-weight: 500;
    text-align: center;
}

    .mw-quick-tile i {
        font-size: 1.5rem;
        color: var(--mw-primary);
        transition: color 0.15s;
    }

    .mw-quick-tile:hover {
        background: var(--mw-surface-2);
        border-color: var(--mw-primary);
        transform: translateY(-1px);
        color: var(--mw-text);
        text-decoration: none;
    }

        .mw-quick-tile:hover i {
            color: var(--mw-primary-hover);
        }

/* ================================================================
   SignalR-тосты (уведомления)
   ================================================================ */
.mw-toast-container {
    position: fixed;
    top: 70px;
    right: 20px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 380px;
    pointer-events: none;
}

.mw-toast {
    background: #fff;
    border-left: 4px solid #2c4a6b;
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    padding: 12px 16px;
    pointer-events: auto;
    animation: mwSlideIn 0.3s ease;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

    .mw-toast:hover {
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
    }

.mw-toast-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    gap: 8px;
}

    .mw-toast-header strong {
        font-size: 0.95rem;
        color: #2c4a6b;
    }

.mw-toast-close {
    background: none;
    border: none;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    color: #999;
    padding: 0;
    width: 24px;
    height: 24px;
}

    .mw-toast-close:hover {
        color: #333;
    }

.mw-toast-body {
    font-size: 0.9rem;
    color: #333;
    line-height: 1.4;
}

@keyframes mwSlideIn {
    from {
        transform: translateX(120%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Тёмная тема */
.dark-theme .mw-toast {
    background: #2a2a2a;
    border-left-color: #4a90e2;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6);
}

.dark-theme .mw-toast-header strong {
    color: #4a90e2;
}

.dark-theme .mw-toast-body {
    color: #ddd;
}

.dark-theme .mw-toast-close {
    color: #888;
}

    .dark-theme .mw-toast-close:hover {
        color: #fff;
    }

/* Мобильная адаптация */
@media (max-width: 576px) {
    .mw-toast-container {
        top: auto;
        bottom: 20px;
        left: 12px;
        right: 12px;
        max-width: none;
    }
}

/* ============================================================
   NAVBAR-DROPDOWN — стиль для группированных меню
   (Документы, Затраты, Справочники, Отчёты, Помощь, Админ)
   ============================================================ */

.mw-navbar .dropdown-menu {
    border: none;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
    border-radius: 10px;
    padding: 6px;
    min-width: 260px;
    margin-top: 6px;
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
}

    .mw-navbar .dropdown-menu.dropdown-menu-wide {
        min-width: 340px;
    }

    .mw-navbar .dropdown-menu .dropdown-item {
        border-radius: 6px;
        padding: 8px 12px;
        font-size: 0.85rem;
        display: flex;
        align-items: center;
        gap: 10px;
        color: var(--mw-text);
        transition: background-color 0.12s, color 0.12s;
        line-height: 1.3;
    }

        .mw-navbar .dropdown-menu .dropdown-item:hover,
        .mw-navbar .dropdown-menu .dropdown-item:focus {
            background: var(--mw-primary-soft);
            color: var(--mw-primary);
        }

        .mw-navbar .dropdown-menu .dropdown-item i {
            width: 20px;
            text-align: center;
            font-size: 1rem;
            flex-shrink: 0;
        }

.mw-navbar .dropdown-header {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-weight: 700;
    color: var(--mw-text-muted);
    padding: 8px 12px 4px;
    margin: 0;
}

.mw-navbar .dropdown-divider {
    margin: 4px 6px;
    border-color: var(--mw-border);
}

/* Бейдж "NEW" в dropdown-пункте */
.mw-navbar .dropdown-item .mw-badge-new,
.mw-navbar .dropdown-item .badge.bg-success {
    font-size: 0.6rem;
    padding: 2px 6px;
    margin-left: auto;
    border-radius: 8px;
    font-weight: 700;
    letter-spacing: 0.3px;
}

/* Кнопка "Выход" — как dropdown-item */
.mw-navbar .dropdown-item.btn-logout {
    background: none;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
}

/* Индикатор активного dropdown */
.mw-navbar .nav-item.show > .nav-link {
    background: var(--mw-topbar-active);
    color: #fff;
}

/* Стрелка dropdown (убираем дефолтную) */
.mw-navbar .dropdown-toggle::after {
    display: none;
}

/* ============================================================
   ТЁМНАЯ ТЕМА — navbar dropdown
   ============================================================ */

html.dark-theme .mw-navbar .dropdown-menu {
    background: var(--mw-surface);
    border-color: var(--mw-border);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.6);
}

    html.dark-theme .mw-navbar .dropdown-menu .dropdown-item {
        color: var(--mw-text);
    }

        html.dark-theme .mw-navbar .dropdown-menu .dropdown-item:hover {
            background: var(--mw-primary-soft);
            color: var(--mw-primary);
        }

/* ============================================================
   МОБИЛЬНАЯ АДАПТАЦИЯ NAVBAR
   ============================================================ */

@media (max-width: 991.98px) {
    /* Разворачиваем dropdown прямо в меню (аккордеон-эффект) */
    .mw-navbar .dropdown-menu {
        position: static !important;
        transform: none !important;
        box-shadow: none;
        border: none;
        border-left: 3px solid var(--mw-primary);
        border-radius: 0;
        background: rgba(255, 255, 255, 0.04);
        margin: 4px 0 4px 12px;
        padding: 6px 0;
    }

        .mw-navbar .dropdown-menu .dropdown-item {
            color: var(--mw-topbar-text);
            padding: 10px 16px;
            font-size: 0.875rem;
        }

            .mw-navbar .dropdown-menu .dropdown-item:hover {
                background: rgba(255, 255, 255, 0.08);
                color: #fff;
            }

    .mw-navbar .dropdown-header {
        color: rgba(255, 255, 255, 0.5);
        padding-left: 16px;
    }

    .mw-navbar .dropdown-divider {
        border-color: rgba(255, 255, 255, 0.1);
        margin: 4px 16px;
    }

    /* Убираем подчёркивание у dropdown-toggle в мобильной */
    .mw-navbar .dropdown-toggle::after {
        margin-left: auto;
        content: "\F282"; /* bi-chevron-down */
        font-family: "bootstrap-icons";
        display: inline;
        border: none;
        transition: transform 0.15s;
    }

    .mw-navbar .nav-item.show .dropdown-toggle::after {
        transform: rotate(180deg);
    }
}

/* ============================================================
   iOS SAFE AREA — для iPhone с notch/home bar
   ============================================================ */

@supports (padding: env(safe-area-inset-top)) {
    .mw-navbar {
        padding-top: env(safe-area-inset-top);
    }

    .mw-footer {
        padding-bottom: calc(10px + env(safe-area-inset-bottom));
    }

    .mw-main {
        padding-left: max(16px, env(safe-area-inset-left));
        padding-right: max(16px, env(safe-area-inset-right));
    }
    /* Мобильный контейнер тостов над home bar */
    .mw-toast-container {
        bottom: max(20px, env(safe-area-inset-bottom));
    }
}

/* ============================================================
   TAP TARGETS — удобные тач-зоны для мобильных
   (Apple HIG: 44x44, Google Material: 48x48)
   ============================================================ */

@media (max-width: 991.98px) {
    .mw-navbar .nav-link {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .mw-navbar .dropdown-menu .dropdown-item {
        min-height: 44px;
    }

    /* Кнопки действий в page-header */
    .mw-page-actions .btn {
        min-height: 40px;
        padding-left: 14px;
        padding-right: 14px;
    }

    /* Кнопки в таблицах */
    .mw-table-wrap .btn-sm {
        min-height: 36px;
        min-width: 36px;
        padding: 6px 10px;
    }
}

/* ============================================================
   iOS ZOOM FIX — шрифт input ≥ 16px, чтобы iOS не зумил
   ============================================================ */

@media (max-width: 991.98px) {
    /* На iOS если размер шрифта < 16px при фокусе — зум.
       Принудительно 16px на мобиле для всех input/select/textarea. */
    input.form-control,
    select.form-select,
    textarea.form-control,
    .form-control,
    .form-select {
        font-size: 16px !important;
    }

    /* TomSelect control — тоже */
    .ts-control {
        font-size: 16px !important;
    }

    .ts-dropdown .option {
        font-size: 15px !important;
        padding: 10px 12px !important;
    }
}

/* ============================================================
   ANDROID / DESKTOP — принудительное поведение
   ============================================================ */

/* Убираем подсветку тапов на Android */
* {
    -webkit-tap-highlight-color: transparent;
}

/* iOS: плавный скролл */
.mw-main,
.mw-tabs,
.mw-table-wrap {
    -webkit-overflow-scrolling: touch;
}

/* Фикс на переполнение контента на планшетах */
@media (max-width: 1024px) {
    .mw-container {
        padding-left: 8px;
        padding-right: 8px;
    }
}

/* ============================================================
   МОБИЛЬНЫЙ БУРГЕР — кнопка открытия/закрытия
   ============================================================ */

@media (max-width: 991.98px) {
    .mw-navbar .navbar-toggler {
        border: 1px solid rgba(255, 255, 255, 0.25);
        padding: 8px 12px;
        min-height: 44px;
        min-width: 44px;
        border-radius: 8px;
    }

        .mw-navbar .navbar-toggler:focus {
            outline: none;
            box-shadow: 0 0 0 3px rgba(74, 137, 199, 0.3);
        }

    /* Сам выпадающий список на всю ширину */
    .mw-navbar .navbar-collapse {
        padding-top: 8px;
        padding-bottom: 8px;
        max-height: 80vh;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* ============================================================
   ФИКС ВЕРХНЕГО МЕНЮ (Добавлено в конец для переопределения)
   ============================================================ */

/* Верхняя синяя панель */
.ms-topbar {
    background-color: #006bb4;
    color: #fff;
    display: flex;
    align-items: center;
    height: 48px;
    padding: 0 16px;
    position: relative;
    z-index: 1050;
}

.dark-theme .ms-topbar {
    background-color: #1a2838;
}

.ms-topbar > a,
.ms-topbar .dropdown > a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    padding: 0 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 12px; /* Компактный шрифт */
    transition: background-color 0.15s, color 0.15s;
    white-space: nowrap;
}

    .ms-topbar > a:hover,
    .ms-topbar > a.active,
    .ms-topbar .dropdown > a:hover,
    .ms-topbar .dropdown > a.active {
        color: #fff;
        background-color: rgba(255, 255, 255, 0.15);
    }

    .ms-topbar > a i,
    .ms-topbar .dropdown > a i {
        font-size: 16px !important; /* Уменьшили иконки */
        margin-bottom: 2px;
    }

.ms-topbar-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
}

    .ms-topbar-right > a,
    .ms-topbar-right .dropdown > a {
        flex-direction: row;
        gap: 6px;
        padding: 6px 10px;
        border-radius: 4px;
    }

/* Вторая панель (белая) */
.ms-subbar {
    background-color: var(--mw-surface);
    border-bottom: 1px solid var(--mw-border);
    display: flex;
    align-items: center;
    height: 40px;
    padding: 0 16px;
    overflow-x: auto;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    z-index: 1040;
    position: relative;
}

    .ms-subbar a {
        color: var(--mw-text-dim);
        text-decoration: none;
        padding: 0 12px;
        height: 100%;
        display: flex;
        align-items: center;
        font-size: 13px;
        border-bottom: 2px solid transparent;
        white-space: nowrap;
    }

        .ms-subbar a:hover {
            color: var(--mw-primary);
        }

        .ms-subbar a.active {
            color: var(--mw-primary);
            border-bottom-color: var(--mw-primary);
            font-weight: 500;
        }

/* Стили для выпадающих меню (Помощь, Профиль, Язык) */
.ms-topbar .dropdown-menu {
    background: var(--mw-surface);
    border: 1px solid var(--mw-border);
    border-radius: 4px;
    box-shadow: var(--mw-shadow-md);
    padding: 4px;
    min-width: 180px;
    margin-top: 4px;
}

.ms-topbar .dropdown-item {
    padding: 6px 12px;
    font-size: 13px;
    color: var(--mw-text) !important; /* Убирает белый текст */
    border-radius: 3px;
    display: flex;
    align-items: center;
    gap: 8px;
}

    .ms-topbar .dropdown-item i {
        font-size: 14px !important;
        color: var(--mw-text-dim);
    }

    .ms-topbar .dropdown-item:hover,
    .ms-topbar .dropdown-item:focus {
        background: var(--mw-primary-soft) !important;
        color: var(--mw-primary) !important;
    }

        .ms-topbar .dropdown-item:hover i {
            color: var(--mw-primary) !important;
        }

/* АДАПТАЦИЯ ДЛЯ МОБИЛЬНЫХ (Перебиваем статичный эффект) */
@media (max-width: 991.98px) {
    .ms-topbar {
        overflow-x: auto;
        padding: 0 8px;
        justify-content: flex-start;
    }

    .ms-subbar {
        padding: 0 8px;
    }

    /* Принудительно делаем меню всплывающим, а не развернутым на весь экран */
    .ms-topbar .dropdown-menu {
        position: absolute !important;
        transform: none !important;
        background: var(--mw-surface) !important;
        border: 1px solid var(--mw-border) !important;
        box-shadow: var(--mw-shadow-md) !important;
        min-width: 200px;
    }
}

/* ============================================================
   TOMSELECT — универсальные стили вне .mw-items-table
   (для форм ПКО/РКО, Межбанка, Инкассации)
   ============================================================ */

.mw-card .ts-wrapper {
    position: relative;
}

    .mw-card .ts-wrapper.dropdown-active {
        z-index: 100;
    }

.mw-card .ts-dropdown {
    z-index: 9999 !important;
    border: 1px solid var(--mw-border) !important;
    box-shadow: var(--mw-shadow-md) !important;
    max-height: 320px;
    overflow-y: auto;
    background: var(--mw-surface);
    border-radius: var(--mw-radius-sm);
    padding: 4px;
}

    .mw-card .ts-dropdown .option {
        padding: 8px 12px;
        font-size: 0.85rem;
        border-radius: 3px;
        color: var(--mw-text);
    }

        .mw-card .ts-dropdown .option.active {
            background: var(--mw-primary-soft) !important;
            color: var(--mw-primary) !important;
        }

        .mw-card .ts-dropdown .option:hover {
            background: var(--mw-surface-2);
        }

.mw-card .ts-control {
    min-height: 34px;
    padding: 4px 8px;
    font-size: 0.85rem;
    border-color: var(--mw-border-strong);
    border-radius: var(--mw-radius-sm);
    background: var(--mw-surface);
    color: var(--mw-text);
}

    .mw-card .ts-control.focus {
        border-color: var(--mw-primary);
        box-shadow: 0 0 0 0.15rem var(--mw-primary-soft);
    }

html.dark-theme .mw-card .ts-dropdown {
    background: var(--mw-surface);
    border-color: var(--mw-border);
}

    html.dark-theme .mw-card .ts-dropdown .option {
        color: var(--mw-text);
    }

        html.dark-theme .mw-card .ts-dropdown .option:hover {
            background: var(--mw-surface-2);
        }