/* =============================================================================
   OCTOPUS — Phase 0 · Cockpit · Validation Queue · Index Queue · Placeholders
   ============================================================================= */

/* ── Queue layout ────────────────────────────────────────────────────────────── */
.wa-oct-queues { display: flex; flex-direction: column; gap: 28px; margin-bottom: 32px; }
.wa-oct-queue-block { background: #f8f9fb; border-radius: var(--wag-radius-16); padding: 20px 22px; }
.wa-oct-queue-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.wa-oct-queue-head .wa-admin-subtitle { margin: 0; }
.wa-oct-queue-head small { font-size: var(--wag-text-11); color: var(--wa-muted, #788596); font-weight: 600; letter-spacing: .5px; text-transform: none; }

/* Badge count */
.wa-oct-queue-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px; border-radius: var(--wag-radius-999);
    font-size: var(--wag-text-11); font-weight: 800; line-height: 1;
    background: #e8edf3; color: var(--wa-muted, #788596);
    padding: 0 6px;
}
.wa-oct-queue-badge.is-active { background: var(--wa-accent, #2b7cb0); color: #fff; }
.wa-oct-queue-badge--index.is-active { background: #1ea674; }

/* Queue items */
.wa-oct-queue-list { display: flex; flex-direction: column; gap: var(--wag-space-8); }
.wa-oct-queue-item {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    background: var(--wag-surface); border: 1px solid #e8edf3; border-radius: 10px;
    padding: 12px 14px; transition: box-shadow .15s;
}
.wa .wa-oct-queue-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,.07); }
.wa-oct-queue-item-info { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.wa-oct-queue-item-info strong { font-size: 13.5px; font-weight: 700; color: var(--wa-ink, #1a2230); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-oct-type-chip { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--wa-accent, #2b7cb0); background: var(--wag-type-filter-oct-chip-bg, var(--wag-style-filter-oct-chip-bg)); border-radius: var(--wag-type-filter-oct-chip-radius, var(--wag-style-filter-oct-chip-radius)); padding: 3px 7px; flex-shrink: 0; }
.wa-oct-score { font-size: var(--wag-text-11); color: var(--wa-muted, #788596); font-weight: 700; flex-shrink: 0; white-space: nowrap; }
.wa-oct-sources { font-size: var(--wag-text-11); color: var(--wa-muted, #788596); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 240px; }

/* Queue empty state */
.wa-oct-queue-empty { font-size: var(--wag-text-13); color: var(--wa-muted, #788596); margin: 4px 0 0; line-height: 1.6; }

/* ── Queue action buttons ─────────────────────────────────────────────────────── */
.wa-oct-queue-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.wa-oct-btn {
    display: inline-flex; align-items: center; justify-content: center;
    height: 30px; border-radius: var(--wag-radius-8); padding: 0 12px;
    font-size: var(--wag-text-12); font-weight: 700; border: none; cursor: pointer;
    transition: background .14s, color .14s, opacity .14s; line-height: 1;
}
.wa-oct-btn:disabled { opacity: .5; cursor: default; }
.wa-oct-btn--ghost { background: transparent; border: 1.5px solid #dde2e8; color: var(--wa-muted, #788596); text-decoration: none; }
.wa .wa-oct-btn--ghost:hover { border-color: #aab; color: var(--wa-ink, #1a2230); }
.wa-oct-btn--reject { background: #fee8e8; color: #c0392b; }
.wa .wa-oct-btn--reject:hover { background: #fad4d4; }
.wa-oct-btn--approve { background: #1ea674; color: #fff; }
.wa .wa-oct-btn--approve:hover { background: #18915f; }

/* ── OCTOPUS Placeholder (future arms) ─────────────────────────────────────── */
.wa-oct-placeholder {
    background: #f8f9fb; border-radius: 18px; padding: 32px 36px;
    max-width: 680px;
}
.wa-oct-placeholder-head { display: flex; align-items: center; gap: var(--wag-space-12); margin-bottom: 14px; }
.wa-oct-placeholder-head h2 { font-size: var(--wag-text-20); font-weight: 800; color: var(--wa-ink, #1a2230); margin: 0; }
.wa-oct-system-label { font-size: var(--wag-text-14); font-weight: 600; color: var(--wa-muted, #788596); }
.wa-oct-phase-chip {
    font-size: 10px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase;
    background: rgba(43,124,176,.10); color: var(--wa-accent, #2b7cb0);
    border-radius: 6px; padding: 4px 8px; flex-shrink: 0;
}
.wa-oct-placeholder-desc { font-size: var(--wag-text-14); color: #4a5568; line-height: 1.65; margin: 0 0 16px; }
.wa-oct-feature-list { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.wa-oct-feature-list li { font-size: var(--wag-text-13); color: var(--wa-muted, #788596); }
.wa-oct-placeholder-note { font-size: var(--wag-text-12); color: #aab; margin: 0; font-style: italic; }

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .wa-oct-queue-item { flex-direction: column; align-items: flex-start; }
    .wa-oct-queue-actions { width: 100%; justify-content: flex-end; }
    .wa-oct-placeholder { padding: 20px; }
}


/* ═══════════════════════════════════════════════════════════════════════════════
   WAPS SPECIES HUB — Lista + Inspector + Harvest Pool + Bulk actions
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ── Wrapper ─────────────────────────────────────────────────────────────────── */
.wa-waps-wrap { display: flex; flex-direction: column; gap: 0; }

/* ── Buscador ────────────────────────────────────────────────────────────────── */
.wa-waps-search-form {
    display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
    margin-bottom: 14px;
}
.wa-waps-search-field {
    position: relative; flex: 1 1 260px; min-width: 200px; display: block; margin: 0;
}
.wa-waps-search-field > svg {
    position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
    color: var(--wa-muted,#788596); pointer-events: none;
}
.wa-waps-search-form .wa-waps-search-input {
    width: 100%; height: 38px; margin: 0; box-sizing: border-box;
    padding: 0 14px 0 36px; border: 1.5px solid #d0d8e4; border-radius: 10px;
    font-size: var(--wag-text-14); color: var(--wa-ink,#1a2230); background: var(--wag-surface); box-shadow: var(--wag-shadow-14);
}
.wa .wa-waps-search-input:focus { outline: none; border-color: var(--wa-accent,#2b7cb0); }
.wa-waps-search-form select {
    height: 38px; margin: 0; padding: 0 10px; border: 1.5px solid #d0d8e4; border-radius: 10px;
    font-size: var(--wag-text-13); background: var(--wag-surface); cursor: pointer;
}
/* Botón Buscar: el contorno azul de los botones del sitio. Astra pinta
   button, :hover y :focus con su propio fondo; se declaran todos. */
.wa .wa-waps-search-form .wa-waps-search-btn,
.wa .wa-waps-search-form .wa-waps-search-btn:focus,
.wa .wa-waps-search-form .wa-waps-search-btn:active {
    height: 38px; margin: 0; padding: 0 18px; border-radius: 10px;
    border: 1.5px solid #9cc4e0; background: var(--wag-surface); background-image: none; box-shadow: var(--wag-shadow-14);
    color: #1f6a9c; font-size: var(--wag-text-13); font-weight: 600; line-height: 1;
    letter-spacing: 0; text-transform: none; cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}
.wa .wa-waps-search-form .wa-waps-search-btn:hover { background: #f2f8fc; border-color: #2b7cb0; color: #1a5a86; }
.wa .wa-waps-search-form .wa-waps-search-btn:focus-visible { outline: 3px solid rgba(43,124,176,.22); outline-offset: 2px; }
@media (max-width: 700px) {
    .wa-waps-search-field { flex-basis: 100%; }
    .wa-waps-search-form select { flex: 1 1 0; width: auto; min-width: 0; }
}
.wa-waps-clear { font-size: var(--wag-text-13); color: var(--wa-muted,#788596); text-decoration: none; }
.wa .wa-waps-clear:hover { color: #e0392b; }
.wa-waps-meta { font-size: var(--wag-text-13); color: var(--wa-muted,#788596); margin-bottom: 14px; }
.wa-waps-meta strong { color: var(--wa-ink,#1a2230); }

/* ── Tabla ───────────────────────────────────────────────────────────────────── */
.wa-waps-table { background: var(--wag-surface); border-radius: 14px; border: 1px solid #e8edf2; overflow: hidden; margin-bottom: 24px; }
.wa-waps-thead,
.wa-waps-row {
    display: grid;
    grid-template-columns: minmax(200px,2.5fr) 90px 72px 64px 190px;
    align-items: center; gap: 0 12px; padding: 11px 16px;
}
.wa-waps-thead {
    font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase; letter-spacing: .7px;
    color: var(--wa-muted,#788596); background: #f8f9fb; border-bottom: 1px solid #e8edf2;
}
.wa-waps-row { border-bottom: 1px solid var(--wag-type-waps-row-underline, var(--wag-style-waps-row-underline)); transition: background .12s; }
.wa-waps-row:last-child { border-bottom: none; }
.wa-waps-row:hover,
.wa-waps-row.is-inspecting { background: var(--wag-type-waps-row-bg, var(--wag-style-waps-row-bg)); }

/* Especie cell */
.wa-waps-cell-species { display: flex; align-items: center; gap: 10px; min-width: 0; }
.wa-waps-thumb { width: 38px; height: 38px; border-radius: 7px; object-fit: cover; flex-shrink: 0; }
.wa-waps-nothumb { width: 38px; height: 38px; border-radius: 7px; background: #e4eaf2; flex-shrink: 0; display: inline-block; }
.wa-waps-names { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wa-waps-names strong { font-size: 13.5px; color: var(--wa-ink,#1a2230); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-waps-names em { font-size: 11.5px; color: var(--wa-muted,#788596); font-style: italic; }
.wa-waps-names span { font-size: 11.5px; color: var(--wa-muted,#788596); }

/* Badges */
.wa-waps-badge { font-size: var(--wag-text-11); font-weight: 600; border-radius: 6px; padding: 2px 8px; display: inline-block; white-space: nowrap; }
.wa-waps-badge--safe   { background: #d4f0e4; color: #1a6b40; }
.wa-waps-badge--manual { background: #deeeff; color: #0d5fa3; }
.wa-waps-badge--risky  { background: #fff3cd; color: #7a4a00; }
.wa-waps-badge--none   { background: #f0f3f7; color: #8898aa; }
.wa-waps-badge--done   { background: #d4f0e4; color: #1a6b40; }
.wa-waps-badge--tier1  { background: #fff3e0; color: #7a4a00; }
.wa-waps-badge--missing{ background: #f0f3f7; color: #8898aa; }

/* Score cell */
.wa-waps-score-cell { font-size: var(--wag-text-16); font-weight: 800; }

/* Acciones cell */
.wa-waps-actions { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; }

/* Index button (○ ◑ ●) */
.wa-waps-idx-btn {
    width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid #d0d8e4;
    background: var(--wag-surface); cursor: pointer; font-size: var(--wag-text-16); line-height: 1;
    display: flex; align-items: center; justify-content: center;
    transition: all .15s; flex-shrink: 0; padding: 0;
}
.wa-waps-idx-btn--noindex { color: #a0aabc; }
.wa-waps-idx-btn--ready   { color: #ba7517; border-color: #ba7517; }
.wa-waps-idx-btn--index   { color: #1f8a52; border-color: #1f8a52; background: #edfaf4; }
.wa .wa-waps-idx-btn:hover { border-color: var(--wa-accent,#2b7cb0); }

/* Botones inline */
.wa-waps-btn {
    font-size: var(--wag-text-12); font-weight: 600; border-radius: var(--wag-radius-8); padding: 5px 11px;
    cursor: pointer; border: 1.5px solid transparent; line-height: 1.2;
    text-decoration: none; display: inline-flex; align-items: center; white-space: nowrap;
    transition: all .12s;
}
.wa-waps-btn--ghost   { border-color: #d0d8e4; background: var(--wag-surface); color: var(--wa-ink,#1a2230); }
.wa .wa-waps-btn--ghost:hover { border-color: #8898aa; }
.wa-waps-btn--inspect { background: var(--wa-ink,#1a2230); color: #fff; border-color: transparent; }
.wa .wa-waps-btn--inspect:hover { background: #2c3449; }
.wa-waps-btn--action  { background: #eef5ff; color: var(--wa-accent,#2b7cb0); border-color: #c8daf4; }
.wa .wa-waps-btn--action:hover { background: #ddeeff; }
.wa-waps-btn--current { background: var(--wa-ink,#1a2230); color: #fff; }
.wa-waps-btn:disabled { opacity: .5; cursor: not-allowed; }

/* Inspector slot */
.wa-waps-inspector-slot {
    border-top: 2px solid var(--wa-accent,#2b7cb0);
    background: #f4f7fc;
    animation: wa-insp-in .18s ease;
}
@keyframes wa-insp-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }

/* Empty */
.wa-waps-empty { padding: 32px; text-align: center; color: var(--wa-muted,#788596); font-size: var(--wag-text-14); }

/* Paginación */
.wa-waps-pager { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 24px; }

/* ── Inspector ───────────────────────────────────────────────────────────────── */
.wa-insp { padding: 20px 20px 24px; }
.wa-insp-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 28px;
}

/* Columna izquierda */
.wa-insp-left { display: flex; flex-direction: column; gap: 14px; }

/* Preview foto */
.wa-insp-photo-wrap { display: flex; flex-direction: column; gap: 6px; }
.wa-insp-photo-preview {
    border-radius: 10px; overflow: hidden; height: 170px;
    background: #e4eaf2; position: relative;
}
.wa-insp-photo-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wa-insp-lic-badge {
    position: absolute; bottom: 8px; left: 8px;
    font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 5px;
    background: rgba(30,166,116,.9); color: #fff;
}
.wa-insp-lic-badge--warn { background: rgba(186,117,23,.9); }
/* Trash button — Marc, 2026-08-04: borrar la foto del hero directamente desde
   el Inspector (Control Center → Especies), sin tener que entrar en wp-admin.
   !important porque un botón con clases propias todavía puede perder contra
   Astra en este panel (mismo motivo que el resto de la "Astra specificity
   pass") — fondo SÓLIDO desde el reposo (nada de rgba translúcido que se
   camufla con la foto de fondo) e icono en color fijo, no currentColor, para
   que no dependa de que el color del botón se herede correctamente. */
.wa-insp-photo-trash {
    position: absolute !important; top: 8px !important; right: 8px !important;
    width: 28px !important; height: 28px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    background: #fff !important; border: none !important; border-radius: 8px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.45) !important;
    cursor: pointer !important; padding: 0 !important; line-height: 0 !important;
    transition: background .15s, transform .15s;
    z-index: 5;
}
.wa-insp-photo-trash svg { display: block !important; stroke: #c0392b !important; }
.wa .wa-insp-photo-trash:hover,
.wa .wa-insp-photo-trash:focus-visible {
    background: #c0392b !important; transform: translateY(-1px);
}
.wa .wa-insp-photo-trash:hover svg,
.wa .wa-insp-photo-trash:focus-visible svg { stroke: #fff !important; }
.wa-insp-photo-trash:disabled { opacity: .5 !important; cursor: default !important; transform: none !important; }
.wa-insp-nophoto {
    height: 100px; border-radius: 10px; background: #e4eaf2;
    display: flex; align-items: center; justify-content: center;
    font-size: var(--wag-text-13); color: var(--wa-muted,#788596);
}
.wa-insp-attrib { font-size: var(--wag-text-11); color: var(--wa-muted,#788596); line-height: 1.5; }
.wa-insp-attrib a { color: inherit; }

/* Focus point */
.wa-insp-focus { background: var(--wag-surface); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: var(--wag-space-8); }
.wa-insp-label { font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase; letter-spacing: .7px; color: var(--wa-muted,#788596); }
.wa-insp-focus-row { display: flex; align-items: center; gap: var(--wag-space-8); }
.wa-insp-focus-axis { font-size: var(--wag-text-11); font-weight: 700; color: #8898aa; width: 10px; flex-shrink: 0; }
/* Astra styles range inputs as generic form controls. Fully define both track
   and thumb so the X/Y handles remain visible in the Control Center and modal. */
.wa input.wa-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: var(--wag-type-field-focus-bg, var(--wag-style-field-focus-bg)) !important;
    box-shadow: var(--wag-shadow-15) !important; cursor: pointer; accent-color: var(--wa-accent,#2b7cb0);
}
.wa input.wa-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;
}
.wa input.wa-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;
}
.wa input.wa-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;
}
.wa input.wa-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;
}
.wa input.wa-focus-slider:focus-visible { outline: none !important; }
.wa input.wa-focus-slider:focus-visible::-webkit-slider-thumb { box-shadow: var(--wag-shadow-4) !important; }
.wa input.wa-focus-slider:focus-visible::-moz-range-thumb { box-shadow: var(--wag-shadow-4) !important; }
.wa-focus-val { font-size: var(--wag-text-11); color: var(--wa-muted,#788596); width: 30px; text-align: right; flex-shrink: 0; }

/* Harvest pool — full width debajo del grid */
.wa-insp-pool-full {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #e4eaf2;
}
.wa-pool-grid {
    display: flex; flex-wrap: wrap; gap: 6px;
    max-height: 320px; overflow-y: auto;
    border-radius: var(--wag-radius-8); padding: 6px; background: var(--wag-surface); border: 1px solid #e8edf2;
    align-content: flex-start;
}
.wa-pool-loading { padding: 20px; text-align: center; font-size: var(--wag-text-13); color: var(--wa-muted,#788596); width: 100%; }
.wa-pool-photo {
    position: relative; border-radius: var(--wag-radius-8); overflow: hidden;
    width: 146px; height: 146px; flex-shrink: 0;
    cursor: pointer; border: 2px solid transparent;
    transition: border-color .12s;
}
.wa-pool-photo img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.wa .wa-pool-photo:hover { border-color: var(--wa-accent,#2b7cb0); }
.wa-pool-photo.is-selected { border-color: #1f8a52; }
.wa-pool-lic {
    position: absolute; bottom: 2px; left: 2px;
    font-size: 8px; font-weight: 700; padding: 1px 4px; border-radius: 3px;
    background: rgba(0,0,0,.55); color: #fff; pointer-events: none;
}
.wa-pool-confirm { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; padding-top: 4px; }

/* Inspector reutilizado sobre /places/{hotspot}/species/. El modal y su slot
   existen una sola vez; el pool se inyecta exclusivamente después del clic. */
body.wa-species-inspector-open { overflow: hidden; }
.wa-species-inspector-modal {
    position: fixed; inset: 0; z-index: 100000;
    display: flex; align-items: center; justify-content: center;
    padding: clamp(14px, 3vw, 42px); background: rgba(10,16,23,.72);
    backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
}
.wa-species-inspector-modal[hidden] { display: none !important; }
.wa-species-inspector-dialog {
    width: min(1180px, 100%); max-height: calc(100vh - clamp(28px, 6vw, 84px));
    overflow: auto; border-radius: var(--wag-radius-16); background: #f4f7fc;
    border: 1px solid rgba(255,255,255,.55); box-shadow: 0 24px 80px rgba(0,0,0,.38);
}
.wa-species-inspector-slot { min-height: 220px; }
.wa-species-inspector-close {
    position: fixed !important; top: 18px !important; right: 22px !important;
    z-index: 2 !important; width: auto !important; min-width: 0 !important; height: auto !important;
    margin: 0 !important; padding: 5px !important; border: 0 !important;
    border-radius: 0 !important; background: transparent !important; box-shadow: var(--wag-shadow-15) !important;
    color: #fff !important; font: 300 32px/1 Arial,sans-serif !important; cursor: pointer !important;
}
.wa .wa-species-inspector-close:hover,
.wa .wa-species-inspector-close:focus-visible { color: #e8b07f !important; background: transparent !important; outline: none !important; }
@media (max-width: 760px) {
    .wa-species-inspector-modal { padding: 46px 8px 8px; align-items: flex-start; }
    .wa-species-inspector-dialog { max-height: calc(100vh - 54px); border-radius: var(--wag-radius-12); }
    .wa-species-inspector-dialog .wa-insp-grid { grid-template-columns: 1fr; }
    .wa-pool-photo { width: calc(50% - 4px); height: auto; aspect-ratio: 1; }
}

/* Columna derecha */
.wa-insp-right { display: flex; flex-direction: column; gap: var(--wag-space-16); }
.wa-insp-section { background: var(--wag-surface); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: var(--wag-space-8); }

/* Descripción */
.wa-insp-desc-meta { display: flex; align-items: center; gap: 10px; }
.wa-insp-desc-words { font-size: var(--wag-text-12); color: var(--wa-muted,#788596); }
.wa-insp-desc-exc { font-size: var(--wag-text-13); color: #4a5568; line-height: 1.55; margin: 0; }
.wa-insp-desc-missing { font-size: var(--wag-text-13); color: #e0392b; margin: 0; }

/* OCTOPUS toggles */
.wa-insp-toggle-group { display: flex; gap: 6px; flex-wrap: wrap; }
.wa-waps-toggle {
    font-size: var(--wag-text-12); font-weight: 600; border: 1.5px solid var(--wag-type-waps-toggle-line, var(--wag-style-waps-toggle-line)); border-radius: var(--wag-radius-8);
    padding: 5px 12px; cursor: pointer; background: var(--wag-surface); color: var(--wa-muted,#788596);
    transition: all .12s; line-height: 1;
}
.wa .wa-waps-toggle:hover { border-color: var(--wa-accent,#2b7cb0); color: var(--wa-accent,#2b7cb0); }
.wa-waps-toggle.is-on { border-color: var(--wa-accent,#2b7cb0); background: var(--wa-accent,#2b7cb0); color: var(--wag-type-waps-toggle-ink, var(--wag-style-waps-toggle-ink)); }
.wa-waps-toggle:disabled { opacity: .5; cursor: not-allowed; }

/* Score */
.wa-insp-score-num { font-size: 36px; font-weight: 900; line-height: 1; }
.wa-insp-score-num span { font-size: var(--wag-text-16); font-weight: 400; color: var(--wa-muted,#788596); }
.wa-insp-criteria { display: flex; flex-direction: column; gap: 5px; margin-top: 4px; }
.wa-insp-criterion { display: flex; align-items: center; gap: var(--wag-space-8); font-size: 12.5px; color: #8898aa; }
.wa-insp-criterion.is-ok { color: #1f7a48; }
.wa-insp-criterion > span:first-child { width: 14px; flex-shrink: 0; font-weight: 700; }
.wa-insp-pts { margin-left: auto; font-weight: 700; font-size: var(--wag-text-11); flex-shrink: 0; }

/* Links */
.wa-insp-links { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; }

/* ── Bulk actions (acordeón) ─────────────────────────────────────────────────── */
.wa-waps-bulk { display: flex; flex-direction: column; gap: var(--wag-space-8); }
.wa-waps-acc { border: 1px solid #e2e8f0; border-radius: 10px; background: var(--wag-surface); overflow: hidden; }
.wa-waps-acc summary {
    padding: 13px 18px; font-size: var(--wag-text-14); font-weight: 700; cursor: pointer;
    list-style: none; user-select: none; color: var(--wa-ink,#1a2230);
    display: flex; justify-content: space-between; align-items: center;
}
.wa-waps-acc summary::-webkit-details-marker { display: none; }
.wa-waps-acc summary::after { content: '›'; font-size: var(--wag-text-20); color: #aab; transition: transform .18s; line-height: 1; }
.wa-waps-acc[open] summary::after { transform: rotate(90deg); }
.wa-waps-acc-body { padding: 16px 18px 20px; border-top: 1px solid #f0f3f7; }
.wa-waps-acc-desc { font-size: var(--wag-text-13); color: var(--wa-muted,#788596); line-height: 1.6; margin: 0 0 14px; }
.wa-waps-progress-wrap {
    height: 7px; border-radius: 6px; background: #e7ebef; overflow: hidden; margin-bottom: 8px;
}
.wa-photo-bar, .wa-desc-bar, .wa-gbif-bar {
    height: 100%; background: #1ea674; border-radius: 6px; transition: width .3s;
}
.wa-waps-bulk-btns { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; }
.wa-waps-acc--danger { border-color: #f5c6c1; }
.wa-waps-acc--danger summary { color: #c0392b; }
.wa-reset-confirm-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* Species health dashboard */
.wa-waps-health {
    display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px;
}
.wa-waps-hkpi {
    display: flex; flex-direction: column; align-items: center; gap: 2px;
    padding: 12px 18px; border-radius: var(--wag-type-waps-kpi-radius, var(--wag-style-waps-kpi-radius)); min-width: 90px; text-align: center;
    border: 1.5px solid transparent;
}
.wa-waps-hkpi strong { font-size: var(--wag-text-24); font-weight: 800; line-height: 1; }
.wa-waps-health.is-pending .wa-waps-hkpi strong { opacity: .45; }
.wa-waps-health-refresh {
    align-self: center; width: 30px; height: 30px; padding: 0; border-radius: 50%;
    border: 1px solid var(--wa-border,#e3e8ee); background: transparent; color: var(--wa-muted,#788596);
    font-size: 15px; line-height: 1; cursor: pointer;
}
.wa .wa-waps-health-refresh:hover, .wa .wa-waps-health-refresh:focus { background: transparent; color: #2b7cb0; border-color: #2b7cb0; }
.wa-waps-health.is-pending .wa-waps-health-refresh { animation: wa-spin 1s linear infinite; }
.wa-waps-hkpi span { font-size: var(--wag-text-11); color: var(--wa-muted,#788596); white-space: nowrap; }
.wa-waps-hkpi.is-warn { background: #fff6f5; border-color: #f5c6c1; }
.wa-waps-hkpi.is-warn strong { color: #c0392b; }
.wa-waps-hkpi.is-ok { background: #f0faf4; border-color: #b8e6cc; }
.wa-waps-hkpi.is-ok strong { color: #1f8a52; }
.wa-waps-hkpi.is-neutral { background: var(--wag-type-waps-kpi-bg, var(--wag-style-waps-kpi-bg)); border-color: var(--wag-type-waps-kpi-line, var(--wag-style-waps-kpi-line)); }
.wa-waps-hkpi.is-neutral strong { color: #2d3a4a; }

/* ── SEO arm ─────────────────────────────────────────────────────────────────── */
.wa-seo-wrap { }
.wa-seo-alerts { display: flex; flex-direction: column; gap: var(--wag-space-8); margin-bottom: 18px; }
.wa-seo-alert {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 10px 14px; border-radius: var(--wag-radius-8);
    background: #fff8ed; border: 1px solid #f5d87a; font-size: var(--wag-text-13);
}
.wa-seo-alert-icon { font-size: 15px; color: #ba7517; flex-shrink: 0; margin-top: 1px; }
.wa-seo-idx-kpis { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
.wa-seo-idx-chip {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 10px 20px; border-radius: 10px; border: 1.5px solid #dce2ea;
    background: var(--wag-surface); text-decoration: none; min-width: 100px; text-align: center;
    transition: border-color .15s, box-shadow .15s;
}
.wa .wa-seo-idx-chip:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); text-decoration: none; }
.wa-seo-idx-chip.is-active { background: #f5f7fa; }
.wa-seo-idx-chip strong { font-size: 22px; font-weight: 800; color: #2d3a4a; line-height: 1; }
.wa-seo-idx-chip span { font-size: var(--wag-text-12); color: var(--wa-muted,#788596); }
.wa-seo-og-row {
    display: flex; align-items: center; gap: var(--wag-space-12); flex-wrap: wrap;
    padding: 14px 18px; border-radius: 10px; background: #f8f9fb;
    border: 1px solid #e4eaf2; margin-bottom: 24px; font-size: var(--wag-text-13);
}
.wa-seo-og-label { font-weight: 600; color: #2d3a4a; }
.wa-seo-og-preview { width: 60px; height: 36px; object-fit: cover; border-radius: 5px; }
.wa-seo-og-empty { color: var(--wa-muted,#788596); font-style: italic; }
.wa-seo-og-input { flex: 1; min-width: 200px; padding: 7px 10px; border: 1px solid #dce2ea; border-radius: 7px; font-size: var(--wag-text-13); }
.wa-seo-queue-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; gap: var(--wag-space-12); }
.wa-seo-section-title { font-size: 15px; font-weight: 700; color: #2d3a4a; margin: 0; display: flex; align-items: center; gap: var(--wag-space-8); }
.wa-seo-count { display: inline-flex; align-items: center; justify-content: center;
    background: #e7f3ff; color: #1a6fb5; border-radius: var(--wag-radius-20);
    font-size: var(--wag-text-12); font-weight: 700; padding: 2px 10px; }
.wa-seo-queue-table .wa-waps-thead,
.wa-seo-queue-table .wa-waps-row { grid-template-columns: 2.5fr 90px 64px 200px; }
.wa-seo-title a { color: #2d3a4a; text-decoration: none; font-weight: 600; }
.wa .wa-seo-title a:hover { text-decoration: underline; }
.wa-seo-actions { display: flex; gap: 6px; align-items: center; }

/* ── WAHS — Hotspot Generator ────────────────────────────────────────────────── */
.wa-wahs-card { background: var(--wag-surface); border: 1px solid #e0e5eb; border-radius: 14px; padding: 22px 26px; }
.wa-wahs-card-title { margin: 0 0 6px; font-size: 15px; font-weight: 700; color: #1a2535; }
.wa-wahs-card-desc { margin: 0 0 20px; font-size: var(--wag-text-13); color: #556; line-height: 1.55; }
.wa-wahs-form { display: flex; flex-direction: column; gap: 14px; }
.wa-wahs-form-row { display: flex; align-items: center; gap: var(--wag-space-12); flex-wrap: wrap; }
.wa-wahs-form-row--check { gap: var(--wag-space-8); }
.wa-wahs-label { font-size: var(--wag-text-13); font-weight: 600; color: #2d3a4a; min-width: 150px; }
.wa-wahs-select,
.wa-wahs-input { font-size: var(--wag-text-13); border: 1px solid #c8d0da; border-radius: 7px; padding: 7px 11px; color: #1a2535; background: #f8f9fb; }
.wa .wa-wahs-select:focus,
.wa .wa-wahs-input:focus { outline: 2px solid #2ecc71; border-color: #2ecc71; background: var(--wag-surface); }
.wa-wahs-input--wide { width: 100%; max-width: 420px; }
.wa-wahs-check-label { font-size: var(--wag-text-13); color: #2d3a4a; cursor: pointer; display: flex; align-items: center; gap: 6px; }
.wa-wahs-form-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.wa-wahs-btn { font-size: var(--wag-text-13); font-weight: 600; border: none; border-radius: var(--wag-type-wahs-btn-radius, var(--wag-style-wahs-btn-radius)); padding: 8px 18px; cursor: pointer; background: #2ecc71; color: var(--wag-type-wahs-btn-ink, var(--wag-style-wahs-btn-ink)); transition: opacity .15s; }
.wa .wa-wahs-btn:hover:not(:disabled) { opacity: .85; }
.wa-wahs-btn:disabled { opacity: .45; cursor: default; }
.wa-wahs-btn--stop { background: #e74c3c; }
.wa-wahs-progress { margin-top: 10px; }
.wa-wahs-bar { height: 8px; border-radius: var(--wag-radius-4); background: #2ecc71; transition: width .4s; }
.wa-wahs-info { font-size: var(--wag-text-12); color: #556; margin: 6px 0 0; }
.wa-wahs-log { display: flex; flex-direction: column; gap: var(--wag-space-4); max-height: 300px; overflow-y: auto; }
.wa-wahs-log-row { display: grid; grid-template-columns: 55px 1fr 120px; gap: var(--wag-space-8); font-size: var(--wag-text-12); padding: 5px 10px; border-radius: 6px; align-items: center; }
.wa-wahs-log-row.is-ok { background: #f0faf5; }
.wa-wahs-log-row.is-err { background: #fff0f0; }
.wa-wahs-log-time { color: #888; font-variant-numeric: tabular-nums; }
.wa-wahs-log-name { color: #2d3a4a; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa-wahs-log-name a { color: #2d3a4a; text-decoration: none; }
.wa .wa-wahs-log-name a:hover { text-decoration: underline; }
.wa-wahs-log-status { color: #556; }
.wa-wahs-log-row.is-ok .wa-wahs-log-status { color: #1f8a52; }
.wa-wahs-log-row.is-err .wa-wahs-log-status { color: #c0392b; }
.wa-wahs-api-form { display: flex; flex-direction: column; gap: var(--wag-space-8); max-width: 520px; }
.wa-wahs-keys-msg { font-size: var(--wag-text-13); color: #1f8a52; font-weight: 600; margin-left: 10px; }
.wa-wahs-howto { font-size: var(--wag-text-13); color: #2d3a4a; line-height: 1.7; padding-left: 18px; margin: 0; }
.wa-wahs-howto li { margin-bottom: 8px; }

/* WAHS — paste-list importer */
.wa .wa-wahs-list-card { margin-bottom: 20px; border-color: #26313d; background: #182029; color: #ffffff; }
.wa .wa-wahs-list-heading { display: flex; justify-content: space-between; gap: var(--wag-space-20); align-items: flex-start; margin-bottom: 18px; }
.wa .wa-wahs-list-card .wa-wahs-card-title { color: #ffffff; font-size: var(--wag-text-18); margin-top: 3px; }
.wa .wa-wahs-list-card .wa-wahs-card-desc { color: #aeb9c5; margin-bottom: 0; max-width: 760px; }
.wa .wa-wahs-list-kicker { color: #59c98b; font-size: 10px; line-height: 1; letter-spacing: .17em; font-weight: 800; }
.wa .wa-wahs-list-safe { flex: 0 0 auto; border: 1px solid #3e4c5b; border-radius: var(--wag-radius-999); padding: 6px 10px; color: #b9c5d0; font-size: var(--wag-text-11); font-weight: 700; }
.wa .wa-wahs-list-context { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--wag-space-12); margin-bottom: 14px; }
.wa .wa-wahs-list-context label { display: grid; gap: 6px; color: #dce4eb; font-size: var(--wag-text-12); font-weight: 700; }
.wa .wa-wahs-list-context select,
.wa .wa-wahs-list-card textarea { width: 100%; border: 1px solid #3b4856; border-radius: 9px; background: #10161d; color: #ffffff; font-size: var(--wag-text-13); }
.wa .wa-wahs-list-context select { min-height: 42px; padding: 8px 11px; }
.wa .wa-wahs-list-card textarea { min-height: 150px; padding: 12px 14px; resize: vertical; line-height: 1.55; }
.wa .wa-wahs-list-context select:focus,
.wa .wa-wahs-list-card textarea:focus { outline: 2px solid #49b97c; outline-offset: 1px; border-color: #49b97c; }
.wa .wa-wahs-list-text-label { display: flex; justify-content: space-between; gap: var(--wag-space-12); margin-bottom: 6px; color: #dce4eb; font-size: var(--wag-text-12); font-weight: 700; }
.wa .wa-wahs-list-text-label small { color: #82909f; font-size: var(--wag-text-11); font-weight: 500; }
.wa .wa-wahs-list-actions { display: flex; align-items: center; gap: 10px; margin-top: 12px; min-height: 36px; }
.wa .wa-wahs-list-actions [data-list-message] { color: #9eabb7; font-size: var(--wag-text-12); }
.wa .wa-wahs-list-actions [data-list-message].is-error { color: #ff9f96; }
.wa .wa-wahs-list-card .wa-wahs-btn { background: #2d9962; color: #ffffff; border: 1px solid #2d9962; }
.wa .wa-wahs-list-card .wa-wahs-btn:hover:not(:disabled),
.wa .wa-wahs-list-card .wa-wahs-btn:focus:not(:disabled) { background: #35aa6e; border-color: #35aa6e; color: var(--wag-type-wahs-btn-hover-ink, var(--wag-style-wahs-btn-hover-ink)); opacity: 1; }
.wa .wa-wahs-list-card .wa-wahs-btn--stop { background: transparent; border-color: #a75353; color: #ffb1aa; }
.wa .wa-wahs-list-card .wa-wahs-btn--stop:hover:not(:disabled),
.wa .wa-wahs-list-card .wa-wahs-btn--stop:focus:not(:disabled) { background: #3b2022; border-color: #c96a6a; color: #ffffff; }
.wa .wa-wahs-list-preview { margin-top: 18px; border-top: 1px solid #33404d; padding-top: 16px; }
.wa .wa-wahs-list-preview[hidden],
.wa .wa-wahs-list-status[hidden],
.wa .wa-wahs-list-actions [hidden],
.wa .wa-cc-page .wa-wahs-list-card[data-wahs-list-import] [hidden] { display: none !important; }
.wa .wa-wahs-list-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 10px; color: #dce4eb; font-size: var(--wag-text-12); }
.wa .wa-wahs-list-summary strong { margin-right: 5px; color: #ffffff; }
.wa .wa-wahs-list-summary span { border-radius: var(--wag-radius-999); padding: 4px 8px; font-weight: 700; }
.wa .wa-wahs-list-summary .is-new { background: #173b2a; color: #72d99e; }
.wa .wa-wahs-list-summary .is-possible { background: #3c3019; color: #e8c36e; }
.wa .wa-wahs-list-summary .is-duplicate { background: #303944; color: #b9c4ce; }
.wa .wa-wahs-list-results { max-height: 430px; overflow: auto; border: 1px solid #35424f; border-radius: 10px; background: #111820; }
.wa .wa-wahs-list-result { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto minmax(0, 190px); align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #293540; cursor: pointer; }
.wa .wa-wahs-list-result:last-child { border-bottom: 0; }
.wa .wa-wahs-list-result:hover { background: #18222c; }
.wa .wa-wahs-list-result.is-duplicate { opacity: .65; cursor: default; }
.wa .wa-wahs-list-result-copy { display: grid; min-width: 0; gap: 2px; }
.wa .wa-wahs-list-result-copy strong { overflow: hidden; color: #eef3f7; font-size: var(--wag-text-13); text-overflow: ellipsis; white-space: nowrap; }
.wa .wa-wahs-list-result-copy small { color: #8d9aa7; font-size: var(--wag-text-11); }
.wa .wa-wahs-list-result-badge { border: 1px solid #44515e; border-radius: var(--wag-radius-999); padding: 3px 7px; color: #b8c2cc; font-size: 9px; line-height: 1; letter-spacing: .08em; font-weight: 800; }
.wa .wa-wahs-list-result.is-new .wa-wahs-list-result-badge { border-color: #2c8155; color: #6ed499; }
.wa .wa-wahs-list-result.is-possible .wa-wahs-list-result-badge { border-color: #8b6c2b; color: #e5be68; }
.wa .wa-wahs-list-match { overflow: hidden; color: #8eb9db; font-size: var(--wag-text-11); text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.wa .wa-wahs-list-match:hover,
.wa .wa-wahs-list-match:focus { color: #b8d8ef; text-decoration: none; }
.wa .wa-wahs-list-preview-actions { display: flex; align-items: center; gap: var(--wag-space-12); margin-top: 12px; }
.wa .wa-wahs-list-preview-actions p { margin: 0; color: #8493a1; font-size: var(--wag-text-11); line-height: 1.45; }
.wa .wa-wahs-list-status { margin-top: 16px; border: 1px solid #35424f; border-radius: 10px; padding: 12px; background: #111820; }
.wa .wa-wahs-list-status-top { display: flex; justify-content: space-between; color: #e8eef3; font-size: var(--wag-text-12); }
.wa .wa-wahs-list-progress { height: 5px; overflow: hidden; border-radius: var(--wag-radius-999); margin: 9px 0; background: #2c3742; }
.wa .wa-wahs-list-progress span { display: block; height: 100%; border-radius: inherit; background: #4fc081; transition: width .3s ease; }
.wa .wa-wahs-list-status p { margin: 0; color: #8e9ba8; font-size: var(--wag-text-11); }

@media (max-width: 700px) {
    .wa .wa-wahs-list-context { grid-template-columns: 1fr; }
    .wa .wa-wahs-list-heading { display: block; }
    .wa .wa-wahs-list-safe { display: inline-flex; margin-top: 10px; }
    .wa .wa-wahs-list-text-label { display: grid; }
    .wa .wa-wahs-list-result { grid-template-columns: 20px minmax(0, 1fr) auto; }
    .wa .wa-wahs-list-match { grid-column: 2 / -1; text-align: left; }
    .wa .wa-wahs-list-preview-actions { align-items: flex-start; flex-direction: column; }
}

/* ── WDPA Hotspot Pool (photo inspector) ─────────────────────────────────────── */
.wa-hs-pool { border-top: 1px solid #e0e5eb; padding-top: 18px; }
.wa-hs-pool-head { display: flex; align-items: center; gap: var(--wag-space-12); margin-bottom: 12px; font-size: var(--wag-text-13); font-weight: 600; color: #2d3a4a; }
.wa-hs-pool-pag { display: flex; gap: var(--wag-space-4); }
.wa-hs-pag-link { padding: 2px 7px; border-radius: var(--wag-radius-4); background: #f0f4f8; color: #2d3a4a; text-decoration: none; font-size: var(--wag-text-12); }
.wa-hs-pag-link.is-active { background: #2ecc71; color: #fff; }
.wa-hs-pool-table { display: flex; flex-direction: column; gap: 2px; }
/* Marc, 2026-08-26: la columna Focus paso de un campo de texto de 120px a un
   bloque con vista previa + tres deslizadores. Con 120px se desbordaba encima
   de los botones de Acciones. align-items pasa a start para que las filas altas
   no descoloquen el resto de celdas. */
.wa-hs-pool-thead,
.wa-hs-pool-row { display: grid; grid-template-columns: 2.2fr 1fr 90px 268px 100px; gap: 0 10px; align-items: start; padding: 8px 10px; font-size: var(--wag-text-12); border-radius: 6px; }
.wa-hs-pool-thead { align-items: center; }
.wa-hs-pool-row > .wa-hs-cell-name,
.wa-hs-pool-row > .wa-hs-cell-cat,
.wa-hs-pool-row > .wa-hs-cell-photo,
.wa-hs-pool-row > .wa-hs-cell-actions { align-self: center; }
.wa-hs-pool-thead { font-weight: 700; color: #556; background: #f0f4f8; margin-bottom: 4px; }
.wa-hs-pool-row { background: var(--wag-surface); border: 1px solid #eef0f3; }
.wa .wa-hs-pool-row:hover { background: #f8fafb; }
.wa-hs-cell-name { display: flex; align-items: center; gap: 10px; overflow: hidden; }
.wa-hs-cell-name a { color: #2d3a4a; text-decoration: none; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa .wa-hs-cell-name a:hover { text-decoration: underline; }
.wa-hs-thumb { width: 100px; height: 70px; object-fit: cover; border-radius: 5px; flex-shrink: 0; }
.wa-hs-thumb--empty { display: block; width: 100px; height: 70px; background: #e8ecf0; border-radius: 5px; flex-shrink: 0; }
.wa-hs-draft { font-size: 10px; background: #ffeaa7; color: #b8860b; padding: 1px 5px; border-radius: 3px; white-space: nowrap; }
.wa-hs-chip { font-size: var(--wag-text-11); padding: 2px 7px; border-radius: 10px; white-space: nowrap; font-weight: 600; }
.wa-hs-chip.is-ok   { background: #d4f1e4; color: #1f8a52; }
.wa-hs-chip.is-warn { background: #fde8e4; color: #c0392b; }
.wa-hs-chip.is-none { background: #f0f4f8; color: #888; }
.wa-hs-cell-focus:not(.wa-hs-frame) { display: flex; align-items: center; gap: var(--wag-space-4); }
.wa-hs-focus-input { font-size: var(--wag-text-11); border: 1px solid #d0d7e0; border-radius: 5px; padding: 3px 6px; width: 76px; color: #2d3a4a; background: #f8f9fb; }
.wa-hs-sm-btn { font-size: var(--wag-text-11); font-weight: 600; border: 1px solid #d0d7e0; border-radius: 5px; padding: 3px 8px; background: #f8f9fb; cursor: pointer; color: #2d3a4a; transition: background .12s; white-space: nowrap; }
.wa .wa-hs-sm-btn:hover:not(:disabled) { background: #e4ebf2; }
.wa-hs-sm-btn:disabled { opacity: .45; cursor: default; }
.wa-hs-cell-actions { display: flex; gap: 5px; }
/* Inspect panel */
.wa-hs-inspect-panel { grid-column: 1/-1; background: #f8f9fb; border: 1px solid #dce2eb; border-radius: var(--wag-radius-8); padding: 14px 16px; margin: 4px 0 8px; }
.wa-hs-inspect-inner { display: grid; grid-template-columns: 280px 1fr; gap: var(--wag-space-16); }
.wa-hs-inspect-preview { object-fit: cover; border-radius: 7px; object-position: 50% 50%; }
.wa-hs-inspect-empty { width: 280px; height: 190px; background: #e0e5eb; border-radius: 7px; display: flex; align-items: center; justify-content: center; color: #888; font-size: var(--wag-text-12); }
.wa-hs-inspect-attr { font-size: var(--wag-text-11); color: #667; margin: 6px 0 0; }
.wa-hs-pool-label { font-size: var(--wag-text-12); font-weight: 700; color: #2d3a4a; margin: 0 0 10px; }
.wa-hs-cands-loading { font-size: var(--wag-text-12); color: #888; font-style: italic; }
.wa-hs-cands-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--wag-space-8); }
.wa-hs-cand-thumb { position: relative; border-radius: 7px; overflow: hidden; background: #e0e5eb; }
.wa-hs-cand-thumb img { width: 100%; height: 100px; object-fit: cover; display: block; }
.wa-hs-cand-label { position: absolute; bottom: 24px; left: 0; right: 0; background: rgba(0,0,0,.55); color: #fff; font-size: 10px; padding: 2px 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-hs-cand-thumb .wa-wahs-btn { position: absolute; bottom: 0; left: 0; right: 0; border-radius: 0; font-size: var(--wag-text-11); padding: 4px; text-align: center; }

/* ── WAHS Pipeline UI (.wa-pip-*) ────────────────────────────────────────────── */

/* Card wrapper */
.wa-pip-card { background: var(--wag-surface); border: 1px solid #e0e5eb; border-radius: 14px; padding: 22px 26px; margin-bottom: 24px; }

/* KPI strip */
.wa-pip-kpis { display: flex; gap: var(--wag-space-12); flex-wrap: wrap; margin-bottom: 22px; }
.wa-pip-kpi { flex: 1; min-width: 100px; background: #f5f7fa; border: 1px solid #e8edf2; border-radius: 10px; padding: 12px 14px; text-align: center; }
.wa-pip-kpi-val { font-size: var(--wag-text-24); font-weight: 800; color: #1a2332; line-height: 1; }
.wa-pip-kpi-lbl { font-size: var(--wag-text-11); color: #7a8a9a; margin-top: 5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.wa-pip-kpi--green .wa-pip-kpi-val { color: #27ae60; }
.wa-pip-kpi--red   .wa-pip-kpi-val { color: #e74c3c; }
.wa-pip-kpi--amber .wa-pip-kpi-val { color: #d68910; }
.wa-pip-kpi--blue  .wa-pip-kpi-val { color: #2e6da4; }

/* Tab navigation */
.wa-pip-tabs { display: flex; gap: var(--wag-space-4); border-bottom: 2px solid #e8edf2; margin-bottom: 20px; flex-wrap: wrap; }
.wa-pip-tab { background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px; padding: 8px 16px; font-size: var(--wag-text-13); font-weight: 600; color: #7a8a9a; cursor: pointer; border-radius: 6px 6px 0 0; transition: color .15s, border-color .15s; white-space: nowrap; }
.wa .wa-pip-tab:hover { color: #1a2332; background: #f5f7fa; }
.wa-pip-tab.is-active { color: #1a2332; border-bottom-color: #2ecc71; }
.wa-pip-badge { display: inline-block; background: #e8edf2; color: #4a5568; border-radius: var(--wag-radius-20); font-size: var(--wag-text-11); font-weight: 700; padding: 0 7px; margin-left: 5px; }
.wa-pip-tab.is-active .wa-pip-badge { background: #d4f5e2; color: #1a7a40; }

/* Tab panels */
.wa-pip-panel { display: block; }
.wa-pip-panel[hidden] { display: none !important; }

/* Discovery tab */
.wa-pip-form { display: flex; flex-direction: column; gap: 14px; }
.wa-pip-form-row { display: flex; align-items: center; gap: var(--wag-space-12); flex-wrap: wrap; }
.wa-pip-form-row--check { gap: var(--wag-space-8); }
.wa-pip-label { font-size: var(--wag-text-13); font-weight: 600; color: #2d3a4a; min-width: 120px; }
.wa-pip-input { font-size: var(--wag-text-13); border: 1px solid #c8d0da; border-radius: 7px; padding: 7px 11px; color: #1a2535; background: #f8f9fb; }
.wa .wa-pip-input:focus { outline: 2px solid #2ecc71; border-color: #2ecc71; background: var(--wag-surface); }
.wa-pip-input--iso2 { width: 70px; text-transform: uppercase; }
.wa-pip-input--num  { width: 80px; }
.wa-pip-check-label { font-size: var(--wag-text-13); color: #2d3a4a; cursor: pointer; display: flex; align-items: center; gap: 6px; }
.wa-pip-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 4px; }
.wa-pip-btn { font-size: var(--wag-text-13); font-weight: 600; border: none; border-radius: 7px; padding: 8px 18px; cursor: pointer; background: #2ecc71; color: #fff; transition: opacity .15s; display: inline-flex; align-items: center; gap: 6px; }
.wa .wa-pip-btn:hover:not(:disabled) { opacity: .85; }
.wa-pip-btn:disabled { opacity: .45; cursor: default; }
.wa-pip-btn--primary { background: #1a2332; }
.wa-pip-btn--danger  { background: #e74c3c; }
.wa-pip-btn--muted   { background: #8a9ab0; }

/* Spinner inside buttons */
.wa-pip-spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: wa-spin .6s linear infinite; }
@keyframes wa-spin { to { transform: rotate(360deg); } }

/* Results table (discovery) */
.wa-pip-table-wrap { margin-top: 18px; }
.wa-pip-table-wrap table { width: 100%; border-collapse: collapse; font-size: var(--wag-text-12); }
.wa-pip-table-wrap th { text-align: left; padding: 7px 10px; color: #6b7a8d; font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid #eef0f3; white-space: nowrap; }
.wa-pip-table-wrap td { padding: 8px 10px; border-bottom: 1px solid #f3f5f8; vertical-align: middle; }
.wa-pip-table-wrap tr:last-child td { border-bottom: none; }
.wa .wa-pip-table-wrap tr:hover td { background: #fafbfd; }
.wa-pip-res-name { font-weight: 600; color: #1a2332; }
.wa-pip-res-status { display: inline-block; padding: 2px 8px; border-radius: var(--wag-radius-20); font-size: var(--wag-text-11); font-weight: 700; }
.wa-pip-res-status--classified { background: #d4f5e2; color: #1a7a40; }
.wa-pip-res-status--pending    { background: #fff3cd; color: #856404; }
.wa-pip-res-status--rejected   { background: #fde8e8; color: #c0392b; }
.wa-pip-res-status--stored     { background: #e8f0fe; color: #2e6da4; }
.wa-pip-res-status--new        { background: #eef0f3; color: #4a5568; }
.wa-pip-status-msg { margin-top: 14px; padding: 10px 14px; border-radius: var(--wag-radius-8); font-size: var(--wag-text-13); background: #f0faf4; border: 1px solid #c3e6cb; color: #1a5c33; }
.wa-pip-status-msg--error { background: #fdf0f0; border-color: #f5c6cb; color: #721c24; }

/* Candidates & Overrides tabs — filter bar */
.wa-pip-filter-bar { display: flex; gap: var(--wag-space-8); align-items: flex-end; flex-wrap: wrap; margin-bottom: 16px; }
.wa-pip-filter-bar label { font-size: var(--wag-text-12); font-weight: 600; color: #4a5568; display: flex; flex-direction: column; gap: var(--wag-space-4); }
.wa-pip-filter-bar select,
.wa-pip-filter-bar input { font-size: var(--wag-text-12); border: 1px solid #c8d0da; border-radius: 6px; padding: 5px 9px; color: #1a2535; background: #f8f9fb; height: 32px; }
.wa-pip-filter-btn { height: 32px; padding: 0 14px; font-size: var(--wag-text-12); font-weight: 600; background: #1a2332; color: #fff; border: none; border-radius: 6px; cursor: pointer; }
.wa .wa-pip-filter-btn:hover { background: #2d3a4a; }

/* Candidates table */
.wa-pip-cand-table { width: 100%; border-collapse: collapse; font-size: var(--wag-text-12); }
.wa-pip-cand-table th { text-align: left; padding: 7px 10px; color: #6b7a8d; font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid #eef0f3; white-space: nowrap; }
.wa-pip-cand-table td { padding: 9px 10px; border-bottom: 1px solid #f3f5f8; vertical-align: middle; }
.wa-pip-cand-table tr:last-child td { border-bottom: none; }
.wa .wa-pip-cand-table tr:hover td { background: #fafbfd; }
.wa-pip-cand-name { font-weight: 600; color: #1a2332; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa-pip-cand-meta { font-size: var(--wag-text-11); color: #7a8a9a; }
.wa-pip-conf-bar { display: inline-flex; align-items: center; gap: 5px; }
.wa-pip-conf-track { width: 60px; height: 5px; background: #e8edf2; border-radius: 3px; overflow: hidden; }
.wa-pip-conf-fill { height: 100%; background: #2ecc71; border-radius: 3px; }
.wa-pip-conf-fill--low  { background: #e74c3c; }
.wa-pip-conf-fill--mid  { background: #d68910; }
.wa-pip-conf-num { font-size: var(--wag-text-11); font-weight: 700; color: #4a5568; min-width: 28px; }
.wa-pip-cat-chip { display: inline-block; padding: 2px 8px; border-radius: var(--wag-radius-20); font-size: var(--wag-text-11); font-weight: 700; background: #e8f0fe; color: #2e6da4; }
.wa-pip-cat-chip--override { background: #fff3cd; color: #856404; }
.wa-pip-ov-btn { font-size: var(--wag-text-11); font-weight: 600; border: 1px solid #c8d0da; border-radius: 5px; background: var(--wag-surface); color: #4a5568; padding: 3px 9px; cursor: pointer; }
.wa .wa-pip-ov-btn:hover { background: #f0f3f7; }
.wa-pip-rev-btn { font-size: var(--wag-text-11); font-weight: 600; border: 1px solid #f5c6cb; border-radius: 5px; background: #fdf0f0; color: #c0392b; padding: 3px 9px; cursor: pointer; }
.wa .wa-pip-rev-btn:hover { background: #f8d7da; }
.wa-pip-rej-reason { font-size: var(--wag-text-11); color: #c0392b; font-style: italic; }
.wa-pip-source-tag { display: inline-block; padding: 2px 7px; border-radius: var(--wag-radius-4); font-size: 10px; font-weight: 700; background: #eef0f3; color: #4a5568; text-transform: uppercase; }

/* Pagination */
.wa-pip-pagination { display: flex; gap: 6px; align-items: center; margin-top: 14px; flex-wrap: wrap; }
.wa-pip-page-link { padding: 4px 10px; border-radius: 6px; font-size: var(--wag-text-12); font-weight: 600; color: #2e6da4; text-decoration: none; background: #eef3fb; border: 1px solid #c6d9f0; }
.wa .wa-pip-page-link:hover { background: #dce9f8; }
.wa-pip-page-link.is-current { background: #2e6da4; color: #fff; border-color: #2e6da4; }
.wa-pip-page-info { font-size: var(--wag-text-12); color: #7a8a9a; margin-left: auto; }

/* Classifier tab */
.wa-pip-clf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; }
.wa-pip-clf-box { background: #f5f7fa; border: 1px solid #e8edf2; border-radius: 10px; padding: 16px 18px; }
.wa-pip-clf-box-title { font-size: var(--wag-text-11); font-weight: 700; color: #7a8a9a; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.wa-pip-clf-version { font-size: 22px; font-weight: 800; color: #1a2332; }
.wa-pip-clf-meta { font-size: var(--wag-text-12); color: #7a8a9a; margin-top: 4px; }
.wa-pip-clf-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

/* Override modal */
#pip-ov-modal { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 100100; display: none; align-items: center; justify-content: center; }
#pip-ov-modal.is-open { display: flex; }
.wa-pip-modal-box { background: var(--wag-surface); border-radius: 14px; padding: 28px 32px; min-width: 380px; max-width: 500px; box-shadow: 0 12px 40px rgba(0,0,0,.18); }
.wa-pip-modal-title { font-size: 15px; font-weight: 700; color: #1a2332; margin: 0 0 18px; }
.wa-pip-modal-label { font-size: var(--wag-text-13); font-weight: 600; color: #4a5568; display: block; margin-bottom: 5px; }
.wa-pip-modal-input,
.wa-pip-modal-select { width: 100%; font-size: var(--wag-text-13); border: 1px solid #c8d0da; border-radius: 7px; padding: 7px 10px; color: #1a2535; background: #f8f9fb; margin-bottom: 14px; }
.wa-pip-modal-input:focus,
.wa .wa-pip-modal-select:focus { outline: 2px solid #2ecc71; border-color: #2ecc71; }
.wa-pip-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 6px; }
.wa-pip-modal-cancel { background: #e8edf2; color: #4a5568; border: none; border-radius: 7px; padding: 8px 18px; font-size: var(--wag-text-13); font-weight: 600; cursor: pointer; }
.wa .wa-pip-modal-cancel:hover { background: #d0d7e0; }
.wa-pip-modal-apply { background: #1a2332; color: #fff; border: none; border-radius: 7px; padding: 8px 18px; font-size: var(--wag-text-13); font-weight: 600; cursor: pointer; }
.wa .wa-pip-modal-apply:hover { background: #2d3a4a; }

/* Empty states */
.wa-pip-empty { padding: 32px; text-align: center; color: #8a9ab0; font-size: var(--wag-text-13); }
.wa-pip-empty-icon { font-size: 28px; margin-bottom: 8px; }

/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (max-width: 960px) {
    .wa-insp-grid { grid-template-columns: 1fr; }
    .wa-waps-thead,
    .wa-waps-row { grid-template-columns: 1fr 80px 60px 50px 160px; gap: 0 8px; }
    .wa-seo-queue-table .wa-waps-thead,
    .wa-seo-queue-table .wa-waps-row { grid-template-columns: 1fr 64px 160px; }
}
@media (max-width: 680px) {
    .wa-waps-thead { display: none; }
    .wa-waps-row { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; padding: 12px; gap: var(--wag-space-8); }
    .wa-waps-cell-species,
.wa-waps-actions{ grid-column: 1/-1; }
    .wa-waps-score-cell { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   WAGS — Guide Generator (OCTOPUS Fase 4) · v2.85.0
   ═══════════════════════════════════════════════════════════════════ */

/* ── Control Center panel ──────────────────────────────────────────── */
.wa-wags-card { background: var(--wag-surface); border: 1px solid #e8edf2; border-radius: 14px; overflow: hidden; }
.wa-wags-card-header { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid #f0f3f7; }
.wa-wags-card-icon { font-size: var(--wag-text-18); line-height: 1; }
.wa-wags-card-title { margin: 0; font-size: 15px; font-weight: 700; color: #1a2332; flex: 1; }
.wa-wags-card-sub { font-size: var(--wag-text-12); color: #7a8a9a; }
.wa-wags-card-link { font-size: var(--wag-text-12); color: #2e6da4; text-decoration: none; }
.wa .wa-wags-card-link:hover { text-decoration: underline; }

/* ── Form ─────────────────────────────────────────────────────────── */
.wa-wags-form { padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.wa-wags-form-row { display: flex; align-items: center; gap: var(--wag-space-12); }
.wa-wags-label { font-size: var(--wag-text-13); font-weight: 600; color: #2d3a4a; min-width: 90px; }
.wa-wags-select { flex: 1; max-width: 440px; height: 36px; border: 1px solid #d0d7e0; border-radius: var(--wag-radius-8); padding: 0 10px; font-size: var(--wag-text-13); color: #2d3a4a; background: var(--wag-surface); }
.wa-wags-input { height: 36px; border: 1px solid #d0d7e0; border-radius: var(--wag-radius-8); padding: 0 10px; font-size: var(--wag-text-13); color: #2d3a4a; }
.wa-wags-actions { display: flex; align-items: center; gap: 10px; padding-top: 4px; }
.wa-wags-status { font-size: var(--wag-text-13); color: #4a5568; }
.wa-wags-empty { padding: 20px; font-size: var(--wag-text-13); color: #8a9ab0; }

/* ── Buttons ─────────────────────────────────────────────────────── */
.wa-wags-btn { display: inline-flex; align-items: center; justify-content: center; height: 34px; padding: 0 16px; border-radius: var(--wag-radius-8); border: none; background: #1a2332; color: #fff; font-size: var(--wag-text-13); font-weight: 600; cursor: pointer; transition: background .15s; }
.wa .wa-wags-btn:hover:not(:disabled) { background: #2d3a4a; }
.wa-wags-btn:disabled { opacity: .5; cursor: default; }
.wa-wags-btn-sm { height: 28px; padding: 0 10px; font-size: var(--wag-text-12); border-radius: 6px; }
.wa-wags-btn-danger { background: #e74c3c; }
.wa .wa-wags-btn-danger:hover { background: #c0392b; }
/* Control Center → Settings → Acerca de: pestañas EN/ES manuales */
.wa-about-tab { background: #e2e8ee; color: #445; }
.wa .wa-about-tab:hover:not(:disabled) { background: #d4dce4; }
.wa-about-tab.is-active { background: #16a34a; color: #fff; }
.wa .wa-about-tab.is-active:hover { background: #16a34a; }

/* ── Quick generate grid ──────────────────────────────────────────── */
.wa-wags-quick-grid { padding: 12px 20px; display: flex; flex-direction: column; gap: 10px; }
.wa-wags-quick-row { display: grid; grid-template-columns: 1fr 140px 160px 80px; align-items: center; gap: 10px; padding: 10px 12px; background: #f8f9fb; border-radius: 10px; }
.wa-wags-quick-country { font-size: var(--wag-text-14); font-weight: 700; color: #1a2332; }
.wa-wags-quick-meta { font-size: var(--wag-text-12); color: #7a8a9a; }
.wa-wags-quick-type { font-size: var(--wag-text-12); color: #4a6cf7; font-weight: 600; }

/* ── Gap detector table ───────────────────────────────────────────── */
.wa-wags-gap-table { width: 100%; border-collapse: collapse; font-size: var(--wag-text-13); }
.wa-wags-gap-table th { text-align: left; padding: 10px 12px; color: #6b7a8d; font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid #eef0f3; }
.wa-wags-gap-table td { padding: 10px 12px; border-bottom: 1px solid #f3f5f8; vertical-align: middle; }
.wa-wags-gap-table tr:last-child td { border-bottom: none; }
.wa-wags-gap-name { font-weight: 600; color: #1a2332; }
.wa-wags-gap-missing { color: #e67e22; font-size: var(--wag-text-12); }
.wa-wags-gap-link { font-size: var(--wag-text-12); color: #2e6da4; text-decoration: none; margin-right: 4px; }
.wa .wa-wags-gap-link:hover { text-decoration: underline; }

/* ── Score chip ───────────────────────────────────────────────────── */
.wa-wags-score-chip { display: inline-block; padding: 2px 8px; border-radius: var(--wag-radius-20); font-size: var(--wag-text-11); font-weight: 700; background: #eef3fb; color: #2d6aad; }
.wa-wags-score-chip[data-score="0"] { background: var(--wag-type-wags-score-bg, var(--wag-style-wags-score-bg)); color: var(--wag-type-wags-score-ink, var(--wag-style-wags-score-ink)); }

/* ── Type chip ────────────────────────────────────────────────────── */
.wa-wags-type-chip { display: inline-block; padding: 2px 8px; border-radius: var(--wag-radius-20); font-size: var(--wag-text-11); font-weight: 600; background: #f0f4ff; color: #4a6cf7; }

/* ── Accordion ────────────────────────────────────────────────────── */
.wa-wags-accordion { border: 1px solid #e8edf2; border-radius: 14px; overflow: hidden; }
.wa-wags-accordion-head { display: flex; align-items: center; gap: 10px; padding: 14px 20px; cursor: pointer; list-style: none; font-size: var(--wag-text-14); font-weight: 700; color: #1a2332; user-select: none; }
.wa-wags-accordion-head::-webkit-details-marker { display: none; }
.wa-wags-accordion-head::after { content: '›'; margin-left: auto; font-size: var(--wag-text-18); color: #8a9ab0; transition: transform .2s; }
details[open] .wa-wags-accordion-head::after { transform: rotate(90deg); }
.wa-wags-accordion-sub { font-size: var(--wag-text-12); color: #7a8a9a; font-weight: 400; }
.wa-wags-accordion-body { padding: 16px 20px; border-top: 1px solid #f0f3f7; }

/* ── API key form ─────────────────────────────────────────────────── */
.wa-wags-api-form { display: flex; align-items: center; gap: var(--wag-space-8); flex-wrap: wrap; }


/* ═══════════════════════════════════════════════════════════════════
   WAGS — single-guide.php (public frontend) · v2.85.3
   ═══════════════════════════════════════════════════════════════════ */

.guide-reading-bar { position: fixed; top: 0; left: 0; height: 2px; background: #b8924a; width: 0%; z-index: 9999; transition: width .08s linear; pointer-events: none; }

/* Hero */
.guide-hero-banner { position: relative; }
.guide-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.55) 100%); }
.guide-hero-content { position: absolute; bottom: 36px; left: 48px; right: 48px; color: #fff; }
.guide-title { font-size: clamp(26px, 4vw, 42px); font-weight: 800; margin: 0 0 10px; line-height: 1.15; color: #fff; }
.guide-meta { font-size: var(--wag-text-14); color: rgba(255,255,255,.85); }
.guide-meta .separator { margin: 0 8px; opacity: .6; }

/* Type badge */
.guide-type-badge { display: inline-block; padding: 4px 12px; border-radius: var(--wag-radius-20); font-size: var(--wag-text-12); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.35); margin-left: 12px; vertical-align: middle; }
.guide-type-badge--hide_guide { background: rgba(52,152,219,.3); border-color: rgba(52,152,219,.6); }
.guide-type-badge--species_guide { background: rgba(39,174,96,.3); border-color: rgba(39,174,96,.6); }
.guide-type-badge--seasonal_guide { background: rgba(243,156,18,.3); border-color: rgba(243,156,18,.6); }

/* Content */
.guide-section-inner { max-width: 820px; margin: 0 auto; padding: 32px 0; }
.guide-content h2 { font-size: 22px; font-weight: 700; color: #1a2332; margin: 32px 0 12px; padding-top: 8px; }
.guide-content h2:first-child { margin-top: 0; }
.guide-content p { font-size: var(--wag-text-16); line-height: 1.75; color: #2d3a4a; margin: 0 0 16px; }
.guide-content .guide-intro { font-size: 17px; line-height: 1.8; color: #2d3a4a; font-style: italic; }

/* Listas */
.guide-species-list, .guide-hotspot-list, .guide-hide-list, .guide-operator-list { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.guide-species-list li, .guide-hotspot-list li, .guide-hide-list li, .guide-operator-list li { padding: 10px 14px; background: #f8f9fb; border-radius: 10px; font-size: 15px; }
.guide-species-list a, .guide-hotspot-list a, .guide-hide-list a, .guide-operator-list a { color: #1a2332; font-weight: 600; text-decoration: none; }
.wa .guide-species-list a:hover,
.wa .guide-hotspot-list a:hover { color: #4a6cf7; }
.guide-species-list em { color: #6b7a8d; font-size: var(--wag-text-13); }

/* Sidebar */
.guide-sidebar-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.guide-sidebar-list li { padding: 8px 12px; background: #f8f9fb; border-radius: var(--wag-radius-8); font-size: var(--wag-text-14); }
.guide-sidebar-list a { color: #1a2332; font-weight: 500; text-decoration: none; }
.wa .guide-sidebar-list a:hover { color: #4a6cf7; }

/* Species link */
.guide-species-link a { display: flex; align-items: center; gap: var(--wag-space-12); padding: 12px; background: #f8f9fb; border-radius: var(--wag-radius-12); text-decoration: none; }
.guide-species-link img { width: 60px; height: 60px; object-fit: cover; border-radius: var(--wag-radius-8); }
.guide-species-link span { font-size: var(--wag-text-16); font-weight: 700; color: #1a2332; }
.wa .guide-species-link a:hover { background: #f0f4ff; }

@media (max-width: 768px) {
    .guide-hero-content { left: 20px; right: 20px; bottom: 20px; }
    .guide-section-inner { padding: 20px 0; }
    .wa-wags-quick-row { grid-template-columns: 1fr 80px; grid-template-rows: auto auto; }
    .wa-wags-quick-meta, .wa-wags-quick-type { grid-column: 1 / -1; }
}

/* ============================================================
   OCTOPUS FASE 5 — WAMS (Growth & Money)
   ============================================================ */

/* Top Content grid */
.wa-wams-top-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 28px; }
.wa-wams-top-col { background: #f8f9fb; border-radius: 14px; padding: 18px 20px; }
.wa-wams-top-label { font-size: var(--wag-text-12); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6b7a8d; margin: 0 0 12px; }
.wa-wams-top-list { display: flex; flex-direction: column; gap: 6px; }
.wa-wams-top-item { display: flex; align-items: baseline; justify-content: space-between; gap: var(--wag-space-8); padding: 6px 0; border-bottom: 1px solid #e8ecf2; }
.wa-wams-top-item:last-child { border-bottom: none; }
.wa-wams-top-name { font-size: var(--wag-text-13); font-weight: 600; color: #1a2332; text-decoration: none; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa .wa-wams-top-name:hover { color: #4a6cf7; }
.wa-wams-top-views { font-size: var(--wag-text-12); color: #6b7a8d; white-space: nowrap; flex-shrink: 0; }
.wa-wams-empty { color: #6b7a8d; font-size: var(--wag-text-13); margin: 0; }

/* Search intelligence grid */
.wa-wams-search-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--wag-space-8); margin-bottom: 28px; }
.wa-wams-search-item { display: flex; align-items: center; justify-content: space-between; gap: var(--wag-space-8); padding: 8px 12px; background: #f8f9fb; border-radius: var(--wag-radius-8); }
.wa-wams-search-q { font-size: var(--wag-text-13); color: #1a2332; font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa-wams-search-cnt { font-size: var(--wag-text-12); color: #b8924a; font-weight: 700; flex-shrink: 0; }

.wa-wams-click-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--wag-space-8); margin-bottom: 28px; }
.wa-wams-click-item { display: flex; align-items: center; gap: var(--wag-space-8); padding: 8px 12px; background: #f8f9fb; border-radius: var(--wag-radius-8); text-decoration: none; }
.wa .wa-wams-click-item:hover { background: #eef1f5; }
.wa-wams-click-type { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 3px 7px; border-radius: var(--wag-radius-999); background: #eef1f5; color: #6b7a8d; flex-shrink: 0; }
.wa-wams-click-name { font-size: var(--wag-text-13); color: #1a2332; font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa-wams-click-cnt { font-size: var(--wag-text-12); color: #4a6cf7; font-weight: 700; flex-shrink: 0; }

/* Pricing panel */
.wa-wams-pricing-box { background: #f8f9fb; border-radius: var(--wag-radius-16); padding: 24px 28px; margin-bottom: 28px; }
.wa-wams-pricing-note { font-size: var(--wag-text-13); color: #6b7a8d; margin: 0 0 20px; line-height: 1.6; }
.wa-wams-pricing-grid { display: flex; flex-direction: column; gap: 2px; margin-bottom: 20px; }
.wa-wams-price-row { display: flex; align-items: center; justify-content: space-between; gap: var(--wag-space-16); padding: 12px 0; border-bottom: 1px solid #e8ecf2; }
.wa-wams-price-row:last-child { border-bottom: none; }
.wa-wams-price-label { flex: 1; }
.wa-wams-price-label strong { display: block; font-size: var(--wag-text-14); color: #1a2332; font-weight: 600; }
.wa-wams-price-desc { font-size: var(--wag-text-12); color: #6b7a8d; }
.wa-wams-price-input { display: flex; align-items: center; gap: var(--wag-space-4); flex-shrink: 0; }
.wa-wams-price-symbol { font-size: 15px; color: #6b7a8d; font-weight: 600; }
.wa-wams-price-field { width: 80px; padding: 6px 8px; border: 1.5px solid #d1d9e6; border-radius: var(--wag-radius-8); font-size: 15px; color: #1a2332; text-align: right; background: var(--wag-surface); }
.wa .wa-wams-price-field:focus { outline: none; border-color: #4a6cf7; }
.wa-wams-pricing-actions { display: flex; align-items: center; gap: var(--wag-space-16); padding-top: 4px; }
.wa-wams-save-msg { font-size: var(--wag-text-13); font-weight: 600; }
.wa-wams-save-msg.is-ok  { color: #2b8a2b; }
.wa-wams-save-msg.is-err { color: #c00; }

@media (max-width: 768px) {
    .wa-wams-top-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   OCTOPUS FASE 5 — WACS (Community)
   ============================================================ */

/* Moderation queue grid */
.wa-wacs-mod-grid { display: flex; flex-direction: column; gap: var(--wag-space-20); margin-bottom: 28px; }
.wa-wacs-mod-block { background: #f8f9fb; border-radius: 14px; padding: 18px 20px; }
.wa-wacs-mod-label { font-size: var(--wag-text-13); font-weight: 700; color: #1a2332; margin: 0 0 14px; display: flex; align-items: center; gap: var(--wag-space-8); }
.wa-wacs-mod-item { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--wag-space-16); padding: 12px 0; border-bottom: 1px solid #e8ecf2; }
.wa-wacs-mod-item:last-child { border-bottom: none; }
.wa-wacs-mod-info { flex: 1; min-width: 0; }
.wa-wacs-mod-info strong { display: block; font-size: var(--wag-text-14); color: #1a2332; font-weight: 600; margin-bottom: 2px; }
.wa-wacs-meta { font-size: var(--wag-text-12); color: #6b7a8d; }
.wa-wacs-excerpt { font-size: var(--wag-text-13); color: #4a5568; margin: 4px 0 0; line-height: 1.5; }
.wa-wacs-empty { font-size: var(--wag-text-13); color: #6b7a8d; margin: 0; }
.wa-wacs-empty a { color: #4a6cf7; text-decoration: none; }
.wa .wa-wacs-empty a:hover { text-decoration: underline; }

/* Obs photos grid */
.wa-wacs-photo-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.wa-wacs-photo-item { display: flex; align-items: center; gap: 10px; background: var(--wag-surface); border-radius: 10px; padding: 8px 12px 8px 8px; border: 1px solid #e8ecf2; }
.wa-wacs-photo-item img { width: 56px; height: 56px; object-fit: cover; border-radius: 7px; flex-shrink: 0; }
.wa-wacs-photo-placeholder { width: 56px; height: 56px; background: #e8ecf2; border-radius: 7px; flex-shrink: 0; }
.wa-wacs-photo-meta { display: flex; flex-direction: column; gap: 2px; }
.wa-wacs-photo-species { font-size: var(--wag-text-13); font-weight: 600; color: #1a2332; }
.wa-wacs-photo-meta span { font-size: var(--wag-text-12); color: #6b7a8d; }
.wa-wacs-photo-date { font-size: var(--wag-text-11); color: #9aa5b4; }

/* Recent users grid */
.wa-wacs-users-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin-bottom: 28px; }
.wa-wacs-user-row { display: flex; align-items: center; gap: 10px; background: #f8f9fb; border-radius: 10px; padding: 10px 14px; }
.wa-wacs-user-row img { border-radius: 50%; flex-shrink: 0; }
.wa-wacs-user-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wa-wacs-user-info strong { font-size: var(--wag-text-13); color: #1a2332; font-weight: 600; }
.wa-wacs-user-info span { font-size: var(--wag-text-12); color: #6b7a8d; }
.wa-wacs-user-stats { color: #b8924a !important; font-weight: 600; }
.wa .wa-wacs-verify-btn, .wa .wa-wacs-verify-btn:focus {
    margin-left: auto; flex-shrink: 0; padding: 5px 10px; border-radius: var(--wag-radius-8);
    border: 1px solid #f0d49a; background: #fff8e8; color: #9a6a10;
    font-size: 11.5px; font-weight: 600; line-height: 1.2; box-shadow: var(--wag-shadow-14); cursor: pointer;
}
.wa .wa-wacs-verify-btn:hover { background: #fdefcf; border-color: #e3bd6a; color: #7d560c; }
.wa .wa-wacs-verify-btn.is-done { border-color: #bfe3cc; background: #eef8f2; color: #1a6a3a; cursor: default; }

@media (max-width: 768px) {
    .wa-wacs-users-grid { grid-template-columns: 1fr; }
    .wa-wacs-mod-item { flex-direction: column; gap: 10px; }
}

/* ── Tour form audit — Items 9–15 ──────────────────────────────────────────── */

/* #10 — Required accordion marker */
.wa-acc-req {
    color: #dc2626; font-size: var(--wag-text-12); font-weight: 700; margin-left: 2px;
    vertical-align: top; line-height: 1.6;
}

/* #11 — Gallery empty state */
.wa-gallery-empty {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: var(--wag-space-12); padding: 40px 20px; color: #9ca3af; text-align: center;
    pointer-events: none;
}
.wa-gallery-empty svg { opacity: .45; }
.wa-gallery-empty p { margin: 0; font-size: var(--wag-text-13); line-height: 1.5; }

/* #14 — Advanced capacity / meeting-point collapsible toggles */
.wa-adv-cap-toggle,
.wa-meeting-pt-toggle {
    padding: 0 0 8px; width: 100%;
}
.wa-adv-cap-btn {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 1.5px dashed #d1d5db; border-radius: var(--wag-radius-8);
    padding: 7px 14px; font-size: 12.5px; font-weight: 600; color: #6b7280;
    cursor: pointer; transition: border-color .15s, color .15s;
}
.wa .wa-adv-cap-btn:hover { border-color: #9ca3af; color: #374151; }
.wa-adv-cap-btn svg { transition: transform .2s; }
.wa-adv-cap-btn[aria-expanded="true"] svg { transform: rotate(90deg); }
.wa-adv-cap-inner,
.wa-meeting-pt-inner {
    border-left: 3px solid #e5e7eb; margin-left: 8px; padding-left: 12px;
}

/* #15 — Form navigator sidebar */
.wa-form-nav {
    position: fixed;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 120;
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-4);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    padding: 8px 0;
}
.wa-form-nav::-webkit-scrollbar { display: none; }
@media (max-width: 1600px) { .wa-form-nav { right: 8px; } }
@media (max-width: 1440px) { .wa-form-nav { display: none; } }

.wa-form-nav-item {
    display: flex; align-items: center; gap: 7px;
    background: rgba(255,255,255,.92); backdrop-filter: blur(6px);
    border: 1px solid #e5e7eb; border-radius: var(--wag-radius-20);
    padding: 5px 11px 5px 8px;
    font-size: 11.5px; font-weight: 500; color: #5f7080;
    cursor: pointer; transition: border-color .15s, color .15s, background .15s;
    white-space: nowrap; text-align: left; max-width: 160px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.wa-form-nav-item:hover,
.wa-form-nav-item.is-active {
    border-color: #c5d0dc; color: #1a2a3a; background: var(--wag-surface);
}
.wa-form-nav-dot {
    width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
    background: #d1d5db; border: 1.5px solid #b0b8c4; transition: background .2s, border-color .2s;
}
.wa-form-nav-dot.is-ok      { background: #22c55e; border-color: #16a34a; }
.wa-form-nav-dot.is-partial { background: #f59e0b; border-color: #d97706; }
.wa-form-nav-dot.is-missing { background: #ef4444; border-color: #dc2626; }
.wa-form-nav-label { overflow: hidden; text-overflow: ellipsis; }

/* ============================================================
   OCTOPUS FASE 5 — SETTINGS section
   ============================================================ */

.wa-settings-card { background: #f8f9fb; border-radius: var(--wag-radius-16); padding: 22px 26px; margin-bottom: 20px; }
.wa-settings-card-head { margin-bottom: 18px; }
.wa-settings-card-title { font-size: 15px; font-weight: 700; color: #1a2332; margin: 0 0 4px; }
.wa-settings-card-sub { font-size: var(--wag-text-13); color: #6b7a8d; }

/* API Keys */
.wa-settings-api-row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--wag-space-20); padding: 14px 0; border-bottom: 1px solid #e8ecf2; }
.wa-settings-api-row:last-child { border-bottom: none; }
.wa-settings-api-row--passive { opacity: .7; }
.wa-settings-api-label { flex: 1; }
.wa-settings-api-label strong { display: block; font-size: var(--wag-text-14); color: #1a2332; font-weight: 600; margin-bottom: 4px; }
.wa-settings-api-label strong .wa-settings-vendor { font-weight: 400; color: #6b7a8d; }
.wa-settings-api-desc { font-size: var(--wag-text-12); color: #6b7a8d; line-height: 1.5; }
.wa-settings-api-desc a { color: #4a6cf7; text-decoration: none; }
.wa-settings-api-ctrl { display: flex; flex-direction: column; align-items: flex-end; gap: var(--wag-space-8); flex-shrink: 0; }
.wa-settings-api-status { font-size: var(--wag-text-12); font-weight: 700; padding: 3px 10px; border-radius: var(--wag-radius-20); }
.wa-settings-api-status.is-set { background: #dcfce7; color: #166534; }
.wa-settings-api-status.is-unset { background: #fef2f2; color: #991b1b; }
.wa-settings-api-status.is-passive { background: var(--wag-type-settings-status-bg, var(--wag-style-settings-status-bg)); color: var(--wag-type-settings-status-ink, var(--wag-style-settings-status-ink)); }
.wa-settings-api-field { width: 260px; padding: 7px 10px; border: 1.5px solid var(--wag-type-field-settings-line, var(--wag-style-field-settings-line)); border-radius: var(--wag-radius-8); font-size: var(--wag-text-13); color: var(--wag-type-field-settings-ink, var(--wag-style-field-settings-ink)); background: var(--wag-surface); }
.wa .wa-settings-api-field:focus { outline: none; border-color: var(--wag-type-field-settings-focus-line, var(--wag-style-field-settings-focus-line)); }
.wa-settings-api-btns { display: flex; gap: var(--wag-space-8); }

/* Tools */
.wa-settings-tools-grid { display: flex; flex-direction: column; gap: 2px; margin-bottom: 16px; }
.wa-settings-tool-row { display: flex; align-items: center; justify-content: space-between; gap: var(--wag-space-16); padding: 12px 0; border-bottom: 1px solid #e8ecf2; }
.wa-settings-tool-row:last-child { border-bottom: none; }
.wa-settings-tool-label { flex: 1; }
.wa-settings-tool-label strong { display: block; font-size: var(--wag-text-14); color: #1a2332; font-weight: 600; margin-bottom: 3px; }
.wa-settings-tool-label span { font-size: var(--wag-text-12); color: #6b7a8d; line-height: 1.5; }
.wa-settings-tool-ctrl { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.wa-settings-tool-msg { font-size: var(--wag-text-12); font-weight: 600; }
.wa-settings-tool-msg.is-ok  { color: #2b8a2b; }
.wa-settings-tool-msg.is-err { color: #c00; }
.wa-settings-danger-zone { border-top: 1px solid #e8ecf2; padding-top: 14px; margin-top: 4px; }
.wa-settings-danger-head { font-size: var(--wag-text-12); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #c00; margin: 0 0 6px; }
.wa-settings-danger-zone p { font-size: var(--wag-text-13); color: #6b7a8d; margin: 0; line-height: 1.6; }
.wa-settings-danger-zone a { color: #4a6cf7; text-decoration: none; }

/* WARS block in Business */
.wa-wars-card { border: 1px solid #e8ecf2; }
.wa-wars-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--wag-space-16); }
.wa-wars-head strong { display: block; font-size: var(--wag-text-14); font-weight: 700; color: #1a2332; margin-bottom: 4px; }
.wa-wars-desc { font-size: var(--wag-text-13); color: #6b7a8d; line-height: 1.5; }
.wa-wars-status { margin-top: 14px; display: flex; align-items: flex-start; gap: var(--wag-space-12); }
.wa-wars-status-chip { font-size: var(--wag-text-12); font-weight: 700; padding: 3px 10px; border-radius: var(--wag-radius-20); background: #f1f5f9; color: #6b7a8d; white-space: nowrap; flex-shrink: 0; }
.wa-wars-status-chip.is-active { background: #dcfce7; color: #166534; }
.wa-wars-note { font-size: var(--wag-text-12); color: #6b7a8d; line-height: 1.6; }

/* WAGS key note (replaced accordion) */
.wa-wags-key-note { font-size: var(--wag-text-13); color: #6b7a8d; margin: 16px 0 0; padding: 10px 14px; background: #f8f9fb; border-radius: var(--wag-radius-8); }
.wa-wags-key-note strong { color: #1a2332; }
.wa-wags-key-note a { color: #4a6cf7; text-decoration: none; }
.wa .wa-wags-key-note a:hover { text-decoration: underline; }

/* ── DARK MODE — OCTOPUS Fase 5 (WAMS · WACS · Settings · WARS · WAGS note) ──── */
html[data-theme="dark"] .wa-wags-key-note { background: var(--wag-dark-surface); color: #93a0ab; }
html[data-theme="dark"] .wa-wags-key-note strong { color: var(--wag-dark-ink); }

/* WAMS */
html[data-theme="dark"] .wa-wams-top-col { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wams-top-label { color: #93a0ab; }
html[data-theme="dark"] .wa-wams-top-name { color: #7fb3e8; }
html[data-theme="dark"] .wa-wams-top-views,
html[data-theme="dark"] .wa-wams-empty{ color: #93a0ab; }
html[data-theme="dark"] .wa-wams-search-item { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wams-search-q { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wams-search-cnt { color: #93a0ab; }
html[data-theme="dark"] .wa-wams-click-item { background: var(--wag-dark-surface); }
html[data-theme="dark"] .wa .wa-wams-click-item:hover { background: #232a33; }
html[data-theme="dark"] .wa-wams-click-type { background: #232a33; color: #93a0ab; }
html[data-theme="dark"] .wa-wams-click-name { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wams-click-cnt { color: #7fb3e8; }
html[data-theme="dark"] .wa-wams-pricing-box { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wams-pricing-note { color: #93a0ab; }
html[data-theme="dark"] .wa-wams-price-row { border-bottom-color: #2a313a; }
html[data-theme="dark"] .wa-wams-price-label strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wams-price-desc,
html[data-theme="dark"] .wa-wams-price-symbol{ color: #93a0ab; }
html[data-theme="dark"] .wa-wams-price-field { background: #11161c; color: var(--wag-dark-ink); border-color: #2a313a; }
html[data-theme="dark"] .wa-wams-save-msg.is-ok  { color: #4ade80; }
html[data-theme="dark"] .wa-wams-save-msg.is-err { color: #f87171; }

/* WACS */
html[data-theme="dark"] .wa-wacs-mod-block { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wacs-mod-label { color: #93a0ab; }
html[data-theme="dark"] .wa-wacs-mod-item { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-wacs-mod-info strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wacs-meta { color: #93a0ab; }
html[data-theme="dark"] .wa-wacs-excerpt { color: #b0bbc6; }
html[data-theme="dark"] .wa-wacs-empty { color: #93a0ab; }
html[data-theme="dark"] .wa-wacs-photo-item { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-wacs-photo-placeholder { background: #2a313a; }
html[data-theme="dark"] .wa-wacs-photo-species { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wacs-photo-date { color: #93a0ab; }
html[data-theme="dark"] .wa-wacs-user-row { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wacs-user-info strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wacs-user-info span,
html[data-theme="dark"] .wa-wacs-user-stats{ color: #93a0ab; }

/* Settings */
html[data-theme="dark"] .wa-settings-card { background: var(--wag-dark-surface); border-color: var(--wag-type-settings-card-dark-line, var(--wag-style-settings-card-dark-line)); }
html[data-theme="dark"] .wa-settings-card-title { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-settings-card-sub { color: #93a0ab; }
html[data-theme="dark"] .wa-settings-api-row { border-bottom-color: #2a313a; }
html[data-theme="dark"] .wa-settings-api-label strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-settings-vendor,
html[data-theme="dark"] .wa-settings-api-desc{ color: #93a0ab; }
html[data-theme="dark"] .wa-settings-api-status.is-set { background: var(--wag-type-settings-status-dark-bg, var(--wag-style-settings-status-dark-bg)); color: #4ade80; border-color: var(--wag-type-settings-status-dark-line, var(--wag-style-settings-status-dark-line)); }
html[data-theme="dark"] .wa-settings-api-status.is-unset { color: #f87171; }
html[data-theme="dark"] .wa-settings-api-status.is-passive { color: var(--wag-type-settings-status-dark-ink, var(--wag-style-settings-status-dark-ink)); }
html[data-theme="dark"] .wa-settings-api-field { background: var(--wag-type-field-settings-dark-bg, var(--wag-style-field-settings-dark-bg)); color: var(--wag-dark-ink); border-color: var(--wag-type-field-settings-dark-line, var(--wag-style-field-settings-dark-line)); }
html[data-theme="dark"] .wa-settings-api-field:focus { border-color: var(--wag-type-field-settings-dark-focus-line, var(--wag-style-field-settings-dark-focus-line)); }
html[data-theme="dark"] .wa-settings-tool-row { border-bottom-color: #2a313a; }
html[data-theme="dark"] .wa-settings-tool-label strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-settings-tool-label span { color: #93a0ab; }
html[data-theme="dark"] .wa-settings-tool-msg.is-ok  { color: #4ade80; }
html[data-theme="dark"] .wa-settings-tool-msg.is-err { color: #f87171; }
html[data-theme="dark"] .wa-settings-danger-zone { background: #1c1010; border-color: #3a1a1a; }
html[data-theme="dark"] .wa-settings-danger-head { color: #f87171; }

/* WARS */
html[data-theme="dark"] .wa-wars-card { border-color: #2a313a; }
html[data-theme="dark"] .wa-wars-head strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wars-desc { color: #93a0ab; }
html[data-theme="dark"] .wa-wars-status { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-wars-status-chip { background: var(--wag-dark-surface); color: #93a0ab; border-color: #2a313a; }
html[data-theme="dark"] .wa-wars-status-chip.is-active { background: #0d2218; color: #4ade80; border-color: #166534; }
html[data-theme="dark"] .wa-wars-note { color: #93a0ab; }

/* Cockpit — cola de validación/indexación (.wa-oct-*) */
html[data-theme="dark"] .wa-oct-queue-block { background: var(--wag-dark-surface); }
html[data-theme="dark"] .wa-oct-queue-item { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-oct-queue-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,.3); }
html[data-theme="dark"] .wa-oct-queue-item-info strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-oct-btn--ghost { border-color: #2a313a; color: #93a0ab; }
html[data-theme="dark"] .wa-oct-btn--ghost:hover { border-color: #4a5568; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-oct-btn--reject { background: #2c1212; color: #f87171; }
html[data-theme="dark"] .wa-oct-btn--reject:hover { background: #3a1616; }
html[data-theme="dark"] .wa-oct-placeholder { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-oct-placeholder-desc { color: #b0bbc6; }
html[data-theme="dark"] .wa-oct-placeholder-note,
html[data-theme="dark"] .wa-oct-queue-empty{ color: #93a0ab; }

/* ── Biological Profiles generator ─────────────────────────────────────── */
body.wa-admin .wa-bio-admin { display:flex; flex-direction:column; gap:18px; }
body.wa-admin .wa-bio-hero {
    display:flex; align-items:flex-start; justify-content:space-between; gap:var(--wag-space-24);
    padding:24px 26px; border-radius:18px; color:#edf7f2;
    background:linear-gradient(135deg,#14251f 0%,#1c382e 66%,#23503e 100%);
    box-shadow:0 18px 45px -32px rgba(11,34,25,.8);
}
body.wa-admin .wa-bio-hero h2 { margin:2px 0 7px; color:#fff; font-size:25px; }
body.wa-admin .wa-bio-hero p { max-width:760px; margin:0; color:#b9ccc4; line-height:1.55; font-size:13.5px; }
body.wa-admin .wa-bio-kicker { display:block; color:#64c99b; font-size:10px; font-weight:850; letter-spacing:1.2px; text-transform:uppercase; }
body.wa-admin .wa-bio-schema { flex:0 0 auto; padding:7px 10px; border:1px solid rgba(255,255,255,.15); border-radius:9px; color:#cae4d8; font-size:var(--wag-text-11); font-weight:750; }
body.wa-admin .wa-bio-kpis .wa-obs-stat.is-approved span { color:#1f8b5a; }
body.wa-admin .wa-bio-kpis .wa-obs-stat.is-review span,
body.wa-admin .wa-bio-kpis .wa-obs-stat.is-evidence span { color:#b57720; }
body.wa-admin .wa-bio-kpis .wa-obs-stat.is-failed span,
body.wa-admin .wa-bio-kpis .wa-obs-stat.is-quarantined span { color:#b84a42; }
body.wa-admin .wa-bio-console,
body.wa-admin .wa-bio-dataset,
body.wa-admin .wa-bio-browser { background:var(--wa-card,#fff); border:1px solid var(--wa-line,#dde4e8); border-radius:17px; }
body.wa-admin .wa-bio-console { padding:20px 22px; }
body.wa-admin .wa-bio-console-head,
body.wa-admin .wa-bio-dataset,
body.wa-admin .wa-bio-browser-head { display:flex; align-items:center; justify-content:space-between; gap:var(--wag-space-20); }
body.wa-admin .wa-bio-console h3,
body.wa-admin .wa-bio-dataset h3,
body.wa-admin .wa-bio-browser h3 { margin:0 0 4px; color:var(--wa-ink,#19232d); font-size:var(--wag-text-16); }
body.wa-admin .wa-bio-console p,
body.wa-admin .wa-bio-dataset p { margin:0; color:var(--wa-muted,#788596); font-size:12.5px; }
body.wa-admin .wa-bio-queue-state { padding:7px 10px; border-radius:9px; background:#eef2f4; color:#66727d; font-size:11.5px; font-weight:800; }
body.wa-admin .wa-bio-queue-state.is-running { background:#dff4e8; color:#176f49; }
body.wa-admin .wa-bio-controls { display:flex; flex-wrap:wrap; gap:var(--wag-space-8); margin-top:17px; padding-top:17px; border-top:1px solid var(--wa-line,#e3e8ec); }
body.wa-admin .wa-bio-btn {
    display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:8px 13px;
    border:1px solid #1f6f4d !important; border-radius:var(--wag-type-bio-btn-radius, var(--wag-style-bio-btn-radius)) !important; background:#1f7f55 !important;
    color:var(--wag-type-bio-btn-ink, var(--wag-style-bio-btn-ink)) !important; font-size:12px !important; font-weight:800 !important; line-height:1.2 !important;
    text-decoration:none !important; cursor:pointer; box-shadow:var(--wag-shadow-15) !important;
}
body.wa-admin .wa-bio-btn:hover { border-color:#195f41 !important; background:#195f41 !important; color:var(--wag-type-bio-btn-ink, var(--wag-style-bio-btn-ink)) !important; }
body.wa-admin .wa-bio-btn.is-review { border-color:#326f91 !important; background:#397fa4 !important; }
body.wa-admin .wa-bio-btn.is-review:hover { background:#2f6b8b !important; }
body.wa-admin .wa-bio-btn.is-danger { border-color:#b96558 !important; background:#fff7f5 !important; color:#9c4439 !important; }
body.wa-admin .wa-bio-btn.is-danger:hover { background:#f9e7e3 !important; color:#86382f !important; }
body.wa-admin .wa-bio-btn.is-ghost { border-color:var(--wag-type-bio-btn-line, var(--wag-style-bio-btn-line)) !important; background:var(--wag-type-bio-btn-bg, var(--wag-style-bio-btn-bg)) !important; color:#52616d !important; }
body.wa-admin .wa-bio-btn.is-ghost:hover { border-color:var(--wag-type-bio-btn-hover-line, var(--wag-style-bio-btn-hover-line)) !important; background:var(--wag-type-bio-btn-hover-bg, var(--wag-style-bio-btn-hover-bg)) !important; color:var(--wag-type-bio-btn-hover-ink, var(--wag-style-bio-btn-hover-ink)) !important; }
body.wa-admin .wa-bio-btn.is-current { border-color:var(--wa-ink,#1a2230) !important; background:var(--wa-ink,#1a2230) !important; color:var(--wag-type-bio-btn-ink, var(--wag-style-bio-btn-ink)) !important; cursor:default; }
body.wa-admin .wa-bio-btn:disabled { opacity:.45; cursor:default; }
body.wa-admin .wa-bio-progress { margin-top:12px; padding:10px 12px; border-radius:10px; background:#f6f8f9; color:#6c7984; font-size:11.5px; }
body.wa-admin .wa-bio-dataset { padding:17px 20px; }
body.wa-admin .wa-bio-dataset small { display:block; margin-top:7px; color:#8a96a0; }
body.wa-admin .wa-bio-browser { overflow:hidden; }
body.wa-admin .wa-bio-browser-head { padding:18px 20px; border-bottom:1px solid var(--wa-line,#e3e8ec); }
body.wa-admin .wa-bio-browser-head small { display:block; margin-top:3px; color:#8a96a0; font-size:11.5px; }
body.wa-admin .wa-bio-browser-head form { display:flex; gap:7px; width:min(430px,48%); }
body.wa-admin .wa-bio-browser-head input { width:100%; min-width:0; height:36px; padding:0 11px; border:1px solid #ccd6dc; border-radius:9px; background:var(--wag-surface); color:#27333d; font-size:12.5px; }
body.wa-admin .wa-bio-list { padding:8px 14px 14px; }
body.wa-admin .wa-bio-row { border-bottom:1px solid var(--wa-line,#e4e9ec); }
body.wa-admin .wa-bio-row:last-child { border-bottom:0; }
body.wa-admin .wa-bio-row > summary { display:grid; grid-template-columns:minmax(180px,1fr) auto auto auto; align-items:center; gap:10px; padding:13px 8px; cursor:pointer; list-style:none; }
body.wa-admin .wa-bio-row > summary::-webkit-details-marker { display:none; }
body.wa-admin .wa-bio-name { display:flex; flex-direction:column; min-width:0; }
body.wa-admin .wa-bio-name strong { overflow:hidden; color:var(--wa-ink,#1d2832); font-size:13.5px; text-overflow:ellipsis; white-space:nowrap; }
body.wa-admin .wa-bio-name em { color:#8a96a0; font-size:11.5px; }
body.wa-admin .wa-bio-chip { padding:5px 8px; border-radius:var(--wag-radius-999); background:#edf1f3; color:#64717c; font-size:9px; font-weight:850; letter-spacing:.45px; text-transform:uppercase; }
body.wa-admin .wa-bio-chip.is-approved { background:#dff3e7; color:#1b744d; }
body.wa-admin .wa-bio-chip.is-review_required { background:var(--wag-type-bio-chip-bg, var(--wag-style-bio-chip-bg)); color:var(--wag-type-bio-chip-ink, var(--wag-style-bio-chip-ink)); }
body.wa-admin .wa-bio-chip.is-failed { background:#fbe4e1; color:#9a4036; }
body.wa-admin .wa-bio-chip.is-evidence_required { background:var(--wag-type-bio-chip-bg, var(--wag-style-bio-chip-bg)); color:var(--wag-type-bio-chip-ink, var(--wag-style-bio-chip-ink)); }
body.wa-admin .wa-bio-chip.is-quarantined { background:#4a2523; color:#fff1ef; }
body.wa-admin .wa-bio-confidence { color:#33424d; font-size:var(--wag-text-12); font-weight:850; }
body.wa-admin .wa-bio-score { color:#98a3ac; font-size:10.5px; }
body.wa-admin .wa-bio-detail { margin:0 8px 14px; padding:15px; border-radius:var(--wag-radius-12); background:#f6f8f9; }
body.wa-admin .wa-bio-facts { display:grid; grid-template-columns:repeat(4,minmax(110px,1fr)); gap:var(--wag-space-8); }
body.wa-admin .wa-bio-facts span { padding:9px 10px; border-radius:9px; background:var(--wag-surface); color:#34424d; font-size:11.5px; font-weight:700; }
body.wa-admin .wa-bio-facts small { display:block; margin-bottom:3px; color:#909ba4; font-size:8.5px; font-weight:850; letter-spacing:.45px; text-transform:uppercase; }
body.wa-admin .wa-bio-reasons { margin-top:12px; padding:11px 13px; border-left:3px solid #d39643; background:#fff9ef; color:#70552d; font-size:11.5px; }
body.wa-admin .wa-bio-reasons ul { margin:5px 0 0 17px; }
body.wa-admin .wa-bio-actions { display:flex; gap:7px; margin-top:12px; }
body.wa-admin .wa-bio-detail pre { max-height:360px; overflow:auto; margin:12px 0 0; padding:13px; border-radius:9px; background:#18221e; color:#cbe1d6; font:10.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; }
body.wa-admin .wa-bio-empty { padding:20px; color:#87939d; font-size:var(--wag-text-13); }
body.wa-admin .wa-bio-pager { display:flex; flex-wrap:wrap; gap:6px; padding:14px; border-top:1px solid var(--wa-line,#e3e8ec); }

html[data-theme="dark"] body.wa-admin .wa-bio-console,
html[data-theme="dark"] body.wa-admin .wa-bio-dataset,
html[data-theme="dark"] body.wa-admin .wa-bio-browser { background:#171d23; border-color:#2a333b; }
html[data-theme="dark"] body.wa-admin .wa-bio-progress,
html[data-theme="dark"] body.wa-admin .wa-bio-detail { background:#11171c; color:#97a4ae; }
html[data-theme="dark"] body.wa-admin .wa-bio-facts span { background:#1b232a; color:#d6dee4; }
html[data-theme="dark"] body.wa-admin .wa-bio-browser-head input { background:#11171c; border-color:#35404a; color:#e2e8ec; }
html[data-theme="dark"] body.wa-admin .wa-bio-reasons { background:#2b2419; color:#d8bb88; }
html[data-theme="dark"] body.wa-admin .wa-bio-pager { border-color:#2a333b; }
html[data-theme="dark"] body.wa-admin .wa-bio-btn.is-ghost { border-color:var(--wag-type-bio-btn-dark-line, var(--wag-style-bio-btn-dark-line)) !important; background:var(--wag-type-bio-btn-dark-bg, var(--wag-style-bio-btn-dark-bg)) !important; color:var(--wag-type-bio-btn-dark-ink, var(--wag-style-bio-btn-dark-ink)) !important; }
html[data-theme="dark"] body.wa-admin .wa-bio-btn.is-ghost:hover { border-color:var(--wag-type-bio-btn-dark-hover-line, var(--wag-style-bio-btn-dark-hover-line)) !important; background:var(--wag-type-bio-btn-dark-hover-bg, var(--wag-style-bio-btn-dark-hover-bg)) !important; color:var(--wag-type-bio-btn-dark-hover-ink, var(--wag-style-bio-btn-dark-hover-ink)) !important; }

@media (max-width:760px) {
    body.wa-admin .wa-bio-hero, body.wa-admin .wa-bio-console-head,
    body.wa-admin .wa-bio-dataset, body.wa-admin .wa-bio-browser-head { align-items:stretch; flex-direction:column; }
    body.wa-admin .wa-bio-browser-head form { width:100%; }
    body.wa-admin .wa-bio-row > summary { grid-template-columns:minmax(130px,1fr) auto; }
    body.wa-admin .wa-bio-score { display:none; }
    body.wa-admin .wa-bio-facts { grid-template-columns:repeat(2,minmax(100px,1fr)); }
}

/* Hotspots — Especies (.wa-waps-*) */
html[data-theme="dark"] .wa-waps-table { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-waps-thead { background: var(--wag-dark-surface); color: #93a0ab; }
html[data-theme="dark"] .wa-waps-row { background: #11161c; border-bottom-color: var(--wag-type-waps-row-dark-underline, var(--wag-style-waps-row-dark-underline)); }
html[data-theme="dark"] .wa-waps-row:hover,
html[data-theme="dark"] .wa-waps-row.is-inspecting { background: var(--wag-type-waps-row-dark-bg, var(--wag-style-waps-row-dark-bg)); }
html[data-theme="dark"] .wa-waps-nothumb { background: #2a313a; }
html[data-theme="dark"] .wa-waps-btn--ghost { background: #11161c; border-color: #2a313a; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-waps-btn--ghost:hover { border-color: #4a5568; }
html[data-theme="dark"] .wa-waps-btn--action { background: #122040; color: #7fb3e8; border-color: #2a4a7a; }
html[data-theme="dark"] .wa-waps-btn--action:hover { background: #1a2d52; }
html[data-theme="dark"] .wa-waps-acc { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-waps-acc summary { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-waps-acc-body { border-top-color: #2a313a; }
html[data-theme="dark"] .wa-waps-acc-desc { color: #93a0ab; }
html[data-theme="dark"] .wa-waps-hkpi { background: var(--wag-dark-surface); border-color: var(--wag-type-waps-kpi-dark-line, var(--wag-style-waps-kpi-dark-line)); }
html[data-theme="dark"] .wa-waps-hkpi.is-warn { background: #1c0e0e; border-color: #4a1a1a; }
html[data-theme="dark"] .wa-waps-hkpi.is-ok { background: var(--wag-type-waps-kpi-dark-bg, var(--wag-style-waps-kpi-dark-bg)); border-color: #1a4a2a; }
html[data-theme="dark"] .wa-waps-hkpi.is-neutral { background: var(--wag-dark-surface); border-color: var(--wag-type-waps-kpi-dark-line, var(--wag-style-waps-kpi-dark-line)); }
html[data-theme="dark"] .wa-waps-hkpi span { color: #93a0ab; }

/* Hotspots — Mapa / Indexación (.wa-wahs-*) */
html[data-theme="dark"] .wa-wahs-card { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wahs-card-title { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wahs-card-desc { color: #93a0ab; }
html[data-theme="dark"] .wa-wahs-label { color: #c8d3dc; }
html[data-theme="dark"] .wa-wahs-select,
html[data-theme="dark"] .wa-wahs-input { background: #11161c; color: var(--wag-dark-ink); border-color: #2a313a; }
html[data-theme="dark"] .wa-wahs-select:focus,
html[data-theme="dark"] .wa-wahs-input:focus { background: #161c24; border-color: #2ecc71; }
html[data-theme="dark"] .wa-wahs-check-label { color: #c8d3dc; }
html[data-theme="dark"] .wa-wahs-info { color: #93a0ab; }
html[data-theme="dark"] .wa-wahs-log-row { background: #161c24; }
html[data-theme="dark"] .wa-wahs-log-row.is-ok { background: #0d2018; }
html[data-theme="dark"] .wa-wahs-log-row.is-err { background: #2c1010; }
html[data-theme="dark"] .wa-wahs-log-name { color: #c8d3dc; }
html[data-theme="dark"] .wa-wahs-log-name a { color: #7fb3e8; }
html[data-theme="dark"] .wa-wahs-log-time,
html[data-theme="dark"] .wa-wahs-log-status{ color: #93a0ab; }
html[data-theme="dark"] .wa-wahs-howto { color: #c8d3dc; }

/* Hotspots — Pool de imágenes (.wa-hs-*) */
html[data-theme="dark"] .wa-hs-pool { border-top-color: #2a313a; }
html[data-theme="dark"] .wa-hs-pool-head { color: #c8d3dc; }
html[data-theme="dark"] .wa-hs-pag-link { background: var(--wag-dark-surface); color: #c8d3dc; }
html[data-theme="dark"] .wa-hs-pag-link.is-active { background: #1f8a52; color: #fff; }
html[data-theme="dark"] .wa-hs-pool-thead { background: var(--wag-dark-surface); color: #93a0ab; }
html[data-theme="dark"] .wa-hs-pool-row { background: #11161c; border-color: #2a313a; }
html[data-theme="dark"] .wa-hs-pool-row:hover { background: #1c232d; }
html[data-theme="dark"] .wa-hs-cell-name a { color: #7fb3e8; }
html[data-theme="dark"] .wa-hs-thumb--empty { background: #2a313a; }
html[data-theme="dark"] .wa-hs-inspect-panel { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-hs-inspect-empty { background: #2a313a; color: #93a0ab; }
html[data-theme="dark"] .wa-hs-inspect-attr { color: #93a0ab; }
html[data-theme="dark"] .wa-hs-pool-label { color: #c8d3dc; }
html[data-theme="dark"] .wa-hs-focus-input { background: #11161c; border-color: #2a313a; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-hs-sm-btn { background: var(--wag-dark-surface); border-color: #2a313a; color: #c8d3dc; }
html[data-theme="dark"] .wa-hs-sm-btn:hover:not(:disabled) { background: #232a33; }
html[data-theme="dark"] .wa-hs-chip.is-none { background: var(--wag-dark-surface); color: #93a0ab; }

/* Guías (.wa-wags-* — cuerpo, sin la key-note que ya tiene sus reglas) */
html[data-theme="dark"] .wa-wags-card { background: var(--wag-dark-surface); border-color: #2a313a; }
html[data-theme="dark"] .wa-wags-card-header { border-bottom-color: #2a313a; }
html[data-theme="dark"] .wa-wags-card-title { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wags-card-sub { color: #93a0ab; }
html[data-theme="dark"] .wa-wags-card-link { color: #7fb3e8; }
html[data-theme="dark"] .wa-wags-label { color: #c8d3dc; }
html[data-theme="dark"] .wa-wags-select,
html[data-theme="dark"] .wa-wags-input { background: #11161c; border-color: #2a313a; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wags-status,
html[data-theme="dark"] .wa-wags-empty{ color: #93a0ab; }
html[data-theme="dark"] .wa-wags-quick-row { background: var(--wag-dark-surface); }
html[data-theme="dark"] .wa-wags-quick-country { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wags-quick-meta { color: #93a0ab; }
html[data-theme="dark"] .wa-wags-gap-table th { color: #93a0ab; border-bottom-color: #2a313a; }
html[data-theme="dark"] .wa-wags-gap-table td { border-bottom-color: #2a313a; }
html[data-theme="dark"] .wa-wags-gap-name { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wags-gap-missing { color: #f0a857; }
html[data-theme="dark"] .wa-wags-gap-link { color: #7fb3e8; }
html[data-theme="dark"] .wa-wags-score-chip { background: #122040; color: #7fb3e8; }
html[data-theme="dark"] .wa-wags-score-chip[data-score="0"] { background: var(--wag-type-wags-score-dark-bg, var(--wag-style-wags-score-dark-bg)); color: var(--wag-type-wags-score-dark-ink, var(--wag-style-wags-score-dark-ink)); }
html[data-theme="dark"] .wa-wags-type-chip { background: #1a2050; color: #9aadfa; }
html[data-theme="dark"] .wa-wags-accordion { border-color: #2a313a; }
html[data-theme="dark"] .wa-wags-accordion-head { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-wags-accordion-body { border-top-color: #2a313a; }

/* ── ADD HOTSPOT — family selector ─────────────────────────────────────────── */
.wa-hotspot-family-picker .wa-family-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--wag-space-20);
    margin: 24px 0;
}
@media (max-width: 640px) {
    .wa-hotspot-family-picker .wa-family-cards { grid-template-columns: 1fr; }
}
.wa-family-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 28px 24px;
    border-radius: var(--wag-radius-16);
    text-decoration: none;
    color: #fff;
    transition: box-shadow .18s, transform .15s;
}
.wa .wa-family-card:hover {
    transform: translateY(-2px);
    text-decoration: none;
    color: #fff;
}
.wa-family-card--nature {
    background: linear-gradient(150deg, #2e7d52, #1f5a3a);
    box-shadow: 0 8px 24px rgba(30,90,58,.22);
}
.wa .wa-family-card--nature:hover { box-shadow: 0 12px 30px rgba(30,90,58,.3); }
.wa-family-card--business {
    background: linear-gradient(150deg, #2b6ca8, #1d4a73);
    box-shadow: 0 8px 24px rgba(29,74,115,.22);
}
.wa .wa-family-card--business:hover { box-shadow: 0 12px 30px rgba(29,74,115,.3); }
.wa-family-card-icon { color: rgba(255,255,255,.9); }
.wa-family-card h2 { margin: 0; font-size: var(--wag-text-18); font-weight: 700; color: #fff; }
.wa-family-card p  { margin: 0; font-size: var(--wag-text-13); color: rgba(255,255,255,.82); line-height: 1.55; }
.wa-family-card-cta { margin-top: auto; font-size: var(--wag-text-13); font-weight: 700; color: rgba(255,255,255,.9); letter-spacing: .3px; }
.wa-submit-disclaimer { font-size: var(--wag-text-12); color: #7a8a9a; margin-top: 20px; }

/* ── TOUR MAP (D2) ─────────────────────────────────────────────────────────── */
.wa-tour-map-section { margin-top: 8px; }
.wa-tour-hotspot-chips { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.wa-tour-hotspot-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--wag-space-8);
    padding: 9px 14px;
    border: 1px solid var(--wag-type-tour-hotspot-chip-line, var(--wag-style-tour-hotspot-chip-line));
    border-radius: var(--wag-radius-999);
    background: var(--wag-type-tour-hotspot-chip-bg, var(--wag-style-tour-hotspot-chip-bg));
    color: var(--wag-type-tour-hotspot-chip-ink, var(--wag-style-tour-hotspot-chip-ink));
    font-size: var(--wag-text-13);
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    transition: border-color .15s, background .15s, color .15s;
}
.wa-tour-hotspot-chip span { color: #2e9e5b; font-size: 9px; }
.wa .wa-tour-hotspot-chip:hover,
.wa .wa-tour-hotspot-chip:focus { border-color: var(--wag-type-tour-hotspot-chip-hover-line, var(--wag-style-tour-hotspot-chip-hover-line)); background: var(--wag-type-tour-hotspot-chip-hover-bg, var(--wag-style-tour-hotspot-chip-hover-bg)); color: var(--wag-type-tour-hotspot-chip-hover-ink, var(--wag-style-tour-hotspot-chip-hover-ink)); text-decoration: none; }
html[data-theme="dark"] .wa-tour-hotspot-chip { border-color: var(--wag-type-tour-hotspot-chip-dark-line, var(--wag-style-tour-hotspot-chip-dark-line)); background: var(--wag-type-tour-hotspot-chip-dark-bg, var(--wag-style-tour-hotspot-chip-dark-bg)); color: var(--wag-type-tour-hotspot-chip-dark-ink, var(--wag-style-tour-hotspot-chip-dark-ink)); }
html[data-theme="dark"] .wa-tour-hotspot-chip:hover,
html[data-theme="dark"] .wa-tour-hotspot-chip:focus { border-color: var(--wag-type-tour-hotspot-chip-dark-hover-line, var(--wag-style-tour-hotspot-chip-dark-hover-line)); background: var(--wag-type-tour-hotspot-chip-dark-hover-bg, var(--wag-style-tour-hotspot-chip-dark-hover-bg)); color: var(--wag-type-tour-hotspot-chip-dark-hover-ink, var(--wag-style-tour-hotspot-chip-dark-hover-ink)); }
.wa-tour-map-canvas {
    width: 100%;
    height: 320px;
    border-radius: var(--wag-type-tour-map-canvas-radius, var(--wag-style-tour-map-canvas-radius));
    overflow: hidden;
    border: 1px solid var(--wag-type-tour-map-canvas-line, var(--wag-style-tour-map-canvas-line));
    margin-top: 14px;
    cursor: pointer;
}
.wa-tour-map-canvas .leaflet-container { border-radius: 14px; }

/* ══════════════════════════════════════════════════════════════════════════════
   WARS v2 — OWNER CALENDAR  (v3.4.0)
   Airbnb-inspired month grid for Stays, Hides & Tours.
   ══════════════════════════════════════════════════════════════════════════════ */

/* Wrap */
.wa-cal-wrap {
    --cal-green:   #3d9970;
    --cal-green-l: #e8f5f0;
    --cal-blue:    #3b82f6;
    --cal-amber:   #f59e0b;
    --cal-red:     #ef4444;
    --cal-border:  #e2e8ef;
    --cal-cell-h:  80px;
    font-family: inherit;
    color: #1e2d3d;
}

/* ── Layout ──────────────────────────────────────────────────────────────────── */
.wa-cal-layout {
    display: grid;
    grid-template-columns: 220px 1fr 280px;
    gap: 0;
    border: 1px solid var(--cal-border);
    border-radius: var(--wag-radius-20);
    overflow: hidden;
    min-height: 600px;
    background: var(--wag-surface);
    box-shadow: 0 4px 24px rgba(0,0,0,.06);
}

/* ── Sidebar ─────────────────────────────────────────────────────────────────── */
.wa-cal-sidebar {
    background: #f8f9fb;
    border-right: 1px solid var(--cal-border);
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow-y: auto;
}
.wa-cal-sidebar-head {
    font-size: var(--wag-text-11);
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: #7a8a9a;
    padding: 18px 16px 10px;
}
.wa-cal-product-list { list-style: none; margin: 0; padding: 0 8px; }
.wa-cal-product-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 10px;
    border-radius: 10px;
    cursor: pointer;
    transition: background .15s;
}
.wa .wa-cal-product-item:hover { background: #eef1f4; }
.wa-cal-product-item.is-active { background: var(--cal-green-l); }
.wa-cal-product-ico { color: var(--cal-green); }
.wa-cal-product-name { font-size: var(--wag-text-13); font-weight: 600; color: #1e2d3d; line-height: 1.3; }
.wa-cal-product-type { font-size: var(--wag-text-11); color: #7a8a9a; }

.wa-cal-sidebar-section {
    padding: 12px 16px;
    border-top: 1px solid var(--cal-border);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.wa-cal-btn-ghost {
    background: transparent;
    border: 1px solid var(--cal-border);
    border-radius: var(--wag-radius-8);
    padding: 7px 12px;
    font-size: var(--wag-text-12);
    font-weight: 600;
    color: #1e2d3d;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background .15s, border-color .15s;
    text-align: left;
}
.wa .wa-cal-btn-ghost:hover { background: #eef1f4; border-color: #c6d0db; }

/* Legend */
.wa-cal-legend {
    margin-top: auto;
    padding: 14px 16px;
    border-top: 1px solid var(--cal-border);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.wa-cal-legend-item { display: flex; align-items: center; gap: 7px; font-size: var(--wag-text-11); color: #5a6a7a; }
.wa-cal-dot {
    width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
}
.wa-cal-dot.is-available  { background: #d1fae5; border: 1px solid var(--cal-green); }
.wa-cal-dot.is-confirmed  { background: #dbeafe; border: 1px solid var(--cal-blue); }
.wa-cal-dot.is-pending    { background: #fef3c7; border: 1px solid var(--cal-amber); }
.wa-cal-dot.is-blocked    { background: #e2e8ef; border: 1px solid #94a3b8; }
.wa-cal-dot.is-external   { background: #f1f5f9; border: 1px solid #64748b; }

/* ── Main calendar ────────────────────────────────────────────────────────────── */
.wa-cal-main {
    display: flex;
    flex-direction: column;
    padding: 22px 20px;
    overflow-x: auto;
}

/* Header */
.wa-cal-header {
    display: flex;
    align-items: center;
    gap: var(--wag-space-12);
    margin-bottom: 18px;
}
.wa-cal-month-title {
    font-size: var(--wag-text-18);
    font-weight: 700;
    color: #1e2d3d;
    margin: 0;
    flex: 1;
}
.wa-cal-nav {
    background: #f3f4f6;
    border: none;
    border-radius: var(--wag-radius-8);
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    color: #1e2d3d;
    transition: background .15s;
}
.wa .wa-cal-nav:hover { background: #e2e8ef; }
.wa-cal-today-btn {
    background: none;
    border: 1px solid var(--cal-border);
    border-radius: var(--wag-radius-8);
    padding: 5px 12px;
    font-size: var(--wag-text-12);
    font-weight: 600;
    color: #5a6a7a;
    cursor: pointer;
    transition: all .15s;
}
.wa .wa-cal-today-btn:hover { background: #f3f4f6; }

/* Selector de tipo de habitación de los lodges (2026-09-25). Mismo trazo que
   «Hoy» (borde --cal-border, radio 8px, 12px/600) y el verde del calendario
   para el elegido. Todos los estados declarados: Astra pinta los botones en
   :hover/:focus. En móvil, una fila que se desliza. */
.wa-cal-roomtypes {
    display: flex; gap: 6px; margin: -6px 0 16px;
    overflow-x: auto; scrollbar-width: none;
}
.wa-cal-roomtypes::-webkit-scrollbar { display: none; }
.wa-cal-wrap .wa-cal-rt,
.wa-cal-wrap .wa-cal-rt:hover,
.wa-cal-wrap .wa-cal-rt:focus {
    flex: none; padding: 6px 12px; border: 1px solid var(--cal-border, #e2e8ef) !important;
    border-radius: var(--wag-radius-8); background: transparent !important; box-shadow: var(--wag-shadow-15) !important;
    color: #5a6a7a !important; font-size: var(--wag-text-12); font-weight: 600; cursor: pointer; white-space: nowrap;
}
.wa .wa-cal-wrap .wa-cal-rt:hover { background: #f3f4f6 !important; }
.wa-cal-wrap .wa-cal-rt.is-on,
.wa-cal-wrap .wa-cal-rt.is-on:hover,
.wa-cal-wrap .wa-cal-rt.is-on:focus {
    border-color: var(--cal-green, #3d9970) !important;
    background: var(--cal-green-l, #eaf6ef) !important;
    color: var(--cal-green, #3d9970) !important;
}
/* «Se aplica a: …» encima de las acciones de los días elegidos. */
.wa-cal-scope { font-size: var(--wag-text-12); color: #5a6a7a; }
.wa-cal-scope strong { color: #1e2d3d; }
html[data-theme="dark"] .wa-cal-wrap .wa-cal-rt { color: #b8c4cd !important; border-color: #2c3741 !important; }
html[data-theme="dark"] .wa .wa-cal-wrap .wa-cal-rt:hover { background: #232b34 !important; }
html[data-theme="dark"] .wa-cal-scope { color: #93a0ab; }
html[data-theme="dark"] .wa-cal-scope strong { color: var(--wag-dark-ink); }

/* Weekday labels */
.wa-cal-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    margin-bottom: 4px;
}
.wa-cal-wd {
    text-align: center;
    font-size: var(--wag-text-11);
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: #94a3b8;
    padding: 4px 0;
}

/* Day grid */
.wa-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    flex: 1;
}
.wa-cal-loading, .wa-cal-error, .wa-cal-empty-main {
    grid-column: 1/-1;
    text-align: center;
    padding: 40px 0;
    color: #94a3b8;
    font-size: var(--wag-text-14);
}

/* Day cells */
.wa-cal-cell {
    min-height: var(--cal-cell-h);
    border-radius: 10px;
    padding: 7px 8px 6px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2px;
    cursor: pointer;
    user-select: none;
    transition: box-shadow .12s, transform .1s;
    border: 1.5px solid transparent;
    background: var(--wag-surface);
}
.wa .wa-cal-cell:hover:not(.is-past):not(.is-blank) {
    box-shadow: 0 2px 10px rgba(0,0,0,.10);
    transform: translateY(-1px);
    border-color: #d1d9e0;
    z-index: 2;
}
.wa-cal-cell.is-blank { background: transparent; cursor: default; border: none; }
.wa-cal-cell.is-past  { opacity: .45; cursor: default; }

/* States */
.wa-cal-cell.is-available  { background: #f9fafb; }
.wa-cal-cell.is-blocked    { background: repeating-linear-gradient(135deg,#f1f5f9 0,#f1f5f9 5px,#e2e8ef 5px,#e2e8ef 10px); border-color: #c8d3de; }
.wa-cal-cell.is-confirmed  { background: #eff6ff; border-color: #bfdbfe; }
.wa-cal-cell.is-pending    { background: #fffbeb; border-color: #fde68a; }
.wa-cal-cell.is-external   { background: #f8fafc; border-color: #cbd5e1; }
.wa-cal-cell.is-full       { background: #fff0ee; border-color: #fca5a5; }

/* Season tint */
.wa-cal-cell.has-season { background: color-mix(in srgb, var(--season-color) 12%, #fff); }
.wa-cal-cell.has-season.is-available { border-color: color-mix(in srgb, var(--season-color) 30%, #fff); }

/* Override dot */
.wa-cal-cell.is-override::after {
    content: '';
    position: absolute;
    top: 5px; right: 5px;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--cal-amber);
}

/* Selected */
.wa-cal-cell.is-selected {
    border-color: var(--cal-green) !important;
    box-shadow: 0 0 0 2px var(--cal-green-l);
    background: var(--cal-green-l) !important;
    z-index: 3;
}

/* Cell inner elements */
.wa-cal-day-num {
    font-size: var(--wag-text-12);
    font-weight: 700;
    color: #1e2d3d;
    line-height: 1;
}
.is-past .wa-cal-day-num { color: #94a3b8; }
.wa-cal-price {
    font-size: var(--wag-text-13);
    font-weight: 700;
    color: #1e2d3d;
    line-height: 1.2;
}
.wa-cal-bk-bar, .wa-cal-ext-bar {
    font-size: 10px;
    font-weight: 600;
    border-radius: var(--wag-radius-4);
    padding: 1px 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: auto;
}
.wa-cal-bk-bar {
    background: rgba(59,130,246,.15);
    color: var(--cal-blue);
}
.is-pending .wa-cal-bk-bar {
    background: rgba(245,158,11,.15);
    color: #92400e;
}
.wa-cal-ext-bar {
    background: rgba(100,116,139,.12);
    color: #475569;
}
.wa-cal-ext-bar--ical {
    background: rgba(139,92,246,.14);
    color: #6d28d9;
}
.wa-cal-units {
    font-size: 10px;
    color: var(--cal-green);
    font-weight: 600;
    margin-top: auto;
}
.wa-cal-units.is-low  { color: var(--cal-amber); }
.wa-cal-units.is-full { color: var(--cal-red); }

/* Export bar */
.wa-cal-export-bar {
    display: flex;
    align-items: center;
    gap: var(--wag-space-8);
    margin-top: 16px;
    padding: 10px 14px;
    background: #f8f9fb;
    border-radius: 10px;
    border: 1px solid var(--cal-border);
}
.wa-cal-export-label { font-size: var(--wag-text-12); color: #5a6a7a; font-weight: 600; white-space: nowrap; display: flex; align-items: center; gap: 5px; }
.wa-cal-export-url { flex: 1; font-size: var(--wag-text-11); border: none; background: none; color: #1e2d3d; min-width: 0; }
.wa-cal-btn-copy {
    background: var(--cal-green);
    color: #fff;
    border: none;
    border-radius: 7px;
    padding: 5px 12px;
    font-size: var(--wag-text-12);
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity .15s;
}
.wa .wa-cal-btn-copy:hover { opacity: .85; }

/* ── Tour view ─────────────────────────────────────────────────────────────── */
#wa-tour-view { padding: 4px 0; }
.wa-tour-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--wag-space-16);
    background: #f0f7ff;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    padding: 16px 20px;
    margin-bottom: 20px;
}
.wa-tour-banner-dates { font-size: 15px; font-weight: 700; color: #1e3a5f; }
.wa-tour-banner-meta { display: flex; align-items: center; gap: var(--wag-space-12); font-size: var(--wag-text-13); font-weight: 600; color: #3b5a7a; }
.wa-tour-seats { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--wag-radius-20); background: #e0f2e9; color: #1a5235; font-size: var(--wag-text-12); font-weight: 700; }
.wa-tour-seats.is-low { background: #fef3c7; color: #92400e; }
.wa-tour-seats.is-full { background: #fee2e2; color: #991b1b; }
.wa-tour-booking-list { display: flex; flex-direction: column; gap: 10px; }
.wa-tour-bk-row {
    background: var(--wag-surface);
    border: 1px solid #eaecf0;
    border-radius: var(--wag-radius-12);
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-8);
    box-shadow: 0 1px 3px rgba(20,40,60,.05);
}
.wa-tour-bk-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.wa-tour-bk-head strong { font-size: var(--wag-text-14); color: #1e2d3d; }
.wa-tour-bk-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--wag-text-13); color: #5a6a7a; }
.wa-tour-bk-meta a { color: inherit; }
.wa-tour-bk-note { border-left: 3px solid #e2e8f0; padding: 4px 0 4px 10px; color: #6b7c8e; font-size: var(--wag-text-13); font-style: italic; }
.wa-tour-bk-actions { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; padding-top: 8px; border-top: 1px solid #f1f3f6; }

/* ── Action panel ─────────────────────────────────────────────────────────────── */
.wa-cal-actions {
    border-left: 1px solid var(--cal-border);
    background: var(--wag-surface);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}
.wa-cal-action-head {
    display: flex;
    justify-content: space-between;
    font-size: var(--wag-text-14);
    font-weight: 700;
    color: #1e2d3d;
}
.wa-cal-action-close {
    background: none;
    border: none;
    font-size: var(--wag-text-20);
    color: #94a3b8;
    cursor: pointer;
    line-height: 1;
    padding: 0 4px;
}
.wa-cal-action-body { display: flex; flex-direction: column; }
.wa-cal-sel-dates {
    font-size: var(--wag-text-12);
    color: var(--cal-green);
    font-weight: 600;
    background: var(--cal-green-l);
    border-radius: 7px;
    padding: 6px 10px;
}
.wa-cal-action-group { display: flex; flex-direction: column; gap: 6px; }
.wa-cal-action-label { font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #7a8a9a; }
.wa-cal-price-row, .wa-cal-avail-row { display: flex; gap: 6px; flex-wrap: wrap; }
.wa-cal-input {
    flex: 1;
    border: 1px solid var(--cal-border);
    border-radius: var(--wag-radius-8);
    padding: 8px 10px;
    font-size: var(--wag-text-13);
    color: #1e2d3d;
    outline: none;
    transition: border-color .15s;
    min-width: 0;
    background: var(--wag-surface);
}
.wa .wa-cal-input:focus { border-color: var(--cal-green); }
.wa-cal-select {
    border: 1px solid var(--cal-border);
    border-radius: var(--wag-radius-8);
    padding: 7px 10px;
    font-size: var(--wag-text-13);
    color: #1e2d3d;
    background: var(--wag-surface);
    outline: none;
    cursor: pointer;
}
.wa .wa-cal-select:focus { border-color: var(--cal-green); }
.wa-cal-textarea {
    border: 1px solid var(--cal-border);
    border-radius: var(--wag-radius-8);
    padding: 8px 10px;
    font-size: var(--wag-text-13);
    color: #1e2d3d;
    resize: vertical;
    outline: none;
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    transition: border-color .15s;
}
.wa .wa-cal-textarea:focus { border-color: var(--cal-green); }
.wa-cal-btn-primary {
    background: var(--cal-green);
    color: #fff;
    border: none;
    border-radius: var(--wag-radius-8);
    padding: 8px 14px;
    font-size: var(--wag-text-13);
    font-weight: 700;
    cursor: pointer;
    transition: opacity .15s;
    white-space: nowrap;
}
.wa .wa-cal-btn-primary:hover { opacity: .88; }
.wa-cal-btn-block   { background: #fee2e2; color: #991b1b; border: none; border-radius: var(--wag-radius-8); padding: 8px 12px; font-size: var(--wag-text-12); font-weight: 700; cursor: pointer; transition: opacity .15s; }
.wa-cal-btn-unblock { background: #d1fae5; color: #065f46; border: none; border-radius: var(--wag-radius-8); padding: 8px 12px; font-size: var(--wag-text-12); font-weight: 700; cursor: pointer; transition: opacity .15s; }
.wa .wa-cal-btn-block:hover,
.wa .wa-cal-btn-unblock:hover { opacity: .8; }
.wa-cal-btn-del {
    background: #fee2e2;
    color: #991b1b;
    border: none;
    border-radius: 7px;
    padding: 5px 10px;
    font-size: var(--wag-text-12);
    font-weight: 700;
    cursor: pointer;
}

/* ── Booking tooltip ──────────────────────────────────────────────────────────── */
.wa-cal-booking-tip {
    position: absolute;
    z-index: 9999;
    background: #1e2d3d;
    color: #fff;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: var(--wag-text-12);
    line-height: 1.5;
    min-width: 180px;
    max-width: 260px;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
    pointer-events: none;
    transition: opacity .15s;
}
.wa-cal-booking-tip[aria-hidden="true"]  { opacity: 0; }
.wa-cal-booking-tip[aria-hidden="false"] { opacity: 1; }
.wa-cal-tip-row + .wa-cal-tip-row { border-top: 1px solid rgba(255,255,255,.12); padding-top: 8px; margin-top: 8px; }
.wa-cal-tip-status {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    border-radius: var(--wag-radius-4);
    padding: 1px 6px;
    margin-right: 5px;
}
.wa-cal-tip-status.is-confirmed { background: var(--cal-blue); }
.wa-cal-tip-status.is-pending   { background: var(--cal-amber); }

/* ── Slide-over panels (Seasons / Settings / iCal) ───────────────────────────── */
.wa-cal-panel-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s;
}
.wa-cal-panel-overlay[aria-hidden="false"],
.wa-cal-panel-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}
.wa-cal-panel {
    background: var(--wag-surface);
    width: min(480px, 100vw);
    height: 100vh;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform .25s cubic-bezier(.4,0,.2,1);
    box-shadow: -8px 0 40px rgba(0,0,0,.15);
}
.wa-cal-panel-overlay.is-open .wa-cal-panel { transform: translateX(0); }
.wa-cal-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 22px;
    border-bottom: 1px solid var(--cal-border);
}
.wa-cal-panel-head h3 { margin: 0; font-size: 17px; font-weight: 700; color: #1e2d3d; }
.wa-cal-panel-close {
    background: #f3f4f6;
    border: none;
    border-radius: 50%;
    width: 30px; height: 30px;
    font-size: var(--wag-text-18);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: #1e2d3d;
    transition: background .15s;
}
.wa .wa-cal-panel-close:hover { background: #e2e8ef; }
.wa-cal-panel-body {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-16);
}

/* Seasons list */
.wa-seasons-list { display: flex; flex-direction: column; gap: var(--wag-space-8); margin-bottom: 8px; }
.wa-season-row {
    padding: 10px 12px;
    border: 1px solid var(--cal-border);
    border-radius: 10px;
    background: #f8f9fb;
    font-size: var(--wag-text-13);
    flex-wrap: wrap;
}
.wa-season-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.wa-season-name { flex: 1; min-width: 80px; }
.wa-season-range { color: #7a8a9a; font-size: var(--wag-text-12); }
.wa-season-price { font-weight: 700; color: var(--cal-green); margin-left: auto; }
/* Uso doble / individual de una temporada de precio fijo (2026-09-30). */
.wa-season-occ { display: block; margin-top: 2px; color: #7a8a9a; font-size: var(--wag-text-11); font-weight: 600; text-align: right; }
/* Recuadro «Con este precio / En esta temporada»: lo que queda para 2 y para 1. */
.wa-cal-occ-preview { margin-top: 10px; padding: 8px 11px; border: 1px solid #e1ebe4; border-radius: 9px; background: #f6faf7; }
.wa-cal-occ-preview[hidden] { display: none; }
.wa-cal-occ-preview .wa-cal-hint { margin: 0; }
.wa-cal-occ-title { margin-bottom: 3px; color: #6b7f74; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.wa-cal-occ-row { border-bottom-color: #e6efe9; }
/* Campos de precio propio de uso doble / individual (2026-09-30). */
.wa-cal-occ-field { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 6px 0 0; font-size: 12.5px; color: #5a6a7a; }
.wa-cal-occ-inp { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; }
.wa-cal-occ-inp .wa-cal-input { width: 96px; padding: 6px 8px; text-align: right; }
.wa-cal-occ-inp em { font-style: normal; font-weight: 700; color: #6b7f74; }
.wa-cal-occ-hint { margin: 6px 0 0 !important; font-size: 11.5px; }
.wa-cal-occ-field[hidden], [data-occ-inputs][hidden], .wa-cal-form-row[hidden] { display: none !important; }
html[data-theme="dark"] .wa-cal-occ-field { color: #b8c4cd; }
html[data-theme="dark"] .wa-cal-occ-inp em { color: #95d6a8; }
html[data-theme="dark"] .wa-season-occ { color: #93a0ab; }
html[data-theme="dark"] .wa-cal-occ-preview { background: #14271c; border-color: #2a4a37; }
html[data-theme="dark"] .wa-cal-occ-title { color: #95d6a8; }
html[data-theme="dark"] .wa-cal-occ-row { border-bottom-color: #22392b; color: #b8c4cd; }
html[data-theme="dark"] .wa-cal-occ-row strong { color: var(--wag-dark-ink); }
.wa-season-edit-btn, .wa-season-del-btn {
    border: none;
    border-radius: 7px;
    padding: 4px 10px;
    font-size: var(--wag-text-11);
    font-weight: 700;
    cursor: pointer;
}
.wa-season-edit-btn { background: #eff6ff; color: var(--cal-blue); }
.wa-season-del-btn  { background: #fee2e2; color: #991b1b; }
.wa-season-form { border-top: 1px solid var(--cal-border); }
.wa-season-form h4 { margin: 0 0 12px; font-size: var(--wag-text-14); font-weight: 700; }
.wa-cal-form-row { display: flex; flex-direction: column; gap: 5px; }
.wa-cal-form-row label { font-size: var(--wag-text-12); font-weight: 700; color: #5a6a7a; }
.wa-cal-range-row { display: flex; gap: 6px; }

/* Settings & iCal forms */
.wa-cal-hint { font-size: var(--wag-text-12); color: #7a8a9a; margin: 0 0 8px; line-height: 1.5; }
.wa-cal-empty-note { font-size: var(--wag-text-13); color: #94a3b8; text-align: center; padding: 16px 0; margin: 0; }

/* iCal panel */
.wa-ical-export-section, .wa-ical-import-section { display: flex; flex-direction: column; gap: var(--wag-space-8); }
.wa-ical-export-section h4, .wa-ical-import-section h4 { margin: 0; font-size: var(--wag-text-14); font-weight: 700; color: #1e2d3d; }
.wa-ical-url-row { display: flex; gap: var(--wag-space-8); }
.wa-ical-list { display: flex; flex-direction: column; gap: var(--wag-space-8); }
.wa-ical-row {
    display: flex;
    align-items: center;
    gap: var(--wag-space-8);
    padding: 10px 12px;
    border: 1px solid var(--cal-border);
    border-radius: 10px;
    background: #f8f9fb;
    font-size: var(--wag-text-13);
    flex-wrap: wrap;
}
.wa-ical-row-info { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wa-ical-row-info strong { font-weight: 700; font-size: var(--wag-text-13); }
.wa-ical-row-info small { font-size: var(--wag-text-11); color: #7a8a9a; }
.wa-ical-error { font-size: var(--wag-text-11); color: var(--cal-red); }
.wa-ical-sync-btn { background: #eff6ff; color: var(--cal-blue); border: none; border-radius: 7px; padding: 5px 10px; font-size: var(--wag-text-12); font-weight: 700; cursor: pointer; }
.wa-ical-add-form { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--cal-border); }

/* ── Flash toast ──────────────────────────────────────────────────────────────── */
#wa-cal-flash {
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    background: #1e2d3d;
    color: #fff;
    border-radius: 10px;
    padding: 11px 22px;
    font-size: var(--wag-text-13);
    font-weight: 700;
    z-index: 99999;
    pointer-events: none;
    transition: opacity .35s;
    white-space: nowrap;
    box-shadow: 0 6px 20px rgba(0,0,0,.2);
}
#wa-cal-flash.is-success { background: var(--cal-green); }
#wa-cal-flash.is-error   { background: var(--cal-red); }

.wa-cal-inventory-alert {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #e4a59e;
  border-radius: 10px;
  background: #fff3f1;
  color: #8f3028;
  font-size: var(--wag-text-13);
  font-weight: 700;
  line-height: 1.45;
}

/* ── Empty / no products ──────────────────────────────────────────────────────── */
.wa-cal-empty { font-size: var(--wag-text-13); color: #94a3b8; padding: 16px; line-height: 1.6; text-align: center; }
.wa-cal-empty a { color: var(--cal-green); font-weight: 700; text-decoration: none; }

/* ── Responsive ───────────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .wa-cal-layout { grid-template-columns: 200px 1fr; }
    .wa-cal-actions { position: fixed; right: 0; top: 0; height: 100vh; z-index: 500; box-shadow: -4px 0 24px rgba(0,0,0,.12); }
}
/* ── Móvil: el calendario en una sola columna ──────────────────────────────────
   Hasta ahora "la versión móvil" era esconder la barra lateral y poco más, y el
   resultado medido a 375px era que NO se veía el calendario: el panel de
   acciones es fixed a pantalla completa desde 1100px y se abre solo al elegir
   producto, así que tapaba la rejilla entera; la lista de productos estaba en
   display:none, o sea que con más de un producto no había forma de cambiar; y
   la rejilla medía 571px de ancho dentro de 341 disponibles. Las tres cosas se
   arreglan abajo, en ese orden. (Marc, 2026-09-13) */
@media (max-width: 768px) {
    /* El margen de fuera, no los de dentro: la tarjeta del panel pone 16px a
       cada lado y el calendario ya trae los suyos propios, así que la rejilla
       perdía 32px de ancho para nada.

       Se sale con margen negativo en vez de quitarle el padding a la tarjeta:
       el hero de esa misma tarjeta (.wildatlas-feature-band-hero-banner) ya usa
       ese -16px para llegar al borde, así que vaciar el padding lo empujaba
       fuera de la pantalla y aparecían 16px de scroll lateral. Mismo recurso
       que el vecino, y ningún hermano se entera. */
    body.wa-owner .wa-cal-wrap { margin-left: -16px; margin-right: -16px; }

    .wa-cal-layout { grid-template-columns: 1fr; }
    /* Las tres columnas son items de grid y traen min-width:auto, así que la
       fila de chips de abajo ensanchaba la columna entera hasta 565px sobre
       375 de pantalla y el calendario salía cortado por la derecha. Es el
       mismo min-width:auto que rompe las celdas, un nivel más arriba. */
    .wa-cal-layout > * { min-width: 0; }

    /* 1. Selector de producto: en vez de esconderlo, fila de chips que se
       arrastra con el dedo — el mismo gesto que los filtros del sitio. La
       lateral vuelve al flujo, encima del calendario. */
    .wa-cal-sidebar {
        display: flex; flex-direction: column;
        border-right: 0; border-bottom: 1px solid var(--cal-border);
        overflow: visible;
    }
    .wa-cal-sidebar-head { padding: 12px 16px 6px; }
    .wa-cal-product-list {
        display: flex; gap: var(--wag-space-8); padding: 0 16px 10px;
        overflow-x: auto; scrollbar-width: none;
    }
    .wa-cal-product-list::-webkit-scrollbar { display: none; }
    .wa-cal-product-item {
        flex: 0 0 auto; max-width: 70vw;
        border: 1px solid var(--cal-border); background: var(--wag-surface);
        padding: 8px 12px;
    }
    .wa-cal-product-item.is-active { border-color: var(--cal-green); }
    .wa-cal-product-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    /* Temporadas y ajustes, en fila: apilados se comían la mitad de la pantalla
       antes de llegar al calendario. */
    .wa-cal-sidebar-section { flex-direction: row; flex-wrap: wrap; padding: 10px 16px; }
    .wa-cal-sidebar .wa-cal-legend { display: none; }   /* la leyenda vive mejor bajo la rejilla */

    /* 2. El panel de acciones vuelve al FLUJO, debajo del calendario.
       Como hoja flotante a pantalla completa no había manera de cerrarlo: el
       aspa solo existe cuando hay días seleccionados
       (.wa-cal-actions:not(.has-selection) #wa-cal-clear-sel), así que en modo
       informativo tapaba el calendario sin salida. Los !important son para
       ganar al bloque "Fix 2" (:17936), que está más abajo en el fichero. */
    .wa-cal-actions {
        position: static !important;
        height: auto !important;
        max-height: none;
        width: auto;
        border-left: 0;
        border-top: 1px solid var(--cal-border);
        box-shadow: var(--wag-shadow-15) !important;
    }

    /* 3. Que la rejilla quepa. Las celdas son items de grid, y un item de grid
       trae min-width:auto: cada columna se ensanchaba hasta caber "€120" y
       "2 / 4 spots" enteros, y 7 columnas daban 571px sobre 341 de pantalla.
       Con min-width:0 mandan los 1fr, y las etiquetas se recortan en vez de
       empujar. */
    .wa-cal-main { padding: 14px 12px; }
    .wa-cal-grid { gap: 2px; }
    .wa-cal-cell { min-width: 0; min-height: 58px; padding: 5px 4px; }
    .wa-cal-price,
    .wa-cal-units,
    .wa-cal-bk-bar,
    .wa-cal-ext-bar {
        max-width: 100%;
        overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .wa-cal-price { font-size: var(--wag-text-11); }
    .wa-cal-units, .wa-cal-bk-bar, .wa-cal-ext-bar { font-size: 9.5px; }
}

/* ── WARS Calendar CSS Fixes (v3.4.1) ─────────────────────────────────────── */

/* Fix 1: Astra resets button colour + SVG fill globally.
   Force nav arrows to always be visible. */
.wa-cal-wrap .wa-cal-nav,
.wa-cal-wrap .wa-cal-nav:hover,
.wa .wa-cal-wrap .wa-cal-nav:focus {
    color: #1e2d3d !important;
    background-color: #f3f4f6 !important;
    border: none !important;
    box-shadow: var(--wag-shadow-15) !important;
    padding: 0 !important;
    width: 32px !important;
    height: 32px !important;
    min-height: unset !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.wa .wa-cal-wrap .wa-cal-nav:hover { background-color: #e2e8ef !important; }

/* Force SVG strokes — Astra may set svg { fill: currentColor } globally
   which turns polylines into filled blobs. */
.wa-cal-wrap svg {
    fill: none !important;
}
.wa-cal-wrap svg [stroke] {
    stroke: currentColor;
}
/* Exceptions: dots and coloured circles/fills inside the calendar */
.wa-cal-dot,
.wa-cal-dot.is-available,
.wa-cal-dot.is-confirmed,
.wa-cal-dot.is-pending,
.wa-cal-dot.is-blocked,
.wa-cal-dot.is-external,
.wa-season-dot,
#wa-cal-flash {
    fill: unset !important;
}

/* Fix 2: Action panel slide — overflow:hidden on .wa-cal-layout clips the
   translateX(100%) state. Switch to opacity+translateX combo so the column
   space is always reserved but panel fades in from a slight right offset. */
.wa-cal-actions[aria-hidden="false"],
.wa-cal-actions.is-open {
    transform: translateX(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Fix 3: Flash toast — start hidden, come above WP admin bar (z 99999) */
#wa-cal-flash {
    opacity: 0;
    z-index: 999999 !important;
    position: fixed !important;
    bottom: 28px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    transition: opacity .3s ease !important;
    pointer-events: none !important;
}

/* Fix 4: Panel overlay slide-over — ensure it always appears above Astra header */
.wa-cal-panel-overlay {
    z-index: 999998 !important;
}

/* Fix 5: Ghost buttons throughout — Astra might strip borders */
.wa-cal-wrap .wa-cal-btn-ghost,
.wa-cal-wrap .wa-cal-today-btn {
    border: 1px solid #e2e8ef !important;
    background: transparent !important;
    box-shadow: var(--wag-shadow-15) !important;
    text-decoration: none !important;
}
.wa .wa-cal-wrap .wa-cal-btn-ghost:hover { background: #eef1f4 !important; }
.wa .wa-cal-wrap .wa-cal-today-btn:hover { background: #f3f4f6 !important; }

/* Fix 6: Primary + block/unblock buttons — Astra anchor/button overrides */
.wa-cal-wrap .wa-cal-btn-primary {
    background: var(--cal-green, #3d9970) !important;
    color: #fff !important;
    border: none !important;
    text-decoration: none !important;
}
.wa-cal-wrap .wa-cal-btn-block   { background: #fee2e2 !important; color: #991b1b !important; border: none !important; }
.wa-cal-wrap .wa-cal-btn-unblock { background: #d1fae5 !important; color: #065f46 !important; border: none !important; }

/* ── WARS Calendar v3.4.2 — Always-visible info panel ──────────────────────── */

/* Right panel always visible — overrides the opacity:0 fix from v3.4.1 */
.wa-cal-actions {
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: none !important;
}

/* Distinct header label when showing info vs selection */
.wa-cal-action-head { flex-direction: column; align-items: flex-start; gap: var(--wag-space-4); }
.wa-cal-action-head #wa-cal-sel-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
/* Only show close btn when there's a selection */
.wa-cal-actions:not(.has-selection) #wa-cal-clear-sel { display: none !important; }

/* Info panel content */
.wa-info-divider {
    height: 1px;
    background: #e2e8ef;
    margin: 4px 0;
}
.wa-info-empty {
    font-size: var(--wag-text-13);
    color: #94a3b8;
    text-align: center;
    padding: 20px 0;
}

/* Selection mode: action body has distinct top separator */

/* ── WARS Calendar v3.4.3 — Info panel redesign + read-only tour rows ─────── */

/* Info panel: card-style sections like Airbnb */
.wa-cal-action-body { gap: 0; padding: 0; }

.wa-info-section {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-8);
    border-bottom: 1px solid #f1f5f9;
}
.wa-info-section:last-child { border-bottom: none; }

.wa-info-label {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .7px;
    color: #94a3b8;
    margin-bottom: 2px;
}
.wa-info-value { font-size: var(--wag-text-14); font-weight: 600; color: #1e2d3d; }

/* Big price display */
.wa-info-price {
    font-size: 28px !important;
    font-weight: 800 !important;
    color: #1e2d3d !important;
    line-height: 1.1;
    letter-spacing: -.5px;
}
.wa-info-price span {
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #94a3b8 !important;
    margin-left: 4px !important;
}

/* Row items: label + value on same line */
.wa-info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--wag-text-13);
    color: #5a6a7a;
    padding: 5px 0;
    border-bottom: 1px solid #f8fafc;
    gap: var(--wag-space-8);
}
.wa-info-row:last-child { border-bottom: none; }
.wa-info-row span { flex: 1; }
.wa-info-row strong {
    font-weight: 700;
    color: #1e2d3d;
    text-align: right;
    white-space: nowrap;
}

/* Divider between sections — replaced by border-bottom on .wa-info-section */
.wa-info-divider { display: none; }

/* Hint text */
.wa-info-hint {
    font-size: var(--wag-text-12);
    color: #94a3b8;
    line-height: 1.55;
    text-align: center;
    padding: 14px 18px;
    border-top: 1px solid #f1f5f9;
    background: #fafbfc;
}

/* Edit settings button */
.wa-info-settings-btn {
    margin: 0 18px 16px !important;
    font-size: 12px !important;
    color: #5a6a7a !important;
    justify-content: center !important;
    width: calc(100% - 36px) !important;
}

/* Panel head when showing product info (not selection) */
.wa-cal-action-head {
    padding: 16px 18px 12px;
    border-bottom: 1px solid #e2e8ef;
    background: var(--wag-surface);
}
.wa-cal-action-head #wa-cal-sel-label {
    font-size: var(--wag-text-14);
    font-weight: 700;
    color: #1e2d3d;
    line-height: 1.3;
}

/* Selection active: green header tint */
.wa-cal-actions.has-selection .wa-cal-action-head {
    background: #f0faf5;
    border-bottom-color: #c6e8d8;
}
.wa-cal-actions.has-selection #wa-cal-sel-label {
    font-size: var(--wag-text-13);
    color: var(--cal-green, #3d9970);
    font-weight: 700;
}

/* Action body when selection active: restore padding + gap */
.wa-cal-actions.has-selection .wa-cal-action-body {
    padding: 16px 18px;
    gap: var(--wag-space-16);
}

/* Read-only tour rows in Content tab */
.wa-admin-trow.is-readonly {
    opacity: .75;
    background: #fafbfc;
}
.wa-child-via {
    font-size: var(--wag-text-11);
    color: #94a3b8;
    font-weight: 400;
    margin-left: 6px;
}
.wa-child-readonly-badge {
    font-size: var(--wag-text-11);
    background: #f1f5f9;
    color: #64748b;
    border-radius: 5px;
    padding: 3px 8px;
    font-weight: 600;
    white-space: nowrap;
}

/* ── WARS v2 — Booking row: no-show / modify / log (v3.5.0) ─────────────────── */

/* Modify inline form */
.wa-bk-modify-form {
    background: #f5f8fb;
    border-radius: 10px;
    padding: 12px 14px;
    margin: 8px 0 4px;
    border: 1px solid #dde4ec;
}
.wa-bk-modify-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
.wa-bk-modify-fields label {
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-4);
    font-size: var(--wag-text-12);
    color: #5a6a7e;
    font-weight: 500;
}
.wa-bk-modify-fields input {
    border: 1px solid var(--wag-type-field-booking-line, var(--wag-style-field-booking-line));
    border-radius: var(--wag-type-field-booking-radius, var(--wag-style-field-booking-radius));
    padding: 5px 8px;
    font-size: var(--wag-text-13);
    color: var(--wag-type-field-booking-ink, var(--wag-style-field-booking-ink));
    background: var(--wag-surface);
    width: 130px;
}
.wa-bk-modify-fields input[type="number"] { width: 70px; }
.wa-bk-mod-msg {
    font-size: var(--wag-text-12);
    color: #1a7a4a;
    font-weight: 600;
}

/* Audit log per booking row */
.wa-bk-log {
    margin: 6px 0 2px;
}
.wa-bk-log summary {
    font-size: var(--wag-text-12);
    color: #7a8fa8;
    cursor: pointer;
    padding: 2px 0;
    list-style: none;
    display: flex;
    align-items: center;
    gap: var(--wag-space-4);
    user-select: none;
}
.wa-bk-log summary::before { content: '\25B8'; font-size: 10px; transition: transform .15s; }
.wa-bk-log[open] summary::before { transform: rotate(90deg); }
.wa-bk-log-body {
    display: flex;
    flex-direction: column;
    gap: var(--wag-space-4);
    margin-top: 6px;
    padding-left: 12px;
    border-left: 2px solid #e2eaf2;
}
.wa-bk-log-row {
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.wa-bk-log-evt {
    font-size: var(--wag-text-12);
    font-weight: 600;
    color: #2d3f52;
}
.wa-bk-log-meta {
    font-size: var(--wag-text-11);
    color: #8a9bb0;
}
.wa-bk-log-note {
    font-size: var(--wag-text-11);
    color: #5a7090;
    font-style: italic;
    margin-top: 1px;
}

/* ── WARS: booking row — full-width subrows within flex container ────────────── */
.wa-bk-modify-form,
.wa-bk-log { flex-basis: 100%; }

/* ============================================================
   COUNTRY HOTSPOTS FULL — wrapper min-height + region selector
   ============================================================ */
/* Keep the white content area tall even when filter hides all cards */
.species-hotspots-wrapper.country-hotspots-full {
    min-height: 420px;
}


/* Active (non-default) state — green tint */


/* ============================================================
   NEARBY CROSS-LINK — [nearby_stays] / [nearby_hides]
   ============================================================ */
.wa-nearby-grid {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
    gap: var(--wag-space-24);
    margin-top: 16px;
}
.wa-tour-meta-item.wa-nearby-dist {
    color: var(--wag-accent);
    font-weight: 700;
}

/* ============================================================
   EMAIL VERIFICATION BANNER + AUTH TOAST
   ============================================================ */

/* Amber bar: shown at the very top of the viewport for unverified users */
.wa-verify-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    background: #fef3c7;
    border-bottom: 1px solid #f59e0b;
    color: #78350f;
    font-family: -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    font-size: var(--wag-text-13);
    line-height: 1.4;
}
.wa-verify-banner[hidden] { display: none; }
/* Con el aviso visible, todo baja lo que mide (auth.js pone --wa-verify-h). */
body.wa-has-verify { margin-top: var(--wa-verify-h, 0px); }
.wa-verify-shift { translate: 0 var(--wa-verify-h, 0px); }
.wa-verify-banner { z-index: 100001; box-sizing: border-box; }
.wa-verify-banner-ico { flex-shrink: 0; color: #d97706; }
.wa-verify-banner-text { flex: 1; }
.wa-verify-resend-btn {
    flex-shrink: 0;
    background: #f59e0b;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 5px 12px;
    font-size: var(--wag-text-12);
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s;
}
.wa .wa-verify-resend-btn:hover:not(:disabled) { background: #d97706; }
.wa-verify-resend-btn:disabled { opacity: .65; cursor: default; }
.wa-verify-banner-close {
    flex-shrink: 0;
    background: none;
    border: none;
    color: #92400e;
    font-size: var(--wag-text-20);
    line-height: 1;
    cursor: pointer;
    padding: 0 2px;
}
.wa .wa-verify-banner-close:hover { color: #78350f; }

/* Auth toast: bottom-center floating notification */
.wa-auth-toast {
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 99999;
    padding: 11px 20px;
    border-radius: 10px;
    font-family: -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    font-size: var(--wag-text-14);
    font-weight: 500;
    white-space: nowrap;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    pointer-events: none;
    animation: wa-toast-in .2s ease;
}
.wa-auth-toast[hidden] { display: none; }
.wa-auth-toast--success { background: #1f8a52; color: #fff; }
.wa-auth-toast--error   { background: #dc2626; color: #fff; }
@keyframes wa-toast-in {
    from { opacity: 0; transform: translateX(-50%) translateY(8px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
@media (max-width: 600px) {
    /* Móvil: icono + texto en la primera línea; reenviar y cerrar debajo. */
    .wa-verify-banner { flex-wrap: wrap; row-gap: var(--wag-space-8); }
    .wa-verify-banner-text { flex: 1 1 calc(100% - 26px); }
    .wa-verify-banner-close { margin-left: auto; }
    .wa-auth-toast { white-space: normal; max-width: 90vw; text-align: center; }
}

/* ── TRIP ITINERARY TIMELINE (single-tour.php) ─────────────────────────── */
.wa-tour-itinerary {
    margin-top: 0;
    background: var(--wag-type-tour-itinerary-bg, var(--wag-style-tour-itinerary-bg));
    border-radius: var(--wag-radius-24);
    padding: 32px 28px 28px;
    border: 1px solid var(--wag-type-tour-itinerary-line, var(--wag-style-tour-itinerary-line));
}

html[data-theme="dark"] .wa-tour-itinerary {background: var(--wag-type-tour-itinerary-dark-bg, var(--wag-style-tour-itinerary-dark-bg)); border: 1px solid var(--wag-type-tour-itinerary-dark-line, var(--wag-style-tour-itinerary-dark-line));}
html[data-theme="dark"] .wa-tour-day-card {background: var(--wag-type-tour-day-card-dark-bg, var(--wag-style-tour-day-card-dark-bg)); color:var(--wag-type-tour-day-card-dark-ink, var(--wag-style-tour-day-card-dark-ink));}

.wa-tour-itinerary > .tour-section-label {
    margin-bottom: 28px;
    font-size: var(--wag-text-11);
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--wag-type-tour-section-label-ink, var(--wag-style-tour-section-label-ink));
    font-weight: 700;
}

/* ── Timeline column ── */
.wa-tour-timeline {
    display: flex;
    flex-direction: column;
}

/* Each day: node on the left, card on the right */
.wa-tour-day {
    display: flex;
    align-items: flex-start;
    gap: 22px;
    position: relative;
    padding-bottom: 20px;
}
.wa-tour-day:last-child { padding-bottom: 0; }

/* Connector line between nodes (drawn on each non-last day) */
.wa-tour-day:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 21px;  /* half of 44px node */
    top: 44px;   /* bottom of node */
    bottom: 0;
    width: 2px;
    background: repeating-linear-gradient(
        to bottom,
        #4a9d6f 0, #4a9d6f 5px,
        transparent 5px, transparent 11px
    );
    opacity: .45;
    z-index: 0;
}

/* ── Node (circle with DAY + number) ── */
.wa-tour-day-node {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--wag-type-tour-day-node-radius, var(--wag-style-tour-day-node-radius));
    background: linear-gradient(145deg, #34a368 0%, #56c48b 100%);
    color: var(--wag-type-tour-day-node-ink, var(--wag-style-tour-day-node-ink));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    position: relative;
    z-index: 1;
    /* outer glow ring */
    box-shadow: 0 0 0 5px rgba(74,184,122,.15), 0 5px 16px rgba(45,138,89,.32);
}
/* "DAY" micro-label */
.wa-tour-day-node::before {
    content: 'DAY';
    display: block;
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: 1px;
    opacity: .88;
    line-height: 1;
}
.wa-tour-day-num {
    font-size: var(--wag-text-16);
    font-weight: 900;
    line-height: 1;
}

/* Last node: darker endpoint */
.wa-tour-day:last-child .wa-tour-day-node {
    background: var(--wag-type-tour-day-node-bg, var(--wag-style-tour-day-node-bg));
    box-shadow: var(--wag-type-tour-day-node-shadow, var(--wag-style-tour-day-node-shadow));
}

/* ── Card ── */
.wa-tour-day-card {
    flex: 1;
    background: var(--wag-surface);
    border-radius: 18px;
    padding: 18px 22px 16px;
    box-shadow: var(--wag-type-tour-day-card-shadow, var(--wag-style-tour-day-card-shadow));
    transition: transform .22s ease, box-shadow .22s ease;
    position: relative;
    overflow: hidden;
}
/* Green accent bar at top of card */
.wa-tour-day-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #2d8a59 0%, #88d4a8 100%);
    border-radius: 18px 18px 0 0;
}
.wa .wa-tour-day-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--wag-type-tour-day-card-hover-shadow, var(--wag-style-tour-day-card-hover-shadow));
}

/* Title inside card */
.wa-tour-day-title {
    font-size: var(--wag-text-16);
    font-weight: 700;
    color: var(--wag-type-tour-day-title-ink, var(--wag-style-tour-day-title-ink));
    margin: 0 0 12px;
}

/* Activity list — arrow icons instead of bullets */
.wa-tour-day-activities {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.wa-tour-day-activities li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: var(--wag-text-14);
    color: #4a5a6a;
    line-height: 1.5;
}
.wa-tour-day-activities li::before {
    content: '▸';
    color: #4a9d6f;
    font-size: var(--wag-text-11);
    font-weight: 900;
    flex-shrink: 0;
    margin-top: 3px;
}

/* Mobile */
@media (max-width: 640px) {
    .wa-tour-itinerary { padding: 20px 16px 20px; border-radius: var(--wag-type-tour-itinerary-radius, var(--wag-style-tour-itinerary-radius)); }
    .wa-tour-day { gap: 14px; padding-bottom: 16px; }
    .wa-tour-day:not(:last-child)::before { left: 17px; }
    .wa-tour-day-node { width: 36px; height: 36px; }
    .wa-tour-day-node::before { font-size: 5.5px; }
    .wa-tour-day-num { font-size: var(--wag-text-14); }
    .wa-tour-day-card { padding: 14px 16px 12px; border-radius: var(--wag-type-tour-day-card-radius, var(--wag-style-tour-day-card-radius)); }
    .wa-tour-day-title { font-size: 15px; }
    .wa-tour-day-activities li { font-size: var(--wag-text-13); }
}

/* ── FLEXIBLE BOOKING WIDGET ─────────────────────────────────────────────── */
.wa-bk-dates--flexible { flex-direction: column; gap: 6px; }
.wa-bk-duration-info {
    display: flex;
    align-items: center;
    gap: var(--wag-space-8);
    font-size: var(--wag-text-13);
    color: var(--wag-type-bk-duration-info-ink, var(--wag-style-bk-duration-info-ink));
    background: var(--wag-type-bk-duration-info-bg, var(--wag-style-bk-duration-info-bg));
    border: 1px solid var(--wag-type-bk-duration-info-line, var(--wag-style-bk-duration-info-line));
    border-radius: var(--wag-radius-8);
    padding: 8px 12px;
    margin-top: 4px;
}
.wa-bk-duration-icon { font-size: var(--wag-text-14); }
.wa-bk-end-computed {
    font-style: italic;
    color: var(--wag-type-bk-end-computed-ink, var(--wag-style-bk-end-computed-ink));
}

/* ── CUSTOM TRIPS ─────────────────────────────────────────────────────────── */

/* Backdrop alias (used by CT modal) */
.wa-modal-backdrop {
    position: absolute;
    inset: 0;
    background: var(--wag-type-modal-backdrop-bg, var(--wag-style-modal-backdrop-bg));
    cursor: pointer;
}
/* Close button alias */
.wa-modal-close {
    position: absolute;
    top: 14px; right: 18px;
    background: none;
    border: none;
    font-size: var(--wag-text-24);
    color: var(--wag-type-modal-close-ink, var(--wag-style-modal-close-ink));
    cursor: pointer;
    line-height: 1;
    padding: 4px 8px;
    transition: color .15s;
}
.wa .wa-modal-close:hover { color: var(--wag-type-modal-close-hover-ink, var(--wag-style-modal-close-hover-ink)); }

/* Entry card — sits above the tour grid */
.wa-ct-entry {
    margin-bottom: 22px;
    padding: 16px 22px;
    background: var(--wag-type-ct-entry-bg, var(--wag-style-ct-entry-bg));
    border: 1.5px solid var(--wag-type-ct-entry-line, var(--wag-style-ct-entry-line));
    border-radius: var(--wag-type-ct-entry-radius, var(--wag-style-ct-entry-radius));
}
.wa-ct-entry-inner {
    display: flex;
    align-items: center;
    gap: var(--wag-space-20);
    flex-wrap: wrap;
}
.wa-ct-entry-text {
    flex: 1 1 240px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.wa-ct-entry-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--wag-type-ct-entry-title-ink, var(--wag-style-ct-entry-title-ink));
}
.wa-ct-entry-desc {
    font-size: var(--wag-text-13);
    color: var(--wag-type-ct-entry-desc-ink, var(--wag-style-ct-entry-desc-ink));
    line-height: 1.45;
}
.wa-ct-entry-btn {
    flex-shrink: 0;
    background: var(--wag-type-custom-trip-bg, var(--wag-style-relleno-marca-bg));
    color: var(--wag-type-custom-trip-ink, var(--wag-style-relleno-marca-ink));
    border: none;
    border-radius: var(--wag-type-custom-trip-radius, var(--wag-style-relleno-marca-radius));
    padding: 10px 20px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background .18s, transform .12s;
    white-space: nowrap;
}
.wa .wa-ct-entry-btn:hover,
.wa .wa-ct-entry-btn:focus {
    /* Astra aplica el color de botón del Customizer en :hover con !important
       (mismo "otro problema de astra-child" que .load-more-btn/.wa-contact-cta-btn)
       — sin bloquear color y background aquí, el texto se vuelve oscuro. */
    background: var(--wag-type-custom-trip-hover-bg, var(--wag-style-relleno-marca-hover-bg)) !important;
    color: var(--wag-type-custom-trip-hover-ink, var(--wag-style-relleno-marca-hover-ink)) !important;
    transform: translateY(-1px);
}

/* Modal box — wider than default 540px */
.wa-ct-modal-box {
    width: min(720px, 96vw);
    padding: 36px 40px 32px;
}
.wa-ct-modal-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--wag-type-ct-modal-title-ink, var(--wag-style-ct-modal-title-ink));
    margin: 0 0 4px;
    line-height: 1.2;
}
.wa-ct-modal-sub {
    font-size: var(--wag-text-14);
    color: var(--wag-type-ct-modal-sub-ink, var(--wag-style-ct-modal-sub-ink));
    margin: 0 0 22px;
}

/* Form rows */
.wa-ct-row {
    margin-bottom: 16px;
}
.wa-ct-row--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.wa-ct-row--3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
}

/* Fields */
.wa-ct-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.wa-ct-field label,
#wa-ct-form label {
    font-size: 12.5px;
    font-weight: 600;
    color: #444;
    line-height: 1.3;
}
.wa-ct-field input[type="text"],
.wa-ct-field input[type="number"],
.wa-ct-field select,
.wa-ct-field textarea,
#wa-ct-form input[type="text"],
#wa-ct-form input[type="number"],
#wa-ct-form select,
#wa-ct-form textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid var(--wag-type-field-custom-trip-line, var(--wag-style-field-custom-trip-line));
    border-radius: var(--wag-radius-8);
    font-size: 13.5px;
    color: var(--wag-type-field-custom-trip-ink, var(--wag-style-field-custom-trip-ink));
    background: var(--wag-surface);
    transition: border-color .15s;
    box-sizing: border-box;
}
.wa-ct-field input:focus,
.wa-ct-field select:focus,
.wa-ct-field textarea:focus,
#wa-ct-form input:focus,
#wa-ct-form select:focus,
.wa #wa-ct-form textarea:focus {
    outline: none;
    border-color: var(--wag-type-field-custom-trip-focus-line, var(--wag-style-field-custom-trip-focus-line));
    box-shadow: var(--wag-type-field-custom-trip-focus-shadow, var(--wag-style-field-custom-trip-focus-shadow));
}

/* Checkbox field */
.wa-ct-field--check {
    justify-content: flex-end;
    padding-bottom: 2px;
}
.wa-ct-flex-label {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    font-size: var(--wag-text-13);
    color: var(--wag-type-ct-flex-label-ink, var(--wag-style-ct-flex-label-ink));
    font-weight: 500;
}
.wa-ct-flex-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: #1a6a3a;
    cursor: pointer;
}

/* Species autocomplete wrapper */
/* Bird/Mammal filter toggle (segmented) */
.wa-ct-species-filter {
    display: inline-flex; gap: var(--wag-space-4); margin-bottom: 8px;
    background: #f1f5f2; border: 1px solid #dde7e0; border-radius: 10px; padding: 3px;
}
.wa-ct-sp-filter {
    border: none; background: transparent; cursor: pointer;
    font-size: 12.5px; font-weight: 700; color: #5a6b60;
    padding: 5px 12px; border-radius: var(--wag-radius-8); transition: background .12s, color .12s;
}
.wa .wa-ct-sp-filter:hover { color: #1a7a4a; }
.wa-ct-sp-filter.is-active { background: var(--wag-surface); color: #1a7a4a; box-shadow: 0 1px 2px rgba(20,40,60,.08); }

.wa-ct-species-wrap {
    position: relative;
}
.wa-ct-species-wrap input {
    width: 100%;
}

/* Species chips */
.wa-ct-species-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    min-height: 0;
}
.wa-ct-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #e8f4ec;
    border: 1px solid #b8ddc8;
    color: #1a4a2a;
    border-radius: var(--wag-radius-20);
    padding: 3px 10px 3px 12px;
    font-size: 12.5px;
    font-weight: 500;
}
.wa-ct-chip-rm {
    background: none;
    border: none;
    color: #4a7a5a;
    cursor: pointer;
    font-size: var(--wag-text-14);
    line-height: 1;
    padding: 0 2px;
    transition: color .12s;
}
.wa .wa-ct-chip-rm:hover { color: #c0392b; }

/* CT species suggest — uses wa-search-panel/row classes, needs z-index above modal */
#wa-ct-species-suggest.wa-search-panel { z-index: 999999; }

/* Submit row */
.wa-ct-actions {
    margin-top: 20px;
    display: flex;
    justify-content: flex-end;
}
.wa-ct-submit:not(.wag-btn) {
    background: var(--wag-type-ct-submit-bg, var(--wag-style-ct-submit-bg));
    color: var(--wag-type-ct-submit-ink, var(--wag-style-ct-submit-ink));
    border: none;
    border-radius: var(--wag-type-ct-submit-radius, var(--wag-style-ct-submit-radius));
    padding: 11px 28px;
    font-size: var(--wag-text-14);
    font-weight: 600;
    cursor: pointer;
    transition: background .18s;
}
.wa .wa-ct-submit:not(.wag-btn):hover:not(:disabled),
.wa .wa-ct-submit:not(.wag-btn):focus:not(:disabled) {
    background: var(--wag-type-ct-submit-hover-bg, var(--wag-style-ct-submit-hover-bg)) !important;
    color: var(--wag-type-ct-submit-hover-ink, var(--wag-style-ct-submit-hover-ink)) !important;
}
.wa-ct-submit:not(.wag-btn):disabled { opacity: .6; cursor: default; }

/* Feedback */
.wa-ct-feedback {
    font-size: var(--wag-text-13);
    color: var(--wag-type-ct-feedback-ink, var(--wag-style-ct-feedback-ink));
    background: var(--wag-type-ct-feedback-bg, var(--wag-style-ct-feedback-bg));
    border: 1px solid var(--wag-type-ct-feedback-line, var(--wag-style-ct-feedback-line));
    border-radius: var(--wag-type-ct-feedback-radius, var(--wag-style-ct-feedback-radius));
    padding: 9px 13px;
    margin-top: 12px;
    line-height: 1.4;
}
.wa-ct-feedback[hidden] { display: none; }

/* Required asterisk */
.wa-ct-req {
    color: var(--wag-type-ct-req-ink, var(--wag-style-ct-req-ink));
    margin-left: 2px;
}

/* Success state */
.wa-ct-success-inner {
    text-align: center;
    padding: 40px 20px;
}
.wa-ct-success-ico {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
    line-height: 1;
}
.wa-ct-success-inner h3 {
    font-size: 22px;
    font-weight: 700;
    color: #111;
    margin: 0 0 10px;
}
.wa-ct-success-inner p {
    font-size: 14.5px;
    color: #555;
    line-height: 1.55;
    margin: 0;
}

/* Owner dashboard toggle feedback */
.wa-ct-toggle-msg {
    font-size: 12.5px;
    color: #1a6a3a;
    margin-left: 8px;
}

/* Responsive */
@media (max-width: 680px) {
    .wa-ct-row--2,
    .wa-ct-row--3 { grid-template-columns: 1fr; }
    .wa-ct-modal-box { padding: 24px 18px 20px; }
    .wa-ct-entry-inner { flex-direction: column; align-items: flex-start; }
    /* El texto lleva `flex: 1 1 240px`, pensado para la fila: ahí 240px es un
       ANCHO mínimo. Al girar la columna a vertical, flex-basis pasa a medir el
       eje vertical y esos 240px se convierten en una ALTURA mínima — de ahí el
       recuadro enorme con el botón despegado al fondo. En columna la caja debe
       medir lo que mida su contenido. */
    .wa-ct-entry-text { flex: 0 0 auto; }
    .wa-ct-entry-btn { width: 100%; text-align: center; }
}

/* ── CT Proposal Banner ───────────────────────────────────────────────────── */
.wa-ct-proposal-banner { margin:0 -20px; padding:10px 20px; font-size:var(--wag-text-13); line-height:1.5; border-bottom:1px solid rgba(0,0,0,.08); }
.wa-ct-proposal-banner--traveller { background:#eef7f1; color:#1a4a2a; }
.wa-ct-proposal-banner--owner { background:#faf5e4; color:#5a4200; }

/* ── CT Action Bar ───────────────────────────────────────────────────────── */
.wa-ct-action-bar { margin-top:4px; border:1.5px solid #c0dfd0; }
.wa-ct-action-bar-title { font-size:var(--wag-text-14); font-weight:700; color:#46505f; text-transform:uppercase; letter-spacing:.06em; margin:0 0 14px; }
.wa-ct-action-btns { display:flex; flex-direction:column; gap:var(--wag-space-8); margin-bottom:6px; }
.wa-ct-action-btns button { display:block; width:100%; border:none; border-radius:10px; padding:12px 20px; font-size:var(--wag-text-14); font-weight:700; cursor:pointer; transition:background .15s, opacity .15s; text-align:center; letter-spacing:.01em; }
.wa-ct-accept-btn  { background:#1a6a3a; color:#fff; }
.wa .wa-ct-accept-btn:hover { background:#14552f; }
.wa-ct-changes-btn { background:#eef3fa; color:#1a4a7a; border:1.5px solid #c5d5ea; }
.wa .wa-ct-changes-btn:hover { background:#dde8f5; }
.wa-ct-decline-btn { background:var(--wag-surface); color:#888; border:1.5px solid #e0e4e8; font-weight:600; }
.wa .wa-ct-decline-btn:hover { color:#b3422b; border-color:#e8c5c0; background:#fdf5f4; }
.wa-ct-action-msg { font-size:var(--wag-text-13); color:#c0392b; }
.wa-ct-accept-form, .wa-ct-changes-form { margin-top:14px; padding:14px 16px; background:var(--wag-surface); border:1px solid #d0e8da; border-radius:10px; }
.wa-ct-accept-form-label { font-size:var(--wag-text-13); font-weight:600; color:#1e2d3d; margin:0 0 10px; display:block; }
.wa-ct-confirm-dates-btn { background:#1a7a4a; color:#fff; border:none; border-radius:var(--wag-radius-8); padding:8px 16px; font-size:var(--wag-text-13); font-weight:700; cursor:pointer; }
.wa-ct-changes-form textarea { display:block; width:100%; box-sizing:border-box; border:1px solid #d1d9e0; border-radius:7px; padding:8px 10px; font-size:var(--wag-text-13); resize:vertical; }
.wa-ct-changes-submit { background:#1a4a7a; color:#fff; border:none; border-radius:var(--wag-radius-8); padding:8px 16px; font-size:var(--wag-text-13); font-weight:700; cursor:pointer; margin-top:8px; }
/* Legacy — kept for backward compat, no longer generated */


/* CT Proposal card — standalone box in traveller profile bookings */
.wa-ct-proposal-card { display:flex; align-items:center; gap:14px; background:#eef7f1; border:1.5px solid #2aab66; border-radius:14px; padding:14px 18px; margin-bottom:12px; }
.wa-ct-proposal-card--waiting { background:#fffbea; border-color:#e0c020; align-items:flex-start; }
.wa-ct-proposal-card-icon { font-size:28px; flex-shrink:0; line-height:1; }
.wa-ct-proposal-card-body { flex:1; display:flex; flex-direction:column; gap:2px; }
.wa-ct-proposal-card-title { font-size:var(--wag-text-14); font-weight:700; color:#1a3a2a; }
.wa-ct-proposal-card-sub { font-size:12.5px; color:#3a6a4a; }
.wa-ct-proposal-card-btn { display:inline-block; background:#1a6a3a; color:#fff; border-radius:var(--wag-radius-8); padding:9px 18px; font-size:var(--wag-text-13); font-weight:700; text-decoration:none; white-space:nowrap; flex-shrink:0; }
.wa .wa-ct-proposal-card-btn:hover { background:#14552f; color:#fff; }
@media (max-width:680px) {
    .wa-ct-action-bar { padding:18px 16px 14px; }
}

/* =========================
   #1 — Community Species Season
========================= */
.wa-season-comm { margin-top: 22px; }


.wa-season-add-toggle { border: 1px solid var(--wa-line, #e2e8ef); background: var(--wa-card, #fff); color: var(--wa-ink, #1a1e24); font-size: var(--wag-text-13); font-weight: 700; padding: 8px 14px; border-radius: var(--wag-radius-999); cursor: pointer; }
.wa .wa-season-add-toggle:hover { border-color: #c2ccd6; }
html[data-theme="dark"] .wa-season-add-toggle { background: var(--wag-dark-surface); border-color: #2a313a; color: var(--wag-dark-ink); }

.wa-season-form { margin-top: 14px; padding: 14px; border: 1px solid var(--wa-line, #e6ebf0); border-radius: 14px; background: var(--wa-soft, #f7f9fb); }
html[data-theme="dark"] .wa-season-form { background: #161b22; border-color: #2a313a; }
.wa-season-form-hint { font-size: 12.5px; color: #76828f; margin: 0 0 10px; }
.wa-season-search-panel { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 60; background: var(--wa-card, #fff); border: 1px solid var(--wa-line, #e6ebf0); border-radius: var(--wag-radius-12); overflow-y: auto; padding: 6px; }
html[data-theme="dark"] .wa-season-search-panel { background: var(--wag-dark-surface); border-color: #2a313a; }
.wa-season-search-panel[hidden] { display: none; }
.wa-season-opt { width: 100%; border: 0; background: transparent; padding: 8px 10px; border-radius: 9px; cursor: pointer; text-align: left; font-size: var(--wag-text-14); color: var(--wa-ink, #1a1e24); }
.wa .wa-season-opt:hover { background: var(--wa-soft, #f3f6f9); }
html[data-theme="dark"] .wa-season-opt { color: #dbe2e8; }
html[data-theme="dark"] .wa-season-opt:hover { background: #232a32; }
.wa-season-opt-t em { color: #8a95a3; font-size: 12.5px; }
.wa-season-picked { margin-top: 8px; font-size: var(--wag-text-13); font-weight: 700; color: #2e8b62; }
.wa-season-picked[hidden] { display: none; }
.wa-season-months { flex-wrap: wrap; }
.wa-season-mon { border: 1px solid var(--wa-line, #e2e8ef); background: var(--wa-card, #fff); color: var(--wa-ink, #2a3038); font-size: 12.5px; font-weight: 700; padding: 7px 11px; border-radius: var(--wag-radius-999); cursor: pointer; }
.wa-season-mon.is-on { background: #2e8b62; border-color: #2e8b62; color: #fff; }
html[data-theme="dark"] .wa-season-mon { background: var(--wag-dark-surface); border-color: #2a313a; color: #cdd5dd; }
html[data-theme="dark"] .wa-season-mon.is-on { background: #2e8b62; border-color: #2e8b62; color: #fff; }
.wa-season-form-actions { display: flex; align-items: center; gap: var(--wag-space-12); margin-top: 14px; }
/* !important en ambos estados — Marc, 2026-08-04: el botón se veía siempre
   gris/apagado (parecía roto) porque el estado "activo" no se distinguía con
   suficiente fuerza del "disabled" en este panel (mismo tipo de pelea de
   especificidad contra Astra que el resto de botones .wa-* de este audit). */
.wa-season-submit:not(.wag-btn) {
    background: var(--wa-ink, #1a1e24) !important; color: #fff !important; border: 0 !important;
    font-size: var(--wag-text-14); font-weight: 700; padding: 10px 18px; border-radius: 10px;
    cursor: pointer !important; opacity: 1 !important;
}
.wa-season-submit:not(.wag-btn):disabled {
    background: #c7ccd2 !important; color: #6b7480 !important;
    opacity: 1 !important; cursor: not-allowed !important;
}


.wa-season-badge { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; padding: 3px 8px; border-radius: var(--wag-radius-999); background: #eef1f4; color: #76828f; }
.wa-season-badge--ok { background: rgba(46,139,98,.14); color: #2e8b62; }
html[data-theme="dark"] .wa-season-badge { background: #232a32; color: #93a0ab; }


.wa-season-rm { border: 0; background: transparent; color: #b3422b; font-size: var(--wag-text-18); line-height: 1; cursor: pointer; padding: 0 4px; }

/* #1 — Report button in the season filter row + contact-style popup */
.wa-season-report-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--wa-line, #e2e8ef); background: var(--wa-ink, #1a1e24); color: var(--wag-type-season-report-ink, var(--wag-style-pildora-noche-ink)); font-size: var(--wag-text-13); font-weight: 700; padding: 8px 14px; border-radius: var(--wag-radius-999); cursor: pointer; white-space: nowrap; }
.wa .wa-season-report-btn:hover { opacity: .92; }
.wa-season-report-btn svg { flex: 0 0 auto; }
html[data-theme="dark"] .wa-season-report-btn { background: var(--wag-dark-ink); color: var(--wag-type-season-report-dark-ink, var(--wag-style-pildora-noche-dark-ink)); border-color: var(--wag-dark-ink); }


.wa-season-modal { position: fixed; inset: 0; z-index: 100050; display: flex; align-items: center; justify-content: center; padding: 20px; }
.wa-season-modal[hidden] { display: none; }
.wa-season-modal-overlay { position: absolute; inset: 0; background: rgba(12,17,24,.55); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.wa-season-modal-card { position: relative; z-index: 1; width: 100%; overflow-y: auto; background: var(--wa-card, #fff); border-radius: 18px; box-shadow: 0 30px 80px rgba(10,18,30,.4); }
html[data-theme="dark"] .wa-season-modal-card { background: #161b22; }
.wa-season-modal-close { position: absolute; top: 12px; right: 14px; border: 0; background: transparent; font-size: 26px; line-height: 1; color: #9aa6b2; cursor: pointer; }
.wa-season-modal-title { font-size: 19px; font-weight: 800; margin: 0 0 14px; color: var(--wa-ink, #1a1e24); }
html[data-theme="dark"] .wa-season-modal-title { color: var(--wag-dark-ink); }
.wa-season-modal .wa-season-form { margin-top: 0; padding: 0; border: 0; background: transparent; }
body.wa-season-modal-open { overflow: hidden; }

/* #1 — Premium modal search + Birds/Mammals filter */
.wa-season-kind { display: inline-flex; gap: var(--wag-space-4); padding: 4px; background: var(--wa-soft, #f1f4f7); border-radius: var(--wag-radius-999); margin-bottom: 12px; }
html[data-theme="dark"] .wa-season-kind { background: #0f141a; }
.wa-season-kind-btn { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; color: #6b7683; font-size: 12.5px; font-weight: 700; padding: 7px 14px; border-radius: var(--wag-radius-999); cursor: pointer; transition: background .15s ease, color .15s ease; }
.wa .wa-season-kind-btn:hover { color: var(--wa-ink, #1a1e24); }
.wa-season-kind-btn.is-active { background: var(--wa-card, #fff); color: var(--wa-ink, #1a1e24); box-shadow: 0 1px 4px rgba(20,30,45,.12); }
html[data-theme="dark"] .wa-season-kind-btn.is-active { background: #232a32; color: var(--wag-dark-ink); }
.wa-season-kind-btn svg { flex: 0 0 auto; }

.wa-season-search-ico { position: absolute; top: 50%; transform: translateY(-50%); color: #9aa6b2; pointer-events: none; }
.wa-season-search-spin { position: absolute; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; border: 2px solid #d7dee6; border-top-color: #4fadd4; border-radius: 50%; animation: wa-search-spin .7s linear infinite; }
.wa-season-search-spin[hidden] { display: none; }

.wa-season-opt { display: flex; align-items: center; gap: var(--wag-space-12); }
.wa-season-opt-th { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 9px; background-size: cover; background-position: center; background-color: #e9eef3; }
html[data-theme="dark"] .wa-season-opt-th { background-color: #11161c; }
.wa-season-opt-th--none { background-image: linear-gradient(135deg,#e9eef3,#dfe6ee); }
.wa-season-opt-t { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.wa-season-opt-en { font-weight: 700; font-size: var(--wag-text-14); color: var(--wa-ink, #1a1e24); }
html[data-theme="dark"] .wa-season-opt-en { color: var(--wag-dark-ink); }
.wa-season-opt-sci { font-style: italic; font-size: var(--wag-text-12); color: #8a95a3; }
.wa-season-opt-es { font-size: var(--wag-text-12); color: #a0abb6; }
.wa-season-noopt { padding: 16px; text-align: center; color: #8a95a3; font-size: 13.5px; }

/* #1 — Months container + "already exists" state */
.wa-season-months-box { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--wa-line, #e6ebf0); border-radius: var(--wag-radius-12); background: var(--wa-soft, #f7f9fb); }
html[data-theme="dark"] .wa-season-months-box { background: #0f141a; border-color: #2a313a; }
.wa-season-months-label { display: block; font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: #8a95a3; margin-bottom: 10px; }
.wa-season-months-label em { font-style: normal; font-weight: 600; text-transform: none; letter-spacing: 0; color: #aeb8c2; }
.wa-season-months { display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; margin: 0; }
.wa-season-months .wa-season-mon { width: 100%; text-align: center; padding: 8px 0; }
@media (max-width: 540px) { .wa-season-months { grid-template-columns: repeat(4, 1fr); } }
.wa-season-picked.is-exists { color: #b3422b; }
html[data-theme="dark"] .wa-season-picked.is-exists { color: #f0a08e; }

/* #1 — Modal bigger, dropdown floats (no clip / no card scroll), kill Astra blue hovers */
.wa-season-modal-card { max-width: 600px; max-height: none; overflow: visible; padding: 30px 30px 26px; }
@media (max-height: 720px) { .wa-season-modal-card { max-height: 92vh; overflow-y: auto; } }
.wa-season-search-panel { max-height: 320px; box-shadow: 0 20px 50px rgba(20,30,45,.22); }

/* Astra-child button hovers (blue) — neutralised inside the season UI. The .wa
   body-class anchor beats Astra's specificity; !important beats its hover rule. */
.wa .wa-season-modal button:not(.wag-btn):hover,
.wa .wa-season-modal button:not(.wag-btn):focus,
.wa .wa-season-report-btn:focus { box-shadow: var(--wag-shadow-14); outline: none; }
.wa .wa-season-modal-close,
.wa .wa-season-modal-close:hover,
.wa .wa-season-modal-close:focus,
.wa .wa-season-modal-close:active { background: transparent !important; color: #9aa6b2 !important; box-shadow: var(--wag-shadow-15) !important; border: 0 !important; }
.wa .wa-season-modal-close:hover { color: var(--wa-ink, #1a1e24) !important; }
html[data-theme="dark"] .wa .wa-season-modal-close:hover { color: #e8edf1 !important; }
.wa .wa-season-kind-btn:hover,
.wa .wa-season-kind-btn:focus { background: transparent !important; color: var(--wa-ink, #1a1e24) !important; box-shadow: var(--wag-shadow-15) !important; }
.wa .wa-season-kind-btn.is-active,
.wa .wa-season-kind-btn.is-active:hover { background: var(--wa-card, #fff) !important; color: var(--wa-ink, #1a1e24) !important; box-shadow: 0 1px 4px rgba(20,30,45,.12) !important; }
html[data-theme="dark"] .wa .wa-season-kind-btn.is-active,
html[data-theme="dark"] .wa .wa-season-kind-btn.is-active:hover { background: #232a32 !important; color: #e8edf1 !important; }
.wa .wa-season-mon:hover,
.wa .wa-season-mon:focus { background: var(--wa-card, #fff) !important; color: var(--wa-ink, #2a3038) !important; box-shadow: var(--wag-shadow-15) !important; }
.wa .wa-season-mon.is-on,
.wa .wa-season-mon.is-on:hover { background: #2e8b62 !important; color: #fff !important; }
html[data-theme="dark"] .wa .wa-season-mon:hover { background: #1a1f26 !important; color: #cdd5dd !important; }
.wa .wa-season-submit:not(.wag-btn):hover,
.wa .wa-season-submit:not(.wag-btn):focus { background: var(--wa-ink, #1a1e24) !important; color: #fff !important; box-shadow: var(--wag-shadow-15) !important; }
.wa .wa-season-opt:hover,
.wa .wa-season-opt:focus { background: var(--wa-soft, #f3f6f9) !important; color: inherit !important; box-shadow: var(--wag-shadow-15) !important; }
html[data-theme="dark"] .wa .wa-season-opt:hover { background: #232a32 !important; }
.wa .wa-season-report-btn:hover,
.wa .wa-season-report-btn:focus { background: var(--wa-ink, #1a1e24) !important; color: var(--wag-type-season-report-hover-ink, var(--wag-style-pildora-noche-hover-ink)) !important; box-shadow: var(--wag-shadow-15) !important; }
html[data-theme="dark"] .wa .wa-season-report-btn:hover { background: var(--wag-type-season-report-dark-hover-bg, var(--wag-style-pildora-noche-dark-hover-bg)) !important; color: var(--wag-type-season-report-dark-hover-ink, var(--wag-style-pildora-noche-dark-hover-ink)) !important; }

/* Search: persistent left magnifier and reserved space for the loading indicator on the right. */
.wa-season-search-ico { left: auto; right: 15px; }
.wa-season-search-spin { right: 15px; }
.wa .wa-season-search-wrap input.wa-season-search { padding-right: 24px; }

/* Owner dashboard — curated Species & Season manager. Uses the same picker and
   month language as Report a species, without exposing the raw ACF repeater. */
.wa-owner-season { margin-top: 4px; }
.wa-owner-season-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:16px; }
.wa-owner-season-head h3 { margin:0 0 4px; color:#1a1e24; font-size:17px; font-weight:800; }
.wa-owner-season-head p { margin:0; color:#687583; font-size:var(--wag-text-13); line-height:1.5; }
.wa-owner-season-add { flex:0 0 auto; white-space:nowrap; }
.wa-owner-season-list { border-top:1px solid #e6ebf0; }
.wa-owner-season-row { display:flex; align-items:center; gap:var(--wag-space-12); padding:12px 0; border-bottom:1px solid #e6ebf0; }
.wa-owner-season-photo { flex:0 0 auto; display:block; width:46px; height:46px; object-fit:cover; border-radius:10px; background:#edf1f4; }
.wa-owner-season-photo--empty { background:linear-gradient(135deg,#edf1f4,#dfe6ec); }
.wa-owner-season-copy { min-width:0; display:flex; flex:1; flex-direction:column; line-height:1.25; }
.wa-owner-season-copy strong { overflow:hidden; color:#1a1e24; font-size:var(--wag-text-14); font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.wa-owner-season-copy em { overflow:hidden; margin-top:2px; color:#7c8894; font-size:var(--wag-text-12); text-overflow:ellipsis; white-space:nowrap; }
.wa-owner-season-copy span { margin-top:4px; color:#546270; font-size:var(--wag-text-12); font-weight:600; }
.wa-owner-season-actions { display:flex; flex:0 0 auto; gap:var(--wag-space-8); }
.wa-owner-season-actions button { border:0; background:transparent; color:#266c99; cursor:pointer; font-size:12.5px; font-weight:800; padding:7px 5px; }
.wa-owner-season-actions .wa-owner-season-remove { color:#b84336; }
.wa .wa-owner-season-actions button:hover,
.wa .wa-owner-season-actions button:focus { background:transparent; box-shadow:var(--wag-shadow-14); color:#143e59; }
.wa .wa-owner-season-actions .wa-owner-season-remove:hover,
.wa .wa-owner-season-actions .wa-owner-season-remove:focus { color:#7e281f; }
.wa-owner-season-empty { margin:16px 0 0; color:#7c8894; font-size:var(--wag-text-13); }
html[data-theme="dark"] .wa-owner-season-head h3,
html[data-theme="dark"] .wa-owner-season-copy strong { color:var(--wag-dark-ink); }
html[data-theme="dark"] .wa-owner-season-head p,
html[data-theme="dark"] .wa-owner-season-copy span { color:#9daab5; }
html[data-theme="dark"] .wa-owner-season-list,
html[data-theme="dark"] .wa-owner-season-row { border-color:#29313a; }
html[data-theme="dark"] .wa-owner-season-photo--empty { background:linear-gradient(135deg,#232b34,#1a2028); }
html[data-theme="dark"] .wa-owner-season-actions button { color:#77bce2; }
@media (max-width:600px) {
    .wa-owner-season-head { display:block; }
    .wa-owner-season-add { margin-top:12px; }
    .wa-owner-season-row { align-items:flex-start; flex-wrap:wrap; }
    .wa-owner-season-copy { min-width:calc(100% - 62px); }
    .wa-owner-season-actions { width:100%; margin-left:58px; }
}

/* ── Avatares: el círculo/squircle nunca se distorsiona ──────────────────────
   (Marc, 2026-08-02: "depende la resolución, el círculo de foto de perfil se
   distorsiona"). Causa real: Astra (y WP core) traen un reset genérico
   `img { max-width:100%; height:auto }` — ese `height:auto` GANA sobre los
   atributos width/height del <img> que pinta get_avatar(), así que la caja
   deja de ser cuadrada en cuanto la imagen de origen no es perfectamente
   cuadrada (foto subida apaisada, o un tamaño de Gravatar/adjunto sin recorte
   exacto). aspect-ratio:1/1 fuerza la caja a ser SIEMPRE cuadrada pase lo que
   pase con el ancho responsive, y object-fit:cover recorta/centra la foto
   dentro sin estirarla. NO fija border-radius aquí — cada componente decide
   su propia forma (círculo 50% o squircle 9px ya declarados donde toca). */
.wa img.avatar { aspect-ratio: 1 / 1; object-fit: cover; }

/* ============================================================
   ★ ASTRA NEUTRALISER (Marc, 2026-07) — mata el theming azul por defecto
   de Astra (focus glow de formularios + hover/fondo de botones nativos y
   de clases Astra). NO toca componentes WildAtlas (.wa-*), Elementor ni
   WooCommerce → seguro para la home aprobada. Revertir = borrar este bloque.
   Nota: si un botón WildAtlas concreto todavía se pone azul, es porque su
   regla usa 1 sola clase y Astra le gana por especificidad — se arregla
   anteponiendo `.wa` a esa regla (como se hizo con el modal de season).
   ============================================================ */

/* 1) Focus de campos de formulario → anillo neutro (adiós glow azul de Astra) */
.wa input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):focus,
.wa textarea:focus,
.wa select:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(120,133,143,.16);
    border-color: #b7c0ca;
}
html[data-theme="dark"] .wa input:focus,
html[data-theme="dark"] .wa textarea:focus,
html[data-theme="dark"] .wa select:focus { box-shadow: 0 0 0 3px rgba(120,150,170,.20); border-color: #3a4550; }

/* 2) Botones nativos / de clases Astra → sin fondo ni hover azul.
   Selector limitado a bare <button>/inputs y clases Astra conocidas: los
   componentes WildAtlas (.wa-*) NO entran aquí y conservan su estilo. */
.wa button:not([class]),
.wa button.ast-button, .wa button.menu-toggle, .wa .ast-custom-button,
.wa input[type="submit"]:not([class]),
.wa input[type="button"]:not([class]),
.wa input[type="reset"]:not([class]) {
    background-color: var(--wag-type-field-focus-bg, var(--wag-style-field-focus-bg));
    box-shadow: var(--wag-shadow-14);
}
.wa button:not([class]):hover, .wa button:not([class]):focus,
.wa button.ast-button:hover, .wa button.ast-button:focus,
.wa .ast-custom-button:hover, .wa .ast-custom-button:focus,
.wa input[type="submit"]:not([class]):hover, .wa input[type="submit"]:not([class]):focus,
.wa input[type="button"]:not([class]):hover, .wa input[type="button"]:not([class]):focus {
    background-color: rgba(20,30,45,.06);
    color: inherit;
    box-shadow: var(--wag-shadow-14);
    outline: none;
}
html[data-theme="dark"] .wa button:not([class]):hover,
html[data-theme="dark"] .wa button.ast-button:hover { background-color: rgba(255,255,255,.08); }

/* 2b) Enlaces sin clase (Marc, 2026-07-27: "en la pantalla Negocio todos los
   hipervínculos no se ven... y eso pasará en todo"). NO era un caso puntual:
   42 sitios en inc/owners/ + inc/admin/ escriben `<a href="...">texto</a>` a
   pelo, sin ninguna clase .wa-*, porque son enlaces de contenido dinámico
   (nombre de operador, "View", "Edit", email de contacto…) — no tenían por
   qué llevar una. Sin clase, wildatlas.css no tiene NADA a lo que engancharse
   y el color depende enteramente de lo que Astra defina para <a> ese día — y
   esta misma sesión ya ha demostrado que ese suelo se mueve (los colores
   globales de Astra a transparente rompieron el círculo de arrastrar del
   generador). El botón nativo ya tenía este mismo tratamiento (regla 2); esto
   es lo mismo para el enlace, y por la misma razón: no se parchea sitio por
   sitio, se le da al enlace sin clase un color que WildAtlas controla.
   --wa-accent es verde dentro del panel (Control Center/Owner/Perfil) y cae al
   azul del sitio fuera de ahí — mismo comportamiento que ya tienen los demás
   componentes .wa-* que leen esa variable. */
/* :where() aquí es el punto entero de la regla, no un detalle: :not([class])
   por sí solo SUMA especificidad (una clase de más), y eso es justo lo que
   la rompió (Marc, 2026-07-27) — le ganaba a ".wa-account-menu a" (una sola
   clase + tag) y el menú de cuenta se volvió azul/verde entero en vez de su
   gris neutro. :where() anula la especificidad de TODO lo que envuelve —
   tanto el ".wa" como el ":not([class])" — así que esta regla queda por
   debajo de CUALQUIER selector de un componente real, sin importar en qué
   orden aparezcan en el fichero. Sigue haciendo su trabajo (vencer a Astra,
   que carga antes) porque a especificidad empatada gana el que se declaró
   después, y wildatlas.css siempre se encola después del padre. */
:where(.wa) a:where(:not([class])) {
    color: var(--wa-accent, #2b7cb0);
    text-decoration: none;
}
/* Sin subrayado tampoco en hover (Marc, 2026-07-27) — el color ya basta como
   señal, igual que en el resto de enlaces del sitio (p. ej. .wa-admin-trow-country,
   que sólo oscurece el color al pasar el ratón). */
:where(.wa) a:where(:not([class])):hover,
:where(.wa) a:where(:not([class])):focus {
    opacity: .78;
}

/* ★ Astra neutraliser — ALL close (×) buttons: kill the blue hover bg + parallel
   box-shadow site-wide. Targets classes ending in -close, .wa-modal-x, and
   aria-label="Close…" buttons. Excludes text buttons like .wa-bk-close-enquiry
   (ends in -enquiry). */
/* Class-based (bulletproof) — kept in its OWN rule so nothing can invalidate it */
.wa [class$="-close"]:hover,
.wa [class$="-close"]:focus,
.wa [class$="-close"]:active,
.wa .wa-modal-x:hover,
.wa .wa-modal-x:focus,
.wa .wa-modal-x:active,
.wa .wa-modal-close:hover,
.wa .wa-modal-close:focus,
.wa .wa-modal-close:active {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: var(--wag-shadow-15) !important;
    outline: none !important;
    border-color: transparent !important;
}
/* aria-label variants — SEPARATE rule so an unsupported token can't drop the above */
.wa button[aria-label^="Close"]:hover,
.wa button[aria-label^="Close"]:focus,
.wa button[aria-label^="Dismiss"]:hover,
.wa button[aria-label^="Dismiss"]:focus,
.wa button[aria-label^="Clear"]:hover,
.wa button[aria-label^="Clear"]:focus {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: var(--wag-shadow-15) !important;
    outline: none !important;
}
/* Elementor / generic dialog close buttons */
.wa .dialog-close-button:hover,
.wa .dialog-close-button:focus,
.wa .eicon-close:hover {
    background: transparent !important;
    box-shadow: var(--wag-shadow-15) !important;
    outline: none !important;
}

/* ★ Nuclear — footer modal X (contact / feedback): beat everything */
body.wa button.wa-modal-x,
body.wa button.wa-modal-x:hover,
body.wa button.wa-modal-x:focus,
body.wa button.wa-modal-x:active,
body.wa button.wa-modal-x:focus-visible,
body.wa button.wa-modal-close,
body.wa button.wa-modal-close:hover,
body.wa button.wa-modal-close:focus,
body.wa button.wa-modal-close:active,
body.wa button.wa-modal-close:focus-visible {
    background: none !important;
    background-color: transparent !important;
    box-shadow: var(--wag-shadow-15) !important;
    -webkit-box-shadow: none !important;
    outline: 0 !important;
    border: 0 !important;
    text-shadow: none !important;
}

/* =========================
   #5 — Public user profile (/u/{id}/)
========================= */
/* Hero right-side headline metric */
.wa-pub-hero .profile-hero-info { flex: 1 1 auto; }


/* Container */
.wa-pub { margin: 0 auto; }
.wa-pub-top { display: grid; grid-template-columns: 320px 1fr; gap: 22px; align-items: start; }
@media (max-width: 780px) { .wa-pub-top { grid-template-columns: 1fr; } }

/* Premium info card */


/* Metrics grid */
.wa-pub-metrics { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 480px) { .wa-pub-metrics { grid-template-columns: repeat(2, 1fr); } }
.wa-pub-metric { text-align: center; }
.wa-pub-metric-n { display: block; }
.wa-pub-metric-l { display: block; margin-top: 7px; }

/* Sections */
.wa-pub-section { margin-top: 30px; }
.wa-pub-listcard { flex-direction: column; }

/* CTA */
.wa-pub-cta { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--wa-line, #eef1f4); display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: center; }
html[data-theme="dark"] .wa-pub-cta { border-color: #262d35; }
.wa-pub-cta-txt { color: #6b7683; font-size: var(--wag-text-14); }
.wa-pub-cta-btn { display: inline-flex; align-items: center; gap: 7px; background: var(--wa-ink, #1a1e24); color: #fff; border: 0; font-size: var(--wag-text-14); font-weight: 700; padding: 11px 20px; border-radius: var(--wag-radius-999); cursor: pointer; text-decoration: none; }
html[data-theme="dark"] .wa-pub-cta-btn { background: var(--wag-dark-ink); color: #12161b; }

/* Private-profile hero share (own profile) */
.profile-hero-share { margin-top: 10px; display: flex; flex-wrap: wrap; }
.profile-hero-share-link { color: rgba(255,255,255,.9); font-size: var(--wag-text-13); font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.wa .profile-hero-share-link:hover { color: #fff; }
.profile-hero-share-copy { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); color: #fff; font-size: 12.5px; font-weight: 700; padding: 6px 12px; border-radius: var(--wag-radius-999); cursor: pointer; }
.wa .profile-hero-share-copy:hover { background: rgba(255,255,255,.22); }
.profile-hero-private-note { font-size: 12.5px; color: rgba(255,255,255,.75); }
.profile-hero-private-note a { color: #fff; }

/* =========================
   #5 — Public profile PREMIUM v2 (overrides)
========================= */
/* Fix: the reused .wa-list-share is position:absolute in cards — pin it inline here */
.profile-hero-share .wa-list-share { position: static !important; inset: auto !important; }
.profile-hero-share { align-items: center; gap: 10px; }


/* Hero card */
.wa-pub-herocard { background: var(--wa-card, #fff); border: 1px solid var(--wa-line, #e6ebf0); border-radius: var(--wag-radius-24); overflow: hidden; box-shadow: 0 18px 50px rgba(20,30,45,.10); }
html[data-theme="dark"] .wa-pub-herocard { background: #161b22; border-color: #262d35; }
.wa-pub-cover { height: 140px; background:
    radial-gradient(120% 140% at 15% 0%, rgba(255,255,255,.28), rgba(255,255,255,0) 45%),
    linear-gradient(120deg, #14764c 0%, #1f8a68 40%, #2f8fa8 100%);
    position: relative; }
.wa-pub-cover::after { content: ""; position: absolute; inset: 0; background:
    radial-gradient(60% 120% at 85% 10%, rgba(255,255,255,.18), rgba(255,255,255,0) 50%); }

.wa-pub-herocard-body { padding: 0 30px 8px; margin-top: -68px; text-align: center; position: relative; }
.wa-pub-avatar-ring { width: 140px; height: 140px; margin: 0 auto 14px; border-radius: 50%; padding: 5px; background: var(--wa-card, #fff); box-shadow: 0 10px 30px rgba(20,30,45,.22); display: inline-block; }
html[data-theme="dark"] .wa-pub-avatar-ring { background: #161b22; }
.wa-pub-avatar { width: 130px; height: 130px; border-radius: 50%; object-fit: cover; display: block; }
.wa-pub-name { font-size: 26px; font-weight: 800; letter-spacing: -.4px; color: var(--wa-ink, #12161b); margin: 0; display: inline-flex; align-items: center; gap: 9px; flex-wrap: wrap; justify-content: center; }
html[data-theme="dark"] .wa-pub-name { color: #f2f5f8; }
.wa-pub-meta { margin-top: 10px; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; justify-content: center; }
.wa-pub-meta-item { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; color: #76828f; }
.wa-pub-meta-item svg { color: #9aa6b2; }
.wa-pub-meta-item a { color: #1f8a68; text-decoration: none; font-weight: 600; }
.wa .wa-pub-meta-item a:hover { text-decoration: underline; }
.wa-pub-meta-item--instagram svg,
.wa-pub-meta-item--instagram a{ color: #c13584; }
.wa .wa-pub-meta-item--instagram a:hover { color: #9c2468; }
.wa-pub-bio { max-width: 560px; margin: 16px auto 0; font-size: 14.5px; line-height: 1.6; color: #55606b; }
html[data-theme="dark"] .wa-pub-bio { color: #aeb8c2; }

/* Metric pills row */
.wa-pub-metrics { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--wag-space-12); margin: 22px 0 0; padding: 22px 26px 26px; border-top: 1px solid var(--wa-line, #eef1f4); }
html[data-theme="dark"] .wa-pub-metrics { border-color: #262d35; }
.wa-pub-metric { flex: 1 1 130px; max-width: 160px; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 16px 10px; background: var(--wa-soft, #f7f9fb); border: 1px solid var(--wa-line, #eef1f4); border-radius: var(--wag-radius-16); transition: transform .15s ease, box-shadow .15s ease; }
html[data-theme="dark"] .wa-pub-metric { background: #12171e; border-color: #262d35; }
.wa .wa-pub-metric:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(20,30,45,.10); }
.wa-pub-metric-ico { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 4px; background: rgba(31,138,104,.12); color: #1f8a68; }
.wa-pub-metric--birds .wa-pub-metric-ico { background: rgba(43,124,176,.14); color: #2b7cb0; }
.wa-pub-metric--mammals .wa-pub-metric-ico { background: rgba(106,87,192,.14); color: #6a57c0; }
.wa-pub-metric--hotspots .wa-pub-metric-ico { background: rgba(194,119,43,.14); color: #c2772b; }
.wa-pub-metric--countries .wa-pub-metric-ico { background: rgba(58,143,168,.14); color: #3a8fa8; }
.wa-pub-metric-n { font-size: var(--wag-text-24); font-weight: 800; color: var(--wa-ink, #12161b); letter-spacing: -.5px; line-height: 1.1; }
html[data-theme="dark"] .wa-pub-metric-n { color: #f2f5f8; }
.wa-pub-metric-l { font-size: var(--wag-text-11); text-transform: uppercase; letter-spacing: .6px; color: #8a95a3; font-weight: 700; }

@media (max-width: 560px) {
    .wa-pub-herocard-body { padding: 0 18px 6px; }
    .wa-pub-metrics { padding: 18px 14px 20px; }
    .wa-pub-metric { flex: 1 1 44%; max-width: none; }
}

/* #5 — Premium list sections (observation / species lists) */
.wa-pub-section-title { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: #76828f; margin: 0 0 14px; }
.wa-pub-section-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 7px; border-radius: var(--wag-radius-999); background: var(--wa-soft, #eef1f4); color: #6b7683; font-size: var(--wag-text-12); font-weight: 800; letter-spacing: 0; }
html[data-theme="dark"] .wa-pub-section-count { background: #232a32; color: #aeb8c2; }

.wa-pub-lgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.wa-pub-lcard { display: flex; align-items: center; gap: 14px; padding: 16px 16px 16px 14px; background: var(--wa-card, #fff); border: 1px solid var(--wa-line, #e6ebf0); border-radius: var(--wag-radius-16); text-decoration: none; box-shadow: 0 4px 16px rgba(20,30,45,.05); transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; position: relative; overflow: hidden; }
html[data-theme="dark"] .wa-pub-lcard { background: #161b22; border-color: #262d35; }
.wa-pub-lcard::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #1f8a68; opacity: 0; transition: opacity .16s ease; }
.wa-pub-lcard--species::before { background: #6a57c0; }
.wa .wa-pub-lcard:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(20,30,45,.12); border-color: #d3dbe4; }
.wa .wa-pub-lcard:hover::before { opacity: 1; }
html[data-theme="dark"] .wa-pub-lcard:hover { border-color: #37414c; }
.wa-pub-lcard-ico { flex: 0 0 auto; width: 44px; height: 44px; border-radius: var(--wag-radius-12); display: inline-flex; align-items: center; justify-content: center; background: rgba(31,138,104,.12); color: #1f8a68; }
.wa-pub-lcard--species .wa-pub-lcard-ico { background: rgba(106,87,192,.13); color: #6a57c0; }
.wa-pub-lcard-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.wa-pub-lcard-name { font-size: 15px; font-weight: 700; color: var(--wa-ink, #12161b); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html[data-theme="dark"] .wa-pub-lcard-name { color: #f2f5f8; }
.wa-pub-lcard-meta { font-size: 12.5px; color: #8a95a3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-pub-lcard-arrow { flex: 0 0 auto; color: #c2ccd6; transition: transform .16s ease, color .16s ease; }
.wa .wa-pub-lcard:hover .wa-pub-lcard-arrow { transform: translateX(3px); color: #1f8a68; }
.wa .wa-pub-lcard--species:hover .wa-pub-lcard-arrow { color: #6a57c0; }

/* #5 — No hero band: hero-card leads full-width */
.wa-pub { max-width: none; }
.wa-pub .wa-pub-herocard { margin-top: 18px; }

/* #5 — User community block on the public profile */
.wa-pub-community { margin-top: 24px; }
.wa-pub-community-row { flex-wrap: wrap; gap: 0 14px; }
.wa-pub-community-sub { flex-basis: 100%; font-size: var(--wag-text-12); color: #9aa6b2; margin-top: 2px; }
html[data-theme="dark"] .wa-pub-community-sub { color: #8a95a3; }

/* #5 — Premium toggle cards in Edit Profile */
.wa-toggle-card { display: flex !important; align-items: center; gap: var(--wag-space-16); padding: 16px 18px; border: 1px solid var(--wa-line, #e6ebf0); border-radius: 14px; background: var(--wa-soft, #f7f9fb); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.wa .wa-toggle-card:hover { border-color: #cdd6df; }
html[data-theme="dark"] .wa-toggle-card { background: #12171e; border-color: #262d35; }
html[data-theme="dark"] .wa-toggle-card:hover { border-color: #37414c; }
.wa-toggle-card-txt { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--wag-space-4); min-width: 0; }
.wa-toggle-card-title { display: inline-flex; align-items: center; gap: var(--wag-space-8); font-size: 14.5px; font-weight: 700; color: var(--wa-ink, #12161b); }
html[data-theme="dark"] .wa-toggle-card-title { color: #f2f5f8; }
.wa-toggle-card-title svg { color: #1f8a68; flex: 0 0 auto; }
.wa-toggle-card-desc { font-size: 12.5px; line-height: 1.5; color: #76828f; font-weight: 400; }
html[data-theme="dark"] .wa-toggle-card-desc { color: #8a95a3; }

/* iOS-style switch built from a checkbox */
.wa-switch { position: relative; flex: 0 0 auto; display: inline-block; }
.wa-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.wa-switch-track { display: block; width: 46px; height: 27px; border-radius: var(--wag-radius-999); background: #cbd2da; transition: background .2s ease; }
html[data-theme="dark"] .wa-switch-track { background: #2a313a; }
.wa-switch-knob { position: absolute; top: 3px; left: 3px; width: 21px; height: 21px; border-radius: 50%; background: var(--wag-surface); box-shadow: 0 2px 5px rgba(20,30,45,.28); transition: transform .2s cubic-bezier(.3,1.3,.5,1); }
.wa-switch input:checked + .wa-switch-track { background: #2e8b62; }
.wa-switch input:checked + .wa-switch-track .wa-switch-knob { transform: translateX(19px); }
.wa .wa-switch input:focus-visible + .wa-switch-track { box-shadow: 0 0 0 3px rgba(46,139,98,.28); }

/* #5 — Clickable usernames everywhere (link to /u/). Distinct brand green +
   permanent underline so they read as clickable (Marc: not blue). */
/* NOT anchored on `.wa` — front-page.php (home) renders body.wa-home WITHOUT the
   `wa` class, so `.wa .wa-user-link` never matched there. Bare class + !important
   beats Astra's `a` color everywhere. */
.wa-user-link { color: #1f8a68 !important; text-decoration: underline !important; text-underline-offset: 2px; text-decoration-thickness: 1px; font-weight: inherit; cursor: pointer; }
.wa .wa-user-link:hover,
.wa .wa-user-link:focus { color: #14614a !important; text-decoration: underline !important; background: transparent !important; box-shadow: var(--wag-shadow-15) !important; }
html[data-theme="dark"] .wa-user-link { color: #4bb98a !important; }
html[data-theme="dark"] .wa-user-link:hover, html[data-theme="dark"] .wa-user-link:focus { color: #6fd0a5 !important; }

/* Las fotos del perfil público usan ahora .wa-photo-tile--profile.
   Aquí vivían TRES declaraciones encadenadas de .wa-pub-photo, cada una
   parcheando la anterior (la última con transform:none !important y un
   ::after anulado porque robaba el clic). Todo eso desaparece con la
   tarjeta única. */

/* #5 fix — Recent sightings card: stretched-link pattern (card is now a <div>,
   the whole card links to the species via an absolute cover <a>, and the username
   link sits above it so it goes to the profile). Fixes the invalid nested-anchor
   that broke the layout. */
.wa-home-feed-item { position: relative; }
.wa-home-feed-cover { position: absolute; inset: 0; z-index: 1; border-radius: var(--wag-radius-12); text-decoration: none; }
.wa-home-feed-user .wa-user-link { position: relative; z-index: 2; }
/* Bird/Mammal badge is a label, not a target — let clicks fall through to the cover. */
.wa-home-feed-badge { pointer-events: none; }

/* ── Search: Google-style integrated dropdown (bar + panel = one piece) ──────
   When the dropdown is open (JS adds .is-open on .wa-search) the bar squares its
   bottom corners and the panel docks flush beneath it — no floating gap. The bar
   keeps its border as a hairline divider; the panel drops its top border/radius. */
.wa-search.is-open .wa-search-bar {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
.wa-search.is-open .wa-search-panel {
    top: 100%;
    margin-top: 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 0 24px 46px -6px rgba(20, 30, 45, .16);
}
/* Dark global topbar: same squared junction, keep the dark drop shadow. */
#wa-global-topbar .wa-search.is-open .wa-search-bar {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
#wa-global-topbar .wa-search.is-open .wa-search-panel {
    box-shadow: 0 24px 52px -6px rgba(0, 0, 0, .5);
}
/* No inner scrollbar on the results (Marc) — stays scrollable, just no visible bar. */
.wa-search-panel { scrollbar-width: none; -ms-overflow-style: none; }
.wa-search-panel::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* Custom Trip — destination dropdown styled as a form field (full-width, matches
   the other inputs; green focus, not the filter-pill blue). Uses the canonical
   .wa-dropdown component so it's a real styled "desplegable", no native select. */
.wa-ct-dd { display: block; width: 100%; }
.wa-ct-dd .wa-dropdown-trigger {
    display: flex; width: 100%; justify-content: flex-start; gap: var(--wag-space-8);
    padding: 9px 12px; border: 1.5px solid #dde5ec; border-radius: var(--wag-radius-8);
    font-size: 13.5px; font-weight: 500; color: var(--wag-type-filter-ct-ink, var(--wag-style-filter-ct-ink)); background: var(--wag-surface);
}
.wa-ct-dd .wa-dropdown-label { flex: 1; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wa-ct-dd .wa-dd-chevron { margin-left: auto; }
.wa .wa-ct-dd .wa-dropdown-trigger:hover { border-color: var(--wag-type-filter-ct-hover-line, var(--wag-style-filter-ct-hover-line)); color: var(--wag-type-filter-ct-hover-ink, var(--wag-style-filter-ct-hover-ink)); }
.wa-ct-dd.is-open .wa-dropdown-trigger { border-color: var(--wag-type-filter-ct-line, var(--wag-style-filter-ct-line)); box-shadow: var(--wag-type-filter-ct-shadow, var(--wag-style-filter-ct-shadow)); }
.wa-ct-dd .wa-dropdown-menu { left: 0; right: 0; width: auto; min-width: 0; max-width: none; }
html[data-theme="dark"] .wa-ct-dd .wa-dropdown-trigger { background: var(--wag-dark-surface); border-color: var(--wag-type-filter-ct-dark-line, var(--wag-style-filter-ct-dark-line)); color: var(--wag-dark-ink); }

/* ── WAPS-PAY — Payments (owner tab + admin card) · premium pass ──────────── */
.wa-owner-payments { display: flex; flex-direction: column; gap: 18px; }

.wa-pay-testbanner {
    background: linear-gradient(135deg, #fff8e8, #fdf3d7);
    border: 1px solid #ecd9a0; color: #7a5a12;
    border-radius: 14px; padding: 12px 18px; font-size: var(--wag-text-13); font-weight: 600;
    letter-spacing: .01em;
}
.wa-pay-notice { border-radius: 14px; padding: 12px 18px; font-size: var(--wag-text-14); font-weight: 600; }
.wa-pay-notice.is-ok  { background: #eefaf3; border: 1px solid #bfe5cf; color: #1a5235; }
.wa-pay-notice.is-err { background: #fdf0ed; border: 1px solid #eac4ba; color: #8a3524; }

/* Condiciones para negocios — casilla antes de conectar un proveedor
   (inc/owners/business-terms.php). Misma caja que .wa-pay-checklist; al
   aceptar toma los colores de .wa-pay-notice.is-ok. */
.wa-biz-terms {
    background: #f7f9fb; border: 1px solid #eef2f6; border-radius: 14px;
    padding: 16px 20px;
}
.wa-biz-terms.is-accepted { background: #eefaf3; border-color: #bfe5cf; }
.wa-biz-terms-intro { margin: 0 0 10px; font-size: 13.5px; color: #3a4452; line-height: 1.55; }
.wa-biz-terms-check {
    display: flex; align-items: flex-start; gap: 10px; margin: 0;
    font-size: 13.5px; font-weight: 600; color: #3a4452; line-height: 1.5; cursor: pointer;
}
.wa-biz-terms-check input[type="checkbox"] {
    flex-shrink: 0; width: 18px; height: 18px; margin: 1px 0 0; accent-color: #1a9a56;
}
.wa .wa-biz-terms-link,
.wa .wa-biz-terms-link:hover,
.wa .wa-biz-terms-link:focus,
.wa .wa-biz-terms-link:active { color: #1a6a3a; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.wa-biz-terms-msg:empty { display: none; }
.wa-biz-terms-msg { display: block; margin-top: 8px; font-size: 12.5px; font-weight: 600; color: #8a3524; }
.wa-biz-terms.is-accepted .wa-biz-terms-msg { color: #1a5235; }
.wa .wa-pay-connect-btn.is-terms-locked,
.wa .wa-pay-connect-btn:disabled { opacity: .45; cursor: not-allowed; }

/* Fees — panel de dos columnas tipográficas */
.wa-pay-fees-box {
    display: flex; align-items: stretch; gap: 26px;
    background: linear-gradient(180deg, #fbfcfd, #f5f8fa);
    border: 1px solid #e6ecf1; border-radius: 18px;
    padding: 22px 28px;
}
.wa-pay-fee-col { flex: 1; display: flex; flex-direction: column; gap: var(--wag-space-4); min-width: 0; }
.wa-pay-fee-divider { width: 1px; background: #e3e9ef; }
.wa-pay-fee-label {
    font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase;
    letter-spacing: .09em; color: #8a95a3;
}
.wa-pay-fee-value { font-size: 30px; font-weight: 800; color: #12271b; line-height: 1.1; }
.wa-pay-fee-value--text { font-size: 22px; line-height: 1.35; }
.wa-pay-fee-value small { font-size: var(--wag-text-16); font-weight: 700; color: #3a5a48; margin-left: 1px; }
.wa-pay-fee-note { font-size: 12.5px; color: #6a7684; line-height: 1.55; }
.wa-pay-fee-note a { color: #1a6a3a; font-weight: 600; text-decoration: none; white-space: nowrap; }
.wa .wa-pay-fee-note a:hover { text-decoration: underline; }

/* Cards */
.wa-pay-card {
    background: var(--wag-surface); border: 1px solid #e8edf2; border-radius: 18px;
    padding: 24px 28px; box-shadow: 0 1px 2px rgba(16, 24, 32, .04);
}
.wa-pay-card h3 { margin: 0 0 8px; font-size: 16.5px; font-weight: 800; color: #1a1e24; }
.wa-pay-card p { font-size: var(--wag-text-14); color: #4a5462; line-height: 1.65; margin: 0 0 10px; }
.wa-pay-card-head { display: flex; gap: var(--wag-space-16); align-items: flex-start; margin-bottom: 16px; }
.wa-pay-card-head h3 { margin-bottom: 4px; }
.wa-pay-sub { font-size: 13.5px; color: #6a7684; margin: 0 !important; }
.wa-pay-ico {
    flex-shrink: 0; width: 44px; height: 44px; border-radius: 13px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #eaf5ee; color: #1a6a3a;
}
.wa-pay-req { font-size: var(--wag-text-12); font-weight: 600; color: #8a95a3; }

/* Checklist — grid con checks verdes */
.wa-pay-checklist {
    background: #f7f9fb; border: 1px solid #eef2f6; border-radius: 14px;
    padding: 16px 20px; margin: 4px 0 14px;
}
.wa-pay-checklist-title {
    display: block; font-size: var(--wag-text-12); font-weight: 700; text-transform: uppercase;
    letter-spacing: .07em; color: #5a6572; margin-bottom: 10px;
}
.wa-pay-checklist-title em { font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 600; color: #9aa5b1; }
.wa-pay-checklist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; }
.wa-pay-check-item {
    display: flex; align-items: center; gap: 9px;
    font-size: 13.5px; color: #3a4452; line-height: 1.4;
}
.wa-pay-check-item svg { flex-shrink: 0; color: #1a9a56; }

.wa-pay-hint { font-size: 12.5px; color: #7a8592; }
.wa-pay-hint a { color: #1a6a3a; font-weight: 600; }

/* Connect CTA */
.wa-pay-connect-btn {
    display: inline-flex; align-items: center; gap: 10px;
    margin-top: 12px; padding: 13px 28px;
    background: linear-gradient(135deg, #1e7a44, #14552f);
    color: #fff !important;
    border-radius: 13px; font-size: 15px; font-weight: 700;
    text-decoration: none !important; line-height: 1;
    box-shadow: 0 3px 12px rgba(20, 85, 47, .28);
    transition: box-shadow .15s ease, transform .12s ease;
}
.wa .wa-pay-connect-btn:hover { transform: translateY(-1px); box-shadow: 0 5px 16px rgba(20, 85, 47, .34); color: #fff; }
.wa-pay-connect-btn svg { flex-shrink: 0; }

/* Connected state */
.wa-pay-status-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.wa-pay-acct {
    background: #f0f3f6; border: 1px solid #e3e9ef; border-radius: 9px;
    padding: 4px 10px; font-size: 12.5px; color: #4a5462; letter-spacing: .03em;
}
.wa-pay-fiscal { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 4px 0 16px; }
.wa-pay-field { display: flex; flex-direction: column; gap: 5px; font-size: var(--wag-text-12); font-weight: 700; color: #5a6572; text-transform: uppercase; letter-spacing: .05em; }
.wa-pay-field input {
    padding: 11px 14px; border: 1px solid var(--wag-type-field-pay-line, var(--wag-style-field-pay-line)); border-radius: var(--wag-type-field-pay-radius, var(--wag-style-field-pay-radius));
    font-size: 14.5px; font-weight: 500; color: var(--wag-type-field-pay-ink, var(--wag-style-field-pay-ink));
    transition: border-color .15s ease, box-shadow .15s ease;
}
.wa-pay-field select {
    min-height: 43px;
    padding: 10px 38px 10px 14px;
    border: 1px solid var(--wag-type-field-pay-line, var(--wag-style-field-pay-line));
    border-radius: var(--wag-type-field-pay-radius, var(--wag-style-field-pay-radius));
    background: var(--wag-surface);
    color: var(--wag-type-field-pay-ink, var(--wag-style-field-pay-ink));
    font-size: 14.5px;
    font-weight: 500;
}
.wa .wa-pay-field input:focus,
.wa .wa-pay-field select:focus { outline: none; border-color: var(--wag-type-field-pay-focus-line, var(--wag-style-field-pay-focus-line)); box-shadow: var(--wag-type-field-pay-focus-shadow, var(--wag-style-field-pay-focus-shadow)); }
.wa-pay-field--currency { max-width: 420px; margin: 14px 0; }

.wa-pay-toggle { display: flex; align-items: flex-start; gap: var(--wag-space-12); font-size: var(--wag-text-14); color: #3a4452; cursor: pointer; line-height: 1.55; }
.wa-pay-toggle input { width: 19px; height: 19px; margin-top: 2px; accent-color: #1a6a3a; }
.wa-pay-toggle--sub { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e3e9ef; }
.wa-pay-toggle--sub input:disabled { opacity: .45; cursor: not-allowed; }
.wa-pay-msg { font-size: var(--wag-text-13); margin-left: 8px; }
.wa-pay-provider-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wag-space-12); margin: 16px 0 12px; }
.wa-pay-provider {
    display: flex; align-items: center; gap: var(--wag-space-12); min-width: 0;
    padding: 15px 16px; border: 1px solid #dfe6ec; border-radius: 13px;
    background: var(--wag-surface); cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.wa-pay-provider:hover { border-color: #91b9a2; }
.wa-pay-provider.is-selected { border-color: #1a6a3a; background: #f3faf6; box-shadow: 0 0 0 3px rgba(26,106,58,.08); }
.wa-pay-provider.is-disabled { opacity: .56; cursor: not-allowed; background: #f6f8fa; }
.wa-pay-provider input { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; accent-color: #1a6a3a; }
.wa-pay-provider-copy { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 2px; }
.wa-pay-provider-copy strong { color: #1a1e24; font-size: var(--wag-text-14); }
.wa-pay-provider-copy small { color: #7a8592; font-size: 11.5px; line-height: 1.4; }
.wa-pay-provider-state { flex: 0 0 auto; font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #1a6a3a; }
.wa-pay-provider.is-disabled .wa-pay-provider-state { color: #8a95a3; }
.wa-pay-disconnect {
    background: none; border: 1px solid #e0b3a8; color: #8a3524; border-radius: 10px;
    padding: 8px 16px; font-size: var(--wag-text-13); font-weight: 600; cursor: pointer; margin-top: 10px;
    transition: background .15s ease;
}
.wa .wa-pay-disconnect:hover { background: #fdf0ed; }

/* Admin card (Control Center → Business) */
.wa-pay-admin { border-radius: 18px; }
.wa-pay-admin-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.wa-pay-admin-head .wa-feat-h { margin: 0; }
.wa-pay-admin-head .wa-pay-ico { width: 38px; height: 38px; border-radius: 11px; }
.wa-pay-admin-chips { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; margin-left: auto; }
.wa-pay-admin-settings {
    display: flex; gap: 26px; align-items: flex-end; flex-wrap: wrap;
    background: #f7f9fb; border: 1px solid #eef2f6; border-radius: 14px; padding: 16px 20px;
}
.wa-pay-setting { display: flex; flex-direction: column; gap: 5px; }
.wa-pay-setting > label {
    font-size: var(--wag-text-11); font-weight: 700; text-transform: uppercase;
    letter-spacing: .07em; color: #5a6572;
}
.wa-pay-setting-input { display: flex; align-items: center; gap: 7px; }
.wa-pay-setting-input input {
    width: 92px; padding: 9px 12px; border: 1px solid #dfe5ec; border-radius: 10px;
    font-size: 15px; font-weight: 700; color: #1a1e24;
}
.wa .wa-pay-setting-input input:focus { outline: none; border-color: #1a6a3a; box-shadow: 0 0 0 3px rgba(26, 106, 58, .10); }
.wa-pay-unit { font-size: var(--wag-text-14); font-weight: 700; color: #6a7684; }
.wa-pay-setting small { font-size: 11.5px; color: #9aa5b1; }
.wa-pay-setting--action { flex-direction: row; align-items: center; gap: 10px; margin-left: auto; }
.wa-pay-setting--action span { font-size: var(--wag-text-13); }
.wa-pay-admin-foot { font-size: 12.5px; color: #8a95a3; line-height: 1.6; margin: 12px 2px 0; }

/* Connected accounts list (Marc, 2026-08-03 — go-live: ver y desconectar de un
   vistazo las cuentas conectadas en modo test antes de que fallen en live). */
.wa-pay-connected-list { margin-top: 16px; border-top: 1px solid #eef2f6; padding-top: 14px; }
.wa-pay-connected-h {
    font-size: var(--wag-text-12); font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
    color: #5a6572; margin: 0 0 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.wa-pay-connected-row {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 9px 12px; border: 1px solid #eef2f6; border-radius: 10px; margin-bottom: 6px;
}
.wa-pay-connected-name { font-size: 13.5px; font-weight: 700; color: #1a1e24; margin-right: auto; }
.wa-pay-connected-name em { font-style: normal; font-weight: 500; color: #8a95a3; }
.wa-pay-connected-msg { font-size: var(--wag-text-12); color: #788596; }

@media (max-width: 700px) {
    .wa-pay-fiscal, .wa-pay-checklist-grid,
.wa-pay-provider-grid{ grid-template-columns: 1fr; }
    .wa-pay-fees-box { flex-direction: column; gap: 18px; padding: 20px 22px; }
    .wa-pay-fee-divider { width: auto; height: 1px; }
    .wa-pay-admin-chips,
.wa-pay-setting--action{ margin-left: 0; }
    .wa-pay-connected-name { margin-right: 0; flex-basis: 100%; }
}

/* Dark mode */
html[data-theme="dark"] .wa-pay-card { background: var(--wag-dark-surface); border-color: #2a313a; box-shadow: var(--wag-shadow-14); }
html[data-theme="dark"] .wa-pay-card h3 { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-pay-fees-box { background: #171c22; border-color: #2a313a; }
html[data-theme="dark"] .wa-pay-fee-value { color: #e8f2ec; }
html[data-theme="dark"] .wa-pay-fee-divider { background: #2a313a; }
html[data-theme="dark"] .wa-pay-checklist,
html[data-theme="dark"] .wa-pay-admin-settings { background: #12161b; border-color: #2a313a; }
html[data-theme="dark"] .wa-pay-check-item { color: #b8c2cc; }
html[data-theme="dark"] .wa-biz-terms { background: #12161b; border-color: #2a313a; }
html[data-theme="dark"] .wa-biz-terms-intro,
html[data-theme="dark"] .wa-biz-terms-check { color: #b8c2cc; }
html[data-theme="dark"] .wa .wa-biz-terms-link,
html[data-theme="dark"] .wa .wa-biz-terms-link:hover,
html[data-theme="dark"] .wa .wa-biz-terms-link:focus,
html[data-theme="dark"] .wa .wa-biz-terms-link:active { color: #8fcf6e; }
html[data-theme="dark"] .wa-pay-field input,
html[data-theme="dark"] .wa-pay-field select,
html[data-theme="dark"] .wa-pay-setting-input input { background: var(--wag-type-field-pay-dark-bg, var(--wag-style-field-pay-dark-bg)); border-color: var(--wag-type-field-pay-dark-line, var(--wag-style-field-pay-dark-line)); color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-pay-acct { background: #12161b; border-color: #2a313a; color: #b8c2cc; }
html[data-theme="dark"] .wa-pay-ico { background: #16281e; color: #58c98a; }
html[data-theme="dark"] .wa-pay-provider { background: #12161b; border-color: #2a313a; }
html[data-theme="dark"] .wa-pay-provider.is-selected { background: #16281e; border-color: #3b8f5e; }
html[data-theme="dark"] .wa-pay-provider.is-disabled { background: #171c22; }
html[data-theme="dark"] .wa-pay-provider-copy strong { color: var(--wag-dark-ink); }

/* ── WAPS-PAY S4 — cancellation policy (product line + owner selector) ─────── */
.wa-cancel-policy {
    display: flex; gap: 9px; align-items: flex-start;
    margin-top: 14px; padding: 12px 16px;
    background: #f4f8fb; border: 1px solid #dfeaf3; border-radius: var(--wag-radius-12);
    font-size: var(--wag-text-13); color: #45525f; line-height: 1.6;
}
.wa-cancel-policy svg { flex-shrink: 0; margin-top: 3px; color: #2b7cb0; }
.wa-cancel-policy strong { color: #1f2a36; font-weight: 700; }
.wa-cancel-dates { display: flex; flex-direction: column; gap: 2px; margin-bottom: 6px; }
.wa-cancel-dates[hidden] { display: none; }
.wa-cancel-dates-line { font-weight: 600; color: #1f2a36; }
.wa-cancel-dates-line.is-free { color: #1a6a3a; }

.wa-cancel-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wag-space-12); }
.wa-cancel-option {
    display: flex; flex-direction: column; gap: 6px; cursor: pointer;
    border: 1.5px solid #e3e9ef; border-radius: 14px; padding: 14px 16px;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.wa .wa-cancel-option:hover { border-color: #b9d5c6; }
.wa-cancel-option.is-active {
    border-color: #1a6a3a; background: #f4faf6;
    box-shadow: 0 0 0 3px rgba(26, 106, 58, .08);
}
.wa-cancel-option { position: relative; }
.wa-cancel-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wa-cancel-option-label { font-size: var(--wag-text-14); font-weight: 800; color: #1a1e24; }
.wa-cancel-option.is-active .wa-cancel-option-label { color: #14552f; }
.wa-cancel-option-text { font-size: var(--wag-text-12); color: #6a7684; line-height: 1.55; }

@media (max-width: 700px) { .wa-cancel-options { grid-template-columns: 1fr; } }
html[data-theme="dark"] .wa-cancel-policy { background: #17202a; border-color: #2a3947; color: #c3ccd5; }
html[data-theme="dark"] .wa-cancel-policy svg { color: #7fc0e6; }
html[data-theme="dark"] .wa-cancel-policy strong,
html[data-theme="dark"] .wa-cancel-dates-line{ color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-cancel-dates-line.is-free { color: #7fd3a0; }
html[data-theme="dark"] .wa-cancel-option { border-color: #2a313a; }
html[data-theme="dark"] .wa-cancel-option.is-active { background: #16281e; border-color: #2e7d52; }
html[data-theme="dark"] .wa-cancel-option-label { color: var(--wag-dark-ink); }

/* ── WAPS-PAY S5 — refund inline form (owner booking rows) ─────────────────── */
.wa-bk-refund-form {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    margin-top: 10px; padding: 12px 14px;
    background: #fffaf0; border: 1px solid #ecd9a0; border-radius: var(--wag-radius-12);
    font-size: var(--wag-text-13);
}
.wa-bk-refund-form label { display: flex; align-items: center; gap: var(--wag-space-8); font-weight: 600; color: #5a4a1a; }
.wa-bk-refund-form input {
    width: 110px; padding: 8px 10px; border: 1px solid #dfd0a8; border-radius: 9px; font-size: var(--wag-text-14);
}
html[data-theme="dark"] .wa-bk-refund-form { background: #241f12; border-color: #4a3f1e; }
html[data-theme="dark"] .wa-bk-refund-form label { color: #d8c88a; }
html[data-theme="dark"] .wa-bk-refund-form input { background: #12161b; border-color: #4a3f1e; color: var(--wag-dark-ink); }

/* ── WAPS-PAY S7 — DAC7 report card ────────────────────────────────────────── */
.wa-dac7 { margin-top: 16px; border-radius: 18px; }
.wa-dac7-year select {
    padding: 8px 12px; border: 1px solid #dfe5ec; border-radius: 10px;
    font-size: var(--wag-text-14); font-weight: 700; color: #1a1e24;
}
.wa-dac7-tablewrap { overflow-x: auto; margin-top: 6px; }
.wa-dac7-table { width: 100%; border-collapse: collapse; font-size: var(--wag-text-13); }
.wa-dac7-table th {
    text-align: left; padding: 9px 12px; background: #12171e; color: #fff;
    font-size: var(--wag-text-11); text-transform: uppercase; letter-spacing: .05em; white-space: nowrap;
}
.wa-dac7-table th:first-child { border-radius: 10px 0 0 0; }
.wa-dac7-table th:last-child { border-radius: 0 10px 0 0; }
.wa-dac7-table td { padding: 9px 12px; border-bottom: 1px solid #eef1f4; vertical-align: top; }
.wa-dac7-table small { color: #8a95a3; }
.wa-dac7-miss { color: #b3422b; font-weight: 700; font-size: var(--wag-text-12); }
.wa-dac7-holes {
    margin-top: 14px; padding: 12px 16px; background: #fff7e6;
    border: 1px solid #ecd9a0; border-radius: var(--wag-radius-12); font-size: var(--wag-text-13); color: #7a5a12; line-height: 1.6;
}
html[data-theme="dark"] .wa-dac7-table td { border-color: #2a313a; }
html[data-theme="dark"] .wa-dac7-holes { background: #241f12; border-color: #4a3f1e; color: #d8c88a; }
html[data-theme="dark"] .wa-dac7-year select { background: #12161b; border-color: #2a313a; color: var(--wag-dark-ink); }

/* DAC7 CSV export button */
.wa-dac7-csv {
    display: inline-flex; align-items: center; gap: var(--wag-space-8); margin-left: auto;
    padding: 10px 20px; background: #12171e; color: #fff !important;
    border-radius: 11px; font-size: 13.5px; font-weight: 700;
    text-decoration: none !important; line-height: 1;
    transition: background .15s ease, transform .1s ease;
}
.wa .wa-dac7-csv:hover { background: #2a3542; color: #fff; transform: translateY(-1px); }
.wa-dac7-csv svg { flex-shrink: 0; }
html[data-theme="dark"] .wa-dac7-csv { background: #2e7d52; }
html[data-theme="dark"] .wa-dac7-csv:hover { background: #1a6a3a; }
/* Enlaces de texto de la tarjeta (excluir / deshacer / eliminar): todos los
   estados declarados para que Astra no pinte su a:hover. */
.wa .wa-dac7-link,
.wa .wa-dac7-link:visited,
.wa .wa-dac7-link:focus { color: #2b7cb0; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; background: none; }
.wa .wa-dac7-link:hover,
.wa .wa-dac7-link:active { color: #1f5f8a; text-decoration: underline; background: none; }
.wa .wa-dac7-link--danger,
.wa .wa-dac7-link--danger:visited,
.wa .wa-dac7-link--danger:focus { color: #c0392b; }
.wa .wa-dac7-link--danger:hover,
.wa .wa-dac7-link--danger:active { color: #962d22; }
html[data-theme="dark"] .wa .wa-dac7-link { color: #7fc0e6; }
html[data-theme="dark"] .wa .wa-dac7-link--danger { color: #f08a7e; }

/* ── WAPS-PAY QA fixes ─────────────────────────────────────────────────────── */
/* QA-5: [hidden] pisado por display:flex (gotcha documentado) */
.wa-bk-refund-form[hidden] { display: none; }
/* QA-3: chip de mensajes nuevos en el hilo */
/* nowrap + flex-shrink: como hijo flex de la fila del hilo se encogía hasta
   partir "● New" en dos líneas, y el chip se leía como un borrón redondo
   encima del borde de la tarjeta (Marc, 2026-09-13). */
.wa-bk-newmsg {
    display: inline-block; margin-left: 8px; padding: 2px 10px;
    white-space: nowrap; flex-shrink: 0;
    background: #e8443a; color: #fff; border-radius: var(--wag-radius-999);
    font-size: var(--wag-text-11); font-weight: 800; letter-spacing: .02em;
}

/* ── Host instructions (accept form + destacado en reserva) ────────────────── */
.wa-bk-accept-form {
    margin-top: 10px; padding: 14px 16px;
    background: #f4faf6; border: 1px solid #cfe5d7; border-radius: var(--wag-radius-12);
    font-size: var(--wag-text-13);
}
.wa-bk-accept-form[hidden] { display: none; }
.wa-bk-accept-form label { display: block; font-weight: 700; color: #1a5235; margin-bottom: 8px; }
.wa-bk-accept-form label em { font-weight: 500; color: #7a8592; font-style: normal; }
.wa-bk-accept-form textarea {
    display: block; width: 100%; margin-top: 6px; padding: 10px 12px;
    border: 1px solid #cfe0d5; border-radius: 10px; font-size: var(--wag-text-14); resize: vertical;
}
.wa .wa-bk-accept-form textarea:focus { outline: none; border-color: #1a6a3a; box-shadow: 0 0 0 3px rgba(26,106,58,.1); }
.wa-bk-hostnote {
    margin-top: 10px; padding: 12px 16px;
    background: #fff8e6; border: 1px solid #ecd9a0; border-radius: var(--wag-radius-12);
    font-size: 13.5px; color: #4a3a10; line-height: 1.6; flex-basis: 100%;
}
.wa-bk-hostnote-title {
    display: block; font-size: var(--wag-text-11); font-weight: 800; text-transform: uppercase;
    letter-spacing: .06em; color: #7a5a12; margin-bottom: 4px;
}
html[data-theme="dark"] .wa-bk-accept-form { background: #16281e; border-color: #2e5540; }
html[data-theme="dark"] .wa-bk-accept-form textarea { background: #12161b; border-color: #2e5540; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-bk-hostnote { background: #241f12; border-color: #4a3f1e; color: #d8c88a; }

/* ── Owner Dashboard nav dropdown ────────────────────────────────────────────
   Reuses the Control Center / profile .wa-nav-group pattern so Team/Analytics/
   Reviews collapse into one "Manage" dropdown (row no longer overflows once
   Payments was added). Menu is right-aligned since the group sits last. */
body.wa-owner .wa-nav-group { position: relative; }
body.wa-owner .wa-nav-caret { opacity: .7; margin-left: 1px; }
body.wa-owner .wa-nav-menu {
    position: absolute; top: calc(100% + 4px); right: 0; left: auto; z-index: 50; min-width: 210px;
    background: var(--wag-surface); border: 1px solid var(--wa-line); border-radius: var(--wag-radius-12); padding: 6px;
    box-shadow: var(--wag-shadow-7);
    opacity: 0; visibility: hidden; transform: translateY(-4px);
    transition: opacity .14s, transform .14s, visibility .14s;
}
body.wa-owner .wa-nav-group:hover .wa-nav-menu,
body.wa-owner .wa-nav-group:focus-within .wa-nav-menu { opacity: 1; visibility: visible; transform: translateY(0); }
body.wa-owner .wa-nav-item {
    display: flex; align-items: center; gap: 9px; padding: 9px 11px; border-radius: 9px;
    color: #44505c; font-size: 13.5px; font-weight: 600; text-decoration: none; white-space: nowrap;
}
body.wa-owner .wa-nav-item .wa-tab-ico { color: var(--wa-accent); opacity: .9; }
body.wa-owner .wa-nav-item:hover { background: #f3f6f9; color: var(--wa-ink); }
body.wa-owner .wa-nav-item.is-active { background: #eaf3ee; color: var(--wa-accent); }
body.wa-owner .wa-nav-item .wa-tab-dot { position: static; margin-left: auto; }
html[data-theme="dark"] body.wa-owner .wa-nav-menu { background: var(--wag-type-nav-menu-dark-bg, var(--wag-style-nav-menu-dark-bg)); border-color: var(--wag-type-nav-menu-dark-line, var(--wag-style-nav-menu-dark-line)); }
html[data-theme="dark"] body.wa-owner .wa-nav-item { color: #ccd3da; }
html[data-theme="dark"] body.wa-owner .wa-nav-item:hover { background: #6b7280; color: var(--wa-ink); }

/* Control Center — mismo punto rojo que el Owner Dashboard, en el nav interno
   (Marc, 2026-07-28): el punto de "Control Center" en el menú de cuenta ya
   avisaba de que HABÍA algo pendiente, pero no decía DÓNDE — había que entrar
   a mirar las 9 colas una por una. Reutiliza .wa-tab-dot alineado al borde
   derecho del item, igual que ya hace el Owner Dashboard. */
body.wa-admin .wa-owner-tab .wa-tab-dot { position: static; margin-left: 2px; width: 7px; height: 7px; border-radius: 50%; background: var(--wa-attention, #e0392b); box-shadow: var(--wag-shadow-14); }
body.wa-admin .wa-nav-item .wa-tab-dot { position: static; margin-left: auto; }

/* ── Modal de confirmación WildAtlas (cancel booking + reutilizable) ───────── */
.wa-bkmodal-overlay {
    position: fixed; inset: 0; z-index: 99999;
    background: rgba(14, 24, 18, .45); backdrop-filter: blur(3px);
    display: flex; align-items: center; justify-content: center; padding: 20px;
    opacity: 0; transition: opacity .18s ease;
}
.wa-bkmodal-overlay.is-in { opacity: 1; }
.wa-bkmodal {
    background: var(--wag-surface); border-radius: var(--wag-radius-20); max-width: 420px; width: 100%;
    padding: 30px 30px 24px; text-align: center;
    box-shadow: 0 18px 50px rgba(10, 24, 16, .28);
    transform: translateY(10px) scale(.97); transition: transform .18s ease;
}
.wa-bkmodal-overlay.is-in .wa-bkmodal { transform: none; }
.wa-bkmodal-ico {
    width: 54px; height: 54px; border-radius: 50%; margin: 0 auto 14px;
    display: flex; align-items: center; justify-content: center;
}
.wa-bkmodal-ico.is-ok      { background: #eefaf3; color: #1a7a4a; }
.wa-bkmodal-ico.is-warn    { background: #fff7e6; color: #b07a12; }
.wa-bkmodal-ico.is-bad     { background: #fdf0ed; color: #c0432b; }
.wa-bkmodal-ico.is-neutral { background: #f0f4f8; color: #4a5a6a; }
.wa-bkmodal-title { margin: 0 0 8px; font-size: 19px; font-weight: 800; color: #12271b; }
.wa-bkmodal-line  { margin: 0 0 6px; font-size: 14.5px; line-height: 1.6; color: #3a4452; }
.wa-bkmodal-note  { margin: 0; font-size: 12.5px; color: #9aa5b1; }
.wa-bkmodal-btns  { display: flex; gap: 10px; margin-top: 20px; }
.wa-bkmodal-btns button {
    flex: 1; padding: 12px 10px; border-radius: var(--wag-radius-12); font-size: 14.5px;
    font-weight: 700; cursor: pointer; border: none;
    transition: filter .12s ease, transform .1s ease;
}
/* El overlay cuelga de document.body (bookings.js), no de .wa: el
   `.wa ` de delante nunca casaba y el hover no hacía nada. Astra trae un
   `button:hover { background-color: rgba(...,0) }` del customizer con más
   elementos en el selector (misma cuenta de clases, +1 elemento), que en
   empate de clases GANA por columna de elemento — volvía blanco el botón.
   Un ":hover" propio por botón (dos clases) le gana sin depender del padre. */
.wa-bkmodal-btns button:hover { filter: brightness(.95); transform: translateY(-1px); }
.wa-bkmodal-keep { background: #eef2f5; color: #2a3542; }
.wa-bkmodal-go   { background: #c0432b; color: #fff; }
.wa-bkmodal-keep:hover { background: #eef2f5; color: #2a3542; }
.wa-bkmodal-go:hover   { background: #c0432b; color: #fff; }
@media (max-width: 480px) { .wa-bkmodal-btns { flex-direction: column-reverse; } }
html[data-theme="dark"] .wa-bkmodal { background: var(--wag-dark-surface); }
html[data-theme="dark"] .wa-bkmodal-title { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-bkmodal-line { color: #b8c2cc; }
html[data-theme="dark"] .wa-bkmodal-keep { background: #2a313a; color: #d5dbe2; }

/* Archivar una reserva pasada. Discreto a propósito: es limpieza, no una acción
   destacada, y no debe competir con los botones de una reserva viva. */
.wa-bk-hide {
    margin-left: auto;
    padding: 4px 10px;
    border: 1px solid var(--wa-line, #e4eae6);
    border-radius: var(--wag-radius-999);
    background: transparent;
    color: #6b7a72;
    font-size: var(--wag-text-12); font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.wa .wa-bk-hide:hover { background: #f2f5f3; color: #16281e; }

/* Aviso del panel de propietario ("Proposal sent!", etc.).
   Antes iba con estilos en línea dentro de un echo suelto: no se podía adaptar
   al modo oscuro y salía fuera del contenedor. */
.wa-owner-notice {
    margin-bottom: 16px;
    padding: 12px 16px;
    border: 1px solid #2aab66;
    border-radius: 10px;
    background: #eefaf3;
    color: #1a5235;
    font-size: var(--wag-text-14);
    line-height: 1.45;
}
html[data-theme="dark"] .wa-owner-notice {
    background: rgba(42,171,102,.10);
    border-color: rgba(42,171,102,.45);
    color: #7fd6a4;
}

/* Acción de Custom Trip ya realizada: visible pero apagada.
   Se deja a la vista en vez de ocultarla para que el propietario vea QUE se
   envió; ocultarla dejaría el hueco y la duda de si llegó a salir. */
.wa-ct-btn--off,
.wa-ct-btn[disabled] {
    background: #eef1ef !important;
    color: #8b968f !important;
    border: 1px solid #dfe5e1;
    cursor: not-allowed;
    pointer-events: none;
}

/* Retirar una propuesta: acción destructiva, pero secundaria.
   En rojo suave y no en sólido — compite con Editar propuesta, que es lo que se
   quiere que se pulse casi siempre. */
.wa-ct-cancel-proposal {
    background: #fff0ee;
    color: #b3422b;
    border: 1px solid #f0cdc6;
}
.wa .wa-ct-cancel-proposal:hover:not(:disabled) { background: #ffe4df; }

/* ════════════════════════════════════════════════════════════════════════════
   ASTRA: matar el hover blanco de una vez
   ════════════════════════════════════════════════════════════════════════════

   Astra trae DOS reglas con el selector de elemento `button:hover` (main.min.css
   y su CSS dinámico en línea) que pintan `color: #fff`. Al ser un selector de
   elemento se aplica a TODOS los botones del sitio, y cualquier botón nuestro
   que no declare su propio :hover se queda con el texto blanco — invisible sobre
   fondo claro.

   Hasta ahora se venía parcheando componente a componente: hay al menos cinco
   sitios en este fichero con selectores prefijados por ID o !important solo para
   ganarle a esta regla. Esto lo ataja en el origen.

   POR QUÉ `inherit` Y NO UN COLOR FIJO
   Marc propuso cambiar el blanco por otro color de una vez. Medido en la web:
   NUEVE componentes tienen texto claro sobre fondo oscuro a propósito
   (wa-report-send blanco sobre rojo, wa-account-menu-close blanco sobre azul,
   wa-form-submit blanco sobre casi negro, la burbuja de chat…). A esos el blanco
   de Astra les acierta de casualidad, y un color oscuro global los dejaría
   ilegibles. `inherit` hace que cada botón conserve el color de su contexto en
   lugar de imponer uno.

   `:where()` es la pieza clave: aporta CERO especificidad, así que esta regla
   pesa lo mismo que la de Astra (0,1,1) y gana solo por ir después. Cualquier
   componente con su propio `.wa-algo:hover` (0,1,0 + pseudo) la sigue pisando,
   que es justo lo que se quiere: esto es una red de seguridad, no una imposición.
*/
button:where([class*="wa-"]):hover,
button:where([class*="wa-"]):focus,
a:where([class*="wa-"]):hover,
a:where([class*="wa-"]):focus {
    color: inherit;
}

/* Legacy templates with no `.wa-*` class are handled by the small runtime
   guard above. It only marks controls proven to have become white on a light
   background, so intended white text on dark CTA buttons is never flattened. */
.wa :where(a, button, input[type="submit"], input[type="button"], input[type="reset"])[data-wa-hover-guard]:where(:hover, :focus, :focus-visible) {
    color: var(--wa-hover-guard-color);
    -webkit-text-fill-color: var(--wa-hover-guard-color);
}

/* Los que SÍ deben seguir en blanco: texto claro sobre fondo oscuro propio.
   Lista medida sobre la web, no supuesta. Al declarar el color explícitamente
   dejan de depender de que Astra acierte por casualidad. */
.wa-form-submit:not(.wag-btn):hover, .wa-form-submit:not(.wag-btn):focus,
.wa-chat-launcher:hover, .wa-chat-launcher:focus,
.wa-chat-dismiss:hover, .wa-chat-dismiss:focus,
.wa-chat-back:hover, .wa-chat-back:focus,
.wa-chat-close:hover, .wa-chat-close:focus,
.wa-report-send:hover, .wa-report-send:focus,
.wa-account-menu-close:hover, .wa-account-menu-close:focus,
.wa .wa-contact-send:hover,
.wa .wa-contact-send:focus {
    color: var(--wag-type-ficha-form-submit-hover-ink, var(--wag-style-ficha-form-submit-hover-ink));
}

/* ── SEO answer block (species /hotspots/ money pages) ─────────────────────── */
/* Mismas medidas de caja que .wa-subsp (Marc, 2026-07-26: "que no tenga cada
   cosa un margen distinto"). Antes iba a max-width:820px centrado, así que en
   escritorio quedaba más estrecho y descentrado respecto al resto de bloques.
   Solo cambia la CAJA; los colores siguen siendo los suyos. */
.wa-seo-answer {
    margin: 0 0 18px; padding: 14px 16px;
    background: var(--wag-type-seo-answer-bg, var(--wag-style-seo-answer-bg)); border: 1px solid var(--wag-type-seo-answer-line, var(--wag-style-seo-answer-line)); border-radius: var(--wag-type-seo-answer-radius, var(--wag-style-seo-answer-radius));
}
.wa-seo-answer h2 {
    margin: 0 0 8px; font-size: 19px; font-weight: 800; color: #12271b;
}
.wa-seo-answer p { margin: 0; font-size: 15px; line-height: 1.7; color: #3a4452; }
.wa-seo-answer a { color: #1a6a3a; font-weight: 600; text-decoration: none; }
.wa .wa-seo-answer a:hover { text-decoration: underline; }
html[data-theme="dark"] .wa-seo-answer { background: var(--wag-type-seo-answer-dark-bg, var(--wag-style-seo-answer-dark-bg)); border-color: var(--wag-type-seo-answer-dark-line, var(--wag-style-seo-answer-dark-line)); }
html[data-theme="dark"] .wa-seo-answer h2 { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-seo-answer p { color: #b8c2cc; }

/* ── Especies aportadas por la comunidad (Report Species) ──────────────────── */
/* Badge sobre la tarjeta del grid de temporada: la especie está VIVA y visible
   al instante (modelo Wikipedia), marcada como pendiente hasta que un editor la
   verifique. */
.species-season-comm {
    position: absolute;
    top: 8px; left: 8px;
    z-index: 2;
    padding: 3px 9px;
    border-radius: var(--wag-radius-999);
    background: rgba(20, 30, 45, .72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #cfe3ff;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: .04em; text-transform: uppercase;
}
.species-season-card--community .species-season-image { position: relative; }
/* Borde sutil para reforzar que es una aportación pendiente, sin gritar. */
.species-season-card--community { box-shadow: inset 0 0 0 1.5px rgba(90, 140, 200, .28); border-radius: 14px; }

/* ── Cola de validación (Control Center → Community) ───────────────────────── */
.wa-season-admin { }
.wa-scq-title { margin: 0 0 4px; font-size: var(--wag-text-16); font-weight: 800; color: #16281e; }
.wa-scq-intro { margin: 0 0 14px; color: #6b7683; font-size: var(--wag-text-13); line-height: 1.5; }
.wa-scq-empty { color: #8a95a3; padding: 18px 0; }

.wa-season-tab {
    
    font-weight: 700; cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}
.wa .wa-season-tab:hover { background: #f2f5f3; }
.wa-season-tab.is-active { background: #14552f; color: #fff; border-color: #14552f; }

.wa-scq-table { width: 100%; border-collapse: collapse; font-size: var(--wag-text-13); }
.wa-scq-cell { padding: 12px 10px; }
.wa-scq-table tr { border-top: 1px solid #eef1f4; }
.wa-scq-table tr:first-child { border-top: 0; }
.wa-scq-cell strong { color: #16281e; }
.wa-scq-cell a { color: #1a6a3a; text-decoration: none; }
.wa .wa-scq-cell a:hover { text-decoration: underline; }
.wa-scq-meta { color: #8a95a3; font-size: var(--wag-text-12); }
.wa-scq-note { color: #6b7683; }

.wa-scq-actions { padding: 12px 10px; text-align: right; white-space: nowrap; }
.wa-scq-btn {
    padding: 6px 13px; margin-left: 6px; border: 1px solid transparent; border-radius: var(--wag-radius-8);
    font-size: 12.5px; font-weight: 700; cursor: pointer; transition: filter .15s, background .15s;
}
.wa-scq-btn:disabled { opacity: .5; cursor: default; }
.wa-scq-btn--ok     { background: #e7f6ee; color: #1a7a44; border-color: #bfe6cf; }
.wa .wa-scq-btn--ok:hover:not(:disabled) { background: #d6efe0; }
.wa-scq-btn--warn   { background: #fff6e5; color: #a5730a; border-color: #f0dcae; }
.wa .wa-scq-btn--warn:hover:not(:disabled) { background: #ffeecb; }
.wa-scq-btn--danger { background: #fdecea; color: #b3392b; border-color: #f2cec8; }
.wa .wa-scq-btn--danger:hover:not(:disabled) { background: #fbdcd7; }

/* ── Chip de subespecies (ficha de especie) ────────────────────────────────── */
/* La especie principal actúa de nodo; las subespecies son chips clicables. Va
   encima de la descripción, discreto pero presente. */
.wa-subsp {
    margin: 0 0 18px;
    padding: 16px;
    background: var(--wag-type-subsp-bg, var(--wag-style-subsp-bg));
    border: 1px solid var(--wag-type-subsp-line, var(--wag-style-subsp-line));
    border-radius: var(--wag-type-subsp-radius, var(--wag-style-subsp-radius));
}
.wa-subsp-head {
    display: flex; align-items: center; gap: 7px;
    font-size: var(--wag-text-13); color: var(--wag-type-subsp-head-ink, var(--wag-style-subsp-head-ink)); margin-bottom: 10px;
}
.wa-subsp-head svg { color: #7a9ab5; flex: 0 0 auto; }
.wa-subsp-head strong { color: #1a2a38; font-weight: 700; }
.wa-subsp-head a { color: inherit; text-decoration: none; }
.wa .wa-subsp-head a:hover { text-decoration: underline; }

.wa-subsp-chips { display: flex; flex-wrap: wrap; gap: var(--wag-space-8); }
.wa-subsp-chip {
    display: inline-flex; align-items: center;
    padding: 6px 13px; border-radius: var(--wag-radius-999);
    background: var(--wag-surface); border: 1px solid var(--wag-type-subsp-chip-line, var(--wag-style-subsp-chip-line));
    font-size: var(--wag-text-13); font-weight: 600; color: var(--wag-type-subsp-chip-ink, var(--wag-style-subsp-chip-ink));
    text-decoration: none; cursor: pointer;
    transition: background .15s, border-color .15s, transform .12s;
}
.wa .wa-subsp-chip:hover { background: var(--wag-type-subsp-chip-hover-bg, var(--wag-style-subsp-chip-hover-bg)); border-color: var(--wag-type-subsp-chip-hover-line, var(--wag-style-subsp-chip-hover-line)); transform: translateY(-1px); }
.wa-subsp-chip--current {
    background: #1a4a67; border-color: #1a4a67; color: #fff;
    cursor: default; pointer-events: none;
}
html[data-theme="dark"] .wa-subsp {
    background: var(--wag-type-subsp-dark-bg, var(--wag-style-subsp-dark-bg)); border-color: var(--wag-type-subsp-dark-line, var(--wag-style-subsp-dark-line));
}
html[data-theme="dark"] .wa-subsp-head strong { color: #e8eef3; }
html[data-theme="dark"] .wa-subsp-chip {
    background: var(--wag-type-subsp-chip-dark-bg, var(--wag-style-subsp-chip-dark-bg)); border-color: var(--wag-type-subsp-chip-dark-line, var(--wag-style-subsp-chip-dark-line)); color: var(--wag-type-subsp-chip-dark-ink, var(--wag-style-subsp-chip-dark-ink));
}
html[data-theme="dark"] .wa-subsp-chip--current { background: #2f6690; border-color: #2f6690; color: #fff; }

/* ── Aviso: hotspot sin Featured Image (Owner Dashboard) ───────────────────── */
/* Alta prioridad: un hotspot sin imagen rompe cards y héroes. Rojo, con acción
   directa a "Manage content". */
.wa-owner-card--needimg { border-color: #f0c4bd; box-shadow: 0 0 0 1px #f0c4bd inset; }
.wa-owner-needimg {
    display: flex; align-items: center; gap: var(--wag-space-8);
    margin: 8px 0 4px;
    padding: 9px 12px;
    border-radius: var(--wag-type-owner-needimg-radius, var(--wag-style-owner-needimg-radius));
    background: var(--wag-type-owner-needimg-bg, var(--wag-style-owner-needimg-bg));
    border: 1px solid var(--wag-type-owner-needimg-line, var(--wag-style-owner-needimg-line));
    color: var(--wag-type-owner-needimg-ink, var(--wag-style-owner-needimg-ink));
    font-size: 12.5px; font-weight: 600; line-height: 1.35;
    text-decoration: none;
    transition: background .15s;
}
.wa .wa-owner-needimg:hover { background: var(--wag-type-owner-needimg-hover-bg, var(--wag-style-owner-needimg-hover-bg)); }
.wa-owner-needimg svg { flex: 0 0 auto; color: #d0453a; }
html[data-theme="dark"] .wa-owner-needimg {
    background: var(--wag-type-owner-needimg-dark-bg, var(--wag-style-owner-needimg-dark-bg)); border-color: var(--wag-type-owner-needimg-dark-line, var(--wag-style-owner-needimg-dark-line)); color: var(--wag-type-owner-needimg-dark-ink, var(--wag-style-owner-needimg-dark-ink));
}
html[data-theme="dark"] .wa-owner-card--needimg { border-color: rgba(214,64,54,.4); box-shadow: 0 0 0 1px rgba(214,64,54,.4) inset; }

/* Subespecie sin ficha propia (viene de iNaturalist): informa, no navega. */
.wa-subsp-chip--plain {
    background: var(--wag-type-subsp-chip--plain-bg, var(--wag-style-subsp-chip--plain-bg)); color: var(--wag-type-subsp-chip--plain-ink, var(--wag-style-subsp-chip--plain-ink)); border-style: dashed; cursor: default;
}
.wa .wa-subsp-chip--plain:hover { transform: none; background: var(--wag-type-subsp-chip--plain-hover-bg, var(--wag-style-subsp-chip--plain-hover-bg)); border-color: var(--wag-type-subsp-chip--plain-hover-line, var(--wag-style-subsp-chip--plain-hover-line)); }
/* .wa-subsp-chip es inline-flex, así que el atributo hidden NO oculta por sí
   solo: hace falta esta regla o las subespecies "escondidas" se ven igual.
   (Misma trampa documentada en CLAUDE.md para el overlay de auth y el alta de
   listas — es la tercera vez.) */
.wa-subsp-chip[hidden] { display: none; }

/* "+N more" es un <button> real: despliega la cola larga de subespecies. */
.wa-subsp-chip--more {
    background: var(--wag-type-subsp-chip--more-bg, var(--wag-style-subsp-chip--more-bg)); border-style: dashed; color: var(--wag-type-subsp-chip--more-ink, var(--wag-style-subsp-chip--more-ink));
    cursor: pointer; font: inherit; font-size: var(--wag-text-13); font-weight: 600;
}
.wa .wa-subsp-chip--more:hover { background: var(--wag-type-subsp-chip--more-hover-bg, var(--wag-style-subsp-chip--more-hover-bg)); border-color: var(--wag-type-subsp-chip--more-hover-line, var(--wag-style-subsp-chip--more-hover-line)); color: var(--wag-type-subsp-chip--more-hover-ink, var(--wag-style-subsp-chip--more-hover-ink)); }
.wa .wa-subsp-chip--more:focus-visible { outline: 2px solid var(--wag-type-subsp-chip--more-focus-ring, var(--wag-style-subsp-chip--more-focus-ring)); outline-offset: 2px; }
html[data-theme="dark"] .wa-subsp-chip--plain { background: var(--wag-type-subsp-chip--plain-dark-bg, var(--wag-style-subsp-chip--plain-dark-bg)); color: var(--wag-type-subsp-chip--plain-dark-ink, var(--wag-style-subsp-chip--plain-dark-ink)); }

/* =============================================================
   ICON MANAGER — .wa-ico
   =============================================================
   Los iconos de serie salen como <svg> en línea y heredan el color con
   currentColor. Un icono SUBIDO por el admin no puede heredar color si se pinta
   como <img>, así que se usa como MÁSCARA sobre un fondo currentColor: el
   resultado se comporta igual que el SVG original, cambia de color según el
   componente y funciona sobre fondo claro u oscuro.

   Requisito del archivo: silueta con FONDO TRANSPARENTE. La máscara solo lee el
   canal alfa, así que negro o blanco da lo mismo; un fondo opaco saldría como un
   rectángulo relleno. */
.wa-ico { flex-shrink: 0; }

/* Icono personalizado SVG en línea (inc/icons/icons.php): toma el color del
   texto, como hacía la máscara — rellenos y trazos a currentColor. */
.wa-ico--svgcustom { display: inline-block; vertical-align: middle; flex: none; fill: currentColor; }
.wa-ico--svgcustom [fill]:not([fill="none"]) { fill: currentColor; }
.wa-ico--svgcustom [stroke]:not([stroke="none"]) { stroke: currentColor; }

.wa-ico--custom {
    display: inline-block;
    vertical-align: middle;
    background-color: currentColor;
    -webkit-mask-image: var(--wa-ico-url);
            mask-image: var(--wa-ico-url);
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
    /* Safari (iPhone) pinta los elementos con máscara en una capa aparte y, al
       hacer scroll, por encima de las barras fijas (Marc, 2026-10-04: el icono
       de «Proponer un hotspot» sobre la barra de la home). Darle capa propia
       al icono hace que vuelva a respetar el orden de apilado. */
    -webkit-transform: translateZ(0); transform: translateZ(0);
}

/* ── Icon Manager (Control Center → Iconos) ──────────────────────────────── */
.wa-icons-rules {
    background: #f4f8f5; border: 1px solid #e2ece4; border-radius: 14px;
    padding: 14px 18px; margin: 0 0 22px; font-size: var(--wag-text-13); color: #3a4452;
}
.wa-icons-rules strong { display: block; margin-bottom: 6px; color: #12271b; }
.wa-icons-rules ul { margin: 0; padding-left: 18px; }
.wa-icons-rules li { margin: 3px 0; line-height: 1.55; }

.wa-icons-group {
    font-size: var(--wag-text-12); font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
    color: #7a8b99; margin: 22px 0 10px;
}
.wa-icons-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--wag-space-12);
}
.wa-icons-item {
    position: relative; text-align: center;
    padding: 16px 12px 12px; border-radius: 14px;
    background: var(--wa-card, #fff); border: 1px solid var(--wa-line, #eaedf1);
}
.wa-icons-item.is-custom { border-color: #2f6690; }
.wa-icons-preview {
    display: flex; align-items: center; justify-content: center;
    height: 46px; color: #1a2a38;
}
.wa-icons-name { font-size: var(--wag-text-13); font-weight: 700; color: var(--wa-ink, #1a1e24); margin-top: 6px; }
.wa-icons-key  { display: block; font-size: 10.5px; color: #8a95a3; margin: 2px 0 8px; }
.wa-icons-note { font-size: var(--wag-text-11); color: #8a95a3; line-height: 1.45; margin: 0 0 8px; }
.wa-icons-actions { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.wa-icons-badge {
    position: absolute; top: 8px; right: 8px;
    font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
    background: #2f6690; color: #fff; padding: 2px 7px; border-radius: var(--wag-radius-999);
}
html[data-theme="dark"] .wa-icons-preview { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-icons-rules { background: #171c22; border-color: #2a313a; color: #b8c2cc; }
html[data-theme="dark"] .wa-icons-rules strong { color: var(--wag-dark-ink); }

/* Imágenes por defecto: la vista previa es una FOTO, no un icono, así que se
   muestra tal cual (sin máscara) y con la proporción de una card. */
.wa-icons-grid--img { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.wa-icons-imgprev {
    height: 130px; border-radius: 10px; margin-bottom: 10px;
    background-size: cover; background-position: center; background-color: #eef1f4;
}
.wa-climate-banners-intro { max-width: 780px; margin: -4px 0 12px; }
.wa-icons-imgprev--empty { display:grid; place-items:center; background:linear-gradient(135deg,#316f70,#75b8be); color:rgba(255,255,255,.9); }
.wa-icons-imgprev--empty span { padding:5px 9px; border:1px solid rgba(255,255,255,.28); border-radius:var(--wag-radius-999); background:rgba(18,52,48,.22); font-size:10px; font-weight:800; }
.wa-climate-banner-item .wa-icons-name code { color:#a15e32; font-size:10px; }


/* ── Notificaciones de administración (Control Center → Ajustes) ──────────── */
.wa-notify-to   { font-size: 13.5px; margin: 0 0 10px; }
.wa-notify-src  { color: #8a95a3; font-size: var(--wag-text-12); }
.wa-notify-row  { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; align-items: center; margin: 0 0 10px; }
.wa-notify-row input[type="email"] { flex: 1 1 260px; min-width: 0; }
.wa-notify-warn {
    background: #fdecea; border: 1px solid #f2cec8; color: #8d2b1f;
    border-radius: 10px; padding: 9px 12px; font-size: var(--wag-text-13); line-height: 1.5; margin: 0 0 10px;
}
.wa-notify-ok   { color: var(--wag-accent); font-size: 12.5px; margin: 0 0 10px; }
.wa-notify-sub  { font-size: 12.5px; color: #8a95a3; margin: 10px 0 4px; }
.wa-notify-list { margin: 0 0 4px; padding-left: 18px; font-size: var(--wag-text-13); }
.wa-notify-list li { margin: 2px 0; }

/* Contador de pendientes junto a "Control Center" en el desplegable de cuenta.
   El punto rojo dice QUE hay algo; esto dice CUÁNTO. */
.wa-account-menu-count {
    margin-left: auto;
    min-width: 18px;
    padding: 1px 6px;
    border-radius: var(--wag-radius-999);
    background: #d92638;
    color: #fff;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1.5;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* ── WAGS · Material y enlaces de afiliado ───────────────────────────────── */
.wa-gear-table { width: 100%; border-collapse: collapse; font-size: var(--wag-text-13); }
.wa-gear-table th {
    text-align: left; font-size: var(--wag-text-11); text-transform: uppercase; letter-spacing: .04em;
    color: #8a95a3; padding: 6px 8px; border-bottom: 1px solid #e6ecf1;
}
.wa-gear-table td { padding: 5px 8px; border-bottom: 1px solid #f0f3f6; vertical-align: middle; }
.wa-gear-table input { width: 100%; box-sizing: border-box; font-size: var(--wag-text-13); padding: 5px 7px; }
.wa-gear-del { border: 0; background: none; color: #c0392b; cursor: pointer; font-size: var(--wag-text-14); }

.wa-gear-group {
    margin: 16px 0 6px; font-size: var(--wag-text-11); font-weight: 800; letter-spacing: .06em;
    text-transform: uppercase; color: #7a8b99;
}
.wa-gear-rule {
    display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap;
    padding: 7px 0; border-bottom: 1px solid #f0f3f6;
}
.wa-gear-if    { flex: 0 0 260px; font-size: var(--wag-text-13); font-weight: 600; color: #1a2a38; }
.wa-gear-arrow { color: #b7c0ca; }
.wa-gear-picks { display: flex; flex-wrap: wrap; gap: 4px 14px; flex: 1 1 300px; }
.wa-gear-chk   { font-size: 12.5px; color: #3a4452; white-space: nowrap; cursor: pointer; }
html[data-theme="dark"] .wa-gear-if { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-gear-chk { color: #b8c2cc; }

/* ═══════════════════════════════════════════════════════════════════════════
   WILDATLAS SOCIAL — generador de posts (Control Center → Generadores → Social)
   ---------------------------------------------------------------------------
   .wa-social-*  el PANEL. Vive dentro del Control Center y hereda su estilo.

   La tarjeta es un <canvas> (canvas.wa-sc.wa-sc-canvas) que dibuja
   wa-social-canvas.js: no lleva CSS propio más allá de su caja. Las tarjetas
   de HTML + html2canvas, y sus cientos de reglas .wa-sc-* / .wa-at-*, se
   borraron el 2026-09-25. Ojo: .wa-sc-body, .wa-sc-title… más arriba son de
   las tarjetas del BUSCADOR, no de esto.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Panel ───────────────────────────────────────────────────────────────── */
.wa-social-warn {
    background: #fff6e5; border: 1px solid #f0d9a8; color: #7a5a12;
    border-radius: 10px; padding: 11px 14px; font-size: var(--wag-text-13); margin-bottom: 18px;
}
.wa-social-help { color: #7b8794; font-size: var(--wag-text-13); margin: 0 0 16px; line-height: 1.5; }
.wa-social-help--tight { margin: 10px 0 0; font-size: 12.5px; }
.wa-social-h4 { margin: 28px 0 8px; font-size: var(--wag-text-14); }

/* LOS BUSCADORES, ALINEADOS.
   Era `flex-wrap` con `align-items: flex-end`, y ahí estaba el desorden: alinear
   por abajo significa que un campo con texto de ayuda debajo sube su input y el
   de al lado no, así que las tres cajas quedaban a tres alturas distintas. Con
   rejilla y `align-items: start` todas las etiquetas arrancan en la misma línea
   y los inputs caen en la misma fila, lleven ayuda debajo o no. */
.wa-social-controls {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px 16px; align-items: start; margin-bottom: 20px;
}
.wa-social-field { display: flex; flex-direction: column; gap: 5px; position: relative; min-width: 0; }
.wa-social-field--wide { grid-column: span 2; }
/* display:flex gana a [hidden]. Es la tercera vez que muerde este proyecto
   (overlay de auth, caja de crear lista, y ahora el selector de dato). */
.wa-social-field[hidden] { display: none; }
.wa-social-field--full { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 5px; margin-top: 14px; }
.wa-social-field > span {
    font-size: var(--wag-text-12); font-weight: 600; color: #4a5563;
    min-height: 16px; display: flex; justify-content: space-between; align-items: baseline; gap: var(--wag-space-8);
}
.wa-social-field > small { font-size: 11.5px; color: #96a0ac; }
.wa-social-field input[type="text"],
.wa-social-field input[type="url"],
.wa-social-field select,
.wa-social-field textarea {
    width: 100%; padding: 8px 10px; border: 1px solid var(--wag-type-field-social-line, var(--wag-style-field-social-line)); border-radius: var(--wag-radius-8);
    font-size: 13.5px; background: var(--wag-surface); color: var(--wag-type-field-social-ink, var(--wag-style-field-social-ink));
}
.wa-social-field textarea { resize: vertical; font-family: inherit; }

/* Autocompletado */
.wa-social-ac {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 40;
    background: var(--wag-surface); border: 1px solid #d6dde4; border-radius: 10px;
    box-shadow: 0 10px 26px rgba(20, 28, 38, .13); overflow: hidden; margin-top: 3px;
    max-height: 300px; overflow-y: auto;
}
.wa-social-ac[hidden] { display: none; }
.wa-social-ac-item {
    display: flex; justify-content: space-between; align-items: center; gap: var(--wag-space-12);
    width: 100%; padding: 9px 12px; border: 0; background: none; cursor: pointer;
    font-size: 13.5px; text-align: left; color: #1a1e24;
}
.wa .wa-social-ac-item:hover { background: #f2f6f9; }
.wa-social-ac-item em { font-style: normal; font-size: var(--wag-text-11); color: #8a95a3; white-space: nowrap; }

/* Escenario */
.wa-social-stage { display: flex; gap: var(--wag-space-24); flex-wrap: wrap; align-items: flex-start; }
.wa-social-canvas-wrap { flex: 0 0 540px; max-width: 100%; }
.wa-social .wa-sc-stage {
    width: 540px; max-width: 100%; aspect-ratio: 1080 / 1350;
    background: #10141a; border-radius: var(--wag-radius-12); overflow: hidden; position: relative;
}
.wa-social-placeholder {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    color: #6b7683; font-size: var(--wag-text-14); text-align: center; padding: 30px;
}
.wa-social-slides { display: flex; gap: var(--wag-space-8); margin-top: 10px; }
.wa-social-slide {
    border: 1px solid #d6dde4; background: var(--wag-surface); border-radius: 7px;
    padding: 5px 12px; font-size: 12.5px; cursor: pointer; color: #4a5563;
}
.wa-social-slide.is-on { background: #1a1e24; border-color: #1a1e24; color: #fff; }

.wa-social-side { flex: 1 1 260px; min-width: 240px; }
.wa-social-drop {
    border: 2px dashed #ccd5de; border-radius: var(--wag-radius-12); padding: 26px 18px;
    text-align: center; color: #6b7683; font-size: var(--wag-text-13); display: flex;
    flex-direction: column; gap: 5px; transition: border-color .15s, background .15s;
}
.wa-social-drop.is-over { border-color: #4fadd4; background: #eef7fb; }
.wa-social-drop strong { font-size: var(--wag-text-14); color: #1a1e24; }
.wa-social-link { border: 0; background: none; padding: 0; color: #2f7fa8; cursor: pointer;
                  font-size: var(--wag-text-13); text-decoration: underline; }
.wa-social-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.wa-social-btn--go { background: #1a1e24; }
.wa-social-msg { font-size: 12.5px; color: #7b8794; margin-top: 10px; line-height: 1.45; }
.wa-social-msg.is-ok   { color: var(--wag-accent); }
.wa-social-msg.is-err  { color: #c0392b; }
.wa-social-msg.is-warn { color: #a5701a; }
.wa-social-err  { color: #c0392b; font-size: var(--wag-text-13); }
.wa-social-note { color: #a5701a; font-size: 12.5px; margin: 0 0 10px; }

/* Variantes de pie */
.wa-social-variants { display: grid; gap: 10px; margin-bottom: 4px; }
.wa-social-variant {
    display: block; width: 100%; text-align: left; cursor: pointer;
    border: 1px solid #dde4ea; border-radius: 10px; background: var(--wag-surface); padding: 11px 13px;
}
.wa .wa-social-variant:hover { border-color: #b9c6d1; }
.wa-social-variant.is-on { border-color: #1a1e24; background: #f6f8fa; }
.wa-social-variant em { display: block; font-style: normal; font-size: var(--wag-text-11); font-weight: 700;
                        letter-spacing: .06em; text-transform: uppercase; color: #8a95a3; margin-bottom: 5px; }
.wa-social-variant span { font-size: 13.5px; line-height: 1.55; color: #1a1e24; }
.wa-social-count { font-size: var(--wag-text-12); color: #8a95a3; }
.wa-social-count.is-over { color: #c0392b; font-weight: 700; }

/* ── Mandos del motor de canvas (plantilla `experience`) ──────────────────
   Dos cajas hermanas, no un apéndice de la fila de arriba: son otro nivel de
   decisión —el aspecto de la tarjeta, no qué tarjeta— y mezclarlos con los
   buscadores era la mitad del ruido. Reutilizan los tokens del panel (#4a5563
   para etiquetas, #d6dde4 para bordes) porque es el mismo panel. */
.wa-social-canvasctl {
    display: grid; grid-template-columns: minmax(200px, 1fr) minmax(320px, 2fr);
    gap: var(--wag-space-16); margin-bottom: 22px; align-items: start;
}
.wa-social-canvasctl[hidden] { display: none; }

/* Caja de grupo, compartida por la paleta, el mapa y la columna de la derecha.
   Antes cada grupo se pintaba distinto —unos con borde, otros sueltos, otros
   con cabecera— y por eso la columna parecía un cajón de sastre. */
.wa-social-box {
    display: flex; flex-direction: column; gap: 10px;
    border: 1px solid #d6dde4; border-radius: 10px; padding: 12px 14px 14px;
    background: #fbfcfd;
}
.wa-social-box[hidden] { display: none; }
.wa-social-box-h {
    display: block; font-size: var(--wag-text-12); font-weight: 600; color: #4a5563;
    letter-spacing: .01em;
}
.wa-social-box-h em { font-style: normal; font-weight: 400; color: #8a95a3; }
.wa-social-box-h b { color: #2f7fa8; }   /* el nombre del texto seleccionado */
.wa-social-box > small,
.wa-social-box > p { font-size: 11.5px; color: #96a0ac; margin: 0; line-height: 1.45; }

.wa-social-pal { display: flex; flex-wrap: wrap; gap: var(--wag-space-8); }
.wa-social-sw {
    
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14);
    transition: transform .12s ease;
}
.wa-social-sw:hover { transform: scale(1.09); }
.wa-social-sw--sm { width: 24px; height: 24px; }
/* «Automático» lleva aro punteado: se pinta con el color que decide la paleta,
   así que sin la marca parecería una elección fija más. */
.wa-social-sw--auto { box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 3px rgba(0,0,0,.35); }
#wa-social-dist-wrap[hidden] { display: none; }

.wa-social-box-sub { font-size: 11.5px; font-weight: 600; color: #8a95a3; margin-top: 2px; }
html[data-theme="dark"] .wa-social-box-sub { color: #93a0ab; }

.wa-social-mapctl-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 16px;
}
.wa-social-mapctl .wa-social-field { gap: 3px; }
.wa-social-mapctl .wa-social-link { align-self: flex-start; font-size: 11.5px; }

/* La columna de la derecha: mismo aire entre cajas que entre campos arriba. */
.wa-social-side > .wa-social-box { margin-bottom: 14px; }
.wa-social-side > .wa-social-box:last-of-type { margin-bottom: 0; }
.wa-social-box--foto .wa-social-drop,
.wa-social-box .wa-social-help--tight{ margin: 0; }

html[data-theme="dark"] .wa-social-box { background: #171c23; border-color: #333c47; }
html[data-theme="dark"] .wa-social-box-h { color: #cbd4dd; }
html[data-theme="dark"] .wa-social-sw { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }

@media (max-width: 900px) {
    .wa-social-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wa-social-canvasctl { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .wa-social-controls { grid-template-columns: 1fr; }
    .wa-social-field--wide { grid-column: auto; }
}

.wa-social-pool { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.wa-social-poolbox { display: flex; flex-direction: column; gap: 5px; }
.wa-social-poolbox > span { font-size: var(--wag-text-12); font-weight: 600; color: #4a5563; }
.wa-social-poolbox textarea {
    width: 100%; padding: 8px 10px; border: 1px solid #d6dde4; border-radius: var(--wag-radius-8);
    font-size: 12.5px; resize: vertical; font-family: inherit;
}
.wa-social-poolbox small { font-size: 11.5px; color: #96a0ac; }
.wa-social-poolbox code { background: #eef2f5; padding: 1px 4px; border-radius: var(--wag-radius-4); font-size: var(--wag-text-11); }

html[data-theme="dark"] .wa-social-field > span,
html[data-theme="dark"] .wa-social-poolbox > span { color: #cbd4dd; }
html[data-theme="dark"] .wa-social-field input,
html[data-theme="dark"] .wa-social-field select,
html[data-theme="dark"] .wa-social-field textarea,
html[data-theme="dark"] .wa-social-poolbox textarea,
html[data-theme="dark"] .wa-social-variant,
html[data-theme="dark"] .wa-social-ac { background: var(--wag-type-field-social-dark-bg, var(--wag-style-field-social-dark-bg)); border-color: var(--wag-type-field-social-dark-line, var(--wag-style-field-social-dark-line)); color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-social-variant span,
html[data-theme="dark"] .wa-social-ac-item,
html[data-theme="dark"] .wa-social-drop strong{ color: var(--wag-dark-ink); }

@media (max-width: 900px) {
    .wa-social-canvas-wrap { flex: 1 1 100%; }
    .wa-social .wa-sc-stage { width: 100%; }
}

/* ── La caja del lienzo (el JS le pone el tamaño real en línea) ──────────── */
.wa-sc {
    position: relative; width: 540px; height: 675px; overflow: hidden;
    background: #1a1e24; color: var(--wag-dark-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

/* Tres nombres en el autocompletado (inglés, castellano, científico). */
.wa-social-ac-item > span { display: flex; flex-direction: column; gap: 1px; }
.wa-social-ac-item i { font-style: italic; font-size: 11.5px; color: #8a95a3; }
.wa-social-field > span em { font-style: normal; font-weight: 400; color: #96a0ac; }
html[data-theme="dark"] .wa-social-ac-item i { color: #93a0ab; }

/* ── Panel Social: control de zoom con estilo PROPIO ─────────────────────────
   REGLA (Marc, 2026-07-27): este módulo no depende de NINGÚN color de Astra.
   Marc puso --ast-global-color-0/1 en transparente y el pulgar del deslizador
   desapareció, porque el `accent-color` que el navegador usa por defecto lo
   estaba tomando de ahí. Un control que se vuelve invisible cuando cambias un
   ajuste del tema no es un control.

   Por eso el deslizador se dibuja entero aquí —pista y pulgar, WebKit y Gecko—
   con hexadecimales literales. Nada de `accent-color`, nada de var(--ast-*),
   nada de heredar. Lo mismo vale para cualquier control que se añada a este
   panel en el futuro: si su color puede venir del tema, se declara. ---------- */
.wa-social input[type="range"] {
    -webkit-appearance: none; appearance: none;
    width: 100%; height: 20px; margin: 0; padding: 0;
    background: transparent; cursor: pointer;
    accent-color: auto;   /* neutraliza cualquier accent heredado */
}
.wa-social input[type="range"]::-webkit-slider-runnable-track {
    height: 5px; border-radius: 3px; background: #d3dbe3; border: 0;
}
.wa-social input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 17px; height: 17px; margin-top: -6px;
    border-radius: 50%; background: #1a1e24; border: 2px solid #ffffff;
    box-shadow: 0 1px 4px rgba(16, 20, 26, .35);
}
.wa .wa-social input[type="range"]:focus { outline: none; }
.wa .wa-social input[type="range"]:focus::-webkit-slider-thumb { background: #2f7fa8; }
.wa-social input[type="range"]::-moz-range-track {
    height: 5px; border-radius: 3px; background: #d3dbe3; border: 0;
}
.wa-social input[type="range"]::-moz-range-thumb {
    width: 15px; height: 15px; border-radius: 50%;
    background: #1a1e24; border: 2px solid #ffffff;
    box-shadow: 0 1px 4px rgba(16, 20, 26, .35);
}
html[data-theme="dark"] .wa-social input[type="range"]::-webkit-slider-runnable-track,
html[data-theme="dark"] .wa-social input[type="range"]::-moz-range-track { background: #3a444f; }
html[data-theme="dark"] .wa-social input[type="range"]::-webkit-slider-thumb,
html[data-theme="dark"] .wa-social input[type="range"]::-moz-range-thumb {
    background: var(--wag-dark-ink); border-color: #1c222a;
}

/* Los botones también con color propio. "Reiniciar" es secundario: que no
   compita visualmente con "Descargar PNG", que es la acción de verdad. */
.wa-social .wa-wahs-btn {
    background: var(--wag-type-wahs-btn-bg, var(--wag-style-wahs-btn-bg)); color: #ffffff; border: 1px solid var(--wag-type-wahs-btn-line, var(--wag-style-wahs-btn-line));
    border-radius: var(--wag-radius-8); padding: 9px 16px; font-size: var(--wag-text-13); font-weight: 600;
    cursor: pointer; line-height: 1.2;
}
.wa .wa-social .wa-wahs-btn:hover { background: var(--wag-type-wahs-btn-hover-bg, var(--wag-style-wahs-btn-hover-bg)); border-color: var(--wag-type-wahs-btn-hover-line, var(--wag-style-wahs-btn-hover-line)); color: var(--wag-type-wahs-btn-hover-ink, var(--wag-style-wahs-btn-hover-ink)); }
.wa-social #wa-social-reset {
    background: var(--wag-surface); color: #4a5563; border-color: #d3dbe3;
}
.wa .wa-social #wa-social-reset:hover { background: #f2f6f9; color: #1a1e24; border-color: #b9c6d1; }
.wa-social #wa-social-save { background: var(--wag-accent); border-color: var(--wag-accent); color: #ffffff; }
.wa .wa-social #wa-social-save:hover { background: #196340; border-color: #196340; }
.wa-social .wa-wahs-btn[disabled] { opacity: .55; cursor: default; }
html[data-theme="dark"] .wa-social #wa-social-reset {
    background: #232a33; color: #cbd4dd; border-color: #3a444f;
}

/* Enlaces y foco del panel, también con color propio: si Astra tiene los
   colores globales en transparente, un enlace heredado se vuelve invisible. */
.wa-social a { color: #2f7fa8; text-decoration: underline; }
.wa .wa-social a:hover { color: #1f5f80; }
.wa-social-field input:focus,
.wa-social-field select:focus,
.wa-social-field textarea:focus,
.wa .wa-social-poolbox textarea:focus {
    outline: none; border-color: var(--wag-type-field-social-focus-line, var(--wag-style-field-social-focus-line)); box-shadow: var(--wag-type-field-social-focus-shadow, var(--wag-style-field-social-focus-shadow));
}
.wa-social-zoomval { font-size: 11.5px; color: #8a95a3; font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .wa-social a { color: #6fc4e6; }

/* ── Action pill: colores blindados contra Astra ─────────────────────────────
   HISTORIA DE ESTE CORAZÓN, que ya va por la tercera vuelta:

   1. Se quedaba ROJO al desmarcarlo en móvil → el :hover se queda pegado en
      pantallas táctiles y pintaba el mismo rojo que .active. Se resolvió
      metiendo el hover en @media (hover: hover).
   2. Ahora DESAPARECE al desmarcarlo (Marc, 2026-07-27), justo después de poner
      --ast-global-color-0/1 en transparente. El único color del estado inactivo
      era `.species-pill-btn { color: rgba(255,255,255,.45) }`, especificidad
      0-1-0: en cuanto Astra pinta el color de un `button` en :focus —y tras un
      clic el botón SE QUEDA con el foco— gana, y "gana" ahora significa
      transparente.

   NOTA HONESTA: no he podido leer el CSS de Astra desde aquí, así que el punto 2
   es la explicación que encaja con los síntomas y con el momento, no algo que
   haya verificado en su hoja de estilos. La corrección no depende de acertar con
   la causa: se declaran TODOS los estados con especificidad suficiente, así que
   ya venga el color de Astra, del navegador o de la herencia, pierde.

   Y el inactivo vuelve a ser BLANCO, como pidió Marc. El 45 % de opacidad era
   una elegancia que dejaba el icono a un ajuste de tema de distancia de
   volverse invisible. -------------------------------------------------------- */
.species-action-pill .species-pill-btn,
.species-action-pill .species-pill-btn:hover,
.species-action-pill .species-pill-btn:focus,
.species-action-pill .species-pill-btn:focus-visible,
.species-action-pill .species-pill-btn:active,
.species-action-pill .species-pill-btn:visited {
    color: var(--wag-type-species-pill-btn-ink, var(--wag-style-species-pill-btn-ink));
    -webkit-text-fill-color: currentColor;   /* Safari pinta esto aparte */
    box-shadow: var(--wag-shadow-14);
}
/* El SVG hereda por currentColor, pero se fija por si algo pinta fill/stroke. */
.species-action-pill .species-pill-btn .wa-ico { color: inherit; }
.species-action-pill .species-pill-btn svg[fill="currentColor"] { fill: currentColor; }
.species-action-pill .species-pill-btn svg[stroke="currentColor"] { stroke: currentColor; }

/* Estados activos — después, para que ganen al bloque de arriba. */
.species-action-pill .species-pill-btn.species-favourite.active,
.species-action-pill .species-pill-btn.species-favourite.active:hover,
.wa .species-action-pill .species-pill-btn.species-favourite.active:focus { color: var(--wag-type-species-favourite-ink, var(--wag-style-species-favourite-ink)); }
.species-action-pill .species-pill-btn.species-seen.active,
.wa .species-action-pill .species-pill-btn.species-seen.active:focus,
.species-action-pill .species-pill-btn.species-listed.active,
.wa .species-action-pill .species-pill-btn.species-listed.active:focus{ color: #5f7f9f; }
.species-action-pill .species-pill-btn.species-observe.active,
.wa .species-action-pill .species-pill-btn.species-observe.active:focus { color: var(--wag-type-species-observe-ink, var(--wag-style-species-observe-ink)); }

/* Hover sólo con puntero de verdad (ver punto 1 de arriba). */
@media (hover: hover) {
.wa .species-action-pill .species-pill-btn.species-biology:hover { color: var(--wag-type-species-pill-btn-hover-ink, var(--wag-style-species-pill-btn-hover-ink)); }
.wa .species-action-pill .species-pill-btn.species-favourite:hover { color: var(--wag-type-species-favourite-hover-ink, var(--wag-style-species-favourite-hover-ink)); }
    .species-action-pill .species-pill-btn.species-seen:hover,
.wa .species-action-pill .species-pill-btn.species-listed:hover { color: #5f7f9f; }
.wa .species-action-pill .species-pill-btn.species-observe:hover { color: var(--wag-type-species-observe-hover-ink, var(--wag-style-species-observe-hover-ink)); }
}

.wa-social-ac-none { margin: 0; padding: 10px 12px; font-size: 12.5px; color: #8a95a3; }

/* Zona segura de Instagram: en Stories la interfaz se come ~14 % arriba y abajo.
   Nada importante debe caer ahí, y por eso los márgenes verticales son mayores. */

.wa-social .wa-sc-stage.is-story { max-width: 100%; }

/* Selector de fotos de la comunidad. */
.wa-social-gal[hidden] { display: none; }
.wa-social-gal-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 7px; }
.wa-social-gal-item {
    position: relative; padding: 0; border: 2px solid transparent; border-radius: var(--wag-radius-8);
    overflow: hidden; cursor: pointer; background: none; aspect-ratio: 1; display: block;
}
.wa-social-gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wa-social-gal-item em {
    position: absolute; left: 0; right: 0; bottom: 0; font-style: normal;
    font-size: 8.5px; color: #ffffff; background: rgba(12,16,21,.68);
    padding: 2px 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wa-social-gal-item.is-on { border-color: #4fadd4; }
.wa-social-gal-legal { font-size: 11.5px; color: #a5701a; line-height: 1.5; margin: 9px 0 0; }
.wa-social-gal-empty { grid-column: 1 / -1; margin: 0; padding: 9px 10px; border-radius: 7px; background: #fff5df; color: #7a5a1b; font-size: 11.5px; line-height: 1.45; }
html[data-theme="dark"] .wa-social-gal-empty { background: #3a301d; color: #e2c985; }
.wa-social-pub { margin-top: 12px; padding-top: 12px; border-top: 1px solid #d7dfe6; }
.wa-social-pub[hidden] { display: none; }
.wa-social-pub p { margin: 0 0 8px; font-size: 11.5px; line-height: 1.45; color: #667482; }
.wa-social-pub > div { display: flex; gap: 7px; }
.wa-social-pub input { min-width: 0; flex: 1; padding: 8px 9px; border: 1px solid #cbd5de; border-radius: 7px; background: var(--wag-surface); color: #1a1e24; font-size: 11.5px; }
.wa .wa-social .wa-social-pub #wa-social-pub-save {
    flex: 0 0 auto; padding: 8px 10px; border: 1px solid #1f7a4d !important;
    border-radius: 7px; background: #1f7a4d !important; color: #ffffff !important;
    font-size: 11.5px; font-weight: 700; cursor: pointer;
}
.wa .wa-social .wa-social-pub #wa-social-pub-save:hover,
.wa .wa-social .wa-social-pub #wa-social-pub-save:focus {
    background: #196340 !important; border-color: #196340 !important; color: #ffffff !important;
}
.wa-social-pub button:disabled { opacity: .6; cursor: default; }
.wa-social-pub small { display: block; margin-top: 6px; font-size: var(--wag-text-11); color: #667482; }
html[data-theme="dark"] .wa-social-pub { border-color: #35404b; }
html[data-theme="dark"] .wa-social-pub p,
html[data-theme="dark"] .wa-social-pub small { color: #aebac5; }
html[data-theme="dark"] .wa-social-pub input { background: #1b222a; border-color: #46515d; color: var(--wag-dark-ink); }
.wa-social-withdrawals { margin: 16px 0; padding: 14px 16px; border: 1px solid #efc78e; border-radius: 10px; background: #fff8eb; color: #5b461d; }
.wa-social-withdrawals strong { display: block; font-size: var(--wag-text-13); color: #6e4d11; }
.wa-social-withdrawals p { margin: 4px 0 8px; font-size: var(--wag-text-12); line-height: 1.45; }
.wa-social-withdrawals ul { margin: 0; padding-left: 18px; font-size: var(--wag-text-12); }
.wa-social-withdrawals li + li { margin-top: 4px; }
.wa-social-withdrawals a { color: #8a5b06; font-weight: 700; }
.wa-social-withdrawals span { color: #806d49; }
html[data-theme="dark"] .wa-social-withdrawals { background: #332914; border-color: #6c5424; color: #e7d6ad; }
html[data-theme="dark"] .wa-social-withdrawals strong { color: #f1ce7a; }
html[data-theme="dark"] .wa-social-withdrawals a { color: #f0c461; }
html[data-theme="dark"] .wa-social-withdrawals span { color: #c9b98e; }
.wa-gal-sheet-actions { display: flex; gap: 10px; align-items: center; margin-top: 12px; }
.wa-gal-sheet-send {
    flex: 1; padding: 12px 16px; border: 0; border-radius: var(--wag-type-gal-sheet-send-radius, var(--wag-style-gal-sheet-send-radius)); cursor: pointer;
    background: var(--wag-accent); color: var(--wag-type-gal-sheet-send-ink, var(--wag-style-gal-sheet-send-ink)); font-size: var(--wag-text-14); font-weight: 700;
}
.wa-gal-sheet-send[disabled] { background: var(--wag-type-gal-sheet-send-bg, var(--wag-style-gal-sheet-send-bg)); color: var(--wag-type-gal-sheet-send-ink, var(--wag-style-gal-sheet-send-ink)); cursor: default; }
.wa-gal-mobile-sheet .wa-gal-consent { margin: 12px 0 0; color: var(--wag-type-gal-consent-ink, var(--wag-style-gal-consent-ink)); }

.wa-social-sw {
    width: 24px; height: 24px; border-radius: 6px; cursor: pointer;
    border: 2px solid #d6dde4; padding: 0;
}
.wa-social-sw.is-on { border-color: #1a1e24; }

/* ── Suite de Traducciones (Control Center → Generators → Traducciones) ─────
   Superficie única de los cinco motores bilingües. Usa los tokens del panel
   (--wa-ink, --wa-muted) y no inventa paleta: es una pantalla más del Control
   Center, no un producto aparte. Tres capas, en este orden: base, 700px, dark. */
.wa-tr { max-width: 1040px; }

.wa-tr-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: var(--wag-space-24); flex-wrap: wrap; margin-bottom: 22px;
}
.wa-tr-title { margin: 0 0 6px; font-size: 27px; font-weight: 750; letter-spacing: -.5px; color: var(--wa-ink, #16202e); }
.wa-tr-lede  { margin: 0; max-width: 56ch; font-size: var(--wag-text-14); line-height: 1.5; color: var(--wa-muted, #788596); }

.wa-tr-clock {
    display: flex; align-items: center; gap: 11px;
    padding: 11px 16px; border: 1px solid #e2e8f0; border-radius: var(--wag-radius-12); background: var(--wag-surface);
}
.wa-tr-clock strong { display: block; font-size: var(--wag-text-13); color: var(--wa-ink, #16202e); }
.wa-tr-clock em     { display: block; font-style: normal; font-size: var(--wag-text-12); color: var(--wa-muted, #788596); }
.wa-tr-clock-dot {
    width: 9px; height: 9px; border-radius: 50%; background: #c3ccd8; flex: none;
}
.wa-tr-clock-dot.is-on { background: #1f9d55; box-shadow: 0 0 0 4px rgba(31, 157, 85, .16); }

.wa-tr-warn {
    margin: 0 0 20px; padding: 11px 15px; border-radius: 10px;
    background: #fbeceb; color: #8d3122; font-size: var(--wag-text-13); line-height: 1.5;
}

/* Resumen: seis cifras. Deliberadamente sin iconos — son números, y un icono
   por número convierte un panel de estado en un tablero de juguete. */
.wa-tr-stats {
    display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 14px;
}
.wa-tr-stat {
    padding: 14px 8px; border: 1px solid #e6ebf1; border-radius: var(--wag-radius-12);
    background: var(--wag-surface); text-align: center;
}
.wa-tr-stat-n { display: block; font-size: 25px; font-weight: 750; line-height: 1; color: var(--wa-ink, #16202e); letter-spacing: -.5px; }
.wa-tr-stat-l { display: block; margin-top: 5px; font-size: var(--wag-text-11); line-height: 1.25; color: var(--wa-muted, #788596); }
.wa-tr-stat.is-warn { border-color: #f3d9a8; background: #fffaf0; }
.wa-tr-stat.is-warn .wa-tr-stat-n { color: #a9701a; }
.wa-tr-stat.is-bad  { border-color: #f0c9c2; background: #fdf3f1; }
.wa-tr-stat.is-bad .wa-tr-stat-n  { color: #b3422b; }

.wa-tr-last { margin: 0 0 20px; font-size: var(--wag-text-12); color: var(--wa-muted, #788596); }

/* El veredicto: UN número grande. La pantalla entera existe para contestar
   "cuantas faltan", asi que esa respuesta va primero y en cuerpo grande. */
.wa-tr-verdict {
    display: flex; align-items: center; gap: var(--wag-space-20); flex-wrap: wrap;
    margin-bottom: 14px; padding: 20px 24px;
    border: 1px solid #e6ebf1; border-radius: var(--wag-radius-16); background: var(--wag-surface);
}
.wa-tr-verdict.is-pending { border-color: #f0d3a8; background: linear-gradient(180deg, #fffdf8, #fffaf0); }
.wa-tr-verdict.is-done    { border-color: var(--wag-type-tr-verdict-line, var(--wag-style-tr-verdict-line)); background: var(--wag-type-tr-verdict-bg, var(--wag-style-tr-verdict-bg)); }
.wa-tr-verdict-n { font-size: 52px; font-weight: 780; line-height: .95; letter-spacing: -2px; color: var(--wa-ink, #16202e); }
.wa-tr-verdict.is-pending .wa-tr-verdict-n { color: #a9701a; }
.wa-tr-verdict.is-done .wa-tr-verdict-n    { color: var(--wag-accent); }
.wa-tr-verdict-t { flex: 1 1 220px; }
.wa-tr-verdict-t strong { display: block; font-size: var(--wag-text-16); font-weight: 700; color: var(--wa-ink, #16202e); }
.wa-tr-verdict-t span   { display: block; margin-top: 3px; font-size: 12.5px; color: var(--wa-muted, #788596); }
.wa-tr-btn.is-big { padding: 13px 22px; font-size: var(--wag-text-14); }

/* Desglose por tipo. Tabla y no tarjetas: son seis filas de cuatro numeros
   comparables, y comparar es exactamente lo que una tabla hace mejor. */
.wa-tr-table {
    width: 100%; margin-bottom: 20px; border-collapse: collapse;
    border: 1px solid #e6ebf1; border-radius: var(--wag-radius-12); overflow: hidden; background: var(--wag-surface);
    font-size: var(--wag-text-13);
}
.wa-tr-table th {
    padding: 9px 14px; text-align: right; background: #f7f9fb;
    font-size: var(--wag-text-11); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #7a8696;
}
.wa-tr-table th:first-child, .wa-tr-table td:first-child { text-align: left; }
.wa-tr-table td { padding: 10px 14px; text-align: right; color: #4a5768; border-top: 1px solid #eef2f6; }
.wa-tr-table td b { color: #a9701a; font-weight: 700; }
.wa-tr-table td.is-muted { color: #aab4c0; }
.wa-tr-table tr.is-pending td:first-child { font-weight: 700; color: var(--wa-ink, #16202e); }

/* Background activity de la suite. Va ARRIBA de los motores a propósito: lo
   primero que hace falta saber es si hay algo corriendo — esa era justamente
   la pregunta que no se podía contestar con los botones repartidos. */
.wa-tr-act {
    margin-bottom: 22px; padding: 16px 18px;
    border: 1px solid #dfe6ee; border-radius: 14px;
    background: linear-gradient(180deg, #fbfcfe, #f5f8fb);
}
.wa-tr-act-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.wa-tr-act-head h3 { margin: 0; font-size: var(--wag-text-13); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6d7a8a; }
.wa-tr-act-state { font-size: 12.5px; color: var(--wa-muted, #788596); }
.wa-tr-act-state b { font-weight: 700; color: var(--wa-ink, #16202e); }
.wa-tr-act-state b.is-live { color: var(--wag-accent); }

.wa-tr-act-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wag-space-8); }
.wa-tr-act-q {
    display: flex; align-items: baseline; justify-content: space-between; gap: var(--wag-space-8);
    padding: 9px 12px; border-radius: 9px; background: var(--wag-surface); border: 1px solid #e8edf3;
}
.wa-tr-act-q-l { font-size: 12.5px; color: #4a5768; }
.wa-tr-act-q-n { font-size: 11.5px; color: #97a3b2; white-space: nowrap; }
.wa-tr-act-q.is-live { border-color: #bfe0cd; background: #f4fbf7; }
.wa-tr-act-q.is-live .wa-tr-act-q-n { color: var(--wag-accent); font-weight: 700; }

.wa-tr-act-log {
    margin-top: 12px; max-height: 168px; overflow: auto;
    border-top: 1px solid #e8edf3; padding-top: 10px;
    font-size: var(--wag-text-12); line-height: 1.75; color: #5a6676;
}
.wa-tr-act-log i {
    display: inline-block; min-width: 148px; font-style: normal;
    font-size: 10.5px; letter-spacing: .03em; text-transform: uppercase; color: #9aa6b4;
}

/* Editor de títulos. Dos columnas: a la izquierda lo que hay, a la derecha lo
   que escribes. La fila se marca cuando el valor es tuyo, para que se vea de
   un vistazo qué está a mano y qué lo decide el traductor. */
/* Pestañas + buscador del editor, en una sola fila que envuelve en móvil. */
.wa-tr-tabs {
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid #eef2f6;
}
.wa-tr-tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 13px; border: 1px solid transparent; border-radius: var(--wag-radius-999);
    background: transparent; color: #5a6676; font-size: var(--wag-text-13); font-weight: 600; cursor: pointer;
}
.wa-tr-tab:hover { background: var(--wag-type-tr-tab-hover-bg, var(--wag-style-tr-tab-hover-bg)); }
.wa-tr-tab.is-on { background: var(--wag-type-tr-tab-bg, var(--wag-style-tr-tab-bg)); border-color: var(--wag-type-tr-tab-line, var(--wag-style-tr-tab-line)); color: var(--wag-type-tr-tab-ink, var(--wag-style-tr-tab-ink)); }
.wa-tr-tab i { font-style: normal; font-size: var(--wag-text-11); font-weight: 700; color: #9aa6b4; }
.wa-tr-tab.is-on i { color: #2f6f4f; }
.wa-tr-search {
    margin-left: auto; min-width: 190px; padding: 7px 12px;
    border: 1px solid #dde4ec; border-radius: var(--wag-radius-8); background: var(--wag-surface);
    font-size: var(--wag-text-13); color: var(--wa-ink, #16202e);
}
.wa-tr-search:focus { outline: none; border-color: var(--wag-accent); box-shadow: var(--wag-shadow-3); }

.wa-tr-pager {
    display: flex; align-items: center; justify-content: center; gap: 14px;
    margin-top: 14px; padding-top: 12px; border-top: 1px solid #eef2f6;
}
.wa-tr-page-btn {
    padding: 6px 13px; border: 1px solid var(--wag-type-tr-page-line, var(--wag-style-tr-page-line)); border-radius: var(--wag-radius-8);
    background: var(--wag-surface); color: var(--wag-type-tr-page-ink, var(--wag-style-tr-page-ink)); font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.wa-tr-page-btn:hover:not(:disabled) { background: var(--wag-type-tr-page-hover-bg, var(--wag-style-tr-page-hover-bg)); }
.wa-tr-page-btn:disabled { opacity: .4; cursor: default; }
.wa-tr-page-btn[hidden], .wa-tr-page-info[hidden], .wa-tr-empty[hidden], .wa-tr-title-row[hidden] { display: none !important; }
.wa-tr-page-info { font-size: 12.5px; color: var(--wa-muted, #788596); }
.wa-tr-empty { margin: 18px 0 0; text-align: center; font-size: var(--wag-text-13); color: var(--wa-muted, #93a0b0); }

.wa-tr-titles { display: grid; gap: 2px; }
.wa-tr-title-row {
    display: grid; grid-template-columns: 1fr 280px; gap: var(--wag-space-16); align-items: center;
    padding: 11px 12px; border-radius: 9px; border-left: 3px solid transparent;
}
.wa-tr-title-row:nth-child(odd) { background: #fafbfd; }
.wa-tr-title-row.is-manual { border-left-color: var(--wag-accent); background: #f5fbf7; }
.wa-tr-title-type {
    display: inline-block; margin-right: 8px; padding: 1px 7px; border-radius: 99px;
    background: #eef1f5; font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    text-transform: uppercase; color: #7a8696; vertical-align: 1px;
}
.wa-tr-title-src strong { font-size: 13.5px; font-weight: 650; color: var(--wa-ink, #16202e); }
.wa-tr-title-src em {
    display: block; margin-top: 3px; font-style: normal;
    font-size: 11.5px; color: var(--wa-muted, #93a0b0);
}
.wa-tr-title-edit { display: flex; align-items: center; gap: var(--wag-space-8); }
.wa-tr-title-edit input {
    flex: 1; min-width: 0; padding: 7px 11px;
    border: 1px solid #dde4ec; border-radius: var(--wag-radius-8); background: var(--wag-surface);
    font-size: var(--wag-text-13); color: var(--wa-ink, #16202e);
}
.wa-tr-title-edit input:focus { outline: none; border-color: var(--wag-accent); box-shadow: var(--wag-shadow-3); }
.wa-tr-title-ok { font-size: var(--wag-text-11); color: var(--wag-accent); white-space: nowrap; }

/* Barra de progreso del backfill de slugs. */
.wa-tr-bar { height: 7px; border-radius: 99px; background: #e9eef4; overflow: hidden; margin: 2px 0 16px; }
.wa-tr-bar-fill { height: 100%; background: var(--wag-accent); border-radius: 99px; transition: width .35s ease; }

/* Una tarjeta por motor. */
.wa-tr-card {
    margin-bottom: 16px; padding: 20px 22px;
    border: 1px solid #e6ebf1; border-radius: 14px; background: var(--wag-surface);
}
.wa-tr-card.is-quiet { background: #fafbfc; }
.wa-tr-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--wag-space-16); }
.wa-tr-card-head h3 { margin: 0; font-size: 17px; font-weight: 700; color: var(--wa-ink, #16202e); }
.wa-tr-card-sub { display: block; margin-top: 3px; font-size: var(--wag-text-12); color: var(--wa-muted, #788596); }
.wa-tr-card-desc { margin: 12px 0 16px; max-width: 72ch; font-size: var(--wag-text-13); line-height: 1.55; color: #5a6676; }
.wa-tr-card-desc code { font-size: var(--wag-text-12); background: #f1f4f8; padding: 1px 5px; border-radius: var(--wag-radius-4); }

.wa-tr-badge {
    flex: none; padding: 4px 11px; border-radius: var(--wag-radius-999);
    font-size: var(--wag-text-11); font-weight: 600; letter-spacing: .03em;
    background: #eef1f5; color: #7a8696;
}
.wa-tr-badge.is-live { background: #e6f5ec; color: var(--wag-accent); }

.wa-tr-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Los tipos, como fichas marcables: el recuento va DENTRO, porque el coste de
   pulsar depende de él y separarlo obliga a mirar dos sitios. */
.wa-tr-types { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; width: 100%; margin-bottom: 4px; }
.wa-tr-chip {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 6px 12px; border: 1px solid #dde4ec; border-radius: var(--wag-radius-999);
    background: var(--wag-surface); font-size: 12.5px; color: #48546a; cursor: pointer;
    transition: border-color .12s, background .12s;
}
.wa-tr-chip:hover { border-color: var(--wag-type-tr-chip-hover-line, var(--wag-style-tr-chip-hover-line)); }
.wa-tr-chip:has(input:checked) { border-color: var(--wag-type-tr-chip-line, var(--wag-style-tr-chip-line)); background: var(--wag-type-tr-chip-bg, var(--wag-style-tr-chip-bg)); color: var(--wag-type-tr-chip-ink, var(--wag-style-tr-chip-ink)); }
.wa-tr-chip i { font-style: normal; font-size: var(--wag-text-11); color: var(--wa-muted, #93a0b0); }
.wa-tr-chip:has(input:checked) i { color: #2f6f4f; }

.wa-tr-btn {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 16px; border: 1px solid #dde4ec; border-radius: var(--wag-type-tr-btn-radius, var(--wag-style-tr-btn-radius));
    background: var(--wag-surface); color: #303d4f; font-size: var(--wag-text-13); font-weight: 600;
    cursor: pointer; text-decoration: none; transition: background .12s, border-color .12s;
}
.wa-tr-btn:hover:not(:disabled) { background: #f5f8fb; border-color: #c3cfdc; }
.wa-tr-btn:disabled { opacity: .45; cursor: default; }
.wa-tr-btn i { font-style: normal; font-size: var(--wag-text-11); font-weight: 700; opacity: .65; }
.wa-tr-btn.is-primary { background: var(--wag-accent); border-color: var(--wag-accent); color: var(--wag-type-tr-btn-ink, var(--wag-style-tr-btn-ink)); }
.wa-tr-btn.is-primary:hover:not(:disabled) { background: #1a6942; border-color: #1a6942; }
.wa-tr-btn.is-danger  { background: #b3422b; border-color: #b3422b; color: var(--wag-type-tr-btn-ink, var(--wag-style-tr-btn-ink)); }
.wa-tr-btn.is-danger:hover:not(:disabled)  { background: var(--wag-type-tr-btn-hover-bg, var(--wag-style-tr-btn-hover-bg)); border-color: var(--wag-type-tr-btn-hover-line, var(--wag-style-tr-btn-hover-line)); }
.wa-tr-btn.is-stop    { background: var(--wag-type-tr-btn-bg, var(--wag-style-tr-btn-bg)); border-color: var(--wag-type-tr-btn-line, var(--wag-style-tr-btn-line)); color: var(--wag-type-tr-btn-ink, var(--wag-style-tr-btn-ink)); }
/* `display:inline-flex` gana a la regla de agente de usuario para [hidden], así
   que el botón de detener se veía siempre. Hay que desactivarlo explícitamente. */
.wa-tr-btn[hidden], .wa-tr-log[hidden] { display: none !important; }

.wa-tr-progress { font-size: 12.5px; color: var(--wa-muted, #788596); }

.wa-tr-log {
    margin-top: 14px; padding: 12px 14px; max-height: 190px; overflow: auto;
    border-radius: 9px; background: #f7f9fb;
    font-size: var(--wag-text-12); line-height: 1.7; color: #5a6676;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.wa-tr-log div + div { border-top: 1px solid #eef2f6; }

@media (max-width: 700px) {
    .wa-tr-stats { grid-template-columns: repeat(2, 1fr); }
    .wa-tr-act-grid { grid-template-columns: 1fr; }
    .wa-tr-act-log i { display: block; min-width: 0; }
    .wa-tr-title-row { grid-template-columns: 1fr; gap: var(--wag-space-8); }
    .wa-tr-search { margin-left: 0; width: 100%; }
    .wa-tr-head  { flex-direction: column; }
    .wa-tr-card  { padding: 16px; }
    .wa-tr-actions .wa-tr-btn { flex: 1 1 auto; justify-content: center; }
}

html[data-theme="dark"] .wa-tr-clock,
html[data-theme="dark"] .wa-tr-stat,
html[data-theme="dark"] .wa-tr-card { background: #171c22; border-color: #2a313a; }
html[data-theme="dark"] .wa-tr-card.is-quiet { background: #14181d; }
html[data-theme="dark"] .wa-tr-title,
html[data-theme="dark"] .wa-tr-card-head h3,
html[data-theme="dark"] .wa-tr-stat-n,
html[data-theme="dark"] .wa-tr-clock strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-tr-card-desc { color: #aeb9c6; }
html[data-theme="dark"] .wa-tr-chip,
html[data-theme="dark"] .wa-tr-btn { background: #1c222a; border-color: #333c47; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-tr-btn:hover:not(:disabled) { background: var(--wag-type-tr-btn-dark-hover-bg, var(--wag-style-tr-btn-dark-hover-bg)); border-color: var(--wag-type-tr-btn-dark-hover-line, var(--wag-style-tr-btn-dark-hover-line)); }
html[data-theme="dark"] .wa-tr-btn.is-primary { background: var(--wag-accent); border-color: var(--wag-accent); }
html[data-theme="dark"] .wa-tr-btn.is-danger  { background: var(--wag-type-tr-btn-dark-bg, var(--wag-style-tr-btn-dark-bg)); border-color: var(--wag-type-tr-btn-dark-line, var(--wag-style-tr-btn-dark-line)); }
html[data-theme="dark"] .wa-tr-log { background: #12161b; color: #aeb9c6; }
html[data-theme="dark"] .wa-tr-log div + div { border-top-color: #232a32; }
html[data-theme="dark"] .wa-tr-badge { background: #232b34; color: #9aa6b4; }
html[data-theme="dark"] .wa-tr-verdict { background: #171c22; border-color: #2a313a; }
html[data-theme="dark"] .wa-tr-verdict.is-pending { background: #1d1a14; border-color: #4a3c22; }
html[data-theme="dark"] .wa-tr-verdict.is-done    { background: var(--wag-type-tr-verdict-dark-bg, var(--wag-style-tr-verdict-dark-bg)); border-color: var(--wag-type-tr-verdict-dark-line, var(--wag-style-tr-verdict-dark-line)); }
html[data-theme="dark"] .wa-tr-verdict-t strong, html[data-theme="dark"] .wa-tr-verdict-n { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-tr-verdict.is-pending .wa-tr-verdict-n { color: #e3b464; }
html[data-theme="dark"] .wa-tr-verdict.is-done .wa-tr-verdict-n { color: #4fbb85; }
html[data-theme="dark"] .wa-tr-table { background: #171c22; border-color: #2a313a; }
html[data-theme="dark"] .wa-tr-table th { background: #14181d; color: #8b97a3; }
html[data-theme="dark"] .wa-tr-table td { color: #c3ccd6; border-top-color: #232a32; }
html[data-theme="dark"] .wa-tr-table td b { color: #e3b464; }
html[data-theme="dark"] .wa-tr-act { background: #14181d; border-color: #2a313a; }
html[data-theme="dark"] .wa-tr-act-q { background: #171c22; border-color: #2a313a; }
html[data-theme="dark"] .wa-tr-act-q.is-live { background: #14251c; border-color: #2d5540; }
html[data-theme="dark"] .wa-tr-act-q-l { color: #c3ccd6; }
html[data-theme="dark"] .wa-tr-act-log { color: #aeb9c6; border-top-color: #232a32; }
html[data-theme="dark"] .wa-tr-bar { background: #232a32; }
html[data-theme="dark"] .wa-tr-title-row:nth-child(odd) { background: #14181d; }
html[data-theme="dark"] .wa-tr-title-row.is-manual { background: #14201a; }
html[data-theme="dark"] .wa-tr-title-src strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-tr-title-edit input { background: #1c222a; border-color: #333c47; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-tr-title-type { background: #232b34; color: #9aa6b4; }
html[data-theme="dark"] .wa-tr-tabs { border-bottom-color: #232a32; }
html[data-theme="dark"] .wa-tr-tab { color: #c3ccd6; }
html[data-theme="dark"] .wa-tr-tab:hover { background: var(--wag-type-tr-tab-dark-hover-bg, var(--wag-style-tr-tab-dark-hover-bg)); }
html[data-theme="dark"] .wa-tr-tab.is-on { background: var(--wag-type-tr-tab-dark-bg, var(--wag-style-tr-tab-dark-bg)); border-color: var(--wag-type-tr-tab-dark-line, var(--wag-style-tr-tab-dark-line)); color: var(--wag-type-tr-tab-dark-ink, var(--wag-style-tr-tab-dark-ink)); }
html[data-theme="dark"] .wa-tr-search,
html[data-theme="dark"] .wa-tr-page-btn { background: var(--wag-type-tr-page-dark-bg, var(--wag-style-tr-page-dark-bg)); border-color: var(--wag-type-tr-page-dark-line, var(--wag-style-tr-page-dark-line)); color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-tr-pager { border-top-color: #232a32; }

/* ── Log unificado de workers de fondo (Control Center → Content) ───────────
   Junta los logs que las seis colas ya escriben y muestra quién tiene el mutex
   compartido. Sin almacenamiento nuevo: sólo una vista. */
.wa-activity {
    margin: 12px 0 18px;
    border: 1px solid #dde3eb;
    border-radius: var(--wag-radius-12);
    background: var(--wag-surface);
    overflow: hidden;
}
.wa-activity-head {
    display: flex; align-items: center; gap: var(--wag-space-12); flex-wrap: wrap;
    padding: 10px 14px;
    background: #f6f8fa;
    border-bottom: 1px solid #e6ebf1;
    font-size: var(--wag-text-13);
}
.wa-activity-lock { font-size: var(--wag-text-12); padding: 2px 10px; border-radius: var(--wag-radius-999); font-weight: 600; }
.wa-activity-lock.is-idle  { background: #eef2f7; color: #6b7480; }
.wa-activity-lock.is-busy  { background: #e6f4ec; color: #1f8a52; }
.wa-activity-lock.is-stale { background: #fdf0e3; color: #a8620f; }
.wa .wa-activity-clear {
    margin-left: auto; padding: 5px 9px; border: 1px solid #d7dee7;
    border-radius: var(--wag-radius-8); background: var(--wag-surface); color: #52606d;
    font-size: 11.5px; font-weight: 700; line-height: 1.2; cursor: pointer;
}
.wa .wa-activity-clear:hover,
.wa .wa-activity-clear:focus { background: #eef2f6; border-color: #c4ced9; color: #263442; }
.wa .wa-activity-clear:disabled { opacity: .5; cursor: default; }
.wa-activity-live { margin-left: 0; font-size: var(--wag-text-12); color: #6b7480; display: flex; align-items: center; gap: 5px; }
.wa-activity-queues { display: flex; flex-wrap: wrap; gap: var(--wag-space-8); padding: 10px 14px; border-bottom: 1px solid #f0f3f7; }
.wa-activity-q {
    font-size: 11.5px; padding: 3px 9px; border-radius: var(--wag-radius-8);
    background: #f4f6f9; color: #6b7480; white-space: nowrap;
}
.wa-activity-q.is-running { background: #e6f4ec; color: #1f8a52; font-weight: 600; }
.wa-activity-q.is-warn    { background: #fdeaea; color: #b3261e; font-weight: 600; }
.wa-activity-log { max-height: 320px; overflow-y: auto; padding: 6px 0; }
.wa-activity-line {
    display: grid; grid-template-columns: 62px 130px 1fr; gap: 10px;
    padding: 4px 14px; font-size: var(--wag-text-12); line-height: 1.45; color: #2d3a4a;
}
.wa-activity-line:nth-child(odd) { background: #fafbfc; }
.wa-activity-at  { color: #93a0ab; font-variant-numeric: tabular-nums; }
.wa-activity-src { color: #5f7f9f; font-weight: 600; }
.wa-activity-msg { word-break: break-word; }
html[data-theme="dark"] .wa-activity { background: #131820; border-color: #2a313a; }
html[data-theme="dark"] .wa-activity-head { background: #1a2028; border-color: #2a313a; }
html[data-theme="dark"] .wa-activity-line { color: #c8d3dc; }
html[data-theme="dark"] .wa-activity-line:nth-child(odd) { background: #161c24; }
html[data-theme="dark"] .wa .wa-activity-clear { background: #202731; border-color: #35404c; color: #d6dee6; }
html[data-theme="dark"] .wa .wa-activity-clear:hover,
html[data-theme="dark"] .wa .wa-activity-clear:focus { background: #29333e; border-color: #465462; color: #ffffff; }
@media (max-width: 700px) {
    .wa-activity-line { grid-template-columns: 54px 1fr; }
    .wa-activity-src { grid-column: 2; }
    .wa-activity-msg { grid-column: 1 / -1; }
}


/* Restored season and climate interfaces. The retired generators remain absent. */
/* ═══════════════════════════════════════════════════════════════════════════
   TEMPORADA — cola de validación (Control Center → Generadores → Temporada)
   ---------------------------------------------------------------------------
   Pantalla de decisión, no de ajustes: cada fila enseña la curva real, lo que
   propone la IA y por qué, para que aprobar sea un juicio y no un clic.
   Colores literales, sin heredar nada del tema (ver la regla del panel Social).
   ═══════════════════════════════════════════════════════════════════════════ */
.wa-season-why { background: #f4f8fb; border: 1px solid #dde7ef; border-radius: var(--wag-radius-12);
                 padding: 14px 16px; font-size: 13.5px; line-height: 1.6; color: #3a4452; }
.wa-season-why p { margin: 0 0 9px; }
.wa-season-why p:last-child { margin-bottom: 0; }
.wa-season-why code { background: #e4ecf3; padding: 1px 5px; border-radius: var(--wag-radius-4); font-size: var(--wag-text-12); }
.wa-season-rule { border-top: 1px solid #dde7ef; padding-top: 9px; color: #1a1e24; }
.wa-season-queue { margin-top: 16px; }
.wa-season-prog { margin-top: 12px; }
.wa-season-prog[hidden] { display: none; }
.wa-season-bar { height: 7px; background: #e2e8ee; border-radius: 5px; overflow: hidden; }
.wa-season-bar span { display: block; height: 100%; background: #2f7fa8; transition: width .4s ease; }
.wa-season-prog p { font-size: 12.5px; color: #6b7683; margin: 7px 0 0; }
.wa-season-ai pre { background: #10141a; color: #cbd4dd; border-radius: var(--wag-radius-8); padding: 10px 12px;
                    font-size: 11.5px; line-height: 1.6; max-height: 190px; overflow: auto; margin: 9px 0 0; }

.wa-season-tabs { display: flex; gap: var(--wag-space-8); flex-wrap: wrap; margin-bottom: 16px; }
.wa-season-tab { display: inline-flex; gap: 7px; align-items: center; padding: 7px 14px;
                 border: 1px solid #d6dde4; border-radius: 40px; font-size: var(--wag-text-13);
                 color: #4a5563 !important; text-decoration: none !important; background: var(--wag-surface); }
.wa-season-tab b { font-weight: 700; color: #8a95a3; }
.wa-season-tab.is-on { background: #1a1e24; border-color: #1a1e24; color: #fff !important; }
.wa-season-tab.is-on b { color: #6fc4e6; }

.wa-season-item { border: 1px solid #e2e8ee; border-radius: 14px; padding: 15px 17px; margin-bottom: 13px; background: var(--wag-surface); }
.wa-season-item.is-done { opacity: .45; }
.wa-season-species-group {
    margin: 0 0 14px; overflow: visible; border: 1px solid #d9e2e9;
    border-radius: 18px; background: #f3f6f8;
}
.wa-season-group-head {
    display: flex; align-items: center; justify-content: space-between; gap: 18px;
    padding: 12px 14px; border-radius: 17px 17px 0 0; background: #182129; color: #ffffff;
}
.wa-season-group-title { min-width: 0; }
.wa-season-group-kicker {
    display: block; margin: 0 0 3px; color: #88a6b7; font-size: 9.5px;
    font-weight: 800; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase;
}
.wa-season-group-title h4 { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; margin: 0; }
.wa-season-group-title h4 a { color: #ffffff !important; font-size: var(--wag-text-18); font-weight: 800; text-decoration: none !important; }
.wa .wa-season-group-title h4 a:hover,
.wa .wa-season-group-title h4 a:focus { color: #ffffff !important; opacity: .82; text-decoration: none !important; }
.wa-season-group-title h4 i { color: #aebdc6; font-size: 12.5px; font-weight: 500; }
.wa-season-group-tools { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.wa-season-group-stats { display: flex; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.wa-season-group-stats span {
    display: inline-flex; align-items: baseline; gap: var(--wag-space-4); padding: 4px 7px;
    border: 1px solid #34434e; border-radius: var(--wag-radius-8); background: #222d35;
    color: #b8c5cd; font-size: 10.5px; white-space: nowrap;
}
.wa-season-group-stats b { color: #ffffff; font-size: var(--wag-text-12); }
.wa-season-group-stats .is-ready { border-color: #285b43; background: #1e3b2e; color: #a9d7bd; }
.wa-season-group-stats .is-ready b { color: #c8efd6; }
.wa-season-group-stats .is-missing { border-color: #66502a; background: #3c311f; color: #e3c788; }
.wa-season-group-stats .is-missing b { color: #f2d79a; }
.wa-season-group-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.wa-season-group-btn {
    min-height: 30px; padding: 5px 10px; border: 1px solid #46545e; border-radius: var(--wag-radius-8);
    background: #26323b; color: #e5edf2; font-size: 10.5px; font-weight: 800; cursor: pointer;
}
.wa-season-group-btn--apply { border-color: #347656; background: #246142; color: #ffffff; }
.wa .wa-season-group-btn:hover,
.wa .wa-season-group-btn:focus { border-color: #6c7c87; background: #34434d; color: #ffffff; }
.wa .wa-season-group-btn--apply:hover,
.wa .wa-season-group-btn--apply:focus { border-color: #4a9a70; background: #2d7952; color: #ffffff; }
.wa-season-group-btn:disabled { opacity: .42; cursor: default; }
.wa-season-group-msg { max-width: 190px; color: #aab9c2; font-size: 10.5px; line-height: 1.3; }
.wa-season-group-msg.is-ok { color: #9ed3b5; }
.wa-season-group-msg.is-err { color: #f1aca4; }


html.wa-season-detail-open { overflow: hidden; }


.wa-season-no-best {
    margin: 9px 0 0; padding: 8px 10px; border-left: 3px solid #d39a38;
    border-radius: 0 8px 8px 0; background: #fff8e9; color: #745c2c;
    font-size: 11.5px; line-height: 1.45;
}
.wa-season-no-best b { color: #674b17; }
.wa-season-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.wa-season-name { font-size: 15.5px; font-weight: 700; color: #1a1e24 !important; text-decoration: none !important; }
.wa-season-head i { font-size: var(--wag-text-13); color: #8a95a3; }
.wa-season-country { display: block; font-size: var(--wag-text-12); color: #6b7683; margin-top: 2px; }


/* Curva real */
.wa-season-spark { display: flex; gap: 3px; align-items: flex-end; height: 62px; margin: 14px 0 4px; }
.wa-season-sparkcol { flex: 1; display: flex; flex-direction: column; justify-content: flex-end;
                      align-items: center; height: 100%; gap: 3px; }
.wa-season-sparkcol i { display: block; width: 100%; background: #c3d3de; border-radius: 3px 3px 0 0; }
.wa-season-sparkcol b { font-size: 9.5px; font-weight: 700; color: #96a0ac; }
.wa-season-nodata { font-size: 12.5px; color: #a5701a; margin: 12px 0 2px; }

/* Tiras de meses */
.wa-season-rows { display: grid; gap: 5px; margin: 10px 0 4px; }
.wa-season-row { display: flex; align-items: center; gap: 10px; }
.wa-season-lbl { flex: 0 0 92px; font-size: var(--wag-text-11); font-weight: 700; letter-spacing: .05em;
                 text-transform: uppercase; color: #8a95a3; }

.wa-season-m { flex: 1; text-align: center; padding: 5px 0; border-radius: var(--wag-radius-4);
               font-size: 10.5px; font-weight: 700; background: #eef2f6; color: #b2bcc7; }


.wa-season-ai .wa-wahs-btn { background: var(--wag-type-wahs-btn-bg, var(--wag-style-wahs-btn-bg)); color: var(--wag-type-wahs-btn-ink, var(--wag-style-wahs-btn-ink)); border: 1px solid var(--wag-type-wahs-btn-line, var(--wag-style-wahs-btn-line));
                             border-radius: var(--wag-radius-8); padding: 8px 15px; font-size: 12.5px;
                             font-weight: 600; cursor: pointer; }
.wa-season-ai .wa-season-ok  { background: var(--wag-accent); border-color: var(--wag-accent); }
.wa-season-ai .wa-season-no,
.wa-season-ai .wa-season-redo { background: var(--wag-surface); color: #4a5563; border-color: #d3dbe3; }
.wa-season-ai .wa-wahs-btn[disabled] { opacity: .55; cursor: default; }
.wa-season-state { font-size: 12.5px; font-weight: 700; color: var(--wag-accent); }
.wa-season-msg { font-size: 12.5px; color: #6b7683; }
.wa-season-msg.is-ok  { color: var(--wag-accent); }
.wa-season-msg.is-err { color: #c0392b; }

html[data-theme="dark"] .wa-season-why { background: #171c22; border-color: #2a313a; color: #b8c2cc; }
html[data-theme="dark"] .wa-season-rule { color: var(--wag-dark-ink); border-color: #2a313a; }
html[data-theme="dark"] .wa-season-item { background: #151b22; border-color: #232a33; }
html[data-theme="dark"] .wa-season-species-group { border-color: #2b353e; background: #10151b; }
html[data-theme="dark"] .wa-season-group-head { background: #0d1217; }


html[data-theme="dark"] .wa-season-no-best { border-color: #9a7431; background: #2d2618; color: #d5be88; }
html[data-theme="dark"] .wa-season-no-best b { color: #ebd195; }
html[data-theme="dark"] .wa-season-name { color: #e8edf1 !important; }
html[data-theme="dark"] .wa-season-tab { background: #1c222a; border-color: #333c47; color: #cbd4dd !important; }
html[data-theme="dark"] .wa-season-m { background: #232a33; color: #6b7683; }

html[data-theme="dark"] .wa-season-ai .wa-season-no,
html[data-theme="dark"] .wa-season-ai .wa-season-redo { background: #232a33; color: #cbd4dd; border-color: #3a444f; }

@media (max-width: 680px) {
    .wa-season-group-head { align-items: flex-start; flex-direction: column; padding: 14px; }
    .wa-season-group-stats { justify-content: flex-start; }
    .wa-season-group-tools { align-items: flex-start; justify-content: flex-start; }
    .wa-season-group-actions { width: 100%; }









}

/* Contador de coste del arbitraje — para saber qué se va a gastar ANTES.
   Colores literales: este módulo no toma nada de Astra (regla de Marc). */
.wa-season-count { margin: 16px 0 4px; }
.wa-season-kpis { display: flex; gap: 10px; flex-wrap: wrap; }
.wa-season-kpi { flex: 1 1 118px; background: #f4f8fb; border: 1px solid #dde7ef;
                 border-radius: 11px; padding: 11px 13px; }
.wa-season-kpi b { display: block; font-size: 22px; font-weight: 800; color: #1a1e24; line-height: 1.1; }
.wa-season-kpi span { display: block; font-size: 11.5px; color: #6b7683; margin-top: 3px; }
.wa-season-cost { font-size: var(--wag-text-13); color: #3a4452; margin: 11px 0 0; line-height: 1.6; }
.wa-season-cost strong { color: #1a1e24; }
/* Aviso de hotspots sin zona: ámbar, no rojo — no es un error, es trabajo
   pendiente aguas arriba, y pintarlo de rojo enseña a ignorarlo. */
.wa .wa-season-warn { font-size: var(--wag-text-13); line-height: 1.6; margin: 11px 0 0; padding: 10px 13px;
    border-left: 3px solid #d99a2b; background: #fdf6e8; border-radius: 0 10px 10px 0; color: #5a4a26; }
.wa .wa-season-warn strong { color: #7a5a12; }
/* Climate census — compact control surface, not another generator module. */
.wa .wa-season-census {
    margin: 18px 0 4px; padding: 16px; overflow: hidden;
    border: 1px solid #dce5ea; border-radius: var(--wag-radius-16); background: #fbfcfd;
    box-shadow: 0 12px 32px -28px rgba(24,50,63,.55);
}
.wa .wa-climate-head { display: flex; align-items: center; gap: 11px; }
.wa .wa-climate-mark {
    flex: 0 0 38px; width: 38px; height: 38px; border-radius: var(--wag-radius-12);
    background: conic-gradient(from 210deg, #2a9d8f 0 20%, #d99a2b 20% 40%, #4f9eb8 40% 60%, #6c7fc2 60% 80%, #8ca6b8 80%);
    box-shadow: inset 0 0 0 5px rgba(255,255,255,.78), 0 4px 12px rgba(44,92,111,.13);
}
.wa .wa-climate-heading { min-width: 0; }
.wa .wa-climate-eyebrow { display: block; margin-bottom: 1px; color: #71808d; font-size: 9.5px;
    font-weight: 800; letter-spacing: .11em; line-height: 1.2; text-transform: uppercase; }
.wa .wa-climate-heading h3 { margin: 0; color: #1a2630; font-size: 17px; line-height: 1.2; }
.wa .wa-climate-heading p { margin: 3px 0 0; color: #71808d; font-size: 11.5px; line-height: 1.35; }
.wa .wa-climate-status { margin-left: auto; padding: 5px 9px; border: 1px solid #cfe5d9;
    border-radius: var(--wag-radius-999); background: #edf8f1; color: #1f7048; font-size: 10.5px; font-weight: 800; white-space: nowrap; }
.wa .wa-climate-status.is-partial { border-color: #ead9b4; background: #fff8ea; color: #8a6417; }
.wa .wa-climate-progress { height: 4px; margin: 13px 0 10px; overflow: hidden; border-radius: var(--wag-radius-999); background: #e8eef1; }
.wa .wa-climate-progress span { display: block; height: 100%; border-radius: inherit;
    background: linear-gradient(90deg, #2a8a5a, #4f9eb8); }
.wa .wa-climate-kpis { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; }
.wa .wa-climate-kpis > div { min-width: 0; padding: 9px 10px; border: 1px solid #e2e9ed;
    border-radius: 11px; background: var(--wag-surface); }
.wa .wa-climate-kpis b { display: block; color: #1a2630; font-size: var(--wag-text-18); line-height: 1; }
.wa .wa-climate-kpis span { display: block; margin-top: 3px; color: #778590; font-size: 10px; line-height: 1.25; }
.wa .wa-climate-alert, .wa .wa-climate-action { display: flex; align-items: center; gap: 9px;
    margin-top: 9px; padding: 9px 10px; border: 1px solid #eadfca; border-radius: 11px; background: #fffaf1; }
.wa .wa-climate-alert > span, .wa .wa-climate-action-icon { display: grid; flex: 0 0 24px; width: 24px; height: 24px;
    place-items: center; border-radius: var(--wag-radius-8); background: #f2dfb9; color: #7a5a12; font-size: var(--wag-text-12); font-weight: 900; }
.wa .wa-climate-alert.is-error { border-color: #edd4d1; background: #fff7f6; }
.wa .wa-climate-alert.is-error > span { background: #f2d6d2; color: #9c3d34; }
.wa .wa-climate-alert p, .wa .wa-climate-action p { flex: 1; min-width: 0; margin: 0; }
.wa .wa-climate-alert strong, .wa .wa-climate-action strong { display: block; color: #273641; font-size: 11.5px; line-height: 1.25; }
.wa .wa-climate-alert small, .wa .wa-climate-action small { display: block; margin-top: 2px; color: #74818c; font-size: 10.5px; line-height: 1.35; }
.wa .wa-climate-alert code { padding: 1px 4px; border-radius: var(--wag-radius-4); background: #f1e7e5; color: #74453f; font-size: 9.5px; }
.wa .wa-climate-missing { margin-top: 9px; overflow: hidden; border: 1px solid #eadfca;
    border-radius: 11px; background: #fffaf1; }
.wa .wa-climate-missing summary { display: flex; align-items: center; gap: 9px; padding: 9px 10px;
    list-style: none; cursor: pointer; user-select: none; color: #273641; }
.wa .wa-climate-missing summary::-webkit-details-marker { display: none; }
.wa .wa-climate-missing summary:hover, .wa .wa-climate-missing summary:focus { background: #fff6e5; color: #273641; }
.wa .wa-climate-missing summary > span { display: grid; flex: 0 0 24px; width: 24px; height: 24px;
    place-items: center; border-radius: var(--wag-radius-8); background: #f2dfb9; color: #7a5a12; font-size: var(--wag-text-12); font-weight: 900; }
.wa .wa-climate-missing summary p { flex: 1; min-width: 0; margin: 0; }
.wa .wa-climate-missing summary strong { display: block; color: #273641; font-size: 11.5px; line-height: 1.25; }
.wa .wa-climate-missing summary small { display: block; margin-top: 2px; color: #74818c; font-size: 10.5px; line-height: 1.35; }
.wa .wa-climate-missing summary > b { color: #735818; font-size: 10.5px; white-space: nowrap; }
.wa .wa-climate-missing summary > i { width: 7px; height: 7px; margin: 0 2px 3px 0;
    border-right: 1.5px solid #806a34; border-bottom: 1.5px solid #806a34;
    transform: rotate(45deg); transition: transform .18s ease; }
.wa .wa-climate-missing[open] summary > i { margin-bottom: -3px; transform: rotate(225deg); }
.wa .wa-climate-missing-list { max-height: 280px; overflow: auto; border-top: 1px solid #eadfca; background: var(--wag-surface); }
.wa .wa-climate-missing-list article { display: flex; align-items: center; gap: 10px; padding: 8px 10px;
    border-bottom: 1px solid #edf1f3; }
.wa .wa-climate-missing-list article:last-child { border-bottom: 0; }
.wa .wa-climate-missing-list article > div { flex: 1; min-width: 0; }
.wa .wa-climate-missing-list strong { display: block; overflow: hidden; color: #273641; font-size: var(--wag-text-11);
    line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.wa .wa-climate-missing-list small { display: block; margin-top: 2px; color: #82909a; font-size: 9.5px; line-height: 1.3; }
.wa .wa-climate-missing-list a { flex: 0 0 auto; padding: 5px 8px; border: 1px solid #d4dee4;
    border-radius: 7px; background: #f7f9fa; color: #344955; font-size: 9.5px; font-weight: 800; text-decoration: none; }
.wa .wa-climate-missing-list a:hover, .wa .wa-climate-missing-list a:focus {
    border-color: #afbdc5; background: #eef3f5; color: #213640; text-decoration: none; }
.wa .wa-climate-action .wa-season-elev { flex: 0 0 auto; padding: 7px 10px; border-color: #243b48;
    background: #243b48; color: #ffffff; font-size: 10.5px; }
.wa .wa-climate-action .wa-season-elev:hover, .wa .wa-climate-action .wa-season-elev:focus {
    border-color: #172b35; background: #172b35; color: #ffffff; }
.wa .wa-season-elev-msg { color: #61717c; font-size: 10.5px; }
.wa .wa-climate-explorer { margin-top: 9px; border: 1px solid #e1e8ec; border-radius: 11px; background: var(--wag-surface); }
.wa .wa-climate-explorer summary { display: flex; align-items: center; justify-content: space-between; gap: var(--wag-space-12);
    padding: 10px 11px; list-style: none; cursor: pointer; user-select: none; color: #273641; }
.wa .wa-climate-explorer summary::-webkit-details-marker { display: none; }
.wa .wa-climate-explorer summary:hover, .wa .wa-climate-explorer summary:focus { background: #f5f8f9; color: #172b35; }
.wa .wa-climate-explorer summary span { display: flex; align-items: baseline; gap: var(--wag-space-8); min-width: 0; }
.wa .wa-climate-explorer summary b { font-size: 11.5px; }
.wa .wa-climate-explorer summary small { color: #7d8a94; font-size: 10.5px; }
.wa .wa-climate-explorer summary > i { width: 7px; height: 7px; border-right: 1.5px solid #60717c;
    border-bottom: 1.5px solid #60717c; transform: rotate(45deg); transition: transform .18s ease; }
.wa .wa-climate-explorer[open] summary > i { transform: rotate(225deg); }
.wa .wa-climate-explorer-body { max-height: 430px; overflow: auto; padding: 11px; border-top: 1px solid #e7edf0; }
.wa .wa-climate-legend { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.wa .wa-climate-legend span { display: inline-flex; align-items: center; gap: var(--wag-space-4); padding: 3px 7px;
    border-radius: var(--wag-radius-999); background: #f1f5f6; color: #394a55; font-size: 9.5px; font-weight: 900; }
.wa .wa-climate-legend span::before, .wa .wa-season-zonechip > i { width: 6px; height: 6px; border-radius: 50%; background: #8b99a3; content: ""; }
.wa .wa-climate-legend em { color: #78858e; font-style: normal; font-weight: 600; }
.wa .wa-climate-legend .is-a::before, .wa .wa-season-zonechip.is-a > i { background: #2a9d8f; }
.wa .wa-climate-legend .is-b::before, .wa .wa-season-zonechip.is-b > i { background: #d99a2b; }
.wa .wa-climate-legend .is-c::before, .wa .wa-season-zonechip.is-c > i { background: #4f9eb8; }
.wa .wa-climate-legend .is-d::before, .wa .wa-season-zonechip.is-d > i { background: #6c7fc2; }
.wa .wa-climate-legend .is-e::before, .wa .wa-season-zonechip.is-e > i { background: #8ca6b8; }
.wa .wa-climate-country-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(250px,1fr)); gap: 7px; }
.wa .wa-climate-country { min-width: 0; padding: 9px; border: 1px solid #e5ebee; border-radius: 10px; background: #fbfcfd; }
.wa .wa-climate-country header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--wag-space-8); margin-bottom: 6px; }
.wa .wa-climate-country header b { overflow: hidden; color: #26343e; font-size: var(--wag-text-11); text-overflow: ellipsis; white-space: nowrap; }
.wa .wa-climate-country header span { color: #84919a; font-size: 9px; white-space: nowrap; }
.wa .wa-climate-country > div { display: flex; flex-wrap: wrap; gap: var(--wag-space-4); }
.wa .wa-season-zonechip { display: inline-flex; align-items: center; gap: var(--wag-space-4); padding: 3px 6px;
    border: 1px solid #dce5e9; border-radius: 7px; background: var(--wag-surface); color: #31434f; font-size: 9.5px; font-weight: 800; white-space: nowrap; }
.wa .wa-season-zonechip em { padding-left: 3px; border-left: 1px solid #e3e9ec; color: #84919a; font-style: normal; font-weight: 700; }
html[data-theme="dark"] .wa .wa-season-census { border-color: #2b353d; background: #151b20; box-shadow: var(--wag-shadow-14); }
html[data-theme="dark"] .wa .wa-climate-mark { box-shadow: inset 0 0 0 5px rgba(21,27,32,.78); }
html[data-theme="dark"] .wa .wa-climate-heading h3, html[data-theme="dark"] .wa .wa-climate-kpis b { color: #edf2f5; }
html[data-theme="dark"] .wa .wa-climate-heading p, html[data-theme="dark"] .wa .wa-climate-eyebrow { color: #92a0aa; }
html[data-theme="dark"] .wa .wa-climate-kpis > div, html[data-theme="dark"] .wa .wa-climate-explorer { border-color: #2b353d; background: #1b2228; }
html[data-theme="dark"] .wa .wa-climate-progress { background: #28323a; }
html[data-theme="dark"] .wa .wa-climate-alert, html[data-theme="dark"] .wa .wa-climate-action,
html[data-theme="dark"] .wa .wa-climate-missing{ border-color: #4a4230; background: #272419; }
html[data-theme="dark"] .wa .wa-climate-missing summary:hover,
html[data-theme="dark"] .wa .wa-climate-missing summary:focus { background: #302b1c; color: #edf2f5; }
html[data-theme="dark"] .wa .wa-climate-missing summary strong,
html[data-theme="dark"] .wa .wa-climate-missing-list strong { color: #e4ebef; }
html[data-theme="dark"] .wa .wa-climate-missing summary > b { color: #d5bd78; }
html[data-theme="dark"] .wa .wa-climate-missing-list { border-color: #4a4230; background: #1b2228; }
html[data-theme="dark"] .wa .wa-climate-missing-list article { border-color: #2b353d; }
html[data-theme="dark"] .wa .wa-climate-missing-list a { border-color: #3a4750; background: #222b31; color: #d7e0e5; }
html[data-theme="dark"] .wa .wa-climate-missing-list a:hover,
html[data-theme="dark"] .wa .wa-climate-missing-list a:focus { border-color: #53636e; background: #2b363d; color: #ffffff; }
html[data-theme="dark"] .wa .wa-climate-alert strong, html[data-theme="dark"] .wa .wa-climate-action strong,
html[data-theme="dark"] .wa .wa-climate-explorer summary, html[data-theme="dark"] .wa .wa-climate-country header b { color: #e4ebef; }
html[data-theme="dark"] .wa .wa-climate-explorer summary:hover, html[data-theme="dark"] .wa .wa-climate-explorer summary:focus { background: #232b31; color: #ffffff; }
html[data-theme="dark"] .wa .wa-climate-explorer-body { border-color: #2b353d; }
html[data-theme="dark"] .wa .wa-climate-country { border-color: #2d373f; background: #171e23; }
html[data-theme="dark"] .wa .wa-climate-legend span, html[data-theme="dark"] .wa .wa-season-zonechip { border-color: #344049; background: #222b31; color: #cbd5db; }
html[data-theme="dark"] .wa .wa-season-zonechip em { border-color: #3a454d; color: #8f9ba4; }
@media (max-width: 640px) {
    .wa .wa-season-census { padding: 13px; }
    .wa .wa-climate-head { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: start; column-gap: 10px; }
    .wa .wa-climate-mark { flex-basis: 34px; width: 34px; height: 34px; }
    .wa .wa-climate-heading { grid-column: 2; min-width: 0; }
    .wa .wa-climate-status { grid-column: 2; justify-self: start; margin: 7px 0 0; }
    .wa .wa-climate-kpis > div { padding: 8px 7px; }
    .wa .wa-climate-kpis b { font-size: var(--wag-text-16); }
    .wa .wa-climate-action { align-items: flex-start; flex-wrap: wrap; }
    .wa .wa-climate-action p { flex-basis: calc(100% - 34px); }
    .wa .wa-climate-action .wa-season-elev { width: 100%; }
    .wa .wa-climate-missing summary { align-items: flex-start; flex-wrap: wrap; }
    .wa .wa-climate-missing summary p { flex-basis: calc(100% - 33px); }
    .wa .wa-climate-missing summary > b { margin-left: 33px; }
    .wa .wa-climate-missing-list article { align-items: flex-start; }
    .wa .wa-climate-explorer summary span { align-items: flex-start; flex-direction: column; gap: 1px; }
    .wa .wa-climate-country-grid { grid-template-columns: 1fr; }
}
.wa-season-cost small { display: block; font-size: 11.5px; color: #8a95a3; margin-top: 2px; }
html[data-theme="dark"] .wa-season-kpi { background: #171c22; border-color: #2a313a; }
html[data-theme="dark"] .wa-season-kpi b { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-season-cost { color: #b8c2cc; }
html[data-theme="dark"] .wa-season-cost strong { color: var(--wag-dark-ink); }


/* Selector de ámbito del arbitraje. Hexadecimales literales, nada de Astra. */
.wa-season-pick { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.wa-season-pick label { font-size: var(--wag-text-12); font-weight: 700; letter-spacing: .05em;
                        text-transform: uppercase; color: #6b7683; }
.wa-season-pick select {
    padding: 8px 11px; border: 1px solid #d6dde4; border-radius: var(--wag-radius-8);
    font-size: 13.5px; background: var(--wag-surface); color: #1a1e24; min-width: 260px; cursor: pointer;
}
.wa .wa-season-pick select:focus { outline: none; border-color: #4fadd4; box-shadow: 0 0 0 3px rgba(79,173,212,.18); }
.wa-season-pickhint { font-size: var(--wag-text-12); color: #8a95a3; }
html[data-theme="dark"] .wa-season-pick select { background: #1c222a; border-color: #333c47; color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-season-pick label { color: #93a0ab; }
.wa-season-prog p.is-stalled { color: #a5701a; }

/* Tira de meses editable en la cola de validación. Marc es el experto: si sabe
   que el mochuelo boreal canta de marzo a junio, corrige y aprueba, en vez de
   descartar y esperar a que la máquina acierte a la segunda. */


.wa-season-edithint { margin: 5px 0 0 102px; font-size: 11.5px; color: #8a95a3; }


/* ── PRIVATE SEASON CARD LAB ─────────────────────────────────────────────── */
.wa-section.wa-season-preview-section { padding-top: 0; margin-bottom: 0; }
.place-card .wa-season-preview { max-width: 1200px; margin: 0 auto; padding: 36px 8px 56px; }
.wa-season-preview-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; padding: 30px 32px; border: 1px solid #dce4eb; border-radius: var(--wag-radius-20); background: var(--wag-surface); }
.wa-season-preview-kicker { display: block; margin-bottom: 9px; color: #2f7fa8; font-size: var(--wag-text-11); font-weight: 800; letter-spacing: .13em; }
.wa-season-preview h1 { margin: 0; color: #17202a; font-size: clamp(30px, 4vw, 48px); line-height: 1.05; }
.wa-season-preview-head p { max-width: 640px; margin: 12px 0 0; color: #667482; font-size: var(--wag-text-16); line-height: 1.5; }
.wa-season-preview-back { flex: 0 0 auto; border: 1px solid #c9d7e2; border-radius: 11px; padding: 11px 15px; color: #1c638a !important; font-size: var(--wag-text-13); font-weight: 800; text-decoration: none !important; }
.wa .wa-season-preview-back:hover { border-color: #1c638a; background: #eff7fb; color: #164e6d !important; }
.wa-season-preview-context { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 28px 2px 16px; color: #667482; font-size: var(--wag-text-13); }
.wa-season-preview-context b { color: #17202a; font-size: 15px; }
.wa-season-preview-context span { border-left: 1px solid #d5dfe7; padding-left: 10px; }
.wa-season-preview-context .wa-season-preview-shadow { border: 0; border-radius: var(--wag-radius-999); padding: 5px 9px; background: #eaf4fa; color: #246b91; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.wa-season-preview-toolbar { display: flex; justify-content: flex-end; margin: 0 2px 8px; }
.wa-season-preview-legend { display: flex; gap: 10px; color: #7b8994; font-size: 10px; font-weight: 700; white-space: nowrap; }
.wa-season-preview-legend span { display: inline-flex; align-items: center; gap: var(--wag-space-4); }
.wa-season-preview-legend i { width: 16px; height: 3px; border-radius: var(--wag-radius-999); }
.wa-season-preview-legend .is-present { background: #5f9dbc; }
.wa-season-preview-legend .is-best { background: #79c690; }
.wa-season-preview-grid { display: grid; width: 100%; max-width: none; margin: 0 auto; gap: 14px; }
.wa-season-species-card { display: grid; grid-template-columns: 108px minmax(0, 1fr); align-items: stretch; gap: 0; overflow: hidden; border: 1px solid #dce4eb; border-radius: var(--wag-radius-16); background: var(--wag-surface); box-shadow: 0 5px 20px rgba(27, 43, 56, .045); }
.wa-season-species-photo { display: block; min-height: 110px; background: #e9eef2; }
.wa-season-species-photo img { display: block; width: 100%; height: 100%; min-height: 110px; object-fit: cover; }
.wa-season-species-main { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "heading" "reason" "chart" "mechanism" "texture" "verdict"; align-content: center; row-gap: var(--wag-space-4); min-width: 0; padding: 10px 15px; }
.wa-season-species-heading { grid-area: heading; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wa-season-species-name { overflow: hidden; color: #17202a !important; font-size: 17px; font-weight: 800; line-height: 1.12; text-decoration: none !important; text-overflow: ellipsis; white-space: nowrap; }
.wa .wa-season-species-name:hover { color: #1c638a !important; }
.wa-season-species-sci { overflow: hidden; margin: 0; color: #778692; font-size: var(--wag-text-12); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.wa-season-species-chart { grid-area: chart; display: grid; gap: 7px; margin-top: 2px; }
.wa-season-species-calendar > small { display: block; margin-bottom: 3px; color: #788792; font-size: 8px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.wa-season-species-reason { grid-area: reason; display: flex; align-items: baseline; gap: 5px; min-width: 0; margin: 1px 0 0; color: #4a5b68; font-size: 10.5px; line-height: 1.25; }
.wa-season-species-reason b { flex: 0 0 auto; color: #1c638a; font-size: 9px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.wa-season-species-reason > span { flex: 0 0 auto; margin-left: auto; color: #8a97a2; font-size: 9px; font-weight: 700; white-space: nowrap; }
.wa-season-species-mechanism { grid-area: mechanism; overflow: hidden; margin: 2px 0 0; color: #64727e; font-size: 10px; font-style: italic; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
/* Solo en /pruebawag/: de dónde salió la textura de la curva. Mismos tokens que
   .wa-season-species-reason, un punto más apagado — es aparato de medida, no
   contenido. La curva cruda va monoespaciada para poder comparar dos casos
   columna a columna de un vistazo. */
.wa-season-species-texture { grid-area: texture; overflow: hidden; margin: 1px 0 0; color: #8a97a2; font-size: 9px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.wa-season-species-texture code { margin-left: 5px; color: #64727e; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: -.01em; }
.wa-season-species-texture.is-none { font-style: italic; }
.wa-season-species-verdict { grid-area: verdict; display: flex; align-items: center; gap: 6px; min-width: 0; margin-top: 2px; }
.wa-season-species-verdict > span { flex: 0 0 auto; border-radius: var(--wag-radius-999); padding: 2px 6px; background: #e7f4eb; color: #287244; font-size: 8.5px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.wa-season-species-verdict > span.is-review { background: #fff1cf; color: #8a6515; }
.wa-season-species-verdict > small { flex: 0 0 auto; color: #788792; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.wa-season-species-verdict > p { overflow: hidden; min-width: 0; margin: 0; color: #64727e; font-size: 10px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.wa-season-bars { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: 3px; height: 41px; border-bottom: 1px solid #d6e0e6; background-image: linear-gradient(to bottom, transparent 31%, #e7edf1 31%, #e7edf1 calc(31% + 1px), transparent calc(31% + 1px), transparent 66%, #e7edf1 66%, #e7edf1 calc(66% + 1px), transparent calc(66% + 1px)); }
.wa-season-column { display: flex; align-items: end; height: 100%; }
.wa-season-column i { display: block; width: 100%; height: var(--wa-season-height); border-radius: 5px 5px 0 0; background: #e1e8ed; }
.wa-season-column.is-present i { background: #8ec5dc; }
.wa-season-column.is-best i { border: 1px solid #5aa873; border-bottom: 0; background: #9bd8ad; }
.wa-season-column.is-current { position: relative; overflow: visible; }
.wa-season-column.is-current::before { content: ''; position: absolute; z-index: 1; inset: 0 auto 0 50%; border-left: 1px dashed rgba(28, 99, 138, .5); transform: translateX(-.5px); pointer-events: none; }
.wa-season-month-labels { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3px; margin-top: 2px; color: #8997a2; font-size: 9px; font-weight: 800; letter-spacing: .05em; line-height: 1; text-align: center; }
.wa-season-month-labels .is-current { color: #1c638a; font-weight: 900; }
.wa-season-species-pending { grid-area: chart; color: #8a6d1f; font-size: 10.5px; font-weight: 700; line-height: 1.3; white-space: nowrap; }
.wa-season-species-card.is-pending { opacity: .82; }
.wa-season-preview-empty { margin: 28px 0; color: #8b3740; font-weight: 700; }
html[data-theme="dark"] .wa-season-preview-head,
html[data-theme="dark"] .wa-season-species-card { border-color: #2c3741; background: #171d23; box-shadow: var(--wag-shadow-14); }
html[data-theme="dark"] .wa-season-preview h1,
html[data-theme="dark"] .wa-season-preview-context b,
html[data-theme="dark"] .wa-season-species-name { color: #edf2f5 !important; }
html[data-theme="dark"] .wa-season-preview-head p,
html[data-theme="dark"] .wa-season-preview-context,
html[data-theme="dark"] .wa-season-species-sci { color: #9daab5; }
html[data-theme="dark"] .wa-season-preview-kicker { color: #79b8d6; }
html[data-theme="dark"] .wa-season-preview-back { border-color: #3e596a; background: #1c2a33; color: #a8d8ef !important; }
html[data-theme="dark"] .wa .wa-season-preview-back:hover { border-color: #72b4d2; background: #243a47; color: #d7f1fc !important; }
html[data-theme="dark"] .wa-season-preview-context span { border-color: #2c3741; }
html[data-theme="dark"] .wa-season-preview-context .wa-season-preview-shadow { border: 0; background: #203845; color: #8fc9e5; }
html[data-theme="dark"] .wa-season-month-labels { color: #8e9ba6; }
html[data-theme="dark"] .wa-season-bars { border-color: #44515d; background-image: linear-gradient(to bottom, transparent 31%, #35414b 31%, #35414b calc(31% + 1px), transparent calc(31% + 1px), transparent 66%, #35414b 66%, #35414b calc(66% + 1px), transparent calc(66% + 1px)); }
html[data-theme="dark"] .wa-season-column i { background: #2a3640; }
html[data-theme="dark"] .wa-season-column.is-present i { background: #397b99; }
html[data-theme="dark"] .wa-season-column.is-best i { border-color: #79c690; background: #4f9d69; }
html[data-theme="dark"] .wa-season-column.is-current::before { border-color: rgba(143, 196, 222, .5); }
html[data-theme="dark"] .wa-season-month-labels .is-current { color: #8fc4de; }
html[data-theme="dark"] .wa-season-preview-legend { color: #aab7c0; }
html[data-theme="dark"] .wa-season-species-pending { color: #dfc675; }
html[data-theme="dark"] .wa-season-species-verdict > span { background: #203b2a; color: #8fd1a3; }
html[data-theme="dark"] .wa-season-species-verdict > span.is-review { background: #403616; color: #ead17d; }
html[data-theme="dark"] .wa-season-species-verdict > small,
html[data-theme="dark"] .wa-season-species-reason { color: #c3ced7; }
html[data-theme="dark"] .wa-season-species-reason b { color: #7fc4e6; }
html[data-theme="dark"] .wa-season-species-reason > span { color: #7e8b96; }
html[data-theme="dark"] .wa-season-species-mechanism { color: #9daab5; }
html[data-theme="dark"] .wa-season-species-texture { color: #7e8b96; }
html[data-theme="dark"] .wa-season-species-texture code,
html[data-theme="dark"] .wa-season-species-verdict > p{ color: #9daab5; }
@media (min-width: 1180px) {
  .wa-season-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wa-season-species-card { grid-template-columns: 96px minmax(0, 1fr); }
  .wa-season-species-photo, .wa-season-species-photo img { min-height: 108px; }
}
@media (max-width: 760px) {
  .place-card .wa-season-preview { padding: 30px 0 46px; }
  .wa-season-preview-head { align-items: flex-start; flex-direction: column; padding: 24px 20px; }
  .wa-season-preview-grid { width: 100%; }
  .wa-season-species-card { grid-template-columns: 86px minmax(0, 1fr); }
  .wa-season-species-photo, .wa-season-species-photo img { min-height: 96px; }
  .wa-season-species-main { grid-template-columns: minmax(0, 1fr); grid-template-areas: "heading" "reason" "chart" "mechanism"; padding: 9px 11px; }
  .wa-season-species-name { font-size: 15px; }
  .wa-season-species-chart { margin-top: 2px; }
  .wa-season-bars { height: 39px; }
  .wa-season-month-labels { font-size: 8px; }
  .wa-season-species-svg { height: 52px; }
  .wa-season-preview-toolbar { justify-content: flex-start; margin-bottom: 8px; }
  .wa-season-species-pending { font-size: 9.5px; }
}


.wa-season-clear { font-size: 12.5px; color: #2f7fa8; text-decoration: underline; }
.wa-season-found { font-size: 12.5px; color: #6b7683; margin: -6px 0 12px; }
.wa-season-over { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: #6b7683; cursor: pointer; }
.wa-season-over input { accent-color: #2f7fa8; cursor: pointer; }


/* ── Analizador de cobertura de temporadas (Control Center → Season) ────────
   Cuenta lo que el visitante VE, no cuántos veredictos existen. Un veredicto
   aprobado sin mecanismo citado no produce recomendación, y esa diferencia
   era invisible hasta ahora. */


@keyframes wa-cov-rot { to { transform: rotate(360deg); } }


/* Read-only season archive retained while the generator is rebuilt. */
.wa-season-group-body { display: grid; gap: 10px; padding: 12px; }


.wa-season-status { border: 1px solid #d8e0e7; border-radius: var(--wag-radius-999); padding: 4px 8px; color: #677582; background: #f5f7f9; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.wa-season-status.is-approved { border-color: #b9dfc9; background: #edf8f1; color: #267148; }
.wa-season-status.is-rejected { border-color: #ebc8c4; background: #fff2f0; color: #a9473b; }
.wa-season-curve { margin: 2px 0 12px; }
.wa-season-curve .wa-season-bars { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: end; gap: var(--wag-space-4); height: 56px; border-bottom: 1px solid #dbe3e9; }
.wa-season-barcol { display: block; min-height: 3px; background: #d8e1e8; border-radius: 4px 4px 0 0; }
.wa-season-barcol.is-present { background: #acd8e8; }
.wa-season-barcol.is-best { background: #2e8b62; }
.wa-season-curve .wa-season-months { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--wag-space-4); margin-top: 4px; color: #8a97a4; font-size: 9px; text-align: center; }
.wa-season-reason { margin-top: 10px; padding: 10px 12px; border-left: 3px solid #b9d9e8; background: #f6f9fb; color: #53606e; font-size: var(--wag-text-12); line-height: 1.55; }
.wa-season-reason strong { display: block; margin-bottom: 2px; color: #26323d; }
.wa-season-reason p { margin: 0; }
.wa-season-empty { padding: 28px; border: 1px dashed #ccd6de; border-radius: var(--wag-radius-12); color: #73808c; text-align: center; }
.wa-season-pagination { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin-top: 18px; }
.wa-season-pagination a { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #d4dde5; border-radius: 9px; background: var(--wag-surface); color: #536272 !important; text-decoration: none !important; }
.wa-season-pagination a.is-on { border-color: #202a33; background: #202a33; color: #fff !important; }


html[data-theme="dark"] .wa-season-status { border-color: #3c4853; background: #27313a; color: #aab7c2; }
html[data-theme="dark"] .wa-season-reason { border-color: #355d70; background: #1b242c; color: #abb8c3; }
html[data-theme="dark"] .wa-season-reason strong { color: #e4ebf0; }

/* ═══════════════════════════════════════════════════════════════════════════
   MODO OSCURO — Owner Dashboard: huecos por color escrito a fuego
   (Marc, 2026-08-18: "arregla el dark mode en esa pagina")

   Los tokens del kit ya se voltean en :1740 (--wa-card/--wa-ink/--wa-muted…),
   así que TODO lo que usa var(--wa-*) ya funcionaba en oscuro. Lo que fallaba
   es lo que se saltó los tokens y escribió el hex directamente: texto casi
   negro sobre fondo casi negro, y paneles blancos en mitad del oscuro.

   Sólo se tocan componentes de /owner/ que quedaban ilegibles o deslumbraban.
   Se reutiliza la paleta oscura ya vigente (#1a1f26 superficie · #2a313a
   línea · #e8edf1 texto · #93a0ab apagado · #3fb37a acento) en vez de
   inventar colores nuevos.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Panel de bienvenida / onboarding ─────────────────────────────────────
   Era un panel verde MUY claro (#eff8f2) con titular casi negro: en oscuro
   deslumbraba y partía la página en dos. */
html[data-theme="dark"] .wa-owner-onboarding {
    background: linear-gradient(135deg,#16241c 0%,#1a1f26 100%);
    border-color: #2d5a41;
}
html[data-theme="dark"] .wa-owner-onboarding h2 { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-owner-onboarding p  { color: #a9bcb1; }
html[data-theme="dark"] .wa-owner-onboarding-kicker { color: #64c99b; }
html[data-theme="dark"] .wa-owner-onboarding-steps li {
    background: var(--wag-dark-surface);
    border-color: #2d5a41;
}
html[data-theme="dark"] .wa-owner-onboarding-steps strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-owner-onboarding-steps span   { color: #93a0ab; }
html[data-theme="dark"] .wa-owner-onboarding-steps li::before { background: #2f8d5b; color: #fff; }
html[data-theme="dark"] .wa-owner-onboarding-dismiss {
    background: transparent;
    border-color: #2d5a41;
    color: #a9bcb1;
}
html[data-theme="dark"] .wa .wa-owner-onboarding-dismiss:hover,
html[data-theme="dark"] .wa .wa-owner-onboarding-dismiss:focus {
    background: #1f2c25;
    color: var(--wag-dark-ink);
}
html[data-theme="dark"] .wa-owner-onboarding-next { color: #8fcf6e; }
html[data-theme="dark"] .wa .wa-owner-onboarding-next:hover,
html[data-theme="dark"] .wa .wa-owner-onboarding-next:focus { color: #a8dd8b; }

/* ── Botón ghost: era #fff a fuego → botón blanco sobre fondo oscuro ────── */
html[data-theme="dark"] body.wa-owner .wa-owner-btn--ghost {
    background: var(--wag-dark-surface);
    color: var(--wa-ink);
    border-color: var(--wa-line);
}
html[data-theme="dark"] body.wa-owner.wa .wa-owner-btn--ghost:hover {
    background: #232b34;
    color: var(--wa-ink);
    border-color: #3a4550;
}

/* ── Texto con hex fijo: #2d3640 / #1a2a3a sobre fondo oscuro no se lee ─── */
html[data-theme="dark"] body.wa-owner .wa-feed-body,
html[data-theme="dark"] body.wa-owner .wa-owner-review-body,
html[data-theme="dark"] .wa-owner-review-body { color: #ccd3da; }
html[data-theme="dark"] .wa-owner-review-head strong { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-owner-review-head em     { color: #93a0ab; }
html[data-theme="dark"] .wa-owner-card-title,
html[data-theme="dark"] .wa-owner-card-stats span{ color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-owner-card-stats > div   { color: #93a0ab; }

/* ── Gestores: nombres y enlaces en azul oscuro ─────────────────────────── */
html[data-theme="dark"] .wa-owner-managers .wa-admin-trow > span,
html[data-theme="dark"] .wa-owner-managers .wa-admin-trow a:not(.wa-admin-trash) { color: #ccd3da; }
html[data-theme="dark"] .wa .wa-owner-content .wa-admin-trow a:not(.wa-admin-trash):hover { color: #8fcf6e; }

/* ── Customize: los botones de reordenar eran gris muy claro ────────────── */
html[data-theme="dark"] body.wa-owner .wa-cz-handle button {
    background: #232b34;
    border-color: var(--wa-line);
    color: var(--wa-ink);
}
html[data-theme="dark"] body.wa-owner .wa-cz-handle button:hover { background: #2c3641; }

/* ── Borrar mensaje: rosa claro sobre oscuro ────────────────────────────── */
html[data-theme="dark"] .wa-owner-btn.wa-msg-delete {
    background: #3a201c;
    color: #ff9b8f;
}

/* ── MODO OSCURO, 2ª tanda (Marc, 2026-08-18) ────────────────────────────── */

/* 1. .wa-profile-empty dentro de un bloque del owner.
      YA existía una regla oscura (:1779, `html[data-theme="dark"] body
      .wa-profile-empty` → 0,2,2), pero `body.wa-owner .wa-owner-block
      .wa-profile-empty` (:1120 → 0,3,1) la gana por número de clases. El
      estado vacío se quedaba gris claro sólo DENTRO de los bloques — que es
      justo donde más aparece. Se iguala la cadena para poder ganarla. */
html[data-theme="dark"] body.wa-owner .wa-owner-block .wa-profile-empty {
    background: #151a20;
    border-color: var(--wag-type-profile-empty-dark-line, var(--wag-style-profile-empty-dark-line));
    color: var(--wag-type-profile-empty-dark-ink, var(--wag-style-profile-empty-dark-ink));
}

/* 2. Tarjeta lateral de reservas — era #fff a fuego, sin regla oscura. */
html[data-theme="dark"] .wa-bk-side-card {
    background: var(--wag-dark-surface);
    border-color: #2a313a;
    box-shadow: var(--wag-shadow-14);
}

/* 3. Fila de contacto (.wa-admin-trow.wa-contact-row) y su conversación.
      La fila ya heredaba el dark de .wa-admin-trow; lo que faltaba era todo
      lo de dentro: el "vía", la hora, el aviso de nuevo y el hilo de chat. */
html[data-theme="dark"] .wa-contact-row .wa-child-via,
html[data-theme="dark"] .wa-contact-row .wa-child-status { color: #93a0ab; }
html[data-theme="dark"] .wa-bk-newmsg { color: #ff8a7a; }
html[data-theme="dark"] .wa-bk-contact,
html[data-theme="dark"] .wa-bk-advice-thread,
html[data-theme="dark"] .wa-bk-reply-input-row {
    background: #151a20;
    border-color: #2a313a;
    color: #ccd3da;
}
html[data-theme="dark"] .wa-bk-contact summary { color: #ccd3da; }

/* 4. Calendario del owner. NO tenía ni una regla oscura: entraba entero en
      blanco. Se re-apuntan primero sus tokens --cal-* (mismo patrón que usa
      el kit con --wa-* en :1740), y luego se corrigen a mano las superficies
      que escribieron el color literal en vez de usar el token. */
html[data-theme="dark"] .wa-cal-wrap,
html[data-theme="dark"] .wa-cal-layout {
    --cal-green:   var(--wag-dark-accent);
    --cal-green-l: #1c3a2e;
    --cal-blue:    #5a9bf6;
    --cal-amber:   #f0b429;
    --cal-red:     var(--wag-color-dark-attention);
    --cal-border:  var(--wag-color-dark-line);
}
html[data-theme="dark"] .wa-cal-layout { background: #11161c; box-shadow: var(--wag-shadow-14); }
html[data-theme="dark"] .wa-cal-sidebar,
html[data-theme="dark"] .wa-cal-actions,
html[data-theme="dark"] .wa-cal-export-bar { background: #151a20; }
html[data-theme="dark"] .wa-cal-cell,
html[data-theme="dark"] .wa-cal-panel{ background: var(--wag-dark-surface); }
html[data-theme="dark"] .wa-cal-panel-overlay { background: rgba(0,0,0,.55); }
html[data-theme="dark"] .wa-cal-select,
html[data-theme="dark"] .wa-cal-input,
html[data-theme="dark"] .wa-cal-textarea {
    background: #11161c; color: var(--wag-dark-ink); border-color: #2a313a;
}
html[data-theme="dark"] .wa-cal-month-title,
html[data-theme="dark"] .wa-cal-day-num,
html[data-theme="dark"] .wa-cal-product-name,
html[data-theme="dark"] .wa-cal-panel-head,
html[data-theme="dark"] .wa-cal-action-head { color: var(--wag-dark-ink); }
html[data-theme="dark"] .wa-cal-wd,
html[data-theme="dark"] .wa-cal-sidebar-head,
html[data-theme="dark"] .wa-cal-product-type,
html[data-theme="dark"] .wa-cal-hint,
html[data-theme="dark"] .wa-cal-empty-note,
html[data-theme="dark"] .wa-cal-action-label { color: #93a0ab; }
html[data-theme="dark"] .wa-cal-product-item:hover,
html[data-theme="dark"] .wa-cal-today-btn:hover,
html[data-theme="dark"] .wa-cal-nav button:hover { background: #232b34; }

/* Landing topbar: Astra's generic button focus treatment can persist after a
   click. The Back control is intentionally text-only in every interaction
   state, so reset every background layer at the end of the stylesheet.

   The ink is a variable, not #fff. This rule wins on `!important` at the very
   end of the sheet, so hard-coding white here silently outranks any attempt to
   recolour the control — which is exactly what happened while the home topbar
   was light: white text on a frosted white bar. The bar is dark again and the
   fallback restores the original white behaviour, but the reset's job is to strip
   Astra's chrome, not to own the colour, so the seam stays open. */
body.wa.wa-home button.wa-home-topbar-back,
body.wa.wa-home button.wa-home-topbar-back:hover,
body.wa.wa-home button.wa-home-topbar-back:focus,
body.wa.wa-home button.wa-home-topbar-back:focus-visible,
body.wa.wa-home button.wa-home-topbar-back:active {
    -webkit-appearance: none !important;
    appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: var(--wag-shadow-15) !important;
    color: var(--wa-home-topbar-ink, #fff) !important;
    outline: 0 !important;
}

/* The search filter shares the permanent dark topbar surface. These rules sit
   after the generic home-search styles so its hover/open/selected states do
   not fall back to the light hero dropdown. */
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger:hover,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger:focus,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger:focus-visible,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger:active {
    background: var(--wag-type-filter-scope-dark-bg, var(--wag-style-filter-scope-dark-bg)) !important;
    border: 0 !important;
    box-shadow: var(--wag-shadow-15) !important;
    color: var(--wag-type-filter-scope-dark-ink, var(--wag-style-filter-scope-dark-ink)) !important;
    outline: 0 !important;
}
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger:hover,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger[aria-expanded="true"] { color: var(--wag-type-filter-scope-dark-ink, var(--wag-style-filter-scope-dark-ink)) !important; }
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger.has-filter { color: #7cc1ea !important; }
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-trigger::before { background: #2a313a !important; }
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-menu { background: #1a2535 !important; border-color: #2d3b4d !important; box-shadow: 0 10px 30px rgba(10,18,30,.35) !important; }
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-item,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-item:hover {
    background: #1a2535 !important;
    color: #a8b8c8 !important;
}
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-item:hover { background: rgba(79,173,212,.12) !important; color: #e0eaf2 !important; }
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-item.is-active,
html[data-theme="dark"] body.wa .wa-topbar-search .wa-sf-item.is-active:hover { background: #4fadd4 !important; color: #0d1e2c !important; }
