/* 3D Marketplace Creator 2.2 — muro del creador, feed y campanita
   Móvil primero. Prefijos: thirty-wall-, thirty-feed-, thirty-bell-.
   Usa los tokens --t-* de style.css; aquí se repiten como respaldo porque el feed,
   la página de una publicación y la campanita pueden cargarse sin style.css. */

:root {
    --t-primary: #0f172a;
    --t-accent: #1d4ed8;
    --t-accent-hover: #1e40af;
    --t-accent-bg: #eff6ff;
    --t-accent-border: #bfdbfe;
    --t-surface: #ffffff;
    --t-surface-2: #f8fafc;
    --t-bg: #f1f5f9;
    --t-border: #e2e8f0;
    --t-border-strong: #cbd5e1;
    --t-text: #1e293b;
    --t-muted: #475569;
    --t-success: #15803d;
    --t-success-bg: #dcfce7;
    --t-warning: #92400e;
    --t-warning-bg: #fef3c7;
    --t-warning-border: #fde68a;
    --t-error: #b91c1c;
    --t-error-bg: #fee2e2;
    --t-error-border: #fecaca;
    --t-focus: #2563eb;
    --t-radius-lg: 20px;
    --t-radius: 14px;
    --t-sm: 10px;
    --t-pill: 999px;
    --t-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
    --t-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.10);
    --t-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --t-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    /* Colores por tipo de publicación (texto sobre fondo: AA) */
    --tw-progress: #d97706;
    --tw-progress-bg: #fef3c7;
    --tw-progress-fg: #92400e;
    --tw-soon: #7c3aed;
    --tw-soon-bg: #f5f3ff;
    --tw-soon-fg: #5b21b6;
    --tw-launch: #16a34a;
    --tw-launch-bg: #dcfce7;
    --tw-launch-fg: #166534;
    --tw-news: #0284c7;
    --tw-news-bg: #e0f2fe;
    --tw-news-fg: #075985;
    --tw-notify-bg: #6d28d9;
    --tw-notify-bg-hover: #5b21b6;
    --tw-notify-fg: #ffffff;
    --tw-fire: #c2410c;
    --tw-fire-bg: #fff7ed;
    --tw-fire-border: #fdba74;
}

[data-thirty-theme="dark"] {
    --t-primary: #f1f5f9;
    --t-accent: #60a5fa;
    --t-accent-hover: #93c5fd;
    --t-accent-bg: rgba(96, 165, 250, 0.14);
    --t-accent-border: rgba(96, 165, 250, 0.35);
    --t-surface: #1e293b;
    --t-surface-2: #172033;
    --t-bg: #0f172a;
    --t-border: #334155;
    --t-border-strong: #475569;
    --t-text: #e2e8f0;
    --t-muted: #a3b1c6;
    --t-success: #4ade80;
    --t-success-bg: rgba(74, 222, 128, 0.12);
    --t-warning: #fbbf24;
    --t-warning-bg: rgba(251, 191, 36, 0.12);
    --t-warning-border: rgba(251, 191, 36, 0.3);
    --t-error: #f87171;
    --t-error-bg: rgba(248, 113, 113, 0.12);
    --t-error-border: rgba(248, 113, 113, 0.3);
    --t-focus: #93c5fd;
    --t-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    --t-shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.45);

    --tw-progress: #fbbf24;
    --tw-progress-bg: rgba(251, 191, 36, 0.16);
    --tw-progress-fg: #fcd34d;
    --tw-soon: #a78bfa;
    --tw-soon-bg: rgba(167, 139, 250, 0.14);
    --tw-soon-fg: #c4b5fd;
    --tw-launch: #4ade80;
    --tw-launch-bg: rgba(74, 222, 128, 0.14);
    --tw-launch-fg: #86efac;
    --tw-news: #38bdf8;
    --tw-news-bg: rgba(56, 189, 248, 0.14);
    --tw-news-fg: #7dd3fc;
    --tw-notify-bg: #a78bfa;
    --tw-notify-bg-hover: #c4b5fd;
    --tw-notify-fg: #1e1b4b;
    --tw-fire: #fdba74;
    --tw-fire-bg: rgba(251, 146, 60, 0.14);
    --tw-fire-border: rgba(251, 146, 60, 0.45);
    color-scheme: dark;
}

/* ═══ BASE ═══════════════════════════════════════════════════════ */
.thirty-wall,
.thirty-feed,
.thirty-wall-single,
.thirty-bell,
.thirty-wall-lightbox,
.thirty-wall-toasts {
    font-family: var(--t-font);
    color: var(--t-text);
    line-height: 1.5;
}

.thirty-wall *, .thirty-wall *::before, .thirty-wall *::after,
.thirty-feed *, .thirty-feed *::before, .thirty-feed *::after,
.thirty-wall-single *, .thirty-wall-single *::before, .thirty-wall-single *::after,
.thirty-bell *, .thirty-bell *::before, .thirty-bell *::after,
.thirty-wall-lightbox *, .thirty-wall-toasts * {
    box-sizing: border-box;
}

.thirty-wall [hidden], .thirty-feed [hidden], .thirty-wall-single [hidden],
.thirty-bell [hidden], .thirty-wall-lightbox[hidden], .thirty-wall-lightbox [hidden],
.thirty-wall-tabpanel[hidden] {
    display: none !important;
}

.thirty-wall :focus-visible, .thirty-feed :focus-visible, .thirty-wall-single :focus-visible,
.thirty-bell :focus-visible, .thirty-wall-lightbox :focus-visible, .thirty-wall-toasts :focus-visible,
.thirty-wall-tabs :focus-visible, .thirty-wall-tabpanel:focus-visible {
    outline: 3px solid var(--t-focus);
    outline-offset: 2px;
}

.thirty-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.thirty-wall h1, .thirty-wall h2, .thirty-wall h3, .thirty-wall p,
.thirty-feed h1, .thirty-feed h2, .thirty-feed h3, .thirty-feed p,
.thirty-wall-single h1, .thirty-wall-single h3, .thirty-wall-single p,
.thirty-bell h2, .thirty-bell p, .thirty-bell ul {
    margin: 0;
}

.thirty-feed[data-thirty-theme="dark"],
.thirty-wall-single[data-thirty-theme="dark"] {
    background: var(--t-bg);
    border-radius: var(--t-radius-lg);
}

/* ═══ BOTONES PROPIOS (no dependen de style.css) ═════════════════ */
.thirty-wall-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 44px;
    padding: 0.6rem 1.2rem;
    border-radius: var(--t-pill);
    border: 2px solid transparent;
    font: inherit;
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s var(--t-ease), border-color 0.2s var(--t-ease), color 0.2s var(--t-ease), transform 0.15s var(--t-ease);
}
.thirty-wall-btn:active { transform: translateY(1px); }
.thirty-wall-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.thirty-wall-btn--sm { min-height: 38px; padding: 0.4rem 0.95rem; font-size: 0.85rem; }

.thirty-wall-btn--primary { background: var(--t-accent); color: #ffffff; }
.thirty-wall-btn--primary:hover:not(:disabled) { background: var(--t-accent-hover); color: #ffffff; }
[data-thirty-theme="dark"] .thirty-wall-btn--primary,
[data-thirty-theme="dark"] .thirty-wall-btn--primary:hover:not(:disabled) { color: #0f172a; }

.thirty-wall-btn--outline { background: var(--t-surface); color: var(--t-accent); border-color: var(--t-accent-border); }
.thirty-wall-btn--outline:hover:not(:disabled) { border-color: var(--t-accent); background: var(--t-accent-bg); }

.thirty-wall-btn--ghost { background: transparent; color: var(--t-muted); }
.thirty-wall-btn--ghost:hover:not(:disabled) { background: var(--t-surface-2); color: var(--t-text); }

.thirty-wall-btn--danger { background: var(--t-error); color: #ffffff; }
.thirty-wall-btn--danger:hover:not(:disabled) { filter: brightness(0.92); }
[data-thirty-theme="dark"] .thirty-wall-btn--danger { color: #0f172a; }

.thirty-wall-link {
    display: inline;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-weight: 700;
    color: var(--t-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

/* ═══ PESTAÑAS (perfil y feed) ═══════════════════════════════════ */
.thirty-wall-tabs,
.thirty-feed-tabs {
    display: flex;
    gap: 0.25rem;
    margin: 1.5rem 0 1rem;
    padding: 0.3rem;
    background: var(--t-surface-2);
    border: 1px solid var(--t-border);
    border-radius: var(--t-pill);
    max-width: 420px;
}

.thirty-wall-tab,
.thirty-feed-tab {
    flex: 1 1 0;
    min-height: 44px;
    padding: 0.5rem 1rem;
    border: 0;
    border-radius: var(--t-pill);
    background: transparent;
    color: var(--t-muted);
    font: inherit;
    font-weight: 700;
    font-size: 0.95rem;
    cursor: pointer;
    transition: background-color 0.2s var(--t-ease), color 0.2s var(--t-ease), box-shadow 0.2s var(--t-ease);
}
.thirty-wall-tab:hover,
.thirty-feed-tab:hover { color: var(--t-text); }
.thirty-wall-tab[aria-selected="true"],
.thirty-feed-tab[aria-selected="true"] {
    background: var(--t-surface);
    color: var(--t-primary);
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.12);
}
.thirty-wall-tab__count {
    display: inline-block;
    min-width: 1.6em;
    margin-left: 0.25rem;
    padding: 0 0.4em;
    border-radius: var(--t-pill);
    background: var(--t-accent-bg);
    color: var(--t-accent);
    font-size: 0.78rem;
    line-height: 1.6;
}
.thirty-wall-tabpanel { outline: none; }

/* ═══ CONTENEDOR DEL MURO ════════════════════════════════════════ */
.thirty-wall {
    display: grid;
    gap: 1rem;
    max-width: 680px;
}

.thirty-wall-notice {
    padding: 1rem 1.1rem;
    border: 1px dashed var(--t-border-strong);
    border-radius: var(--t-radius);
    background: var(--t-surface-2);
    color: var(--t-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
}

/* ═══ COMPOSITOR ═════════════════════════════════════════════════ */
.thirty-wall-composer {
    display: grid;
    gap: 1rem;
    padding: 1.1rem;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow);
}
.thirty-wall-composer.is-editing { border-color: var(--t-accent); box-shadow: 0 0 0 3px var(--t-accent-bg), var(--t-shadow); }

.thirty-wall-composer__head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.thirty-wall-composer__title { font-size: 1.1rem; font-weight: 800; color: var(--t-primary); }
.thirty-wall-composer__label { display: block; margin-bottom: 0.4rem; font-weight: 700; font-size: 0.9rem; color: var(--t-text); }
.thirty-wall-optional { font-weight: 500; color: var(--t-muted); }

.thirty-wall-composer__types { border: 0; margin: 0; padding: 0; min-width: 0; }

.thirty-wall-types {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}

.thirty-wall-type { position: relative; display: block; cursor: pointer; }
.thirty-wall-type__input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.thirty-wall-type__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.15rem;
    height: 100%;
    min-height: 88px;
    padding: 0.7rem 0.4rem;
    border: 2px solid var(--t-border);
    border-radius: var(--t-radius);
    background: var(--t-surface-2);
    transition: border-color 0.2s var(--t-ease), background-color 0.2s var(--t-ease), transform 0.15s var(--t-ease);
}
.thirty-wall-type:hover .thirty-wall-type__box { border-color: var(--t-border-strong); }
.thirty-wall-type__emoji { font-size: 1.5rem; line-height: 1.2; }
.thirty-wall-type__name { font-weight: 800; font-size: 0.88rem; color: var(--t-text); }
.thirty-wall-type__hint { font-size: 0.74rem; color: var(--t-muted); line-height: 1.25; }

.thirty-wall-type__input:focus-visible + .thirty-wall-type__box { outline: 3px solid var(--t-focus); outline-offset: 2px; }
.thirty-wall-type--progress .thirty-wall-type__input:checked + .thirty-wall-type__box { border-color: var(--tw-progress); background: var(--tw-progress-bg); }
.thirty-wall-type--coming_soon .thirty-wall-type__input:checked + .thirty-wall-type__box { border-color: var(--tw-soon); background: var(--tw-soon-bg); }
.thirty-wall-type--news .thirty-wall-type__input:checked + .thirty-wall-type__box { border-color: var(--tw-news); background: var(--tw-news-bg); }
.thirty-wall-type__input:checked + .thirty-wall-type__box { transform: translateY(-1px); }
.thirty-wall-type__input:checked + .thirty-wall-type__box .thirty-wall-type__name::after { content: " ✓"; }

.thirty-wall-composer__launch-note { font-size: 0.85rem; color: var(--t-muted); }

.thirty-wall-field { display: grid; gap: 0.1rem; }

.thirty-wall-input {
    width: 100%;
    min-height: 44px;
    padding: 0.65rem 0.85rem;
    border: 1.5px solid var(--t-border-strong);
    border-radius: var(--t-sm);
    background: var(--t-surface);
    color: var(--t-text);
    font: inherit;
    font-size: 1rem;
    transition: border-color 0.2s var(--t-ease), box-shadow 0.2s var(--t-ease);
}
.thirty-wall-input::placeholder { color: var(--t-muted); opacity: 0.85; }
.thirty-wall-input:focus { border-color: var(--t-accent); box-shadow: 0 0 0 3px var(--t-accent-bg); outline: none; }
.thirty-wall-input:focus-visible { outline: 3px solid var(--t-focus); outline-offset: 1px; }
.thirty-wall-input[aria-invalid="true"] { border-color: var(--t-error); }
.thirty-wall-textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.thirty-wall-input--date { max-width: 220px; }

.thirty-wall-field__meta {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.3rem;
}
.thirty-wall-help { font-size: 0.8rem; color: var(--t-muted); }
.thirty-wall-counter { font-size: 0.8rem; color: var(--t-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.thirty-wall-counter.is-warn { color: var(--t-warning); font-weight: 700; }
.thirty-wall-counter.is-over { color: var(--t-error); font-weight: 800; }

.thirty-wall-field__error {
    margin-top: 0.35rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--t-error);
}
.thirty-wall-field__error::before { content: "⚠ "; }

/* Fotos del compositor */
.thirty-wall-photos {
    list-style: none;
    margin: 0 0 0.5rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}
.thirty-wall-photos:empty { display: none; }
.thirty-wall-photo {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: var(--t-sm);
    overflow: hidden;
    background: var(--t-surface-2);
    border: 1px solid var(--t-border);
}
.thirty-wall-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.thirty-wall-photo.is-uploading img { opacity: 0.55; }
.thirty-wall-photo.is-error { border-color: var(--t-error); }
.thirty-wall-photo__state {
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: 10px;
    font-size: 0.7rem;
    font-weight: 700;
    text-align: center;
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
}
.thirty-wall-photo__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: rgba(15, 23, 42, 0.25); }
.thirty-wall-photo__bar span { display: block; height: 100%; width: var(--tw-progress, 0%); background: var(--t-accent); transition: width 0.2s linear; }
.thirty-wall-photo__remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: rgba(15, 23, 42, 0.75);
    color: #ffffff;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}
.thirty-wall-photo__remove:hover { background: var(--t-error); }
.thirty-wall-photo__retry {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 0.3rem 0.6rem;
    border: 0;
    border-radius: var(--t-pill);
    background: #ffffff;
    color: #b91c1c;
    font: inherit;
    font-size: 0.75rem;
    font-weight: 800;
    cursor: pointer;
}
.thirty-wall-photos__add { position: relative; justify-self: start; }
.thirty-wall-photos__add:focus-within { outline: 3px solid var(--t-focus); outline-offset: 2px; }

.thirty-wall-composer__review {
    padding: 0.7rem 0.9rem;
    border-radius: var(--t-sm);
    background: var(--t-accent-bg);
    border: 1px solid var(--t-accent-border);
    font-size: 0.87rem;
    color: var(--t-text);
}
.thirty-wall-composer__error {
    padding: 0.7rem 0.9rem;
    border-radius: var(--t-sm);
    background: var(--t-error-bg);
    border: 1px solid var(--t-error-border);
    color: var(--t-error);
    font-weight: 600;
    font-size: 0.9rem;
}
.thirty-wall-composer__success {
    padding: 0.7rem 0.9rem;
    border-radius: var(--t-sm);
    background: var(--t-success-bg);
    color: var(--t-success);
    font-weight: 700;
    font-size: 0.9rem;
}
.thirty-wall-composer__actions { display: flex; justify-content: flex-end; }
.thirty-wall-composer__submit { width: 100%; }

@media (min-width: 600px) {
    .thirty-wall-composer { padding: 1.4rem; }
    .thirty-wall-composer__submit { width: auto; min-width: 200px; }
    .thirty-wall-type__box { min-height: 96px; }
    .thirty-wall-type__name { font-size: 0.95rem; }
}

/* ═══ LISTA Y TARJETAS ═══════════════════════════════════════════ */
.thirty-wall-list { display: grid; gap: 1rem; }
.thirty-wall-list__foot { display: flex; justify-content: center; }
.thirty-wall-list__foot:empty { display: none; }

.thirty-wall-card {
    --tw-type: var(--tw-news);
    position: relative;
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-top: 4px solid var(--tw-type);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow);
    transition: box-shadow 0.2s var(--t-ease), opacity 0.25s var(--t-ease), transform 0.25s var(--t-ease);
}
.thirty-wall-card:hover { box-shadow: var(--t-shadow-lg); }
.thirty-wall-card--progress { --tw-type: var(--tw-progress); }
.thirty-wall-card--coming_soon { --tw-type: var(--tw-soon); }
.thirty-wall-card--launch { --tw-type: var(--tw-launch); }
.thirty-wall-card--news { --tw-type: var(--tw-news); }
.thirty-wall-card.is-launched { --tw-type: var(--tw-launch); }
.thirty-wall-card.is-pending { border-style: dashed; border-top-style: solid; }
.thirty-wall-card.is-rejected { border-color: var(--t-error-border); }
.thirty-wall-card.is-pinned { box-shadow: 0 0 0 2px var(--t-accent-border), var(--t-shadow); }
.thirty-wall-card.is-leaving { opacity: 0; transform: scale(0.98); }
.thirty-wall-card.is-new { animation: thirty-wall-in 0.5s var(--t-ease); }

@keyframes thirty-wall-in {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: none; }
}

.thirty-wall-card__pin {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--t-muted);
    margin: -0.25rem 0 -0.25rem;
}

.thirty-wall-card__head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}
.thirty-wall-card__avatar {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--t-surface-2);
    border: 2px solid var(--t-surface);
    box-shadow: 0 0 0 1px var(--t-border);
}
.thirty-wall-card__who { display: grid; min-width: 0; flex: 1 1 auto; line-height: 1.25; }
.thirty-wall-card__author {
    font-weight: 800;
    color: var(--t-primary);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.thirty-wall-card__author:hover { color: var(--t-accent); text-decoration: underline; }
.thirty-wall-card__time { font-size: 0.8rem; color: var(--t-muted); text-decoration: none; }
a.thirty-wall-card__time:hover { text-decoration: underline; }

.thirty-wall-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.6rem;
    border-radius: var(--t-pill);
    font-size: 0.75rem;
    font-weight: 800;
    white-space: nowrap;
    background: var(--tw-news-bg);
    color: var(--tw-news-fg);
}
.thirty-wall-badge--progress { background: var(--tw-progress-bg); color: var(--tw-progress-fg); }
.thirty-wall-badge--coming_soon { background: var(--tw-soon-bg); color: var(--tw-soon-fg); }
.thirty-wall-badge--launch { background: var(--tw-launch-bg); color: var(--tw-launch-fg); }

.thirty-wall-card__title { font-size: 1.12rem; font-weight: 800; line-height: 1.3; color: var(--t-primary); overflow-wrap: anywhere; }
.thirty-wall-card__title a { color: inherit; text-decoration: none; }
.thirty-wall-card__title a:hover { color: var(--t-accent); text-decoration: underline; }
.thirty-wall-single .thirty-wall-card__title { font-size: 1.5rem; }

.thirty-wall-card__content { color: var(--t-text); font-size: 0.97rem; overflow-wrap: anywhere; }
.thirty-wall-card__content p + p { margin-top: 0.6rem; }

.thirty-wall-card__ribbon {
    justify-self: start;
    padding: 0.3rem 0.75rem;
    border-radius: var(--t-pill);
    background: var(--tw-launch-bg);
    color: var(--tw-launch-fg);
    font-weight: 800;
    font-size: 0.85rem;
}

.thirty-wall-status {
    padding: 0.6rem 0.8rem;
    border-radius: var(--t-sm);
    font-size: 0.87rem;
}
.thirty-wall-status--pending { background: var(--t-warning-bg); color: var(--t-warning); border: 1px solid var(--t-warning-border); }
.thirty-wall-status--rejected { background: var(--t-error-bg); color: var(--t-error); border: 1px solid var(--t-error-border); }

/* ═══ GALERÍA ════════════════════════════════════════════════════ */
.thirty-wall-gallery {
    display: grid;
    gap: 4px;
    border-radius: var(--t-radius);
    overflow: hidden;
    grid-template-columns: 1fr 1fr;
}
.thirty-wall-gallery__item {
    display: block;
    position: relative;
    padding: 0;
    border: 0;
    background: var(--t-surface-2);
    cursor: zoom-in;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.thirty-wall-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s var(--t-ease);
}
.thirty-wall-gallery__item:hover img { transform: scale(1.04); }
.thirty-wall-gallery__item:focus-visible { outline-offset: -3px; }
.thirty-wall-gallery--n1 { grid-template-columns: 1fr; }
.thirty-wall-gallery--n1 .thirty-wall-gallery__item { aspect-ratio: 4 / 3; }
.thirty-wall-gallery--n3 .thirty-wall-gallery__item:first-child { grid-row: span 2; aspect-ratio: auto; }

/* ═══ PRÓXIMAMENTE: cuenta regresiva y Avísame ═══════════════════ */
.thirty-wall-soon {
    display: grid;
    gap: 0.6rem;
    justify-items: center;
    text-align: center;
    padding: 1rem;
    border-radius: var(--t-radius);
    background: var(--tw-soon-bg);
    border: 1px solid var(--t-border);
    border-color: color-mix(in srgb, var(--tw-soon) 30%, transparent);
}
.thirty-wall-soon__label { font-size: 0.8rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--tw-soon-fg); }
.thirty-wall-soon__label--big { font-size: 1.1rem; text-transform: none; letter-spacing: 0; }
.thirty-wall-soon__date { font-size: 0.85rem; color: var(--t-muted); }

.thirty-wall-countdown { display: flex; gap: 0.4rem; justify-content: center; }
.thirty-wall-countdown__unit {
    display: grid;
    justify-items: center;
    min-width: 58px;
    padding: 0.45rem 0.3rem;
    border-radius: var(--t-sm);
    background: var(--t-surface);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.thirty-wall-countdown__unit b { font-size: 1.45rem; font-weight: 800; line-height: 1.1; color: var(--tw-soon-fg); font-variant-numeric: tabular-nums; }
.thirty-wall-countdown__unit small { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; color: var(--t-muted); }

.thirty-wall-notify-row { display: grid; gap: 0.4rem; justify-items: center; width: 100%; }
.thirty-wall-notify {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    max-width: 320px;
    min-height: 50px;
    padding: 0.7rem 1.4rem;
    border: 2px solid var(--tw-notify-bg);
    border-radius: var(--t-pill);
    background: var(--tw-notify-bg);
    color: var(--tw-notify-fg);
    font: inherit;
    font-size: 1.02rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(109, 40, 217, 0.28);
    transition: background-color 0.2s var(--t-ease), transform 0.15s var(--t-ease), box-shadow 0.2s var(--t-ease);
}
.thirty-wall-notify:hover { background: var(--tw-notify-bg-hover); border-color: var(--tw-notify-bg-hover); transform: translateY(-1px); }
.thirty-wall-notify.is-on {
    background: var(--t-surface);
    color: var(--tw-soon-fg);
    border-color: var(--tw-soon);
    box-shadow: none;
}
.thirty-wall-notify__icon { font-size: 1.15rem; }
.thirty-wall-notify__social { font-size: 0.85rem; font-weight: 700; color: var(--tw-soon-fg); }
.thirty-wall-notify__social--owner { display: flex; gap: 0.35rem; align-items: center; }

/* ═══ PRODUCTO ENLAZADO (lanzamiento) ════════════════════════════ */
.thirty-wall-product {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.7rem;
    border: 1.5px solid var(--tw-launch);
    border-radius: var(--t-radius);
    background: var(--tw-launch-bg);
    color: var(--t-text);
    text-decoration: none;
    transition: transform 0.15s var(--t-ease), box-shadow 0.2s var(--t-ease);
}
.thirty-wall-product:hover { transform: translateY(-2px); box-shadow: var(--t-shadow-lg); }
.thirty-wall-product__img {
    flex: 0 0 84px;
    width: 84px;
    height: 84px;
    border-radius: var(--t-sm);
    object-fit: cover;
    background: var(--t-surface);
}
.thirty-wall-product__img--ph {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: var(--t-muted);
}
.thirty-wall-product__body { display: grid; gap: 0.15rem; min-width: 0; }
.thirty-wall-product__name { font-weight: 800; color: var(--t-primary); overflow-wrap: anywhere; }
.thirty-wall-product__price { font-weight: 800; color: var(--tw-launch-fg); }
.thirty-wall-product__price del { font-weight: 500; color: var(--t-muted); font-size: 0.85em; }
.thirty-wall-product__price ins { text-decoration: none; }
.thirty-wall-product__cta { font-size: 0.87rem; font-weight: 800; color: var(--tw-launch-fg); text-decoration: underline; text-underline-offset: 2px; }

/* ═══ PIE: REACCIONES Y COMPARTIR ════════════════════════════════ */
.thirty-wall-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--t-border);
}
.thirty-wall-reactions { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.thirty-wall-react,
.thirty-wall-share {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 40px;
    padding: 0.35rem 0.8rem;
    border: 1.5px solid var(--t-border);
    border-radius: var(--t-pill);
    background: var(--t-surface);
    color: var(--t-text);
    font: inherit;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.2s var(--t-ease), background-color 0.2s var(--t-ease), color 0.2s var(--t-ease);
}
.thirty-wall-react:hover,
.thirty-wall-share:hover { border-color: var(--t-border-strong); background: var(--t-surface-2); }
.thirty-wall-react__emoji { font-size: 1.1rem; line-height: 1; display: inline-block; }
.thirty-wall-react__count { font-variant-numeric: tabular-nums; min-width: 1ch; }
.thirty-wall-react.is-on {
    background: var(--tw-fire-bg);
    border-color: var(--tw-fire-border);
    color: var(--tw-fire);
}
.thirty-wall-share { color: var(--t-muted); }

.thirty-wall-react.is-pop .thirty-wall-react__emoji,
.thirty-wall-notify.is-pop .thirty-wall-notify__icon,
.thirty-bell__btn.is-pop .thirty-bell__icon { animation: thirty-wall-pop 0.45s var(--t-ease); }

@keyframes thirty-wall-pop {
    0% { transform: scale(1); }
    40% { transform: scale(1.45) rotate(-8deg); }
    70% { transform: scale(0.92); }
    100% { transform: scale(1); }
}

/* ═══ MENÚ DEL DUEÑO ═════════════════════════════════════════════ */
.thirty-wall-menu { position: relative; flex: 0 0 auto; }
.thirty-wall-menu__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--t-muted);
    cursor: pointer;
}
.thirty-wall-menu__btn:hover,
.thirty-wall-menu__btn[aria-expanded="true"] { background: var(--t-surface-2); color: var(--t-text); }
.thirty-wall-menu__list {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 20;
    display: grid;
    min-width: 200px;
    padding: 0.35rem;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    box-shadow: var(--t-shadow-lg);
}
.thirty-wall-menu__list [role="menuitem"] {
    display: block;
    width: 100%;
    min-height: 42px;
    padding: 0.5rem 0.75rem;
    border: 0;
    border-radius: var(--t-sm);
    background: transparent;
    color: var(--t-text);
    font: inherit;
    font-size: 0.92rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}
.thirty-wall-menu__list [role="menuitem"]:hover,
.thirty-wall-menu__list [role="menuitem"]:focus { background: var(--t-surface-2); }
.thirty-wall-menu__list .is-danger { color: var(--t-error); }

/* Paneles dentro de la tarjeta: confirmar borrado, "Ya salió", pista de sesión */
.thirty-wall-card__slot:empty { display: none; }
.thirty-wall-confirm,
.thirty-wall-launch,
.thirty-wall-hint {
    display: grid;
    gap: 0.6rem;
    padding: 0.8rem;
    border-radius: var(--t-radius);
    background: var(--t-surface-2);
    border: 1px solid var(--t-border);
    font-size: 0.9rem;
}
.thirty-wall-confirm { border-color: var(--t-error-border); background: var(--t-error-bg); }
.thirty-wall-confirm__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.thirty-wall-launch > p:focus { outline: none; }
.thirty-wall-launch__options { border: 0; margin: 0; padding: 0; display: grid; gap: 0.4rem; max-height: 280px; overflow: auto; }
.thirty-wall-launch__option {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.6rem;
    border: 1.5px solid var(--t-border);
    border-radius: var(--t-sm);
    background: var(--t-surface);
    cursor: pointer;
}
.thirty-wall-launch__option:has(input:checked) { border-color: var(--tw-launch); background: var(--tw-launch-bg); }
.thirty-wall-launch__option input { width: 18px; height: 18px; accent-color: var(--tw-launch); }
.thirty-wall-launch__option img,
.thirty-wall-launch__ph { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; flex: 0 0 48px; }
.thirty-wall-launch__ph { display: flex; align-items: center; justify-content: center; background: var(--t-bg); font-weight: 800; font-size: 0.75rem; color: var(--t-muted); }

/* ═══ ESTADOS: VACÍO, ERROR, CARGANDO ════════════════════════════ */
.thirty-wall-empty {
    display: grid;
    gap: 0.5rem;
    justify-items: center;
    text-align: center;
    padding: 2rem 1.25rem;
    border: 2px dashed var(--t-border-strong);
    border-radius: var(--t-radius-lg);
    background: var(--t-surface);
    color: var(--t-muted);
}
.thirty-wall-empty__icon { font-size: 2.2rem; line-height: 1; }
.thirty-wall-empty__title { font-size: 1.1rem; font-weight: 800; color: var(--t-primary); }
.thirty-wall-empty p { max-width: 440px; }
.thirty-wall-empty__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-top: 0.25rem; }

.thirty-wall-error {
    padding: 1rem;
    border-radius: var(--t-radius);
    background: var(--t-error-bg);
    color: var(--t-error);
    font-weight: 600;
}

.thirty-wall-skeleton { display: grid; gap: 1rem; }
.thirty-wall-skeleton span {
    display: block;
    height: 180px;
    border-radius: var(--t-radius-lg);
    background: linear-gradient(90deg, var(--t-surface-2) 0%, var(--t-border) 50%, var(--t-surface-2) 100%);
    background-size: 200% 100%;
    animation: thirty-wall-shimmer 1.4s linear infinite;
}
.thirty-wall-skeleton span:nth-child(2) { height: 120px; }
.thirty-wall-skeleton span:nth-child(3) { height: 150px; }
@keyframes thirty-wall-shimmer { to { background-position: -200% 0; } }

@media (min-width: 600px) {
    .thirty-wall-card { padding: 1.25rem 1.35rem; }
    .thirty-wall-countdown__unit { min-width: 68px; }
    .thirty-wall-countdown__unit b { font-size: 1.7rem; }
}

@media (max-width: 380px) {
    .thirty-wall-react__label { display: none; }
    .thirty-wall-share span { display: none; }
    .thirty-wall-countdown__unit { min-width: 50px; }
}

/* ═══ LIGHTBOX ═══════════════════════════════════════════════════ */
html.thirty-wall-noscroll { overflow: hidden; }

.thirty-wall-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3.5rem 0.5rem;
}
.thirty-wall-lightbox__backdrop { position: absolute; inset: 0; background: rgba(2, 6, 23, 0.92); }
.thirty-wall-lightbox__figure {
    position: relative;
    margin: 0;
    max-width: 100%;
    max-height: 100%;
    display: grid;
    gap: 0.5rem;
    justify-items: center;
}
.thirty-wall-lightbox__img {
    max-width: min(100%, 1200px);
    max-height: calc(100vh - 8rem);
    object-fit: contain;
    border-radius: var(--t-sm);
    background: #0f172a;
}
.thirty-wall-lightbox__caption { color: #e2e8f0; font-size: 0.9rem; font-weight: 700; min-height: 1.2em; }
.thirty-wall-lightbox__btn {
    position: absolute;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}
.thirty-wall-lightbox__btn:hover { background: rgba(255, 255, 255, 0.28); }
.thirty-wall-lightbox__btn:focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }
.thirty-wall-lightbox__close { top: 0.6rem; right: 0.6rem; }
.thirty-wall-lightbox__prev { left: 0.5rem; top: 50%; transform: translateY(-50%); }
.thirty-wall-lightbox__next { right: 0.5rem; top: 50%; transform: translateY(-50%); }

/* ═══ AVISOS (toast) ═════════════════════════════════════════════ */
.thirty-wall-toasts {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    z-index: 100001;
    display: grid;
    gap: 0.5rem;
    width: min(92vw, 440px);
    pointer-events: none;
}
.thirty-wall-toast {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 0.9rem;
    border-radius: var(--t-radius);
    background: #0f172a;
    color: #f1f5f9;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
    font-size: 0.92rem;
    font-weight: 600;
    pointer-events: auto;
    animation: thirty-wall-in 0.25s var(--t-ease);
    transition: opacity 0.3s var(--t-ease);
}
.thirty-wall-toast.is-error { background: #7f1d1d; }
.thirty-wall-toast.is-leaving { opacity: 0; }
.thirty-wall-toast__text { flex: 1 1 auto; }
.thirty-wall-toast .thirty-wall-link { color: #bfdbfe; }
.thirty-wall-toast__close {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-size: 1.1rem;
    cursor: pointer;
}
[data-thirty-theme="dark"] .thirty-wall-toast { background: #f1f5f9; color: #0f172a; }
[data-thirty-theme="dark"] .thirty-wall-toast.is-error { background: #fecaca; color: #7f1d1d; }
[data-thirty-theme="dark"] .thirty-wall-toast .thirty-wall-link { color: #1d4ed8; }
[data-thirty-theme="dark"] .thirty-wall-toast__close { background: rgba(15, 23, 42, 0.1); color: #0f172a; }

/* ═══ FEED [thirty_feed] ═════════════════════════════════════════ */
.thirty-feed {
    max-width: 720px;
    margin: 0 auto;
    padding: 1rem 0;
}
.thirty-feed[data-thirty-theme="dark"] { padding: 1rem 0.75rem; }
.thirty-feed__head { display: grid; gap: 0.25rem; }
.thirty-feed__title { font-size: 1.5rem; font-weight: 800; color: var(--t-primary); }
.thirty-feed__sub { color: var(--t-muted); }
.thirty-feed-panel { display: grid; gap: 1rem; outline: none; }
.thirty-feed-login {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 1rem 0;
    padding: 0.9rem 1rem;
    border-radius: var(--t-radius);
    background: var(--t-accent-bg);
    border: 1px solid var(--t-accent-border);
    font-size: 0.92rem;
}

/* ═══ PÁGINA DE UNA PUBLICACIÓN ══════════════════════════════════ */
.thirty-wall-single {
    max-width: 720px;
    margin: 0 auto;
    padding: 1.25rem 1rem 2.5rem;
    display: grid;
    gap: 1rem;
}
.thirty-wall-single__back {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 44px;
    font-weight: 700;
    color: var(--t-accent);
    text-decoration: none;
}
.thirty-wall-single__back:hover { text-decoration: underline; }
.thirty-wall-single a.thirty-wall-gallery__item { cursor: zoom-in; }

/* ═══ CAMPANITA ══════════════════════════════════════════════════ */
.thirty-bell {
    position: fixed;
    right: var(--tw-bell-right, 16px);
    bottom: var(--tw-bell-bottom, 16px);
    z-index: 99990;
}
.thirty-bell__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border: 1px solid var(--t-border);
    border-radius: 50%;
    background: var(--t-surface);
    color: var(--t-primary);
    box-shadow: var(--t-shadow-lg);
    cursor: pointer;
    transition: transform 0.15s var(--t-ease), box-shadow 0.2s var(--t-ease);
}
.thirty-bell__btn:hover { transform: translateY(-2px); }
.thirty-bell.is-open .thirty-bell__btn { background: var(--t-accent-bg); color: var(--t-accent); }
.thirty-bell__icon { display: block; transform-origin: 50% 10%; }
.thirty-bell__badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: var(--t-pill);
    background: #b91c1c;
    color: #ffffff;
    border: 2px solid var(--t-surface);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
}

.thirty-bell__panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: min(calc(100vw - 32px), 380px);
    max-height: min(70vh, 560px);
    display: flex;
    flex-direction: column;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow-lg);
    overflow: hidden;
}
.thirty-bell__head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 0.75rem 0.75rem 1rem;
    border-bottom: 1px solid var(--t-border);
}
.thirty-bell__title { flex: 1 1 auto; font-size: 1rem; font-weight: 800; color: var(--t-primary); }
.thirty-bell__title:focus { outline: none; }
.thirty-bell__title:focus-visible { outline: 3px solid var(--t-focus); }
.thirty-bell__readall {
    border: 0;
    background: none;
    padding: 0.35rem 0.4rem;
    color: var(--t-accent);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    border-radius: var(--t-sm);
}
.thirty-bell__readall:hover { background: var(--t-accent-bg); }
.thirty-bell__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--t-muted);
    cursor: pointer;
}
.thirty-bell__close:hover { background: var(--t-surface-2); color: var(--t-text); }

.thirty-bell__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; }
.thirty-bell__list { list-style: none; padding: 0.35rem; margin: 0; display: grid; gap: 2px; }
.thirty-bell__link {
    display: grid;
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    column-gap: 0.65rem;
    align-items: center;
    padding: 0.6rem;
    border-radius: var(--t-sm);
    color: var(--t-text);
    text-decoration: none;
}
a.thirty-bell__link:hover { background: var(--t-surface-2); }
.thirty-bell__img {
    grid-row: span 2;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--t-surface-2);
}
.thirty-bell__img--ph { display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.thirty-bell__text { font-size: 0.88rem; line-height: 1.35; overflow-wrap: anywhere; }
.thirty-bell__time { font-size: 0.75rem; color: var(--t-muted); }
.thirty-bell__item.is-unread .thirty-bell__link { background: var(--t-accent-bg); }
.thirty-bell__item.is-unread .thirty-bell__text { font-weight: 700; }
.thirty-bell__item.is-unread .thirty-bell__time::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 0.35rem;
    border-radius: 50%;
    background: var(--t-accent);
    vertical-align: middle;
}
.thirty-bell__state { padding: 1.25rem 1rem; text-align: center; color: var(--t-muted); font-size: 0.9rem; }
.thirty-bell__more {
    display: block;
    width: calc(100% - 0.7rem);
    margin: 0 0.35rem 0.5rem;
    min-height: 40px;
    border: 1px solid var(--t-border);
    border-radius: var(--t-sm);
    background: var(--t-surface);
    color: var(--t-accent);
    font: inherit;
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
}
.thirty-bell__foot { border-top: 1px solid var(--t-border); padding: 0.6rem 1rem; text-align: center; }
.thirty-bell__all { color: var(--t-accent); font-weight: 700; font-size: 0.87rem; text-decoration: none; }
.thirty-bell__all:hover { text-decoration: underline; }

[data-thirty-theme="dark"] .thirty-bell__badge { background: #f87171; color: #0f172a; }

@media print { .thirty-bell, .thirty-wall-toasts { display: none !important; } }

/* ═══ PREFERENCIAS DE AVISOS (Mi cuenta) ═════════════════════════ */
.thirty-bell-prefs {
    display: grid;
    gap: 0.9rem;
    max-width: 620px;
    padding: 1.1rem;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    font-family: var(--t-font);
    color: var(--t-text);
}
.thirty-bell-prefs__title { margin: 0; font-size: 1.1rem; font-weight: 800; color: var(--t-primary); }
.thirty-bell-prefs__saved {
    margin: 0;
    padding: 0.6rem 0.85rem;
    border-radius: var(--t-sm);
    background: var(--t-success-bg);
    color: var(--t-success);
    font-weight: 700;
}
.thirty-bell-prefs__form { display: grid; gap: 1rem; }
.thirty-bell-prefs__group { display: grid; gap: 0.45rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.thirty-bell-prefs__legend { margin-bottom: 0.35rem; padding: 0; font-weight: 800; font-size: 0.95rem; }
.thirty-bell-prefs__option {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.65rem 0.8rem;
    border: 1.5px solid var(--t-border);
    border-radius: var(--t-radius);
    cursor: pointer;
}
.thirty-bell-prefs__option:has(input:checked) { border-color: var(--t-accent); background: var(--t-accent-bg); }
.thirty-bell-prefs__option input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0.1rem 0 0; accent-color: var(--t-accent); }
.thirty-bell-prefs__option input:focus-visible { outline: 3px solid var(--t-focus); outline-offset: 2px; }
.thirty-bell-prefs__option-text { display: grid; gap: 0.1rem; }
.thirty-bell-prefs__hint { font-size: 0.83rem; color: var(--t-muted); }
.thirty-bell-prefs .thirty-wall-btn { justify-self: start; }

/* ═══ MOVIMIENTO REDUCIDO ════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
    .thirty-wall *, .thirty-wall *::before, .thirty-wall *::after,
    .thirty-feed *, .thirty-wall-single *, .thirty-bell *,
    .thirty-wall-lightbox *, .thirty-wall-toasts *,
    .thirty-wall-card, .thirty-wall-toast {
        animation: none !important;
        transition: none !important;
    }
    .thirty-wall-gallery__item:hover img,
    .thirty-wall-product:hover,
    .thirty-wall-notify:hover,
    .thirty-bell__btn:hover { transform: none; }
}

/* Alto contraste de Windows */
@media (forced-colors: active) {
    .thirty-wall-badge, .thirty-wall-react, .thirty-wall-notify, .thirty-bell__badge { border: 1px solid CanvasText; }
    .thirty-wall-type__input:checked + .thirty-wall-type__box { outline: 3px solid Highlight; }
}
