.genesis-tools__modal,
.genesis-tools__modal * {
    box-sizing: border-box;
}

.genesis-tools__modal {
    z-index: 2147483000;
    color: #252525;
}

@media (max-width: 600px) {
    .genesis-segmented > label > span {
        line-height: 1.2;
        text-align: center;
    }

    .genesis-tools {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .genesis-tools__intro,
    .genesis-tools__actions,
    .genesis-tools__action,
    .genesis-tools__action > span:last-child {
        min-width: 0;
        max-width: 100%;
    }

    .genesis-tools__action {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        font: inherit;
    }

    .genesis-tools__action strong,
    .genesis-tools__action small {
        overflow-wrap: anywhere;
    }

    .genesis-tools__modal {
        position: fixed;
        inset: 0;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        padding: 0;
        align-items: stretch;
        background: #fff;
    }

    .genesis-tools__backdrop {
        display: none;
    }

    .genesis-tools__dialog {
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        box-shadow: none;
    }

    .genesis-tools__header {
        position: sticky;
        z-index: 20;
        top: 0;
        min-height: 74px;
        padding: max(14px, env(safe-area-inset-top)) 16px 12px;
        background: #fff;
        box-shadow: 0 1px 0 #e8e5df;
    }

    .genesis-tools__header .genesis-tools__brand {
        margin-bottom: 3px;
    }

    .genesis-tools__header h2 {
        margin: 0;
        font-size: 20px;
        line-height: 1.2;
    }

    .genesis-tools__close {
        position: relative;
        z-index: 2;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        line-height: 1;
    }

    .genesis-tools__tabs {
        position: sticky;
        z-index: 15;
        top: 74px;
        padding: 0 16px;
        background: #fff;
        overflow-x: auto;
        box-shadow: 0 1px 0 #e8e5df;
    }

    .genesis-tools__tabs button {
        flex: 0 0 auto;
        min-height: 48px;
        white-space: nowrap;
    }

    .genesis-tools__panel {
        min-width: 0;
        padding: 18px 16px calc(28px + env(safe-area-inset-bottom));
    }

    .genesis-visualizer__rooms {
        margin-right: -16px;
        padding-right: 16px;
    }

    .genesis-visualizer__stage {
        width: 100%;
    }

    .genesis-visualizer__selected {
        grid-template-columns: 46px minmax(0, 1fr) auto;
    }
}

/* --- Мобильная панель действий: всегда на виду поверх содержимого модалки --- */

@media (max-width: 600px) {
    /* высоту панели проставляет JS — от неё зависит отступ снизу у вкладки */
    .genesis-tools__panel[data-genesis-panel="calculator"] {
        padding-bottom: calc(var(--genesis-actions-height, 68px) + 24px);
    }

    .genesis-result {
        max-height: none;
        position: static;
    }

    .genesis-result__scroll {
        overflow: visible;
    }

    .genesis-result__actions {
        position: fixed;
        z-index: 2;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        margin: 0;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
        border-top: 1px solid var(--genesis-altx-blue-border);
        background: #fff;
        box-shadow: 0 -4px 16px rgba(0, 0, 0, .1);
    }

    .genesis-result__sticky-total {
        display: block;
        min-width: 0;
        color: var(--genesis-altx-text);
        font-size: 12px;
        line-height: 1.25;
        /* в узкой колонке текст обязан обрезаться, а не рассыпаться по буквам */
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .genesis-result__sticky-total:empty {
        display: none;
    }

    .genesis-result__sticky-total b {
        display: block;
        font-size: 15px;
    }

    .genesis-result__buttons {
        display: grid;
        grid-auto-flow: column;
        gap: 8px;
    }

    .genesis-result__actions .genesis-result__link,
    .genesis-result__actions .genesis-result__basket-link,
    .genesis-result__actions .genesis-result__secondary {
        min-height: 46px;
        margin: 0;
        padding: 8px 12px;
        font-size: 14px;
        white-space: nowrap;
    }

    /* после добавления в панели две равные кнопки на всю ширину, итог не нужен */
    .genesis-result__actions.is-added {
        grid-template-columns: minmax(0, 1fr);
    }

    .genesis-result__actions.is-added .genesis-result__sticky-total {
        display: none;
    }

    .genesis-result__actions.is-added .genesis-result__link {
        display: none;
    }

    .genesis-result__actions.is-added .genesis-result__buttons {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .genesis-result__actions .genesis-result__status:not(:empty) {
        grid-column: 1 / -1;
        order: -1;
        margin: 0 0 2px;
        color: var(--genesis-altx-muted);
        font-size: 11px;
        line-height: 1.3;
    }
}
