/* === Мобильная адаптация: страница входа (body.guest) === */
@media (max-width: 768px) and (pointer: coarse) {
    body.guest .cpage {
        min-width: 0 !important;
        width: 100% !important;
        margin: 0 !important;
    }

    body.guest .content.logincontentblock {
        width: 100% !important;
        padding: 0 12px !important;
        box-sizing: border-box;
    }

    body.guest .loginblock {
        max-width: 420px;
        margin: 15px auto 0;
        box-sizing: border-box;
        width: 100%;
    }

    body.guest .loginblock h1 img {
        max-width: 48px;
        height: auto;
        vertical-align: middle;
    }

    /* Таблица формы превращается в вертикальный список */
    body.guest .loginblock form table {
        display: flex;
        flex-direction: column;
        width: 100%;
        border-collapse: collapse;
    }

    body.guest .loginblock form tbody,
    body.guest .loginblock form tr {
        display: contents;
    }

    body.guest .loginblock form td {
        display: block;
        width: 100%;
        box-sizing: border-box;
        text-align: left !important;
        padding: 6px 0 8px !important;
        border: none;
    }

    body.guest .loginblock form td[style*="vertical-align"] {
        order: 5;
        margin-top: 12px;
    }

    body.guest .loginblock input[type="text"],
    body.guest .loginblock input[type="password"] {
        width: 100% !important;
        box-sizing: border-box;
        font-size: 16px;
        padding: 10px 8px;
        min-height: 44px;
        border: 1px solid #ccc;
        border-radius: 4px;
    }

    body.guest .loginblock input[type="submit"] {
        width: 100% !important;
        min-height: 44px;
        font-size: 16px;
        cursor: pointer;
        margin: 0;
    }
}

/* === Мобильная адаптация: внутренний кабинет (body:not(.guest)) === */
@media (max-width: 768px) and (pointer: coarse) {

    /* --- Каркас --- */
    body:not(.guest) .cpage,
    body:not(.guest) .content-wrapper {
        min-width: 0 !important;
        width: 100% !important;
        box-sizing: border-box;
        margin: 0 !important;
        padding: 0 8px !important;
    }

    /* Сайдбар встаёт над контентом */
    body:not(.guest) .sidebar {
        float: none;
        width: 100%;
        margin: 0;
        padding: 0 12px;
        box-sizing: border-box;
    }

    body:not(.guest) .sidebar-logo {
        position: static;
        padding: 10px 0;
    }

    /* Контент */
    body:not(.guest) .content {
        display: flex;
        flex-direction: column;
        width: 100%;
        padding: 16px 12px !important;
        box-sizing: border-box;
        overflow-x: auto; /* широкие таблицы листаются внутри, а не рвут страницу */
        border: none !important;
        box-shadow: none !important;
    }

    /* Порядок внутри контента: aside (ФИО, платежи) — в конец */
    body:not(.guest) .content-aside-wrap {
        order: 5;
    }

    body:not(.guest) .content > .breadcrumb {
        order: -2;
    }

    body:not(.guest) .content > h1 {
        order: -1;
    }

    /* --- Декоративные уголки и серое обрамление --- */
    body:not(.guest) .cwmg,
    body:not(.guest) .clg2w,
    body:not(.guest) .content-wrapper {
        padding: 0 !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }

    body:not(.guest) span.ctl,
    body:not(.guest) span.ctr,
    body:not(.guest) span.cbl,
    body:not(.guest) span.cbr {
        display: none !important;
    }

    /* --- Жёлтые рамки --- */
    body:not(.guest) .content > div.menu,
    body:not(.guest) .sidebar-nav-menu,
    body:not(.guest) .sidebar-nav-submenu {
        border: none !important;
        box-shadow: none !important;
    }

    /* --- Правая колонка: карточка ФИО и платежи --- */
    body:not(.guest) .content-aside-wrap,
    body:not(.guest) .content-aside,
    body:not(.guest) .content-aside-plain {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 16px !important;
        padding: 12px;
        left: 0 !important;
        right: auto !important;
        box-sizing: border-box;
        text-align: left !important;
        background: #f5f5f5;
        border-radius: 4px;
        overflow: hidden;
    }

    body:not(.guest) .content-aside-wrap {
        align-self: stretch;
    }

    body:not(.guest) .content-aside * {
        float: none !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* --- Таблицы --- */
    body:not(.guest) .content table,
    body:not(.guest) .content-table {
        max-width: 100%;
        border-collapse: collapse;
    }

    body:not(.guest) .content-table td {
        padding: 4px 6px;
    }

    /* --- Футер --- */
    body:not(.guest) .footer,
    body:not(.guest) .footer-left {
        float: none;
        text-align: left;
        margin: 15px 8px;
    }
}


@media (max-width: 768px) and (pointer: coarse) {
    /* Убираем жёлтый градиент и красную заливку при нажатии/наведении */
    body:not(.guest) .nav-menu-item,
    body:not(.guest) .nav-menu-item a,
    body:not(.guest) .sidebar-nav-menu li a,
    body:not(.guest) .sidebar-nav-submenu li a {
        background-image: none !important;
        background-color: transparent !important;
        color: inherit !important; /* чтобы цвет текста не «ломался» */
    }

    /* Опционально: если хочешь, чтобы при нажатии строка всё-таки выделялась — сделай лёгкий серый фон */
    body:not(.guest) .nav-menu-item:active,
    body:not(.guest) .nav-menu-item:hover {
        background-color: rgba(0, 0, 0, 0.05) !important;
        background-image: none !important;
    }
}

@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .nav-menu-item a,
    body:not(.guest) .sidebar-nav-menu a,
    body:not(.guest) .sidebar-nav-submenu a {
        background-image: none !important;
        background-color: transparent !important;
    }
}




@media (max-width: 768px) and (pointer: coarse) {
    /* 1. Убираем плашку и хлебные крошки */
    body:not(.guest) .sidebar-nav-title,
    body:not(.guest) .breadcrumb {
        display: none !important;
    }

    /* 2. Тёмно‑синий фон всего сайдбара */
    body:not(.guest) .sidebar {
        background-color: #0f3460 !important;
        border: none !important;
        box-shadow: none !important;
    }

    /* Снимаем лишние рамки со всех элементов внутри сайдбара */
    body:not(.guest) .sidebar * {
        box-shadow: none !important;
        border: none !important;
    }

    /* 3. Контейнер основного меню — прозрачный (фон уже у .sidebar) */
    body:not(.guest) .sidebar-nav-menu {
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        margin-top: 0 !important;
    }

    /* 4. Разделители между пунктами меню */
    body:not(.guest) .nav-menu-item {
        border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
        background-image: none !important;
        background-color: transparent !important;
    }
    body:not(.guest) .nav-menu-item:last-child {
        border-bottom: none !important;
    }

    /* 5. Подменю: делаем фон тёмно‑синим (в тон сайдбару) */
    body:not(.guest) .sidebar-nav-submenu,
    body:not(.guest) .submenu-list {
        background-color: #0f3460 !important;
        border: none !important;
        box-shadow: none !important;
        margin: 0 !important;
        padding-left: 24px !important;   /* отступ подменю от края */
    }

    /* Разделители внутри подменю */
    body:not(.guest) .sidebar-nav-submenu li,
    body:not(.guest) .submenu-list li {
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    }
    body:not(.guest) .sidebar-nav-submenu li:last-child,
    body:not(.guest) .submenu-list li:last-child {
        border-bottom: none !important;
    }




/* 1. Увеличиваем шрифт в основном меню */
    body:not(.guest) .sidebar .nav-menu-item a,
    body:not(.guest) .sidebar-nav-menu a {
        font-size: 18px !important;      /* было 15px — теперь крупнее */
        line-height: 1.3;               /* чуть больше воздуха между строками */
        padding: 12px 20px !important;  /* зона клика стала выше (около 48px) */
        color: #ffd700 !important;
        text-decoration: none;
        font-weight: 500;
        background-image: none !important;
        background-color: transparent !important;
    }

    /* 2. Увеличиваем шрифт в подменю */
    body:not(.guest) .sidebar-nav-submenu a,
    body:not(.guest) .submenu-list a {
        font-size: 18px !important;     /* одинаковый размер с основным меню */
        line-height: 1.3;
        padding-left: 32px !important; /* отступ слева, чтобы не прилипало */
        padding-right: 20px !important;
        color: #ffd700 !important;
        text-decoration: none;
        font-weight: 500;
    }

    /* 3. Реакция на клик/наведение */
    body:not(.guest) .sidebar .nav-menu-item a:active,
    body:not(.guest) .sidebar .nav-menu-item a:hover,
    body:not(.guest) .sidebar-nav-submenu a:active,
    body:not(.guest) .sidebar-nav-submenu a:hover {
        background-color: rgba(255, 255, 255, 0.1) !important;
        color: #ffffff !important;
    }

    /* 7. Реакция на клик/наведение: полупрозрачный белый фон, белый текст */
    body:not(.guest) .sidebar .nav-menu-item a:active,
    body:not(.guest) .sidebar .nav-menu-item a:hover,
    body:not(.guest) .sidebar-nav-submenu a:active,
    body:not(.guest) .sidebar-nav-submenu a:hover,
    body:not(.guest) .submenu-list a:active,
    body:not(.guest) .submenu-list a:hover {
        background-color: rgba(255, 255, 255, 0.1) !important;
        color: #ffffff !important;         /* Белый текст при клике/наведении */

    }


    /* Базовый размер для всего внутри контента */
    body:not(.guest) .content {
        font-size: 18px !important;
        line-height: 1.5 !important;
    }

    /* Гарантированно увеличиваем шрифт даже в таблицах и ячейках */
    body:not(.guest) .content table,
    body:not(.guest) .content td,
    body:not(.guest) .content th,
    body:not(.guest) .content tr {
        font-size: 18px !important;
        line-height: 1.4 !important;
    }

    /* И даже если тема задала размер прямо в ячейке, перебиваем его */
    body:not(.guest) .content td *:not(a),
    body:not(.guest) .content th *:not(a) {
        font-size: 16px !important;
    }

}








@media (max-width: 768px) and (pointer: coarse) {
/* Растягиваем поля ввода на всю доступную ширину и центрируем */
body:not(.guest) input[type="text"],
body:not(.guest) input[type="tel"],
body:not(.guest) input[type="number"],
body:not(.guest) .payment-input,
body:not(.guest) .form-control {
    width: 100% !important;
    max-width: 560px !important;   /* чтобы не было шире на больших экранах */
    box-sizing: border-box !important; /* чтобы padding не увеличивал ширину */
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;        /* отменяем любые float-ы темы */
    display: block !important;    /* выводим как блочный элемент */
}

/* Если у формы есть контейнер, который сам уезжает влево — фиксим его */
body:not(.guest) .payment-form,
body:not(.guest) .checkout-form,
body:not(.guest) form.payment {
    width: 100% !important;
    max-width: 600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}






    /* Поля ввода: крупные, удобные для пальца, на всю ширину ячейки */
    body:not(.guest) .content input.input-text,
    body:not(.guest) .content input[type="text"],
    body:not(.guest) .content input[type="tel"],
    body:not(.guest) .content input[type="number"],
    body:not(.guest) .content input[type="password"] {
        width: 100% !important;
        min-width: 200px !important;   /* чтобы ячейка не сжала поле до крошечного */
        height: 48px !important;       /* комфортная высота для тапа */
        box-sizing: border-box !important;
        padding: 10px 14px !important;
        font-size: 18px !important;    /* чтобы текст в поле был читаемым */
        border: 1px solid #b9c6d2 !important;
        border-radius: 8px !important;
        background: #ffffff !important;
        color: #16213e !important;
    }

    /* Ячейки таблицы формы: не сжимаем, даём воздух */
    body:not(.guest) .content table td {
        padding: 8px 6px !important;
        vertical-align: middle !important;
    }

    /* Таблица формы: пусть занимает всю ширину и не ломается */
    body:not(.guest) .content form table,
    body:not(.guest) .content table.form,
    body:not(.guest) .content table {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: auto !important;
    }

    /* Метки слева (что за поле — «Сумма», «Номер карты» и т.п.) */
    body:not(.guest) .content table td:first-child {
        white-space: nowrap !important;  /* чтобы подпись не переносилась на 3 строки */
    }


    /* Формы на таблицах: подпись сверху, поле снизу, на всю ширину */
    body:not(.guest) .content table:has(input.input-text) td,
    body:not(.guest) .content form table:has(input) td {
        display: block !important;       /* ячейки становятся блоками — каждая на своей строке */
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 6px 0 !important;
        text-align: left !important;
    }

    /* Подпись поля: обычный перенос, воздух снизу */
    body:not(.guest) .content table:has(input.input-text) td:first-child {
        white-space: normal !important;  /* перебиваем прошлей nowrap */
        padding-bottom: 2px !important;
    }

    /* Кнопки формы — тоже на всю ширину, чтобы не болтались сбоку */
    body:not(.guest) .content table:has(input.input-text) button,
    body:not(.guest) .content table:has(input.input-text) input[type="submit"],
    body:not(.guest) .content table:has(input.input-text) input[type="button"] {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-top: 12px !important;
        height: 48px !important;
    }





    /* Добавляем воздух между последним полем и кнопкой в формах */
    body:not(.guest) .content table:has(input.input-text) tr:last-child td {
        padding-bottom: 20px !important; /* вот этот отступ разъединит ФИО и кнопку */
    }

    /* Если кнопка всё ещё липнет, принудительно отодвинем её */
    body:not(.guest) .content table:has(input.input-text) button,
    body:not(.guest) .content table:has(input.input-text) input[type="submit"],
    body:not(.guest) .content table:has(input.input-text) input[type="button"] {
        margin-top: 20px !important;   /* гарантия, что кнопка не прилипнет */
        border-radius: 8px !important;
    }










/* Только для таблицы истории платежей: горизонтальный скролл, если не влезает */
body:not(.guest) .content table.payments-history,
body:not(.guest) .content table.payment-list,
body:not(.guest) .content table:not(:has(input)) {
    width: 100% !important;
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important; /* плавный скролл на iOS */
}

/* Внутри скролл-области таблица ведёт себя как таблица */
body:not(.guest) .content table.payments-history thead,
body:not(.guest) .content table.payment-list thead,
body:not(.guest) .content table:not(:has(input)) thead {
    position: sticky !important;
    top: 0 !important;
    background: #ffffff !important;
    z-index: 10 !important;
}


/* На мобильных прячем заголовок страницы — он дублирует пункт меню */
body:not(.guest) .content h1 {
    display: none !important;
}





/* Подтягиваем контент после скрытого H1: убираем лишние отступы */
body:not(.guest) .content > *:first-child,
body:not(.guest) .content .description-block,
body:not(.guest) .content p.menu-desc {
    margin-top: 0 !important;
    margin-bottom: 8px !important; /* небольшой воздух, но не дыра */
}

/* Если ссылка «Выбрать тип платежа» лежит в отдельном блоке — убираем у него верхний отступ */
body:not(.guest) .content a[href*="payment-type"],
body:not(.guest) .content .payment-type-link,
body:not(.guest) .content button.select-payment {
    margin-top: 4px !important;       /* ставим совсем небольшой отступ */
    padding-top: 12px !important;    /* если нужно сохранить высоту зоны клика */
}






/* Подтягиваем первый текстовый блок после описания — убираем дыру */
body:not(.guest) .content .partition p:first-child,
body:not(.guest) .content .partition div.description + p,
body:not(.guest) .content p.menu-desc + p {
    margin-top: 4px !important;       /* было, скорее всего, 32px или больше */
    padding-top: 0 !important;
}

/* Если есть пустые строки (br), которые создают высоту — схлопываем их */
body:not(.guest) .content br {
    display: none !important;         /* они не нужны, если есть нормальные отступы */
}





    /* Все блоки — светлый голубоватый оттенок (на тон светлее верхнего) */
    body:not(.guest) .content .partition {
        background-color: #eaf2fe;              /* светлый голубой */
        border: 1px solid #d4e3fa;
        border-radius: 12px;
    }

    /* Первый (верхний) блок — насыщенный синий, как главный */
    body:not(.guest) .content .partition:first-of-type {
        background-color: #2b6cde;              /* подставь свой текущий синий, если он другой */
        border-color: #2b6cde;
    }

    /* Чтобы текст на синем фоне читался */
    body:not(.guest) .content .partition:first-of-type,
    body:not(.guest) .content .partition:first-of-type a {
        color: #ffffff;
    }
}

/* Нижние блоки — светлее тёмно-синего сайдбара */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content .partition,
    body:not(.guest) .content-aside,
    body:not(.guest) .content-aside-wrap {
        background-color: #1d4a7d !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
    }
    body:not(.guest) .content .partition,
    body:not(.guest) .content .partition h2,
    body:not(.guest) .content .partition h2 a,
    body:not(.guest) .content .partition p {
        color: #ffffff !important;
    }
    body:not(.guest) .content-aside,
    body:not(.guest) .content-aside * {
        color: #ffffff !important;
    }
}

/* Страница «Форма платежа»: блок с формой — в общую карточку */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content form,
    body:not(.guest) .content form table {
        background-color: #1d4a7d !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
    }

    /* Отступы и ширина, чтобы форма не липла к краям */
    body:not(.guest) .content form {
        padding: 16px !important;
        box-sizing: border-box !important;
        margin: 0 0 16px !important;
    }

    /* Текст формы — белый для читаемости */
    body:not(.guest) .content form,
    body:not(.guest) .content form td,
    body:not(.guest) .content form strong,
    body:not(.guest) .content form .form-note {
        color: #ffffff !important;
    }
}

/* Главная: таблица договоров и уведомления — карточки */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content .lb_table_wrp,
    body:not(.guest) .content .grid-view {
        background-color: #1d4a7d !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
        padding: 12px !important;
        box-sizing: border-box !important;
        margin-bottom: 16px !important;
    }

    /* Текст в таблице договоров — белый */
    body:not(.guest) .content .grid-view table,
    body:not(.guest) .content .grid-view td,
    body:not(.guest) .content .grid-view th {
        color: #ffffff !important;
        background: transparent !important;
        background-image: none !important;
    }

    /* Заголовок таблицы — выделим полужирным */
    body:not(.guest) .content .grid-view th {
        font-weight: bold !important;
    }

    /* Уведомление (алерт) — чуть светлая карточка */
    body:not(.guest) .content .alert {
        background-color: #2a5c96 !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        color: #ffffff !important;
        padding: 12px !important;
        margin-bottom: 16px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
    }
}

/* Голые блоки-«сироты» внутри контента (описания услуг и обёртки форм) — карточки */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content > div:not(.content-aside-wrap):not(#yw0):not(.loading-screen) {
        background-color: #1d4a7d !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
        padding: 16px !important;
        box-sizing: border-box !important;
        margin-bottom: 16px !important;
    }

    /* Текст и ссылки внутри — читаемо на синем */
    body:not(.guest) .content > div,
    body:not(.guest) .content > div p,
    body:not(.guest) .content > div td {
        color: #ffffff !important;
    }
    body:not(.guest) .content > div a {
        color: #9ecbff !important;
    }

    /* Заголовки шагов (Обещанный платёж, Форма платежа) — вернуть, раз они полезны */
    body:not(.guest) .content h1.step_title {
        display: block !important;
        color: #0f3460 !important;
        font-size: 20px !important;
        margin: 0 0 12px !important;
    }
}

/* 1. Фон всей страницы — не белый, а спокойный тёмно-синий */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) {
        background-color: #1a3f6b !important; /* Чуть светлее, чем карточка */
        background-image: none !important;
    }

    /* 2. Поля ввода (текстовые, даты) — делаем их в тон карточке */
    body:not(.guest) input[type="text"],
    body:not(.guest) input[type="password"],
    body:not(.guest) input[type="email"],
    body:not(.guest) .input-date,
    body:not(.guest) textarea {
        background-color: #2a5c96 !important;   /* Чуть светлее фона карточки */
        border: 1px solid #ffffff !important;   /* Белая рамка, чтобы было видно поле */
        color: #ffffff !important;             /* Белый текст */
        padding: 8px 12px !important;          /* Чуть больше воздуха внутри */
        box-sizing: border-box !important;      /* Чтобы padding не ломал ширину */
        font-family: inherit !important;        /* Сохраняем шрифт темы */
    }

    /* Фокус на поле — подсвечиваем рамку */
    body:not(.guest) input:focus,
    body:not(.guest) textarea:focus {
        border-color: #ffd700 !important;       /* Жёлтая рамка при фокусе — видно сразу */
        outline: none !important;               /* Убираем стандартный обвод браузера */
    }

    /* 3. Подписи и заголовки внутри карточек — белый цвет */
    body:not(.guest) .content label,
    body:not(.guest) .content .step_title,
    body:not(.guest) .grid-view th,
    body:not(.guest) .alert strong {
        color: #ffffff !important;
    }
}

/* Докраска каркаса и глобальные цвета шрифтов */
@media (max-width: 768px) and (pointer: coarse) {
    /* Каркас страницы: убираем белые зоны полностью */
    body:not(.guest) .cpage,
    body:not(.guest) .content-wrapper,
    body:not(.guest) .content,
    body:not(.guest) .footer {
        background-color: #1a3f6b !important;
        background-image: none !important;
        border: none !important;
        box-shadow: none !important;
    }

    /* Все тексты внутри контента — белые */
    body:not(.guest) .content,
    body:not(.guest) .content div,
    body:not(.guest) .content p,
    body:not(.guest) .content span,
    body:not(.guest) .content li,
    body:not(.guest) .content td,
    body:not(.guest) .content th,
    body:not(.guest) .content h1,
    body:not(.guest) .content h2,
    body:not(.guest) .content h4,
    body:not(.guest) .content h1.step_title,
    body:not(.guest) .content b,
    body:not(.guest) .content strong,
    body:not(.guest) .footer {
        color: #ffffff !important;
    }

    /* Ссылки — светло-голубые, чтобы читались на синем */
    body:not(.guest) .content a,
    body:not(.guest) .footer a {
        color: #9ecbff !important;
    }

    /* Список уведомлений под карточкой ФИО — без своей подложки */
    body:not(.guest) .content-aside-wrap ul {
        background: transparent !important;
        background-image: none !important;
    }
}

/* Финальная зачистка: строки/шапка таблиц, лоадер, корневой фон */
@media (max-width: 768px) and (pointer: coarse) {
    /* Строки таблиц: убираем полосатые картинки темы */
    body:not(.guest) .content table tr,
    body:not(.guest) .content table tr.odd,
    body:not(.guest) .content table tr.even,
    body:not(.guest) .content table thead,
    body:not(.guest) .content table tfoot {
        background: transparent !important;
        background-image: none !important;
    }

    /* Шапка таблицы: чуть светлее карточки, чтобы выделялась */
    body:not(.guest) .content .grid-view thead th {
        background-color: #2a5c96 !important;
        background-image: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
    }

    /* Лоадер: не вспыхивает белым во время загрузки */
    body:not(.guest) .loading-screen,
    body:not(.guest) .loading-screen .clg2w {
        background: transparent !important;
        background-image: none !important;
        border: none !important;
        box-shadow: none !important;
    }

    /* Корень и фон вне каркаса — тот же тёмно-синий */
    html,
    body:not(.guest) {
        background-color: #1a3f6b !important;
        background-image: none !important;
    }
}

/* Пустые контейнеры уведомлений (yw0/yw1/yw2…) — не рисуем и не красим */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content > div[id^="yw"]:empty {
        display: none !important;
    }

    /* И исключаем их из списка «карточек», чтобы они не красились,
       если где-то получат содержимое */
    body:not(.guest) .content > div:not(.content-aside-wrap):not([id^="yw"]):not(.loading-screen) {
        background-color: #1d4a7d !important;
    }
}

/* Выравнивание нижних блоков по ширине верхней карточки + больше простора */
@media (max-width: 768px) and (pointer: coarse) {
    /* Чуть освобождаем колонку контента по бокам */
    body:not(.guest) .content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    /* Все контентные блоки — на всю ширину, без горизонтальных отступов */
    body:not(.guest) .content > div:not(.content-aside-wrap):not([id^="yw"]):not(.loading-screen),
    body:not(.guest) .content .lb_table_wrp,
    body:not(.guest) .content .grid-view,
    body:not(.guest) .content form {
        width: 100% !important;
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }

    /* Внутри карточки договоров убираем двойные отступы:
       паддинг оставляем только на обёртке */
    body:not(.guest) .content .grid-view {
        padding: 0 !important;
        margin-bottom: 0 !important;
        box-shadow: none !important;
        border-radius: 8px !important;
    }
    body:not(.guest) .content .grid-view table {
        margin: 0 !important;
    }

    /* Карточка с ФИО — тоже на всю ширину */
    body:not(.guest) .content-aside-wrap,
    body:not(.guest) .content-aside {
        width: 100% !important;
        float: none !important;
        box-sizing: border-box !important;
    }

    /* Отступ между блоками — единый ритм */
    body:not(.guest) .content > div:not(.content-aside-wrap):not([id^="yw"]):not(.loading-screen) {
        margin-bottom: 14px !important;
    }
}

/* Единая линейка: все карточки отступают от краёв колонки одинаково */
@media (max-width: 768px) and (pointer: coarse) {
    /* Колонка контента больше ничего не добавляет от себя */
    body:not(.guest) .content {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Одинаковые боковые отступы у всех карточек: верхней и нижних */
    body:not(.guest) .content-aside-wrap,
    body:not(.guest) .content > div:not(.content-aside-wrap):not([id^="yw"]):not(.loading-screen),
    body:not(.guest) .content .lb_table_wrp,
    body:not(.guest) .content .alert,
    body:not(.guest) .content form,
    body:not(.guest) .content .breadcrumb,
    body:not(.guest) .content h1 {
        margin-left: 10px !important;
        margin-right: 10px !important;
    }
}

/* Исправление линейки: один отступ — в паддинге .content, у блоков margins = 0 */
@media (max-width: 768px) and (pointer: coarse) {
    /* Восстанавливаем отступ у колонки — он теперь единственная «линейка» */
    body:not(.guest) .content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    /* Все карточки и тексты — без собственных боковых отступов,
       вровень внутри колонки */
    body:not(.guest) .content-aside-wrap,
    body:not(.guest) .content > div:not(.content-aside-wrap):not([id^="yw"]):not(.loading-screen),
    body:not(.guest) .content .lb_table_wrp,
    body:not(.guest) .content .alert,
    body:not(.guest) .content form,
    body:not(.guest) .content .breadcrumb,
    body:not(.guest) .content h1,
    body:not(.guest) .content h4,
    body:not(.guest) .content > span {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: auto !important;
    }
}

/* Колонки меню и контента — одинаковая ширина и отступы */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .sidebar,
    body:not(.guest) .content {
        width: auto !important;
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        box-sizing: border-box !important;
    }

    /* Блок «Пополнить баланс» — на всю ширину своей колонки */
    body:not(.guest) .content .partition {
        width: 100% !important;
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }
}

/* Блок меню — точно в линейку карточек */
@media (max-width: 768px) and (pointer: coarse) {
    /* Декоративным уголкам и обёртке — ноль ширины влияния */
    body:not(.guest) .content-wrapper > .cwmg {
        display: none !important;
    }

    /* Сам блок меню: без своих margins/width, в границах колонки */
    body:not(.guest) .sidebar-nav {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    /* И внутренние элементы меню не вылезают */
    body:not(.guest) .sidebar-nav-menu,
    body:not(.guest) .sidebar-nav-title {
        width: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}


/* Меню и partition — одинаковая геометрия. Ключ: фон меню переносим
   с колонки .sidebar на саму карточку .sidebar-nav */
@media (max-width: 768px) and (pointer: coarse) {
    /* Обе колонки — прозрачные контейнеры с ОДИНАКОВЫМ боковым отступом 3px */
    body:not(.guest) .sidebar {
        width: 100% !important;
        float: none !important;
        margin: 0 !important;
        padding: 0 3px 16px !important;
        background: transparent !important;
        background-image: none !important;
        box-sizing: border-box !important;
    }

    body:not(.guest) .content {
        width: 100% !important;
        float: none !important;
        margin: 0 !important;
        padding: 16px 3px !important;
        box-sizing: border-box !important;
    }

    /* Карточка меню: фон теперь на ней самой, ширина = ширина колонки */
    body:not(.guest) .sidebar-nav {
        background-color: #0f3460 !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
        margin: 0 !important;
        padding: 16px !important;
        width: auto !important;
        max-width: 100% !important;
        float: none !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    /* partition — во всю ширину своей колонки, без собственных отступов */
    body:not(.guest) .content .partition {
        width: auto !important;
        max-width: 100% !important;
        margin: 0 !important;
        float: none !important;
        box-sizing: border-box !important;
    }
}

/* Штрих 1: крестик алерта — внутрь карточки, в правый верхний угол */
@media (max-width: 768px) and (pointer: coarse) {
    /* Карточка алерта — точка отсчёта для крестика */
    body:not(.guest) .content .alert {
        position: relative !important;
    }

    /* Крестик: absolute внутри карточки, с запасом от угла */
    body:not(.guest) .content .alert a.close {
        position: absolute !important;
        top: 8px !important;
        right: 12px !important;
        float: none !important;
        display: block !important;
        width: 36px !important;         /* увеличенная зона тапа */
        height: 36px !important;
        line-height: 36px !important;
        text-align: center !important;
        font-size: 22px !important;
        font-weight: bold !important;
        color: #ffffff !important;
        opacity: 0.85 !important;
        margin: 0 !important;
        padding: 0 !important;
        text-decoration: none !important;
        z-index: 10 !important;
        box-sizing: border-box !important;
    }

    /* Текст алерта не наезжает на крестик */
    body:not(.guest) .content .alert,
    body:not(.guest) .content .alert strong {
        padding-right: 44px !important;
    }
}

/* Штрих 2: скрыть колонку «Оператор» в таблице договоров (только у таблиц с ровно 4 колонками) */
@media (max-width: 768px) and (pointer: coarse) {
    /* Шапка: второй заголовок */
    body:not(.guest) .content .grid-view table:has(thead th:nth-child(4)):not(:has(thead th:nth-child(5))) thead th:nth-child(2),
    /* Тело: вторая ячейка каждой строки (там «ООО"ГСП"») */
    body:not(.guest) .content .grid-view table:has(thead th:nth-child(4)):not(:has(thead th:nth-child(5))) tbody td:nth-child(2) {
        display: none !important;
    }
}


/* Штрих 3: баланс — белые цифры, ссылка «Услуги» — светлая и подчёркнутая */
@media (max-width: 768px) and (pointer: coarse) {
    /* 1. Делаем цифры баланса белыми (3-я колонка таблицы договоров) */
    body:not(.guest) .content .grid-view table.items tbody td:nth-child(3) {
        color: #ffffff !important;
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); /* лёгкая тень, чтобы белый читался на фоне */
        font-weight: 600; /* чуть жирнее для контраста */
    }

    /* Если баланс — это ссылка (как в твоём коде), красим именно ссылку, а не всю ячейку */
    body:not(.guest) .content .grid-view table.items tbody td:nth-child(3) a {
        color: #ffffff !important;
        text-decoration: none; /* убираем стандартное синее подчёркивание, если есть */
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
    }

    /* Наведение на баланс (опционально, чтобы было видно, что кликабельно) */
    body:not(.guest) .content .grid-view table.items tbody td:nth-child(3) a:hover {
        opacity: 0.9;
        text-shadow: 0 0 5px rgba(255, 255, 255, 0.4);
    }

    /* 2. Ссылка «Услуги» (4-я колонка) — осветляем и добавляем подчёркивание */
    body:not(.guest) .content .grid-view table.items tbody td:nth-child(4) a.show-vgroups {
        color: #e0e0e0 !important; /* светло-серый, почти белый, но мягче */
        text-decoration: underline; /* явное подчёркивание */
        text-underline-offset: 2px; /* отступ подчёркивания от текста */
        text-decoration-thickness: 1px; /* толщина линии */
        font-size: 0.95em; /* чуть меньше, чтобы не спорило с жирным балансом */
    }

    /* При наведении на «Услуги» делаем её ярче */
    body:not(.guest) .content .grid-view table.items tbody td:nth-child(4) a.show-vgroups:hover {
        color: #ffffff !important;
        text-decoration-color: #cccccc;
        background-color: rgba(255, 255, 255, 0.1); /* лёгкий фон при наведении */
        border-radius: 4px;
    }
}

/* Штрих 3: кнопка «Оплатить» — жёлтая, как ссылки меню */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content form input[type="submit"],
    body:not(.guest) .content button[type="submit"] {
        background-color: #ffd700 !important;
        background-image: none !important;      /* снимаем градиенты темы */
        color: #0f3460 !important;              /* тёмно-синий текст — читаемо на жёлтом */
        font-size: 18px !important;
        font-weight: bold !important;
        border: none !important;
        border-radius: 8px !important;
        padding: 14px 28px !important;
        height: auto !important;                /* не даём теме растянуть на 48px «висюлькой» */
        width: auto !important;                 /* авто-ширина по тексту, не на всю строку */
        min-width: 160px !important;            /* но и не узенькая — зона тапа есть */
        text-align: center !important;
        cursor: pointer !important;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;
    }

    body:not(.guest) .content form input[type="submit"]:hover,
    body:not(.guest) .content form input[type="submit"]:active,
    body:not(.guest) .content button[type="submit"]:hover,
    body:not(.guest) .content button[type="submit"]:active {
        background-color: #f5cd00 !important;   /* чуть темнее при нажатии — тактильная реакция */
    }

    /* Заблокированная кнопка (если появится) — приглушаем */
    body:not(.guest) .content form input[type="submit"].disabled,
    body:not(.guest) .content form input[type="submit"]:disabled {
        background-color: #8a8a8a !important;
        color: #dcdcdc !important;
        box-shadow: none !important;
        cursor: default !important;
    }
}

/* Штрих 4: таблицы «Состояния счета» — колонки 50/50, значения слева */
@media (max-width: 768px) and (pointer: coarse) {
    /* Только для таблиц ровно с 2 колонками (у договоров их 4 — не тронем) */
    body:not(.guest) .content .lb_table_wrp table:has(thead th:nth-child(2)):not(:has(thead th:nth-child(3))) thead th:nth-child(2),
    body:not(.guest) .content .lb_table_wrp table:has(thead th:nth-child(2)):not(:has(thead th:nth-child(3))) tbody td:nth-child(2) {
        width: 50% !important;
        text-align: left !important;
    }

    /* Первая колонка (подписи) — не раздувается, обычный перенос текста */
    body:not(.guest) .content .lb_table_wrp table:has(thead th:nth-child(2)):not(:has(thead th:nth-child(3))) tbody td.first_col {
        width: 50% !important;
        white-space: normal !important;
    }

    /* Ссылка «Пополнить баланс» внутри значения — на цвет ссылок темы */
    body:not(.guest) .content .lb_table_wrp table tbody td:nth-child(2) a {
        color: #9ecbff !important;
    }
}

/* Штрих 4а: в таблицах состояния счета подписи слева, суммы справа */
@media (max-width: 768px) and (pointer: coarse) {
    /* Значения прижимаем к правому краю */
    body:not(.guest) .content .lb_table_wrp table:has(thead th:nth-child(2)):not(:has(thead th:nth-child(3))) tbody td:nth-child(2) {
        width: 50% !important;
        text-align: right !important;
    }

    /* Подписи остаются слева, не сжимаются в столбик */
    body:not(.guest) .content .lb_table_wrp table:has(thead th:nth-child(2)):not(:has(thead th:nth-child(3))) tbody td.first_col {
        width: 50% !important;
        white-space: normal !important;
        text-align: left !important;
    }
}

/* Штрих 5: стрелки переключения месяца — кнопки в рост полю даты */
@media (max-width: 768px) and (pointer: coarse) {
    /* Строка «Период» и ячейка с полем — выравнивание по середине */
    body:not(.guest) .content form table td {
        vertical-align: middle !important;
    }

    body:not(.guest) .content span.month-field-nav {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        vertical-align: middle !important;
        width: 48px !important;
        height: 48px !important;
        line-height: 48px !important;
        margin: 0 4px !important;
        font-size: 22px !important;
        font-weight: bold !important;
        color: #ffd700 !important;             /* жёлтый, как ссылки меню */
        background-color: #2a5c96 !important;  /* тот же акцент, что шапка таблиц */
        border-radius: 8px !important;
        text-decoration: none !important;
        cursor: pointer !important;
        user-select: none !important;
        box-sizing: border-box !important;
    }

    body:not(.guest) .content span.month-field-nav:active {
        background-color: #1d4a7d !important;
    }

    /* Поле месяца между стрелками — чуть свободнее, чтобы кнопки не липли */
    body:not(.guest) .content .month-field-nav + .input-text,
    body:not(.guest) .content .input-text + .month-field-nav {
        margin: 0 4px !important;
    }
}

/* Штрих 5а: стрелки месяца — под полем даты, поле сверху во всю ширину */
@media (max-width: 768px) and (pointer: coarse) {
    /* Ячейка с полем месяца становится flex-контейнером */
    body:not(.guest) .content form table td:has(.month-field-nav) {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        vertical-align: middle !important;
        padding-top: 6px !important;
    }

    /* Поле даты — первая строка, на всю ширину */
    body:not(.guest) .content form table td:has(.month-field-nav) .input-text {
        order: 1 !important;
        width: 100% !important;
        margin-bottom: 8px !important;
    }

    /* Стрелки — вторая строка: по кнопке слева и справа */
    body:not(.guest) .content form table td:has(.month-field-nav) span.month-field-nav {
        order: 2 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 50% !important;
        height: 48px !important;
        line-height: normal !important;   /* возвращает честную высоту строки — «налезание» уходит */
        margin: 0 !important;
        font-size: 22px !important;
        font-weight: bold !important;
        color: #ffd700 !important;
        background-color: #2a5c96 !important;
        border-radius: 8px !important;
        cursor: pointer !important;
        user-select: none !important;
        box-sizing: border-box !important;
    }

    /* Раздвигаем кнопки к краям: «<» левее, «>» правее */
    body:not(.guest) .content form table td:has(.month-field-nav) span.month-field-nav:first-of-type {
        margin-right: 4px !important;
    }
    body:not(.guest) .content form table td:has(.month-field-nav) span.month-field-nav:last-of-type {
        margin-left: 4px !important;
    }

    body:not(.guest) .content form table td:has(.month-field-nav) span.month-field-nav:active {
        background-color: #1d4a7d !important;
    }
}

/* Штрих 5б: стрелки месяца — квадратные кнопки в ряду под полем */
@media (max-width: 768px) and (pointer: coarse) {
    body:not(.guest) .content form table td:has(.month-field-nav) {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: space-between !important; /* распределяет содержимое по ширине ячейки */
        align-items: center !important;
        vertical-align: middle !important;
    }

    /* Поле месяца — на всю ширину, своей строкой */
    body:not(.guest) .content form table td:has(.month-field-nav) .input-text {
        order: 1 !important;
        width: 100% !important;
        margin-bottom: 8px !important;
    }

    /* Стрелки — фиксированные квадраты 48×48, без растяжения */
    body:not(.guest) .content form table td:has(.month-field-nav) span.month-field-nav {
        order: 2 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 48px !important;      /* запрет расти и сжиматься — только 48px */
        width: 48px !important;
        height: 48px !important;
        line-height: normal !important;
        margin: 0 !important;
        font-size: 22px !important;
        font-weight: bold !important;
        color: #ffd700 !important;
        background-color: #2a5c96 !important;
        border-radius: 8px !important;
        cursor: pointer !important;
        user-select: none !important;
        box-sizing: border-box !important;
    }

    body:not(.guest) .content form table td:has(.month-field-nav) span.month-field-nav:active {
        background-color: #1d4a7d !important;
    }
}


/* Гостевая (логин) страница: единый синий фон, варнинги, логотип */
@media (max-width: 768px) and (pointer: coarse) {
    /* 1. Фон страницы и карточка логина — в общую палитру */
    body.guest {
        background-color: #1a3f6b !important;
        background-image: none !important;
        margin: 0 !important;
        padding: 8px 0 !important;
    }

    body.guest .cpage,
    body.guest .content.logincontentblock {
        background-color: transparent !important;
        background-image: none !important;
        border: none !important;
        box-shadow: none !important;
    }

    body.guest .content.logincontentblock {
        width: auto !important;
        margin: 0 3px !important;        /* та же 3px-линейка, что у карточек */
        padding: 0 !important;
    }

    body.guest .loginblock {
        background-color: #1d4a7d !important;
        background-image: none !important;
        border: none !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
        padding: 16px !important;
        color: #ffffff !important;
        text-align: left !important;     /* 3. базовое выравнивание — по левому краю */
    }

    body.guest .loginblock p,
    body.guest .loginblock h1 {
        color: #ffffff !important;
    }

    /* Логотип: слева, на одной линии с заголовком и полями */
    body.guest .loginblock h1 {
        text-align: left !important;
        margin: 0 0 12px !important;
        font-size: 20px !important;
        line-height: 1.2 !important;
    }

    body.guest .loginblock h1 img {
        vertical-align: middle !important;
        margin: 0 8px 0 0 !important;    /* зазор между лого и «Вход в личный кабинет» */
        height: 32px !important;         /* одинаковый размер иконки, без прыжков */
        width: auto !important;
    }

    /* Форма логина: без случайных отступов слева, лого и поля — от одной линии */
    body.guest .loginblock form,
    body.guest .loginblock form table {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Поля ввода — в общий стиль (48px, во всю ширину) */
    body.guest .loginblock input[type="text"],
    body.guest .loginblock input[type="password"] {
        width: 100% !important;
        height: 48px !important;
        box-sizing: border-box !important;
        padding: 10px 14px !important;
        font-size: 18px !important;
        border-radius: 8px !important;
        border: 1px solid #4a7ab5 !important;
    }

    /* 2. Блок ошибок: красная карточка, читаемо на синем */
    body.guest .loginblock div.errorSummary {
        background-color: #c0392b !important;
        background-image: none !important;
        color: #ffffff !important;
        border: none !important;
        border-radius: 8px !important;
        padding: 12px 14px !important;
        margin: 0 0 14px !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
    }

    body.guest .loginblock div.errorSummary p,
    body.guest .loginblock div.errorSummary li {
        color: #ffffff !important;
        margin: 0 0 4px !important;
        padding: 0 !important;
    }

    body.guest .loginblock div.errorSummary ul {
        margin: 4px 0 0 20px !important;
        padding: 0 !important;
    }

    /* Подписи и рамка полей с ошибкой — красный акцент, но читабельный */
    body.guest .loginblock label.error {
        color: #ffd9d4 !important;
        font-weight: bold !important;
    }

    body.guest .loginblock input.error {
        border: 2px solid #e74c3c !important;
    }
}

/* Штрихи: прячем текстовые варнинги логина, фон вокруг карточки — как у основной страницы */
@media (max-width: 768px) and (pointer: coarse) {
    /* 1. Блок «Необходимо исправить следующие ошибки…» не нужен:
       красная рамка на полях сама всё подсказывает */
    body.guest .loginblock div.errorSummary {
        display: none !important;
    }

    /* 2. Всё, что окружает карточку логина, — в цвет основного фона (#1a3f6b) */
    html,
    body.guest {
        background-color: #1a3f6b !important;
        background-image: none !important;
    }

    body.guest .cpage,
    body.guest .content.logincontentblock {
        background-color: #1a3f6b !important;
        background-image: none !important;
    }
}

/* Поля логина и пароля — опустить на 20px ниже */
@media (max-width: 768px) and (pointer: coarse) {
    body.guest .loginblock input[type="text"],
    body.guest .loginblock input[type="password"] {
        margin-top: 20px !important;
    }
}


/* Переработка формы логина: подписи над полями, форма ниже на 20px */
@media (max-width: 768px) and (pointer: coarse) {
    /* Форма целиком — ниже на 20px (это и есть «опустить поля») */
    body.guest .loginblock form {
        margin-top: 20px !important;
    }

    /* Строки и ячейки формы — вертикальные блоки, не табличные */
    body.guest .loginblock form table,
    body.guest .loginblock form table tr,
    body.guest .loginblock form table td {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        vertical-align: baseline !important; /* отменяем прошлый vertical-align: bottom */
    }

    /* Подписи: над полем, слева, на пару пикселей выше, обычный цвет текста */
    body.guest .loginblock form label {
        display: block !important;
        text-align: left !important;
        color: #e0e8f0 !important;        /* спокойный светлый, как основной текст карточки */
        font-weight: normal !important;
        margin: 0 0 2px 2px !important;   /* «пара пикселей» зазора до поля */
        font-size: 16px !important;
    }

    /* Отменяем прошлые отступы полей — теперь высоту задаёт общий margin формы */
    body.guest .loginblock input[type="text"],
    body.guest .loginblock input[type="password"] {
        margin-top: 0 !important;
        margin-bottom: 14px !important;   /* воздух между полями */
    }

    /* Кнопка «Войти» — на всю ширину снизу, жёлтая (цвет уже задаёт штрих 3) */
    body.guest .loginblock form input[type="submit"] {
        width: 100% !important;
        margin-top: 6px !important;
    }
}

/* Исправление формы логина: порядок поля→кнопка через flex, опускание через padding */
@media (max-width: 768px) and (pointer: coarse) {
    /* Опускаем форму: padding не схлопывается — сработает наверняка */
    body.guest .loginblock form,
    body.guest .loginblock form table {
        margin-top: 0 !important;
        padding-top: 20px !important;
        box-sizing: border-box !important;
    }

    /* Таблица становится колонкой, строки — прозрачными обёртками */
    body.guest .loginblock form table {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    body.guest .loginblock form table tr {
        display: contents !important; /* tds строк становятся прямыми детьми flex */
    }

    body.guest .loginblock form table td {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
    }

    /* Жёстко задаём порядок: логин → пароль → кнопка */
    body.guest .loginblock form table td:has(> label[for="LoginForm_login"])     { order: 1 !important; }
    body.guest .loginblock form table td:has(> #LoginForm_login)                 { order: 2 !important; }
    body.guest .loginblock form table td:has(> label[for="LoginForm_password"])  { order: 3 !important; }
    body.guest .loginblock form table td:has(> #LoginForm_password)              { order: 4 !important; }
    body.guest .loginblock form table td:has(> input[type="submit"])             { order: 5 !important; }

    /* Кнопка — в самом низу, во всю ширину */
    body.guest .loginblock form input[type="submit"] {
        display: block !important;
        width: 100% !important;
        margin-top: 6px !important;
    }

    /* Подписи и поля — сохраняем прошлый вид (перестраховка от тем) */
    body.guest .loginblock form label {
        display: block !important;
        text-align: left !important;
        color: #e0e8f0 !important;
        font-weight: normal !important;
        margin: 0 0 2px 2px !important;
    }

    body.guest .loginblock input[type="text"],
    body.guest .loginblock input[type="password"] {
        margin-top: 0 !important;
        margin-bottom: 14px !important;
    }
}


/* Точечное выравнивание ячеек таблицы договоров на мобильном */
@media (max-width: 768px) and (pointer: coarse) and (pointer: coarse) {
    /* Таблица на всю ширину экрана */
    body:not(.guest) .content .lb_table_wrp table.items {
        width: 100% !important;
        table-layout: fixed !important; /* Фиксируем ширину колонок равномерно */
        border-collapse: collapse !important;
    }

    /* Ячейки — одинаковые внутренние отступы */
    body:not(.guest) .content .lb_table_wrp table.items th,
    body:not(.guest) .content .lb_table_wrp table.items td {
        padding-left: 12px !important;
        padding-right: 12px !important;
        text-align: left !important;
        box-sizing: border-box !important;
    }

    /* Убираем любые лишние марджины у обёрток таблицы */
    body:not(.guest) .content .lb_table_wrp,
    body:not(.guest) .content .grid-view {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}
