/* ========================================================================== */
/* Payments + Bookings premium pass — scoped late to stay above Astra         */
/* ========================================================================== */

/* Provider accounts: two equal, branded choices on desktop. */
body.wa-owner .wa-pay-accounts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}
body.wa-owner .wa-pay-accounts-grid > .wa-pay-card,
body.wa-owner .wa-pay-accounts-grid > .wa-owner-placeholder {
    min-width: 0;
    height: 100%;
}
body.wa-owner .wa-pay-accounts-grid > .wa-pay-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-width: 1px !important;
    border-style: solid !important;
    box-shadow: 0 12px 32px -26px rgba(15, 35, 55, .48) !important;
}
body.wa-owner .wa-pay-accounts-grid > .wa-pay-card--stripe {
    border-top: 4px solid #635bff !important;
}
body.wa-owner .wa-pay-accounts-grid > .wa-pay-card--paypal {
    border-top: 4px solid #0070ba !important;
}
body.wa-owner .wa-pay-accounts-grid.is-single { grid-template-columns: minmax(0, 1fr); }
body.wa-owner .wa-pay-card-head--compact { align-items: center; }
body.wa-owner .wa-pay-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 82px;
    height: 44px;
    padding: 0 12px;
    border-radius: var(--wag-radius-12);
    line-height: 1;
}
body.wa-owner .wa-pay-brand--stripe {
    background: #635bff;
    color: #fff;
    box-shadow: 0 8px 18px -12px rgba(99, 91, 255, .9);
}
body.wa-owner .wa-pay-brand--stripe > span,
body.wa-owner .wa-pay-connect-btn--stripe .wa-pay-connect-logo {
    color: #fff;
    font-size: 21px;
    font-weight: 900;
    letter-spacing: -.08em;
    transform: skew(-7deg);
}
body.wa-owner .wa-pay-brand--paypal {
    gap: 6px;
    background: #f3f8fc;
    color: #003087;
    border: 1px solid #d8e7f2;
}
body.wa-owner .wa-pay-paypal-mark {
    color: #0070ba;
    font-size: var(--wag-text-24);
    font-weight: 950;
    font-style: italic;
    letter-spacing: -.12em;
}
body.wa-owner .wa-pay-paypal-word {
    color: #003087;
    font-size: 17px;
    font-weight: 850;
    letter-spacing: -.04em;
}

/* Full-width brand CTAs. Every interactive state is reset here so Astra's
   generic button skin cannot turn them blue/grey after focus or click. */
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn,
body.wa-owner .wa-pay-accounts-grid a.wa-pay-connect-btn,
body.wa-owner .wa-pay-accounts-grid button.wa-pay-connect-btn {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 100% !important;
    min-height: 58px !important;
    margin: auto 0 0 !important;
    padding: 12px 20px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    border-radius: 14px !important;
    border-style: solid !important;
    border-width: 1px !important;
    box-shadow: var(--wag-shadow-15) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--stripe,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--stripe:hover,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--stripe:focus,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--stripe:focus-visible,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--stripe:active {
    background: #635bff !important;
    background-image: none !important;
    border-color: #635bff !important;
    color: #fff !important;
}
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--paypal,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--paypal:hover,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--paypal:focus,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--paypal:focus-visible,
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn--paypal:active {
    background: #ffc439 !important;
    background-image: none !important;
    border-color: #ffc439 !important;
    color: #003087 !important;
}
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn:hover {
    transform: translateY(-1px) !important;
    filter: brightness(.985) !important;
    box-shadow: 0 12px 22px -15px rgba(15, 35, 55, .65) !important;
}
body.wa-owner .wa-pay-accounts-grid .wa-pay-connect-btn:focus-visible {
    outline: 3px solid rgba(79, 173, 212, .32) !important;
    outline-offset: 3px !important;
}
body.wa-owner .wa-pay-connect-logo {
    flex: 0 0 auto;
    padding-right: 14px;
    border-right: 1px solid rgba(255, 255, 255, .34);
}
body.wa-owner .wa-pay-connect-logo--paypal {
    display: inline-flex;
    align-items: center;
    gap: var(--wag-space-4);
    color: #003087;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: -.04em;
    border-right-color: rgba(0, 48, 135, .2);
}
body.wa-owner .wa-pay-connect-logo--paypal > span {
    color: #0070ba;
    font-size: 21px;
    font-style: italic;
}

/* Shared premium booking shell. Scoped to the compound booking row so the
   generic admin tables elsewhere in the product are unaffected. */
body.wa .wa-admin-trow.wa-bk-row-owner,
body.wa-owner .wa-bk-row-owner[data-wa-card] {
    border: 1px solid var(--wag-type-admin-row-line, var(--wag-style-admin-row-line)) !important;
    border-radius: 18px !important;
    background: var(--wag-type-admin-row-bg, var(--wag-style-admin-row-bg)) !important;
    box-shadow: var(--wag-type-admin-row-shadow, var(--wag-style-admin-row-shadow)) !important;
    overflow: hidden !important;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}
body.wa .wa-admin-trow.wa-bk-row-owner:hover,
body.wa-owner .wa-bk-row-owner[data-wa-card]:hover {
    border-color: var(--wag-type-admin-row-hover-line, var(--wag-style-admin-row-hover-line)) !important;
    box-shadow: var(--wag-type-admin-row-hover-shadow, var(--wag-style-admin-row-hover-shadow)) !important;
}
body.wa .wa-bk-row-guest {
    display: block !important;
    padding: 20px !important;
}
body.wa .wa-bk-row-guest .wa-bk-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
}
body.wa .wa-bk-row-owner .wa-bk-main {
    flex: 1 1 260px;
    min-width: 0;
    gap: 6px;
}
body.wa .wa-bk-row-owner .wa-bk-prod {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 3px;
}
body.wa .wa-bk-row-owner .wa-bk-prod a,
body.wa-owner .wa-bk-row-business [data-wa-header] a {
    color: #162637 !important;
    font-size: 15.5px !important;
    font-weight: 850 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
}
body.wa .wa-bk-row-owner .wa-bk-prod a:hover,
body.wa-owner .wa-bk-row-business [data-wa-header] a:hover {
    color: #1a7a4a !important;
}
body.wa .wa-bk-row-owner .wa-bk-prod-owner {
    color: #7d8996 !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
}
body.wa .wa-bk-row-owner .wa-bk-meta {
    color: #526273 !important;
    font-size: 13px !important;
    font-weight: 650 !important;
}

/* Actions and statuses share one geometry; colour remains semantic. */
body.wa .wa-bk-row-owner .wa-bk-actions,
body.wa-owner .wa-bk-row-owner [data-bk-actions] {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}
body.wa-owner .wa-bk-row-owner [data-bk-actions] {
    padding: 13px !important;
    border: 1px solid #e8edf2 !important;
    border-radius: 13px !important;
    background: #f8fafb !important;
}
body.wa .wa-bk-row-owner .wa-bk-actions button,
body.wa .wa-bk-row-owner .wa-bk-actions a,
body.wa .wa-bk-row-owner .wa-bk-actions .wa-claim-pill,
body.wa-owner .wa-bk-row-owner [data-bk-actions] button,
body.wa-owner .wa-bk-row-owner [data-bk-actions] a,
body.wa-owner .wa-bk-row-owner [data-bk-actions] .wa-claim-pill,
body.wa-owner .wa-bk-owner-documents .wa-payment-document-link,
body.wa .wa-bkmine-documents .wa-payment-document-link {
    min-height: 38px !important;
    width: auto !important;
    padding: 0 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    border-radius: var(--wag-type-claim-pill-radius, var(--wag-style-claim-pill-radius)) !important;
    font-size: 12.5px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}
body.wa .wa-bk-row-owner .wa-bk-actions button,
body.wa-owner .wa-bk-row-owner [data-bk-actions] button,
body.wa-owner .wa-bk-accept-send {
    -webkit-appearance: none !important;
    appearance: none !important;
    border-width: 1px !important;
    border-style: solid !important;
    box-shadow: var(--wag-shadow-15) !important;
}
body.wa .wa-bk-row-owner .wa-bk-actions .wa-admin-trash {
    position: static !important;
    inset: auto !important;
}

/* Business-side information blocks. */
body.wa-owner .wa-bk-row-business [data-wa-body] {
    padding: 20px !important;
    gap: 14px !important;
    box-sizing: border-box !important;
}
body.wa-owner .wa-bk-row-business [data-wa-guest] {
    padding: 13px 14px;
    border: 1px solid #e8edf2;
    border-radius: var(--wag-radius-12);
    background: #f8fafb;
}
body.wa-owner .wa-bk-row-business [data-wa-guest] strong {
    color: #1d2b38;
    font-size: var(--wag-text-14);
}
body.wa-owner .wa-bk-row-business [data-wa-note] {
    padding: 10px 13px;
    border: 1px solid #edf0f3;
    border-left: 3px solid #9aabb9;
    border-radius: 9px;
    background: #fbfcfd;
}

/* Accounting documents have a dedicated rail instead of living among the
   operational buttons. */
body.wa-owner .wa-bk-owner-documents,
body.wa .wa-bkmine-documents {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 12px 13px !important;
    border: 1px solid #dfe8ef !important;
    border-radius: 12px !important;
    background: #f5f9fc !important;
    box-sizing: border-box !important;
}
body.wa-owner .wa-bk-owner-documents-label,
body.wa .wa-bkmine-documents-label {
    margin-right: auto !important;
    color: #6f8192 !important;
    font-size: 10.5px !important;
    font-weight: 850 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}
body.wa-owner .wa-bk-owner-documents .wa-payment-document-link,
body.wa .wa-bkmine-documents .wa-payment-document-link {
    margin: 0 !important;
    border: 1px solid #cbd9e4 !important;
    background: #fff !important;
    color: #21374c !important;
    text-decoration: none !important;
}
body.wa-owner .wa-bk-owner-documents .wa-payment-document-link:hover,
body.wa .wa-bkmine-documents .wa-payment-document-link:hover {
    border-color: #87a8bf !important;
    background: #edf5fa !important;
}

/* Contact thread becomes an explicit, elegant channel. */
body.wa .wa-bk-row-owner .wa-bk-contact {
    width: 100%;
    margin-top: 10px;
}
body.wa .wa-bk-row-owner .wa-bk-contact > summary {
    min-height: 42px;
    width: fit-content;
    max-width: 100%;
    padding: 9px 13px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    border: 1px solid #d8e8df !important;
    border-radius: 11px !important;
    background: #f3f9f5 !important;
    color: #17633d !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-sizing: border-box;
}
body.wa .wa-bk-row-owner .wa-bk-contact > summary:hover {
    border-color: #abcdb9 !important;
    background: #eaf5ed !important;
    text-decoration: none !important;
}
body.wa .wa-bk-contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #dcefe3;
}
body.wa .wa-bk-contact-name {
    color: #314d3d;
    font-weight: 700;
}
body.wa .wa-bk-row-owner .wa-bkmine-summary > summary,
body.wa-owner .wa-bk-row-owner .wa-bk-log > summary {
    width: fit-content;
    padding: 7px 10px !important;
    border-radius: 9px;
    color: #617386 !important;
    font-weight: 750 !important;
}
body.wa .wa-bk-row-owner .wa-bkmine-summary > summary:hover,
body.wa-owner .wa-bk-row-owner .wa-bk-log > summary:hover {
    background: #f1f5f7;
    color: #1a6a3a !important;
}

/* Reservas en móvil: no existía ninguna regla para estas filas, así que se
   servía el diseño de escritorio entero — .wa-bk-main arrastra un
   min-width:220px y .wa-bk-card-top reparte en dos columnas con 18px de hueco,
   y en 375px eso obliga a envolver todo y estira la tarjeta a lo alto
   (Marc, 2026-08-30: «absurdamente grande»). */
@media (max-width: 700px) {
    body.wa .wa-bk-row-guest { padding: 14px !important; }
    body.wa .wa-bk-row-guest .wa-bk-card-top {
        flex-direction: column;
        gap: 10px;
    }
    /* El min-width de escritorio es lo que fuerza el desbordamiento. */
    body.wa .wa-bk-row-owner .wa-bk-main,
    .wa-bk-main {
        flex: 1 1 auto;
        min-width: 0;
    }
    body.wa .wa-bk-row-owner .wa-bk-prod { gap: 2px; }
    .wa-bk-meta { gap: 2px 10px; }
    .wa-bk-actions { flex-wrap: wrap; gap: var(--wag-space-8); }
    .wa-bkmine-summary { margin-top: 6px; }
    .wa-bkmine-sum-body { padding: 9px 10px; }
}

/* Accept form: centred primary action with its own loading/success state. */
body.wa-owner .wa-bk-row-owner .wa-bk-accept-form {
    display: grid;
    gap: var(--wag-space-12);
    width: 100%;
    padding: 16px !important;
    border-radius: 14px !important;
    box-sizing: border-box;
}
body.wa-owner .wa-bk-row-owner .wa-bk-accept-form[hidden] { display: none !important; }
body.wa-owner .wa-bk-row-owner .wa-bk-accept-send {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: center !important;
    min-width: min(100%, 260px) !important;
    min-height: 44px !important;
    margin: 0 auto !important;
    padding: 0 22px !important;
    border-radius: 11px !important;
    border-color: #176b43 !important;
    background: #1a7a4a !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    text-align: center !important;
}
body.wa-owner .wa-bk-row-owner .wa-bk-accept-send.is-loading {
    opacity: .72 !important;
    cursor: wait !important;
}
body.wa-owner .wa-bk-row-owner .wa-bk-accept-form.is-confirmed {
    place-items: center;
    border-color: #9ed0b2 !important;
    background: #edf9f2 !important;
}
body.wa-owner .wa-bk-row-owner .wa-bk-accept-form.is-confirmed label { display: none; }
body.wa-owner .wa-bk-row-owner .wa-bk-accept-send.is-confirmed,
body.wa-owner .wa-bk-row-owner .wa-bk-accept-send.is-confirmed:hover,
body.wa-owner .wa-bk-row-owner .wa-bk-accept-send.is-confirmed:focus,
body.wa-owner .wa-bk-row-owner .wa-bk-accept-send.is-confirmed:active {
    border-color: #208455 !important;
    background: #208455 !important;
    color: #fff !important;
    opacity: 1 !important;
}

/* Dark mode parity. */
html[data-theme="dark"] body.wa .wa-admin-trow.wa-bk-row-owner,
html[data-theme="dark"] body.wa-owner .wa-bk-row-owner[data-wa-card] {
    background: var(--wag-type-admin-row-dark-bg, var(--wag-style-admin-row-dark-bg)) !important;
    border-color: var(--wag-type-admin-row-dark-line, var(--wag-style-admin-row-dark-line)) !important;
    box-shadow: var(--wag-shadow-15) !important;
}
html[data-theme="dark"] body.wa .wa-bk-row-owner .wa-bk-prod a,
html[data-theme="dark"] body.wa-owner .wa-bk-row-business [data-wa-header] a,
html[data-theme="dark"] body.wa-owner .wa-bk-row-business [data-wa-guest] strong { color: #eef2f5 !important; }
html[data-theme="dark"] body.wa .wa-bk-row-owner .wa-bk-meta,
html[data-theme="dark"] body.wa .wa-bk-row-owner .wa-bk-prod-owner { color: #9cabb8 !important; }
html[data-theme="dark"] body.wa-owner .wa-bk-row-business [data-wa-guest],
html[data-theme="dark"] body.wa-owner .wa-bk-row-owner [data-bk-actions],
html[data-theme="dark"] body.wa-owner .wa-bk-row-business [data-wa-note] {
    background: #14191f !important;
    border-color: #2a313a !important;
}
html[data-theme="dark"] body.wa-owner .wa-bk-owner-documents,
html[data-theme="dark"] body.wa .wa-bkmine-documents {
    background: #141b21 !important;
    border-color: #2c3b47 !important;
}
html[data-theme="dark"] body.wa-owner .wa-bk-owner-documents .wa-payment-document-link,
html[data-theme="dark"] body.wa .wa-bkmine-documents .wa-payment-document-link {
    background: #202831 !important;
    border-color: #394754 !important;
    color: #dce7ef !important;
}
html[data-theme="dark"] body.wa .wa-bk-row-owner .wa-bk-contact > summary {
    background: #15251c !important;
    border-color: #2a513a !important;
    color: #76d49a !important;
}
html[data-theme="dark"] body.wa .wa-bk-contact-name { color: #b8c9bf; }
html[data-theme="dark"] body.wa-owner .wa-bk-row-owner .wa-bk-accept-form.is-confirmed {
    background: #16281e !important;
    border-color: #2e6546 !important;
}

@media (max-width: 820px) {
    body.wa-owner .wa-pay-accounts-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    body.wa .wa-bk-row-guest { padding: 16px !important; }
    body.wa .wa-bk-row-guest .wa-bk-card-top { flex-direction: column; gap: 13px; }
    body.wa .wa-bk-row-guest .wa-bk-actions { width: 100%; }
    body.wa .wa-bk-row-owner .wa-bk-actions button,
    body.wa .wa-bk-row-owner .wa-bk-actions a,
    body.wa-owner .wa-bk-row-owner [data-bk-actions] button,
    body.wa-owner .wa-bk-row-owner [data-bk-actions] a {
        flex: 1 1 145px !important;
        white-space: normal !important;
    }
    body.wa .wa-bk-row-owner .wa-bk-actions .wa-claim-pill,
    body.wa-owner .wa-bk-row-owner [data-bk-actions] .wa-claim-pill {
        flex: 1 1 100% !important;
    }
    body.wa-owner .wa-bk-owner-documents-label,
    body.wa .wa-bkmine-documents-label { flex-basis: 100%; }
    body.wa .wa-bk-row-owner .wa-bk-contact > summary { width: 100%; }
    body.wa-owner .wa-pay-brand { min-width: 76px; }
}

/* ── Aviso "añade tu primer producto" (Marc, 2026-08-26) ──────────────────
   Reutiliza .wa-modal / .wa-modal-box, solo cambia lo propio del aviso.
   Ver inc/owners/product-nudge.php. */
.wa-owner-nudge-box { width: min(600px, 94vw); text-align: left; }

.wa-owner-nudge-kicker {
    margin: 0 0 8px;
    font-size: var(--wag-text-11);
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #2e7d32;
}
html[data-theme="dark"] .wa-owner-nudge-kicker { color: #7fc784; }

.wa-owner-nudge-box .wa-modal-title { font-size: 26px; letter-spacing: -0.4px; }
.wa-owner-nudge-box .wa-modal-sub { margin-bottom: 22px; line-height: 1.5; }

.wa-owner-nudge-res {
    border: 1px solid #e8e8e8;
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 12px;
    background: #fafafa;
}
html[data-theme="dark"] .wa-owner-nudge-res { background: #222; border-color: #333; }

.wa-owner-nudge-res-name {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
    color: #111;
}
html[data-theme="dark"] .wa-owner-nudge-res-name { color: #f0f0f0; }

.wa-owner-nudge-actions { display: flex; flex-wrap: wrap; gap: var(--wag-space-8); }
.wa-owner-nudge-btn { font-size: var(--wag-text-13); padding: 9px 16px; }

.wa-owner-nudge-help {
    margin: 18px 0 0;
    font-size: var(--wag-text-13);
    line-height: 1.5;
    color: #777;
}

/* De-Astra: el tema padre pinta CUALQUIER <button> con su fondo azul en hover
   y focus. Se ancla al ID (#wa-owner-nudge = 1,0,0) para ganar limpiamente sin
   !important, y se declaran los cuatro estados — Astra los define por separado
   y basta dejarse uno para que reaparezca el azul. */
#wa-owner-nudge .wa-owner-nudge-later,
#wa-owner-nudge .wa-owner-nudge-later:hover,
#wa-owner-nudge .wa-owner-nudge-later:focus,
#wa-owner-nudge .wa-owner-nudge-later:active {
    display: block;
    margin: 18px auto 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: var(--wag-shadow-14);
    outline: none;
    padding: 6px 10px;
    font-size: var(--wag-text-13);
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: underline;
    cursor: pointer;
    color: #999;
}
#wa-owner-nudge .wa-owner-nudge-later:hover,
#wa-owner-nudge .wa-owner-nudge-later:focus { color: #555; }
#wa-owner-nudge .wa-owner-nudge-later:focus-visible {
    outline: 2px solid #2e7d32;
    outline-offset: 2px;
    border-radius: 6px;
}
html[data-theme="dark"] #wa-owner-nudge .wa-owner-nudge-later { color: #888; }
html[data-theme="dark"] #wa-owner-nudge .wa-owner-nudge-later:hover,
html[data-theme="dark"] #wa-owner-nudge .wa-owner-nudge-later:focus { color: #ccc; }

/* Botones de accion: hover propio y explicito. Mismo motivo de anclaje al ID —
   el hover generico .wa .wa-owner-btn:hover no llegaba a aplicarse aqui. */
#wa-owner-nudge .wa-owner-nudge-btn {
    background: #1a2a3a;
    color: #fff;
    border: 1px solid transparent;
    text-decoration: none;
    transition: background .15s ease, transform .15s ease;
}
#wa-owner-nudge .wa-owner-nudge-btn:hover,
#wa-owner-nudge .wa-owner-nudge-btn:focus {
    background: #2e7d32;
    color: #fff;
    text-decoration: none;
}
#wa-owner-nudge .wa-owner-nudge-btn:active { transform: translateY(1px); }
#wa-owner-nudge .wa-owner-nudge-btn:focus-visible {
    outline: 2px solid #2e7d32;
    outline-offset: 2px;
}

/* Boton de cerrar: circulo con area de clic real (36px), no un simbolo suelto.
   Clase PROPIA a proposito, no .wa-modal-x: el neutralizador global de Astra
   (mas arriba en este fichero) fuerza `background: none !important` y
   `border: 0 !important` sobre CUALQUIER .wa-modal-x, asi que con esa clase el
   circulo no puede existir. Ese neutralizador tambien apunta a
   button[aria-label^="Close"], que solo casa en ingles — de ahi que el hover
   NO dependa del fondo: se resuelve con borde e icono, y asi se ve igual en
   /es/ que en ingles. */
#wa-owner-nudge .wa-owner-nudge-x,
#wa-owner-nudge .wa-owner-nudge-x:hover,
#wa-owner-nudge .wa-owner-nudge-x:focus,
#wa-owner-nudge .wa-owner-nudge-x:active {
    position: absolute;
    top: 14px;
    right: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 50%;
    box-shadow: var(--wag-shadow-14);
    outline: none;
    background: transparent;
    font-size: 0;
    line-height: 1;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease;
}
#wa-owner-nudge .wa-owner-nudge-x {
    border: 1px solid #dcdcdc;
    color: #777;
}
#wa-owner-nudge .wa-owner-nudge-x:hover,
#wa-owner-nudge .wa-owner-nudge-x:focus {
    border: 1px solid #111;
    color: #111;
}
#wa-owner-nudge .wa-owner-nudge-x:focus-visible {
    outline: 2px solid #2e7d32;
    outline-offset: 2px;
}
#wa-owner-nudge .wa-owner-nudge-x svg { width: 15px; height: 15px; display: block; }

html[data-theme="dark"] #wa-owner-nudge .wa-owner-nudge-x { border-color: #3f3f3f; color: #999; }
html[data-theme="dark"] #wa-owner-nudge .wa-owner-nudge-x:hover,
html[data-theme="dark"] #wa-owner-nudge .wa-owner-nudge-x:focus { border-color: #eee; color: #fff; }

@media (max-width: 600px) {
    .wa-owner-nudge-box { padding: 30px 22px; }
    .wa-owner-nudge-box .wa-modal-title { font-size: 21px; }
    .wa-owner-nudge-actions { flex-direction: column; }
    .wa-owner-nudge-btn { width: 100%; text-align: center; }
}

/* ── Vista previa de borradores (inc/owners/draft-preview.php) ───────────── */
.wa-preview-bar {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 99998;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 20px;
    background: #1a2a3a;
    color: #eaf0f6;
    font-size: 13.5px;
    line-height: 1.45;
    text-align: center;
    box-shadow: 0 -6px 24px rgba(0,0,0,.18);
}
.wa-preview-bar strong { color: #fff; margin-right: 4px; }
.wa-preview-bar-dot {
    flex: 0 0 auto;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #f0b429;
    box-shadow: 0 0 0 3px rgba(240,180,41,.22);
}
@media (max-width: 600px) {
    .wa-preview-bar { font-size: 12.5px; padding: 10px 14px; text-align: left; }
}

/* Boton de copiar en la cola del Control Center. Los cuatro estados
   declarados: es un <button> suelto y Astra le pinta su fondo azul si no. */
.wa-admin-trow .wa-preview-copy,
.wa-admin-trow .wa-preview-copy:hover,
.wa-admin-trow .wa-preview-copy:focus,
.wa-admin-trow .wa-preview-copy:active {
    padding: 6px 12px;
    border: 1px solid #cfd8e0;
    border-radius: var(--wag-radius-8);
    background: var(--wag-surface);
    color: #3a566f;
    font-size: var(--wag-text-12);
    font-weight: 700;
    line-height: 1.2;
    box-shadow: var(--wag-shadow-14);
    outline: none;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .15s, color .15s;
}
.wa-admin-trow .wa-preview-copy:hover,
.wa-admin-trow .wa-preview-copy:focus { border-color: #3a566f; color: #1a2a3a; }
.wa-admin-trow .wa-preview-copy.is-copied { border-color: var(--wag-accent); color: var(--wag-accent); }

/* ── Encuadre del hero en el panel de hotspots ─────────────────────────────
   Los deslizadores replican el patron de .wa-social, que es el unico del tema
   con el pulgar pintado a mano. Hace falta: Astra deja input[type=range] sin
   apariencia nativa y el pulgar se vuelve invisible — que es justo lo que veia
   Marc. Se declaran pista y pulgar en los dos motores (WebKit y Gecko). */
.wa-hs-frame { display: flex; flex-direction: column; gap: 6px; min-width: 250px; }

.wa-hs-frame-preview-wrap {
    position: relative;
    width: 100%;
    max-width: 250px;
    aspect-ratio: 2.2 / 1;      /* misma proporcion que el hero de escritorio */
    overflow: hidden;
    border-radius: var(--wag-radius-8);
    background: var(--wag-dark-ink);
    border: 1px solid #d3dbe3;
}
.wa-hs-frame-preview {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transform-origin: 50% 50%;
    transition: transform .1s linear, object-position .1s linear;
}
.wa-hs-frame-preview-empty {
    display: flex; align-items: center; justify-content: center;
    height: 100%; font-size: var(--wag-text-11); color: #98a4b0;
}

.wa-hs-frame-row { display: flex; align-items: center; gap: var(--wag-space-8); }
.wa-hs-frame-axis { width: 14px; font-size: var(--wag-text-12); font-weight: 700; color: #5b6672; text-align: center; }
.wa-hs-frame-val  { width: 42px; font-size: var(--wag-text-11); color: #5b6672; text-align: right; font-variant-numeric: tabular-nums; }

.wa-hs-frame-slider,
.wa-hs-frame-slider:hover,
.wa-hs-frame-slider:focus {
    -webkit-appearance: none; appearance: none;
    flex: 1 1 auto; min-width: 0;
    height: 18px; margin: 0; padding: 0;
    background: transparent;
    border: 0; box-shadow: var(--wag-shadow-14); outline: none;
    cursor: pointer;
    accent-color: auto;   /* neutraliza cualquier accent heredado */
}
.wa-hs-frame-slider::-webkit-slider-runnable-track {
    height: 5px; border-radius: 3px; background: #d3dbe3; border: 0;
}
.wa-hs-frame-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 16px; height: 16px; margin-top: -6px;
    border-radius: 50%; background: #1a1e24; border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(16,20,26,.35);
}
.wa-hs-frame-slider:focus::-webkit-slider-thumb { background: #2f7fa8; }
.wa-hs-frame-slider::-moz-range-track {
    height: 5px; border-radius: 3px; background: #d3dbe3; border: 0;
}
.wa-hs-frame-slider::-moz-range-thumb {
    width: 14px; height: 14px; border-radius: 50%;
    background: #1a1e24; border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(16,20,26,.35);
}

/* Miniatura del panel Inspect: mas grande, como pidio Marc. */
.wa-hs-inspect-preview {
    width: 420px; height: 200px;
    transition: transform .1s linear, object-position .1s linear;
}
@media (max-width: 900px) {
    .wa-hs-inspect-preview { width: 100%; height: auto; aspect-ratio: 2.1 / 1; }
}

html[data-theme="dark"] .wa-hs-frame-slider::-webkit-slider-runnable-track,
html[data-theme="dark"] .wa-hs-frame-slider::-moz-range-track { background: #3a444f; }
html[data-theme="dark"] .wa-hs-frame-slider::-webkit-slider-thumb,
html[data-theme="dark"] .wa-hs-frame-slider::-moz-range-thumb { background: var(--wag-dark-ink); border-color: #1c222a; }

/* ── Control Center · Negocio ───────────────────────────────────────────────
   The old section was one uninterrupted stream of unrelated h3/list pairs.
   Three workspaces give the queues a readable hierarchy without hiding any
   action, and these scoped link states stop Astra's global white hover. */
body.wa-admin .wa-business-admin {
    display: flex;
    flex-direction: column;
    gap: 22px;
    max-width: 1120px;
    margin: 0 auto;
}
body.wa-admin .wa-business-jump {
    position: sticky;
    top: 10px;
    z-index: 20;
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    padding: 8px;
    width: fit-content;
    max-width: 100%;
    border: 1px solid #dfe6ec;
    border-radius: 13px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 10px 28px -22px rgba(20,40,30,.7);
    backdrop-filter: blur(10px);
}
body.wa-admin .wa-business-jump a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 9px;
    color: #526474;
    font-size: 12.5px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
}
body.wa-admin .wa-business-jump a:hover,
body.wa-admin .wa-business-jump a:focus-visible {
    background: #eaf3ee;
    color: #17663f;
    outline: none;
}
body.wa-admin .wa-business-group {
    scroll-margin-top: 76px;
    overflow: hidden;
    border: 1px solid #dde5eb;
    border-radius: 18px;
    background: var(--wag-surface);
    box-shadow: 0 14px 38px -34px rgba(20,40,30,.72);
}
body.wa-admin .wa-business-group.is-attention { border-color: #ead9b5; }
body.wa-admin .wa-business-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    border-bottom: 1px solid #e8edf1;
    background: linear-gradient(135deg, #f8fafb 0%, #f2f6f4 100%);
}
body.wa-admin .wa-business-group.is-attention .wa-business-group-head {
    background: var(--wag-type-business-group-bg, var(--wag-style-business-group-bg));
    border-bottom-color: var(--wag-type-business-group-underline, var(--wag-style-business-group-underline));
}
body.wa-admin .wa-business-group-head h2 {
    margin: 0;
    color: #173421;
    font-size: var(--wag-text-18);
    font-weight: 820;
    letter-spacing: -.2px;
}
body.wa-admin .wa-business-group-head p {
    margin: 4px 0 0;
    color: #6b7a86;
    font-size: var(--wag-text-13);
    line-height: 1.45;
    text-align: left;
}
body.wa-admin .wa-business-group-body { padding: 20px 22px 24px; }
body.wa-admin .wa-business-group-body > .wa-admin-subtitle,
body.wa-admin .wa-business-group-body > * > .wa-admin-subtitle {
    display: flex;
    align-items: center;
    gap: var(--wag-space-8);
    margin: 24px 0 9px;
    color: #526474;
    font-size: 11.5px;
    letter-spacing: .75px;
}
body.wa-admin .wa-business-group-body > .wa-admin-subtitle:first-child { margin-top: 0; }
body.wa-admin .wa-business-group-body > .wa-admin-subtitle::before,
body.wa-admin .wa-business-group-body > * > .wa-admin-subtitle::before {
    content: "";
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 50%;
    background: #7d9b89;
}
body.wa-admin .wa-business-group.is-attention .wa-admin-subtitle::before { background: #d29527; }
body.wa-admin .wa-business-group .wa-profile-empty {
    margin: 0 0 12px;
    padding: 11px 13px;
    border-radius: 10px;
    background: var(--wag-type-profile-empty-bg, var(--wag-style-profile-empty-bg));
    color: var(--wag-type-profile-empty-ink, var(--wag-style-profile-empty-ink));
    font-size: 12.5px;
    text-align: left;
}
body.wa-admin .wa-business-group .wa-admin-tlist,
body.wa-admin .wa-business-group .wa-claim-admin-list { gap: 7px; margin-bottom: 8px; }
body.wa-admin .wa-business-group .wa-admin-trow {
    gap: 9px 12px;
    padding: 11px 13px;
    border-radius: var(--wag-type-admin-row-radius, var(--wag-style-admin-row-radius));
    box-shadow: var(--wag-shadow-14);
}
body.wa-admin .wa-business-group .wa-admin-trow > span:first-child {
    flex: 1 1 260px;
    min-width: 180px;
    color: #203729;
    font-weight: 700;
}
body.wa-admin .wa-business-group .wa-admin-trow > em { color: #7b8792; }
body.wa-admin .wa-business-admin .wa-business-review-link,
body.wa-admin .wa-business-admin .wa-business-review-link:hover,
body.wa-admin .wa-business-admin .wa-business-review-link:focus-visible {
    padding: 6px 11px;
    border: 1px solid var(--wag-type-business-review-line, var(--wag-style-business-review-line)) !important;
    border-radius: var(--wag-radius-8);
    background: var(--wag-type-business-review-bg, var(--wag-style-business-review-bg)) !important;
    color: var(--wag-type-business-review-ink, var(--wag-style-business-review-ink)) !important;
    text-decoration: none;
}
body.wa-admin .wa-business-admin .wa-business-review-link:hover,
body.wa-admin .wa-business-admin .wa-business-review-link:focus-visible {
    border-color: var(--wag-type-business-review-hover-line, var(--wag-style-business-review-hover-line)) !important;
    background: var(--wag-type-business-review-hover-bg, var(--wag-style-business-review-hover-bg)) !important;
}

/* Explicit content-link states: Astra's broad a:hover rule otherwise turns
   these white against a white card. Button-like anchors keep their own rules. */
body.wa-admin .wa-business-admin .wa-admin-trow > span a,
body.wa-admin .wa-business-admin .wa-claim-admin-card a:not(.wa-claim-act),
body.wa-admin .wa-business-admin .wa-profile-empty a {
    color: var(--wag-type-claim-act-ink, var(--wag-style-claim-act-ink));
    text-decoration: none;
}
body.wa-admin .wa-business-admin .wa-admin-trow > span a:hover,
body.wa-admin .wa-business-admin .wa-admin-trow > span a:focus-visible,
body.wa-admin .wa-business-admin .wa-claim-admin-card a:not(.wa-claim-act):hover,
body.wa-admin .wa-business-admin .wa-claim-admin-card a:not(.wa-claim-act):focus-visible,
body.wa-admin .wa-business-admin .wa-profile-empty a:hover,
body.wa-admin .wa-business-admin .wa-profile-empty a:focus-visible {
    color: var(--wag-type-claim-act-hover-ink, var(--wag-style-claim-act-hover-ink));
    text-decoration: underline;
    outline: none;
}
body.wa-admin .wa-business-admin .wa-badge--amber { cursor: help; white-space: nowrap; }

/* A single action language for the whole Business workspace. Astra and the
   older modules supplied five different button heights and two unrelated
   blues; these scoped rules keep the existing JS hooks while making intent
   immediately readable: green = confirm, neutral = inspect, red = destructive. */
body.wa-admin .wa-business-admin :where(
    .wa-business-review-link,
    .wa-preview-copy,
    .wa-removal-act,
    .wa-owner-revoke,
    .wa-owner-welcome-send,
    .wa-wahs-btn,
    .wa-oh-link,
    .wa-oh-unlink,
    #wa-man-assign-btn,
    .wa-feat-add,
    .wa-feat-remove,
    #wa-pay-fee-save,
    [data-pay-connected-disconnect]
) {
    display: inline-flex !important;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 0;
    min-height: 38px;
    height: 36px;
    margin: 0;
    padding: 0 13px !important;
    border: 1px solid var(--wag-type-owner-revoke-line, var(--wag-style-owner-revoke-line)) !important;
    border-radius: var(--wag-type-owner-revoke-radius, var(--wag-style-owner-revoke-radius)) !important;
    background: var(--wag-type-owner-revoke-bg, var(--wag-style-owner-revoke-bg)) !important;
    box-shadow: var(--wag-shadow-15) !important;
    color: var(--wag-type-owner-revoke-ink, var(--wag-style-owner-revoke-ink)) !important;
    font-size: 12.5px !important;
    font-weight: 750 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap;
    cursor: pointer;
}
body.wa-admin .wa-business-admin :is(
    .wa-claim-approve,
    .wa-owner-welcome-send,
    .wa-oh-link,
    .wa-feat-add,
    #wa-reminder-send,
    #wa-pay-fee-save
) {
    border-color: #1f7a4d !important;
    background: #fff !important;
    color: #1f7a4d !important;
}
body.wa-admin .wa-business-admin :is(
    .wa-claim-reject,
    .wa-owner-revoke,
    .wa-oh-unlink,
    .wa-feat-remove,
    [data-pay-connected-disconnect]
) {
    border-color: #e5c3bc !important;
    background: #fff8f6 !important;
    color: #a33d2a !important;
}
body.wa-admin .wa-business-admin :is(
    .wa-business-review-link,
    .wa-preview-copy,
    #wa-reminder-examples-save,
    #wa-reminder-preview,
    #wa-reminder-test-send
):hover,
body.wa-admin .wa-business-admin :is(
    .wa-business-review-link,
    .wa-preview-copy,
    #wa-reminder-examples-save,
    #wa-reminder-preview,
    #wa-reminder-test-send
):focus-visible {
    border-color: #7f98a7 !important;
    background: #f1f5f7 !important;
    color: #263f4d !important;
}
body.wa-admin .wa-business-admin :is(
    .wa-claim-approve,
    .wa-owner-welcome-send,
    .wa-oh-link,
    .wa-feat-add,
    #wa-reminder-send,
    #wa-pay-fee-save
):hover,
body.wa-admin .wa-business-admin :is(
    .wa-claim-approve,
    .wa-owner-welcome-send,
    .wa-oh-link,
    .wa-feat-add,
    #wa-reminder-send,
    #wa-pay-fee-save
):focus-visible {
    border-color: #17643e !important;
    background: #f1faf5 !important;
    color: #17643e !important;
}
body.wa-admin .wa-business-admin :is(
    .wa-claim-reject,
    .wa-owner-revoke,
    .wa-oh-unlink,
    .wa-feat-remove,
    [data-pay-connected-disconnect]
):hover,
body.wa-admin .wa-business-admin :is(
    .wa-claim-reject,
    .wa-owner-revoke,
    .wa-oh-unlink,
    .wa-feat-remove,
    [data-pay-connected-disconnect]
):focus-visible {
    border-color: #b3422b !important;
    background: #fbeae6 !important;
    color: #8f301e !important;
}
body.wa-admin .wa-business-admin :is(button, a):focus-visible {
    outline: 3px solid rgba(31,122,77,.2);
    outline-offset: 2px;
}
body.wa-admin .wa-business-admin button:disabled {
    opacity: .48;
    cursor: not-allowed;
}
body.wa-admin .wa-business-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
    margin-left: auto;
}
body.wa-admin .wa-business-admin #wa-reminder-examples-save { align-self: flex-start; }
body.wa-admin .wa-business-admin .wa-feat-form { align-items: center; }

body.wa-admin .wa-business-all-clear {
    display: flex;
    align-items: center;
    gap: var(--wag-space-12);
    padding: 14px 16px;
    border: 1px solid #cfe5d8;
    border-radius: var(--wag-radius-12);
    background: #f1f8f4;
    color: #245f3f;
}
body.wa-admin .wa-business-all-clear > span {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 50%;
    background: #d8eee1;
    font-size: 15px;
    font-weight: 900;
}
body.wa-admin .wa-business-all-clear strong { display: block; font-size: 13.5px; }
body.wa-admin .wa-business-all-clear p { margin: 2px 0 0; color: #638073; font-size: 12.5px; }

body.wa-admin .wa-business-tools {
    display: grid;
    gap: var(--wag-space-8);
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e7ecef;
}
body.wa-admin .wa-business-tool {
    overflow: hidden;
    border: 1px solid #dfe6eb;
    border-radius: 11px;
    background: #fbfcfc;
}
body.wa-admin .wa-business-tool summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 46px;
    padding: 10px 14px;
    color: #31483a;
    font-size: var(--wag-text-13);
    font-weight: 760;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
body.wa-admin .wa-business-tool summary::-webkit-details-marker { display: none; }
body.wa-admin .wa-business-tool summary::after {
    content: "+";
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 7px;
    background: #edf2ef;
    color: #527060;
    font-size: var(--wag-text-18);
    font-weight: 500;
    line-height: 1;
}
body.wa-admin .wa-business-tool summary:hover,
body.wa-admin .wa-business-tool summary:focus-visible {
    background: #f1f6f3;
    color: #17663f;
    outline: none;
}
body.wa-admin .wa-business-tool[open] summary { background: #f1f6f3; }
body.wa-admin .wa-business-tool[open] summary::after { content: "−"; }
body.wa-admin .wa-business-tool-body {
    padding: 15px;
    border-top: 1px solid #dfe6eb;
    background: var(--wag-surface);
}
body.wa-admin .wa-business-tool-body > .wa-admin-subtitle:first-child,
body.wa-admin .wa-business-tool-body > .wa-owner-reminder-admin > .wa-admin-subtitle:first-child,
body.wa-admin .wa-business-tool-body > .wa-owner-welcome-admin:first-child > div > h3:first-child {
    display: none;
}
body.wa-admin .wa-business-tool-body > :first-child { margin-top: 0; }
body.wa-admin .wa-business-tool-body > :last-child { margin-bottom: 0; }

@media (max-width: 720px) {
    body.wa-admin .wa-business-admin { gap: 15px; }
    body.wa-admin .wa-business-jump { position: static; width: 100%; box-sizing: border-box; }
    body.wa-admin .wa-business-jump a { flex: 1 1 150px; justify-content: center; text-align: center; }
    body.wa-admin .wa-business-group-head { padding: 17px 16px; }
    body.wa-admin .wa-business-group-body { padding: 16px; }
    body.wa-admin .wa-business-group .wa-admin-trow { align-items: flex-start; }
    body.wa-admin .wa-business-row-actions {
        flex: 1 1 100%;
        justify-content: flex-start;
        margin-left: 0;
    }
}

html[data-theme="dark"] body.wa-admin .wa-business-jump,
html[data-theme="dark"] body.wa-admin .wa-business-group { background: #171c22; border-color: #303942; }
html[data-theme="dark"] body.wa-admin .wa-business-group-head,
html[data-theme="dark"] body.wa-admin .wa-business-group.is-attention .wa-business-group-head {
    background: var(--wag-type-business-group-dark-bg, var(--wag-style-business-group-dark-bg));
    border-bottom-color: var(--wag-type-business-group-dark-underline, var(--wag-style-business-group-dark-underline));
}
html[data-theme="dark"] body.wa-admin .wa-business-group-head h2 { color: #e4ece7; }
html[data-theme="dark"] body.wa-admin .wa-business-group-head p,
html[data-theme="dark"] body.wa-admin .wa-business-jump a { color: #9daab5; }
html[data-theme="dark"] body.wa-admin .wa-business-jump a:hover { background: #26362e; color: #8ed0a9; }
html[data-theme="dark"] body.wa-admin .wa-business-group .wa-profile-empty { background: var(--wag-type-profile-empty-dark-bg, var(--wag-style-profile-empty-dark-bg)); color: #9daab5; }
html[data-theme="dark"] body.wa-admin .wa-business-group .wa-admin-trow > span:first-child { color: #dbe6df; }
html[data-theme="dark"] body.wa-admin .wa-business-admin .wa-admin-trow > span a,
html[data-theme="dark"] body.wa-admin .wa-business-admin .wa-claim-admin-card a:not(.wa-claim-act) { color: var(--wag-type-claim-act-dark-ink, var(--wag-style-claim-act-dark-ink)); }
html[data-theme="dark"] body.wa-admin .wa-business-admin .wa-admin-trow > span a:hover,
html[data-theme="dark"] body.wa-admin .wa-business-admin .wa-claim-admin-card a:not(.wa-claim-act):hover { color: var(--wag-type-claim-act-dark-hover-ink, var(--wag-style-claim-act-dark-hover-ink)); }
html[data-theme="dark"] body.wa-admin .wa-business-all-clear {
    border-color: #345544;
    background: #1c2b23;
    color: #a9ddbd;
}
html[data-theme="dark"] body.wa-admin .wa-business-all-clear > span { background: #284535; }
html[data-theme="dark"] body.wa-admin .wa-business-all-clear p { color: #91aa9b; }
html[data-theme="dark"] body.wa-admin .wa-business-tools { border-top-color: #303942; }
html[data-theme="dark"] body.wa-admin .wa-business-tool { border-color: #303942; background: #1b2127; }
html[data-theme="dark"] body.wa-admin .wa-business-tool summary { color: #d8e4dc; }
html[data-theme="dark"] body.wa-admin .wa-business-tool summary::after { background: #29332d; color: #9cc6ad; }
html[data-theme="dark"] body.wa-admin .wa-business-tool summary:hover,
html[data-theme="dark"] body.wa-admin .wa-business-tool summary:focus-visible,
html[data-theme="dark"] body.wa-admin .wa-business-tool[open] summary { background: #232c27; color: #a9ddbd; }
html[data-theme="dark"] body.wa-admin .wa-business-tool-body { border-top-color: #303942; background: #171c22; }
html[data-theme="dark"] body.wa-admin .wa-business-admin :where(
    .wa-business-review-link,
    .wa-preview-copy,
    .wa-wahs-btn,
    #wa-reminder-examples-save,
    #wa-reminder-preview,
    #wa-reminder-test-send
) {
    border-color: var(--wag-type-wahs-btn-dark-line, var(--wag-style-wahs-btn-dark-line)) !important;
    background: var(--wag-type-wahs-btn-dark-bg, var(--wag-style-wahs-btn-dark-bg)) !important;
    color: var(--wag-type-wahs-btn-dark-ink, var(--wag-style-wahs-btn-dark-ink)) !important;
}
html[data-theme="dark"] body.wa-admin .wa-business-admin :is(
    .wa-claim-reject,
    .wa-owner-revoke,
    .wa-oh-unlink,
    .wa-feat-remove,
    [data-pay-connected-disconnect]
) {
    border-color: #70473f !important;
    background: #2a201e !important;
    color: #efa592 !important;
}

/* =============================================================
   HOTSPOT ENVIRONMENT — visual climate, temperature and elevation portrait
   ============================================================= */
body.wa-hotspot-env-open { overflow: hidden; }
.wa-hotspot-env-modal[hidden] { display: none !important; }
.wa-hotspot-env-trigger,
.wa-hotspot-env-trigger:hover,
.wa-hotspot-env-trigger:focus,
.wa-hotspot-env-trigger:active {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 28px; padding: 5px 13px; border: 1px solid var(--wag-type-hotspot-env-trigger-line, var(--wag-style-hotspot-env-trigger-line));
    border-radius: var(--wag-radius-999); background: var(--wag-type-hotspot-env-trigger-bg, var(--wag-style-hotspot-env-trigger-bg)); box-shadow: var(--wag-shadow-14);
    color: var(--wag-type-hotspot-env-trigger-ink, var(--wag-style-hotspot-env-trigger-ink)); font-size: var(--wag-text-12); font-weight: 700; line-height: 1; cursor: pointer;
    backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px);
    transition: background .16s ease, transform .16s ease;
}
.wa .wa-hotspot-env-trigger:hover { background: var(--wag-type-hotspot-env-trigger-hover-bg, var(--wag-style-hotspot-env-trigger-hover-bg)); color: var(--wag-type-hotspot-env-trigger-hover-ink, var(--wag-style-hotspot-env-trigger-hover-ink)); transform: translateY(-1px); }
.wa .wa-hotspot-env-trigger:focus-visible { outline: 2px solid var(--wag-type-hotspot-env-trigger-focus-ring, var(--wag-style-hotspot-env-trigger-focus-ring)); outline-offset: 3px; }
/* Mismo molde que su hermano .wa-loc-map-btn (línea 13911): un gradiente de dos
   paradas, una sombra y nada más. Solo cambia el verde, que aquí es el teal
   oscuro del bloque de entorno. Antes acumulaba un ::before con un brillo
   circular, iconos a 22px con fondo propio, backdrop-filter sobre un fondo
   sólido (donde no hay nada que desenfocar) y una sombra interior — cuatro
   efectos que su gemelo no tiene (Marc, 2026-08-30). */
.wa .wa-hotspot-env-trigger.wa-loc-env-btn,
.wa .wa-hotspot-env-trigger.wa-loc-env-btn:hover,
.wa .wa-hotspot-env-trigger.wa-loc-env-btn:focus,
.wa .wa-hotspot-env-trigger.wa-loc-env-btn:active {
    position: static;
    width: 100%;
    min-height: 42px;
    justify-content: center;
    padding: 10px 16px;
    /* Sin borde: 1px translúcido sobre un gradiente oscuro y esquinas de 12px
       deja un contorno sucio, que es el «pixelado» que se veía. */
    border: 0;
    border-radius: var(--wag-radius-12);
    background: var(--wag-type-environment-bg, var(--wag-style-degradado-entorno-bg));
    box-shadow: var(--wag-type-environment-shadow, var(--wag-style-degradado-entorno-shadow));
    color: var(--wag-type-environment-ink, var(--wag-style-degradado-entorno-ink));
    font-size: var(--wag-text-13);
    font-weight: 800;
    line-height: 1;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: background .18s, transform .18s, box-shadow .18s;
}
/* Solo el icono, sin la cajita de fondo que llevaba detrás (Marc, 2026-08-30). */
.wa .wa-hotspot-env-trigger.wa-loc-env-btn>svg,.wa .wa-hotspot-env-trigger.wa-loc-env-btn>.wa-ico { width:22px; height:22px; flex-basis:22px; padding:0; border-radius:0; background:none; }
.wa .wa-hotspot-env-trigger.wa-loc-env-btn:hover { background:var(--wag-type-environment-hover-bg, var(--wag-style-degradado-entorno-hover-bg)); box-shadow:var(--wag-type-environment-hover-shadow, var(--wag-style-degradado-entorno-hover-shadow)); transform:translateY(-1px); }
.wa .wa-hotspot-env-trigger.wa-loc-env-btn:focus-visible { outline:2px solid var(--wag-type-environment-ring, var(--wag-style-degradado-entorno-ring)); outline-offset:3px; }
@media(max-width:430px){.wa-loc-map-actions{gap:6px}.wa-loc-map-btn,.wa .wa-hotspot-env-trigger.wa-loc-env-btn{padding:9px 11px;font-size:var(--wag-text-12)}}

.wa-hotspot-env-modal { position: fixed; inset: 0; z-index: 100060; display: grid; place-items: center; padding: 26px; opacity: 0; transition: opacity .18s ease; }
.wa-hotspot-env-modal.is-open { opacity: 1; }
.wa-hotspot-env-modal__backdrop { position: absolute; inset: 0; background: var(--wag-type-hotspot-env-modal-backdrop-bg, var(--wag-style-hotspot-env-modal-backdrop-bg)); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
/* Sin borde: el 1px blanco translúcido sobre esquinas de 25px dejaba el mismo
   contorno sucio que los botones (Marc, 2026-08-30). */
.wa-hotspot-env-modal__panel { position: relative; display: flex; flex-direction: column; width: min(940px,100%); max-height: min(780px,calc(100dvh - 52px)); overflow: hidden; border: 0; border-radius: var(--wag-type-hotspot-env-modal-panel-radius, var(--wag-style-hotspot-env-modal-panel-radius)); background: var(--wag-type-hotspot-env-modal-panel-bg, var(--wag-style-hotspot-env-modal-panel-bg)); box-shadow: var(--wag-type-hotspot-env-modal-panel-shadow, var(--wag-style-hotspot-env-modal-panel-shadow)); color: var(--wag-type-hotspot-env-modal-panel-ink, var(--wag-style-hotspot-env-modal-panel-ink)); transform: translateY(9px) scale(.99); transition: transform .18s ease; }
.wa-hotspot-env-modal__panel:focus { outline: none; }
.wa-hotspot-env-modal.is-open .wa-hotspot-env-modal__panel { transform: none; }
.wa-hotspot-env-modal__close,
.wa-hotspot-env-modal__close:hover,
.wa-hotspot-env-modal__close:focus,
.wa-hotspot-env-modal__close:active { position: absolute; z-index: 5; top: 14px; right: 17px; width: 38px; height: 38px; padding: 0; border: 0; background: var(--wag-type-hotspot-env-modal-close-bg, var(--wag-style-hotspot-env-modal-close-bg)); box-shadow: var(--wag-shadow-14); color: var(--wag-type-hotspot-env-modal-close-ink, var(--wag-style-hotspot-env-modal-close-ink)); font: 300 32px/36px Arial,sans-serif; cursor: pointer; }
.wa .wa-hotspot-env-modal__close:hover { color: var(--wag-type-hotspot-env-modal-close-hover-ink, var(--wag-style-hotspot-env-modal-close-hover-ink)); transform: scale(1.08); }
.wa .wa-hotspot-env-modal__close:focus-visible { outline: 2px solid var(--wag-type-hotspot-env-modal-close-focus-ring, var(--wag-style-hotspot-env-modal-close-focus-ring)); outline-offset: 2px; }

/* El hero NO lleva radio propio a propósito: recorta el panel. Dos capas
   redondeadas superpuestas nunca casan al píxel, y como el panel tiene fondo
   claro y el hero es oscuro, asomaba un filo claro en las curvas de arriba
   (Marc, 2026-08-30). Para que el panel pueda recortar de verdad, ningún hijo
   suyo puede usar backdrop-filter — ver .__climate justo debajo. */
.wa-hotspot-env-modal__hero { --env-sky-a:#8bc7cf; --env-sky-b:#3d7778; position: relative; flex:0 0 auto; min-height: 205px; overflow: hidden; padding: 30px 36px; background: linear-gradient(125deg,var(--env-sky-b),var(--env-sky-a)); color: var(--wag-type-hotspot-env-modal-hero-ink, var(--wag-style-hotspot-rating-count-ink)); }
.wa-hotspot-env-modal__hero.has-photo { background-image:linear-gradient(90deg,rgba(8,25,20,.78) 0%,rgba(8,25,20,.43) 52%,rgba(8,25,20,.24) 100%),var(--wa-env-banner); background-size:cover; background-position:center; }
.wa-hotspot-env-modal__hero.has-photo .wa-hotspot-env-scene { display:none; }
.wa-hotspot-env-modal__panel.is-a .wa-hotspot-env-modal__hero { --env-sky-a:#80c7a4; --env-sky-b:#176552; }
.wa-hotspot-env-modal__panel.is-b .wa-hotspot-env-modal__hero { --env-sky-a:#e9bd72; --env-sky-b:#a85f3f; }
.wa-hotspot-env-modal__panel.is-c .wa-hotspot-env-modal__hero { --env-sky-a:#75b8be; --env-sky-b:#316f70; }
.wa-hotspot-env-modal__panel.is-d .wa-hotspot-env-modal__hero { --env-sky-a:#89aabc; --env-sky-b:#495e75; }
.wa-hotspot-env-modal__panel.is-e .wa-hotspot-env-modal__hero { --env-sky-a:#c3dce6; --env-sky-b:#668aa0; }
.wa-hotspot-env-modal__panel.is-m .wa-hotspot-env-modal__hero { --env-sky-a:#4ca8b8; --env-sky-b:#155268; }
/* El ancho reserva la columna de la caja de clima (300px + 12px de margen).
   Sin esa reserva, un titulo largo se metia por debajo de la caja: el h2 pedia
   sus 650px y la caja flotaba encima, a la derecha (Marc, 2026-09-01). */
.wa-hotspot-env-modal__heading { position: relative; z-index: 3; max-width: min(650px, calc(100% - 312px)); }
.wa-hotspot-env-modal__heading>span { display: inline-flex; align-items: center; gap: var(--wag-space-8); margin-bottom: 9px; font-size: 10px; font-weight: 900; letter-spacing: 1.45px; text-transform: uppercase; }
.wa-hotspot-env-modal__heading h2 { margin: 0; color: #fff; font-size: clamp(28px,4vw,42px); line-height: 1.02; letter-spacing: -.9px; text-shadow: 0 2px 18px rgba(0,0,0,.16); }
.wa-hotspot-env-modal__heading.is-long-title h2 { font-size:clamp(25px,3.2vw,34px); line-height:1.04; }
.wa-hotspot-env-modal__heading.is-very-long-title h2 { font-size:clamp(23px,2.8vw,30px); line-height:1.06; }
.wa-hotspot-env-modal__heading p { max-width: 510px; margin: 9px 0 0; color: rgba(255,255,255,.88); font-size: var(--wag-text-13); line-height: 1.45; }
/* Sin backdrop-filter: promovía la tarjeta a su propia capa y con ello el
   panel dejaba de recortar sus esquinas redondeadas. El fondo sube de .25 a
   .55 para conservar la legibilidad sobre la foto sin el desenfoque. */
/* Esquina inferior derecha del hero, con el mismo margen por los dos lados.
   El max-width no es decorativo: es la mitad del pacto con __heading de arriba
   — si la caja puede crecer, el hueco reservado deja de bastar. */
.wa-hotspot-env-modal__climate { position: absolute; z-index: 4; right: 12px; bottom: 12px; display: grid; min-width: 190px; max-width: 300px; padding: 13px 15px; border: 1px solid var(--wag-type-hotspot-env-modal-climate-line, var(--wag-style-hotspot-env-modal-climate-line)); border-radius: var(--wag-type-hotspot-env-modal-climate-radius, var(--wag-style-hotspot-env-modal-climate-radius)); background: var(--wag-type-hotspot-env-modal-climate-bg, var(--wag-style-hotspot-env-modal-climate-bg)); box-shadow: var(--wag-type-hotspot-env-modal-climate-shadow, var(--wag-style-hotspot-env-modal-climate-shadow)); }
.wa-hotspot-env-modal__climate small { color: rgba(255,255,255,.72); font-size: 8.5px; font-weight: 850; letter-spacing: .8px; text-transform: uppercase; }
.wa-hotspot-env-modal__climate strong { margin-top: 2px; color: #fff; font-size: var(--wag-text-16); line-height: 1.2; }
.wa-hotspot-env-modal__climate span { margin-top: 5px; color: rgba(255,255,255,.82); font-size: 10px; font-weight: 750; line-height:1.25; }
.wa-hotspot-env-scene { position: absolute; inset: 0; pointer-events: none; }
.wa-hotspot-env-scene .sun { position: absolute; top: 34px; right: 116px; width: 60px; height: 60px; border-radius: var(--wag-type-sun-radius, var(--wag-style-sun-radius)); background: var(--wag-type-sun-bg, var(--wag-style-sun-bg)); box-shadow: var(--wag-type-sun-shadow, var(--wag-style-sun-shadow)); }
.wa-hotspot-env-scene .cloud { position: absolute; top: 69px; right: 47px; width: 88px; height: 24px; border-radius: var(--wag-radius-999); background: var(--wag-type-cloud-bg, var(--wag-style-cloud-bg)); filter: blur(.2px); }
.wa-hotspot-env-scene .cloud::before,.wa-hotspot-env-scene .cloud::after { content:""; position:absolute; bottom:0; border-radius:50%; background:inherit; }
.wa-hotspot-env-scene .cloud::before { left:13px; width:38px; height:38px; }.wa-hotspot-env-scene .cloud::after { right:12px; width:29px; height:29px; }
.wa-hotspot-env-scene .ridge { position: absolute; right: -3%; bottom: -65px; width: 63%; height: 200px; background: var(--wag-type-ridge-bg, var(--wag-style-ridge-bg)); clip-path: polygon(0 100%,17% 48%,27% 66%,47% 20%,62% 63%,77% 38%,100% 100%); }
.wa-hotspot-env-scene .ridge--front { right: -9%; bottom: -82px; width: 80%; height: 205px; background: rgba(12,48,42,.34); clip-path: polygon(0 100%,16% 67%,31% 78%,49% 34%,64% 72%,81% 47%,100% 100%); }

.wa-hotspot-env-modal__body { flex: 1 1 auto; overflow: auto; padding: 20px 24px 22px; }
.wa-hotspot-env-modal__body { scrollbar-width:none; -ms-overflow-style:none; }
.wa-hotspot-env-modal__body::-webkit-scrollbar { display:none; width:0; height:0; }
.wa-hotspot-env-highlights { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.wa-env-highlight { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 11px; min-height: 86px; padding: 12px 13px; border: 1px solid var(--wag-type-env-highlight-line, var(--wag-style-env-highlight-line)); border-radius: var(--wag-type-env-highlight-radius, var(--wag-style-env-highlight-radius)); background: var(--wag-surface); }
.wa-env-highlight>i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: #edf5f0; color: #377055; font-style: normal; }
.wa-env-highlight>div { display: grid; min-width: 0; gap: 1px; }
.wa-env-highlight small { color: #819087; font-size: 8.5px; font-weight: 850; line-height: 1.15; letter-spacing: .55px; white-space: normal; overflow-wrap: anywhere; text-transform: uppercase; }
.wa-env-highlight strong { overflow: hidden; color: #213b2d; font-size: var(--wag-text-16); line-height: 1.12; text-overflow: ellipsis; }
.wa-env-highlight span { margin-top: 2px; color: #7c8982; font-size: 9.5px; line-height: 1.25; }
.wa-env-highlight--temperature>i { background: #fff0e9; color: #d36c47; }
.wa-env-highlight--elevation>i { background: #eef1f8; color: #5f7390; }
.wa-env-highlight--climate>i { background: #eaf5f5; color: #327b7c; }

.wa-env-temperature-card,.wa-env-elevation-card { margin-top: 11px; border: 1px solid #e0e6e1; border-radius: 17px; background: var(--wag-surface); }
.wa-env-temperature-card { padding: 15px 18px 8px; }
.wa-env-temperature-card>header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.wa-env-temperature-card>header>div:first-child { display: flex; align-items: center; gap: 10px; }
.wa-env-temperature-card>header>div:first-child>span,.wa-env-elevation-card__copy>span { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: var(--wag-radius-12); background: #fff0e9; color: #d36c47; }
.wa-env-temperature-card h3,.wa-env-elevation-card h3 { margin: 0; color: #244132; font-size: 15px; line-height: 1.2; }
.wa-env-temperature-card p,.wa-env-elevation-card p { margin: 3px 0 0; color: #829087; font-size: 10px; }
.wa-env-temperature-card__extremes { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; justify-content: flex-end; }
.wa-env-temperature-card__extremes span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: var(--wag-radius-999); background: #f4f6f5; color: #607068; font-size: 9px; font-weight: 750; }
.wa-env-temperature-card__extremes i { width: 7px; height: 7px; border-radius: 50%; background: var(--wa-temp-colour,#67afd0); }
.wa-env-chart { display: block; width: 100%; height: 158px; margin-top: 3px; overflow: visible; }
.wa-env-chart__area { fill: url(#wa-env-temp-fill); opacity: .12; }
.wa-env-chart__line { fill: none; stroke: url(#wa-env-temp-fill); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.wa-env-chart__grid { stroke: #e7ece9; stroke-width: 1; stroke-dasharray: 3 4; }
.wa-env-chart__grid.is-zero { stroke: #bdc9c2; stroke-dasharray: none; }
.wa-env-chart__axis { stroke: #b8c4bd; stroke-width: 1; }
.wa-env-chart circle { fill: #fff; stroke: var(--wa-temp-colour,#d8825c); stroke-width: 2; }
.wa-env-chart circle.is-coldest,.wa-env-chart circle.is-warmest { stroke-width: 3; }
.wa-env-chart text { fill: #87948d; font: 700 8px system-ui,sans-serif; text-transform: uppercase; }
.wa-env-chart text.wa-env-chart__axis-label { fill: var(--wag-type-env-chart-axis-label-fill, var(--wag-style-env-chart-axis-label-fill)); font-size: 8px; text-transform: none; }
.wa-env-temperature-legend { display:grid; grid-template-columns:auto minmax(180px,260px); align-items:center; justify-content:end; gap:10px; margin:7px 4px 7px; }
.wa-env-temperature-legend>span { color:#7d8a83; font-size:8px; font-weight:800; letter-spacing:.35px; text-transform:uppercase; }
.wa-env-temperature-legend>div { min-width:0; }
.wa-env-temperature-legend i { display:block; height:5px; border-radius:var(--wag-radius-999); background:linear-gradient(90deg,#26467d 0%,#2d64a5 12.5%,#3989c7 25%,#58b1dd 37.5%,#5fc7d2 50%,#5bae87 62.5%,#dabb50 68.75%,#ee9141 75%,#dd4e3b 87.5%,#a4312e 100%); }
.wa-env-temperature-legend small { display:flex; justify-content:space-between; margin-top:3px; color:#87948d; font-size:7px; line-height:1; }
.wa-env-temperature-legend b { font-weight:700; }

.wa-env-elevation-card { display: grid; grid-template-columns: minmax(220px,.72fr) minmax(0,1.28fr); min-height: 135px; overflow: hidden; }
.wa-env-elevation-card__copy { display: flex; align-items: center; gap: 11px; padding: 18px; }
.wa-env-elevation-card__copy>span { background: #eef1f8; color: #5f7390; }
.wa-env-elevation-card__copy strong { display: block; margin-top: 4px; color: #263f33; font-size: 22px; line-height: 1; }
.wa-env-elevation-visual { position: relative; min-height: 135px; overflow: hidden; background: var(--wag-type-env-elevation-visual-bg, var(--wag-style-env-elevation-visual-bg)); }
.wa-env-altitude-scale { display:flex; flex-direction:column; justify-content:center; padding:20px 28px 17px; }
.wa-env-altitude-scale>small { color:#738179; font-size:9px; font-weight:850; letter-spacing:.55px; text-transform:uppercase; }
.wa-env-altitude-scale__track { position:relative; height:12px; margin:28px 0 7px; border-radius:var(--wag-radius-999); background:linear-gradient(90deg,#bad7bf 0 var(--wa-lowland),#8fb9a2 var(--wa-lowland) var(--wa-upland),#75968e var(--wa-upland) var(--wa-montane),#647789 var(--wa-montane) 100%); box-shadow:var(--wag-type-env-altitude-scale-track-shadow, var(--wag-style-env-altitude-scale-track-shadow)); }
.wa-env-altitude-scale__track>span { position:absolute; inset:0 auto 0 0; width:var(--wa-elevation); border-radius:inherit; background:rgba(255,255,255,.24); }
.wa-env-altitude-scale__track>i { position:absolute; left:var(--wa-elevation); top:50%; width:15px; height:15px; border:3px solid #fff; border-radius:50%; background:#d9614b; box-shadow:0 2px 7px rgba(34,50,42,.3); transform:translate(-50%,-50%); }
.wa-env-altitude-scale__track>i b { position:absolute; left:50%; bottom:18px; padding:4px 7px; border-radius:7px; background:#253e32; color:#fff; font:800 9px/1 system-ui,sans-serif; white-space:nowrap; transform:translateX(-50%); }
.wa-env-altitude-scale__track>i b::after { content:""; position:absolute; left:50%; top:100%; border:4px solid transparent; border-top-color:#253e32; transform:translateX(-50%); }
.wa-env-altitude-scale__ticks { position:relative; height:14px; color:var(--wag-type-env-altitude-scale-ticks-ink, var(--wag-style-env-altitude-scale-ticks-ink)); font-size:8px; font-weight:700; }
.wa-env-altitude-scale__ticks span { position:absolute; transform:translateX(-50%); }.wa-env-altitude-scale__ticks span:first-child{transform:none}.wa-env-altitude-scale__ticks span:last-of-type{transform:translateX(-100%)}
.wa-env-altitude-scale__ticks em { position:absolute; right:-10px; font-style:normal; }
.wa-env-altitude-scale>p { margin:5px 0 0; color:#5f7067; font-size:10px; font-weight:750; }
.wa-env-elevation-visual.is-marine { background: linear-gradient(90deg,rgba(6,48,79,.14),rgba(8,83,122,.03)),url('../../img/environment-marine-underwater.png?v=20260831-2') center 62%/cover no-repeat; }
.wa-env-elevation-visual.is-marine::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(220,247,255,.08),transparent 55%,rgba(4,39,68,.14)); pointer-events:none; }

.wa-hotspot-env-modal__panel>footer { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: var(--wag-space-16); padding: 10px 24px; border-top: 1px solid #e1e6e2; background: var(--wag-surface); }
.wa-hotspot-env-modal__panel>footer span { color: #829087; font-size: 9.5px; }

@media(max-width:700px){
    .wa-hotspot-env-modal{padding:0;place-items:stretch}.wa-hotspot-env-modal__panel{width:100%;max-height:100dvh;border:0;border-radius:0}
    .wa-hotspot-env-modal__hero{min-height:0;padding:24px 20px 18px}.wa-hotspot-env-modal__heading{max-width:none;padding-right:35px}.wa-hotspot-env-modal__heading h2,.wa-hotspot-env-modal__heading.is-long-title h2,.wa-hotspot-env-modal__heading.is-very-long-title h2{font-size:29px;line-height:1.04}.wa-hotspot-env-modal__heading p{font-size:var(--wag-text-11);max-width:100%}
    .wa-hotspot-env-modal__climate{position:relative;right:auto;bottom:auto;width:100%;min-width:0;max-width:none;margin-top:14px;padding:10px 12px}.wa-hotspot-env-scene .sun{right:52px;top:51px;width:50px;height:50px}.wa-hotspot-env-scene .ridge{width:90%}
    .wa-hotspot-env-modal__body{padding:13px 12px 18px}.wa-hotspot-env-highlights{grid-template-columns:1fr;gap:7px}.wa-env-highlight{min-height:67px;padding:9px 11px}.wa-env-highlight>i{width:38px;height:38px}
    .wa-env-temperature-card{padding:13px 10px 5px}.wa-env-temperature-card>header{display:block}.wa-env-temperature-card__extremes{justify-content:flex-start;margin-top:9px}.wa-env-chart{height:132px}.wa-env-temperature-legend{grid-template-columns:1fr;justify-content:stretch;gap:var(--wag-space-4);margin:-4px 8px 8px}.wa-env-temperature-legend>span{font-size:7px}
    .wa-env-elevation-card{grid-template-columns:1fr;min-height:0}.wa-env-elevation-card__copy{padding:14px}.wa-env-elevation-visual{min-height:110px}
    .wa-hotspot-env-modal__panel>footer{padding:9px 13px calc(9px + env(safe-area-inset-bottom))}.wa-hotspot-env-modal__panel>footer span{max-width:65%}
}
@media(prefers-reduced-motion:reduce){.wa-hotspot-env-modal,.wa-hotspot-env-modal__panel,.wa-hotspot-env-trigger{transition:none}}
html[data-theme="dark"] .wa-hotspot-env-modal__panel { background:var(--wag-type-hotspot-env-modal-panel-dark-bg, var(--wag-style-hotspot-env-modal-panel-dark-bg));color:var(--wag-type-hotspot-env-modal-panel-dark-ink, var(--wag-style-hotspot-env-modal-panel-dark-ink)); }
html[data-theme="dark"] .wa-hotspot-env-modal__body { background:var(--wag-type-hotspot-env-modal-body-dark-bg, var(--wag-style-hotspot-env-modal-body-dark-bg)); }
html[data-theme="dark"] .wa-env-highlight,html[data-theme="dark"] .wa-env-temperature-card,html[data-theme="dark"] .wa-env-elevation-card,html[data-theme="dark"] .wa-hotspot-env-modal__panel>footer { border-color:#303b35;background:#1e2622; }
html[data-theme="dark"] .wa-env-highlight strong,html[data-theme="dark"] .wa-env-temperature-card h3,html[data-theme="dark"] .wa-env-elevation-card h3,html[data-theme="dark"] .wa-env-elevation-card__copy strong { color:#dce9e1; }
html[data-theme="dark"] .wa-env-highlight span,html[data-theme="dark"] .wa-env-highlight small,html[data-theme="dark"] .wa-env-temperature-card p,html[data-theme="dark"] .wa-env-elevation-card p,html[data-theme="dark"] .wa-hotspot-env-modal__panel>footer span,
html[data-theme="dark"] .wa-env-temperature-legend>span,html[data-theme="dark"] .wa-env-temperature-legend small{ color:#94a198; }
html[data-theme="dark"] .wa-env-chart circle { fill:#1e2622; }

/* Season Intelligence v3 — compact shadow-lab controls. */
.wa-season-v3{border:1px solid #dce8df!important;background:linear-gradient(145deg,#fff 0%,#f5faf7 100%)!important;box-shadow:0 18px 42px rgba(24,62,42,.07)!important}
.wa-season-v3__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wag-space-24)}.wa-season-v3__head h3{margin:4px 0 6px}.wa-season-v3__head p{max-width:900px;margin:0;color:#637269;font-size:var(--wag-text-13);line-height:1.55}
.wa-season-v3__controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;padding:14px;border:1px solid #e0e9e3;border-radius:14px;background:var(--wag-surface)}.wa-season-v3__controls select{min-width:210px;height:42px;border:1px solid #d8e1dc;border-radius:10px;background:var(--wag-surface);color:#30443a}.wa-season-v3__controls>span{flex:1;min-width:260px;color:#748078;font-size:var(--wag-text-11);line-height:1.45}
.wa .wa-season-clear-calibration,.wa .wa-season-clear-country{border-color:#d8c4c1!important;background:#fff!important;color:#93483f!important}.wa .wa-season-clear-calibration:hover,.wa .wa-season-clear-country:hover{border-color:#b95d52!important;background:#fff5f3!important;color:#7f352d!important}.wa .wa-season-clear-calibration:disabled,.wa .wa-season-clear-country:disabled{opacity:.42!important;cursor:not-allowed!important}
.wa-season-v3__log{margin-top:14px;border-top:1px solid #e2e9e5;padding-top:12px}.wa-season-v3__log summary{color:#385446;font-size:var(--wag-text-12);font-weight:800;cursor:pointer}.wa-season-v3__log ol{max-height:220px;margin:10px 0 0;padding:0 0 0 22px;overflow:auto;color:#65756c;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;scrollbar-width:none}.wa-season-v3__log ol::-webkit-scrollbar{display:none}
.wa-season-v3__calibration-title{margin:22px 0 2px;color:#20352a;font-size:15px}.wa-season-v3__calibration-intro{margin:0 0 12px;color:#748078;font-size:11.5px}.wa-season-v3__calibration{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wa-season-calibration-card{min-width:0;padding:13px;border:1px solid #dfe8e2;border-radius:13px;background:var(--wag-surface)}.wa-season-calibration-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wa-season-calibration-card header>div{display:grid;min-width:0}.wa-season-calibration-card header strong{overflow:hidden;color:#263c31;font-size:var(--wag-text-13);text-overflow:ellipsis;white-space:nowrap}.wa-season-calibration-card header small{color:#86918a;font-size:10px}.wa-season-calibration-card header>span{flex:0 0 auto;border-radius:var(--wag-radius-999);padding:4px 7px;background:#eef2ef;color:#68756d;font-size:8px;font-weight:900;letter-spacing:.07em}.wa-season-calibration-card.is-pass{border-color:#bfe2cc;background:#f7fcf9}.wa-season-calibration-card.is-pass header>span{background:#dff3e6;color:#237045}.wa-season-calibration-card.is-partial{border-color:#ead7a7}.wa-season-calibration-card.is-partial header>span{background:#fff3d6;color:#8b6415}.wa-season-calibration-card.is-fail,.wa-season-calibration-card.is-insufficient{border-color:#edc9c5}.wa-season-calibration-card.is-fail header>span,.wa-season-calibration-card.is-insufficient header>span{background:#ffebe8;color:#9b4037}.wa-season-calibration-card p{margin:9px 0 0;color:#627068;font-size:10.5px;line-height:1.45}.wa-season-calibration-card .wa-season-calibration-expected{color:#415248}.wa-season-calibration-facts{display:flex;gap:var(--wag-space-16);flex-wrap:wrap;margin-top:10px}.wa-season-calibration-facts span{display:grid;color:#4f6157;font-size:10px}.wa-season-calibration-facts b{color:#88938c;font-size:8px;letter-spacing:.07em;text-transform:uppercase}.wa-season-calibration-card ul{display:grid;gap:3px;margin:10px 0 0;padding:8px 0 0;border-top:1px solid #edf1ee;list-style:none}.wa-season-calibration-card li{color:#69766f;font-size:9.5px}.wa-season-calibration-card li.is-pass{color:#277148}.wa-season-calibration-card li.is-fail{color:#a44b40}
.wa-season-calibration-card.is-repairing{border-color:#cbdceb;background:#f8fbfe}.wa-season-calibration-card.is-repairing header>span{background:#e5f0f8;color:#356b91}.wa-season-calibration-diagnostics{margin-top:10px;padding-top:9px;border-top:1px solid #e8eeea}.wa-season-calibration-diagnostics>summary{color:#486156;font-size:9.5px;font-weight:850;cursor:pointer;list-style:none}.wa-season-calibration-diagnostics>summary::-webkit-details-marker{display:none}.wa-season-calibration-diagnostics>summary::after{content:"+";float:right;color:#809087}.wa-season-calibration-diagnostics[open]>summary::after{content:"−"}.wa-season-calibration-coverage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.wa-season-calibration-coverage span{display:grid;padding:7px;border-radius:var(--wag-radius-8);background:#f2f6f3;color:#53665c;font-size:9px;overflow-wrap:anywhere}.wa-season-calibration-coverage b{color:#89958e;font-size:7.5px;letter-spacing:.06em;text-transform:uppercase}.wa-season-calibration-diagnostics h5{margin:10px 0 0;color:#31483c;font-size:9px}.wa-season-calibration-card .wa-season-diagnostic-list,.wa-season-calibration-card .wa-season-diagnostic-issues{margin-top:5px;padding-top:5px}.wa-season-calibration-card .wa-season-diagnostic-list li{display:grid;grid-template-columns:auto auto;gap:2px 7px}.wa-season-calibration-card .wa-season-diagnostic-list li>span{grid-column:1/-1;color:#738078}.wa-season-calibration-card .wa-season-diagnostic-list code{color:#74867c;font-size:8px}.wa-season-calibration-card .wa-season-diagnostic-list b{color:#43584d;font-size:8px;text-align:right}.wa-season-calibration-card .wa-season-diagnostic-issues li{overflow-wrap:anywhere;color:#9a574c}.wa-season-calibration-diagnostics>small{display:block;margin-top:8px;color:#98a19c;font-size:7.5px;overflow-wrap:anywhere}
@media(max-width:700px){.wa-season-v3__head{display:block}.wa-season-v3__head>.wa-season-status{display:inline-flex;margin-top:10px}.wa-season-v3__controls{align-items:stretch}.wa-season-v3__controls select,.wa-season-v3__controls button{width:100%}.wa-season-v3__controls>span{min-width:0}}
@media(max-width:700px){.wa-season-v3__calibration{grid-template-columns:1fr}}
.wa-season-review{margin-top:22px;padding:18px;border:1px solid #dce7e0;border-radius:var(--wag-radius-16);background:#f9fcfa}.wa-season-review-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:14px}.wa-season-review-head h4{margin:3px 0 4px;color:#20372b;font-size:17px}.wa-season-review-head p{max-width:760px;margin:0;color:#68786f;font-size:11.5px;line-height:1.5}.wa-season-review-head>div:last-child{display:flex;align-items:center;gap:var(--wag-space-8)}.wa-season-review-head select{height:40px;border:1px solid #d4dfd8;border-radius:10px;background:var(--wag-surface);color:#344a3e}.wa-season-review-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--wag-space-12);margin-bottom:10px;color:#52655a;font-size:var(--wag-text-11)}.wa-season-review-summary strong{color:#20392b;font-size:var(--wag-text-13)}.wa-season-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wa-season-review-card{min-width:0;padding:13px;border:1px solid #dde7e1;border-radius:13px;background:var(--wag-surface);box-shadow:0 6px 16px rgba(35,66,49,.035)}.wa-season-review-card.is-approved{border-color:#a9d7bc;background:#f6fcf8}.wa-season-review-card.is-review_required,.wa-season-review-card.is-repair_required{border-color:#ead7a7}.wa-season-review-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.wa-season-review-card header label{display:flex;align-items:flex-start;gap:var(--wag-space-8);min-width:0;cursor:pointer}.wa-season-review-card header input{width:16px;height:16px;margin:1px 0 0;accent-color:#277a4c}.wa-season-review-card header span{display:grid;min-width:0}.wa-season-review-card header strong{overflow:hidden;color:#263d31;font-size:12.5px;text-overflow:ellipsis;white-space:nowrap}.wa-season-review-card header small{color:#89958e;font-size:9px}.wa-season-review-card header em{flex:0 0 auto;border-radius:var(--wag-radius-999);padding:4px 7px;background:#edf2ee;color:#627269;font-size:7.5px;font-style:normal;font-weight:900;letter-spacing:.06em}.wa-season-review-card.is-approved header em{background:#ddf2e5;color:#237046}.wa-season-review-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.wa-season-review-facts span{display:grid;padding:7px;border-radius:var(--wag-radius-8);background:#f3f7f4;color:#405449;font-size:9.5px;overflow-wrap:anywhere}.wa-season-review-facts b{color:#859289;font-size:7px;letter-spacing:.06em;text-transform:uppercase}.wa-season-review-warning{margin:8px 0 0;color:#9a554a;font-size:9px;line-height:1.4}.wa-season-review-card footer{display:flex;align-items:center;gap:var(--wag-space-8);margin-top:10px;padding-top:9px;border-top:1px solid #edf1ee}.wa-season-review-card footer a,.wa-season-review-btn{border:0;background:none;color:#557166;font-size:9.5px;font-weight:750;text-decoration:none;cursor:pointer}.wa-season-review-btn.is-approve{border-radius:var(--wag-radius-8);padding:7px 9px;background:#23794b;color:#fff}.wa-season-review-btn.is-withdraw{color:#9b4b42}.wa-season-review-pages{display:flex;gap:5px;margin-top:13px}.wa-season-review-pages button{width:30px;height:30px;border:1px solid #d8e2dc;border-radius:var(--wag-radius-8);background:var(--wag-surface);color:#50665a;font-size:10px;cursor:pointer}.wa-season-review-pages button.is-active{border-color:#277a4c;background:#277a4c;color:#fff}.wa-season-review-empty{padding:25px;border:1px dashed #ccd9d1;border-radius:var(--wag-radius-12);color:#76857d;font-size:var(--wag-text-11);text-align:center}.wa-season-review-list.is-loading,.wa-season-review [data-season-review-list].is-loading{opacity:.55;pointer-events:none}
/* ── Cabecera de revisión: ordenar y dejar de desbordar ──────────────────────
   Era un flex de dos hijos SIN envolver. El resultado, medido en el panel:
   la columna del título estrangulada a 99px —partiendo «úni-ca-men-te» con
   guiones— y la barra de seis controles saliéndose 79px por la derecha de la
   tarjeta, con «Aprobar seleccionadas» cortado por la mitad.
   La columna de texto recibe una base propia para no volver a colapsar, y la
   barra envuelve en lugar de empujar. */
.wa-season-review-head { flex-wrap: wrap; align-items: flex-start; }
.wa-season-review-head > div:first-child { flex: 1 1 320px; min-width: 250px; }
.wa-season-review-head > div:last-child {
    flex: 1 1 100%;
    flex-wrap: wrap;
    /* Los filtros arrancan a la izquierda; del extremo derecho ya se encarga
       el `margin-left:auto` del grupo de acción. Con `flex-end` la fila de
       filtros flotaba dejando 200px de hueco a su izquierda. */
    justify-content: flex-start;
    min-width: 0;
}
/* `min-width:auto` es el valor inicial de un hijo flex y es lo que impide que
   un campo encoja por debajo de su contenido: sin esto, envolver no basta. */
.wa-season-review-head > div:last-child > * { min-width: 0; }
/* El buscador crece, pero con tope: sin `max-width` se comía la fila entera
   y mandaba cada desplegable a la suya. Con tope, los tres comparten línea en
   escritorio y sólo se separan cuando de verdad no caben. */
.wa-season-review-head .wa-season-review-search { flex: 1 1 240px; max-width: 420px; }
.wa-season-review-head select { flex: 0 1 200px; min-width: 150px; }
/* Grupo de acción: casilla + los dos botones, siempre juntos y a la derecha.
   `margin-left:auto` los separa de los filtros cuando comparten línea. */
.wa-season-review-actions {
    display: flex; align-items: center; gap: var(--wag-space-8);
    flex: 0 1 auto; flex-wrap: wrap; margin-left: auto;
}
.wa-season-review-actions .wa-season-review-select-all { margin-right: 4px; }
.wa-season-review-head .wa-wahs-btn { flex: 0 0 auto; white-space: nowrap; }

/* Con muchas páginas los botones formaban una fila que no cabía. */
.wa-season-review-pages { flex-wrap: wrap; }
.wa-season-review-pages .wa-season-review-gap {
    display: grid; place-items: center;
    width: 18px; height: 30px;
    color: #9aa8a0; font-size: var(--wag-text-11);
}
.wa-season-review-pages button.is-step { width: auto; padding: 0 10px; }
.wa-season-review-pages button[disabled] { opacity: .4; cursor: default; }

@media (max-width: 860px) {
    /* En estrecho la barra manda a pantalla completa: alinear a la derecha
       dejaba los controles bailando a media fila. */
    .wa-season-review-head > div:last-child { justify-content: flex-start; }
    .wa-season-review-head select,
    .wa-season-review-head .wa-season-review-search { flex: 1 1 100%; }
}
html[data-theme="dark"] .wa-season-review-pages .wa-season-review-gap { color: #70807a; }

.wa-season-review-select-all {
    display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 10px;
    border: 1px solid #d4dfd8; border-radius: 10px; background: var(--wag-surface);
    color: #405449; font-size: 10.5px; font-weight: 800; white-space: nowrap; cursor: pointer;
}
.wa-season-review-select-all input { width: 16px; height: 16px; margin: 0; accent-color: #277a4c; }
.wa-season-review-select-all:has(input:disabled) { opacity: .48; cursor: not-allowed; }
.wa-season-review-head .wa-season-review-rerun {
    border-color: #b7cddd; background: #edf6fb; color: #285d7c;
}
.wa .wa-season-review-head .wa-season-review-rerun:hover,
.wa .wa-season-review-head .wa-season-review-rerun:focus {
    border-color: #5f8fa9; background: #dfeff7; color: #194a66;
}
.wa-season-review-head .wa-season-review-rerun:disabled { opacity: .45; cursor: not-allowed; }
.wa-season-review-btn.is-rebuild{border:1px solid #b8cfc1;border-radius:var(--wag-radius-8);padding:7px 9px;background:#edf6f0;color:#245f3e}.wa .wa-season-review-btn.is-rebuild:hover,.wa .wa-season-review-btn.is-rebuild:focus{border-color:#6fa483;background:#dff0e5;color:#174f30;box-shadow:var(--wag-shadow-14)}
.wa-season-review-btn.is-review { color: #286783; }
@media(max-width:1050px){.wa-season-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.wa-season-review-head,
.wa-season-review-head>div:last-child{align-items:stretch;display:grid}.wa-season-review-head select,.wa-season-review-head button{width:100%}.wa-season-review-grid{grid-template-columns:1fr}.wa-season-review-summary{align-items:flex-start;display:grid}}

/* ═════════════════════════════════════════════════════════════════════════
   MODO OSCURO — piezas que se habían quedado en claro
   (Marc, 2026-08-30)

   Paleta del tema: --wa-card #1a1f26 · --wa-line #2a313a · --wa-ink #e8edf1
   · --wa-muted #93a0ab. Las píldoras de color siguen el patrón que ya usan
   .wa-search-badge--*: el mismo tono al 22 % de opacidad como fondo y una
   versión clara del color para el texto, en vez de invertir a ciegas.
   ═════════════════════════════════════════════════════════════════════════ */

/* Caja de "crear observación" */
html[data-theme="dark"] .wa-obs-create-wrap {
    border-color: var(--wa-line, #2a313a);
    background: var(--wa-card, #1a1f26);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
}

/* Chips de exportación (lista y tarjeta) */
html[data-theme="dark"] .wa-obs-export-chip,
html[data-theme="dark"] .wa-obs-export-card-chip {
    border-color: var(--wa-line, #2a313a);
    background: var(--wa-card, #1a1f26);
    color: var(--wa-muted, #93a0ab);
}
html[data-theme="dark"] .wa .wa-obs-export-chip:hover,
html[data-theme="dark"] .wa .wa-obs-export-chip:focus,
html[data-theme="dark"] .wa .wa-list-card .wa-obs-export-card-chip:hover,
html[data-theme="dark"] .wa .wa-list-card .wa-obs-export-card-chip:focus {
    border-color: var(--wag-type-filter-export-chip-dark-hover-line, var(--wag-style-filter-export-chip-dark-hover-line));
    background: var(--wag-type-filter-export-chip-dark-hover-bg, var(--wag-style-filter-export-chip-dark-hover-bg));
    color: var(--wag-type-filter-export-chip-dark-hover-ink, var(--wag-style-filter-export-chip-dark-hover-ink));
}
html[data-theme="dark"] .wa-obs-export-chip.is-selected,
html[data-theme="dark"] .wa .wa-obs-export-chip.is-selected:hover {
    border-color: var(--wag-type-filter-export-chip-dark-line, var(--wag-style-filter-export-chip-dark-line));
    background: var(--wag-type-filter-export-chip-dark-bg, var(--wag-style-filter-export-chip-dark-bg));
    color: var(--wag-type-filter-export-chip-dark-ink, var(--wag-style-filter-export-chip-dark-ink));
}

/* Píldoras de estado */
html[data-theme="dark"] .wa-claim-pill.is-approved { background: rgba(31, 122, 77, .22);  color: #79d49b; }
html[data-theme="dark"] .wa-claim-pill.is-rejected { background: rgba(179, 66, 43, .22);  color: #f0a08e; }
html[data-theme="dark"] .wa-claim-pill.is-pending  { background: rgba(168, 107, 26, .24); color: #e8b569; }
html[data-theme="dark"] .wa-claim-pill.is-draft    { background: var(--wag-type-claim-pill-dark-bg, var(--wag-style-claim-pill-dark-bg)); color: var(--wag-type-claim-pill-dark-ink, var(--wag-style-claim-pill-dark-ink)); }
html[data-theme="dark"] .wa-pill-manual            { background: rgba(95, 127, 159, .24); color: #a3c0d8; }

/* Botón de quitar una reserva */
html[data-theme="dark"] .wa-bkmine-remove {
    border-color: rgba(179, 66, 43, .42);
    background: rgba(179, 66, 43, .20);
    color: #f0a08e;
}
html[data-theme="dark"] .wa .wa-bkmine-remove:hover {
    border-color: rgba(179, 66, 43, .62);
    background: rgba(179, 66, 43, .32);
}

/* ── Flecha de los <select> · FUENTE ÚNICA ────────────────────────────────────
   Estaba definida solo dentro de .wa-obs-create select y cada select nuevo
   volvía a copiarla o se quedaba con la flecha del sistema pegada al borde
   (Marc, 2026-08-30: «siempre las dejas pegadas… si no duplicaremos sin
   parar»). Para que un <select> tenga la flecha de la casa, AÑADE SU SELECTOR
   A ESTA LISTA — no copies el SVG otra vez.

   VA AL FINAL DEL FICHERO A PROPÓSITO: con la misma especificidad gana la
   última regla, y estaba antes de .wa-auth-form select, cuyo `background:`
   abreviado borraba el chevron. Aquí abajo ya no puede pisarla nadie. */
.wa-obs-create select,
.wa-auth-form select,
.wa-profile-form-fields select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 38px;
    /* Sin relleno vertical: un <select> centra su texto solo dentro de la
       altura de la caja, y el relleno se le suma en vez de repartirse — con
       12px arriba y abajo el texto quedaba al límite y se recortaba según la
       fuente (Marc, 2026-08-30). La altura la da min-height. */
    padding-top: 0;
    padding-bottom: 0;
    line-height: normal;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25 11 1.25' fill='none' stroke='%235f7080' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
}
/* El modal de acceso es oscuro SIEMPRE, no solo en tema oscuro: comparte el
   chevron claro. */
.wa-auth-modal .wa-auth-form select,
html[data-theme="dark"] .wa-obs-create select,
html[data-theme="dark"] .wa-auth-form select,
html[data-theme="dark"] .wa-profile-form-fields select {
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25 11 1.25' fill='none' stroke='%2393a0ab' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Season v3 curve-only calibration: the public artefact is the curve, while
   timing, token use and the exact JSON stay available to administrators. */
.wa .wa-season-preview-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
}
.wa-season-calibration-curve { margin-top: 10px; }
.wa-season-calibration-curve > div {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
    gap: 3px;
    height: 54px;
    padding-top: 4px;
    border-bottom: 1px solid #d9e3dc;
    background-image: linear-gradient(to bottom, transparent 33%, #edf2ef 33%, #edf2ef calc(33% + 1px), transparent calc(33% + 1px), transparent 66%, #edf2ef 66%, #edf2ef calc(66% + 1px), transparent calc(66% + 1px));
}
.wa-season-calibration-curve i {
    display: block;
    height: var(--wa-v);
    min-height: 2px;
    border-radius: 4px 4px 0 0;
    background: #76a9c2;
}
.wa-season-calibration-curve i.is-best {
    background: #72bf89;
    box-shadow: inset 0 0 0 1px #4d9e67;
}
.wa-season-calibration-curve > small {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 3px;
    margin-top: 3px;
    color: #8a9790;
    font-size: 7px;
    font-weight: 800;
    text-align: center;
}
.wa-season-calibration-curve.is-empty {
    padding: 12px;
    border-radius: var(--wag-radius-8);
    background: #f2f5f3;
    color: #8b968f;
    font-size: 9px;
    text-align: center;
}
.wa-season-calibration-raw {
    display: block;
    max-height: 120px;
    margin-top: 5px;
    padding: 7px;
    overflow: auto;
    border-radius: 7px;
    background: #f3f6f4;
    color: #53645a;
    font: 8px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    scrollbar-width: none;
}
.wa-season-calibration-raw::-webkit-scrollbar { display: none; }
.wa-season-v3__last-error {
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid #edc7bd;
    border-radius: 10px;
    background: #fff8f5;
}
.wa-season-v3__last-error summary {
    color: #8b3f2f;
    font-size: var(--wag-text-11);
    font-weight: 850;
    cursor: pointer;
}

/* =========================================================================
   Buscador global — Hides + Experiences (2026-09-04)

   Todo el bloque vive al final del fichero A PROPÓSITO: el buscador se pinta
   en tres contextos (home clara, topbar oscura, tema dark) y cada uno tiene
   ya reglas propias repartidas por el fichero, algunas con !important. Un
   único bloque al final, con las tres capas en orden base → dark → topbar,
   es más fácil de razonar que tres parches perdidos.
   ========================================================================= */

/* ── Desplegable de filtros: dos columnas ─────────────────────
   Ocho filtros en vertical medían nueve filas y se salían del hero. En dos
   columnas son cinco, y el menú crece a lo ancho, que es la dimensión que
   sobra: cuelga con `right: 0`, así que ensancharlo lo mete hacia dentro.

   Solo escritorio: en móvil la home esconde .wa-search-filters y mandan los
   chips, y la topbar global ya es desktop-only. */
.wa-sf-cols { display: grid; grid-template-columns: 1fr 1fr; }
.wa-sf-col { min-width: 150px; }   /* "Experiences" con icono no parte línea */
.wa-sf-col--book { border-left: 1px solid #e4e9ef; }

/* "All" no pertenece a ningún grupo: cruza las dos columnas arriba. */
.wa-sf-item--all { border-bottom: 1px solid #e4e9ef; }

/* Cabecera de columna. "Discover" es lo que hay, "Book" lo que se reserva:
   dos palabras que hacen de propuesta de valor sin fingir que hay más
   inventario del que hay. */
.wa-sf-sep {
    display: block;
    padding: 10px 14px 5px;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #9aa6b2;
    user-select: none;
}

/* Iconos: los mismos que los chips de la home y las filas de resultado. En la
   columna de reserva van en azul de marca, que es lo que distingue el grupo
   sin depender del color de texto (la topbar lo fuerza con !important). */
.wa-sf-item { display: flex; align-items: center; gap: var(--wag-space-8); }
/* .wa-ico y no svg: un icono subido desde el Control Center se pinta como
   <span> con mascara CSS, no como <svg>, y con `svg` se quedaria sin tamano
   ni color. La clase la llevan los dos. */
.wa-sf-item .wa-ico { flex-shrink: 0; opacity: .7; }
.wa-sf-col--book .wa-sf-item .wa-ico { color: #4fadd4; opacity: 1; }
.wa-sf-item.is-active .wa-ico { opacity: 1; }

/* ── Motivo del match: la especie objetivo que disparó el resultado ────────
   Un hide se llama "Buseu Wild Pyrenees", no "quebrantahuesos". Sin esta
   línea el resultado parece salido de la nada. */
.wa-search-target {
    font-size: 11.5px;
    font-weight: 600;
    color: #c2306a;
    background: #fdeaf1;
    padding: 1px 7px;
    border-radius: var(--wag-radius-999);
    white-space: nowrap;
}

/* ── Badges de producto ───────────────────────────────────────────────────
   Rosa para hides (es el color de identidad de la casa y el hide es el
   producto que nos distingue) y teal para experiencias. Ninguno de los dos
   choca con verde país, azul acero operador, naranja hotspot, azul aves ni
   violeta mamíferos. */
.wa-search-badge--hide       { background: #fdeaf1; color: #c2306a; }
.wa-search-badge--experience { background: #e4f3f5; color: #0f7b8a; }

/* ── Vacío con salida en Hides / Experiences ──────────────────────────────
   Estos filtros devuelven cero a menudo. En vez de un callejón sin salida,
   se ofrece la ficha de la especie, donde están los hotspots en los que se
   ve. Ver wa_search_products_empty_hint() en inc/search/search.php. */
.wa-search-empty--hint { display: flex; flex-direction: column; gap: var(--wag-space-8); }
.wa-search-empty-msg { color: #8a95a3; }
.wa-search-empty-link {
    font-weight: 700;
    font-size: var(--wag-text-13);
    color: #2f8056;
    text-decoration: none;
}
.wa .wa-search-empty-link:hover,
.wa .wa-search-empty-link:focus,
.wa .wa-search-empty-link:active { color: #1c5e3d; text-decoration: underline; }

/* ── Dark ─────────────────────────────────────────────────────────────── */
html[data-theme="dark"] .wa-sf-sep { color: #6b7c8d; }
html[data-theme="dark"] .wa-sf-col--book,
html[data-theme="dark"] .wa-sf-item--all { border-color: #2d3b4d; }
html[data-theme="dark"] .wa-search-target       { background: rgba(223,76,129,.18); color: #f094b7; }
html[data-theme="dark"] .wa-search-badge--hide       { background: rgba(223,76,129,.20); color: #f094b7; }
html[data-theme="dark"] .wa-search-badge--experience { background: rgba(31,168,187,.20); color: #6fd0dd; }
html[data-theme="dark"] .wa-search-empty-msg { color: #7a8794; }
html[data-theme="dark"] .wa-search-empty-link { color: #6dcfa0; }
html[data-theme="dark"] .wa .wa-search-empty-link:hover,
html[data-theme="dark"] .wa .wa-search-empty-link:focus,
html[data-theme="dark"] .wa .wa-search-empty-link:active { color: #8fe0b8; }

/* ── Topbar oscura (se pinta oscura también en tema claro) ────────────── */
html[data-theme="dark"] .wa-topbar-search .wa-sf-sep { color: #6b7c8d; }
html[data-theme="dark"] .wa-topbar-search .wa-sf-col--book,
html[data-theme="dark"] .wa-topbar-search .wa-sf-item--all { border-color: #2d3b4d; }
html[data-theme="dark"] .wa-topbar-search .wa-search-target       { background: rgba(223,76,129,.18); color: #f094b7; }
html[data-theme="dark"] .wa-topbar-search .wa-search-badge--hide       { background: rgba(223,76,129,.20); color: #f094b7; }
html[data-theme="dark"] .wa-topbar-search .wa-search-badge--experience { background: rgba(31,168,187,.20); color: #6fd0dd; }
html[data-theme="dark"] .wa-topbar-search .wa-search-empty-msg { color: #7a8794; }
html[data-theme="dark"] .wa-topbar-search .wa-search-empty-link { color: #6dcfa0; }

/* ── /pruebawag/ · la tarjeta tal y como iría en el listado del hotspot ──────
   Medidas copiadas de `.species-season-card` (:6566) a propósito: rejilla
   minmax(150px,1fr) con gap 10 y foto de 148px. El sentido de verla aquí es
   juzgar la DENSIDAD — en el listado de un hotspot puede haber mil especies —,
   así que cualquier medida inventada invalidaría la prueba. La tira de meses
   no se reimplementa: es `.wa-season-bars`, el mismo componente que usa la
   tarjeta de laboratorio, heredado tal cual con sus dos temas. */
.wa-hcard-preview { margin: 0 0 34px; }
.wa-hcard-preview-head { margin-bottom: 14px; }
.wa-hcard-preview-head h2 { margin: 0 0 4px; color: #17202a; font-size: 19px; font-weight: 800; }
.wa-hcard-preview-head p { margin: 0; color: #64727e; font-size: var(--wag-text-13); line-height: 1.4; }
/* Una especie menos por fila que el listado real: aquí se está juzgando el
   diseño, no exprimiendo la densidad, y a 150px la leyenda parte en tres
   líneas. Sin `align-items: start`: con él cada tarjeta conserva su alto
   natural y una leyenda de dos líneas dejaba a sus vecinas cortas flotando
   con un hueco debajo — la cuadrícula rota que se veía. Estirando, todas las
   tarjetas de una fila terminan a la misma altura. */
.wa-hcard-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: var(--wag-space-12); }
.wa-hcard {
    display: flex; flex-direction: column; overflow: hidden; height: 100%;
    border: 1px solid #e5e5e5; border-radius: var(--wag-radius-16); background: var(--wag-surface);
    box-shadow: var(--wag-shadow-8);
}
.wa-hcard-photo {
    position: relative; flex: 0 0 auto; height: 148px;
    background: linear-gradient(150deg, #c9d6e0, #9fb1c0); background-size: cover; background-position: center;
}
.wa-hcard-name {
    position: absolute; right: 0; bottom: 0; left: 0; padding: 22px 10px 8px;
    background: linear-gradient(transparent, rgba(12,18,24,.78));
    color: #fff; font-size: var(--wag-text-13); font-weight: 700; line-height: 1.2;
}
.wa-hcard-body { display: flex; flex-direction: column; padding: 11px 12px 13px; }
.wa-hcard-sci {
    overflow: hidden; margin: 0 0 8px; color: #778692; font-size: var(--wag-text-12);
    font-style: italic; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap;
}
/* La leyenda es la alternativa textual de la tira, no un pie decorativo: el
   dibujo va aria-hidden y esta frase es lo que se lee, se rastrea y llega a un
   lector de pantalla. */
.wa-hcard-legend {
    margin: 8px 0 0; color: #4a5b68; font-size: var(--wag-text-11); font-weight: 600; line-height: 1.3;
    /* Dos líneas reservadas siempre. La frase más larga que produce el
       compresor —tres bloques más ventana— cabe en dos a este ancho, y las
       cortas ocupan el mismo sitio en vez de encoger la tarjeta. Es lo que
       mantiene alineadas las filas entre sí, no solo dentro de una. */
    min-height: 2.6em;
}
/* El relleno va aquí y no en la leyenda: con la línea de ámbito debajo, el
   hueco reservado tiene que empujar desde el fondo de la tarjeta. */
.wa-hcard-body > :last-child { margin-bottom: 0; }
.wa-hcard .wa-season-chart-visual { margin: 0; }
/* Solo cuando una especie trae más de un calendario: distingue dos tarjetas
   que si no serían la misma foto con otra curva. Es del laboratorio — en un
   hotspot real solo se ve el calendario de SU ámbito, así que la tarjeta
   pública nunca lleva esta línea. */
.wa-hcard-scope {
    margin: 5px 0 0; padding-top: 5px; border-top: 1px dashed #e3e9ee;
    color: #1c638a; font-size: 9.5px; font-weight: 800;
    letter-spacing: .03em; line-height: 1.3; text-transform: uppercase;
}
html[data-theme="dark"] .wa-hcard-scope { border-top-color: #2c3741; color: #8fc4de; }
html[data-theme="dark"] .wa-hcard { border-color: #2c3741; background: #171d23; box-shadow: var(--wag-shadow-14); }
html[data-theme="dark"] .wa-hcard-sci { color: #8b98a4; }
html[data-theme="dark"] .wa-hcard-legend { color: #a9b6c1; }
html[data-theme="dark"] .wa-hcard-preview-head h2 { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-hcard-preview-head p { color: #8b98a4; }

/* Curva plana: una respuesta, no un gráfico roto.
   La capa de registros va DETRÁS, gris y sin relleno sólido, y solo aparece
   cuando la curva principal es plana. Si la curva tiene forma propia, esta capa
   sobra y además competiría con ella. */
.wa-season-calibration-curve > div { position: relative; }
.wa-season-calibration-records {
    position: absolute;
    inset: 4px 0 0;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
    gap: 3px;
    pointer-events: none;
}
.wa-season-calibration-records u {
    display: block;
    height: var(--wa-v);
    min-height: 2px;
    border: 1px dashed #b9c6bf;
    border-bottom: 0;
    border-radius: 4px 4px 0 0;
    background: transparent;
}
.wa-season-calibration-curve.is-flat i { background: #aebbb4; }
.wa-season-calibration-flat {
    display: block;
    margin-top: 4px;
    color: #8a9790;
    font-size: 9px;
    line-height: 1.35;
}
.wa-season-calibration-flat b { color: #7d8a83; font-weight: 600; }

/* ── iOS: sin zoom al enfocar un campo ──────────────────────────────────
   Safari en iOS amplía la página al enfocar un control cuyo font-size sea
   MENOR que 16px, y la deja descuadrada al salir. Es el umbral del sistema,
   no un valor estético: 15.9px hace zoom y 16px no.
   El buscador ya lo respetaba (16px en la base, 17px en la topbar, 16px
   !important en la portada), pero el resto de formularios —registro, login,
   perfil, contacto, importación de observaciones— estaban entre 12 y 15px,
   así que TODOS hacían zoom.
   Se aplica donde el comportamiento existe de verdad: punteros gruesos.
   En escritorio no cambia nada. Los paneles de gestión quedan fuera:
   son herramientas de escritorio con su propia escala compacta. */
@media (pointer: coarse) {
    body:not(.wa-admin):not(.wa-owner) input[type="text"],
    body:not(.wa-admin):not(.wa-owner) input[type="search"],
    body:not(.wa-admin):not(.wa-owner) input[type="email"],
    body:not(.wa-admin):not(.wa-owner) input[type="url"],
    body:not(.wa-admin):not(.wa-owner) input[type="tel"],
    body:not(.wa-admin):not(.wa-owner) input[type="password"],
    body:not(.wa-admin):not(.wa-owner) input[type="number"],
    body:not(.wa-admin):not(.wa-owner) input[type="date"],
    body:not(.wa-admin):not(.wa-owner) input[type="time"],
    body:not(.wa-admin):not(.wa-owner) input[type="datetime-local"],
    body:not(.wa-admin):not(.wa-owner) input[type="month"],
    body:not(.wa-admin):not(.wa-owner) input[type="week"],
    body:not(.wa-admin):not(.wa-owner) input:not([type]),
    body:not(.wa-admin):not(.wa-owner) select,
    body:not(.wa-admin):not(.wa-owner) textarea {
        font-size: var(--wag-text-16);
    }
}

/* /pruebawag/ y el panel: cuando se pidió razonamiento y el adaptador lo soltó
   por el id del modelo, tiene que gritar. Una calibración que "no cambió nada"
   por una variable de entorno cuesta una ronda entera. */
.wa-season-reasoning-lost { color: #b3261e; font-weight: 800; }
html[data-theme="dark"] .wa-season-reasoning-lost { color: #f2b8b5; }

/* Banco de calibración: la procedencia de cada expectativa. Una regla sin fuente
   no puede arbitrar — se pinta en rojo para que se vea antes que el veredicto. */
.wa-season-calibration-source { margin: 2px 0 0; color: #6b7a86; font-size: var(--wag-text-11); line-height: 1.35; word-break: break-word; }
.wa-season-calibration-source.is-missing { color: #b3261e; }
html[data-theme="dark"] .wa-season-calibration-source { color: #9daab5; }
html[data-theme="dark"] .wa-season-calibration-source.is-missing { color: #f2b8b5; }

/* ───────────────────────────────────────────────────────────────────────────
   Encuadre del hero para dueños (Marc, 2026-09-14)

   Vive en wildatlas.css y no en wizard.css a propósito: el control se pinta
   también en /add-hotspot/ y /add-operator/, donde wizard.css NO se encola.

   La caja y los sliders son los mismos valores que .wa-insp-focus / .wa-focus-slider
   del panel de admin — incluidos los !important. NO son decoración defensiva: Astra
   estiliza los input[type=range] como controles de formulario genéricos y deja el
   track transparente, así que track y thumb hay que definirlos enteros o el dueño
   ve dos barras invisibles. Aquí, además, sin exigir el ancestro .wa: el wizard de
   hotspot y el de operador se pintan fuera de esa raíz.
   ─────────────────────────────────────────────────────────────────────────── */
.wa-hero-focus {
    width: min(100%, 520px);
    margin-top: 18px;
    background: var(--wag-surface);
    border-radius: 10px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-8);
}
.wa-hero-focus.is-empty { display: none; }
.wa-hero-focus-label {
    margin: 0;
    font-size: var(--wag-text-11); font-weight: 700;
    text-transform: uppercase; letter-spacing: .7px;
    color: var(--wa-muted,#788596);
}
.wa-hero-focus-hint {
    margin: -2px 0 2px;
    font-size: 12.5px; line-height: 1.5;
    color: var(--wa-muted,#788596);
}

/* Marco: proporción y degradado del hero real (.tour-hero-banner y hermanos,
   500px de alto a ancho de página) para que el dueño ajuste lo que se publica. */
.wa-hero-focus-frame {
    position: relative;
    aspect-ratio: 12 / 5;
    overflow: hidden;
    border-radius: 10px;
    background: #e4eaf2;
}
.wa-hero-focus-frame img {
    display: block;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}
.wa-hero-focus-scrim {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
    pointer-events: none;
}
/* Dos barras en el sitio del título y los badges reales: sin ellas se encuadra
   a ciegas una zona que luego queda tapada. */
.wa-hero-focus-fakes {
    position: absolute; left: 7%; right: 7%; bottom: 11%;
    display: flex; flex-direction: column; gap: 6px;
    pointer-events: none;
}
.wa-hero-focus-fakes i { display: block; height: 9px; border-radius: 5px; background: rgba(255,255,255,.72); }
.wa-hero-focus-fakes i:last-child { width: 38%; height: 6px; background: rgba(255,255,255,.45); }

/* Quitar foto. Mismos valores que el × de .wa-product-image-preview (wizard.css:2120)
   pero definidos aquí: el control se pinta también donde wizard.css no se encola.
   Los !important son contra Astra, que estiliza cualquier <button> como suyo. */
.wa-hero-focus-remove {
    position: absolute !important;
    top: 9px !important; right: 9px !important;
    display: grid !important; place-items: center !important;
    box-sizing: border-box !important;
    width: 28px !important; height: 28px !important;
    min-width: 28px !important; min-height: 28px !important;
    margin: 0 !important; padding: 0 !important;
    border: 0 !important; border-radius: 8px !important;
    background: rgba(19,31,26,.82) !important;
    color: #fff !important;
    line-height: 0 !important;
    box-shadow: var(--wag-shadow-15) !important;
    cursor: pointer;
    -webkit-appearance: none !important; appearance: none !important;
}
/* display:block mata el hueco de baseline que Astra deja bajo un inline svg;
   sin él el aspa se va un par de píxeles hacia arriba. */
.wa-hero-focus-remove svg { display: block !important; width: 13px !important; height: 13px !important; }
.wa-hero-focus-remove:hover,
.wa-hero-focus-remove:focus-visible { background: rgba(19,31,26,.95) !important; }

.wa-hero-focus-row { display: flex; align-items: center; gap: var(--wag-space-8); }
.wa-hero-focus-axis { font-size: var(--wag-text-11); font-weight: 700; color: #8898aa; width: 10px; flex-shrink: 0; }

input.wa-hero-focus-slider {
    -webkit-appearance: none !important; appearance: none !important;
    flex: 1; width: auto !important; height: 22px !important; min-height: 22px !important;
    margin: 0 !important; padding: 0 !important; border: 0 !important;
    border-radius: 0 !important; background: transparent !important;
    box-shadow: var(--wag-shadow-15) !important; cursor: pointer; accent-color: var(--wa-accent,#2b7cb0);
}
input.wa-hero-focus-slider::-webkit-slider-runnable-track {
    height: 5px !important; border: 0 !important; border-radius: 999px !important;
    background: #c7d4e2 !important; box-shadow: var(--wag-shadow-15) !important;
}
input.wa-hero-focus-slider::-webkit-slider-thumb {
    -webkit-appearance: none !important; appearance: none !important;
    width: 17px !important; height: 17px !important; margin-top: -6px !important;
    border: 3px solid #fff !important; border-radius: 50% !important;
    background: var(--wa-accent,#2b7cb0) !important;
    box-shadow: var(--wag-shadow-2) !important;
}
input.wa-hero-focus-slider::-moz-range-track {
    height: 5px !important; border: 0 !important; border-radius: 999px !important;
    background: #c7d4e2 !important; box-shadow: var(--wag-shadow-15) !important;
}
input.wa-hero-focus-slider::-moz-range-thumb {
    width: 12px !important; height: 12px !important;
    border: 3px solid #fff !important; border-radius: 50% !important;
    background: var(--wa-accent,#2b7cb0) !important;
    box-shadow: var(--wag-shadow-2) !important;
}
input.wa-hero-focus-slider:focus-visible { outline: none !important; }
input.wa-hero-focus-slider:focus-visible::-webkit-slider-thumb { box-shadow: var(--wag-shadow-4) !important; }
input.wa-hero-focus-slider:focus-visible::-moz-range-thumb { box-shadow: var(--wag-shadow-4) !important; }

.wa-hero-focus-val { font-size: var(--wag-text-11); color: var(--wa-muted,#788596); width: 30px; text-align: right; flex-shrink: 0; }

@media (max-width: 700px) {
    /* El hero baja a 380px sobre una página más estrecha: el recorte real es
       bastante menos apaisado que en escritorio. */
    .wa-hero-focus-frame { aspect-ratio: 1 / 1; }
}

html[data-theme="dark"] .wa-hero-focus { background: var(--wag-dark-surface); }
html[data-theme="dark"] .wa-hero-focus-frame { background: #222933; }
html[data-theme="dark"] .wa-hero-focus-axis { color: #7d8b98; }
html[data-theme="dark"] input.wa-hero-focus-slider::-webkit-slider-runnable-track { background: #3a444f !important; }
html[data-theme="dark"] input.wa-hero-focus-slider::-moz-range-track { background: #3a444f !important; }
html[data-theme="dark"] input.wa-hero-focus-slider::-webkit-slider-thumb { border-color: #1a1f26 !important; }
html[data-theme="dark"] input.wa-hero-focus-slider::-moz-range-thumb { border-color: #1a1f26 !important; }

/* ───────────────────────────────────────────────────────────────────────────
   Precios por grupo en la ficha pública (Marc, 2026-09-14)

   Desplegable dentro de .tour-sidebar-card, sobre el formulario de reserva.
   Sigue el patrón de <details> que ya usa .wa-bk-contact (:2551): marcador
   nativo oculto, verde de marca, chevron propio. Plegado por defecto — abierto
   empujaba el botón de reservar fuera de pantalla en móvil.
   ─────────────────────────────────────────────────────────────────────────── */
.wa-gp-public {
    margin: 0 0 18px;
    border: 1px solid #e6ebe8;
    border-radius: var(--wag-radius-12);
    background: var(--wag-surface);
    overflow: hidden;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.wa-gp-public[open] { border-color: #cfe3d7; box-shadow: 0 2px 10px rgba(20,30,45,.05); }
.wa .wa-gp-public:hover { border-color: #cfe3d7; }

.wa-gp-public > summary {
    display: flex;
    align-items: center;
    gap: var(--wag-space-8);
    padding: 12px 14px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.wa-gp-public > summary::-webkit-details-marker { display: none; }
.wa-gp-public > summary:focus-visible { outline: 3px solid rgba(31,138,82,.22); outline-offset: -3px; }

.wa-gp-public-title {
    font-size: var(--wag-text-11);
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: #1f8a52;
}
/* El gancho viaja en el resumen: se ve sin desplegar. */
.wa-gp-teaser {
    padding: 3px 9px;
    border-radius: var(--wag-radius-999);
    background: #e8f5ee;
    color: #167a43;
    font-size: var(--wag-text-11);
    font-weight: 700;
    white-space: nowrap;
}
.wa-gp-chev { margin-left: auto; color: #9aa7a0; transition: transform .2s ease; flex-shrink: 0; }
.wa-gp-public[open] .wa-gp-chev { transform: rotate(180deg); }

.wa-gp-public-body { padding: 0 14px 12px; }
.wa-gp-lines { margin: 0; padding: 0; list-style: none; }
.wa-gp-line {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    gap: 3px 10px;
    padding: 9px 0;
    border-top: 1px solid #eef1ef;
    font-size: var(--wag-text-13);
}
.wa-gp-line-people { color: #222; font-weight: 500; }
.wa-gp-line-total  { color: #111; font-weight: 700; font-variant-numeric: tabular-nums; }
/* El ahorro ocupa su propia línea bajo el tamaño: en la columna estrecha del
   sidebar, meterlo en la misma fila obligaba a truncar el precio. */
.wa-gp-line-save {
    grid-column: 1 / -1;
    font-size: var(--wag-text-11);
    font-weight: 700;
    color: #1f8a52;
}
.wa-gp-line-save:empty { display: none; }
/* Los tramos se anuncian por persona; el "/persona" acompaña a la cifra sin
   competir con ella, que el número es lo que se compara de un vistazo. */
.wa-gp-line-per { font-weight: 500; color: #7c8a93; }
html[data-theme="dark"] .wa-gp-line-per { color: #9fb0bb; }
.wa-gp-public-note { margin: 10px 0 0; font-size: var(--wag-text-11); line-height: 1.5; color: #aaa; }

html[data-theme="dark"] .wa-gp-public { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-gp-public[open] { border-color: #34414a; }
html[data-theme="dark"] .wa-gp-teaser { background: rgba(109,184,76,.16); color: #8fcf6e; }
html[data-theme="dark"] .wa-gp-public-title { color: #6db84c; }
html[data-theme="dark"] .wa-gp-line { border-top-color: #2a313a; }
html[data-theme="dark"] .wa-gp-line-people { color: #d7dee5; }
html[data-theme="dark"] .wa-gp-line-total  { color: #fff; }
html[data-theme="dark"] .wa-gp-line-save   { color: #6db84c; }

/* ══ Control Center → Negocio → Reservas ═══════════════════════════════════
   Marc, 2026-09-16. Reutiliza los tokens del panel —la tarjeta blanca de
   .wa-owner-block, el radio 14/16, el subtítulo en versalitas— en vez de
   inventar una piel nueva: esta pantalla vive entre las demás del Control
   Center y tiene que parecerlo. */
.wa-bkadmin {
    background: var(--wa-card, #fff);
    border: 1px solid var(--wa-line, #e8ecf1);
    border-radius: 14px;
    padding: 22px 24px 24px;
    box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.wa-bkadmin .wa-admin-subtitle { margin-top: 0; }
.wa-bkadmin .wa-owner-help { margin: 0 0 18px; max-width: 70ch; }

/* Cifras de cabecera. Cuatro columnas que se reparten el ancho y caen a dos
   en cuanto no caben, sin media query. */
.wa-bkadmin-kpis {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: var(--wag-space-12); margin-bottom: 18px;
}
.wa-bkadmin-kpi {
    display: flex; flex-direction: column; gap: 3px;
    background: #f7f9fb; border: 1px solid var(--wa-line, #e8ecf1);
    border-radius: var(--wag-type-bkadmin-kpi-radius, var(--wag-style-bkadmin-kpi-radius)); padding: 14px 16px;
}
.wa-bkadmin-kpi b {
    font-size: var(--wag-text-24); font-weight: 800; letter-spacing: -.6px;
    color: var(--wa-ink, #15321f); line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.wa-bkadmin-kpi span { font-size: 11.5px; font-weight: 600; color: var(--wa-muted, #6b7a86); }
/* Solo el dato que pide acción se tiñe: si se tiñen los cuatro, no destaca ninguno. */
.wa-bkadmin-kpi.is-warn { background: var(--wag-type-bkadmin-kpi-bg, var(--wag-style-bkadmin-kpi-bg)); border-color: var(--wag-type-bkadmin-kpi-line, var(--wag-style-bkadmin-kpi-line)); }
.wa-bkadmin-kpi.is-warn b { color: var(--wa-attention, #e0392b); }

.wa-bkadmin-alert {
    display: flex; flex-direction: column; gap: 3px;
    background: #fff6f5; border: 1px solid #f3ccc7; border-left: 3px solid var(--wa-attention, #e0392b);
    border-radius: var(--wag-radius-12); padding: 13px 16px; margin-bottom: 18px;
}
.wa-bkadmin-alert strong { font-size: 13.5px; color: #a3281c; }
.wa-bkadmin-alert span { font-size: 12.5px; color: #8a4a42; }

/* Filtros: píldoras con su recuento dentro, como las del resto del panel. */
.wa-bkadmin-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.wa-bkadmin-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 12px; border-radius: var(--wag-radius-999);
    border: 1px solid var(--wa-line, #e8ecf1); background: var(--wag-surface);
    font-size: 12.5px; font-weight: 600; color: #46525f; text-decoration: none;
    transition: border-color .15s ease, background .15s ease;
}
.wa-bkadmin-chip i { font-style: normal; font-size: var(--wag-text-11); font-weight: 700; color: var(--wa-muted, #6b7a86); font-variant-numeric: tabular-nums; }
.wa-bkadmin-chip:hover { border-color: var(--wag-type-bkadmin-chip-hover-line, var(--wag-style-bkadmin-chip-hover-line)); background: var(--wag-type-bkadmin-chip-hover-bg, var(--wag-style-bkadmin-chip-hover-bg)); }
.wa-bkadmin-chip.is-active { background: var(--wa-accent, #1f7a4d); border-color: var(--wa-accent, #1f7a4d); color: var(--wag-type-bkadmin-chip-ink, var(--wag-style-bkadmin-chip-ink)); }
.wa-bkadmin-chip.is-active i { color: rgba(255,255,255,.75); }

/* Listado */
.wa-bkadmin-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wa-line, #e8ecf1); }
.wa-bkadmin-row {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;
    padding: 14px 2px; border-bottom: 1px solid var(--wa-line, #e8ecf1);
}
.wa-bkadmin-row:hover { background: #fafbfc; }
/* El filo rojo señala la fila que lleva días parada, sin gritar en toda ella. */
.wa-bkadmin-row.is-late { box-shadow: inset 3px 0 0 var(--wa-attention, #e0392b); padding-left: 12px; }

.wa-bkadmin-main { min-width: 0; flex: 1; }
.wa-bkadmin-top { display: flex; align-items: center; flex-wrap: wrap; gap: var(--wag-space-8); }
.wa-bkadmin-prod {
    font-size: 14.5px; font-weight: 700; color: var(--wa-ink, #15321f); text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46ch;
}
.wa-bkadmin-prod:hover { color: var(--wa-accent, #1f7a4d); text-decoration: underline; }
.wa-bkadmin-prod.is-gone { color: var(--wa-muted, #6b7a86); font-style: italic; font-weight: 600; }
.wa-bkadmin-late {
    font-size: 10.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
    color: #a3281c; background: #fdeceA; border-radius: var(--wag-radius-999); padding: 3px 8px; white-space: nowrap;
}
/* Los tres datos secos, separados por punto y sin puntos huérfanos al envolver. */
.wa-bkadmin-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; margin-top: 4px; }
.wa-bkadmin-meta span { font-size: 12.5px; color: var(--wa-muted, #6b7a86); }
.wa-bkadmin-meta em { font-style: normal; color: #8b97a4; }

.wa-bkadmin-side {
    display: flex; flex-direction: column; align-items: flex-end; gap: var(--wag-space-4);
    flex: none; text-align: right;
}
.wa-bkadmin-state {
    font-size: 10.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
    padding: 4px 10px; border-radius: var(--wag-radius-999); white-space: nowrap;
    background: #eef1f5; color: #57626e;
}
.wa-bkadmin-state.is-pending  { background: #fff4e2; color: #9a6410; }
.wa-bkadmin-state.is-approved { background: #e8f5ee; color: var(--wag-accent); }
.wa-bkadmin-state.is-rejected { background: #f3f4f6; color: #79838f; }
.wa-bkadmin-state.wa-pill-manual { background: var(--wag-type-bkadmin-state-bg, var(--wag-style-bkadmin-state-bg)); color: var(--wag-type-bkadmin-state-ink, var(--wag-style-bkadmin-state-ink)); }
.wa-bkadmin-amount {
    font-size: 15px; font-weight: 800; color: var(--wa-ink, #15321f);
    letter-spacing: -.3px; font-variant-numeric: tabular-nums;
}
.wa-bkadmin-pay { font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.wa-bkadmin-pay.is-paid { color: var(--wa-accent, #1f7a4d); }
.wa-bkadmin-pay.is-half { color: #9a6410; }
.wa-bkadmin-pay.is-none { color: #9aa6b4; font-weight: 500; }

.wa-bkadmin-pager { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }

/* Interruptor de internas. Discreto pero SIEMPRE visible cuando hay algo
   oculto: esconder filas sin decirlo convierte la pantalla en una mentira. */
.wa-bkadmin-toggle {
    margin: -6px 0 14px; font-size: 12.5px; color: var(--wa-muted, #6b7a86);
}
.wa-bkadmin-toggle a { color: var(--wa-accent, #1f7a4d); font-weight: 700; text-decoration: none; }
.wa-bkadmin-toggle a:hover { text-decoration: underline; }
.wa-bkadmin-toggle.is-on { color: #9a6410; }

/* Buscador: la lupa dentro del campo, el campo se come el ancho sobrante y el
   botón no se encoge. Mismo radio y filo que las píldoras de filtro. */
.wa-bkadmin-search {
    display: flex; align-items: center; gap: var(--wag-space-8);
    margin: 0 0 16px;
}
.wa-bkadmin-search > svg { position: absolute; margin-left: 13px; color: #9aa6b4; pointer-events: none; }
.wa-bkadmin-search input[type="search"] {
    flex: 1 1 auto; min-width: 0; max-width: 420px;
    padding: 9px 14px 9px 36px; border-radius: var(--wag-radius-999);
    border: 1px solid var(--wa-line, #e8ecf1); background: var(--wag-surface);
    font-size: var(--wag-text-13); color: #2f3b4a; box-shadow: var(--wag-shadow-14);
}
.wa-bkadmin-search input[type="search"]:focus {
    outline: none; border-color: var(--wa-accent, #1f7a4d);
    box-shadow: var(--wag-shadow-3);
}
.wa-bkadmin-search button { flex: none; cursor: pointer; font-family: inherit; }
.wa-bkadmin-clear { flex: none; font-size: 12.5px; color: var(--wa-muted, #6b7a86); text-decoration: none; }
.wa-bkadmin-clear:hover { text-decoration: underline; }

@media (max-width: 700px) {
    .wa-bkadmin { padding: 18px 16px 20px; }
    /* En móvil la fila se apila: el estado y el importe pasan debajo, alineados
       a la izquierda con el resto. A la derecha no quedaba ancho para nada. */
    .wa-bkadmin-row { flex-direction: column; gap: var(--wag-space-8); }
    .wa-bkadmin-side { flex-direction: row; align-items: center; flex-wrap: wrap; gap: var(--wag-space-8); text-align: left; }
    .wa-bkadmin-prod { white-space: normal; max-width: none; }
}

html[data-theme="dark"] .wa-bkadmin { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-bkadmin-kpi { background: #151a20; border-color: #2a313a; }
html[data-theme="dark"] .wa-bkadmin-kpi b,
html[data-theme="dark"] .wa-bkadmin-prod,
html[data-theme="dark"] .wa-bkadmin-amount { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-bkadmin-chip { background: var(--wag-type-bkadmin-chip-dark-bg, var(--wag-style-bkadmin-chip-dark-bg)); border-color: var(--wag-type-bkadmin-chip-dark-line, var(--wag-style-bkadmin-chip-dark-line)); color: var(--wag-type-bkadmin-chip-dark-ink, var(--wag-style-bkadmin-chip-dark-ink)); }
html[data-theme="dark"] .wa-bkadmin-chip:hover { background: var(--wag-type-bkadmin-chip-dark-hover-bg, var(--wag-style-bkadmin-chip-dark-hover-bg)); border-color: var(--wag-type-bkadmin-chip-dark-hover-line, var(--wag-style-bkadmin-chip-dark-hover-line)); }
html[data-theme="dark"] .wa-bkadmin-list,
html[data-theme="dark"] .wa-bkadmin-row { border-color: #2a313a; }
html[data-theme="dark"] .wa-bkadmin-row:hover { background: #1f262e; }
html[data-theme="dark"] .wa-bkadmin-kpi.is-warn,
html[data-theme="dark"] .wa-bkadmin-alert{ background: var(--wag-type-bkadmin-kpi-dark-bg, var(--wag-style-bkadmin-kpi-dark-bg)); border-color: var(--wag-type-bkadmin-kpi-dark-line, var(--wag-style-bkadmin-kpi-dark-line)); }
html[data-theme="dark"] .wa-bkadmin-alert strong { color: #f0a49a; }
html[data-theme="dark"] .wa-bkadmin-alert span { color: #c79189; }
html[data-theme="dark"] .wa-bkadmin-toggle { color: #93a0b0; }
html[data-theme="dark"] .wa-bkadmin-search input[type="search"] { background: #151a20; border-color: #2a313a; color: var(--wag-dark-ink); }

/* Season review pagination must scroll inside its own module, never widen the page. */
.wa-season-review-pages {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    justify-content: safe center;
    padding: 0 0 6px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.wa-season-review-pages button { flex: 0 0 30px; }

/* Search shares the restrained control language of the season review panel. */
.wa-season-review-search {
    min-width: 290px;
    height: 40px;
    padding: 0 13px;
    border: 1px solid #d4dfd8;
    border-radius: 10px;
    background: var(--wag-surface);
    color: #263d31;
    font-size: var(--wag-text-11);
    box-shadow: var(--wag-shadow-14);
}
.wa-season-review-search:focus {
    border-color: #2c8253;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(44,130,83,.1);
}
@media (max-width: 782px) {
    .wa-season-review-head > div:last-child { width: 100%; flex-wrap: wrap; }
    .wa-season-review-search { width: 100%; min-width: 0; }
    .wa-season-review-head select { flex: 1; min-width: 135px; }
}

/* ── Barra superior móvil: mismos márgenes que el contenido (2026-09-26) ─────
   La flecha de vuelta quedaba a 24px del borde y MENU a 14: asimétrica y
   desalineada con el contenido, que va a 20. Ahora 20 a cada lado. */
@media (max-width: 1024px) {
    .wildatlas-feature-band-topbar > [class$="-topbar"],
    .country-topbar, .species-topbar, .operator-topbar, .place-topbar,
#wa-account-btn-wrap{ padding-left: 20px; padding-right: 20px; }
}

/* Móvil: «Iniciar sesión» (34px) y MENU (32px) con la misma altura (Marc,
   2026-09-26). Ambos a 34, centrados, sin relleno vertical que la descuadre. */
@media (max-width: 1024px) {
    .wa #wa-account-btn-wrap .wa-account-btn,
    .wa #wa-account-btn-wrap .wa-guest-menu-btn {
        height: 34px; box-sizing: border-box;
        display: inline-flex; align-items: center;
        padding-top: 0; padding-bottom: 0;
        border-radius: 9px; /* el de MENU; «Iniciar sesión» tenía 8 */
    }
}

/* ── Índice de secciones en móvil (sidenav.js, 2026-09-26) ───────────────────
   Del color de la barra superior; píldoras como las de la home pero en oscuro,
   y la activa en blanco como las pestañas del acceso. Solo existe cuando el
   menú lateral de escritorio no cabe. */
.wa-secbar {
    position: fixed; left: 0; right: 0; top: 0; z-index: 99980;
    background: var(--wag-type-secbar-bg, var(--wag-style-secbar-bg)); border-bottom: 1px solid var(--wag-type-secbar-underline, var(--wag-style-secbar-underline));
    box-shadow: var(--wag-type-secbar-shadow, var(--wag-style-secbar-shadow));
    transform: translateY(-110%); visibility: hidden;
    transition: transform .22s ease, visibility 0s linear .22s;
}
.wa-secbar.is-on { transform: none; visibility: visible; transition: transform .22s ease; }
.wa-secbar__row {
    display: flex; gap: var(--wag-space-8); overflow-x: auto; padding: 8px 20px;
    scrollbar-width: none; scroll-padding-left: 20px;
}
.wa-secbar__row::-webkit-scrollbar { display: none; }
.wa .wa-secbar__chip,
.wa .wa-secbar__chip:visited,
.wa .wa-secbar__chip:focus {
    flex: 0 0 auto; display: inline-flex; align-items: center;
    /* 38px + los 8 de hueco ≈ la zona táctil de 44 recomendada (Marc: «en
       el móvil pueden ser un poco pequeños»). */
    height: 38px; padding: 0 17px; border-radius: var(--wag-radius-999);
    background: var(--wag-type-secbar-chip-bg, var(--wag-style-secbar-chip-bg)); border: 1px solid rgba(255,255,255,.14);
    color: #d7dee6; font-size: var(--wag-text-14); font-weight: 600; white-space: nowrap;
    text-decoration: none; box-shadow: var(--wag-shadow-14); outline: none;
}
.wa .wa-secbar__chip:hover { background: var(--wag-type-secbar-chip-hover-bg, var(--wag-style-secbar-chip-hover-bg)); color: var(--wag-type-secbar-chip-hover-ink, var(--wag-style-secbar-chip-hover-ink)); text-decoration: none; }
.wa .wa-secbar__chip.is-active,
.wa .wa-secbar__chip.is-active:hover { background: var(--wag-surface); border-color: var(--wag-type-secbar-chip-line, var(--wag-style-secbar-chip-line)); color: var(--wag-type-secbar-chip-ink, var(--wag-style-secbar-chip-ink)); }
.wa .wa-secbar__chip:focus-visible { outline: 2px solid var(--wag-type-secbar-chip-focus-ring, var(--wag-style-secbar-chip-focus-ring)); outline-offset: 2px; }

/* ── Píldoras de filtro en móvil: 38px (Marc, 2026-09-26) ────────────────────
   Los desplegables de filtro que se repiten por el sitio (fauna, experiencias,
   hides, país, especies) medían 29px. Misma altura que el índice de secciones
   y las píldoras de la home: 38px visibles; con el hueco entre ellas, la zona
   táctil ronda los 44 que recomienda Apple. */
@media (max-width: 700px) {
    .wa .wa-dropdown-trigger,
    .wa .wa-season-report-btn {
        min-height: 38px; padding-top: 0; padding-bottom: 0;
        padding-left: 16px; padding-right: 16px; font-size: var(--wag-text-14);
    }
    /* «+ Reportar una especie» va junto a los filtros: misma altura (2026-09-27). */
    .wa .wa-season-report-btn { display: inline-flex; align-items: center; }
}

/* ══ Buscadores: UN solo aspecto en todo el sitio (Marc, 2026-09-26) ═════════
   El modelo es el de la home (.wa-search): píldora blanca de 54px, borde fino
   #e6eaef, sombra suave, lupa gris de 18px a 16px del borde y texto de 16px
   (16 también evita el zoom automático de iOS al enfocar). Igual en escritorio
   y en móvil, como la home.
   Dos formas de montarlo, según venga el HTML:
   A) Contenedor con su lupa dentro → el contenedor es la píldora y el input va
      transparente (galería, temporada del propietario y reportar especie). El
      de especies del hotspot no entra: ES el componente de la home (.wa-search)
      y sale igual por sí solo.
   B) Input suelto → el propio input es la píldora y la lupa va de fondo
      (asistentes, reportar especie, listas, viajes a medida, operadores y
      panel del propietario).
   Los buscadores del Control Center no entran: los ve solo el admin. */

/* A · contenedor = píldora */
.wa .wa-gal-sp-bar,
.wa .wa-season-search-wrap {
    position: relative; display: flex; align-items: center; gap: 10px;
    box-sizing: border-box; min-height: 54px; padding: 0 16px;
    background: var(--wag-surface); border: 1px solid #e6eaef; border-radius: var(--wag-radius-999);
    box-shadow: var(--wag-shadow-9);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.wa .wa-gal-sp-bar:focus-within,
.wa .wa-season-search-wrap:focus-within { border-color: #b9cfe0; box-shadow: 0 4px 16px -8px rgba(20,30,45,.28), 0 0 0 3px rgba(43,124,176,.10); }
.wa .wa-gal-sp-bar > svg,
.wa .wa-season-search-wrap > .wa-season-search-ico {
    position: static; flex: 0 0 18px; width: 18px; height: 18px; color: #6c7683; order: -1;
}
.wa .wa-gal-sp-bar input,
.wa .wa-season-search-wrap input.wa-season-search {
    flex: 1 1 auto; min-width: 0; height: 52px; margin: 0; padding: 0;
    background: transparent; border: 0; border-radius: 0; box-shadow: var(--wag-shadow-14); outline: none;
    font-size: var(--wag-text-16); font-weight: 400; color: #1a1e24;
}
.wa .wa-season-search-wrap > .wa-season-search-ico { inset: auto; transform: none; } .wa .wa-season-search-wrap input.wa-season-search:focus { box-shadow: none !important; } /* Flex icon; focus ring belongs to the pill. */
/* Gallery contribution fields use the existing compact desktop scale. */
@media (min-width: 701px) {
    .wa .wa-gal-uploadbox .wa-gal-uploadwrap { width: 360px; }
    .wa .wa-gal-uploadbox .wa-gal-sp-bar { min-height: 40px; padding: 0 14px; gap: var(--wag-space-8); }
    .wa .wa-gal-uploadbox .wa-gal-sp-bar > svg { flex-basis: 16px; width: 16px; height: 16px; }
    .wa .wa-gal-uploadbox .wa-gal-sp-bar input { height: 38px; font-size: var(--wag-text-14); }
}

/* B · input = píldora, lupa de fondo */
.wa #wa-pw-species-search, .wa #wa-pw-hotspot-search, .wa #wa-hs-species-search,
.wa .wa-wizard-filter, .wa .wa-osp-search, .wa #wa-obs-search, .wa #wa-ct-species-search,
.wa .wa-collab-search, .wa .wa-mgr-search, .wa .wa-assocreq-search, .wa .wa-hdup-search,
.wa .wa-operators-search input[name="oq"], .wa input[name="oq"] {
    box-sizing: border-box; width: 100%; height: 54px; margin: 0;
    padding: 0 18px 0 46px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c7683' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 16px center / 18px 18px;
    border: 1px solid var(--wag-type-field-focus-line, var(--wag-style-field-focus-line)); border-radius: var(--wag-radius-999);
    box-shadow: var(--wag-shadow-9);
    font-size: var(--wag-text-16); font-weight: 400; color: var(--wag-type-field-focus-ink, var(--wag-style-field-focus-ink)); outline: none;
    -webkit-appearance: none; appearance: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.wa #wa-pw-species-search:focus, .wa #wa-pw-hotspot-search:focus, .wa #wa-hs-species-search:focus,
.wa .wa-wizard-filter:focus, .wa .wa-osp-search:focus, .wa #wa-obs-search:focus, .wa #wa-ct-species-search:focus,
.wa .wa-collab-search:focus, .wa .wa-mgr-search:focus, .wa .wa-assocreq-search:focus, .wa .wa-hdup-search:focus,
.wa input[name="oq"]:focus {
    border-color: var(--wag-type-field-focus-focus-line, var(--wag-style-field-focus-focus-line)); box-shadow: var(--wag-type-field-focus-focus-shadow, var(--wag-style-field-focus-focus-shadow));
}
.wa #wa-pw-hotspot-search:disabled { opacity: .6; }
/* Placeholder: el gris de la home. */
.wa .wa-gal-sp-bar input::placeholder,
.wa .wa-season-search-wrap input::placeholder, .wa #wa-pw-species-search::placeholder,
.wa #wa-pw-hotspot-search::placeholder, .wa #wa-hs-species-search::placeholder,
.wa .wa-wizard-filter::placeholder, .wa .wa-osp-search::placeholder, .wa #wa-obs-search::placeholder,
.wa #wa-ct-species-search::placeholder, .wa .wa-collab-search::placeholder, .wa .wa-mgr-search::placeholder,
.wa .wa-assocreq-search::placeholder, .wa .wa-hdup-search::placeholder, .wa input[name="oq"]::placeholder { color: #6c7683; opacity: 1; }
/* La «x» nativa de type=search sobra: la píldora ya tiene su aire. */
.wa #wa-pw-species-search::-webkit-search-cancel-button, .wa #wa-pw-hotspot-search::-webkit-search-cancel-button,
.wa #wa-hs-species-search::-webkit-search-cancel-button, .wa .wa-wizard-filter::-webkit-search-cancel-button { -webkit-appearance: none; }

/* Oscuro */
html[data-theme="dark"] .wa .wa-gal-sp-bar,
html[data-theme="dark"] .wa .wa-season-search-wrap { background: var(--wag-dark-surface); border-color: #2a313a; box-shadow: var(--wag-shadow-14); }
html[data-theme="dark"] .wa .wa-gal-sp-bar input,
html[data-theme="dark"] .wa .wa-season-search-wrap input.wa-season-search { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa #wa-pw-species-search, html[data-theme="dark"] .wa #wa-pw-hotspot-search,
html[data-theme="dark"] .wa #wa-hs-species-search, html[data-theme="dark"] .wa .wa-wizard-filter,
html[data-theme="dark"] .wa .wa-osp-search, html[data-theme="dark"] .wa #wa-obs-search,
html[data-theme="dark"] .wa #wa-ct-species-search, html[data-theme="dark"] .wa .wa-collab-search,
html[data-theme="dark"] .wa .wa-mgr-search, html[data-theme="dark"] .wa .wa-assocreq-search,
html[data-theme="dark"] .wa .wa-hdup-search, html[data-theme="dark"] .wa input[name="oq"] {
    background-color: var(--wag-dark-surface); border-color: #2a313a; color: var(--wag-dark-ink); box-shadow: var(--wag-shadow-14);
}
/* Dentro de los asistentes, wizard.css pinta todos los input[type=search]
   (.wa-wizard-step-inner input[type="search"], radio 12px) y el de productos
   fuerza height: 52px !important. Aquí gana el buscador común. */
.wa .wa-wizard-step-inner input.wa-wizard-filter,
.wa .wa-wizard-step-inner input#wa-hs-species-search,
.wa .wa-wizard-step-inner input#wa-pw-species-search,
.wa .wa-wizard-step-inner input#wa-pw-hotspot-search,
.wa input#wa-oe-country-filter {
    height: 54px !important; min-height: 54px !important;
    padding: 0 18px 0 46px; border: 1px solid var(--wag-type-field-focus-line, var(--wag-style-field-focus-line)); border-radius: var(--wag-radius-999);
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c7683' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 16px center / 18px 18px;
    box-shadow: var(--wag-shadow-9);
    font-size: var(--wag-text-16); color: var(--wag-type-field-focus-ink, var(--wag-style-field-focus-ink));
}
html[data-theme="dark"] .wa .wa-wizard-step-inner input.wa-wizard-filter,
html[data-theme="dark"] .wa .wa-wizard-step-inner input#wa-hs-species-search,
html[data-theme="dark"] .wa .wa-wizard-step-inner input#wa-pw-species-search,
html[data-theme="dark"] .wa .wa-wizard-step-inner input#wa-pw-hotspot-search,
html[data-theme="dark"] .wa input#wa-oe-country-filter { background-color: var(--wag-dark-surface); border-color: #2a313a; color: var(--wag-dark-ink); box-shadow: var(--wag-shadow-14); }

/* ══ Listas de resultados de los buscadores: las de la home (2026-09-27) ═════
   Marc: «los buscadores unificados no incluyen el dropdown unificado como sí
   lo hace el de la home». Ahora todos pintan la fila de la home
   (assets/js/wa-search-row.js → .wa-search-row) dentro del panel de la home
   (.wa-search-panel: tarjeta blanca, radio 16, sombra suave). Cada contenedor
   conserva su posición; aquí solo cambia el aspecto. */
.wa .wa-season-search-panel,
.wa .wa-oh-suggest,
.wa .wa-osp-suggest,
.wa .wa-obs-search-results,
.wa .wa-gal-hotspot-suggestions,
.wa .wa-gal-species-suggestions,
.wa .wa-hs-suggest {
    background: var(--wag-surface); border: 1px solid var(--wag-type-gal-hotspot-suggestions-line, var(--wag-style-gal-hotspot-suggestions-line)); border-radius: var(--wag-radius-16);
    box-shadow: var(--wag-type-gal-hotspot-suggestions-shadow, var(--wag-style-gal-hotspot-suggestions-shadow));
    padding: 6px; overflow-y: auto; max-height: min(64vh, 460px);
}
.wa .wa-oh-suggest:empty, .wa .wa-osp-suggest:empty, .wa .wa-hs-suggest:empty { display: none; }
/* Las filas son <button>: fuera todo lo que Astra pone a un botón. */
.wa button.wa-search-row--picker,
.wa button.wa-search-row--picker:focus,
.wa button.wa-search-row--picker:active {
    display: flex; align-items: center; gap: var(--wag-space-12); width: 100%;
    margin: 0; padding: 9px 10px; border: 0; border-radius: 11px;
    background: transparent; box-shadow: var(--wag-shadow-14); outline: none;
    font: inherit; color: inherit; text-align: left; text-transform: none; letter-spacing: 0;
    cursor: pointer;
}
.wa button.wa-search-row--picker:hover,
.wa button.wa-search-row--picker:focus-visible,
.wa button.wa-search-row--picker.is-active { background: #f3f6f9; color: inherit; }
/* La galería tenía la lista en oscuro, a juego con su cuadro: ahora es la de la home. */
.wa .wa-gal-hotspot-suggestions .wa-search-en,
.wa .wa-gal-species-suggestions .wa-search-en { color: #1a1e24; }
.wa .wa-gal-hotspot-suggestions .wa-search-sub,
.wa .wa-gal-species-suggestions .wa-search-sub { color: #76828f; }
.wa .wa-gal-hotspot-suggestions .wa-search-thumb,
.wa .wa-gal-species-suggestions .wa-search-thumb { background: #e9eef3; }
.wa .wa-gal-hotspot-suggestions .wa-search-row:hover,
.wa .wa-gal-species-suggestions .wa-search-row:hover { background: #f3f6f9; }
/* Oscuro */
html[data-theme="dark"] .wa .wa-season-search-panel, html[data-theme="dark"] .wa .wa-oh-suggest,
html[data-theme="dark"] .wa .wa-osp-suggest, html[data-theme="dark"] .wa .wa-obs-search-results,
html[data-theme="dark"] .wa .wa-gal-hotspot-suggestions, html[data-theme="dark"] .wa .wa-gal-species-suggestions,
html[data-theme="dark"] .wa .wa-hs-suggest { background: var(--wag-dark-surface); border-color: var(--wag-type-gal-hotspot-suggestions-dark-line, var(--wag-style-gal-hotspot-suggestions-dark-line)); box-shadow: var(--wag-type-gal-hotspot-suggestions-dark-shadow, var(--wag-style-gal-hotspot-suggestions-dark-shadow)); }
html[data-theme="dark"] .wa button.wa-search-row--picker:hover,
html[data-theme="dark"] .wa button.wa-search-row--picker.is-active,
html[data-theme="dark"] .wa .wa-gal-species-suggestions .wa-search-row:hover,
html[data-theme="dark"] .wa .wa-gal-hotspot-suggestions .wa-search-row:hover { background: #232a33; }
html[data-theme="dark"] .wa .wa-search-row--picker .wa-search-en,
html[data-theme="dark"] .wa .wa-gal-species-suggestions .wa-search-en,
html[data-theme="dark"] .wa .wa-gal-hotspot-suggestions .wa-search-en { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa .wa-search-row--picker .wa-search-thumb { background: #11161c; }

/* ══ Buscador + resultados = una sola pieza, como la home (2026-09-27) ═══════
   Marc: «a la unificación del buscador le falta el dropdown unificado». La
   receta es la de la home (front-page.php, .wa-hp-search .wa-search.is-open):
   al abrir, la píldora pasa a 16px arriba y 0 abajo y pierde la sombra; el
   panel se pega debajo sin hueco, sin borde superior, 0 arriba y 16 abajo.
   Aquí no hay clase .is-open que poner: «abierto» es que el panel tenga
   contenido y no esté [hidden], y :has() lo lee desde la píldora. */

/* La píldora, abierta */
.wa .wa-season-search-wrap:has(> .wa-season-search-panel:not([hidden]):not(:empty)),
.wa .wa-gal-sp-bar:has(~ .wa-search-panel:not([hidden]):not(:empty)),
.wa #wa-obs-search:has(~ .wa-obs-search-results:not([hidden]):not(:empty)),
.wa .wa-collab-search:has(~ .wa-obs-search-results:not([hidden]):not(:empty)),
.wa .wa-mgr-search:has(~ .wa-oh-suggest:not(:empty)),
.wa .wa-assocreq-search:has(~ .wa-oh-suggest:not(:empty)),
.wa .wa-osp-search:has(~ .wa-oh-suggest:not(:empty)),
.wa #wa-ct-species-search:has(~ #wa-ct-species-suggest:not([hidden]):not(:empty)),
.wa input#wa-pw-species-search:has(~ #wa-pw-species-results:not(:empty)),
.wa input#wa-pw-hotspot-search:has(~ #wa-pw-hotspot-results:not(:empty)),
.wa input#wa-hs-species-search:has(~ #wa-hs-species-suggest:not(:empty)) {
    border-radius: 16px 16px 0 0 !important;
    box-shadow: var(--wag-shadow-15) !important;
}
/* Ubicación de una lista de observación: vive en un formulario junto a título
   y fecha, así que conserva la forma de campo (radio 10) — solo se cuadra
   abajo para que la lista se pegue igual que en el resto. */
.wa #wa-obs-hotspot-input:has(~ .wa-obs-search-results:not([hidden]):not(:empty)),
.wa .wa-obs-edit-hotspot:has(~ .wa-obs-search-results:not([hidden]):not(:empty)) {
    border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important;
    box-shadow: var(--wag-shadow-15) !important;
}

/* El panel, pegado. Hermano de la píldora: sube 1px para tapar su borde de
   abajo (en la home el panel cuelga por dentro y lo tapa igual). */
.wa .wa-gal-sp-bar ~ .wa-search-panel:not([hidden]):not(:empty),
.wa #wa-obs-search ~ .wa-obs-search-results:not([hidden]):not(:empty),
.wa .wa-collab-search ~ .wa-obs-search-results:not([hidden]):not(:empty),
.wa .wa-mgr-search ~ .wa-oh-suggest:not(:empty),
.wa .wa-assocreq-search ~ .wa-oh-suggest:not(:empty),
.wa .wa-osp-search ~ .wa-oh-suggest:not(:empty),
.wa #wa-ct-species-search ~ #wa-ct-species-suggest:not([hidden]):not(:empty),
.wa #wa-pw-species-search ~ #wa-pw-species-results:not(:empty),
.wa #wa-pw-hotspot-search ~ #wa-pw-hotspot-results:not(:empty),
.wa #wa-hs-species-search ~ #wa-hs-species-suggest:not(:empty),
.wa #wa-obs-hotspot-input ~ .wa-obs-search-results:not([hidden]):not(:empty),
.wa .wa-obs-edit-hotspot ~ .wa-obs-search-results:not([hidden]):not(:empty),
.wa .wa-season-search-wrap > .wa-season-search-panel:not([hidden]):not(:empty) {
    margin-top: -1px;
    border-top: 0;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 14px 34px -14px rgba(20,30,45,.4) !important;
}
/* Los que cuelgan en absoluto: justo debajo, no a 4–8px. */
.wa .wa-gal-sp-bar ~ .wa-search-panel,
.wa #wa-obs-search ~ .wa-obs-search-results,
.wa .wa-collab-search ~ .wa-obs-search-results,
.wa .wa-mgr-search ~ .wa-oh-suggest,
.wa .wa-assocreq-search ~ .wa-oh-suggest,
.wa .wa-osp-search ~ .wa-oh-suggest,
.wa #wa-obs-hotspot-input ~ .wa-obs-search-results,
.wa .wa-obs-edit-hotspot ~ .wa-obs-search-results { top: 100%; }
/* Temporada: el panel es hijo de la píldora (borde de 1px) → como en la home. */
.wa .wa-season-search-wrap > .wa-season-search-panel { top: 100%; left: -1px; right: -1px; margin-top: 0; }
/* Viaje a medida: el JS lo coloca en fixed a 4px de la píldora (top en línea). */
.wa #wa-ct-species-search ~ #wa-ct-species-suggest:not([hidden]):not(:empty) { margin-top: -5px; }
html[data-theme="dark"] .wa .wa-gal-sp-bar ~ .wa-search-panel:not([hidden]):not(:empty),
html[data-theme="dark"] .wa #wa-obs-search ~ .wa-obs-search-results:not([hidden]):not(:empty),
html[data-theme="dark"] .wa .wa-collab-search ~ .wa-obs-search-results:not([hidden]):not(:empty),
html[data-theme="dark"] .wa .wa-mgr-search ~ .wa-oh-suggest:not(:empty),
html[data-theme="dark"] .wa .wa-assocreq-search ~ .wa-oh-suggest:not(:empty),
html[data-theme="dark"] .wa .wa-osp-search ~ .wa-oh-suggest:not(:empty),
html[data-theme="dark"] .wa #wa-ct-species-search ~ #wa-ct-species-suggest:not([hidden]):not(:empty),
html[data-theme="dark"] .wa #wa-pw-species-search ~ #wa-pw-species-results:not(:empty),
html[data-theme="dark"] .wa #wa-pw-hotspot-search ~ #wa-pw-hotspot-results:not(:empty),
html[data-theme="dark"] .wa #wa-hs-species-search ~ #wa-hs-species-suggest:not(:empty),
html[data-theme="dark"] .wa #wa-obs-hotspot-input ~ .wa-obs-search-results:not([hidden]):not(:empty),
html[data-theme="dark"] .wa .wa-obs-edit-hotspot ~ .wa-obs-search-results:not([hidden]):not(:empty),
html[data-theme="dark"] .wa .wa-season-search-wrap > .wa-season-search-panel:not([hidden]):not(:empty) {
    box-shadow: 0 24px 52px -6px rgba(0,0,0,.5) !important;
}

/* «Comparte una foto»: el cuadro es oscuro SIEMPRE, también con la web en claro,
   y su buscador va con él (Marc, 2026-10-10: «debería ser todo estilo dark mode
   igual que el módulo»). Antes, en claro, este bloque forzaba la lista a blanco y
   el texto escrito a oscuro (!important), mientras el texto de las filas y el
   hover seguían en oscuro → letras ilegibles, hover negro sobre blanco y lo que
   se escribía, oscuro sobre la píldora oscura. Todas las .wa-gal-sp-bar viven
   dentro de .wa-gal-uploadbox (inc/gallery/frontend.php y page.php); la paleta es
   la del bloque «Contribution module» del final. La hoja móvil (.wa-gal-sheet-*)
   es otra pieza: no se toca. */
.wa .wa-gal-uploadbox .wa-gal-sp-bar input.wa-gal-hotspot-input,
.wa .wa-gal-uploadbox .wa-gal-sp-bar input.wa-gal-species-input { color: var(--wag-dark-ink); }
.wa .wa-gal-uploadbox .wa-gal-sp-bar input::placeholder,
.wa .wa-gal-uploadbox .wa-gal-sp-bar > svg { color: #93a0ab; }
.wa .wa-gal-uploadbox .wa-gal-sp-bar:focus-within { border-color: #46525e; box-shadow: 0 0 0 3px rgba(79,173,212,.18); }
.wa .wa-gal-uploadbox .wa-search-panel .wa-search-thumb { background: #11161c; }
.wa .wa-gal-uploadbox .wa-gal-sp-bar ~ .wa-search-panel:not([hidden]):not(:empty) { box-shadow: 0 24px 52px -6px rgba(0,0,0,.5) !important; }
/* Etiquetas Ave / Mamífero / País / Hotspot: las del modo oscuro (bloque .wa-search-badge). */
.wa-gal-uploadbox .wa-search-badge--birds { background: rgba(43,124,176,.22); color: #7cc1ea; }
.wa-gal-uploadbox .wa-search-badge--mammals { background: rgba(106,87,192,.22); color: #a99af0; }
.wa-gal-uploadbox .wa-search-badge--country { background: rgba(58,157,93,.22); color: #79d49b; }
.wa-gal-uploadbox .wa-search-badge--operator { background: rgba(47,102,144,.26); color: #8ab8dd; }
.wa-gal-uploadbox .wa-search-badge--hotspot { background: rgba(194,119,43,.22); color: #e0a868; }
.wa-gal-uploadbox .wa-search-badge--hotspot-nature { background: rgba(46,139,98,.22); color: #6dcfa0; }
.wa-gal-uploadbox .wa-search-badge--hotspot-business { background: rgba(201,144,32,.22); color: #d4aa55; }
.wa .wa-gal-sp-bar ~ .wa-search-panel .wa-gal-ac-item { padding: 0; color: inherit; }
.wa .wa-gal-sp-bar ~ .wa-search-panel .wa-gal-ac-item:hover { background: transparent; }

/* Filas comunes de hotspot/país y de persona (wa-search-row.js). La persona
   lleva avatar redondo; sin foto, el icono gris de la home. */
.wa .wa-search-row--picker .wa-search-thumb--user,
.wa .wa-search-row--picker .wa-search-thumb--user img { border-radius: 50%; }
.wa .wa-search-row--picker .wa-search-thumb svg { color: #8a95a3; }
html[data-theme="dark"] .wa .wa-search-row--picker .wa-search-sub,
html[data-theme="dark"] .wa .wa-search-row--picker .wa-search-es { color: #93a0ab; }

/* ══ Descripción + mensaje, sin mapa (operadores), 2026-09-27 ════════════════
   Marc: la altura de la descripción de Otus Wildlife Tours (188px: texto de
   ~5 líneas que cabe entero) es la estándar para todos; lo que sea más largo
   lleva «Leer más». Antes: 188 si el texto cabía y 227 si no (el botón sumaba
   altura), y el módulo de mensaje medía siempre 230 por una altura mínima
   pensada para cuando al lado hay un mapa → blanco dentro del módulo.
   Ahora: caja de 188 (24 + 140 de texto + 24), «Leer más» encima del
   degradado sin añadir altura, y el mensaje a la misma altura que la caja.
   Solo el diseño SIN mapa: las fichas con mapa no cambian. */
.wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-hotspot-desc {
    position: relative; box-sizing: border-box; min-height: 188px;
}
/* 104 y no 140 (Marc, 2026-10-01: «Leer más» se montaba encima del texto).
   La caja sigue midiendo 188: 24 de padding + 104 de texto + 12 de aire + el
   botón (30) + 18 abajo. El botón ya no tapa ninguna línea. */
.wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-hotspot-desc-body:not(.is-expanded) { max-height: 104px; }
.wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-hotspot-desc-body:not(.is-expanded) ~ .wa-hotspot-desc-more {
    position: absolute; left: 32px; bottom: 18px; margin: 0; z-index: 2;
    background: var(--wa-card, #fff);
}
/* Desplegada: la caja crece con el texto y el botón vuelve debajo. */
.wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-hotspot-desc:has(.is-expanded) { height: auto; }
html[data-theme="dark"] .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-hotspot-desc-body:not(.is-expanded) ~ .wa-hotspot-desc-more { background: var(--wag-dark-surface); }
/* El mensaje, gemelo de la descripción: misma caja (borde, radio, sombra,
   sombra) y la misma altura de 188, también en móvil donde van apilados. Si
   el nombre del negocio es largo y el mensaje pasa de 188, la descripción
   se estira con él (min-height + flex): las dos cajas siempre iguales. */
.wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-contact-cta {
    box-sizing: border-box; min-height: 188px; padding: 20px 24px;
    border: 1px solid var(--wa-line, #eef0f3); border-radius: var(--wag-type-contact-cta-radius, var(--wag-style-contact-cta-radius));
    box-shadow: var(--wag-shadow-10);
}
html[data-theme="dark"] .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-contact-cta {
    background: var(--wag-dark-surface); border-color: var(--wag-type-contact-cta-dark-line, var(--wag-style-contact-cta-dark-line)); box-shadow: var(--wag-shadow-14);
}
@media (min-width: 901px) {
    .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) { align-items: stretch; }
    .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-desc-map-layout__map { min-height: 0; align-self: stretch; }
    .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-desc-map-layout__map > .wa-contact-cta { flex: 1; margin-top: 0; }
    .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-desc-map-layout__text { display: flex; flex-direction: column; }
    .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)) .wa-desc-map-layout__text > .wa-hotspot-desc { flex: 1; }
    /* Con el texto desplegado, el mensaje no se estira con él. */
    .wa-desc-map-layout:not(:has(.wa-loc-map-wrap)):has(.is-expanded) .wa-desc-map-layout__map { align-self: start; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   «Elige tus habitaciones» — ficha de alojamiento (2026-09-28)
   Una fila por ocupación y un contador, con el inventario compartido en puntos.
   Mismos tokens que las tarjetas de habitación de antes (.wa-stay-room-type):
   borde #e1e6e3, títulos #193525, texto suave #697871, verde #1f6e47; azul
   #2b7cb0 de las acciones de la caja de reserva.
   ═══════════════════════════════════════════════════════════════════════════ */
.wa-sr-for { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin: -2px 0 14px; color: #697871; font-size: 13.5px; }
.wa-sr-for.is-warn { color: var(--wag-type-sr-for-ink, var(--wag-style-sr-for-ink)); }
.wa .wa-sr-datelink, .wa .wa-sr-datelink:hover, .wa .wa-sr-datelink:focus { padding: 0; border: 0; background: none; color: var(--wag-type-datelink-ink, var(--wag-style-enlace-ink)); font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; box-shadow: var(--wag-shadow-14); }
.wa-sr-room { container: wa-stay-room / inline-size; margin: 0 0 14px; overflow: hidden; border: 1px solid var(--wag-type-sr-room-line, var(--wag-style-sr-room-line)); border-radius: var(--wag-type-sr-room-radius, var(--wag-style-sr-room-radius)); background: var(--wag-surface); }
.wa-sr-head { display: grid; grid-template-columns: 150px 1fr; gap: 14px; padding: 12px; }
.wa-sr-photo { width: 150px; height: 100%; min-height: 104px; max-height: 150px; border-radius: var(--wag-type-sr-photo-radius, var(--wag-style-sr-photo-radius)); object-fit: cover; background: var(--wag-type-sr-photo-bg, var(--wag-style-sr-photo-bg)); }
.wa-sr-info h4 { margin: 2px 0 4px; color: #193525; font-size: 17px; }
.wa-sr-head:not(:has(.wa-sr-photo)) { grid-template-columns: 1fr; }
/* Rate choices reuse WAG's selectable room cards and booking-field styles. */
.wa-sr-plan-picker { margin: 4px 12px 16px; }
.wa-sr-plan-options { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); margin-top: var(--wag-space-8); }
.wa-sr-plan-options[hidden] { display: none; }
.wa-sr-plan-options .wa-stay-room-type { min-width: 0; gap: var(--wag-space-8); }
.wa-sr-plan-options .wa-bk-fixeddates-val { overflow-wrap: anywhere; line-height: 1.4; }
.wa-sr-plan-options small { font-size: var(--wag-text-12); font-weight: 500; }
.wa-sr-plan-details { padding: 0 12px 14px; }
.wa-sr-plan-details .wa-sr-facts { margin: 0; line-height: 1.7; overflow-wrap: anywhere; }
.wa-sr-facts { margin: 0 0 6px; color: #697871; font-size: var(--wag-text-13); }
.wa-sr-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 6px; }
.wa-sr-chips span { padding: 2px 9px; border: 1px solid #e1e6e3; border-radius: var(--wag-radius-999); background: #f7f9f8; color: #4f5d56; font-size: var(--wag-text-12); }
.wa-sr-left { display: flex; align-items: center; gap: var(--wag-space-8); margin: 6px 0 0; color: #697871; font-size: 12.5px; }
.wa-sr-left.is-few { color: var(--wag-type-sr-left-ink, var(--wag-style-sr-left-ink)); font-weight: 600; }
.wa-sr-dots { display: flex; flex-wrap: wrap; gap: 3px; }
.wa-sr-dots i { width: 9px; height: 9px; border-radius: 50%; background: #2f9a5a; }
.wa-sr-dots i.is-mine { background: #2b7cb0; }
.wa-sr-dots i.is-busy { background: #d5dbe2; }
.wa-sr-rates { border-top: 1px solid var(--wag-type-sr-rates-topline, var(--wag-style-sr-rates-topline)); }
.wa-sr-rate { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 11px 12px; border-bottom: 1px dashed var(--wag-type-sr-rate-underline, var(--wag-style-sr-rate-underline)); }
.wa-sr-rate:last-child { border-bottom: 0; }
.wa-sr-rate.is-on { background: var(--wag-type-sr-rate-bg, var(--wag-style-sr-rate-bg)); }
.wa-sr-occ { display: flex; align-items: center; gap: 10px; }
.wa-sr-people { display: flex; flex-shrink: 0; align-items: center; gap: 1px; color: var(--wag-type-sr-people-ink, var(--wag-style-sr-people-ink)); }
.wa-sr-people svg { width: 17px; height: 17px; }
.wa-sr-people svg.is-empty { color: #c6cdd5; }
.wa-sr-more { margin-left: 3px; color: var(--wag-type-sr-more-ink, var(--wag-style-sr-more-ink)); font-size: var(--wag-text-12); font-weight: 700; }
.wa-sr-occ-text b { color: #193525; font-size: var(--wag-text-14); }
.wa-sr-badge { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: var(--wag-radius-999); background: #eaf5ee; color: #1f6e47; font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; vertical-align: 1px; }
.wa-sr-price { text-align: right; }
.wa-sr-price b { display: block; color: #111; font-size: 17px; font-weight: 800; white-space: nowrap; }
.wa-sr-price small { color: #697871; font-size: var(--wag-text-12); }
.wa-sr-step { display: flex; align-items: center; border: 1px solid var(--wag-type-sr-step-line, var(--wag-style-sr-step-line)); border-radius: var(--wag-radius-999); background: var(--wag-surface); }
.wa .wa-sr-step button, .wa .wa-sr-step button:hover, .wa .wa-sr-step button:focus { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: none; color: #2b7cb0; font-size: 19px; line-height: 1; cursor: pointer; box-shadow: var(--wag-shadow-14); }
.wa .wa-sr-step button:disabled { color: #c6cdd5; cursor: default; }
.wa .wa-sr-step button:focus-visible { outline: 3px solid rgba(43,124,176,.25); outline-offset: 1px; }
.wa-sr-step output { min-width: 22px; color: #193525; font-weight: 800; text-align: center; }
/* El resumen dentro del recuadro «Alojamiento seleccionado» de la caja de
   reserva: las líneas van como su <strong>, no como su etiqueta en versalitas. */
.wa-sr-sum { margin: 2px 0 0; padding: 0; list-style: none; }
.wa-sr-sum li { display: flex; justify-content: space-between; gap: 10px; padding: 2px 0; }
.wa-bk-room-type-summary .wa-sr-sum span, .wa-bk-room-type-summary .wa-sr-sum-total span { color: #193525; font-size: var(--wag-text-13); font-weight: 600; letter-spacing: 0; text-transform: none; }
.wa-bk-room-type-summary .wa-sr-sum li span:last-child { font-weight: 800; white-space: nowrap; }
.wa-sr-sum-total { display: flex; justify-content: space-between; gap: 10px; margin-top: 5px; padding-top: 5px; border-top: 1px solid var(--wag-type-sr-sum-total-topline, var(--wag-style-sr-sum-total-topline)); }
.wa-bk-room-type-summary .wa-sr-sum-total span { color: #708078; font-weight: 400; }
.wa-sr-sum-total strong { color: #193525; font-size: 13.5px; }

/* Mínimo táctil de 44 px (Apple HIG) para lo que se pulsa con el dedo, como
   en el resto de controles móviles del sitio. */
.tour-book-btn-full.wa-bk-submit { min-height: 44px; }
@media (max-width: 700px) {
    .wa .wa-sr-step button, .wa .wa-sr-step button:hover, .wa .wa-sr-step button:focus { width: 44px; height: 44px; }
    .wa-sr-step output { min-width: 26px; }
    .wa .wa-sr-datelink { display: inline-flex; align-items: center; min-height: 44px; }
    .wa-sr-head { grid-template-columns: 96px 1fr; gap: var(--wag-space-12); }
    .wa-sr-photo { width: 96px; min-height: 96px; }
    .wa-sr-rate { grid-template-columns: 1fr auto; }
    .wa-sr-price { grid-column: 1; display: flex; gap: 6px; align-items: baseline; text-align: left; }
    .wa-sr-price b { display: inline; font-size: 15px; }
    .wa-sr-step { grid-column: 2; grid-row: 1 / span 2; }
}
/* A room may sit in a narrow desktop column beside the booking widget. */
@container wa-stay-room (max-width: 520px) {
    .wa-sr-rate { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 14px 12px; }
    .wa-sr-occ { min-width: 0; gap: var(--wag-space-8); }
    .wa-sr-people svg { width: 14px; height: 14px; }
    .wa-sr-occ-text { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
    .wa-sr-badge { margin-left: 0; white-space: nowrap; }
    .wa-sr-price { grid-column: 1; display: flex; gap: 6px; align-items: baseline; text-align: left; }
    .wa-sr-price b { display: inline; font-size: 15px; }
    .wa-sr-step { grid-column: 2; grid-row: 1 / span 2; }
}
@container wa-stay-room (max-width: 340px) {
    .wa-sr-occ { flex-wrap: wrap; gap: 4px 6px; }
    .wa-sr-occ-text { flex-basis: 100%; }
}

html[data-theme="dark"] .wa-sr-for { color: var(--wag-type-sr-for-dark-ink, var(--wag-style-sr-for-dark-ink)); }
html[data-theme="dark"] .wa-sr-room { background: var(--wag-type-sr-room-dark-bg, var(--wag-style-sr-room-dark-bg)); border-color: var(--wag-type-sr-room-dark-line, var(--wag-style-sr-room-dark-line)); }
html[data-theme="dark"] .wa-sr-plan-picker .wa-bk-field > span { color: var(--wag-color-dark-muted); }
html[data-theme="dark"] .wa-sr-plan-options .wa-stay-room-type { background: var(--wag-color-dark-field); border-color: var(--wag-color-dark-edge); }
html[data-theme="dark"] .wa-sr-plan-options .wa-stay-room-type:is(:hover, .is-selected) { background: var(--wag-type-sr-rate-dark-bg, var(--wag-style-sr-rate-dark-bg)); border-color: var(--wag-dark-accent); }
html[data-theme="dark"] .wa-sr-plan-options .wa-bk-fixeddates-val { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-sr-plan-options strong { color: var(--wag-dark-accent); }
html[data-theme="dark"] .wa-sr-info h4, html[data-theme="dark"] .wa-sr-occ-text b,
html[data-theme="dark"] .wa-sr-people, html[data-theme="dark"] .wa-sr-step output,
html[data-theme="dark"] .wa-sr-price b { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-sr-facts, html[data-theme="dark"] .wa-sr-left,
html[data-theme="dark"] .wa-sr-price small, html[data-theme="dark"] .wa-sr-more { color: #8e9ba6; }
html[data-theme="dark"] .wa-sr-chips span { background: #232a33; border-color: #333c47; color: #b8c4cd; }
html[data-theme="dark"] .wa-sr-rates, html[data-theme="dark"] .wa-sr-rate { border-color: #333c47; }
html[data-theme="dark"] .wa-sr-rate.is-on { background: var(--wag-type-sr-rate-dark-bg, var(--wag-style-sr-rate-dark-bg)); }
html[data-theme="dark"] .wa-sr-people svg.is-empty, html[data-theme="dark"] .wa-sr-dots i.is-busy { color: #46525e; background: #46525e; }
html[data-theme="dark"] .wa-sr-people svg.is-empty { background: none; }
html[data-theme="dark"] .wa-sr-step { background: var(--wag-type-sr-step-dark-bg, var(--wag-style-sr-step-dark-bg)); border-color: var(--wag-type-sr-step-dark-line, var(--wag-style-sr-step-dark-line)); }
html[data-theme="dark"] .wa .wa-sr-step button { color: #8ecbef; }
html[data-theme="dark"] .wa .wa-sr-step button:disabled { color: #46525e; }
html[data-theme="dark"] .wa-sr-badge { background: #14271c; color: #95d6a8; }
html[data-theme="dark"] .wa-sr-photo { background: var(--wag-type-sr-photo-dark-bg, var(--wag-style-sr-photo-dark-bg)); }
html[data-theme="dark"] .wa-bk-room-type-summary .wa-sr-sum span,
html[data-theme="dark"] .wa-sr-sum-total strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-sr-sum-total { border-color: var(--wag-type-sr-sum-total-dark-line, var(--wag-style-sr-sum-total-dark-line)); }
/* Atajos del selector de habitaciones (2026-09-28): «Ver habitaciones» dentro
   del recuadro vacío y, en el móvil, la barra que sube a la caja de reserva. */
/* «Elegir habitaciones» dentro del recuadro vacío: el botón de contorno de la
   casa (.wa-tour-book-btn pone color, borde y hover), a todo el ancho. */
.wa .wa-sr-jump { justify-content: center; gap: 6px; width: 100%; min-height: 38px; margin-top: 8px; cursor: pointer; }
.wa-sr-jump svg { flex: 0 0 auto; }
/* La barra: el MISMO patrón que la barra inferior de la ficha de especie en
   móvil (.species-pill-wrapper): anclada abajo de borde a borde, con filete
   arriba y el hueco de la barra de inicio del iPhone. Dentro, el botón de
   «Solicitar reserva» tal cual (sus clases las copia stay-rooms.js). */
.wa-sr-bar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 1001; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--wag-type-sr-bar-topline, var(--wag-style-sr-bar-topline)); background: var(--wag-surface); box-shadow: var(--wag-type-sr-bar-shadow, var(--wag-style-sr-bar-shadow)); }
.wa-sr-bar[hidden] { display: none; }
html[data-theme="dark"] .wa-sr-bar { background: var(--wag-type-sr-bar-dark-bg, var(--wag-style-sr-bar-dark-bg)); border-top-color: var(--wag-type-sr-bar-dark-topline, var(--wag-style-sr-bar-dark-topline)); box-shadow: var(--wag-type-sr-bar-dark-shadow, var(--wag-style-sr-bar-dark-shadow)); }
@media (max-width: 700px) {
    .wa .wa-sr-jump { min-height: 44px; font-size: 13.5px; }
}
/* Los dos saltos del selector no quedan bajo la cabecera fija. */
.wa [data-booking-widget], #wa-stay-rooms { scroll-margin-top: 72px; }

/* ══ MÓVIL: los modales ocupan la pantalla entera (Marc, 2026-09-28) ═════════
   Una tarjeta centrada de 400–600px con 20px de relleno alrededor es un patrón
   de escritorio. En 375px de ancho se queda en una ventanita con los bordes
   recortados, el teclado tapa medio formulario y el fondo se ve por los cuatro
   costados. A pantalla completa el modal SE COMPORTA COMO UNA PANTALLA: el
   contenido respira, el teclado empuja lo suyo y no hay nada detrás que
   distraiga.

   LA RECETA NO ES NUEVA: es la que ya usan el perfil biológico
   (.wa-bio-modal, línea 5930) y el perfil de entorno (.wa-hotspot-env-modal,
   24227) —«padding:0 + place-items:stretch» arriba, «100dvh sin bordes ni
   esquinas» abajo—. Aquí sólo se extiende a los que faltaban; esos dos NO se
   repiten.

   `place-items` vale para los dos tipos de contenedor: en los que son grid
   coloca la tarjeta, y en los flex equivale a align-items, que es lo que hace
   falta para que estire a lo alto. `dvh` y no `vh` porque en el móvil la barra
   del navegador entra y sale: con `vh` la tarjeta mide siempre la pantalla sin
   barra y el final del formulario queda debajo del borde.

   FUERA a propósito:
   · .wa-report-modal (denunciar conversación) — es `position:absolute` dentro
     del dock del chat, que en móvil YA ocupa la pantalla; hacerlo fijo lo
     sacaría de su dock.
   · .wa-wizard-resume-overlay (wizard.css:2492) y las hojas de la galería y
     los menús de lista — ya tienen su propio tratamiento móvil: son hojas
     ancladas abajo, no tarjetas centradas.
   · Los modales de sólo-admin del Control Center (#pip-ov-modal y compañía):
     ese panel se usa en escritorio. */
@media (max-width: 700px) {
    /* El contenedor deja de centrar y de acolchar. */
    .wa-modal,
    .wa-season-modal,
    .wa-auth-overlay,
    .wa-claim-modal,
    .wa-obs-import-modal,
    .wa-species-inspector-modal {
        padding: 0;
        place-items: stretch;
    }
    /* La tarjeta: todo el ancho, todo el alto, sin esquinas ni borde. El
       relleno de abajo reserva la barra de inicio del iPhone, igual que
       .wa-sr-bar y el resto de piezas ancladas del tema. */
    .wa-modal-box,
    .wa-season-modal-card,
    .wa-auth-modal,
    .wa-claim-modal-card,
    .wa-obs-import-dialog,
    .wa-species-inspector-dialog {
        width: 100%;
        max-width: none;
        max-height: 100vh;
        max-height: 100dvh;
        border: 0;
        border-radius: 0;
        overflow-y: auto;
        padding-bottom: calc(22px + env(safe-area-inset-bottom));
    }
    /* Contacto, Enviar comentarios, Viaje a medida y el aviso de producto
       comparten .wa-modal-box, que trae 44px de relleno lateral: en 375px eso
       se come una cuarta parte del ancho. El canalón del sitio son 16. */
    .wa-modal-box {
        padding: 26px 16px calc(26px + env(safe-area-inset-bottom));
    }
    /* Inicio de sesión a pantalla completa (Marc, 2026-10-06: «la X está muy
       pegada al resto»): el relleno de arriba era el de la tarjeta de
       escritorio. La ✕ baja y se separa del borde (y de la muesca del iPhone),
       con zona táctil de 44, y el contenido empieza bastante más abajo. */
    .wa-auth-modal { padding-top: calc(76px + env(safe-area-inset-top)); padding-left: 20px; padding-right: 20px; }
    /* /sign-in/: tarjeta dentro de la página, no pantalla completa. */
    .wa-signin-main { padding: 20px 16px 40px; }
    .wa-auth-pagebox .wa-auth-modal--page {
        max-height: none; overflow: visible; border-radius: var(--wag-radius-16);
        padding: 26px 20px 24px;
    }
    .wa-auth-modal .wa-auth-close { top: calc(16px + env(safe-area-inset-top)); right: 14px; width: 44px; height: 44px; line-height: 44px; font-size: 30px; }
    /* ── El aviso de reserva NO va a pantalla completa: va anclado abajo ──
       Los de arriba son formularios y contenido, y ahí ocupar la pantalla se
       gana el sitio: hay teclado, hay campos, hay scroll. Éste es una pregunta
       de sí o no («¿seguro que quieres cancelar?») y no tiene nada de eso: a
       pantalla completa quedaban 470px de blanco debajo de los botones.

       Anclado abajo dice lo que es —una interrupción, no una pantalla—, deja
       ver que tu reserva sigue detrás mientras decides, y pone los dos botones
       donde llega el pulgar. Los tokens son los de la hoja que ya tiene el
       tema para el mismo caso, el diálogo de reanudar wizard
       (wizard.css:2492): `align-items:end`, ancho completo, esquinas sólo
       arriba y el hueco de la barra de inicio con `max(28px, env(…))`.

       La entrada se apoya en el mecanismo que ya tenía: la transición de
       `transform` y la clase `.is-in` que bookings.js pone al frame
       siguiente. Basta con que el reposo sea «fuera de pantalla por abajo»
       para que suba deslizando — y, como al cerrar se quita `.is-in` antes de
       borrarlo, baja igual en vez de desaparecer de golpe. */
    .wa-bkmodal-overlay {
        padding: 0;
        align-items: end;
    }
    .wa-bkmodal {
        width: 100%;
        max-width: none;
        max-height: 88vh;
        overflow-y: auto;
        border-radius: 24px 24px 0 0;
        padding: 30px 22px max(28px, env(safe-area-inset-bottom));
        transform: translateY(100%);
    }
}

/* ══ /profile/observations/ — Importar, Crear, CSV y PDF con la forma de
      .wa-tour-book-btn (Marc, 2026-09-29) ═══════════════════════════════════

   POR QUÉ. Los cuatro eran rellenos: «Importar» y «Crear» heredaban el verde
   grande de .wa-auth-submit (15px/800, radio 12) y «PDF» era un rectángulo
   verde macizo. Cuatro acciones de servicio compitiendo por la atención en una
   pantalla que ya tiene su contenido, las listas.

   La referencia es .wa-tour-book-btn (wildatlas.css:8784), y su comentario ya
   explica el razonamiento: relleno = «esta es LA acción de la pantalla»; en
   contorno sigue diciendo que se puede pulsar sin gritar. Aquí se copia su
   receta entera —fondo blanco, filete de 1px, radio 8, 12.5px/600 y el color
   en el texto— cambiando sólo el tono.

   EL COLOR AHORA SIGNIFICA EL FORMATO: CSV verde, PDF rojo (Marc). Antes era
   justo al revés de lo intuitivo — el verde se lo llevaba el PDF.

   Los tonos NO son inventados: son el mismo azul de la referencia (#2b7cb0),
   el verde que ya usa .wa-follow-btn (#1f7a4d) y el rojo de los avisos de
   reserva (#c0432b). Y los filetes y los fondos de hover salen de mezclar cada
   tono con blanco en la MISMA proporción que la referencia (77% para el
   filete, 94% para el hover), así que los tres pesan igual en pantalla.

   Se conserva el `min-height` de cada uno: «Crear» va en una fila con campos
   de 44px y «Importar» junto a un desplegable de 40. Igualarlos a la altura
   natural de la referencia (~31px) los dejaría cojos respecto a su fila. */
.wa .wa-obs-import-preview.wa-auth-submit,
.wa .wa-lists-create-btn.wa-auth-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    border: 1px solid var(--wag-type-lists-create-line, var(--wag-style-silueta-line));
    border-radius: var(--wag-radius-8);
    background: var(--wag-surface);
    color: var(--wag-type-lists-create-ink, var(--wag-style-silueta-ink)) !important;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    text-align: center;
    text-decoration: none;
    box-shadow: var(--wag-shadow-14);
    cursor: pointer;
    white-space: nowrap;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
/* Cada uno conserva la altura que pide su fila. */
.wa .wa-obs-import-preview.wa-auth-submit { min-height: 40px; }
.wa .wa-obs-create .wa-lists-create-btn.wa-auth-submit { min-height: 44px; height: 44px; }

.wa .wa-lists-create-btn.wa-auth-submit:hover,
.wa .wa-lists-create-btn.wa-auth-submit:focus {
    background: var(--wag-type-lists-create-hover-bg, var(--wag-style-silueta-hover-bg));
    border-color: var(--wag-type-lists-create-hover-line, var(--wag-style-silueta-hover-line));
    color: var(--wag-type-lists-create-hover-ink, var(--wag-style-silueta-hover-ink)) !important;
    outline: none;
}

/* IMPORTAR va dentro de una caja OSCURA (.wa-obs-import, fondo #18222c), no
   sobre blanco como los otros tres. Un botón blanco ahí dentro sería la única
   mancha clara del recuadro y se leería como un parche.

   Así que conserva la FORMA de la referencia —radio 8, filete de 1px,
   12.5px/600, relleno 7×14— y toma el COLOR de su propia caja: el mismo fondo
   y el mismo filete que el desplegable y «Seleccionar fichero» que tiene al
   lado (#24313d sobre #405362, wildatlas.css:11208), y el azul del kicker de
   la propia sección (#8ab9da). Queda como un control más de la fila, que es lo
   que es, en vez de como un botón pegado encima.

   El hover es el que ya usa su vecino .wa-obs-import-file: borde #6ca8ce,
   fondo #2a3946, texto blanco. */
.wa .wa-obs-import .wa-obs-import-preview.wa-auth-submit {
    background: #24313d;
    border-color: #405362;
    color: #8ab9da !important;
}
.wa .wa-obs-import .wa-obs-import-preview.wa-auth-submit:hover,
.wa .wa-obs-import .wa-obs-import-preview.wa-auth-submit:focus {
    background: #2a3946;
    border-color: #6ca8ce;
    color: #fff !important;
    outline: none;
}

/* ── CSV y PDF: la forma del chip que tienen al lado ────────────────────
   «Seleccionar todo» (.wa-obs-export-chip, wildatlas.css:10691) y estos dos
   viven en la MISMA barra y hacen el mismo tipo de trabajo: elegir y llevarse.
   Con forma distinta parecían de dos sistemas. Ahora comparten píldora,
   altura de 31px y 12px/700; lo único propio es el color del formato y el
   icono de descarga.

   El icono no es nuevo: es el que ya usan el informe DAC7 y /deltabirding/.
   Se le da `gap` porque el chip no lo traía —no tenía icono que separar—. */
.wa .wa-obs-export-btn,
.wa .wa-obs-export-detail .wa-obs-export-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 31px;
    padding: 0 12px;
    border: 1px solid #e3e8ee;
    border-radius: var(--wag-radius-999);
    background: var(--wag-surface);
    font-size: var(--wag-text-12);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    box-shadow: var(--wag-shadow-14);
    cursor: pointer;
    white-space: nowrap;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.wa .wa-obs-export-btn svg { flex: 0 0 auto; }

/* CSV — verde */
.wa .wa-obs-export-btn--csv,
.wa .wa-obs-export-detail .wa-obs-export-btn--csv {
    border-color: #cce1d7;
    color: #1f7a4d !important;
    background: var(--wag-surface);
}
.wa .wa-obs-export-btn--csv:hover,
.wa .wa-obs-export-btn--csv:focus,
.wa .wa-obs-export-detail .wa-obs-export-btn--csv:hover,
.wa .wa-obs-export-detail .wa-obs-export-btn--csv:focus {
    background: #f1f7f4;
    border-color: var(--wag-accent);
    color: #175c3a !important;
    outline: none;
}

/* PDF — rojo */
.wa .wa-obs-export-btn--pdf,
.wa .wa-obs-export-detail .wa-obs-export-btn--pdf {
    border-color: #f1d5cf;
    color: #c0432b !important;
    background: var(--wag-surface);
}
.wa .wa-obs-export-btn--pdf:hover,
.wa .wa-obs-export-btn--pdf:focus,
.wa .wa-obs-export-detail .wa-obs-export-btn--pdf:hover,
.wa .wa-obs-export-detail .wa-obs-export-btn--pdf:focus {
    background: #fbf3f2;
    border-color: #c0432b;
    color: #93331f !important;
    outline: none;
}

/* Desactivados: CSV y PDF nacen así hasta que eliges una lista. El hover no
   puede devolverles el gris de antes, que era el color del botón viejo. */
.wa .wa-obs-export-btn:disabled { opacity: .44; cursor: default; }
.wa .wa-obs-export-btn--csv:disabled:hover { background: var(--wag-surface); border-color: #cce1d7; color: #1f7a4d !important; }
.wa .wa-obs-export-btn--pdf:disabled:hover { background: var(--wag-surface); border-color: #f1d5cf; color: #c0432b !important; }

/* Oscuro: el mismo esquema de la referencia —fondo de tarjeta, filete apagado
   y el tono subido de luz— con el verde y el rojo en su propio tono. */
html[data-theme="dark"] .wa .wa-lists-create-btn.wa-auth-submit {
    background: var(--wag-type-lists-create-dark-bg, var(--wag-style-silueta-dark-bg));
    border-color: var(--wag-type-lists-create-dark-line, var(--wag-style-silueta-dark-line));
    color: var(--wag-type-lists-create-dark-ink, var(--wag-style-silueta-dark-ink)) !important;
}
/* En oscuro los chips usan los tokens de tarjeta (wildatlas.css:24353): el
   fondo y el filete salen de ahí, y el color lo pone el formato. */
html[data-theme="dark"] .wa .wa-obs-export-btn,
html[data-theme="dark"] .wa .wa-obs-export-detail .wa-obs-export-btn {
    background: var(--wa-card, #1a1f26);
    border-color: var(--wa-line, #2a313a);
}
html[data-theme="dark"] .wa .wa-obs-export-btn--csv,
html[data-theme="dark"] .wa .wa-obs-export-detail .wa-obs-export-btn--csv { border-color: #2f4b3d; color: #6ec79b !important; }
html[data-theme="dark"] .wa .wa-obs-export-btn--pdf,
html[data-theme="dark"] .wa .wa-obs-export-detail .wa-obs-export-btn--pdf { border-color: #5a3730; color: #ee9a86 !important; }
html[data-theme="dark"] .wa .wa-lists-create-btn.wa-auth-submit:hover { background: var(--wag-type-lists-create-dark-hover-bg, var(--wag-style-silueta-dark-hover-bg)); border-color: var(--wag-type-lists-create-dark-hover-line, var(--wag-style-silueta-dark-hover-line)); }
/* En oscuro la caja de importar baja a #161b21 y sus controles a #1a1f26
   (wildatlas.css:2368 y 2376): el botón va con ellos. */
html[data-theme="dark"] .wa .wa-obs-import .wa-obs-import-preview.wa-auth-submit { background: var(--wag-dark-surface); border-color: #39434f; color: #8ab9da !important; }
html[data-theme="dark"] .wa .wa-obs-import .wa-obs-import-preview.wa-auth-submit:hover { background: #222b35; border-color: #6ca8ce; color: #fff !important; }
html[data-theme="dark"] .wa .wa-obs-export-btn--csv:hover { background: #222b35; border-color: #6ec79b; }
html[data-theme="dark"] .wa .wa-obs-export-btn--pdf:hover { background: #222b35; border-color: #ee9a86; }

/* ══ SELECTOR DE FECHAS — .wa-dp (Marc, 2026-09-29) ═══════════════════════════
   Sustituye a Flatpickr en toda la web. JS: assets/js/wa-datepicker.js ·
   datos: inc/bookings/date-picker-data.php.

   TOKENS. Ninguno es nuevo: salen de la paleta de la web.
   · tinta #1a1e24 — la de los botones oscuros y los textos
   · acento #1f7a4d — el --wa-accent del panel del propietario. NO el #2e9e5b
     del calendario anterior: con texto blanco encima, #2e9e5b da 3,7:1 y no
     llega al mínimo de lectura para 14px; #1f7a4d da 5,4:1.
   · filetes #e6eaef, suave #f3f6f9, apagado #8a95a3, rojo #c0432b (avisos)
   · oscuro: tarjeta #1a1f26, filete #2a313a, tinta #e8edf1. El seleccionado
     se INVIERTE (verde claro, número oscuro): sobre #1a1f26 el #1f7a4d se apaga.

   El panel cuelga de <body>, no del formulario: así ningún `overflow` de una
   tarjeta lo recorta. Por eso las reglas de botón llevan `.wa` delante —la
   clase de <body>— y declaran sus cuatro estados: Astra pinta los <button>
   con un selector que gana a una sola clase. */
.wa-dp {
    --dp-bg: var(--wag-color-white); --dp-ink: var(--wag-color-night); --dp-ink-2: #3d4854; --dp-muted: #8a95a3; --dp-faint: #c3ccd6;
    --dp-line: #e6eaef; --dp-soft: #f3f6f9; --dp-hover: var(--wag-color-tint-green);
    --dp-accent: var(--wag-accent); --dp-on-accent: var(--wag-color-white); --dp-range: #e4f1e9; --dp-band: #f1f4f7;
    --dp-today: var(--wag-accent); --dp-few: #cf8412; --dp-full: #c0432b;
    --dp-price: #7c8793; --dp-price-low: var(--wag-accent);
    --dp-shadow: 0 32px 72px -26px rgba(16, 24, 32, .32), 0 2px 10px rgba(16, 24, 32, .06);
    --dp-cell: 44px;
    position: absolute; top: 0; left: 0; z-index: 100100;
    width: max-content; max-width: calc(100vw - 32px);
    background: var(--dp-bg); color: var(--dp-ink);
    border: 1px solid var(--dp-line); border-radius: 18px; box-shadow: var(--dp-shadow);
    font-family: inherit; font-size: var(--wag-text-14); line-height: 1.3; text-align: left;
    opacity: 0; transform: translateY(6px) scale(.985); transform-origin: top right;
    transition: opacity .16s ease, transform .16s ease; pointer-events: none;
}
.wa-dp.is-open { opacity: 1; transform: none; pointer-events: auto; }
.wa-dp[hidden] { display: none; }
.wa-dp *, .wa-dp *::before, .wa-dp *::after { box-sizing: border-box; }
html[data-theme="dark"] .wa-dp {
    --dp-bg: var(--wag-color-dark-surface); --dp-ink: var(--wag-dark-ink); --dp-ink-2: #c3ccd6; --dp-muted: #8b97a4; --dp-faint: #4a5563;
    --dp-line: var(--wag-color-dark-line); --dp-soft: #202832; --dp-hover: #242e38;
    --dp-accent: #6ec79b; --dp-on-accent: #0d1a12; --dp-range: rgba(110, 199, 155, .24); --dp-band: rgba(255, 255, 255, .045);
    --dp-today: #6ec79b; --dp-few: #e9b949; --dp-full: #f2766b;
    --dp-price: #8b97a4; --dp-price-low: #6ec79b;
    --dp-shadow: 0 32px 72px -22px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .02);
}

/* Cabecera */
.wa-dp-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px 4px; }
.wa-dp-headtxt { min-width: 0; }
.wa .wa-dp-title { margin: 0; font-size: 15px; font-weight: 800; letter-spacing: -.2px; color: var(--dp-ink); line-height: 1.3; }
.wa .wa-dp-sub { margin: 3px 0 0; font-size: 12.5px; color: var(--dp-muted); min-height: 16px; line-height: 1.3; }
.wa-dp-nav { display: flex; gap: 6px; flex: none; }
.wa .wa-dp .wa-dp-navbtn,
.wa .wa-dp .wa-dp-close,
.wa .wa-dp .wa-dp-navbtn:focus,
.wa .wa-dp .wa-dp-close:focus {
    width: 34px; height: 34px; min-width: 0; min-height: 0; padding: 0; margin: 0;
    border-radius: var(--wag-radius-999); border: 1px solid var(--dp-line); background: var(--dp-bg); color: var(--dp-ink);
    display: inline-grid; place-items: center; cursor: pointer; box-shadow: var(--wag-shadow-14); line-height: 1;
    transition: background .15s ease, border-color .15s ease;
}
.wa .wa-dp .wa-dp-navbtn:hover,
.wa .wa-dp .wa-dp-close:hover,
.wa .wa-dp .wa-dp-navbtn:active,
.wa .wa-dp .wa-dp-close:active { background: var(--dp-soft); border-color: var(--dp-faint); color: var(--dp-ink); }
.wa .wa-dp .wa-dp-navbtn:disabled,
.wa .wa-dp .wa-dp-navbtn:disabled:hover { opacity: .3; cursor: default; background: var(--dp-bg); border-color: var(--dp-line); }
.wa .wa-dp .wa-dp-close { display: none; }
/* La X limpia, sin círculo (Marc, 2026-10-01): el estilo de cierre de WAG. Las
   flechas de mes conservan su botón redondo; la X sólo cambia de color. */
.wa .wa-dp .wa-dp-close,
.wa .wa-dp .wa-dp-close:focus,
.wa .wa-dp .wa-dp-close:hover,
.wa .wa-dp .wa-dp-close:active { border-color: transparent; background: transparent; color: var(--dp-muted); }
.wa .wa-dp .wa-dp-close:hover,
.wa .wa-dp .wa-dp-close:active { color: var(--dp-ink); }
.wa .wa-dp .wa-dp-navbtn:focus-visible,
.wa .wa-dp .wa-dp-close:focus-visible { outline: 2px solid var(--dp-accent); outline-offset: 2px; }
.wa-dp-wkbar { display: none; }

/* Meses */
.wa-dp-body { display: flex; gap: 30px; padding: 6px 20px 2px; }
.wa-dp-months { display: flex; gap: 30px; }
.wa-dp-month { width: calc(7 * var(--dp-cell)); }
.wa-dp-mtitle { margin: 8px 0 10px; font-size: var(--wag-text-14); font-weight: 800; text-align: center; letter-spacing: -.1px; color: var(--dp-ink); }
.wa-dp-wk { display: grid; grid-template-columns: repeat(7, var(--dp-cell)); margin-bottom: 2px; }
.wa-dp-wk span, .wa-dp-wkbar span { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-align: center; color: var(--dp-muted); padding: 4px 0; }
.wa-dp-grid { display: grid; grid-template-columns: repeat(7, var(--dp-cell)); row-gap: 2px; }

/* El día. El número va en su propio <span class="nn"> y el círculo (.n) es
   una rejilla que lo centra con place-items: el punto de estado es absoluto y
   no cuenta como hijo de la rejilla, así que nunca desplaza el número.
   `line-height: 1` para que el hueco de la línea no empuje el dígito. */
.wa .wa-dp .wa-dp-day,
.wa .wa-dp .wa-dp-day:hover,
.wa .wa-dp .wa-dp-day:focus,
.wa .wa-dp .wa-dp-day:active {
    position: relative; height: 46px; min-width: 0; min-height: 0; padding: 0; margin: 0;
    border: 0; border-radius: 0; background: transparent; box-shadow: var(--wag-shadow-14); color: var(--dp-ink);
    font: inherit; line-height: 1; text-transform: none; letter-spacing: 0; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 0;
    -webkit-tap-highlight-color: transparent;
}
.wa .wa-dp.has-prices .wa-dp-day { height: 54px; }
.wa-dp-day .n {
    position: relative; z-index: 2; width: 36px; height: 36px; margin-top: 4px;
    display: grid; place-items: center; border-radius: var(--wag-radius-999);
    font-size: var(--wag-text-14); font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums;
    transition: background .12s ease, color .12s ease, box-shadow .12s ease;
}
/* Centrado de TINTA, no de caja (Marc: «que los círculos estén bien centrados
   en los números»). La caja de una línea de texto reserva sitio para los
   descendentes, que los dígitos no tienen, y el número queda medio píxel por
   debajo del centro del círculo —medido: 0,44–0,70 px con la fuente del
   sistema—. `text-box` recorta esa caja a la altura de los dígitos y los centra
   con CUALQUIER fuente; un translateY fijo sólo acertaría con una. Donde el
   navegador no lo entiende, se ignora y queda como estaba. */
.wa-dp-day .nn { display: block; line-height: 1; text-box: trim-both cap alphabetic; }
.wa-dp-day .p { position: relative; z-index: 2; margin-top: 1px; font-size: 10px; font-weight: 700; color: var(--dp-price); letter-spacing: -.1px; line-height: 1.1; white-space: nowrap; }
.wa-dp-day .p.is-low { color: var(--dp-price-low); }
.wa-dp-day .dot { position: absolute; left: 50%; bottom: 3px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: transparent; font-style: normal; }
.wa .wa-dp .wa-dp-day:not([aria-disabled="true"]):hover .n { background: var(--dp-hover); }
.wa .wa-dp .wa-dp-day:focus-visible { outline: none; }
.wa .wa-dp .wa-dp-day:focus-visible .n { box-shadow: 0 0 0 2px var(--dp-bg), 0 0 0 4px var(--dp-accent); }
.wa .wa-dp .wa-dp-day[aria-disabled="true"] { cursor: default; }
.wa-dp-day.is-today .n { box-shadow: inset 0 0 0 1.5px var(--dp-today); font-weight: 800; }
.wa-dp-day.is-past .n { color: var(--dp-faint); }
.wa-dp-day.is-past .p { visibility: hidden; }

/* Cerrado y completo: el mismo tachado —para quien reserva el efecto es igual—
   y un punto rojo sólo en «completo», que además dice que ese día se vende. El
   tachado es la señal principal, así que no depende sólo del color. */
.wa-dp-day.is-closed .n,
.wa-dp-day.is-full .n { color: var(--dp-faint); text-decoration: line-through; text-decoration-thickness: 1.5px; }
.wa-dp-day.is-full .dot { background: var(--dp-full); }
.wa-dp-day.is-few .dot { background: var(--dp-few); }
.wa-dp-day.is-closed .p, .wa-dp-day.is-full .p { visibility: hidden; }
.wa-dp-day.is-short .n, .wa-dp-day.is-beyond .n { color: var(--dp-faint); }
.wa-dp-day.is-short .p, .wa-dp-day.is-beyond .p { visibility: hidden; }
/* Solo salida: la noche está ocupada pero ese día se puede dejar el alojamiento
   (la regla del servidor: una reserva que acaba el 12 deja libre el 12). */
.wa-dp-day.is-checkout-only .n { box-shadow: inset 0 0 0 1.5px var(--dp-faint); color: var(--dp-ink-2); }
/* Cargando: el número se ve, apagado y latiendo, hasta que llegan los datos. */
.wa-dp-day.is-loading .n { color: var(--dp-faint); animation: wa-dp-pulse 1.2s ease-in-out infinite; }
.wa-dp-day.is-loading .p { visibility: hidden; }
@keyframes wa-dp-pulse { 50% { opacity: .45; } }

/* Rango: una banda continua bajo los círculos. */
.wa-dp-day::before { content: ""; position: absolute; z-index: 1; top: 4px; height: 36px; left: 0; right: 0; background: transparent; transition: background .1s ease; }
.wa-dp-day.in-range::before { background: var(--dp-range); }
.wa-dp-day.is-start.in-range::before { left: 50%; }
.wa-dp-day.is-end.in-range::before { right: 50%; }
.wa-dp-day.is-start.is-end::before { background: transparent; }
/* El viaje entero de una experiencia de duración fija (inicio → vuelta). */
.wa-dp-day.span-cap-start.in-range::before { left: 50%; }
.wa-dp-day.span-cap-end.in-range::before { right: 50%; }
.wa-dp-day.is-start .n,
.wa-dp-day.is-end .n,
.wa-dp-day.is-selected .n { background: var(--dp-accent); color: var(--dp-on-accent); font-weight: 800; box-shadow: var(--wag-shadow-14); text-decoration: none; }
.wa .wa-dp .wa-dp-day.is-start:hover .n,
.wa .wa-dp .wa-dp-day.is-end:hover .n,
.wa .wa-dp .wa-dp-day.is-selected:hover .n { background: var(--dp-accent); }
.wa-dp-day.is-start .p, .wa-dp-day.is-end .p, .wa-dp-day.is-selected .p,
.wa-dp-day.in-range:not(.is-start):not(.is-end) .n{ color: var(--dp-ink); }
html[data-theme="dark"] .wa-dp-day.in-range:not(.is-start):not(.is-end) .n { color: #e3f5ea; }

/* Salidas fijas: la banda gris dice «este viaje dura estos días» antes de
   elegir; al pasar por encima de una salida se ilumina entera. */
.wa-dp-day.in-dep::before { background: var(--dp-band); }
.wa-dp-day.dep-cap-start::before { left: 50%; }
.wa-dp-day.dep-cap-end::before { right: 50%; }
.wa-dp-day.dep-cap-start.dep-cap-end::before { background: transparent; }
.wa-dp-day.dep-hover::before { background: var(--dp-range); }
.wa-dp-day.is-dep-start .n { font-weight: 800; box-shadow: inset 0 0 0 1.5px var(--dp-accent); }
.wa-dp-day.is-dep-start.is-full .n { box-shadow: var(--wag-shadow-14); }
.wa-dp-day.in-dep:not(.is-dep-start) .n { color: var(--dp-ink-2); font-weight: 500; }
.wa-dp-day.is-nodep .n { color: var(--dp-faint); font-weight: 500; }
.wa-dp-day.dep-full:not(.is-dep-start)::before { background: transparent; }

/* Lista de salidas */
.wa-dp-deps { width: 256px; display: flex; flex-direction: column; gap: var(--wag-space-8); padding: 8px 0 8px 24px; border-left: 1px solid var(--dp-line); max-height: 390px; overflow-y: auto; }
.wa .wa-dp-deps-h { margin: 2px 0 2px; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--dp-muted); }
.wa .wa-dp .wa-dp-dep,
.wa .wa-dp .wa-dp-dep:focus,
.wa .wa-dp .wa-dp-dep:active {
    display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 0; margin: 0;
    padding: 11px 12px; border: 1px solid var(--dp-line); border-radius: var(--wag-radius-12); background: var(--dp-bg);
    color: var(--dp-ink); font: inherit; line-height: 1.25; text-align: left; cursor: pointer; box-shadow: var(--wag-shadow-14); text-transform: none; letter-spacing: 0;
    transition: border-color .15s ease, background .15s ease;
}
.wa .wa-dp .wa-dp-dep:hover { border-color: var(--dp-faint); background: var(--dp-soft); color: var(--dp-ink); }
.wa .wa-dp .wa-dp-dep.is-selected,
.wa .wa-dp .wa-dp-dep.is-selected:hover { border-color: var(--dp-accent); box-shadow: inset 0 0 0 1px var(--dp-accent); background: var(--dp-bg); }
.wa .wa-dp .wa-dp-dep[aria-disabled="true"],
.wa .wa-dp .wa-dp-dep[aria-disabled="true"]:hover { cursor: default; opacity: .6; border-color: var(--dp-line); background: var(--dp-bg); }
.wa .wa-dp .wa-dp-dep:focus-visible { outline: 2px solid var(--dp-accent); outline-offset: 2px; }
/* Con muchas salidas la columna hace scroll: cada fila conserva su alto en vez
   de encogerse para caber (Marc, 2026-10-01: el texto se salía de la caja). */
.wa-dp-deps > .wa-dp-dep, .wa-dp-deps > .wa-dp-deps-h { flex-shrink: 0; }
.wa-dp-dep .d { display: block; font-size: 13.5px; font-weight: 700; }
.wa-dp-dep .s { display: block; margin-top: 2px; font-size: 11.5px; color: var(--dp-muted); }
.wa-dp-dep .left { flex: none; font-size: var(--wag-text-11); font-weight: 800; padding: 4px 8px; border-radius: var(--wag-radius-999); background: var(--dp-soft); color: var(--dp-ink-2); white-space: nowrap; }
.wa-dp-dep .left.is-few { color: var(--dp-few); }
.wa-dp-dep .left.is-full { color: var(--dp-full); }

/* Pie */
.wa-dp-foot { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 10px; padding: 13px 20px 16px; border-top: 1px solid var(--dp-line); }
.wa-dp-foot.is-plain { justify-content: flex-end; }
.wa-dp-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; max-width: 420px; font-size: 11.5px; color: var(--dp-muted); }
.wa-dp-legend > span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.wa-dp-legend i { flex: none; display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.wa-dp-legend i.few { background: var(--dp-few); }
.wa-dp-legend i.full { background: var(--dp-full); }
.wa-dp-legend s { color: var(--dp-faint); font-weight: 700; text-decoration-thickness: 1.5px; }
.wa-dp-legend b.low { color: var(--dp-price-low); font-weight: 800; }
.wa-dp-legend i.band { width: 16px; height: 8px; border-radius: var(--wag-radius-4); background: var(--dp-band); box-shadow: inset 0 0 0 1px var(--dp-line); }
.wa-dp-legend i.ring { width: 10px; height: 10px; box-shadow: inset 0 0 0 1.5px var(--dp-faint); }
.wa .wa-dp-hint { display: none; }
.wa-dp-actions { display: flex; align-items: center; gap: var(--wag-space-8); flex: none; }
.wa .wa-dp .wa-dp-clear,
.wa .wa-dp .wa-dp-clear:focus,
.wa .wa-dp .wa-dp-clear:active {
    padding: 9px 8px; margin: 0; min-height: 0; border: 0; background: transparent; box-shadow: var(--wag-shadow-14); color: var(--dp-ink); font: inherit;
    font-size: var(--wag-text-13); font-weight: 700; line-height: 1.2; text-decoration: underline; text-underline-offset: 3px; text-transform: none; letter-spacing: 0; cursor: pointer;
}
.wa .wa-dp .wa-dp-clear:hover { background: transparent; color: var(--dp-ink-2); }
.wa .wa-dp .wa-dp-clear:disabled,
.wa .wa-dp .wa-dp-clear:disabled:hover { opacity: .35; cursor: default; color: var(--dp-ink); }
.wa .wa-dp .wa-dp-apply,
.wa .wa-dp .wa-dp-apply:focus {
    padding: 11px 22px; margin: 0; min-height: 0; border: 0; border-radius: 10px; background: var(--dp-ink); color: var(--dp-bg); box-shadow: var(--wag-shadow-14);
    font: inherit; font-size: 13.5px; font-weight: 700; line-height: 1.2; text-transform: none; letter-spacing: 0; cursor: pointer; white-space: nowrap;
    transition: opacity .15s ease, transform .1s ease;
}
.wa .wa-dp .wa-dp-apply:hover { background: var(--dp-ink); color: var(--dp-bg); opacity: .9; }
.wa .wa-dp .wa-dp-apply:active { background: var(--dp-ink); color: var(--dp-bg); transform: scale(.98); }
.wa .wa-dp .wa-dp-apply:disabled,
.wa .wa-dp .wa-dp-apply:disabled:hover { opacity: .28; cursor: default; transform: none; background: var(--dp-ink); color: var(--dp-bg); }
.wa .wa-dp .wa-dp-apply:focus-visible,
.wa .wa-dp .wa-dp-clear:focus-visible { outline: 2px solid var(--dp-accent); outline-offset: 2px; }

/* Globo */
.wa-dp-tip {
    position: absolute; z-index: 10; left: 0; top: 0; pointer-events: none;
    padding: 6px 9px; border-radius: var(--wag-radius-8); background: var(--dp-ink); color: var(--dp-bg);
    font-size: var(--wag-text-12); font-weight: 600; line-height: 1.2; white-space: nowrap;
    transform: translate(-50%, calc(-100% - 6px)); opacity: 0; transition: opacity .1s ease;
}
.wa-dp-tip.is-on { opacity: 1; }
.wa-dp-tip::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 8px; height: 8px; margin-left: -4px; background: inherit; transform: rotate(45deg); border-radius: 1px; }

/* El campo visible. Copia las clases de estilo del input original (como el
   altInput de Flatpickr), así que cada formulario conserva su aspecto; aquí
   sólo se añade que se pulsa y que se ve cuándo está abierto. */
.wa-dp-native { display: none !important; }
.wa .wa-dp-trigger { cursor: pointer; caret-color: transparent; }
.wa .wa-dp-trigger::placeholder { opacity: .75; }
.wa .wa-dp-trigger.is-active { border-color: var(--wag-type-field-date-line, var(--wag-style-field-date-line)); box-shadow: var(--wag-type-field-date-shadow, var(--wag-style-field-date-shadow)); outline: none; }
html[data-theme="dark"] .wa .wa-dp-trigger.is-active { border-color: var(--wag-dark-ink); box-shadow: var(--wag-type-field-date-dark-shadow, var(--wag-style-field-date-dark-shadow)); }

body.wa-dp-open { overflow: hidden; }

/* MÓVIL — pantalla completa, la misma receta de los modales de la web
   («MÓVIL: los modales ocupan la pantalla entera»): 700px, 100dvh, sin esquinas
   y el hueco de la barra de inicio. Los meses se apilan en vertical, con la
   semana fija arriba y el botón fijo abajo, donde llega el pulgar. */
@media (max-width: 700px) {
    .wa-dp {
        position: fixed; inset: 0; width: 100%; max-width: none; height: 100vh; height: 100dvh;
        border: 0; border-radius: 0; box-shadow: var(--wag-shadow-14);
        display: flex; flex-direction: column;
        transform: translateY(28px); transform-origin: bottom center;
        transition: opacity .2s ease, transform .22s cubic-bezier(.2, .8, .2, 1);
    }
    .wa-dp.is-open { transform: none; }
    .wa-dp-head { padding: calc(12px + env(safe-area-inset-top)) 16px 10px; }
    .wa-dp-nav { display: none; }
    .wa .wa-dp .wa-dp-close { display: inline-grid; flex: none; }
    .wa-dp-wkbar { display: grid; grid-template-columns: repeat(7, 1fr); padding: 2px 16px 6px; border-bottom: 1px solid var(--dp-line); }
    .wa-dp-body { flex: 1; min-height: 0; flex-direction: column; gap: 0; padding: 0 16px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
    .wa-dp-months { flex-direction: column; gap: 6px; padding-bottom: 20px; }
    .wa-dp-month { width: 100%; }
    .wa-dp-mtitle { margin: 18px 0 8px; text-align: left; font-size: var(--wag-text-16); }
    .wa-dp-wk { display: none; }
    .wa-dp-grid { grid-template-columns: repeat(7, 1fr); }
    .wa .wa-dp.has-prices .wa-dp-day { height: 56px; }
    .wa-dp-day .n { width: 40px; height: 40px; font-size: 15px; }
    .wa-dp-day::before { top: 4px; height: 40px; }
    .wa-dp-deps { width: auto; border-left: 0; padding: 14px 0 4px; max-height: none; overflow: visible; }
    .wa-dp-foot { flex-direction: column; align-items: stretch; gap: 10px; margin: 0; padding: 12px 16px calc(14px + env(safe-area-inset-bottom)); background: var(--dp-bg); box-shadow: 0 -8px 24px -18px rgba(0, 0, 0, .35); }
    .wa-dp-foot.is-plain { justify-content: flex-start; }
    .wa-dp-legend { max-width: none; justify-content: center; }
    .wa .wa-dp-hint { display: block; min-height: 16px; margin: -2px 0 0; font-size: 12.5px; font-weight: 600; text-align: center; color: var(--dp-ink-2); }
    .wa .wa-dp-hint.is-flash { color: var(--dp-full); }
    .wa-dp-actions { justify-content: space-between; gap: var(--wag-space-12); }
    .wa .wa-dp .wa-dp-apply,
    .wa .wa-dp .wa-dp-apply:focus,
    .wa .wa-dp .wa-dp-apply:hover { flex: 1; padding: 15px 20px; font-size: 15px; border-radius: var(--wag-radius-12); }
    .wa-dp-tip { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .wa-dp, .wa-dp-day .n, .wa-dp-day::before, .wa-dp-tip { transition: none; }
    .wa-dp-day.is-loading .n { animation: none; }
}
/* WAG photographs: one grid, one action family and one viewer across contexts. */
:root{--wa-photo-paper:var(--wag-color-white);--wa-photo-ink:#202831;--wa-photo-muted:#63717d;--wa-photo-line:#e3e8eb;--wa-photo-soft:#f3f5f5;--wa-photo-accent:#236746;--wa-photo-danger:#b52838}
html[data-theme="dark"]{--wa-photo-paper:var(--wag-color-dark-field);--wa-photo-ink:#ecf0f3;--wa-photo-muted:#acb8c2;--wa-photo-line:#343e48;--wa-photo-soft:#202932;--wa-photo-accent:#78c79c;--wa-photo-danger:#ff8794}
.wa-photo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px}
.wa-gal-viewall-wrap--mobile{display:none}
@media(max-width:700px){.wa-photo-grid--preview>.wa-photo-tile:nth-child(n+7){display:none}.wa-gal-viewall-wrap--mobile{display:block}}
.wa-photo-tile{position:relative;margin:0;padding:0!important;min-width:0;display:flex;flex-direction:column;background:var(--wa-photo-paper);color:var(--wa-photo-ink);border:0;border-radius:0;overflow:visible}
.wa-photo-tile-open{display:block;width:100%;min-height:0!important;aspect-ratio:4/5;padding:0!important;margin:0!important;border:0;background:var(--wa-photo-soft);line-height:0;overflow:hidden;cursor:zoom-in;appearance:none}
.wa-photo-tile-open>img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.wa-photo-tile-open.is-static{cursor:default}
.wa-photo-tile-badge{position:absolute;top:8px;left:8px;z-index:1;max-width:calc(100% - 16px);padding:4px 8px;background:var(--wa-photo-soft);color:var(--wa-photo-ink);border-radius:6px;font-size:var(--wag-text-11);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.wa-photo-tile-actions{position:relative;margin-top:auto;align-self:flex-end;max-width:100%;font-size:var(--wag-text-12)}
.wa-photo-tile-actions summary{min-height:44px;display:flex;align-items:center;justify-content:flex-end;color:var(--wa-photo-muted);cursor:pointer;list-style:none}
.wa-photo-tile-actions summary::-webkit-details-marker{display:none}
.wa-photo-menu{position:absolute;z-index:4;right:0;top:100%;width:220px;max-width:calc(100vw - 32px);background:var(--wa-photo-paper);border:1px solid var(--wa-photo-line);border-radius:var(--wag-radius-8);box-shadow:0 8px 24px #0002;padding:5px}
.wa-photo-menu :is(.wa-gal-act,.wa-gal-mine-del,.wa-gal-social-permission){position:static!important;display:flex!important;align-items:center;gap:var(--wag-space-8);width:100%!important;height:auto!important;min-height:44px;margin:0!important;padding:10px 12px!important;background:transparent!important;color:var(--wa-photo-ink)!important;border:0!important;border-radius:5px!important;box-shadow:var(--wag-shadow-16) !important;text-align:left;white-space:normal;opacity:1!important;font-size:12px!important}
.wa-photo-menu :is(.wa-gal-del,.wa-gal-mine-del){color:var(--wa-photo-danger)!important}
.wa-photo-menu :is(.wa-gal-mine-del,.wa-gal-social-permission)::after{content:attr(aria-label);font-size:var(--wag-text-12)}
.wa-photo-menu svg{width:18px;height:18px;flex:0 0 18px}
.wa-photo-tile--home{scroll-snap-align:start;border-radius:var(--wag-radius-16);overflow:hidden}
.wa-photo-tile--home .wa-photo-tile-open{aspect-ratio:4/3;border-radius:var(--wag-radius-16)}
.wa .wa-gal{background:var(--wag-type-gal-bg, var(--wag-style-gal-bg));border:0;border-radius:0;box-shadow:var(--wag-shadow-14);padding:0}
.wa-photo-upload{margin:0;color:var(--wa-photo-ink)}
.wa-gal-uploadbox{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:16px;padding:16px 22px;border:1px solid #2a313a;border-radius:var(--wag-radius-16);background:#1a1e24;color:var(--wag-dark-ink);color-scheme:dark;box-shadow:0 6px 18px rgba(26,30,36,.10)}
.wa-gal-wrap--profile .wa-gal-uploadbox{margin-top:0}
.wa-gal-uploadcopy{flex:1 1 360px;min-width:0;max-width:460px}
.wa-gal-uploadcopy .wa-gal-uploadbox-title{display:block;margin-bottom:8px}
.wa-gal-uploadcopy .wa-gal-consent{max-width:440px;text-align:left}
.wa-gal-uploadbox-title{color:var(--wag-type-gal-uploadbox-title-ink, var(--wag-style-hotspot-rating-count-ink));font-size:var(--wag-text-14);font-weight:700;letter-spacing:.01em}
.wa-gal-wrap--profile .wa-gal-uploadbox-title{width:100%}
.wa-gal-uploadbox .wa-gal-consent{color:#93a0ab}
.wa-gal-uploadbox .wa-gal-consent-label{color:var(--wag-dark-ink)}
.wa-gal-uploadbox .wa-gal-consent-more summary,.wa-gal-uploadbox .wa-gal-consent a{color:#a9d0e8}
.wa .wa-gal-uploadbox .wa-gal-consent-more summary:hover,.wa .wa-gal-uploadbox .wa-gal-consent a:hover{color:#fff}
.wa-gal-uploadbox .wa-gal-uploadwrap{display:flex;flex-direction:column;gap:var(--wag-space-12);min-width:0}
/* Contribution module uses the shared WAG dark search palette. */
html .wa .wa-gal-uploadbox .wa-gal-sp-bar{background:var(--wag-dark-surface);border-color:#2a313a;box-shadow:var(--wag-shadow-14)}
html .wa .wa-gal-uploadbox .wa-gal-sp-bar input{color:var(--wag-dark-ink)}
html .wa .wa-gal-uploadbox .wa-search-panel{background:var(--wag-dark-surface);border-color:#2a313a;box-shadow:0 18px 50px rgba(0,0,0,.5)}
html .wa .wa-gal-uploadbox .wa-search-panel .wa-search-en{color:var(--wag-dark-ink)}
html .wa .wa-gal-uploadbox .wa-search-panel .wa-search-sub{color:#93a0ab}
html .wa .wa-gal-uploadbox .wa-search-panel .wa-search-row:hover{background:#232a33}
.wa-gal-upload-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:max-content;max-width:100%;gap:10px}
.wa .wa-gal-upload-actions>.wa-gal-upload{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;min-height:40px;min-width:0;margin:0;padding:8px 18px;font-family:inherit;font-size:13.5px;font-weight:700;line-height:20px}
.wa-gal-uploadbox .wa-gal-upload-note{margin:0;text-align:left;color:#93a0ab}
.wa-photo-upload-preview{width:100%;max-height:240px;object-fit:contain;background:#101317}
.wa-gal-upload{position:relative;display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1px solid var(--wag-type-upload-line, var(--wag-style-subir-foto-line));border-radius:var(--wag-type-upload-radius, var(--wag-style-subir-foto-radius));background:var(--wag-type-upload-bg, var(--wag-style-subir-foto-bg));color:var(--wag-type-upload-ink, var(--wag-style-subir-foto-ink));font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:var(--wag-type-upload-shadow, var(--wag-style-subir-foto-shadow))}
.wa .wa-gal-upload:hover{border-color:var(--wag-type-upload-hover-line, var(--wag-style-subir-foto-hover-line))}
.wa-gal-uploadbox .wa-gal-upload{background:var(--wag-surface);color:var(--wag-type-upload-light-ink, var(--wag-style-subir-foto-clara-ink));border-color:var(--wag-type-upload-light-line, var(--wag-style-subir-foto-clara-line))}
.wa .wa-gal-uploadbox .wa-gal-upload:hover{background:var(--wag-surface);color:var(--wag-type-upload-light-hover-ink, var(--wag-style-subir-foto-clara-hover-ink));border-color:var(--wag-type-upload-light-hover-line, var(--wag-style-subir-foto-clara-hover-line))}
.wa .wa-photo-submit:disabled{opacity:.45;cursor:default}
.wa-gal-upload input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.wa-photo-upload-status{flex-basis:100%;font-size:var(--wag-text-12);color:#93a0ab}
.wa-photo-upload-status:empty{display:none}
@media(max-width:700px){.wa-gal-uploadcopy{flex-basis:100%;max-width:none}.wa-gal-uploadbox .wa-gal-uploadwrap{max-width:none;width:100%;align-items:stretch}}
.wa-photo-upload [hidden],#wa-gallery [hidden]{display:none!important}
.wa .wa-obs-photo-add{width:44px;height:44px;border:1px dashed var(--wa-photo-line);border-radius:var(--wag-radius-8);background:var(--wa-photo-paper);color:var(--wa-photo-ink)}
.wa .wa-obs-extras .wa-obs-photos-link,.wa .wa-gallery-upload-btn{min-height:44px;padding:8px 12px;border-radius:var(--wag-radius-8);border:1px solid var(--wa-photo-line);background:var(--wa-photo-paper);color:var(--wa-photo-ink);box-shadow:var(--wag-shadow-14)}
.wa :is(.wa-photo-upload summary,.wa-photo-upload button,.wa-gal-upload:focus-within,.wa-obs-photos-link,.wa-obs-photo-add):focus-visible{outline:2px solid var(--wa-photo-accent)!important;outline-offset:3px}
.wa .wa-gal-upload:focus-within{outline:2px solid var(--wa-photo-accent);outline-offset:3px}
#wa-gallery{--wa-gallery-sidebar:320px;--wa-gallery-height:100dvh;position:fixed;inset:0;z-index:100002;background:#101317ed;display:flex;align-items:center;justify-content:center;padding:0 24px;color:var(--wa-photo-ink)}
#wa-gallery .wa-gallery-dialog{position:relative;width:min(1440px,calc(100dvw - 48px));max-width:100%;max-height:100dvh;background:var(--wa-photo-paper);border-radius:0;overflow:hidden;padding:0}
#wa-gallery :is(.wa-gallery-close,.wa-gallery-prev,.wa-gallery-next,.wa-gallery-delete){display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:6px;box-shadow:var(--wag-shadow-14);cursor:pointer;position:static;background:transparent;color:var(--wa-photo-ink);padding:8px 12px;font-size:var(--wag-text-13);line-height:1.4}
#wa-gallery .wa-gallery-close{position:absolute;top:8px;right:8px;width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;font-size:28px;color:var(--wa-photo-ink);background:var(--wa-photo-paper);z-index:4}
#wa-gallery .wa-gallery-count{padding-right:40px;font-size:var(--wag-text-12);color:var(--wa-photo-muted);white-space:nowrap}
#wa-gallery figure{display:grid;grid-template-columns:minmax(0,1fr) var(--wa-gallery-sidebar);height:var(--wa-gallery-height);margin:0;max-width:none;border:0;border-radius:0;overflow:hidden;box-shadow:var(--wag-shadow-14);background:var(--wa-photo-paper);text-align:left}
#wa-gallery .wa-gallery-photo{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:0;height:100%;max-width:none;background:#101317;line-height:0;touch-action:pan-y}
#wa-gallery img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:0;margin:0;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
#wa-gallery .wa-gallery-watermark{position:absolute;bottom:12px;right:16px;max-width:calc(100% - 32px);color:#fff;font-size:var(--wag-text-11);line-height:1.4;text-shadow:0 1px 3px #000;pointer-events:none}
#wa-gallery :is(.wa-gallery-prev,.wa-gallery-next){position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;min-height:32px;display:inline-flex!important;align-items:center;justify-content:center;border-radius:50%;color:#1a1e24;background:rgba(255,255,255,.9);padding:0;line-height:1;z-index:2}
#wa-gallery :is(.wa-gallery-prev,.wa-gallery-next) svg{display:block;width:16px;height:16px;flex:0 0 16px}
#wa-gallery :is(.wa-gallery-prev,.wa-gallery-next):hover{background:var(--wag-surface);color:#1a1e24}
#wa-gallery .wa-gallery-prev{left:8px}#wa-gallery .wa-gallery-next{right:8px}
#wa-gallery figcaption{display:flex;flex-direction:column;gap:14px;margin:0;padding:20px;background:var(--wa-photo-paper);color:var(--wa-photo-ink);font-size:var(--wag-text-13);min-width:0;min-height:0;overflow-y:auto;text-align:left}
#wa-gallery .wa-gallery-info{display:flex;flex-direction:column;align-items:flex-start;gap:10px;flex:1;min-width:0}
#wa-gallery .wa-gallery-author{display:flex;align-items:center;gap:10px;font-size:var(--wag-text-14);margin-bottom:22px;overflow-wrap:anywhere}
#wa-gallery .wa-gallery-avatar{display:block;overflow:hidden;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--wa-photo-soft);color:var(--wa-photo-accent)}
#wa-gallery .wa-gallery-sp{font-size:23px;line-height:1.3;font-weight:600;color:var(--wa-photo-ink)}
#wa-gallery .wa-gallery-sci{font-style:italic;color:var(--wa-photo-muted)}
#wa-gallery .wa-gallery-place{margin-top:14px}
#wa-gallery .wa-gallery-by{color:var(--wa-photo-muted);font-size:var(--wag-text-12)}
#wa-gallery .wa-gallery-info a{color:inherit;text-decoration:none}
#wa-gallery .wa-gallery-actions{display:flex;align-items:center;gap:var(--wag-space-12);width:100%;margin-top:14px;padding-top:12px;border-top:1px solid var(--wa-photo-line)}
#wa-gallery .wa-gallery-like{margin:0;min-height:44px;max-width:none;border-radius:0;gap:var(--wag-space-8);font-size:var(--wag-text-14)}
#wa-gallery .wa-gallery-like .wa-gal-heart{font-size:28px}
#wa-gallery .wa-gal-reportwrap{width:100%;position:relative}
#wa-gallery .wa-gal-report{min-height:44px;background:transparent;color:var(--wa-photo-muted);border:0;padding:8px 0;font-size:var(--wag-text-12);box-shadow:var(--wag-shadow-14)}
#wa-gallery .wa-gal-reasons{position:static;transform:none;margin:0;background:var(--wa-photo-paper);border:1px solid var(--wa-photo-line);border-radius:var(--wag-radius-8);max-width:100%;width:100%}
#wa-gallery .wa-gallery-delete{color:var(--wa-photo-danger)}
#wa-gallery :is(button,a):focus-visible{outline:2px solid var(--wa-photo-accent)!important;outline-offset:2px}
@media(max-width:700px){.wa-photo-grid{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}}
@media(max-width:700px){.wa-myphotos{width:100vw;max-width:none;margin-inline:calc(50% - 50vw)}.wa-myphotos-section{padding:22px 0}.wa-myphotos-section-title{padding-inline:16px}.wa-myphotos .wa-photo-grid{width:100%;margin-inline:0}}
@media(max-width:600px){.wa-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}.wa-photo-tile-actions{align-self:stretch}.wa-photo-tile-actions summary{justify-content:flex-start;}.wa-photo-tile:nth-child(3n+1) .wa-photo-menu{right:auto;left:0}.wa-gal-uploadbox{padding:14px}}
@media(max-width:700px){#wa-gallery{padding:0}#wa-gallery .wa-gallery-dialog{width:100%;height:100dvh;max-height:none;display:flex;flex-direction:column}#wa-gallery figure{flex:1;min-height:0;height:auto;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) min(30dvh,260px)}#wa-gallery .wa-gallery-photo{height:100%}#wa-gallery figcaption{padding:14px;max-height:35dvh}#wa-gallery .wa-gallery-author{margin-bottom:4px}#wa-gallery .wa-gallery-sp{font-size:var(--wag-text-20)}#wa-gallery .wa-gallery-place{margin-top:4px}#wa-gallery .wa-gallery-info{gap:6px}}

@media(min-width:1025px){.wa-photo-tile:nth-child(4n+1) .wa-photo-menu{right:auto;left:0}}
@media(min-width:601px) and (max-width:1024px){.wa-photo-tile:nth-child(3n+1) .wa-photo-menu{right:auto;left:0}}

.wa-photo-tile-actions summary{min-width:44px;font-size:var(--wag-text-24);line-height:1}
.wa-gal-ac-item:focus-visible{outline:2px solid var(--wa-photo-accent);outline-offset:-2px}

.wa .wa-photo-tile,.wa .wa-photo-tile-open,.wa .wa-photo-tile-open>img{border-radius:0!important;border:0!important;box-shadow:var(--wag-shadow-16) !important}
.wa .wa-photo-tile .wa-photo-tile-open:is(:focus,:focus-visible,:active){outline:none!important;box-shadow:var(--wag-shadow-16) !important}
.wa .wa-photo-tile-open:focus-visible>img{opacity:.85}
.wa .wa-photo-tile--home,.wa .wa-photo-tile--home .wa-photo-tile-open,.wa .wa-photo-tile--home .wa-photo-tile-open>img{border-radius:16px!important}
.wa .wa-photo-tile{background:transparent!important;display:block}
.wa-photo-tile-tools[hidden]{display:none!important}
.wa-photo-tile>.wa-photo-tile-tools:not([hidden]){position:absolute;z-index:2}
.wa-photo-tile>.wa-photo-tile-tools .wa-photo-tile-actions{margin:0}
.wa-photo-tile>.wa-photo-tile-tools summary{width:44px;height:44px;justify-content:center;font-size:var(--wag-text-18);color:var(--wa-photo-ink);background:transparent;border-radius:0}
.wa-photo-tile>.wa-photo-tile-tools .wa-photo-menu{right:0;left:auto;box-sizing:border-box}
.wa-photo-grid>.wa-photo-tile:nth-child(6n+1)>.wa-photo-tile-tools .wa-photo-menu{right:auto;left:0}
@media(max-width:700px){.wa-photo-grid>.wa-photo-tile:nth-child(6n+1)>.wa-photo-tile-tools .wa-photo-menu{right:0;left:auto}.wa-photo-grid>.wa-photo-tile:nth-child(3n+1)>.wa-photo-tile-tools .wa-photo-menu{right:auto;left:0}}
#wa-gallery .wa-gallery-info{position:relative}
#wa-gallery .wa-gallery-tools{position:absolute;right:0;top:-6px;z-index:3}
#wa-gallery .wa-gallery-author{padding-right:56px}
#wa-gallery .wa-photo-tile-actions summary{justify-content:center;width:44px;height:44px}
#wa-gallery .wa-photo-tile-actions{margin:0}
#wa-gallery .wa-photo-menu{box-sizing:border-box;left:auto;margin-top:8px;padding:6px}
#wa-gallery .wa-photo-menu button{box-sizing:border-box}

#wa-gallery .wa-gallery-avatar img{width:32px;height:32px;object-fit:cover;border-radius:50%}

/* Viewer controls: no green rings or close-button disc. */
#wa-gallery :is(.wa-gallery-close,.wa-gallery-prev,.wa-gallery-next,.wa-dd-head-close):is(:focus,:focus-visible,:hover,:active){outline:none!important;box-shadow:var(--wag-shadow-16) !important;border:0!important}
#wa-gallery .wa-gallery-close,#wa-gallery .wa-gallery-close:is(:focus,:focus-visible,:hover,:active){background:transparent!important}
#wa-gallery :is(.wa-gallery-close,.wa-gallery-prev,.wa-gallery-next,.wa-dd-head-close):focus-visible{opacity:.65}
#wa-gallery .wa-photo-menu.wa-dropdown-menu{display:block}
#wa-gallery .wa-dd-fullscreen .wa-dropdown-action,#wa-gallery .wa-dd-fullscreen .wa-dropdown-action:hover,#wa-gallery .wa-dd-fullscreen .wa-dropdown-action:focus{justify-content:center;gap:var(--wag-space-8);text-align:center}
#wa-gallery .wa-dd-fullscreen .wa-dropdown-action svg{width:18px;height:18px;flex:0 0 18px}
#wa-gallery .wa-dd-fullscreen :is(.wa-gal-mine-del,.wa-gal-social-permission)::after{content:attr(aria-label)}
#wa-gallery .wa-dd-fullscreen :is(.wa-gal-mine-del,.wa-gal-del){color:var(--wa-photo-danger)}
@media(max-width:700px){#wa-gallery .wa-gallery-close{color:#fff}}

/* ── Pegar nombres científicos en «Top species» (inc/admin/species-bulk-match.php) ── */
.wa-sci-bulk { margin-top: 12px; padding: 12px; border: 1px dashed #c9d4de; border-radius: 10px; background: #f8fafb; }
.wa-sci-bulk-label { display: block; margin-bottom: 6px; font-size: 12.5px; font-weight: 700; color: #334155; }
.wa-sci-bulk textarea { width: 100%; box-sizing: border-box; font-family: ui-monospace, Menlo, monospace; font-size: var(--wag-text-13); font-style: italic; }
.wa-sci-bulk-row { display: flex; align-items: center; gap: var(--wag-space-12); flex-wrap: wrap; margin-top: 8px; }
.wa .wa-sci-bulk-btn, .wa .wa-sci-bulk-btn:hover, .wa .wa-sci-bulk-btn:focus, .wa .wa-sci-bulk-btn:active,
.wa-sci-bulk-btn { padding: 8px 14px; border: 1px solid #cfe0ec; border-radius: var(--wag-radius-8); background: var(--wag-surface); color: #2b7cb0; font-size: var(--wag-text-13); font-weight: 600; cursor: pointer; box-shadow: var(--wag-shadow-14); }
.wa .wa-sci-bulk-btn:hover, .wa-sci-bulk-btn:hover { background: #f2f8fc; border-color: #2b7cb0; color: #1f5f8a; }
.wa-sci-bulk-btn:disabled { opacity: .6; cursor: wait; }
.wa-sci-bulk-msg { font-size: 12.5px; color: #5a6a7a; }
html[data-theme="dark"] .wa-sci-bulk { background: #171c22; border-color: #35414d; }
html[data-theme="dark"] .wa-sci-bulk-label { color: #d6dee6; }

/* ==========================================================================
   CONTROL CENTER · sistema visual unificado (2026-10)
   Una capa común sobre módulos de distintas generaciones. Mantiene la lógica
   existente y neutraliza los estilos globales de Astra dentro del panel.
   ========================================================================== */
.wa-cc-page{
  --cc-ink:#172433;--cc-muted:#6b7b8d;--cc-line:#dbe4eb;--cc-soft:#f6f9fb;
  --cc-blue:#287eaa;--cc-amber:#b87520;--cc-red:#b64842;
  width:100%;min-width:0;color:var(--cc-ink)
}
.wa-cc-page *{box-sizing:border-box}
.wa-cc-page :is(h2,h3,h4){color:var(--cc-ink)}
.wa-cc-page :is(p,small){line-height:1.55}
.wa-cc-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wag-space-24);margin:0 0 18px;padding:2px 2px 16px;border-bottom:1px solid var(--cc-line)}
.wa-cc-page-head h2{margin:3px 0 4px;font-size:clamp(22px,3vw,30px);letter-spacing:-.03em}
.wa-cc-page-head p{max-width:720px;margin:0;color:var(--cc-muted);font-size:var(--wag-text-13)}
.wa-cc-eyebrow{display:block;color:var(--cc-blue);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.wa-cc-health-chip{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid var(--cc-line);border-radius:var(--wag-radius-999);background:var(--wag-surface);color:var(--cc-muted);font-size:var(--wag-text-12);font-weight:750;white-space:nowrap}
.wa-cc-health-chip.is-warn{border-color:#ecd5b1;background:#fffaf1;color:#90601f}.wa-cc-health-chip.is-ok{border-color:var(--wag-type-cc-health-line, var(--wag-style-cc-health-line));background:var(--wag-type-cc-health-bg, var(--wag-style-cc-health-bg));color:var(--wag-type-cc-health-ink, var(--wag-style-cc-health-ink))}

/* Botón silueta: misma altura y geometría en todas las páginas. */
.wa .wa-cc-page :is(.wa-owner-btn,.wa-oct-btn,.wa-admin-filter,.wa-reviews-sort-btn,.wa-wahs-btn,.wa-waps-btn,.wa-bio-btn,.wa-tr-btn,.wa-saas-btn,.wa-scq-btn,.wa-bkadmin-chip,.wa-wags-btn,.wa-waps-search-btn,.wa-preview-copy,.wa-removal-act,.wa-owner-welcome-send,.wa-admin-new,.wa-cc-btn){
  appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  width:auto;min-width:0;min-height:40px!important;height:40px;padding:0 15px!important;margin:0;
  border:1px solid var(--wag-type-cc-tool-line, var(--wag-style-herramienta-line))!important;border-radius:var(--wag-type-cc-tool-radius, var(--wag-style-herramienta-radius))!important;background:var(--wag-type-cc-tool-bg, var(--wag-style-herramienta-bg))!important;color:var(--wag-type-cc-tool-ink, var(--wag-style-herramienta-ink))!important;
  box-shadow:var(--wag-shadow-16) !important;font:700 12.5px/1 inherit!important;letter-spacing:0!important;text-decoration:none!important;white-space:nowrap;cursor:pointer
}
.wa .wa-cc-page :is(.wa-owner-btn,.wa-oct-btn,.wa-admin-filter,.wa-reviews-sort-btn,.wa-wahs-btn,.wa-waps-btn,.wa-bio-btn,.wa-tr-btn,.wa-saas-btn,.wa-scq-btn,.wa-bkadmin-chip,.wa-wags-btn,.wa-waps-search-btn,.wa-preview-copy,.wa-removal-act,.wa-owner-welcome-send,.wa-admin-new,.wa-cc-btn):is(:hover,:focus,:active){
  border-color:var(--cc-blue)!important;background:var(--wag-type-cc-tool-hover-bg, var(--wag-style-herramienta-hover-bg))!important;color:var(--wag-type-cc-tool-hover-ink, var(--wag-style-herramienta-hover-ink))!important;box-shadow:var(--wag-shadow-16) !important;transform:none!important
}
.wa .wa-cc-page .wa-cc-btn:focus-visible{outline:2px solid var(--wag-type-cc-tool-ring, var(--wag-style-herramienta-ring))!important;outline-offset:2px}
.wa .wa-cc-page .wa-cc-btn:disabled{opacity:.48!important;cursor:not-allowed!important}
.wa .wa-cc-page :is(.is-active,.wa-oct-btn--approve,.wa-claim-approve):is(button,a),
.wa .wa-cc-page :is(button,a).is-active{border-color:var(--wag-type-cc-success-line, var(--wag-style-exito-line))!important;background:var(--wag-type-cc-success-bg, var(--wag-style-exito-bg))!important;color:var(--wag-type-cc-success-ink, var(--wag-style-exito-ink))!important}
.wa .wa-cc-page :is(.wa-wahs-btn--stop,.wa-oct-btn--reject,.wa-admin-trash,.wa-cc-btn--danger,[data-action="delete"],[data-action="reject"]){border-color:var(--wag-type-cc-danger-line, var(--wag-style-peligro-line))!important;background:var(--wag-type-cc-danger-bg, var(--wag-style-peligro-bg))!important;color:var(--cc-red)!important}
.wa .wa-cc-page :is(.wa-wahs-btn--stop,.wa-oct-btn--reject,.wa-admin-trash,.wa-cc-btn--danger,[data-action="delete"],[data-action="reject"]):is(:hover,:focus){border-color:var(--cc-red)!important;background:var(--wag-type-cc-danger-hover-bg, var(--wag-style-peligro-hover-bg))!important;color:var(--wag-type-cc-danger-hover-ink, var(--wag-style-peligro-hover-ink))!important}
.wa .wa-cc-page .wa-cc-btn--warning{border-color:var(--wag-type-cc-warning-line, var(--wag-style-aviso-line))!important;color:var(--wag-type-cc-warning-ink, var(--wag-style-aviso-ink))!important}.wa .wa-cc-page .wa-cc-btn--warning:hover{background:var(--wag-type-cc-warning-hover-bg, var(--wag-style-aviso-hover-bg))!important;border-color:var(--cc-amber)!important}

/* La misma familia visual tiene tres escalas. Los controles de fila e iconos
   no se fuerzan a la altura de un CTA: eso fue lo que descuadró el panel. */
.wa .wa-cc-page :is(.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-news-del,.wa-msg-open,.wa-msg-delete,.wa-activity-clear,.wa-icons-upload,.wa-admin-trash,.wa-reminder-chip,.wa-tr-page-btn){
  appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;
  min-height:32px!important;height:32px!important;padding:0 10px!important;margin:0!important;border:1px solid var(--wag-type-cc-row-line, var(--wag-style-herramienta-fila-line))!important;border-radius:var(--wag-type-cc-row-radius, var(--wag-style-herramienta-fila-radius))!important;
  background:var(--wag-type-cc-row-bg, var(--wag-style-herramienta-fila-bg))!important;color:var(--wag-type-cc-row-ink, var(--wag-style-herramienta-fila-ink))!important;box-shadow:var(--wag-shadow-16) !important;font:700 11.5px/1 inherit!important;text-decoration:none!important;white-space:nowrap
}
.wa .wa-cc-page :is(.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-news-del,.wa-msg-open,.wa-msg-delete,.wa-activity-clear,.wa-icons-upload,.wa-admin-trash,.wa-reminder-chip,.wa-tr-page-btn):is(:hover,:focus,:active){background:var(--wag-type-cc-row-hover-bg, var(--wag-style-herramienta-fila-hover-bg))!important;border-color:var(--cc-blue)!important;color:var(--wag-type-cc-row-hover-ink, var(--wag-style-herramienta-fila-hover-ink))!important;box-shadow:var(--wag-shadow-16) !important;transform:none!important}
.wa .wa-cc-page :is(.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh){
  appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;margin:0!important;border:1px solid #c8d7e1!important;border-radius:8px!important;background:var(--wag-type-cc-icon-bg, var(--wag-style-herramienta-bg))!important;color:#386b87!important;box-shadow:var(--wag-shadow-16) !important}
.wa .wa-cc-page :is(.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh):is(:hover,:focus,:active){background:var(--wag-type-cc-icon-hover-bg, var(--wag-style-herramienta-hover-bg))!important;border-color:var(--cc-blue)!important;color:var(--wag-type-cc-icon-hover-ink, var(--wag-style-herramienta-hover-ink))!important;box-shadow:var(--wag-shadow-16) !important;transform:none!important}
.wa .wa-cc-page :is(.wa-news-scope-btn,.wa-season-tab,.wa-tr-tab){min-height:34px!important;height:34px!important;padding:0 12px!important}
.wa .wa-cc-page :is(.wa-admin-trash,.wa-news-del,.wa-msg-delete){border-color:var(--wag-type-cc-danger-line, var(--wag-style-peligro-line))!important;color:var(--cc-red)!important}

/* Formularios compactos y alineados. */
.wa .wa-cc-page :is(input[type="text"],input[type="search"],input[type="email"],input[type="number"],input[type="password"],input[type="url"],select){
  min-height:42px;height:42px;padding:0 12px;border:1px solid var(--wag-type-field-cc-line, var(--wag-style-field-cc-line));border-radius:var(--wag-type-field-cc-radius, var(--wag-style-field-cc-radius));background:var(--wag-surface);color:var(--cc-ink);box-shadow:var(--wag-shadow-14);font-size:var(--wag-text-13)}
.wa .wa-cc-page textarea{width:100%;padding:12px;border:1px solid #ccd8e1;border-radius:9px;background:var(--wag-surface);color:var(--cc-ink);box-shadow:var(--wag-shadow-14);font-size:var(--wag-text-13);resize:vertical}
.wa .wa-cc-page :is(input,select,textarea):focus{border-color:var(--cc-blue);outline:0;box-shadow:var(--wag-type-field-cc-focus-shadow, var(--wag-style-field-cc-focus-shadow))}
.wa-cc-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:16px 0}

/* Abanicos/acordeones. */
.wa-cc-accordion{margin:0 0 12px;border:1px solid var(--cc-line);border-radius:var(--wag-type-cc-accordion-radius, var(--wag-style-cc-accordion-radius));background:var(--wag-surface);box-shadow:var(--wag-type-cc-accordion-shadow, var(--wag-style-cc-accordion-shadow));overflow:hidden}
.wa-cc-accordion>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--wag-space-16);min-height:58px;padding:14px 18px;list-style:none;color:var(--cc-ink);font-size:var(--wag-text-14);font-weight:800;cursor:pointer;background:var(--wag-surface)}
.wa-cc-accordion>summary::-webkit-details-marker{display:none}
.wa-cc-accordion>summary:after{content:'+';display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;border:1px solid var(--cc-line);border-radius:50%;color:var(--cc-blue);font-size:var(--wag-text-18);font-weight:500}
.wa-cc-accordion[open]>summary:after{content:'−'}
.wa-cc-accordion>summary span:first-child{display:grid;gap:2px}.wa-cc-accordion>summary small{color:var(--cc-muted);font-size:11.5px;font-weight:500}
.wa-cc-accordion--primary{border-color:#bdd4e1}.wa-cc-summary-state{margin-left:auto;padding:5px 9px;border-radius:99px;background:var(--cc-soft);color:var(--cc-muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.wa-cc-accordion[open]>summary{border-bottom:1px solid var(--cc-line)}
.wa-cc-accordion__body{padding:18px}.wa-cc-accordion__body>.wa-wahs-card{margin:0;border:0;box-shadow:var(--wag-shadow-14);padding:0}
.wa-cc-auto-accordion>:not(summary){margin-left:16px;margin-right:16px}.wa-cc-auto-accordion>:last-child{margin-bottom:16px}.wa-cc-settings-accordion .wa-settings-card-head{display:none}
.wa-cc-subaccordion{margin-top:14px!important;border-radius:10px!important;box-shadow:var(--wag-shadow-16) !important}.wa-cc-subaccordion>summary{min-height:44px!important;padding:10px 13px!important;font-size:12px!important}

/* Tarjetas, tablas y densidad común. */
.wa-cc-page :is(.wa-admin-card,.wa-admin-panel,.wa-wahs-card,.wa-waps-card,.wa-business-tool,.wa-bkadmin-card,.wa-oct-card,.wa-saas-card){border-color:var(--cc-line);border-radius:14px;box-shadow:0 4px 16px rgba(28,48,65,.035)}
.wa-cc-page :is(.wa-admin-toolbar,.wa-wahs-form-actions,.wa-admin-trow-actions,.wa-oct-queue-actions){display:flex;align-items:center;gap:var(--wag-space-8);flex-wrap:wrap}
.wa-cc-page :is(.wa-admin-trow,.wa-oct-queue-item){border-color:var(--cc-line)}
.wa-cc-page table{width:100%;border-collapse:collapse}.wa-cc-page :is(th,td){padding:10px 12px;border-bottom:1px solid #e7edf2;text-align:left;font-size:var(--wag-text-12);vertical-align:middle}.wa-cc-page th{color:var(--cc-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}

/* Hub Hotspots. */
.wa-cc-generator-hub{width:100%}.wa-cc-generator-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wag-space-24)}.wa-cc-generator-intro h3{margin:0 0 5px;font-size:var(--wag-text-16)}.wa-cc-generator-intro p{max-width:720px;margin:0;color:var(--cc-muted);font-size:12.5px}
.wa-cc-big-number{display:grid;justify-items:end;color:var(--cc-ink);font-size:28px;line-height:1;white-space:nowrap}.wa-cc-big-number small{margin-top:5px;color:var(--cc-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.wa-cc-progress{margin-top:14px;padding:14px;border:1px solid var(--cc-line);border-radius:11px;background:var(--cc-soft)}.wa-cc-progress[hidden]{display:none}.wa-cc-progress__meta,.wa-cc-progress__stats{display:flex;align-items:center;justify-content:space-between;gap:var(--wag-space-12)}.wa-cc-progress__meta{font-size:var(--wag-text-12)}.wa-cc-progress__track{height:8px;margin:9px 0;border-radius:99px;background:#dde7ed;overflow:hidden}.wa-cc-progress__track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cc-blue),#52a8c9);transition:width .3s ease}.wa-cc-progress__stats{justify-content:flex-start;flex-wrap:wrap;color:var(--cc-muted);font-size:var(--wag-text-11)}.wa-cc-progress__stats span+span:before{content:'·';margin-right:12px}.wa-cc-log{max-height:240px;overflow:auto;padding:12px;background:#17212b;color:#dce8ee;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.wa-cc-log div+div{border-top:1px solid rgba(255,255,255,.07)}

/* Navegación más compacta; el desplegable móvil sigue gestionado por JS. */
.wa-admin-nav{gap:var(--wag-space-4)}.wa-admin-nav .profile-tab{min-height:42px}.wa-nav-menu{border-radius:var(--wag-radius-12);box-shadow:var(--wag-type-nav-menu-shadow, var(--wag-style-nav-menu-shadow))}

@media(max-width:782px){
  .wa-cc-page-head,.wa-cc-generator-intro{display:grid;gap:var(--wag-space-12)}.wa-cc-health-chip{justify-self:start}.wa-cc-big-number{justify-items:start}
  .wa-cc-page{width:100%;max-width:none}.wa-cc-accordion>summary{min-height:54px;padding:12px 13px;gap:9px}.wa-cc-accordion__body{padding:13px}
  .wa .wa-cc-page :is(.wa-owner-btn,.wa-oct-btn,.wa-admin-filter,.wa-reviews-sort-btn,.wa-wahs-btn,.wa-waps-btn,.wa-bio-btn,.wa-tr-btn,.wa-saas-btn,.wa-scq-btn,.wa-bkadmin-chip,.wa-wags-btn,.wa-waps-search-btn,.wa-preview-copy,.wa-removal-act,.wa-owner-welcome-send,.wa-admin-new,.wa-cc-btn){min-height:44px!important;height:44px;padding:0 13px!important}
  .wa-cc-actions{display:grid;grid-template-columns:1fr 1fr}.wa-cc-actions>*{width:100%!important}.wa-cc-actions>*:last-child:nth-child(odd){grid-column:1/-1}
  .wa-cc-page :is(.wa-admin-toolbar,.wa-wahs-form-actions,.wa-admin-trow-actions,.wa-oct-queue-actions){display:grid;grid-template-columns:1fr 1fr;width:100%}.wa-cc-page :is(.wa-admin-toolbar,.wa-wahs-form-actions,.wa-admin-trow-actions,.wa-oct-queue-actions)>*{width:100%!important;min-width:0}
  .wa-cc-page :is(.wa-admin-toolbar,.wa-wahs-form-actions)>:is(input,select,textarea){grid-column:1/-1}
  .wa-cc-progress__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.wa-cc-progress__stats span+span:before{display:none}.wa-cc-progress__stats span{text-align:center}
  .wa-cc-page table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .wa-cc-summary-state{display:none}
}
@media(max-width:430px){.wa-cc-actions,.wa-cc-page :is(.wa-admin-toolbar,.wa-wahs-form-actions,.wa-admin-trow-actions,.wa-oct-queue-actions){grid-template-columns:1fr}.wa-cc-actions>*:last-child:nth-child(odd){grid-column:auto}.wa-cc-progress__stats{grid-template-columns:1fr}.wa-cc-page-head h2{font-size:23px}}
@media(max-width:782px){.wa .wa-cc-page .wp-switch-editor{box-sizing:border-box!important;height:44px!important;min-height:44px!important}}

/* Fotos automáticas: la tabla de escritorio se convierte en una ficha legible.
   No se ocultan acciones ni se desplaza contenido fuera de la pantalla. */
@media(max-width:900px){
  .wa-cc-page .wa-hs-pool-thead{display:none}
  .wa-cc-page .wa-hs-pool-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:12px}
  .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-name{grid-column:1/-1;min-width:0}
  .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-cat{grid-column:1}
  .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-photo{grid-column:2;text-align:right}
  .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-focus{grid-column:1/-1;width:100%;min-width:0}
  .wa-cc-page .wa-hs-frame-preview-wrap{max-width:none}
  .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-actions{grid-column:1/-1;justify-content:flex-end;width:100%}
  .wa-cc-page .wa-hs-inspect-inner{grid-template-columns:1fr;min-width:0}
  .wa-cc-page .wa-hs-inspect-current,.wa-cc-page .wa-hs-inspect-pool{min-width:0}
  .wa-cc-page .wa-hs-inspect-preview,.wa-cc-page .wa-hs-inspect-empty{width:100%;height:auto;aspect-ratio:2.1/1}
  .wa-cc-page .wa-hs-cands-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ==========================================================================
   CONTROL CENTER · auditoría visual página por página (2026-10-10)
   Todos los controles de acción comparten la misma altura y el mismo lenguaje
   de botón silueta. Se excluyen deliberadamente pestañas, switches y la barra
   de TinyMCE: son controles de navegación/estado, no acciones.
   ========================================================================== */

/* Botones de acción que aún conservaban escalas antiguas de 28/32/37/38 px. */
body.wa-admin .wa-cc-page :is(
  .wa-wags-btn-sm,.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-news-del,
  .wa-msg-open,.wa-msg-delete,.wa-activity-clear,.wa-icons-upload,.wa-admin-trash,
  .wa-reminder-chip,.wa-tr-page-btn,.wa-owner-revoke,.wa-claim-act,.wa-admin-btn,
  .wa-oct-run
){
  appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  width:auto;min-width:0;min-height:40px!important;height:40px!important;padding:0 15px!important;margin:0!important;
  border:1px solid #b9cedb!important;border-radius:9px!important;background:#fff!important;color:#236f98!important;
  box-shadow:var(--wag-shadow-16) !important;font:700 12.5px/1 inherit!important;letter-spacing:0!important;text-decoration:none!important;
  white-space:nowrap!important;cursor:pointer!important;transform:none!important
}
body.wa-admin .wa-cc-page :is(
  .wa-wags-btn-sm,.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-news-del,
  .wa-msg-open,.wa-msg-delete,.wa-activity-clear,.wa-icons-upload,.wa-admin-trash,
  .wa-reminder-chip,.wa-tr-page-btn,.wa-owner-revoke,.wa-claim-act,.wa-admin-btn,
  .wa-oct-run
):is(:hover,:focus,:focus-visible,:active){
  min-height:40px!important;height:40px!important;padding-block:0!important;border-color:var(--cc-blue)!important;
  background:#edf6fa!important;color:#185d82!important;box-shadow:var(--wag-shadow-16) !important;outline:0!important;transform:none!important;filter:none!important
}

/* Acciones semánticas: siguen siendo silueta, con el color indicando intención. */
body.wa-admin .wa-cc-page :is(.wa-claim-approve,.wa-owner-welcome-send,.wa-bio-btn.is-review,.wa-oct-run){
  border-color:#8bc6aa!important;background:#fff!important;color:#246d4d!important
}
body.wa-admin .wa-cc-page :is(.wa-claim-approve,.wa-owner-welcome-send,.wa-bio-btn.is-review,.wa-oct-run):is(:hover,:focus,:active){
  border-color:#27845b!important;background:#f1faf5!important;color:#1f6848!important;transform:none!important;filter:none!important
}
body.wa-admin .wa-cc-page :is(.wa-admin-trash,.wa-news-del,.wa-msg-delete,.wa-owner-revoke,.wa-claim-reject,.wa-bio-btn.is-danger){
  border-color:var(--wag-type-cc-danger-line, var(--wag-style-peligro-line))!important;background:var(--wag-type-cc-danger-bg, var(--wag-style-peligro-bg))!important;color:var(--cc-red)!important
}
body.wa-admin .wa-cc-page :is(.wa-admin-trash,.wa-news-del,.wa-msg-delete,.wa-owner-revoke,.wa-claim-reject,.wa-bio-btn.is-danger):is(:hover,:focus,:active){
  border-color:var(--cc-red)!important;background:var(--wag-type-cc-danger-hover-bg, var(--wag-style-peligro-hover-bg))!important;color:var(--wag-type-cc-danger-hover-ink, var(--wag-style-peligro-hover-ink))!important;transform:none!important;filter:none!important
}

/* Los iconos solos conservan caja cuadrada, pero usan la misma altura de 40px. */
body.wa-admin .wa-cc-page :is(.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh){
  width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;
  border:1px solid var(--wag-type-cc-icon-line, var(--wag-style-herramienta-line))!important;border-radius:var(--wag-type-cc-icon-radius, var(--wag-style-herramienta-radius))!important;background:var(--wag-type-cc-icon-bg, var(--wag-style-herramienta-bg))!important;color:var(--wag-type-cc-icon-ink, var(--wag-style-herramienta-ink))!important;
  box-shadow:var(--wag-shadow-16) !important;transform:none!important
}
body.wa-admin .wa-cc-page :is(.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh):is(:hover,:focus,:active){
  width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;
  border-color:var(--cc-blue)!important;background:var(--wag-type-cc-icon-hover-bg, var(--wag-style-herramienta-hover-bg))!important;color:var(--wag-type-cc-icon-hover-ink, var(--wag-style-herramienta-hover-ink))!important;box-shadow:var(--wag-shadow-16) !important;transform:none!important
}

/* El selector nativo de Astra era distinto en cada navegador y desplazaba la flecha. */
body.wa-admin .wa-cc-page select{
  -webkit-appearance:none!important;appearance:none!important;padding:0 40px 0 12px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25l5-5' fill='none' stroke='%23586b7b' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:12px 8px!important
}
body.wa-admin .wa-cc-page select:is(:hover,:focus,:active){background-position:right 14px center!important}

/* El estilo genérico de campos pisaba los 36px reservados al icono de lupa. */
body.wa-admin .wa-cc-page .wa-waps-search-field .wa-waps-search-input{padding:0 14px 0 38px!important}
body.wa-admin .wa-cc-page :is(.wa-admin-search,.wa-tr-search,.wa-season-review-search,.wa-waps-search-input){line-height:normal!important}

/* Pegar y construir forma parte del mismo generador: ya no es una isla oscura. */
body.wa-admin .wa-cc-page .wa-wahs-list-card{border:0!important;border-radius:0!important;padding:0!important;background:#fff!important;color:var(--cc-ink)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-card .wa-wahs-card-title{color:var(--cc-ink)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-card .wa-wahs-card-desc{color:var(--cc-muted)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-kicker{color:var(--cc-blue)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-safe{border-color:var(--cc-line)!important;background:var(--cc-soft)!important;color:var(--cc-muted)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-context label,
body.wa-admin .wa-cc-page .wa-wahs-list-text-label{color:var(--cc-ink)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-text-label small{color:var(--cc-muted)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-context select,
body.wa-admin .wa-cc-page .wa-wahs-list-card textarea{border-color:#ccd8e1!important;background-color:#fff!important;color:var(--cc-ink)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-actions [data-list-message]{color:var(--cc-muted)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-preview{border-top-color:var(--cc-line)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-summary{color:var(--cc-muted)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-summary strong{color:var(--cc-ink)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-results,
body.wa-admin .wa-cc-page .wa-wahs-list-status{border-color:var(--cc-line)!important;background:var(--cc-soft)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-result{border-bottom-color:var(--cc-line)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-result:hover{background:#edf4f7!important}
body.wa-admin .wa-cc-page .wa-wahs-list-result-copy strong{color:var(--cc-ink)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-result-copy small,
body.wa-admin .wa-cc-page .wa-wahs-list-preview-actions p,
body.wa-admin .wa-cc-page .wa-wahs-list-status p{color:var(--cc-muted)!important}
body.wa-admin .wa-cc-page .wa-wahs-list-status-top{color:var(--cc-ink)!important}

/* Fotos automáticas: cada hotspot es una ficha real, no una tabla comprimida.
   La antigua columna de 100px hacía que Inspeccionar y Buscar otra se pisaran. */
body.wa-admin .wa-cc-page .wa-hs-pool-table{gap:12px!important}
body.wa-admin .wa-cc-page .wa-hs-pool-thead{display:none!important}
body.wa-admin .wa-cc-page .wa-hs-pool-row{
  display:grid!important;
  grid-template-columns:minmax(220px,1fr) minmax(360px,520px)!important;
  grid-template-areas:"name frame" "category frame" "status frame" "actions frame"!important;
  gap:8px 28px!important;align-items:start!important;padding:18px!important;
  border:1px solid var(--cc-line)!important;border-radius:12px!important;background:#fff!important;
  box-shadow:0 3px 12px rgba(28,48,65,.025)!important
}
body.wa-admin .wa-cc-page .wa-hs-pool-row:hover{border-color:#c7d8e3!important;background:#fff!important;box-shadow:0 6px 18px rgba(28,48,65,.055)!important}
body.wa-admin .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-name{grid-area:name;align-self:start!important;min-width:0;padding-bottom:8px}
body.wa-admin .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-cat{grid-area:category;align-self:start!important;color:var(--cc-muted);font-size:var(--wag-text-12)}
body.wa-admin .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-photo{grid-area:status;align-self:start!important}
body.wa-admin .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-focus{grid-area:frame;align-self:start!important;width:100%;min-width:0}
body.wa-admin .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-actions{
  grid-area:actions;align-self:end!important;display:grid!important;grid-template-columns:1fr 1fr!important;
  gap:10px!important;width:100%!important;margin-top:10px!important
}
body.wa-admin .wa-cc-page .wa-hs-pool-row .wa-hs-thumb{width:84px;height:58px;border-radius:var(--wag-radius-8);flex:0 0 84px}
body.wa-admin .wa-cc-page .wa-hs-pool-row .wa-hs-cell-name a{font-size:var(--wag-text-14);line-height:1.35;white-space:normal}
body.wa-admin .wa-cc-page .wa-hs-pool-row .wa-hs-frame{gap:8px!important;min-width:0!important}
body.wa-admin .wa-cc-page .wa-hs-pool-row .wa-hs-frame-preview-wrap{width:100%!important;max-width:none!important}
body.wa-admin .wa-cc-page .wa-hs-pool-row .wa-hs-focus-save{width:100%!important}

/* Inspector: la regla histórica apuntaba a .wa-wahs-btn, pero el botón real
   es .wa-hs-apply-cand. La tarjeta ya no superpone ni corta "Usar esta". */
body.wa-admin .wa-cc-page .wa-hs-inspect-panel{padding:16px!important;border-color:var(--cc-line)!important;border-radius:12px!important;background:var(--cc-soft)!important}
body.wa-admin .wa-cc-page .wa-hs-cands-grid{gap:10px!important}
body.wa-admin .wa-cc-page .wa-hs-cand-thumb{
  display:grid!important;grid-template-rows:110px minmax(38px,auto) 40px!important;
  overflow:hidden!important;border:1px solid var(--cc-line)!important;border-radius:10px!important;background:#fff!important
}
body.wa-admin .wa-cc-page .wa-hs-cand-thumb img{width:100%!important;height:110px!important;object-fit:cover!important}
body.wa-admin .wa-cc-page .wa-hs-cand-label{
  position:static!important;display:-webkit-box!important;min-width:0;padding:7px 9px!important;
  overflow:hidden!important;background:#fff!important;color:var(--cc-muted)!important;font-size:10px!important;line-height:1.35!important;
  white-space:normal!important;text-overflow:ellipsis!important;-webkit-box-orient:vertical;-webkit-line-clamp:2
}
body.wa-admin .wa-cc-page .wa-hs-cand-thumb .wa-hs-apply-cand,
body.wa-admin .wa-cc-page .wa-hs-cand-thumb .wa-hs-apply-cand:is(:hover,:focus,:focus-visible,:active){
  position:static!important;width:100%!important;min-width:0!important;max-width:none!important;
  min-height:40px!important;height:40px!important;margin:0!important;padding:0 10px!important;
  border-width:1px 0 0!important;border-radius:0!important;transform:none!important;filter:none!important
}

/* Astra no puede alterar la geometría de los botones ni de los ranges. Solo
   cambian color de fondo/borde, nunca tamaño o posición. */
body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-inspect-btn,
body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-inspect-btn:is(:hover,:focus,:focus-visible,:active){
  box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:none!important;
  min-height:40px!important;height:40px!important;padding:0 15px!important;margin:0!important;
  border-width:1px!important;line-height:1!important;transform:none!important;filter:none!important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease!important
}
body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-reimport-btn,
body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-reimport-btn:is(:hover,:focus,:focus-visible,:active){
  box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:none!important;
  min-height:40px!important;height:40px!important;padding:0!important;margin:0!important;
  border-width:1px!important;line-height:1!important;transform:none!important;filter:none!important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease!important
}
body.wa-admin .wa-cc-page .wa-hs-frame-slider,
body.wa-admin .wa-cc-page .wa-hs-frame-slider:is(:hover,:focus,:focus-visible,:active){
  -webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;
  flex:1 1 0%!important;width:100%!important;min-width:0!important;max-width:none!important;
  height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:var(--wag-shadow-16) !important;
  outline:0!important;transform:none!important;filter:none!important
}
body.wa-admin .wa-cc-page .wa-hs-frame-slider::-webkit-slider-runnable-track,
body.wa-admin .wa-cc-page .wa-hs-frame-slider:is(:hover,:focus,:active)::-webkit-slider-runnable-track{
  box-sizing:border-box!important;width:100%!important;height:5px!important;border:0!important;border-radius:3px!important;
  background:#d3dbe3!important;box-shadow:var(--wag-shadow-16) !important;transform:none!important
}
body.wa-admin .wa-cc-page .wa-hs-frame-slider::-webkit-slider-thumb,
body.wa-admin .wa-cc-page .wa-hs-frame-slider:is(:hover,:focus,:active)::-webkit-slider-thumb{
  -webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;
  width:16px!important;height:16px!important;margin-top:-6px!important;padding:0!important;
  border:2px solid #fff!important;border-radius:50%!important;background:#1678b8!important;
  box-shadow:0 1px 4px rgba(16,20,26,.35)!important;transform:none!important;filter:none!important
}
body.wa-admin .wa-cc-page .wa-hs-frame-slider::-moz-range-track,
body.wa-admin .wa-cc-page .wa-hs-frame-slider:is(:hover,:focus,:active)::-moz-range-track{
  box-sizing:border-box!important;width:100%!important;height:5px!important;border:0!important;border-radius:3px!important;
  background:#d3dbe3!important;box-shadow:var(--wag-shadow-16) !important;transform:none!important
}
body.wa-admin .wa-cc-page .wa-hs-frame-slider::-moz-range-thumb,
body.wa-admin .wa-cc-page .wa-hs-frame-slider:is(:hover,:focus,:active)::-moz-range-thumb{
  box-sizing:border-box!important;width:16px!important;height:16px!important;padding:0!important;
  border:2px solid #fff!important;border-radius:50%!important;background:#1678b8!important;
  box-shadow:0 1px 4px rgba(16,20,26,.35)!important;transform:none!important;filter:none!important
}

/* Ajustes: antes conservaba las tarjetas grises planas del primer prototipo. */
body.wa-admin .wa-cc-page .wa-settings-card,
body.wa-admin .wa-cc-page .wa-security-card,
body.wa-admin .wa-cc-page .wa-notify-card{
  margin-bottom:18px!important;padding:22px 24px!important;border:1px solid var(--cc-line)!important;border-radius:var(--wag-type-settings-card-radius, var(--wag-style-settings-card-radius))!important;
  background:var(--wag-type-settings-card-bg, var(--wag-style-settings-card-bg))!important;box-shadow:var(--wag-type-settings-card-shadow, var(--wag-style-settings-card-shadow))!important
}
body.wa-admin .wa-cc-page .wa-settings-card-head{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #e7edf2}
body.wa-admin .wa-cc-page .wa-settings-card-title{font-size:var(--wag-text-16);color:var(--cc-ink)}
body.wa-admin .wa-cc-page .wa-settings-logo-btns,
body.wa-admin .wa-cc-page .wa-settings-api-btns{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
body.wa-admin .wa-cc-page .wa-settings-api-row{align-items:center}

/* El disparador de archivo de Social también es una acción, no un enlace de 13px. */
body.wa-admin .wa-cc-page .wa-social-drop .wa-social-link{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;
  min-height:40px!important;height:40px!important;padding:0 15px!important;border:1px solid var(--wag-type-social-link-line, var(--wag-style-social-link-line))!important;border-radius:var(--wag-type-social-link-radius, var(--wag-style-social-link-radius))!important;
  background:var(--wag-type-social-link-bg, var(--wag-style-social-link-bg))!important;color:var(--wag-type-social-link-ink, var(--wag-style-social-link-ink))!important;font:700 12.5px/1 inherit!important;text-decoration:none!important;box-shadow:var(--wag-shadow-16) !important}
body.wa-admin .wa-cc-page .wa-social-drop .wa-social-link:is(:hover,:focus,:active){border-color:var(--cc-blue)!important;background:var(--wag-type-social-link-hover-bg, var(--wag-style-social-link-hover-bg))!important;color:var(--wag-type-social-link-hover-ink, var(--wag-style-social-link-hover-ink))!important;transform:none!important}

/* El acceso auxiliar a wp-admin comparte la caja del resto de acciones del
   encabezado; Astra le dejaba una altura fraccionaria de 39,45 px. */
body.wa-admin .wa-admin-wp-link{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:40px!important;height:40px!important;padding-block:0!important;line-height:1!important
}

@media(max-width:782px){
  body.wa-admin .wa-cc-page :is(.wa-wags-btn-sm,.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-news-del,.wa-msg-open,.wa-msg-delete,.wa-activity-clear,.wa-icons-upload,.wa-admin-trash,.wa-reminder-chip,.wa-tr-page-btn,.wa-owner-revoke,.wa-claim-act,.wa-admin-btn,.wa-oct-run){
    min-height:44px!important;height:44px!important;padding:0 13px!important
  }
  body.wa-admin .wa-cc-page :is(.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh){width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
  body.wa-admin .wa-cc-page .wa-settings-api-row{align-items:stretch;flex-direction:column}
  body.wa-admin .wa-cc-page .wa-settings-api-ctrl{align-items:stretch;width:100%}
  body.wa-admin .wa-cc-page .wa-settings-api-field{width:100%}
  body.wa-admin .wa-admin-wp-link{min-height:44px!important;height:44px!important}
  body.wa-admin .wa-cc-page .wa-hs-pool-row{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:"name" "category" "status" "frame" "actions"!important;
    gap:8px!important;padding:12px!important
  }
  body.wa-admin .wa-cc-page .wa-hs-pool-row>.wa-hs-cell-actions{grid-template-columns:1fr 1fr!important;margin-top:4px!important}
  body.wa-admin .wa-cc-page .wa-hs-pool-row .wa-hs-thumb{width:72px;height:52px;flex-basis:72px}
  body.wa-admin .wa-cc-page .wa-hs-cand-thumb{grid-template-rows:96px minmax(42px,auto) 44px!important}
  body.wa-admin .wa-cc-page .wa-hs-cand-thumb img{height:96px!important}
  body.wa-admin .wa-cc-page .wa-hs-cand-thumb .wa-hs-apply-cand,
  body.wa-admin .wa-cc-page .wa-hs-cand-thumb .wa-hs-apply-cand:is(:hover,:focus,:focus-visible,:active){min-height:44px!important;height:44px!important}
  body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-inspect-btn,
  body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-inspect-btn:is(:hover,:focus,:focus-visible,:active){min-height:44px!important;height:44px!important;padding:0 13px!important}
  body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-reimport-btn,
  body.wa-admin .wa-cc-page .wa-hs-cell-actions .wa-hs-reimport-btn:is(:hover,:focus,:focus-visible,:active){width:100%!important;min-width:0!important;max-width:none!important;min-height:44px!important;height:44px!important;padding:0 13px!important}
}

/* Control Center · per-function AI choices */
.wa-ai-provider-status{display:flex;flex-wrap:wrap;gap:var(--wag-space-8);margin:0 0 22px}
.wa-ai-provider-pill{padding:6px 11px;border:1px solid #e4e5ed;border-radius:var(--wag-radius-999);font-size:var(--wag-text-12);color:#737580;background:#f8f9fc}
.wa-ai-provider-pill.is-ready{color:var(--wag-type-filter-provider-ink, var(--wag-style-filter-provider-ink));background:var(--wag-type-filter-provider-bg, var(--wag-style-filter-provider-bg));border-color:var(--wag-type-filter-provider-line, var(--wag-style-filter-provider-line))}
.wa-ai-routing-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,320px);align-items:center;gap:var(--wag-space-24);padding:16px 0;border-top:1px solid #edf0f4}
.wa-ai-routing-row label{display:block;font-size:var(--wag-text-14);font-weight:650;color:var(--cc-ink,#1a2332)}
.wa-ai-routing-row small{display:block;margin-top:4px;font-size:var(--wag-text-12);color:#718090;line-height:1.5}
.wa-ai-routing-row select{width:100%;min-height:44px;border:1px solid #dce1e9;border-radius:10px;background:var(--wag-surface);color:#253348;padding:9px 34px 9px 12px;font-size:var(--wag-text-13)}
.wa-ai-routing-row select:focus-visible{outline:2px solid #a17bd1;outline-offset:2px}
.wa-ai-settings-note{font-size:var(--wag-text-12);line-height:1.6;color:#718090;margin:16px 0 20px;max-width:850px}
#wa-ai-routing-message{font-size:var(--wag-text-13);line-height:1.5}
#wa-ai-routing-message.is-ok{color:#198357}#wa-ai-routing-message.is-err{color:#b53c46}
html[data-theme="dark"] .wa-ai-provider-pill{background:#19212a;border-color:#344252;color:#a9b6c5}
html[data-theme="dark"] .wa-ai-provider-pill.is-ready{background:var(--wag-type-filter-provider-dark-bg, var(--wag-style-filter-provider-dark-bg));color:var(--wag-type-filter-provider-dark-ink, var(--wag-style-filter-provider-dark-ink));border-color:var(--wag-type-filter-provider-dark-line, var(--wag-style-filter-provider-dark-line))}
html[data-theme="dark"] .wa-ai-routing-row{border-color:#2d3a49}
html[data-theme="dark"] .wa-ai-routing-row label{color:var(--wag-dark-ink)}
html[data-theme="dark"] .wa-ai-routing-row select{background:#19212a;border-color:#344252;color:var(--wag-dark-ink)}
@media(max-width:640px){.wa-ai-routing-row{grid-template-columns:1fr;gap:10px}.wa-ai-routing-row select{min-width:0}}

/* Ajustes en abanicos (Marc, 2026-10-12): admin-panel.js mete cada tarjeta en un
   <details class="wa-cc-accordion">, como los de Hotspots. La cabecera pasa al
   summary; dentro, la tarjeta pierde su caja para no ir caja dentro de caja. */
.wa-cc-settings-accordion .wa-settings-card-head,
.wa-cc-settings-accordion .wa-security-card > .wa-admin-card-title,
.wa-cc-settings-accordion .wa-notify-card > h3 { display: none; }
/* !important: el rediseño del Control Center pinta .wa-settings-card con
   !important (body.wa-admin .wa-cc-page .wa-settings-card). */
body.wa-admin .wa-cc-page .wa-cc-settings-accordion .wa-cc-accordion__body > :is(.wa-settings-card, .wa-admin-card, .wa-card) {
    margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
    box-shadow: var(--wag-shadow-15) !important; background: none !important;
}
.wa-cc-settings-accordion > summary small a { color: inherit; text-decoration: underline; }

/* ==========================================================================
   CONTROL CENTER · modo oscuro (Marc, 2026-10-12)
   El sistema visual unificado de arriba no tenía ni una regla oscura: pinta
   superficies, botones y campos en #fff, muchas veces con !important, y los
   estados en pasteles claros. Esta capa los re-apunta en oscuro. Va con
   html[data-theme="dark"] body.wa-admin .wa-cc-page delante para ganar a sus
   selectores (.wa .wa-cc-page y body.wa-admin .wa-cc-page), con !important
   solo donde ellos lo llevan. Medido con un barrido de contraste en las 20
   secciones del panel, no a ojo.
   ========================================================================== */
html[data-theme="dark"] body.wa-admin .wa-cc-page {
  --cc-ink:var(--wag-dark-ink); --cc-muted:var(--wag-color-dark-muted); --cc-line:var(--wag-color-dark-line); --cc-soft:var(--wag-color-dark-field);
  --cc-blue:#5aa9d6; --cc-amber:#f0b429; --cc-red:var(--wag-color-dark-coral);
  --ccd-card:var(--wag-color-dark-surface); --ccd-raise:#20262e; --ccd-field:var(--wag-color-dark-field); --ccd-edge:var(--wag-color-dark-edge);
}

/* Superficies */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-cc-accordion,.wa-cc-accordion>summary,.wa-cc-health-chip,.wa-admin-card,.wa-admin-panel,.wa-wahs-card,.wa-waps-card,.wa-business-tool,.wa-bkadmin-card,.wa-oct-card,.wa-saas-card,.wa-settings-card,.wa-card,.wa-hs-pool-row,.wa-hs-frame-preview-wrap,.wa-wahs-list-card,.wa-news-form,.wa-admin-table,.wa-msg-retention,.wa-season-review,.wa-season-v3__controls,.wa-seo-og-row,.wa-diagnostic-result,.wa-title-kpi,.wa-gal-admin-kpi,.wa-wams-price-field,.wa-icons-imgprev,.wa-admin-noimg,.wa-admin-health-clean,.wa-activity-q,.wa-oct-run) {
  background: var(--ccd-card) !important; border-color: var(--cc-line) !important; color: var(--cc-ink);
  box-shadow: var(--wag-shadow-15) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-hs-pool-row:hover { background: var(--ccd-raise) !important; border-color: var(--ccd-edge) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-cc-summary-state,
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(code,.wa-tr-card-desc>code) { background: var(--ccd-raise) !important; color: var(--cc-muted) !important; }

/* Campos */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(input[type="text"],input[type="search"],input[type="email"],input[type="number"],input[type="password"],input[type="url"],input:not([type]),select,textarea,.wa-dp-trigger) {
  background-color: var(--ccd-field) !important; border-color: var(--ccd-edge) !important; color: var(--cc-ink) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(input,select,textarea)::placeholder { color: #6f7c88; }

/* Normalizador de regiones: el atributo hidden debe ganar a los botones flex del CC. */
.wa .wa-cc-page .wa-cc-accordion [data-hotspot-regions] [hidden] { display: none !important; }
.wa .wa-cc-page [data-hotspot-regions] .wa-wahs-list-context label { color: var(--cc-ink); }
.wa .wa-cc-page [data-hotspot-regions] progress { width: 100%; accent-color: var(--cc-blue); }
.wa .wa-cc-page [data-hotspot-regions] textarea { box-sizing: border-box; width: 100%; min-height: 130px; padding: 12px; resize: vertical; color: var(--cc-ink); background: var(--cc-soft); border: 1px solid var(--cc-line); border-radius: 8px; }

/* Botones silueta: las tres escalas */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-owner-btn,.wa-oct-btn,.wa-admin-filter,.wa-reviews-sort-btn,.wa-wahs-btn,.wa-waps-btn,.wa-bio-btn,.wa-tr-btn,.wa-saas-btn,.wa-scq-btn,.wa-bkadmin-chip,.wa-wags-btn,.wa-waps-search-btn,.wa-preview-copy,.wa-removal-act,.wa-owner-welcome-send,.wa-admin-new,.wa-cc-btn,.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-msg-open,.wa-activity-clear,.wa-icons-upload,.wa-reminder-chip,.wa-tr-page-btn,.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh,.wa-news-scope-btn,.wa-season-tab,.wa-tr-tab,.wa-seo-idx-chip,.wa-filter) {
  background: var(--ccd-card) !important; border-color: var(--ccd-edge) !important; color: var(--wag-type-cc-tool-dark-ink, var(--wag-style-herramienta-dark-ink)) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-owner-btn,.wa-oct-btn,.wa-admin-filter,.wa-reviews-sort-btn,.wa-wahs-btn,.wa-waps-btn,.wa-bio-btn,.wa-tr-btn,.wa-saas-btn,.wa-scq-btn,.wa-bkadmin-chip,.wa-wags-btn,.wa-waps-search-btn,.wa-preview-copy,.wa-removal-act,.wa-owner-welcome-send,.wa-admin-new,.wa-cc-btn,.wa-hs-sm-btn,.wa-waps-btn--inspect,.wa-news-edit,.wa-msg-open,.wa-activity-clear,.wa-icons-upload,.wa-reminder-chip,.wa-tr-page-btn,.wa-waps-idx-btn,.wa-enrich-btn,.wa-hs-reimport-btn,.wa-waps-health-refresh,.wa-news-scope-btn,.wa-season-tab,.wa-tr-tab,.wa-seo-idx-chip,.wa-filter):is(:hover,:focus,:active) {
  background: var(--wag-type-cc-tool-dark-hover-bg, var(--wag-style-herramienta-dark-hover-bg)) !important; border-color: var(--cc-blue) !important; color: var(--wag-type-cc-tool-dark-hover-ink, var(--wag-style-herramienta-dark-hover-ink)) !important;
}
/* Activo / aprobar */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.is-active,.wa-oct-btn--approve,.wa-claim-approve,.wa-tr-btn.is-primary,.has-pending.is-active):is(button,a) {
  background: var(--wag-type-cc-success-dark-bg, var(--wag-style-exito-dark-bg)) !important; border-color: var(--wag-type-cc-success-dark-line, var(--wag-style-exito-dark-line)) !important; color: var(--wag-type-cc-success-dark-ink, var(--wag-style-exito-dark-ink)) !important;
}
/* Peligro */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-wahs-btn--stop,.wa-oct-btn--reject,.wa-admin-trash,.wa-cc-btn--danger,.wa-news-del,.wa-msg-delete,.wa-tr-btn.is-danger,.wa-tr-btn.is-stop,.wa-bio-btn.is-danger,[data-action="delete"],[data-action="reject"]) {
  background: var(--wag-type-cc-danger-dark-bg, var(--wag-style-peligro-dark-bg)) !important; border-color: var(--wag-type-cc-danger-dark-line, var(--wag-style-peligro-dark-line)) !important; color: var(--wag-type-cc-danger-dark-ink, var(--wag-style-peligro-dark-ink)) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-wahs-btn--stop,.wa-oct-btn--reject,.wa-admin-trash,.wa-cc-btn--danger,.wa-news-del,.wa-msg-delete,.wa-tr-btn.is-danger,.wa-tr-btn.is-stop,.wa-bio-btn.is-danger,[data-action="delete"],[data-action="reject"]):is(:hover,:focus) {
  background: var(--wag-type-cc-danger-dark-hover-bg, var(--wag-style-peligro-dark-hover-bg)) !important; border-color: var(--wag-type-cc-danger-dark-hover-line, var(--wag-style-peligro-dark-hover-line)) !important; color: var(--wag-type-cc-danger-dark-hover-ink, var(--wag-style-peligro-dark-hover-ink)) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-cc-btn--warning,
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-bio-btn.is-review { border-color: var(--wag-type-cc-warning-dark-line, var(--wag-style-aviso-dark-line)) !important; color: var(--wag-type-cc-warning-dark-ink, var(--wag-style-aviso-dark-ink)) !important; }

/* Estados: tintes del mismo color en vez de pasteles claros */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-cockpit-alert.is-critical,.is-critical,.wa-bkadmin-state.is-rejected,.wa-settings-api-status.is-unset,.wa-waps-idx-btn--noindex,.wa-season-calibration-card.is-missing) {
  background: rgba(255,107,94,.11) !important; border-color: rgba(255,107,94,.32) !important; color: #ffb3a8 !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-cockpit-alert.is-review,.is-review,.wa-admin-alert.is-warn,.wa-cc-health-chip.is-warn,.wa-bkadmin-state.is-pending,.wa-bkadmin-late,.wa-seo-alert,.wa-season-calibration-card.is-pending,.wa-activity-lock.is-idle) {
  background: rgba(240,180,41,.10) !important; border-color: rgba(240,180,41,.30) !important; color: #f0c76a !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.is-pass,.wa-diag-summary.is-ok,.wa-cc-health-chip.is-ok,.wa-hs-chip.is-ok,.wa-bkadmin-state.is-approved,.wa-waps-badge--safe,.wa-wahs-list-safe) {
  background: rgba(63,179,122,.11) !important; border-color: rgba(63,179,122,.30) !important; color: #7fd3a8 !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-waps-badge--none,.wa-oct-queue-badge,.wa-settings-api-status.is-passive,.wa-season-calibration-curve.is-empty,.wa-admin-trow-country,.wa-settings-api-field,.wa-switch:not(.is-on)) {
  background: var(--ccd-raise) !important; border-color: var(--cc-line) !important; color: var(--cc-muted) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-cockpit-alert,.wa-admin-alert,.is-critical,.is-review,.is-pass) > span { color: inherit !important; opacity: .85; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-cockpit-alert > strong,
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-admin-alert-n { color: inherit !important; }

/* Textos que heredaban tinta oscura literal */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(td,label,.wa-field-label,.wa-admin-row>span,.wa-activity-head strong,.wa-waps-hkpi>strong,.wa-wags-card-icon,.wa-news-featured,.wa-hs-pool-head>strong,.wa-settings-api-label>strong,.wa-settings-tool-label>strong,.wa-settings-api-desc>strong,h4) { color: var(--cc-ink) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(small,.wa-settings-vendor,.wa-settings-api-desc,.wa-settings-tool-label>span,.wa-photo-info,.wa-seo-og-empty,.wa-hs-frame-preview-empty,.wa-season-calibration-source,.wa-season-group-kicker,em) { color: var(--cc-muted) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-hs-cell-name > a { color: #8ec8f0 !important; }
/* Segunda pasada del barrido */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-cockpit-health,.wa-photo-queue,.wa-social-link,.wa-bio-queue-state,.wa-season-review-select-all,.wa-wags-btn-sm) {
  background: var(--ccd-card) !important; background-image: none !important; border-color: var(--cc-line) !important; color: var(--cc-ink) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-wags-btn-sm { color: #8ec8f0 !important; border-color: var(--ccd-edge) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-cockpit-alert > strong { background: rgba(255,255,255,.06) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-cockpit-alert,.is-critical,.is-review,.is-pass) > strong { color: inherit !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-hs-chip.is-warn,.wa-climate-status.is-partial) {
  background: rgba(240,180,41,.10) !important; border-color: rgba(240,180,41,.30) !important; color: #f0c76a !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-claim-approve,.wa-waps-badge--tier1) {
  background: rgba(63,179,122,.14) !important; border-color: #2f6b4f !important; color: #7fd3a8 !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-oct-run,.wa-oct-run>span,.wa-tr-tab>i,.wa-msg-retention,.wa-msg-retention>strong,.wa-msg-retention-note) { color: #7fd3a8 !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-season-calibration-facts>span,.wa-season-calibration-expected,.wa-season-calibration-expected>b,.wa-season-calibration-diagnostics>summary,.wa-season-review-summary>span,.wa-season-v3__log>summary,.wa-hs-frame-axis,.wa-hs-frame-val,.wa-gal-admin-kpi>span,.wa-admin-card>p) { color: var(--cc-muted) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-season-calibration-card strong,.wa-season-review-summary>strong,.wa-seo-idx-chip>strong,.wa-seo-og-label,.wa-title-kpi>strong,.wa-season-review-select-all>span) { color: var(--cc-ink) !important; }
/* Negocio: el grupo «aprobar / enviar» no tenía versión oscura. Mismo :is()
   con los #id que la regla clara, porque un #id dentro de :is() le da peso de
   ID a toda la lista y ninguna regla de clases le gana. */
html[data-theme="dark"] body.wa-admin .wa-business-admin :is(.wa-claim-approve,.wa-owner-welcome-send,.wa-oh-link,.wa-feat-add,#wa-reminder-send,#wa-pay-fee-save) {
  border-color: #2f6b4f !important; background: rgba(63,179,122,.14) !important; color: #7fd3a8 !important;
}
html[data-theme="dark"] body.wa-admin .wa-business-admin :is(.wa-claim-approve,.wa-owner-welcome-send,.wa-oh-link,.wa-feat-add,#wa-reminder-send,#wa-pay-fee-save):is(:hover,:focus-visible) {
  border-color: #3fb37a !important; background: rgba(63,179,122,.22) !important; color: #a6e6c4 !important;
}
/* Temporada: etiqueta de estado de las tarjetas de calibración */
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-season-calibration-card header > span { background: var(--ccd-raise) !important; color: var(--cc-muted) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-season-calibration-card.is-pass header > span { background: rgba(63,179,122,.14) !important; color: #7fd3a8 !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wa-season-calibration-card.is-partial header > span { background: rgba(240,180,41,.12) !important; color: #f0c76a !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wa-season-calibration-card.is-fail,.wa-season-calibration-card.is-insufficient) header > span { background: rgba(255,107,94,.12) !important; color: #ffb3a8 !important; }
/* Ajustes → Acerca de: el editor clásico de WordPress (TinyMCE) */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(.wp-switch-editor,.mce-tinymce,.mce-toolbar-grp,.mce-statusbar,.mce-edit-area,.quicktags-toolbar) { background: var(--ccd-raise) !important; border-color: var(--cc-line) !important; color: var(--cc-ink) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .mce-btn { background: transparent !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .mce-btn :is(i,.mce-txt) { color: var(--cc-ink) !important; }
html[data-theme="dark"] body.wa-admin .wa-cc-page .wp-editor-area { background: var(--ccd-field) !important; color: var(--cc-ink) !important; }
/* Líneas divisorias (Marc, 2026-10-12): el primer barrido miraba fondos y
   texto, no bordes; las separaciones de filas y tablas seguían en gris claro. */
html[data-theme="dark"] body.wa-admin .wa-cc-page :is(table,thead,tbody,tr,td,th,hr,.wa-admin-row,.wa-activity-queues,.wa-waps-thead,.wa-photo-queue>div,.wa-gear-rule,.wa-gear-table,.wa-wags-gap-table,.wa-wags-gap-name,.wa-wags-gap-missing,.wa-social-drop,.wa-season-calibration-diagnostics,.wa-season-review-empty,.wa-season-v3__log,.wp-editor-container,.mce-btn) {
  border-color: var(--cc-line) !important;
}
html[data-theme="dark"] body.wa-admin .wa-cc-page hr { background: var(--cc-line) !important; }

/* ⋯ de la miniatura (Marc, 2026-10-12): solo al pasar el ratón, en un disco
   oscuro translúcido que se lee sobre cualquier foto, 8px dentro de la esquina,
   y un menú con aire. En pantallas táctiles (sin hover) se ve siempre: no hay
   ratón que lo descubra. Abierto o con foco de teclado, también se ve. */
.wa-photo-tile>.wa-photo-tile-tools:not([hidden]){top:8px;right:8px}
.wa .wa-photo-tile>.wa-photo-tile-tools summary{
  width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(16,20,26,.55);color:#fff;font-size:17px;line-height:1;letter-spacing:.5px;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px rgba(0,0,0,.22);
  transition:background .15s ease
}
.wa .wa-photo-tile>.wa-photo-tile-tools summary:hover,
.wa .wa-photo-tile>.wa-photo-tile-tools details[open]>summary{background:rgba(16,20,26,.8);color:#fff}
.wa .wa-photo-tile>.wa-photo-tile-tools summary:focus-visible{outline:2px solid #fff;outline-offset:2px}
.wa-photo-tile>.wa-photo-tile-tools summary svg{display:block;width:18px;height:18px;flex:0 0 18px;pointer-events:none}
@media (hover:hover){
  .wa-photo-tile>.wa-photo-tile-tools{opacity:0;transition:opacity .15s ease}
  .wa-photo-tile:hover>.wa-photo-tile-tools,
  .wa-photo-tile>.wa-photo-tile-tools:focus-within,
  .wa-photo-tile>.wa-photo-tile-tools:has(details[open]){opacity:1}
}
.wa-photo-tile>.wa-photo-tile-tools .wa-photo-menu{
  top:calc(100% + 6px);width:210px;padding:6px;border-radius:var(--wag-radius-12);
  box-shadow:0 18px 40px -12px rgba(16,24,32,.35),0 2px 8px rgba(16,24,32,.08)
}
.wa .wa-photo-tile .wa-photo-menu :is(.wa-gal-act,.wa-gal-mine-del,.wa-gal-social-permission){border-radius:8px!important;min-height:40px;font-weight:600}
.wa .wa-photo-tile .wa-photo-menu :is(.wa-gal-act,.wa-gal-mine-del,.wa-gal-social-permission):is(:hover,:focus-visible){background:var(--wa-photo-soft)!important;outline:none}
