/* NegocioGo Spring / Onyx visual system. Loaded last to keep legacy components coherent. */
:root {
    color-scheme: light;
    --focus-ring: 0 0 0 4px rgba(14, 143, 102, 0.24);
}

/* El encabezado del panel pertenece a la página, no a una tarjeta. */
body.dash-page .dash-home .dash-hero-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin: 0;
    padding: 0.15rem 0 0.3rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.dash-page .dash-hero-header__eyebrow {
    margin: 0 0 0.2rem;
    color: #02a504;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

body.dash-page .dash-home .dash-hero-header h1 {
    font-size: clamp(1.45rem, 2.2vw, 1.9rem);
}

body.dash-page .dash-hero-header time {
    flex: 0 0 auto;
    color: #60736f;
    font-size: 0.78rem;
    font-weight: 750;
    text-transform: capitalize;
}

body.dash-page .dash-welcome {
    transition: opacity 0.24s ease, transform 0.24s ease, margin 0.24s ease, padding 0.24s ease;
}

body.dash-page .dash-welcome.is-leaving {
    margin-block: -0.55rem;
    padding-block: 0;
    opacity: 0;
    transform: translateY(-5px);
}

@media (max-width: 640px) {
    body.dash-page .dash-home .dash-hero-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.35rem;
        padding-inline: 0 !important;
    }
}

/* Editor de productos: jerarquía compacta y controles consistentes. */
body.publish-form-active .product-editor-page .publish-form-top.app-page-header {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    margin-bottom: 0.85rem;
    padding: 0;
}

body.publish-form-active .product-editor-page .publish-form-head-text {
    max-width: 48rem;
}

body.publish-form-active .product-editor-page .publish-form-title {
    margin-top: 0.45rem;
    font-size: clamp(1.55rem, 2.2vw, 2rem);
    line-height: 1.12;
    letter-spacing: -0.035em;
}

body.publish-form-active .product-editor-page .publish-form-lead {
    max-width: 44rem;
    margin-top: 0.45rem;
    font-size: 0.9rem;
    line-height: 1.5;
}

body.publish-form-active .product-editor-page .stage-tabs {
    margin-bottom: 1.1rem;
}

body.publish-form-active .product-editor-page .stage-tabs__list {
    gap: 0.4rem;
}

body.publish-form-active .product-editor-page .stage-tab {
    min-height: 2.15rem;
    padding: 0.4rem 0.7rem;
    border-radius: 0.65rem;
    font-size: 0.78rem;
}

body.publish-form-active .product-editor-page .publish-accordion {
    border-radius: 0.9rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.035);
}

body.publish-form-active .product-editor-page .publish-accordion.is-open {
    box-shadow: 0 5px 18px rgba(15, 23, 42, 0.05);
}

body.publish-form-active .product-form-page--publish .publish-accordion__trigger {
    padding: 0.85rem 1rem;
}

body.publish-form-active .product-form-page--publish .publish-accordion__panel {
    padding: 0.8rem 1rem 1.15rem;
}

body.publish-form-active .product-editor-page .publish-accordion__title {
    font-size: 0.92rem;
    font-weight: 700;
}

body.publish-form-active .product-editor-page .publish-accordion__desc {
    font-size: 0.76rem;
}

body.publish-form-active .product-form-page--publish input[type="checkbox"],
body.publish-form-active .product-form-page--publish input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    display: grid;
    place-content: center;
    width: 1.1rem !important;
    height: 1.1rem !important;
    min-width: 1.1rem;
    margin: 0.1rem 0 0;
    border: 1.5px solid #9baca7 !important;
    background: #fff !important;
    box-shadow: none !important;
    cursor: pointer;
}

body.publish-form-active .product-form-page--publish input[type="checkbox"] {
    border-radius: 0.3rem;
}

body.publish-form-active .product-form-page--publish input[type="checkbox"]::after {
    content: "";
    width: 0.26rem;
    height: 0.5rem;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: translateY(-0.04rem) rotate(45deg) scale(0);
    transition: transform 120ms ease;
}

body.publish-form-active .product-form-page--publish input[type="checkbox"]:checked {
    border-color: #0b8a62 !important;
    background: #0b8a62 !important;
}

body.publish-form-active .product-form-page--publish input[type="checkbox"]:checked::after {
    transform: translateY(-0.04rem) rotate(45deg) scale(1);
}

body.publish-form-active .product-form-page--publish input[type="radio"] {
    border-radius: 50%;
}

body.publish-form-active .product-form-page--publish input[type="radio"]::after {
    content: "";
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: #0b8a62;
    transform: scale(0);
    transition: transform 120ms ease;
}

body.publish-form-active .product-form-page--publish input[type="radio"]:checked {
    border-color: #0b8a62 !important;
}

body.publish-form-active .product-form-page--publish input[type="radio"]:checked::after {
    transform: scale(1);
}

body.publish-form-active .product-form-page--publish input[type="checkbox"]:focus-visible,
body.publish-form-active .product-form-page--publish input[type="radio"]:focus-visible {
    border-color: #053f31 !important;
    outline: none !important;
}

body.publish-form-active .product-editor-page .publish-option {
    padding: 0.75rem 0.85rem;
    border-color: #dce6e2;
    border-radius: 0.7rem;
    background: #fff;
}

body.publish-form-active .product-editor-page .publish-option:hover {
    border-color: #b9d3ca;
    background: #fbfefc;
}

body.publish-form-active .product-editor-page .publish-option:has(input:checked) {
    border-color: #79cbae;
    background: #effaf5;
    box-shadow: inset 3px 0 0 #0b8a62;
}

body.publish-form-active .product-editor-page .publish-option__label {
    gap: 0.65rem;
}

body.publish-form-active .product-editor-page .publish-option__text strong {
    font-size: 0.86rem;
}

body.publish-form-active .product-editor-page .publish-option__text small {
    margin-top: 0.12rem;
    font-size: 0.75rem;
    line-height: 1.4;
}

body.publish-form-active .product-editor-page .fulfillment-mode-label,
body.publish-form-active .product-editor-page .publish-wholesale-toggle {
    padding: 0.7rem 0.8rem;
    border: 1px solid #dce6e2;
    border-radius: 0.7rem;
    background: #fff;
}

body.publish-form-active .product-editor-page .fulfillment-mode-label:has(input:checked),
body.publish-form-active .product-editor-page .publish-wholesale-toggle:has(input:checked) {
    border-color: #79cbae;
    background: #effaf5;
}

@media (max-width: 640px) {
    body.publish-form-active .product-editor-page .stage-tabs__list {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.2rem;
        scrollbar-width: none;
    }

    body.publish-form-active .product-editor-page .stage-tabs__list::-webkit-scrollbar {
        display: none;
    }

    body.publish-form-active .product-editor-page .stage-tab {
        flex: 0 0 auto;
    }

    body.publish-form-active .product-form-page--publish .publish-accordion__trigger,
    body.publish-form-active .product-form-page--publish .publish-accordion__panel {
        padding-left: 0.85rem;
        padding-right: 0.85rem;
    }
}

/* ========================================================================== 
   Altura coherente de acciones
   Los botones de trabajo usan un único ritmo compacto. Solo las tres acciones
   principales del negocio optan explícitamente por el tamaño grande.
   ========================================================================== */
:root {
    --ng-button-height: 36px;
    --ng-button-height-large: 56px;
}

:where(
    .btn,
    .app-btn,
    .dash-btn,
    .catalog-btn,
    .billing-btn,
    .stores-btn,
    .creator-btn-primary,
    .creator-btn-secondary,
    .creator-btn-soft,
    .creator-btn-accent,
    .creator-btn-danger,
    .map-btn,
    .sfv-btn,
    .public-nav-cta,
    .navbar-cta,
    .auth-submit,
    .auth-home-button,
    .landing-btn-primary,
    .landing-btn-secondary,
    .store-setup-submit
):not(.ng-btn--large):not(.stores-card__menu-btn):not(.map-control-btn):not(.ng-bottom-sheet__close) {
    min-height: var(--ng-button-height) !important;
    height: var(--ng-button-height) !important;
    padding-block: 0 !important;
    line-height: 1.15 !important;
    box-sizing: border-box;
}

.ng-btn--large {
    min-height: var(--ng-button-height-large) !important;
    height: var(--ng-button-height-large) !important;
    padding: 0.45rem 0.7rem !important;
    box-sizing: border-box;
}

/* Las tres acciones principales siempre forman un bloque proporcionado. */
.dash-home--premium .dash-store-card__actions--premium {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.65rem !important;
}

.dash-home--premium .dash-store-card__actions--premium .ng-btn--large {
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.75rem;
}

/* Centro de trabajo: mismas opciones, menos volumen visual. */
.dash-home--premium .dash-today {
    padding: 0.75rem 0.9rem;
}

.dash-home--premium .dash-today__head {
    margin-bottom: 0.5rem;
}

.dash-home--premium .dash-today__grid {
    gap: 0.45rem;
}

.dash-home--premium .dash-today-card {
    min-height: 56px;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    border-radius: 11px;
}

.dash-home--premium .dash-today-card__icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
}

.dash-home--premium .dash-today-card__icon svg {
    width: 18px;
    height: 18px;
}

.dash-home--premium .dash-today-card__body {
    gap: 0.12rem;
}

.dash-home--premium .dash-today-card__body strong {
    font-size: 0.85rem;
}

.dash-home--premium .dash-today-card__body small {
    font-size: 0.7rem;
}

@media (max-width: 720px) {
    :root {
        --ng-button-height: 38px;
        --ng-button-height-large: 54px;
    }

    .dash-home--premium .dash-store-card__actions--premium {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 0.45rem !important;
    }

    .dash-home--premium .dash-store-card__actions--premium .ng-btn--large {
        min-width: 0;
        padding-inline: 0.25rem !important;
        font-size: 0.68rem;
    }

    .dash-home--premium .dash-store-card__actions--premium .dash-btn__icon {
        width: 1.35rem;
        height: 1.35rem;
    }

    .dash-home--premium .dash-today {
        padding: 0.7rem;
    }

    .dash-home--premium .dash-today-card {
        min-height: 58px;
        padding: 0.5rem 0.65rem;
    }
}

html, body, body.negociogo-light {
    background: var(--bg-page);
    color: var(--text-primary);
}

body {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: -0.01em;
}

/* Shared page shells */
.max-w-6xl { max-width: var(--page-max-width); }
.creator-main, .public-main { min-width: 0; }
.creator-main > *, .public-main > * { max-width: 100%; }

/* Accessible focus that works consistently in native and custom controls. */
:where(a, button, summary):focus-visible {
    outline: 2px solid var(--color-spring-green) !important;
    outline-offset: 3px;
    box-shadow: var(--focus-ring);
}

/* Native form controls use one focus ring. Combining an outline and a shadow
   made inputs and selects look as if they had two borders. */
:where(input, select, textarea):focus-visible {
    outline: 0 !important;
    outline-offset: 0 !important;
}

/* Buttons: dark is the default conversion action; spring green is reserved for emphasis. */
.btn-primary, .btn-brand, .public-nav-cta, .landing-btn-primary,
.dash-btn--primary, .creator-btn-primary, .catalog-btn--primary,
.auth-submit, .app-btn--primary {
    border-color: var(--color-deep-onyx) !important;
    background: var(--color-deep-onyx) !important;
    color: var(--text-inverse) !important;
    box-shadow: 0 10px 24px rgba(7, 25, 30, 0.16);
}

.btn-primary:hover, .btn-brand:hover, .public-nav-cta:hover, .landing-btn-primary:hover,
.dash-btn--primary:hover, .creator-btn-primary:hover, .catalog-btn--primary:hover,
.auth-submit:hover, .app-btn--primary:hover {
    border-color: var(--bg-dark-soft) !important;
    background: var(--bg-dark-soft) !important;
    color: var(--text-inverse) !important;
    box-shadow: var(--shadow-green-glow);
}

.btn-secondary, .app-btn--secondary, .landing-btn-secondary, .auth-home-button {
    border-color: var(--border-strong) !important;
    background: var(--bg-surface) !important;
    color: var(--text-primary) !important;
}
.btn-secondary:hover, .app-btn--secondary:hover, .landing-btn-secondary:hover, .auth-home-button:hover {
    border-color: var(--border-green) !important;
    background: var(--accent-soft) !important;
}

button:disabled, .btn:disabled, .app-btn:disabled, [aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .52;
    box-shadow: none !important;
}

/* Inputs and form controls */
.input, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea {
    border-color: var(--border-subtle);
    background-color: var(--bg-surface);
    color: var(--text-primary);
    border-radius: 12px;
}
.input::placeholder, input::placeholder, textarea::placeholder { color: #8A9A9E; }
.input:focus, input:focus, select:focus, textarea:focus {
    border-color: var(--color-spring-green) !important;
    box-shadow: var(--focus-ring) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--color-deep-onyx); }

/* Cards, tables and floating surfaces */
.card, .app-card, .ng-app-card, .dash-stat-card, .stats-kpi, .seller-product-card,
.seller-service-card, .catalog-item-card, .catalog-mobile-card, .billing-card,
.profile-menu-dropdown, .lang-picker__menu, .mobile-drawer {
    border-color: var(--border-subtle) !important;
    background-color: var(--bg-surface);
    box-shadow: var(--shadow-soft);
}
.card, .app-card, .ng-app-card, .dash-stat-card, .stats-kpi, .seller-product-card,
.seller-service-card, .catalog-item-card, .catalog-mobile-card, .billing-card {
    border-radius: 20px;
}
.card-interactive:hover, .app-card--interactive:hover, .catalog-item-card:hover {
    border-color: var(--border-green) !important;
    box-shadow: var(--shadow-medium);
}

.table-wrap, .billing-table-wrap, .catalog-table-wrap { border-color: var(--border-subtle); border-radius: 18px; }
thead, .table-head { background: var(--bg-surface-soft); color: var(--text-muted); }
tbody tr:hover { background: rgba(14, 143, 102, 0.035); }

/* Header and popovers */
.public-nav, .creator-topbar, .seller-private-nav {
    border-color: var(--border-subtle) !important;
    background: rgba(255,255,255,.88) !important;
    box-shadow: 0 1px 0 rgba(7,25,30,.04);
    backdrop-filter: blur(16px);
}
.public-nav-link { color: var(--text-secondary); font-weight: 600; }
.public-nav-link:hover { color: var(--text-primary); background: var(--accent-soft); }
.lang-picker__trigger, .profile-menu-trigger, .mobile-nav-toggle {
    appearance: none !important;
    -webkit-appearance: none !important;
    border-color: var(--border-subtle) !important;
    background: #fff !important;
    color: var(--text-primary);
}
.lang-picker__trigger,
.profile-menu-trigger {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    height: 2.5rem !important;
    min-height: 2.5rem !important;
    padding: 0 0.7rem 0 0.5rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    gap: 0.4rem;
}

.creator-topbar .profile-menu-trigger,
.seller-private-nav .profile-menu-trigger {
    border: 1px solid var(--border-subtle) !important;
    border-radius: 10px 10px 10px 4px !important;
}

.creator-topbar .profile-menu-trigger:hover,
.seller-private-nav .profile-menu-trigger:hover {
    border-color: var(--border-strong) !important;
}
.lang-picker__icon,
.profile-menu-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    line-height: 0;
}
.lang-picker__icon svg,
.profile-menu-icon svg,
.lang-picker__chevron {
    display: block;
    flex-shrink: 0;
}
.lang-picker__option.is-selected { background: var(--accent-soft); color: var(--text-primary); }
.lang-picker__option.is-selected .lang-picker__option-code, .lang-picker__check { color: #02a504; }

/* Landing: depth without ecommerce noise. */
.landing-home-client .landing-hero.home-hero {
    background: linear-gradient(145deg, #F6FAF8 0%, #F9FBFA 54%, #E9FFF7 100%);
}
.landing-home-client .landing-saas-bg {
    background:
      radial-gradient(ellipse 55% 48% at 91% 8%, rgba(14,143,102,.22), transparent 62%),
      radial-gradient(ellipse 58% 56% at 8% 22%, rgba(7,25,30,.09), transparent 64%),
      linear-gradient(145deg, #F6FAF8 0%, #FFFFFF 100%) !important;
}
.landing-home-client .home-hero__title, .landing-home-client .landing-title { color: var(--color-deep-onyx) !important; }
.landing-home-client .landing-live-pill, .landing-home-client .landing-saas-badge {
    border-color: var(--border-green); color: #02a504; background: rgba(255,255,255,.78);
}
.landing-home-client .landing-saas-badge span { background: var(--color-spring-green); box-shadow: 0 0 0 4px var(--accent-soft); }
.landing-home-client .home-search-card { border-color: var(--border-subtle); box-shadow: var(--shadow-medium); }
.landing-home-client .home-search-button { background: var(--color-deep-onyx); box-shadow: 0 8px 20px rgba(7,25,30,.16); }
.landing-home-client .home-search-button:hover { background: var(--bg-dark-soft); box-shadow: var(--shadow-green-glow); }
.landing-seller-cta { background: var(--color-deep-onyx) !important; }

/* Authentication and storefront surfaces */
.auth-split-media { background: var(--color-deep-onyx); }
.auth-form-card { border-color: var(--border-subtle); box-shadow: var(--shadow-medium); }
.storefront-lang-bar .lang-picker__trigger { box-shadow: var(--shadow-soft); }

/* Premium accents, badges and empty states. */
.app-badge--green, .catalog-status-badge--published, .catalog-item-card__status--published {
    border-color: var(--border-green) !important;
    background: var(--accent-soft) !important;
    color: #02a504 !important;
}
.app-empty-state__icon, .catalog-empty__icon, .stores-empty__icon, .billing-empty-state__icon {
    background: var(--accent-soft) !important;
    color: #02a504 !important;
}
dialog::backdrop { background: rgba(7,25,30,.56); backdrop-filter: blur(5px); }

@media (max-width: 1023px) {
    .public-nav-inner { padding-inline: var(--page-padding-mobile-x); }
}
@media (max-width: 767px) {
    .card, .app-card, .ng-app-card { border-radius: 18px; }
    .btn, .app-btn, .public-nav-cta { min-height: 44px; }
}

/* Application filters: one visual language across stores, catalog, orders and appointments. */
body.creator-app .appt-filters,
body.creator-app .qr-filters,
body.creator-app .catalog-tabs,
body.creator-app .stores-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.creator-app .appt-filters a,
body.creator-app .qr-filters a,
body.creator-app .catalog-tabs__item,
body.creator-app .stores-filters__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    padding: 0 .7rem;
    border: 0;
    border-radius: 8px;
    background: #f1f5f9;
    color: #64748b;
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.15;
    text-decoration: none;
    box-shadow: none;
}

body.creator-app .appt-filters a:hover,
body.creator-app .qr-filters a:hover,
body.creator-app .catalog-tabs__item:hover,
body.creator-app .stores-filters__item:hover {
    background: #e8f0ed;
    color: #183238;
}

body.creator-app .appt-filters a.is-active,
body.creator-app .qr-filters a.is-active,
body.creator-app .catalog-tabs__item.is-active,
body.creator-app .stores-filters__item.is-active {
    border: 0;
    background: #02a504;
    color: #fff;
    box-shadow: 0 5px 12px -9px rgba(6, 140, 97, .75);
}

/* Catalog search: the label owns the focus ring; the native input stays visually neutral. */
body.catalog-page-active .catalog-filters-collapsible__toolbar {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.catalog-page-active .catalog-filters-collapsible__search {
    min-height: 38px;
    padding-inline: .72rem;
    border: 1px solid #dce6e3;
    border-radius: 11px;
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease;
}

body.catalog-page-active .catalog-filters-collapsible__search:focus-within {
    border-color: rgba(14, 143, 102, .72);
    box-shadow: 0 0 0 3px rgba(14, 143, 102, .12);
}

body.catalog-page-active .catalog-filters-collapsible__search input,
body.catalog-page-active .catalog-filters-collapsible__search input:focus,
body.catalog-page-active .catalog-filters-collapsible__search input:focus-visible {
    min-height: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    outline: 0 !important;
    background: transparent;
    box-shadow: none !important;
    font-size: .8125rem;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; }
}


/* Final audit guardrails: no page-level component may escape its shell. */
body, main, section, article, aside, nav, header, footer { min-width: 0; }
img, svg, video, canvas { max-width: 100%; }

/* Compact control groups and data views retain usable proportions on smaller screens. */
.creator-form, .auth-form, .publish-form, .store-profile-form, .catalog-filters,
.billing-filters, .map-filters, .filter-bar { min-width: 0; }

:where(.creator-form, .auth-form, .publish-form, .store-profile-form) label {
    color: var(--text-secondary);
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .01em;
}

/* Shared floating UI receives a restrained entry motion and a reliable stacking layer. */
:where(.profile-menu-dropdown, .lang-picker__menu, .catalog-actions-menu, .popover, .dropdown-menu) {
    z-index: 10050;
    transform-origin: top right;
    animation: ng-popover-in 160ms var(--ease-out) both;
}
@keyframes ng-popover-in {
    from { opacity: 0; transform: translateY(-4px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Keep the Spring accent legible: deep text on bright fills and dark actions elsewhere. */
:where(.whatsapp-btn, .whatsapp-cart__checkout, .map-btn--accent) {
    background: var(--color-spring-green);
    border-color: var(--color-spring-green);
    color: var(--color-deep-onyx);
    font-weight: 750;
}

@media (max-width: 767px) {
    .app-actions, .catalog-item-card__actions, .billing-actions, .form-actions { gap: .625rem; }
    .app-actions > :not(.app-btn--icon), .catalog-item-card__actions > :not(.app-btn--icon) { min-width: 0; }
    :where(.table-wrap, .billing-table-wrap, .catalog-table-wrap) { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .mobile-drawer { width: 100% !important; max-width: 100% !important; }
    .lang-picker__menu { max-width: calc(100vw - 1rem); }
}

@media (prefers-reduced-motion: reduce) {
    :where(.profile-menu-dropdown, .lang-picker__menu, .catalog-actions-menu, .popover, .dropdown-menu) { animation: none; }
}

.ui-action-approve {
    color: #02a504;
    font-weight: 700;
}
.ui-action-approve:hover,
.ui-action-approve:focus-visible { color: var(--text-primary); }


/* --------------------------------------------------------------------------
   Screenshot-led refinements: auth, seller surfaces, catalog and storefront.
   -------------------------------------------------------------------------- */

/* Auth: the visual column needs enough contrast to read as a deliberate product story. */
.auth-split-page .auth-split-media {
    background:
        radial-gradient(circle at 70% 14%, rgba(14,143,102,.16), transparent 28rem),
        linear-gradient(145deg, #111111 0%, #0b242a 100%) !important;
}
.auth-split-page .auth-visual-content,
.auth-split-page .auth-visual-title,
.auth-split-page .auth-visual-text { color: #fff !important; }
.auth-split-page .auth-visual-kicker { color: #02a504 !important; }
.auth-split-page .auth-visual-text { opacity: .7; }
.auth-split-page .auth-form-card {
    padding: clamp(1.5rem, 3vw, 2.35rem);
    border: 1px solid var(--border-subtle);
    border-radius: 22px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 22px 52px rgba(7,25,30,.09);
}
.auth-split-page .auth-panel { background: #f9fbfa; }
.auth-split-page .auth-submit { border-radius: 14px; }

/* Stores: reduce empty canvas, reinforce the chosen store and the next action. */
.stores-page.app-page-container { max-width: 1280px; padding-top: 2.4rem; }
.stores-page .stores-header { margin-bottom: 1.45rem; }
.stores-page .stores-header h1 { font-size: clamp(2rem, 4vw, 3.05rem); letter-spacing: -.05em; }
.stores-page .stores-toolbar {
    padding: .7rem;
    border: 1px solid var(--border-subtle);
    border-radius: 18px;
    background: rgba(255,255,255,.78);
    box-shadow: var(--shadow-soft);
}
.stores-page .stores-search {
    min-height: 2.7rem;
    border-radius: 12px;
    border-color: var(--border-subtle);
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.stores-page .stores-search:focus-within {
    border-color: rgba(14, 143, 102, .72);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(14, 143, 102, .12);
}
.stores-page .stores-search input,
.stores-page .stores-search input:focus,
.stores-page .stores-search input:focus-visible {
    min-height: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    outline: 0 !important;
    background: transparent;
    box-shadow: none !important;
    font-size: .875rem;
}
.stores-page .stores-filters__item.is-active {
    border-color: var(--border-green);
    background: var(--accent-soft);
    color: #02a504;
}
.stores-page .stores-grid { gap: 1.25rem; }
.stores-page .stores-card {
    padding: 1.25rem;
    border-color: var(--border-subtle);
    border-radius: 20px;
    box-shadow: var(--shadow-soft);
}
.stores-page .stores-card--active { border-color: var(--border-green); box-shadow: 0 18px 38px rgba(7,25,30,.08); }
.stores-page .stores-card--create {
    background: linear-gradient(145deg, #fff, #f5fff9);
    border-color: var(--border-green);
}
.stores-page .stores-btn--primary {
    background: #111111;
    border-color: #111111;
    color: #fff;
}
.stores-page .stores-btn--primary:hover { background: #0b242a; box-shadow: var(--shadow-green-glow); }

/* Seller dashboard: consolidate visual groups so metrics do not become stacked white boxes. */
.dash-home--premium { max-width: 1280px; }
.dash-home--premium .dash-hero-header {
    padding: 1.45rem 1.6rem;
    border: 1px solid var(--border-green);
    border-radius: 20px;
    background: linear-gradient(105deg, #f4fffa, #fff);
}
.dash-home--premium .dash-hero-header h1 { font-size: clamp(1.8rem, 3vw, 2.55rem); letter-spacing: -.05em; }

@media (min-width: 641px) {
    .stores-page.app-page-container { padding-top: 2rem; }
    .stores-page .stores-header { margin-bottom: 1rem; }
    .stores-page .stores-header h1 {
        font-size: clamp(1.75rem, 2.35vw, 2.25rem);
        letter-spacing: -.045em;
    }
    .stores-page .stores-header__lead {
        max-width: 38rem;
        font-size: .9375rem;
        line-height: 1.45;
    }
    .stores-page .stores-toolbar { padding: .55rem; }
    .stores-page .stores-search {
        min-height: 2.35rem;
        height: 2.35rem;
        border-radius: 11px;
    }
    .dash-home--premium .dash-hero-header { padding: 1rem 1.25rem; }
    .dash-home--premium .dash-hero-header h1 {
        font-size: clamp(1.5rem, 2vw, 1.8rem);
        letter-spacing: -.04em;
    }
    .dash-home--premium .dash-hero-header .dash-header-lead {
        margin-top: .3rem;
        font-size: .875rem;
        line-height: 1.4;
    }
}
.dash-home--premium .dash-store-card--premium,
.dash-home--premium .dash-panel-card,
.dash-home--premium .dash-quick-metrics {
    border-color: var(--border-subtle);
    border-radius: 20px;
    box-shadow: var(--shadow-soft);
}
.dash-home--premium .dash-store-card__actions--premium { gap: .65rem; }
.dash-home--premium .dash-btn--action { min-height: 2.75rem; border-radius: 12px; }
.dash-home--premium .dash-btn--primary,
.dash-home--premium .dash-store-card--premium .dash-btn--primary.dash-btn--action {
    background: #111111;
    border-color: #111111;
    color: #fff;
}
.dash-home--premium .dash-btn--primary:hover { background: #0b242a; box-shadow: var(--shadow-green-glow); }
.dash-home--premium .dash-quick-link { border-radius: 13px; border-color: var(--border-subtle); }
.dash-home--premium .dash-quick-link:hover { border-color: var(--border-green); background: var(--accent-soft); }

/* Catalog: denser rows, clearer actions and no visual collision with the assistant. */
.catalog-page--compact { max-width: 1280px; }
.catalog-page--compact .catalog-header { margin-bottom: 1.2rem; }
.catalog-page--compact .catalog-header__title {
    font-size: clamp(1.5rem, 2.2vw, 1.8rem);
    letter-spacing: -.04em;
}
.catalog-page--compact .catalog-summary-card {
    min-height: 4.35rem !important;
    padding: .62rem .78rem !important;
    border-color: var(--border-subtle);
    border-radius: 15px;
    box-shadow: var(--shadow-soft);
}
.catalog-page--compact .catalog-tabs,
.catalog-page--compact .catalog-filter-card,
.catalog-page--compact .catalog-list-card {
    border-color: var(--border-subtle);
    box-shadow: var(--shadow-soft);
}
.catalog-page--compact .catalog-table thead th { height: 2.5rem; font-size: .7rem; letter-spacing: .09em; }
.catalog-page--compact .catalog-table tbody td { padding-top: .78rem; padding-bottom: .78rem; }
.catalog-page--compact .catalog-table__thumb { width: 3.2rem; height: 3.2rem; border-radius: 10px; }
.catalog-page--compact .catalog-table__actions { gap: .45rem; }
.catalog-page--compact .catalog-btn--primary { background: #111111; border-color: #111111; color: #fff; }
.catalog-page--compact .catalog-btn--primary:hover { background: #0b242a; }
body.catalog-page-active .tomas-root,
body.catalog-page-active .negociogo-assistant-root { right: 1.35rem; bottom: 1.35rem; }
body.catalog-page-active .tomas-fab,
body.catalog-page-active .negociogo-assistant-fab { background: #111111; box-shadow: var(--shadow-green-glow); min-height: 2.5rem; }
@media (max-width: 767px) {
    body.catalog-page-active .tomas-root,
    body.catalog-page-active .negociogo-assistant-root { bottom: calc(var(--ng-bottom-nav-clearance, 72px) + 0.75rem); right: 1rem; }
}

/* Storefront: give sparse catalogs a composed canvas instead of a lone card on an empty page. */
.sfv-store:not(.is-dark-theme) { background: linear-gradient(180deg, #f7faf9 0%, #fff 42rem); }
.sfv-store .sfv-hero-card {
    border-color: var(--border-subtle);
    border-radius: 24px;
    box-shadow: 0 22px 55px rgba(7,25,30,.13);
}
.sfv-store .sfv-shell { max-width: 1280px; }
.sfv-store:not(.is-dark-theme) .sfv-tabs,
.sfv-store:not(.is-dark-theme) .sfv-catalog-toolbar {
    border-color: var(--border-subtle);
    background: rgba(255,255,255,.88);
    box-shadow: var(--shadow-soft);
}
.sfv-store:not(.is-dark-theme) .sfv-tab.is-active { background: var(--accent-soft); color: #02a504; }
.sfv-store .sfv-panel-head { margin-top: 2.4rem; }
.sfv-store .sfv-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
}
.sfv-store:not(.is-dark-theme) .sfv-product-card {
    max-width: none;
    border-color: var(--border-subtle);
    border-radius: 18px;
    box-shadow: var(--shadow-soft);
}
.sfv-store:not(.is-dark-theme) .sfv-product-card:hover { border-color: var(--border-green); box-shadow: var(--shadow-medium); }
.sfv-store .sfv-product-card:only-child { max-width: none; }

.sfv-store .sfv-brand-link .brand-logo-wordmark--nav .brand-logo-wordmark__negocio,
.sfv-store .sfv-brand-link:hover .brand-logo-wordmark--nav .brand-logo-wordmark__negocio {
    color: #fff !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .42);
}

.sfv-store .sfv-hero .ss-stars-text {
    color: #fff !important;
}

.sfv-store .sfv-hero .ss-stars-count {
    color: rgba(255, 255, 255, .82) !important;
}

.sfv-store .sfv-hero .ss-followers-count {
    color: #d1fae5 !important;
    font-weight: 750;
}

.sfv-store .sfv-hero .ss-store-metrics__divider {
    background: rgba(209, 250, 229, .82);
}

/* Keep business facts readable over every cover, including very light photos. */
.sfv-store .sfv-hero .sfv-hero-stats,
.sfv-store .sfv-hero.sfv-hero--has-cover .sfv-hero-stats {
    gap: .4rem;
    align-items: center;
}

.sfv-store .sfv-hero .sfv-hero-stats > li,
.sfv-store .sfv-hero.sfv-hero--has-cover .sfv-hero-stats > li,
.sfv-store.is-dark-theme .sfv-hero.sfv-hero--has-cover .sfv-hero-stats > li {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 1.75rem;
    padding: .28rem .62rem;
    border: 1px solid rgba(255, 255, 255, .38) !important;
    border-radius: 999px;
    background: rgba(7, 25, 30, .82) !important;
    color: #fff !important;
    line-height: 1.2;
    overflow-wrap: anywhere;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .09), 0 4px 12px rgba(0, 0, 0, .16);
    -webkit-backdrop-filter: blur(10px) saturate(120%);
    backdrop-filter: blur(10px) saturate(120%);
}

.sfv-store .sfv-hero .sfv-hero-stats > li:first-child {
    padding-left: .62rem;
}

.sfv-store .sfv-hero .sfv-hero-stats > li + li {
    border-left: 1px solid rgba(255, 255, 255, .38) !important;
}

.sfv-store .sfv-hero .sfv-hero-stats > li::before,
.sfv-store .sfv-hero .sfv-hero-stats > li::after {
    display: none !important;
    content: none !important;
}

.sfv-store .sfv-hero .sfv-hero-stats > .sfv-hero-stat--open,
.sfv-store .sfv-hero.sfv-hero--has-cover .sfv-hero-stats > .sfv-hero-stat--open {
    border-color: rgba(167, 243, 208, .58) !important;
    background: rgba(5, 78, 61, .86) !important;
    color: #fff !important;
}

.sfv-store .sfv-hero .sfv-hero-stats .ss-stars {
    color: #fff !important;
}

.dash-activity-item .dash-activity-icon::before {
    display: none !important;
    content: none !important;
}

.sfv-store .sfv-product-card__actions--owner {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: .45rem;
}

.sfv-store .sfv-owner-card-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.35rem;
    width: 2.35rem;
    height: 2.25rem;
    border: 1px solid #dce6e3;
    border-radius: 10px;
    background: #fff;
    color: #27444a;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.sfv-store .sfv-owner-card-action:hover {
    border-color: #8fd6bc;
    background: #eefaf5;
    color: #02a504;
}

.sfv-store .sfv-owner-card-action--edit {
    border-color: #0e9f6e;
    background: #0e9f6e;
    color: #fff;
}

.sfv-store .sfv-owner-card-action--edit:hover {
    border-color: #02a504;
    background: #02a504;
    color: #fff;
}

.sfv-store .sfv-owner-banner__add-product {
    width: 2.35rem;
    min-width: 2.35rem;
    min-height: 2.25rem;
    padding: 0;
}

.sfv-partner-invite {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: .85rem 0 1rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(6, 140, 97, .2);
    border-radius: 15px;
    background: linear-gradient(110deg, #f0fbf6, #fff);
}
.sfv-partner-invite__copy { display: grid; gap: .16rem; }
.sfv-partner-invite__copy strong { color: #102126; font-size: .9rem; }
.sfv-partner-invite__copy p { margin: 0; color: #607478; font-size: .76rem; line-height: 1.4; }
.sfv-partner-invite__eyebrow { color: #07865d; font-size: .62rem; font-weight: 850; letter-spacing: .08em; }
.sfv-partner-invite__action,
button.sfv-partner-invite__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    padding: .45rem .8rem;
    border: 0;
    border-radius: 10px;
    background: #087b58;
    color: #fff;
    font: inherit;
    font-size: .74rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.sfv-partner-invite__status { padding: .35rem .65rem; border-radius: 999px; background: #fff4d6; color: #7a5700; font-size: .7rem; font-weight: 800; }

@media (max-width: 540px) {
    .sfv-partner-invite { align-items: stretch; flex-direction: column; padding: .75rem; }
    .sfv-partner-invite form,
    .sfv-partner-invite__action { width: 100%; }
    .sfv-store .sfv-hero .sfv-hero-stats > li,
    .sfv-store .sfv-hero.sfv-hero--has-cover .sfv-hero-stats > li {
        min-height: 1.6rem;
        padding: .24rem .5rem;
        font-size: .64rem;
    }

    .sfv-store .sfv-hero .sfv-hero-stats > li:first-child {
        padding-left: .5rem;
    }
}

/* Reserva múltiple: selección centralizada, foco simple y color único. */
.sfv-store .sfv-hero-cover-shade,
.sfv-store .sfv-hero--has-cover .sfv-hero-cover-shade {
    background:
        linear-gradient(90deg, rgba(4, 18, 22, 0.88) 0%, rgba(4, 25, 28, 0.62) 46%, rgba(4, 23, 26, 0.2) 100%),
        linear-gradient(0deg, rgba(4, 18, 22, 0.58) 0%, transparent 62%);
}

.sfv-store .sfv-hero-copy {
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.sfv-store .sfv-service-card__actions [data-appt-open] {
    border-color: #b9cbc5 !important;
    background: #fff !important;
    color: #183238 !important;
}

.sfv-store .sfv-service-card__actions [data-appt-open]:hover {
    border-color: #02a504 !important;
    background: #f2faf7 !important;
    color: #02a504 !important;
}

.sfv-store .sfv-service-card__actions [data-appt-open].is-selected {
    border-color: #02a504 !important;
    background: #e9f8f1 !important;
    color: #02a504 !important;
}

.appt-selection-bar {
    position: sticky;
    z-index: 12;
    bottom: calc(var(--ng-bottom-nav-clearance, 0px) + 0.8rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: min(34rem, calc(100% - 1rem));
    margin: 1rem auto 0;
    padding: 0.55rem 0.65rem 0.55rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 13px;
    background: #111111;
    color: #fff;
    box-shadow: 0 16px 34px -18px rgba(7, 25, 30, 0.7);
}

.appt-selection-bar[hidden] { display: none; }
.appt-selection-bar strong { font-size: 0.82rem; }
.appt-selection-bar .sfv-btn {
    min-height: 2.2rem !important;
    padding: 0.4rem 1rem !important;
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
}

.appt-modal .appt-input:focus,
.appt-modal .appt-input:focus-visible {
    border-color: #02a504 !important;
    outline: none !important;
    box-shadow: none !important;
}

.appt-modal .appt-submit,
.appt-modal .appt-submit:hover,
.appt-modal .appt-submit:focus {
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
}

.appt-modal .appt-submit:disabled {
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
    opacity: 0.56;
}

@media (max-width: 540px) {
    .sfv-store .sfv-hero-copy { width: auto; padding: 0; }
    .appt-selection-bar { bottom: calc(var(--ng-bottom-nav-clearance, 64px) + 0.55rem); }
}

@media (min-width: 768px) and (max-width: 1050px) {
    .sfv-store .sfv-product-grid:not(.is-list-view) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
.sfv-store:not(.is-dark-theme) .sfv-btn--primary,
.sfv-store:not(.is-dark-theme) .sfv-btn--card.sfv-btn--primary { background: var(--sfv-accent, #111111); border-color: var(--sfv-accent, #111111); color: #fff; }
.sfv-store:not(.is-dark-theme) .sfv-btn--primary:hover { background: color-mix(in srgb, var(--sfv-accent, #111111), #000 12%); }
.sfv-store.is-dark-theme .sfv-btn--primary,
.sfv-store.is-dark-theme .sfv-btn--card.sfv-btn--primary { background: var(--sfv-accent, #02a504); border-color: transparent; color: #fff; }
.sfv-store.is-dark-theme .sfv-btn--primary:hover { filter: brightness(1.15); }
.sfv-store .sfv-btn--whatsapp { background: #25D366; color: #ffffff; border-color: #25D366; }

/* Product detail uses the same depth but with a more balanced information panel. */
.pdp-page:not(.is-dark-theme) { background: radial-gradient(36rem 26rem at 0 0, color-mix(in srgb, var(--sfv-accent, #02a504) 11%, transparent), transparent 68%), #f8faf9; }
.pdp-page .pdp-commerce-layout { gap: 1.35rem; }
.pdp-page:not(.is-dark-theme) .pdp-gallery-card,
.pdp-page:not(.is-dark-theme) .pdp-product-card,
.pdp-page:not(.is-dark-theme) .pdp-sold-by,
.pdp-page:not(.is-dark-theme) .pdp-modern-content,
.pdp-page:not(.is-dark-theme) .pdp-related-modern {
    border-color: var(--border-subtle);
    box-shadow: var(--shadow-soft);
}
.pdp-page .pdp-product-card { padding: 1.45rem; }
.pdp-page:not(.is-dark-theme) .pdp-commerce-price { color: #111111; letter-spacing: -.04em; }
.pdp-page:not(.is-dark-theme) .pdp-badge--status { background: var(--accent-soft); color: #02a504; }
.pdp-page:not(.is-dark-theme) .pdp-whatsapp-btn,
.pdp-page:not(.is-dark-theme) .pdp-btn--primary { background: var(--sfv-accent, #111111); border-color: var(--sfv-accent, #111111); color: #fff; }
.pdp-page.is-dark-theme .pdp-gallery-card,
.pdp-page.is-dark-theme .pdp-product-card,
.pdp-page.is-dark-theme .pdp-sold-by {
    background: var(--sfv-card-bg, rgba(15, 23, 42, 0.72));
    border-color: var(--sfv-card-border, rgba(148, 163, 184, 0.16));
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

.pdp-page.is-dark-theme .pdp-modern-content,
.pdp-page.is-dark-theme .pdp-related-modern {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}
.pdp-page.is-dark-theme .pdp-whatsapp-btn,
.pdp-page.is-dark-theme .pdp-btn--primary { background: var(--sfv-accent, #02a504); border-color: transparent; color: #fff; }
.pdp-page.is-dark-theme .pdp-commerce-price { color: var(--sfv-text, #f1f5f9); }

@media (max-width: 767px) {
    .auth-split-page .auth-form-card { padding: 1.25rem; border-radius: 18px; }
    .stores-page.app-page-container { padding-top: 1.25rem; }
    .stores-page .stores-header__actions { width: 100%; }
    .stores-page .stores-header__actions .stores-btn { flex: 1; }
    .dash-home--premium .dash-hero-header { padding: 1.2rem; }
    .dash-home--premium .dash-store-card__actions--premium { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .catalog-page--compact .catalog-summary-grid { gap: .4rem; }
    .catalog-page--compact .catalog-summary-card { min-height: 0 !important; padding: .45rem .5rem !important; }
    .catalog-page--compact .catalog-table-wrap { margin-inline: -.15rem; }
    .sfv-store .sfv-product-grid:not(.is-list-view) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .sfv-store .sfv-product-grid.is-list-view {
        grid-template-columns: 1fr;
    }

    .sfv-store .sfv-product-card:only-child { max-width: none; }
    .pdp-page .pdp-commerce-layout { gap: 1rem; }
}

/* Mobile: evitar desplazamiento horizontal y contenido pegado a la derecha */
@media (max-width: 767px) {
    html {
        overflow-x: clip;
        width: 100%;
    }

    body {
        overflow-x: clip;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    body > main.flex-1 {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: clip;
        min-width: 0;
    }

    .site-nav-shell,
    .public-nav,
    .public-nav-inner,
    .public-nav-bar,
    .site-footer,
    .site-footer-inner {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        min-width: 0;
    }

    .market-page,
    .market-page--compact,
    .market-toolbar__inner,
    .market-search,
    .market-search--compact,
    .market-search__row,
    .market-results,
    .market-tabs {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .market-search-advanced,
    .market-search__row {
        grid-template-columns: 1fr !important;
    }

    body.market-page-body > main.flex-1 {
        overflow-x: clip;
        max-width: 100%;
    }

    /* Landing — decoraciones y mapa no deben empujar el viewport */
    body.landing-home-client .ng-home-hero::after {
        display: none;
    }

    body.landing-home-client .landing-container,
    body.landing-home-client .ng-home-hero__inner,
    body.landing-home-client .landing-map-block,
    body.landing-home-client .landing-map-copy,
    body.landing-home-client .home-map-preview,
    body.landing-home-client .home-map-preview__wrapper {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        overflow-x: clip;
    }

    body.landing-home-client .landing-map-actions__primary,
    body.landing-home-client .landing-map-actions {
        width: 100%;
        max-width: 100%;
    }

    body.landing-home-client .landing-btn-primary,
    body.landing-home-client .landing-btn-secondary {
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Auth — formulario contenido dentro del viewport */
    .auth-page,
    .auth-split-page,
    .auth-shell,
    .auth-split,
    .auth-panel,
    .auth-split-panel,
    .auth-panel-body,
    .auth-form-card,
    .auth-form {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        overflow-x: clip;
    }

    /* Drawer móvil: botones contenidos y compactos */
    .mobile-drawer {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .mobile-drawer__body,
    .mobile-drawer__actions {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .mobile-drawer__btn-secondary,
    .mobile-drawer__btn-primary {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 2.5rem !important;
        height: auto !important;
        padding: 0.55rem 0.85rem !important;
        margin: 0 !important;
        font-size: 0.875rem !important;
        box-sizing: border-box !important;
        box-shadow: none !important;
    }
}

/* La navegación conserva estados útiles, pero no repite “opcional” visualmente. */
body.publish-form-active .product-editor-page .stage-tab:not(:first-child):not(.is-complete):not(.has-error) .publish-section-nav__status,
body.publish-form-active .product-editor-page .publish-accordion__badge--optional {
    display: none;
}

/* Foco final del editor: un borde definido, sin segundo halo. */
body.publish-form-active .product-form-page--publish :is(input.input, select.input, textarea.input):focus,
body.publish-form-active .product-form-page--publish :is(input.input, select.input, textarea.input):focus-visible {
    border-color: #07815b !important;
    outline: none !important;
    box-shadow: none !important;
    background-color: #fcfffd;
}

/* Editor de producto: lectura izquierda, controles compactos y dinero unificado. */
body.publish-form-active .product-editor-page .publish-form-top.app-page-header {
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
}

body.publish-form-active .product-editor-page .publish-form-head-text {
    width: 100%;
    margin: 0;
    text-align: left;
}

body.publish-form-active .product-editor-page .stage-tabs__list {
    align-items: center;
}

body.publish-form-active .product-editor-page .stage-tab {
    display: inline-flex;
    justify-content: center;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 .7rem !important;
    border-radius: 8px;
    line-height: 1;
}

body.publish-form-active .product-form-page--publish .form-section__body {
    gap: 1rem;
}

body.publish-form-active .product-form-page--publish .form-field {
    display: grid;
    align-content: start;
    gap: .5rem;
}

body.publish-form-active .product-form-page--publish .form-field > .form-label {
    margin: 0;
    line-height: 1.25;
}

body.publish-form-active .product-form-page--publish :is(.form-hint, .publish-field-hint) {
    margin: .05rem 0 0;
    color: #75827f;
    line-height: 1.45;
}

body.publish-form-active .product-form-page--publish .product-form-grid {
    gap: 1rem 1.25rem;
}

body.publish-form-active .product-form-page--publish .price-input-wrap {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    overflow: hidden;
    min-height: 40px;
    border: 1px solid #dce6e3;
    border-radius: 9px;
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease;
}

body.publish-form-active .product-form-page--publish .price-input-wrap:focus-within {
    border-color: #07815b;
    box-shadow: 0 0 0 3px rgba(7, 129, 91, .1);
}

body.publish-form-active .product-form-page--publish .price-input-prefix {
    position: static;
    z-index: 1;
    display: flex;
    align-items: center;
    min-width: 49px;
    padding: 0 .7rem;
    border: 0;
    border-right: 1px solid #e5ece9;
    border-radius: 0;
    background: #f7faf9;
    color: #37554f;
    font-size: .78rem;
    font-weight: 800;
    pointer-events: none;
}

body.publish-form-active .product-form-page--publish .price-input-wrap .input,
body.publish-form-active .product-form-page--publish .price-input-wrap .input:focus,
body.publish-form-active .product-form-page--publish .price-input-wrap .input:focus-visible {
    width: 100%;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 .75rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.publish-form-active .product-editor-page .negociogo-ai-actions {
    margin-top: .1rem;
    gap: .65rem;
}

body.publish-form-active .product-editor-page .negociogo-ai-btn {
    height: 32px;
    min-height: 32px;
    padding: 0 .65rem;
}

body.publish-form-active .product-editor-page :is(.creator-btn-primary, .creator-btn-secondary, .creator-btn-soft, .creator-btn-accent, .creator-btn-danger) {
    min-height: 34px;
    height: 34px;
    padding: 0 .8rem;
    border-radius: 8px;
    line-height: 1;
}

body.publish-form-active .product-form-page--publish :is(input.input, select.input) {
    min-height: 40px;
    height: 40px;
}

body.publish-form-active .product-form-page--publish .publish-accordion__trigger {
    padding-block: .75rem;
}

body.publish-form-active .product-form-page--publish .publish-accordion__panel {
    padding-top: .75rem;
    padding-bottom: 1rem;
}

body.publish-form-active .product-editor-page .publish-form-footer :is(.creator-btn-soft, .creator-btn-primary, .creator-btn-danger, .publish-form-cancel) {
    height: 36px;
    min-height: 36px;
    padding-block: 0;
}

/* Producto: acciones compactas con la esquina inferior izquierda distintiva. */
body.publish-form-active .product-editor-page :is(
    button:not(.publish-accordion__trigger),
    .creator-btn-primary,
    .creator-btn-secondary,
    .creator-btn-soft,
    .creator-btn-accent,
    .creator-btn-danger,
    .publish-form-cancel,
    .publish-section-nav__link,
    .publish-preview-card__link
) {
    border-radius: 10px 10px 10px 4px !important;
}

@media (max-width: 640px) {
    body.publish-form-active .product-editor-page .stage-tabs__list {
        display: flex;
        flex-wrap: nowrap;
        gap: .35rem;
        overflow-x: auto;
        padding-bottom: .2rem;
        scrollbar-width: none;
    }

    body.publish-form-active .product-editor-page .stage-tabs__list::-webkit-scrollbar {
        display: none;
    }

    body.publish-form-active .product-editor-page .stage-tab {
        flex: 0 0 auto;
        width: auto;
        text-align: left;
    }

    body.publish-form-active .product-form-page--publish .product-form-grid {
        gap: .9rem;
    }
}

/* Tienda de servicios: identidad legible y una acción compacta por servicio. */
.sfv-store .sfv-hero-copy {
    position: relative;
    padding: 0.7rem 0.85rem;
    border-radius: 14px;
    background: linear-gradient(90deg, rgba(3, 18, 21, 0.72), rgba(3, 18, 21, 0.42) 76%, rgba(3, 18, 21, 0.08));
    box-shadow: 0 10px 30px -24px rgba(0, 0, 0, 0.92);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

.sfv-store .sfv-hero-copy h1,
.sfv-store .sfv-hero-tagline {
    color: #fff !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.72);
}

.sfv-store .sfv-hero-tagline {
    opacity: 1;
}

.sfv-store .sfv-service-card {
    grid-template-columns: 4.5rem minmax(0, 1fr) !important;
    gap: 0.7rem 0.85rem !important;
    padding: 0.9rem !important;
}

.sfv-store .sfv-service-card__actions {
    grid-column: 2 !important;
    grid-row: auto !important;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-self: start;
    min-width: 0 !important;
    padding: 0 !important;
    margin-top: -0.1rem;
}

.sfv-store .sfv-service-card__actions .sfv-btn {
    width: auto !important;
    min-width: 8.5rem;
    min-height: 2.15rem !important;
    padding: 0.42rem 0.8rem !important;
    border-radius: 9px !important;
    font-size: 0.75rem !important;
}

.sfv-store .sfv-service-card__actions .sfv-btn--primary,
.sfv-store .sfv-product-card__actions .sfv-btn--primary,
.sfv-store .sfv-btn--whatsapp {
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
}

.sfv-store .sfv-service-card__actions .sfv-btn--primary:hover,
.sfv-store .sfv-product-card__actions .sfv-btn--primary:hover,
.sfv-store .sfv-btn--whatsapp:hover {
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
}

.pdp-page .pdp-btn--cart-primary {
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
}

.pdp-page .pdp-btn--cart-primary:hover:not(:disabled) {
    border-color: #02a504 !important;
    background: #02a504 !important;
}

@media (max-width: 540px) {
    .sfv-store .sfv-hero-copy {
        width: 100%;
        padding: 0.65rem 0.7rem;
        box-sizing: border-box;
    }

    .sfv-store .sfv-service-card {
        grid-template-columns: 4rem minmax(0, 1fr) !important;
    }

    .sfv-store .sfv-service-card__media {
        width: 4rem;
        height: 4rem;
    }

    .sfv-store .sfv-service-card__actions .sfv-btn {
        min-width: 0;
        max-width: 100%;
    }
}

/* Ajustes finales de la reserva pública (deben prevalecer sobre el tema de la tienda). */
.sfv-store .sfv-hero-cover-shade,
.sfv-store .sfv-hero--has-cover .sfv-hero-cover-shade {
    background:
        linear-gradient(90deg, rgba(4, 18, 22, 0.88) 0%, rgba(4, 25, 28, 0.62) 46%, rgba(4, 23, 26, 0.2) 100%),
        linear-gradient(0deg, rgba(4, 18, 22, 0.58) 0%, transparent 62%);
}

.sfv-store .sfv-hero-copy {
    width: auto;
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.sfv-store .appt-selection-bar .sfv-btn--primary,
.sfv-store .appt-selection-bar .sfv-btn--primary:hover {
    border-color: #02a504 !important;
    background: #02a504 !important;
    color: #fff !important;
}

/* El encabezado del panel pertenece a la página y no simula otra tarjeta. */
body.dash-page .dash-home.dash-home--premium > .dash-hero-header {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    margin: 0 !important;
    padding: 0.15rem 0 0.3rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 640px) {
    body.dash-page .dash-home.dash-home--premium > .dash-hero-header {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 0.35rem !important;
    }
}

