/**
 * NegocioGo — consistencia táctil y de gutters en móvil.
 *
 * Esta hoja se carga al final para impedir que cada pantalla vuelva a añadir
 * un segundo margen lateral o reduzca los controles por debajo de un tamaño
 * cómodo para tocar.
 */

@media (max-width: 768px) {
    :root {
        --negociogo-mobile-gutter: 10px;
        --negociogo-mobile-action-height: 56px;
        --negociogo-mobile-action-radius: 12px;
    }

    /* El PageShell es el único responsable del margen lateral. */
    body.creator-app .creator-main,
    body.seller-app .creator-main {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .app-page-container,
    .dashboard-page,
    body.dash-page .app-page-container.dash-home--premium,
    body.stores-page-active .stores-page {
        padding-left: var(--negociogo-mobile-gutter) !important;
        padding-right: var(--negociogo-mobile-gutter) !important;
    }

    /* Un contenedor heredado dentro del PageShell no puede sumar otro gutter. */
    .app-page-container > :is(
        .app-page-container,
        .dashboard-page,
        .dash-home,
        .catalog-page,
        .stores-page,
        .stats-page,
        .qr-page
    ) {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Tamaño táctil base para la aplicación. No altera enlaces de texto. */
    button:not([aria-label]),
    button[type="submit"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"]:not([aria-label]),
    a.btn:not([aria-label]):not(.btn-icon):not(.btn--icon),
    a[class*="-btn"]:not([aria-label]):not([class*="icon"]):not([class*="close"]):not([class*="toggle"]),
    a[class*="btn-"]:not([aria-label]):not([class*="icon"]):not([class*="close"]):not([class*="toggle"]),
    a[class*="-button"]:not([aria-label]):not([class*="icon"]):not([class*="close"]):not([class*="toggle"]),
    a[class*="button-"]:not([aria-label]):not([class*="icon"]):not([class*="close"]):not([class*="toggle"]),
    a[class*="__button"]:not([aria-label]):not([class*="icon"]):not([class*="close"]):not([class*="toggle"]) {
        min-height: var(--negociogo-mobile-action-height) !important;
    }

    /* Menú, cerrar, tres puntos y demás controles de icono no son CTA. */
    button[aria-label]:not([type="submit"]),
    [role="button"][aria-label],
    .mobile-nav-toggle,
    .mobile-drawer__close,
    [class$="__close"],
    [class*="__close "] {
        min-height: 44px !important;
    }

    :is(.mobile-nav-toggle, .mobile-drawer__close, .profile-modal__close, [class$="__close"]) {
        width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
    }

    :is(
        .btn:not(.btn-icon):not(.btn--icon):not([aria-label]),
        .negociogo-btn,
        .app-back-button,
        .dash-back-btn,
        .back-button,
        .dash-btn:not(.dash-btn--action),
        .stores-btn,
        .profile-btn,
        .catalog-btn:not(.catalog-btn--icon),
        .branches-btn,
        .stats-btn,
        .order-actions-btn,
        .qr-toolbar-btn,
        .creator-btn-primary,
        .creator-btn-secondary,
        .creator-btn-soft,
        .creator-btn-accent,
        .commerce-action,
        .mobile-drawer__btn-secondary,
        .mobile-drawer__btn-primary
    ) {
        min-height: var(--negociogo-mobile-action-height) !important;
        padding: 0.7rem 0.95rem !important;
        border-radius: var(--negociogo-mobile-action-radius) !important;
        line-height: 1.2 !important;
    }

    .stores-btn,
    .dash-btn:not(.dash-btn--action),
    .profile-btn,
    .mobile-drawer__btn-secondary,
    .mobile-drawer__btn-primary {
        font-size: 0.875rem !important;
        font-weight: 700 !important;
    }

    /* El menú público usa acciones principales aún más cómodas. */
    .mobile-drawer__btn-secondary,
    .mobile-drawer__btn-primary {
        min-height: var(--negociogo-mobile-action-height) !important;
        border-radius: 12px !important;
        font-size: 0.9375rem !important;
    }

    /* Cierre de modales: área táctil real, alineada y sin el cuadro de foco feo. */
    .profile-modal__close {
        display: inline-grid !important;
        place-items: center !important;
        flex: 0 0 44px;
        width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        color: #4a5f59 !important;
        font-size: 1.35rem !important;
        line-height: 1 !important;
        outline: none !important;
    }

    .profile-modal__close:focus-visible {
        box-shadow: none !important;
        outline: 2px solid #02a504 !important;
        outline-offset: 2px !important;
    }

    .profile-modal__footer .profile-btn {
        min-height: var(--negociogo-mobile-action-height) !important;
        font-size: 0.9375rem !important;
    }

    .profile-modal {
        width: min(100% - 20px, 34rem);
        border-radius: 18px;
    }

    .dash-fiscal-card__button {
        min-height: 44px !important;
        padding: 0.65rem 1rem !important;
        border-radius: 10px !important;
        font-size: 0.8125rem !important;
    }

    /* Catálogo: resumen y utilidades compactas. Son controles secundarios,
       no llamadas principales de 56px. */
    body.catalog-page-active .catalog-summary-grid--products {
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    body.catalog-page-active .catalog-summary-grid--products .catalog-summary-card {
        min-height: 70px !important;
        padding: 10px 12px !important;
        flex-direction: row !important;
        align-items: center !important;
        border-radius: 13px !important;
        box-shadow: 0 2px 8px rgba(15, 23, 42, 0.035) !important;
    }

    body.catalog-page-active .catalog-summary-card__label {
        font-size: 0.6875rem !important;
        letter-spacing: 0.035em !important;
    }

    body.catalog-page-active .catalog-summary-card__value {
        margin-top: 3px !important;
        font-size: 1.2rem !important;
    }

    body.catalog-page-active .catalog-filters-collapsible__toolbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px !important;
        align-items: stretch !important;
    }

    body.catalog-page-active .catalog-filters-collapsible__search,
    body.catalog-page-active .catalog-filters-collapsible__toggle {
        height: 48px !important;
        min-height: 48px !important;
        box-sizing: border-box !important;
    }

    body.catalog-page-active .catalog-filters-collapsible__search {
        padding-inline: 12px !important;
    }

    body.catalog-page-active .catalog-filters-collapsible__search input {
        height: 46px !important;
        min-height: 46px !important;
        font-size: 1rem !important;
    }

    body.catalog-page-active .catalog-filters-collapsible__toggle {
        padding: 0 15px !important;
        border-radius: 11px !important;
        font-size: 0.875rem !important;
    }

    body.catalog-page-active .catalog-filters-collapsible__clear,
    body.catalog-page-active .catalog-filters-collapsible__chips {
        grid-column: 1 / -1;
    }

    body.catalog-page-active .catalog-list-toolbar {
        min-height: 0 !important;
        padding: 0 0 6px !important;
    }

    body.catalog-page-active .catalog-view-toggle {
        gap: 2px !important;
        padding: 3px !important;
        border-radius: 10px !important;
    }

    body.catalog-page-active .catalog-view-toggle__btn {
        width: auto !important;
        height: 38px !important;
        min-height: 38px !important;
        padding: 0 13px !important;
        border-radius: 8px !important;
        font-size: 0.8125rem !important;
        line-height: 1 !important;
    }
}
