/**
 * BOOKLOUNGE MVP - CSS Global Único
 * Estética minimalista radical: acento neutro negro/blanco por defecto
 */

/* Importar fuentes - Agregado Roboto Slab para títulos */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;500;600;700&family=Crimson+Text:ital,wght@0,400;0,600;1,400&family=Inter:wght@300;400;500;600;700&display=swap');

/* Reset básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Color de acento del proyecto (neutro por defecto; el usuario puede elegir otro) */
    --accent: #111111;
    --accent-hover: #000000;
    --accent-ink: #ffffff;
    /* Paleta (alias para compatibilidad) */
    --turquesa-oscuro: #111111;
    --turquesa-medio: #000000;
    --turquesa-claro: #333333;
    --turquesa-sutil: #f0f0f0;
    
    /* Colores base */
    --texto-oscuro: #2c3e50;
    --texto-medio: #5a6c7d;
    --texto-claro: #8b9aab;
    --fondo: #fafbfc;
    --blanco: #ffffff;
    --blanco-hueso: #fcfbf9;
    --pas-font-scale: 1;
    
    /* Sombras sutiles (neutras) */
    --sombra-sutil: 0 2px 12px rgba(0, 0, 0, 0.06);
    --sombra-media: 0 4px 20px rgba(0, 0, 0, 0.08);
    --sombra-fuerte: 0 8px 32px rgba(0, 0, 0, 0.12);
    
    /* Tipografía */
    --fuente-titulo: 'Roboto Slab', Georgia, serif;
    --fuente-serif: 'Roboto Slab', Georgia, serif;
    --fuente-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Posts destacados (estilo DMR) */
    --featured-bg: #1a1d21;
    --featured-text: #f3f4f5;
    --featured-muted: rgba(243, 244, 245, 0.68);
    --featured-badge-bg: rgba(255, 255, 255, 0.12);
    --featured-badge-text: #f0f0f0;

    /* Editor de bloques (assets/editor) */
    --adm-bg: #ffffff;
    --adm-surface: #fafafa;
    --adm-text: #1a1a1a;
    --adm-muted: #666666;
    --adm-border: #e0e0e0;
    --adm-border-light: #eeeeee;
    --adm-accent: var(--accent, #111111);
    --adm-font-serif: 'Literata', Georgia, serif;
}

html {
    font-size: calc(16px * var(--pas-font-scale, 1));
}

body {
    font-family: var(--fuente-sans);
    line-height: 1.7;
    color: var(--texto-oscuro);
    background: var(--fondo);
    font-weight: 400;
    letter-spacing: -0.01em;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: max(2rem, env(safe-area-inset-left, 0px));
    padding-right: max(2rem, env(safe-area-inset-right, 0px));
}

/* Header */
.header {
    position: sticky;
    top: 0;
    z-index: 102;
    background: var(--turquesa-oscuro);
    color: var(--blanco);
    padding: 1.25rem 0;
    box-shadow: var(--sombra-sutil);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-minimal {
    padding: 1rem 0;
}

.logo {
    font-family: var(--fuente-titulo);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--blanco);
    text-decoration: none;
    transition: opacity 0.3s ease;
    letter-spacing: 0.02em;
}

.logo:hover {
    opacity: 0.85;
}

.logo-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
}

.logo-icon .icon-home {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--blanco);
}

.nav {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.nav-public a {
    color: var(--blanco);
    text-decoration: none;
    padding: 0.625rem 1.5rem;
    border-radius: 6px;
    font-weight: 500;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 0.9375rem;
}

.nav-public a:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.35);
}

/* Main */
.main {
    min-height: calc(100vh - 80px);
    padding: 3rem 0;
}

/* Títulos principales con Roboto Slab */
h1, h2, h3, .page-title {
    font-family: var(--fuente-titulo);
}

/* Formularios */
.form {
    background: var(--blanco);
    padding: 3rem;
    border-radius: 12px;
    box-shadow: var(--sombra-sutil);
    max-width: 520px;
    margin: 0 auto;
    border: 1px solid rgba(255, 152, 0, 0.08);
}

.form h1 {
    margin-bottom: 2rem;
    color: var(--turquesa-oscuro);
    font-family: var(--fuente-titulo);
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.625rem;
    font-weight: 500;
    color: var(--texto-oscuro);
    font-size: 0.9375rem;
    letter-spacing: -0.01em;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1.5px solid rgba(255, 152, 0, 0.15);
    border-radius: 8px;
    font-size: 1rem;
    font-family: var(--fuente-sans);
    transition: all 0.3s ease;
    background: var(--blanco);
    color: var(--texto-oscuro);
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: var(--turquesa-medio);
    box-shadow: 0 0 0 3px rgba(245, 124, 0, 0.1);
}

.form-group textarea {
    min-height: 120px;
    resize: vertical;
    line-height: 1.6;
}

.btn {
    display: inline-block;
    background: var(--turquesa-oscuro);
    color: var(--blanco);
    padding: 0.875rem 2.25rem;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.3s ease;
    font-family: var(--fuente-sans);
    letter-spacing: -0.01em;
    box-shadow: var(--sombra-sutil);
}

.btn:hover {
    background: var(--turquesa-medio);
    box-shadow: var(--sombra-media);
    transform: translateY(-1px);
}

.btn:active {
    transform: translateY(0);
}

.btn-secondary {
    background: var(--texto-medio);
    box-shadow: none;
}

.btn-secondary:hover {
    background: #4a5a6a;
    box-shadow: var(--sombra-sutil);
}

/* Grid de libros */
.books-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 2rem;
    margin-top: 2.5rem;
}

.book-card {
    background: var(--blanco);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--sombra-sutil);
    transition: all 0.3s ease;
    text-decoration: none;
    color: inherit;
    display: block;
    border: 1px solid rgba(255, 152, 0, 0.08);
}

.book-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-media);
    border-color: rgba(255, 152, 0, 0.15);
}

.book-cover {
    width: 100%;
    aspect-ratio: 3/4;
    background: linear-gradient(135deg, var(--turquesa-oscuro) 0%, var(--turquesa-medio) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.5rem;
    position: relative;
    overflow: hidden;
}

.book-cover::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);
}

.book-info {
    padding: 1.25rem;
}

.book-info h3 {
    font-size: 1.0625rem;
    margin-bottom: 0.625rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-weight: 600;
    color: var(--texto-oscuro);
    line-height: 1.4;
    font-family: var(--fuente-titulo);
}

.book-author {
    font-size: 0.875rem;
    color: var(--texto-medio);
    margin-bottom: 0.75rem;
    font-weight: 400;
}

.book-price {
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--turquesa-oscuro);
    font-family: var(--fuente-titulo);
}

.book-free {
    color: var(--turquesa-medio);
}

/* Tablas */
.table {
    width: 100%;
    background: var(--blanco);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--sombra-sutil);
    border: 1px solid rgba(255, 152, 0, 0.08);
}

.table th,
.table td {
    padding: 1.25rem;
    text-align: left;
    border-bottom: 1px solid rgba(255, 152, 0, 0.08);
}

.table th {
    background: var(--turquesa-sutil);
    font-weight: 600;
    color: var(--turquesa-oscuro);
    font-size: 0.9375rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.table tr:last-child td {
    border-bottom: none;
}

.table tr:hover {
    background: rgba(255, 152, 0, 0.02);
}

/* Badges */
.badge {
    display: inline-block;
    padding: 0.375rem 0.875rem;
    border-radius: 20px;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.badge-success {
    background: rgba(255, 152, 0, 0.12);
    color: var(--turquesa-oscuro);
}

.badge-warning {
    background: rgba(255, 193, 7, 0.15);
    color: #856404;
}

.badge-info {
    background: rgba(245, 124, 0, 0.12);
    color: var(--turquesa-medio);
}

/* Alertas */
.alert {
    padding: 1.25rem 1.5rem;
    border-radius: 10px;
    margin-bottom: 1.5rem;
    border-left: 4px solid;
}

.alert-success {
    background: rgba(255, 152, 0, 0.08);
    color: var(--turquesa-oscuro);
    border-color: var(--turquesa-medio);
}

.alert-error {
    background: rgba(220, 53, 69, 0.08);
    color: #721c24;
    border-color: #dc3545;
}

.alert-info {
    background: rgba(245, 124, 0, 0.08);
    color: var(--turquesa-oscuro);
    border-color: var(--turquesa-claro);
}

/* Landing */
.hero {
    text-align: center;
    padding: 5rem 1rem;
    background: linear-gradient(135deg, var(--turquesa-oscuro) 0%, var(--turquesa-medio) 100%);
    color: var(--blanco);
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M 40 0 L 0 0 0 40" fill="none" stroke="rgba(255,255,255,0.03)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.5;
}

.hero > * {
    position: relative;
    z-index: 1;
}

.hero h1 {
    font-size: 3.5rem;
    margin-bottom: 1.25rem;
    font-family: var(--fuente-titulo);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
}

.hero p {
    font-size: 1.375rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
    font-weight: 300;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.hero-sub { font-size: 1rem; opacity: 0.9; margin-bottom: 1.5rem !important; }
.hero-badge {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.9;
    margin-bottom: 0.75rem;
}
.hero-lead {
    font-size: 1.25rem;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem !important;
    opacity: 0.95;
    line-height: 1.5;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-top: 1rem; }
.hero-actions .btn { margin: 0; }

.btn-cta-participar {
    background: var(--blanco);
    color: var(--turquesa-oscuro);
    font-weight: 600;
    padding: 0.75rem 1.75rem;
    font-size: 1.1rem;
    border: 2px solid var(--blanco);
    box-shadow: var(--sombra-media);
}
.btn-cta-participar:hover {
    background: var(--turquesa-sutil);
    color: var(--turquesa-oscuro);
    border-color: var(--blanco);
    transform: translateY(-2px);
}
.btn-cta-big {
    padding: 1rem 2.25rem;
    font-size: 1.2rem;
}

/* Landing: secciones y features */
.landing { padding-bottom: 0; }
.landing-features {
    padding-top: 3rem;
    padding-bottom: 2rem;
}
.landing-section-title {
    text-align: center;
    font-size: 1.75rem;
    color: var(--texto-oscuro);
    margin-bottom: 2rem;
}
.landing .features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    max-width: 900px;
    margin: 0 auto;
}
.landing .feature-card {
    background: var(--blanco);
    padding: 1.75rem;
    border-radius: 12px;
    text-align: center;
    box-shadow: var(--sombra-sutil);
    border: 1px solid rgba(255, 152, 0, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.landing .feature-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--sombra-media);
}
.landing .feature-icon {
    font-size: 2rem;
    margin-bottom: 0.75rem;
    line-height: 1;
}
.landing .feature-card h3 {
    font-size: 1.125rem;
    color: var(--turquesa-oscuro);
    margin-bottom: 0.5rem;
}
.landing .feature-card p {
    font-size: 0.9375rem;
    color: var(--texto-medio);
    margin: 0;
    line-height: 1.5;
}

/* Landing: CTA final */
.landing-cta {
    background: linear-gradient(135deg, var(--turquesa-sutil) 0%, rgba(245, 124, 0, 0.12) 100%);
    padding: 3.5rem 1rem;
    text-align: center;
    border-top: 1px solid rgba(255, 152, 0, 0.1);
}
.landing-cta-title {
    font-size: 1.75rem;
    color: var(--turquesa-oscuro);
    margin-bottom: 0.5rem;
}
.landing-cta-lead {
    font-size: 1rem;
    color: var(--texto-medio);
    margin-bottom: 1.5rem;
}
.landing-cta .btn-cta-participar {
    background: var(--turquesa-oscuro);
    color: var(--blanco);
    border-color: var(--turquesa-oscuro);
}
.landing-cta .btn-cta-participar:hover {
    background: var(--turquesa-medio);
    border-color: var(--turquesa-medio);
    color: var(--blanco);
}

/* Stats */
.stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin: 3rem 0;
}

.stat-card {
    background: var(--blanco);
    padding: 2rem;
    border-radius: 12px;
    text-align: center;
    box-shadow: var(--sombra-sutil);
    border: 1px solid rgba(255, 152, 0, 0.08);
    transition: all 0.3s ease;
}

.stat-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--sombra-media);
}

.stat-value {
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--turquesa-oscuro);
    font-family: var(--fuente-titulo);
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: 0.9375rem;
    color: var(--texto-medio);
    margin-top: 0.5rem;
    font-weight: 400;
    letter-spacing: 0.02em;
}

/* Títulos de página específicos */
.buscador-page h1,
.dashboard-page h1,
.evaluar-page h1,
.mis-compras-page h1,
.mis-obras-page h1,
.mis-regalias-page h1,
.mis-sociedades-page h1,
.subir-page h1,
.libro-page h1,
.perfil-page h1 {
    font-family: var(--fuente-titulo);
    font-weight: 600;
    letter-spacing: -0.02em;
}

/* Responsive */
@media (max-width: 768px) {
    .hero h1 {
        font-size: 2rem;
    }
    
    .hero p,
    .hero-lead {
        font-size: 1.0625rem;
    }
    
    .landing-cta-title { font-size: 1.5rem; }
    .btn-cta-big { padding: 0.875rem 1.75rem; font-size: 1.1rem; }
    
    .books-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 1.5rem;
    }
    
    .container {
        padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
        padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
    }
    
    .form {
        padding: 2rem 1.5rem;
    }
}

/* Utilidades */
.text-center { text-align: center; }
.mt-1 { margin-top: 0.75rem; }
.mt-2 { margin-top: 1.5rem; }
.mt-3 { margin-top: 2.25rem; }
.mb-1 { margin-bottom: 0.75rem; }
.mb-2 { margin-bottom: 1.5rem; }
.mb-3 { margin-bottom: 2.25rem; }

/* ================================================
   OFFCANVAS MENU
   ================================================ */

.hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: rgba(255,255,255,0.1);
    border: none;
    cursor: pointer;
    padding: 10px;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.hamburger:hover {
    background: rgba(255,255,255,0.18);
}

.hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: white;
    border-radius: 2px;
    transition: all 0.3s ease;
}

.offcanvas {
    position: fixed;
    top: 0;
    right: -320px;
    width: 320px;
    height: 100vh;
    background: var(--blanco);
    box-shadow: var(--sombra-fuerte);
    transition: right 0.3s ease;
    z-index: 1001;
    overflow-y: auto;
    border-left: 1px solid rgba(255, 152, 0, 0.1);
}

.offcanvas.active {
    right: 0;
}

.offcanvas-header {
    padding: 2rem 1.5rem;
    padding-right: 3rem;
    background: linear-gradient(135deg, var(--turquesa-oscuro) 0%, var(--turquesa-medio) 100%);
    color: var(--blanco);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.user-info {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.user-avatar {
    width: 60px;
    height: 60px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--blanco);
    border: 2px solid rgba(255,255,255,0.3);
}

.user-details h3 {
    margin: 0;
    font-size: 1.125rem;
    color: var(--blanco);
    font-weight: 600;
    font-family: var(--fuente-titulo);
}

.user-details p {
    margin: 0.25rem 0;
    font-size: 0.875rem;
    opacity: 0.9;
}

.user-tipo {
    margin-top: 0.5rem;
    display: inline-block;
}

.close-btn {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    background: rgba(255,255,255,0.15);
    border: none;
    color: var(--blanco);
    font-size: 1.75rem;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    line-height: 1;
}

.close-btn:hover {
    background: rgba(255,255,255,0.25);
    transform: rotate(90deg);
}

.offcanvas-body {
    padding: 2rem 1.5rem;
}

.puntos-card {
    background: linear-gradient(135deg, var(--turquesa-sutil) 0%, rgba(245, 124, 0, 0.15) 100%);
    padding: 1.75rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 2rem;
    border: 1px solid rgba(255, 152, 0, 0.1);
}

.puntos-icon {
    font-size: 2.5rem;
}

.puntos-value {
    font-size: 2.25rem;
    font-weight: 600;
    color: var(--turquesa-oscuro);
    font-family: var(--fuente-titulo);
}

.puntos-label {
    font-size: 0.875rem;
    color: var(--texto-medio);
    font-weight: 400;
}

.offcanvas-nav {
    display: flex;
    flex-direction: column;
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    color: var(--texto-oscuro);
    text-decoration: none;
    border-radius: 10px;
    transition: all 0.3s ease;
    font-size: 1rem;
    font-weight: 400;
}

.nav-item:hover {
    background: var(--turquesa-sutil);
    color: var(--turquesa-oscuro);
    transform: translateX(4px);
}

.nav-icon {
    font-size: 1.5rem;
    width: 30px;
    text-align: center;
}

.nav-divider {
    height: 1px;
    background: rgba(255, 152, 0, 0.1);
    margin: 1.25rem 0;
}

.logout-item {
    color: #dc3545;
    margin-top: 0.5rem;
}

.logout-item:hover {
    background: rgba(220, 53, 69, 0.08);
    color: #c82333;
}

.offcanvas-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s, visibility 0.3s;
    z-index: 1000;
    cursor: pointer;
}

.offcanvas-overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.offcanvas-title { margin: 0; font-size: 1.25rem; font-weight: 600; color: var(--blanco); }
.offcanvas-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    background: rgba(255,255,255,0.15);
    color: var(--blanco);
    font-size: 1.5rem;
    line-height: 1;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.offcanvas-close:hover { background: rgba(255,255,255,0.25); }
.btn-menu {
    padding: 0.5rem 0.75rem;
    font-size: 1.25rem;
    background: rgba(255,255,255,0.1);
    color: var(--blanco);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
}
.btn-menu:hover { background: rgba(255,255,255,0.2); }
.oc-section { margin-bottom: 1.5rem; }
.oc-section strong { display: block; margin-bottom: 0.35rem; color: #333; font-size: 0.9rem; }
.oc-nav { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(255, 152, 0, 0.12); }
.oc-link { display: inline-block; color: var(--turquesa-oscuro, #ff9800); text-decoration: none; font-weight: 500; font-size: 1rem; padding: 0.25rem 0; }
.oc-link:hover { text-decoration: underline; }
.oc-usuario-view { display: flex; align-items: center; gap: 0.5rem; margin: 0.25rem 0; }
.oc-usuario-view span { font-size: 1rem; }
.oc-edit-btn { width: 28px; height: 28px; padding: 0; border: 1px solid #ddd; background: #f8f8f8; color: #555; font-size: 1rem; line-height: 1; border-radius: 6px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.oc-edit-btn:hover { background: #eee; color: var(--turquesa-oscuro, #ff9800); border-color: #ccc; }
.oc-usuario-edit { margin: 0.25rem 0; }
.oc-seudonimo-input { width: 100%; max-width: 240px; padding: 0.5rem 0.6rem; border: 1px solid #ddd; border-radius: 8px; font-size: 1rem; }
.oc-seudonimo-input:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); }
.oc-actions .btn { margin-top: 0.25rem; }
.btn-danger { background: #c62828; color: #fff; border: none; }
.btn-danger:hover { background: #b71c1c; }
.oc-salas-list { list-style: none; padding: 0; margin: 0.5rem 0 0; }
.oc-salas-list li { margin-bottom: 0.35rem; }
.oc-salas-list a { color: var(--turquesa-oscuro, #ff9800); text-decoration: none; }
.oc-salas-list a:hover { text-decoration: underline; }

.desktop-nav {
    display: flex;
}

.btn-login {
    color: var(--blanco);
    text-decoration: none;
    padding: 0.625rem 1.25rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    border: 1.5px solid rgba(255,255,255,0.3);
    font-weight: 500;
}

.btn-login:hover {
    background: rgba(255,255,255,0.12);
    border-color: rgba(255,255,255,0.5);
}

.nav-public { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.btn-pulso {
    color: var(--blanco);
    text-decoration: none;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    font-size: 0.95rem;
    font-weight: 500;
    border: 1px solid rgba(255,255,255,0.25);
    transition: all 0.2s ease;
}
.btn-pulso:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.4); }

.btn-inscribir {
    color: var(--blanco);
    text-decoration: none;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    font-size: 0.95rem;
    font-weight: 500;
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(255,255,255,0.08);
    transition: all 0.2s ease;
    cursor: pointer;
    font-family: inherit;
}
button.btn-inscribir { background: rgba(255,255,255,0.08); color: var(--blanco); }
.btn-inscribir:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.4); }

/* Eliminar mi cuenta (temporal para desarrollo) */
.btn-eliminar-cuenta.dev-only {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
    background: rgba(198, 40, 40, 0.25);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
}
.btn-eliminar-cuenta.dev-only:hover { background: rgba(198, 40, 40, 0.4); }

/* Modal inscripción */
.modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.modal[hidden] { display: none !important; }
.modal.modal-open { display: flex !important; }
/* Solo el overlay interno de .modal (inscripción); no confundir con .modal-overlay de pantalla completa */
.modal > .modal-overlay { position: absolute; inset: 0; z-index: 0; background: rgba(0,0,0,0.5); cursor: pointer; }
.modal-dialog { position: relative; z-index: 1; width: 100%; max-width: 440px; max-height: 90vh; overflow-y: auto; }
.modal-content { background: var(--blanco); border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.2); padding: 1.5rem; }
.modal-header { position: relative; margin-bottom: 1rem; padding-right: 2rem; }
.modal-header h2 { font-size: 1.35rem; color: var(--turquesa-oscuro, #ff9800); margin: 0 0 0.25rem; }
.modal-subtitle { font-size: 0.95rem; color: #666; margin: 0; }
.modal-close { position: absolute; top: 0; right: 0; width: 2rem; height: 2rem; padding: 0; border: none; background: none; font-size: 1.5rem; line-height: 1; color: #999; cursor: pointer; border-radius: 4px; }
.modal-close:hover { color: #333; background: #eee; }
.form-inscribir label { display: block; margin-bottom: 0.25rem; font-weight: 500; color: #333; }
.form-inscribir .req { color: #c62828; }
.form-inscribir input[type="email"],
.form-inscribir input[type="text"],
.form-inscribir select { width: 100%; padding: 0.6rem; border: 1px solid #ddd; border-radius: 8px; margin-bottom: 1rem; font-size: 1rem; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.form-inscribir select { cursor: pointer; appearance: none; padding-right: 2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; }
.form-inscribir input:focus,
.form-inscribir select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px rgba(255,152,0,0.2); }
.form-inscribir .checkbox-wrap { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1rem; cursor: pointer; }
.form-inscribir .checkbox-wrap input { margin-top: 0.2rem; width: auto; }
.form-inscribir .checkbox-wrap span { font-weight: 400; }
.insc-msg { padding: 0.75rem; border-radius: 8px; margin-bottom: 1rem; }
.insc-msg.success { background: #e8f5e9; color: #2e7d32; }
.insc-msg.error { background: #ffebee; color: #c62828; }
.form-inscribir .btn { width: 100%; padding: 0.75rem; font-size: 1rem; }

/* PWA Install — diagnóstico, CTA y verificación de icono */
html.pwa-is-installed #pwa-diagnostic,
html.pwa-is-installed #pwa-install-banner,
html.pwa-is-installed #pwa-verify-panel { display: none !important; }

body.pwa-diagnostic-active,
body.pwa-verify-active { overflow: hidden; }

.pwa-diagnostic {
    position: fixed;
    inset: 0;
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    padding-top: max(1.5rem, env(safe-area-inset-top, 0px));
    padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
    background: rgba(8, 8, 8, 0.88);
    backdrop-filter: blur(6px);
}
.pwa-diagnostic[hidden] { display: none !important; }
.pwa-diagnostic-panel {
    text-align: center;
    color: #fff;
    max-width: 22rem;
}
.pwa-diagnostic-clock {
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto 1.35rem;
    border: 3px solid rgba(255, 255, 255, 0.18);
    border-top-color: var(--accent, #ff9800);
    border-right-color: rgba(255, 255, 255, 0.45);
    border-radius: 50%;
    animation: pwa-diagnostic-spin 0.95s linear infinite;
}
@keyframes pwa-diagnostic-spin { to { transform: rotate(360deg); } }
.pwa-diagnostic-heading {
    margin: 0 0 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1.35;
}
.pwa-diagnostic-step {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.82);
}

.pwa-install-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(180deg, #1a1a1a 0%, #111 100%);
    color: var(--blanco, #fff);
    padding: 1.15rem 1.25rem;
    padding-bottom: calc(1.15rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.35);
    z-index: 9999;
    transform: translateY(110%);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.pwa-install-banner[hidden] { display: none !important; }
.pwa-install-banner.pwa-install-visible { transform: translateY(0); }
.pwa-install-banner.pwa-install-ready {
    box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.45), 0 0 0 2px color-mix(in srgb, var(--accent, #ff9800) 55%, transparent);
}
.pwa-install-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem 1rem;
    align-items: center;
    padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}
.pwa-install-preview {
    grid-row: span 2;
    flex-shrink: 0;
}
.pwa-install-preview-img {
    display: block;
    width: 4rem;
    height: 4rem;
    border-radius: 14px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35), 0 0 0 2px color-mix(in srgb, var(--accent, #ff9800) 70%, transparent);
    object-fit: cover;
}
.pwa-install-copy { min-width: 0; grid-column: 2; }
.pwa-install-eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent, #ff9800);
}
.pwa-install-text { margin: 0; font-size: 0.95rem; line-height: 1.4; }
.pwa-install-hint { margin: 0.45rem 0 0; font-size: 0.85rem; line-height: 1.35; opacity: 0.92; }
.pwa-install-hint[hidden] { display: none !important; }
.pwa-install-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    grid-column: 1 / -1;
}
.pwa-install-btn-cta {
    display: block;
    width: 100%;
    margin: 0;
    padding: 1rem 1.25rem;
    border: none;
    border-radius: 12px;
    background: var(--accent, #ff9800);
    color: var(--accent-ink, #fff);
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: 0 8px 24px color-mix(in srgb, var(--accent, #ff9800) 45%, transparent);
    transition: transform 0.18s ease, background 0.18s ease;
    animation: pwa-cta-enter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pwa-install-banner.pwa-install-ready .pwa-install-btn-cta {
    animation: pwa-cta-pulse 2.2s ease-in-out infinite;
}
@keyframes pwa-cta-enter {
    from { opacity: 0; transform: translateY(0.75rem) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes pwa-cta-pulse {
    0%, 100% { box-shadow: 0 8px 24px color-mix(in srgb, var(--accent, #ff9800) 45%, transparent); }
    50% { box-shadow: 0 10px 32px color-mix(in srgb, var(--accent, #ff9800) 65%, transparent); transform: scale(1.02); }
}
.pwa-install-btn-cta:hover,
.pwa-install-btn-cta:focus {
    background: var(--accent-hover, #f57c00);
    transform: scale(1.01);
    outline: none;
}
.pwa-install-later {
    align-self: center;
    margin: 0;
    padding: 0.2rem 0.35rem;
    border: none;
    background: none;
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.76rem;
    font-weight: 400;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.pwa-install-later:hover { color: rgba(255, 255, 255, 0.62); }

.pwa-verify-panel {
    position: fixed;
    inset: 0;
    z-index: 10002;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
}
.pwa-verify-panel[hidden] { display: none !important; }
.pwa-verify-inner {
    width: min(100%, 24rem);
    padding: 1.35rem 1.25rem;
    border-radius: 14px;
    background: var(--blanco-hueso, #fcfbf9);
    color: #111;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
}
.pwa-verify-icon-wrap {
    text-align: center;
    margin-bottom: 0.85rem;
}
.pwa-verify-icon {
    display: inline-block;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15), 0 0 0 3px color-mix(in srgb, var(--accent, #ff9800) 50%, transparent);
}
.pwa-verify-title { margin: 0 0 0.65rem; font-size: 1.15rem; line-height: 1.3; text-align: center; }
.pwa-verify-lead { margin: 0 0 0.85rem; font-size: 0.92rem; line-height: 1.45; color: #444; text-align: center; }
.pwa-verify-steps {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
    font-size: 0.88rem;
    line-height: 1.45;
    color: #333;
}
.pwa-verify-steps li { margin-bottom: 0.4rem; }
.pwa-icon-help { margin-bottom: 0.75rem; }
.pwa-icon-help-note {
    margin: 0;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #fff3e0;
    color: #5d4037;
    font-size: 0.85rem;
    line-height: 1.35;
}
html[data-theme="night"] .pwa-icon-help-note {
    background: #2a2418;
    color: #ddd;
}
.pwa-verify-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.pwa-verify-btn { width: 100%; margin: 0; }
.pwa-verify-later { align-self: center; margin-top: 0.15rem; color: #777; }
html[data-theme="night"] .pwa-verify-inner { background: #1a1a1a; color: #eee; }
html[data-theme="night"] .pwa-verify-lead { color: #aaa; }
html[data-theme="night"] .pwa-verify-later { color: #888; }

.pwa-install-toast {
    position: fixed;
    left: 50%;
    bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%) translateY(120%);
    z-index: 10000;
    max-width: min(92vw, 420px);
    padding: 0.85rem 1.1rem;
    border-radius: 10px;
    background: #1a1a1a;
    color: #fff;
    font-size: 0.92rem;
    line-height: 1.4;
    box-shadow: 0 8px 28px rgba(0,0,0,0.28);
    transition: transform 0.28s ease, opacity 0.28s ease;
    opacity: 0;
    pointer-events: none;
}
.pwa-install-toast[hidden] { display: none !important; }
.pwa-install-toast.pwa-install-toast-visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .pwa-diagnostic-clock { animation: none; border-top-color: var(--accent, #ff9800); }
    .pwa-install-banner { transition: none; }
    .pwa-install-btn-cta,
    .pwa-install-banner.pwa-install-ready .pwa-install-btn-cta { animation: none; }
    .pwa-install-toast { transition: none; }
}

@media (max-width: 480px) {
    .pwa-install-inner {
        grid-template-columns: 1fr;
    }
    .pwa-install-preview {
        grid-row: auto;
        text-align: center;
    }
    .pwa-install-copy { grid-column: 1; }
}

/* ================================================
   RESPONSIVE
   ================================================ */

@media (max-width: 768px) {
    .offcanvas {
        width: 280px;
        right: -280px;
    }
    
    .logo {
        font-size: 1.5rem;
    }
    
    .main {
        padding: 2rem 0;
    }
}

/* ================================================
   ALIANZA – Estética tipo Medium (lectura, elegante)
   ================================================ */

.body-medium { font-family: 'Source Sans 3', -apple-system, sans-serif; color: #1a1a1a; background: var(--blanco-hueso); }
.body-medium .main-medium { padding: 2rem 0 4rem; min-height: 60vh; }
/* Hero / lavado de acento a pantalla completa bajo el navbar: sin hueco blanco */
.body-medium .main-medium:has(> .page-hero-landing),
.body-medium .main-medium:has(> .servicios-editoriales-landing),
.body-medium .main-medium:has(> .escritores-page),
.body-medium .main-medium:has(> .escritor-space),
.body-medium .main-medium:has(> .libros-page),
.body-medium .main-medium:has(> .chat-salas-page),
.body-medium .main-medium:has(> .postales-clasicas-page[data-classics-view="index"]) {
    padding-top: 0;
}

:root {
    --page-gutter: 1.5rem;
}
@media (max-width: 768px) {
    :root {
        --page-gutter: 1.25rem;
    }
    .body-medium .main-medium { padding: 1.25rem 0 3rem; }
    .body-medium .main-medium:has(> .page-hero-landing),
    .body-medium .main-medium:has(> .servicios-editoriales-landing),
    .body-medium .main-medium:has(> .escritores-page),
    .body-medium .main-medium:has(> .escritor-space),
    .body-medium .main-medium:has(> .libros-page),
    .body-medium .main-medium:has(> .chat-salas-page) {
        padding-top: 0;
    }
    /* Espacio para FABs fijos (volver / + / chat) */
    .body-medium .main-medium {
        padding-bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
    }
    .header-medium-inner .nav-page-title {
        font-size: 1.05rem;
    }
    /* Evitar zoom automático en iOS al enfocar inputs */
    input[type="text"],
    input[type="search"],
    input[type="email"],
    input[type="password"],
    input[type="url"],
    input[type="number"],
    input[type="tel"],
    select,
    textarea {
        font-size: 16px;
    }
}

.container-medium {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}
.container-narrow { max-width: 680px; }

/* Header Medium */
/* z-index alto: el navbar debe quedar por encima de modales/overlays cerrados mal ocultos */
.header-medium { position: sticky; top: 0; z-index: 12000; background: var(--blanco-hueso); border-bottom: 1px solid #eee; isolation: isolate; }
.header-medium .container-medium { display: flex; align-items: center; justify-content: space-between; padding-top: 1rem; padding-bottom: 1rem; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); }
.header-medium-inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; position: relative; z-index: 1; }
.header-start { display: flex; align-items: center; gap: 0.35rem; justify-self: start; min-width: 0; }
.header-medium-inner .logo-medium { justify-self: start; position: relative; z-index: 2; }
.header-medium-inner .header-start .logo-medium { justify-self: auto; }
.header-medium-inner .nav-page-title { margin: 0; font-family: 'Literata', Georgia, serif; font-size: 1.25rem; font-weight: 600; color: #1a1a1a; text-align: center; justify-self: center; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; pointer-events: none; }
.header-end { justify-self: end; display: inline-flex; align-items: center; gap: 0.75rem; min-width: 0; position: relative; z-index: 3; pointer-events: auto; }
.header-end-tools { display: inline-flex; align-items: center; gap: 0.15rem; flex-shrink: 0; }
.logo-medium { font-family: 'Literata', Georgia, serif; font-size: 1.5rem; font-weight: 600; color: #1a1a1a; text-decoration: none; }
.logo-medium:hover { color: #333; }
.logo-medium-img { display: inline-flex; align-items: center; }
.logo-medium-img img { height: 2rem; width: auto; max-width: 180px; object-fit: contain; vertical-align: middle; }
.logo-medium-img:hover img { opacity: 0.9; }
.nav-medium { display: none; gap: 0.85rem; align-items: center; flex-wrap: nowrap; justify-content: flex-end; position: relative; z-index: 3; pointer-events: auto; }
.nav-medium > a { color: #1a1a1a; text-decoration: none; font-size: 0.95rem; white-space: nowrap; position: relative; z-index: 1; pointer-events: auto; cursor: pointer; background: transparent; }
.nav-medium > a:hover { color: var(--accent); background: transparent; }
.nav-medium > a[aria-current="page"] { color: var(--accent); font-weight: 600; background: transparent; }
.nav-user { color: #666; font-size: 0.85rem; max-width: 8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.nav-medium > a.nav-postal-link:hover,
.nav-medium > a.nav-postal-link[aria-current="page"] {
    color: var(--accent);
}
html[data-theme="night"] .nav-medium > a:hover,
html[data-theme="night"] .nav-medium > a[aria-current="page"] {
    color: var(--accent-on-dark);
}
html[data-theme="night"] .nav-medium > a.nav-postal-link:hover,
html[data-theme="night"] .nav-medium > a.nav-postal-link[aria-current="page"] {
    color: var(--accent-on-dark);
}

.nav-medium > a.nav-postal-link--with-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.pas-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--accent);
    color: var(--accent-ink, #fff);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
}
.pas-count-badge--nav {
    position: relative;
    top: -0.05rem;
}
.pas-count-badge--offcanvas {
    margin-left: auto;
}
.nav-dd-link-with-badge {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}
.pas-count-badge--menu {
    margin-left: auto;
}
.pas-count-badge--fab {
    position: absolute;
    top: -0.1rem;
    right: -0.1rem;
    min-width: 1.2rem;
    height: 1.2rem;
    border: 2px solid #fff;
    pointer-events: none;
    z-index: 1;
}
.pas-count-badge--tab {
    margin-left: 0.35rem;
}
.hub-tab.escritor-chat-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.offcanvas-nav-link--with-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.offcanvas-nav-link--with-badge .offcanvas-nav-link__text {
    flex: 1 1 auto;
}

.barra-feed-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 0.85rem;
}
.barra-feed-tabs .barra-chip {
    width: auto;
    display: inline-flex;
    align-items: center;
}
.follow-authors-grid {
    padding-top: 0.25rem;
}
.escritor-follow-stats a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.escritor-follow-stats a:hover {
    color: var(--accent, #111);
}
.escritor-perfil-followers {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e8e8e8;
}
.escritor-perfil-followers-head {
    margin-bottom: 1rem;
}
.escritor-perfil-followers-lead {
    margin: 0.35rem 0 0;
    color: #666;
    font-size: 0.95rem;
}
.escritor-perfil-followers-more {
    margin: 0.75rem 0 0;
}
html[data-theme="night"] .escritor-perfil-followers {
    border-top-color: #333;
}
html[data-theme="night"] .escritor-perfil-followers-lead {
    color: #aaa;
}
.hub-tabs--profile-shortcuts {
    margin-bottom: 1rem;
}
.barra-chip--follow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.follow-feed-hint {
    margin: 0 0 1rem;
    font-size: 0.92rem;
}
.follow-feed-hint a {
    color: var(--accent);
    font-weight: 600;
    text-decoration: none;
}
.follow-feed-hint a:hover { text-decoration: underline; }
.follow-feed-hint--muted {
    color: #666;
}
.follow-feed-hint--muted,
.follow-feed-hint--muted a {
    color: #666;
    font-weight: 400;
}
.escritor-card-follow {
    margin: 0.35rem 0.75rem 0.85rem;
    text-align: center;
}
.escritor-card-follow .btn-medium {
    width: 100%;
    max-width: 12rem;
}
.escritor-card-follow-hint {
    margin: 0.35rem 0.75rem 0.85rem;
    text-align: center;
    font-size: 0.82rem;
}
.escritor-card-follow-hint a {
    color: var(--turquesa-oscuro, #ff9800);
    text-decoration: none;
}
.escritor-card-follow-hint a:hover { text-decoration: underline; }
html[data-theme="night"] .follow-feed-hint--muted { color: #aaa; }

.nav-dd-toggle--postal:hover,
.nav-dd-toggle--postal[aria-expanded="true"],
.nav-dd-toggle--postal[aria-current="page"] {
    color: inherit;
}
.nav-dd-toggle--postal:hover .postal-mark__post,
.nav-dd-toggle--postal[aria-expanded="true"] .postal-mark__post,
.nav-dd-toggle--postal[aria-current="page"] .postal-mark__post {
    color: #111111;
}
html[data-theme="night"] .nav-dd-toggle--postal:hover .postal-mark__post,
html[data-theme="night"] .nav-dd-toggle--postal[aria-expanded="true"] .postal-mark__post,
html[data-theme="night"] .nav-dd-toggle--postal[aria-current="page"] .postal-mark__post {
    color: #f0f0f0;
}
.nav-dd-menu a.nav-dd-postal-link:hover .postal-mark__al,
.nav-dd-menu a.nav-dd-postal-link[aria-current="page"] .postal-mark__al {
    color: var(--turquesa-oscuro, #ff9800);
}

/* Marca Postal: Post (negro) + al (acento) */
.postal-mark {
    display: inline;
    font-weight: 700;
    letter-spacing: -0.02em;
    white-space: nowrap;
}
.postal-mark__post { color: #111111; }
.postal-mark__al { color: var(--accent, #ff9800); }
.postal-mark--nav { font-size: 0.95rem; }
.postal-mark--menu { font-size: inherit; }
.postal-mark--offcanvas { font-size: 1rem; }
html[data-theme="night"] .postal-mark__post { color: #f0f0f0; }
html[data-theme="night"] .postal-mark__al { color: var(--accent-on-dark, #ffb74d); }

/* Dropdowns del navbar (desktop) */
.nav-dd { position: relative; }
.nav-dd-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: none;
    background: none;
    padding: 0.25rem 0.15rem;
    font: inherit;
    font-size: 0.95rem;
    color: #1a1a1a;
    cursor: pointer;
}
.nav-dd-toggle:hover,
.nav-dd-toggle[aria-expanded="true"] {
    color: var(--turquesa-oscuro, #ff9800);
}
.nav-dd-toggle--user {
    max-width: 10rem;
    gap: 0.35rem;
    padding: 0.3rem 0.15rem;
    border-radius: 0;
    border: none;
    background: transparent;
}
.nav-dd-toggle--user:hover,
.nav-dd-toggle--user[aria-expanded="true"] {
    border: none;
    background: transparent;
    color: var(--turquesa-oscuro, #ff9800);
}
.nav-dd-user-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}
.nav-dd-caret {
    font-size: 0.7rem;
    opacity: 0.7;
    transition: transform 0.15s ease;
    flex-shrink: 0;
}
.nav-dd-toggle[aria-expanded="true"] .nav-dd-caret { transform: rotate(180deg); }
.nav-dd-menu {
    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    min-width: 12.5rem;
    margin: 0;
    padding: 0.4rem 0;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 12010;
}
.nav-dd--end .nav-dd-menu {
    left: auto;
    right: 0;
}
.nav-dd-menu[hidden] { display: none !important; }
.nav-dd-menu a {
    display: block;
    padding: 0.5rem 0.95rem;
    color: #1a1a1a;
    text-decoration: none;
    font-size: 0.9rem;
    white-space: nowrap;
}
.nav-dd-menu a:hover {
    background: #f5f5f5;
    color: var(--turquesa-oscuro, #ff9800);
}
.nav-dd-menu a.nav-dd-logout { color: #c62828; }
.nav-dd-menu a.nav-dd-logout:hover {
    background: #ffebee;
    color: #b71c1c;
}
.nav-dd-sep {
    border: none;
    border-top: 1px solid #eee;
    margin: 0.35rem 0;
}
html[data-theme="night"] .nav-dd-toggle { color: #f0f0f0; }
html[data-theme="night"] .nav-dd-toggle:hover,
html[data-theme="night"] .nav-dd-toggle[aria-expanded="true"] {
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .nav-dd-toggle--user {
    background: transparent;
    border: none;
}
html[data-theme="night"] .nav-dd-toggle--user:hover,
html[data-theme="night"] .nav-dd-toggle--user[aria-expanded="true"] {
    background: transparent;
    border: none;
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .nav-dd-menu {
    background: #1c1c1c;
    border-color: #3a3a3a;
}
html[data-theme="night"] .nav-dd-menu a { color: #f0f0f0; }
html[data-theme="night"] .nav-dd-menu a:hover {
    background: #2a2a2a;
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .nav-dd-menu a.nav-dd-logout { color: #ff8a80; }
html[data-theme="night"] .nav-dd-menu a.nav-dd-logout:hover {
    background: rgba(255, 82, 82, 0.15);
    color: #ffcdd2;
}
html[data-theme="night"] .nav-dd-sep { border-top-color: #3a3a3a; }

/* Puntos de Tinta: visible en barra y menú */
.nav-puntos-wrap { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.25rem 0.6rem; background: linear-gradient(135deg, #e8f4f2 0%, #d4ebe8 100%); border: 1px solid #b8d9d4; border-radius: 999px; color: #1a5c54; text-decoration: none; font-size: 0.85rem; margin-right: 0.25rem; }
.nav-puntos-wrap:hover { background: linear-gradient(135deg, #d4ebe8 0%, #c2e2dd 100%); color: #0d3d38; }
.nav-puntos-label { font-weight: 500; }
.nav-puntos-value { font-weight: 700; min-width: 1.2em; text-align: center; }
.nav-user-dropdown { position: relative; }
.nav-user-dropdown-btn { background: none; border: none; cursor: pointer; color: #666; font-size: 0.9rem; font-family: inherit; padding: 0; display: inline-flex; align-items: center; }
.nav-user-dropdown-btn:hover { color: #1a1a1a; }
.nav-user-dropdown-menu { position: absolute; top: 100%; right: 0; margin-top: 0.25rem; min-width: 180px; background: #fff; border: 1px solid #eee; border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,0.12); z-index: 200; padding: 0.5rem 0; }
.nav-user-dropdown-menu a { display: block; padding: 0.5rem 1rem; color: #1a1a1a; text-decoration: none; font-size: 0.9rem; }
.nav-user-dropdown-menu a:hover { background: #f5f5f5; color: var(--accent); }
.btn-header { background: #1a1a1a; color: #fff !important; padding: 0.4rem 0.8rem; border-radius: 4px; }
.btn-header:hover { background: #333; }
.btn-menu-medium { display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; padding: 0.5rem; color: #1a1a1a; }
.btn-menu-medium:hover { color: var(--turquesa-oscuro, #ff9800); }
.btn-menu-medium .icon-menu-freehand { width: 24px; height: 24px; display: block; }
.btn-hub-nav-medium {
    display: none;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    margin: 0;
    color: #1a1a1a;
    flex-shrink: 0;
}
.btn-hub-nav-medium .icon-menu-freehand { width: 24px; height: 24px; display: block; }
.btn-hub-nav-medium:hover { color: var(--turquesa-oscuro, #ff9800); }
@media (min-width: 960px) {
    .nav-medium { display: flex; }
    .btn-menu-medium { display: none; }
}

/* Personalización (acento / tema / tipografía) */
.nav-prefs { position: relative; }
.nav-prefs-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #1a1a1a;
    cursor: pointer;
}
.nav-prefs-toggle:hover,
.nav-prefs-toggle[aria-expanded="true"] {
    background: transparent;
    color: var(--turquesa-oscuro, #ff9800);
}
.nav-prefs-panel {
    min-width: 15.5rem;
    padding: 0.85rem 0.9rem 1rem !important;
    right: 0;
}
.prefs-section-title {
    margin: 0.65rem 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #888;
}
.prefs-section-title:first-child { margin-top: 0; }
.prefs-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.prefs-swatch {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #ddd;
    background: var(--swatch, #ff9800);
    cursor: pointer;
    padding: 0;
}
.prefs-swatch.is-active,
.prefs-swatch[aria-pressed="true"] {
    box-shadow: 0 0 0 2px var(--swatch, #ff9800);
}
.prefs-swatch--mono {
    --swatch: #111111;
    background: linear-gradient(135deg, #111 49%, #fff 51%);
    box-shadow: 0 0 0 1px #bbb;
}
.prefs-swatch--mono.is-active,
.prefs-swatch--mono[aria-pressed="true"] {
    box-shadow: 0 0 0 2px #111;
}
html[data-theme="night"] .prefs-swatch--mono.is-active,
html[data-theme="night"] .prefs-swatch--mono[aria-pressed="true"] {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #f5f5f5;
}
.prefs-theme {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
}
.prefs-theme-btn,
.prefs-font-btn,
.prefs-font-value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-height: 2.1rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    color: #333;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}
.prefs-theme-btn.is-active,
.prefs-theme-btn[aria-pressed="true"] {
    background: var(--turquesa-oscuro, #ff9800);
    border-color: var(--turquesa-oscuro, #ff9800);
    color: var(--accent-ink, #fff);
}
.prefs-font {
    display: grid;
    grid-template-columns: 1fr 1.2fr 1fr;
    gap: 0.4rem;
}
.prefs-font-value { font-variant-numeric: tabular-nums; color: #555; }
.offcanvas-prefs-sep { margin-top: 0.75rem !important; }
.offcanvas-prefs-heading {
    margin: 0.25rem 0 0.5rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: #555;
}
.offcanvas-prefs .prefs-section-title { margin-top: 0.85rem; }
.offcanvas-prefs .prefs-section-title:first-child { margin-top: 0; }

/* Tema nocturno — contraste y estados activos */
html[data-theme="night"] {
    color-scheme: dark;
    --fondo: #121212;
    --blanco: #1e1e1e;
    --blanco-hueso: #161616;
    --texto-oscuro: #f2f2f2;
    --texto-medio: #d4d4d4;
    --texto-claro: #b8b8b8;
    --sombra-sutil: 0 2px 12px rgba(0, 0, 0, 0.35);
    --sombra-media: 0 4px 20px rgba(0, 0, 0, 0.4);
    --sombra-fuerte: 0 8px 32px rgba(0, 0, 0, 0.5);
    /* Acento legible sobre fondo oscuro (usa el tono claro de la paleta) */
    --accent-on-dark: var(--turquesa-claro, #ffb74d);
    /* Editor */
    --adm-bg: #1c1c1c;
    --adm-surface: #242424;
    --adm-text: #f0f0f0;
    --adm-muted: #b8b8b8;
    --adm-border: #3a3a3a;
    --adm-border-light: #333333;
    --adm-accent: var(--accent, #ff9800);
}
html[data-theme="night"] body,
html[data-theme="night"] .body-medium {
    background: var(--blanco-hueso);
    color: var(--texto-oscuro);
}
html[data-theme="night"] .header-medium,
html[data-theme="night"] .offcanvas-medium,
html[data-theme="night"] .nav-user-dropdown-menu,
html[data-theme="night"] .nav-prefs-panel {
    background: #1c1c1c;
    border-color: #3a3a3a;
    color: #f0f0f0;
}
html[data-theme="night"] .logo-medium,
html[data-theme="night"] .nav-page-title,
html[data-theme="night"] .nav-medium a,
html[data-theme="night"] .btn-menu-medium,
html[data-theme="night"] .nav-prefs-toggle,
html[data-theme="night"] .nav-user-dropdown-btn,
html[data-theme="night"] .nav-user,
html[data-theme="night"] .offcanvas-title-medium,
html[data-theme="night"] .offcanvas-nav-medium a,
html[data-theme="night"] .offcanvas-accordion-btn,
html[data-theme="night"] .offcanvas-accordion-link,
html[data-theme="night"] .offcanvas-prefs-heading {
    color: #f0f0f0;
}
html[data-theme="night"] .nav-medium a:hover,
html[data-theme="night"] .nav-medium a[aria-current="page"],
html[data-theme="night"] .offcanvas-nav-link[aria-current="page"],
html[data-theme="night"] .nav-prefs-toggle:hover,
html[data-theme="night"] .nav-prefs-toggle[aria-expanded="true"] {
    color: var(--accent-on-dark);
    background: transparent;
}
html[data-theme="night"] .nav-user-dropdown-menu a { color: #f0f0f0; }
html[data-theme="night"] .nav-user-dropdown-menu a:hover {
    background: #2a2a2a;
    color: var(--accent-on-dark);
}
html[data-theme="night"] .header-medium { border-bottom-color: #3a3a3a; }
html[data-theme="night"] .prefs-section-title { color: #b0b0b0; }

/* Controles prefs: inactivos vs activos (especificidad > reglas base nocturnas) */
html[data-theme="night"] .prefs-theme-btn,
html[data-theme="night"] .prefs-font-btn,
html[data-theme="night"] .prefs-font-value {
    background: #2a2a2a;
    border-color: #555;
    color: #e8e8e8;
}
html[data-theme="night"] .prefs-theme-btn.is-active,
html[data-theme="night"] .prefs-theme-btn[aria-pressed="true"],
html[data-theme="night"] .prefs-font-btn.is-active,
html[data-theme="night"] .prefs-font-value.is-active {
    background: var(--accent, #ff9800) !important;
    border-color: var(--accent, #ff9800) !important;
    color: var(--accent-ink, #fff) !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.15);
}
html[data-theme="night"] .prefs-swatch {
    border-color: #1c1c1c;
    box-shadow: 0 0 0 1px #666;
}
html[data-theme="night"] .prefs-swatch.is-active,
html[data-theme="night"] .prefs-swatch[aria-pressed="true"] {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--swatch, var(--accent));
}

/* Pestañas / chips */
html[data-theme="night"] .hub-tabs {
    background: transparent;
    border-bottom-color: #3a3a3a;
}
html[data-theme="night"] .hub-tab,
html[data-theme="night"] .hub-tabs .escritor-chat-tab {
    color: #c8c8c8;
}
html[data-theme="night"] .hub-tab.hub-tab-active,
html[data-theme="night"] .escritor-page .hub-tab.hub-tab-active,
html[data-theme="night"] .hub-tabs .escritor-chat-tab.hub-tab-active {
    color: var(--accent-on-dark) !important;
    border-bottom-color: var(--accent-on-dark) !important;
}
html[data-theme="night"] .barra-chip {
    background: #2a2a2a;
    border-color: #555;
    color: #e8e8e8;
}
html[data-theme="night"] .barra-chip:hover {
    background: #333;
    border-color: #777;
    color: #fff;
}
html[data-theme="night"] .barra-chip--on,
html[data-theme="night"] .barra-chip--on:hover {
    background: var(--accent, #ff9800) !important;
    border-color: var(--accent, #ff9800) !important;
    color: var(--accent-ink, #fff) !important;
}
html[data-theme="night"] .barra-filter-group__title { color: #b0b0b0; }
html[data-theme="night"] .barra-filter-group__hint { color: #b8b8b8; }
html[data-theme="night"] .barra-chip--interes:not(.barra-chip--on) {
    border-color: #5a4530;
    background: #2a241c;
}
html[data-theme="night"] .barra-filters-btn {
    background: #2a2a2a;
    border-color: #555;
    color: #e8e8e8;
}

/* Cards y tipografía de contenido */
html[data-theme="night"] .prueba-card-foto,
html[data-theme="night"] .prueba-card,
html[data-theme="night"] .escritor-blog-card,
html[data-theme="night"] .auth-card,
html[data-theme="night"] .feature-card-medium,
html[data-theme="night"] .concurso-review-card {
    background: #1c1c1c;
    border-color: #3a3a3a;
    color: #f0f0f0;
    box-shadow: none;
}
html[data-theme="night"] .prueba-card-foto-title,
html[data-theme="night"] .escritor-name,
html[data-theme="night"] .blog-lectura-title,
html[data-theme="night"] .section-title-medium {
    color: #f5f5f5;
}
html[data-theme="night"] .prueba-card-foto-text,
html[data-theme="night"] .escritor-headline,
html[data-theme="night"] .escritor-ubicacion,
html[data-theme="night"] .empty-state,
html[data-theme="night"] .articulo-comments-empty,
html[data-theme="night"] .blog-bio,
html[data-theme="night"] .escritor-chat-lead {
    color: #c8c8c8;
}
html[data-theme="night"] .escritor-blog-card-meta,
html[data-theme="night"] .escritor-blog-card-meta time,
html[data-theme="night"] .prueba-card-foto-genre,
html[data-theme="night"] .prueba-card-foto-category,
html[data-theme="night"] .escritor-blog-card-meta .prueba-card-foto-genre,
html[data-theme="night"] .escritor-blog-card-meta .prueba-card-foto-category {
    color: var(--accent-on-dark) !important;
}
html[data-theme="night"] .escritor-blog-card-media,
html[data-theme="night"] .prueba-card-foto-img-placeholder {
    background: #2a2a2a;
}
/* Destacados: mantienen contraste oscuro tipo DMR también en noche */
html[data-theme="night"] .escritor-blog-card--destacado {
    background: #050505;
    color: var(--featured-text);
    border-color: transparent;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
html[data-theme="night"] .escritor-blog-card--destacado .prueba-card-foto-title {
    color: var(--featured-text);
}
html[data-theme="night"] .escritor-blog-card--destacado .prueba-card-foto-text,
html[data-theme="night"] .escritor-blog-card--destacado .escritor-blog-card-meta,
html[data-theme="night"] .escritor-blog-card--destacado .escritor-blog-card-meta time {
    color: var(--featured-muted) !important;
}
html[data-theme="night"] .escritor-blog-card--destacado .escritor-blog-card-meta .prueba-card-foto-genre,
html[data-theme="night"] .escritor-blog-card--destacado .escritor-blog-card-meta .prueba-card-foto-category {
    color: var(--featured-badge-text) !important;
}
html[data-theme="night"] .escritor-blog-card--destacado .escritor-blog-card-media,
html[data-theme="night"] .escritor-blog-card--destacado .prueba-card-foto-img-placeholder {
    background: rgba(255, 255, 255, 0.06);
}
html[data-theme="night"] .btn-medium.btn-secondary,
html[data-theme="night"] .btn-follow-outline {
    background: transparent;
    border-color: var(--accent-on-dark);
    color: var(--accent-on-dark);
}
html[data-theme="night"] .btn-medium.btn-primary,
html[data-theme="night"] a.btn-medium.btn-primary,
html[data-theme="night"] .escritor-chat-fab {
    background: var(--accent, #ff9800);
    color: var(--accent-ink, #fff);
}
html[data-theme="night"] .btn-medium.btn-primary:hover,
html[data-theme="night"] a.btn-medium.btn-primary:hover,
html[data-theme="night"] .escritor-chat-fab:hover {
    background: var(--accent-hover, #f57c00);
    color: var(--accent-ink, #fff);
}
html[data-theme="night"] .escritor-chat-drawer,
html[data-theme="night"] .escritor-chat-drawer__head,
html[data-theme="night"] .timeline-embed-autor,
html[data-theme="night"] .composer-fixed-medium,
html[data-theme="night"] .composer-embed {
    background: #1c1c1c;
    border-color: #3a3a3a;
    color: #f0f0f0;
}
html[data-theme="night"] .escritor-chat-drawer__sub,
html[data-theme="night"] .prefs-section-title { color: #b0b0b0; }
html[data-theme="night"] .escritor-chat-drawer__close {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .main-medium a { color: var(--accent-on-dark); }
html[data-theme="night"] .auth-form input,
html[data-theme="night"] .auth-form textarea,
html[data-theme="night"] .auth-form select,
html[data-theme="night"] .form-article-medium input,
html[data-theme="night"] .form-article-medium textarea,
html[data-theme="night"] .form-article-medium select,
html[data-theme="night"] .composer-bar-medium textarea {
    background: #242424;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .feed-medium .feed-item {
    background: #242424;
    color: #f0f0f0;
}
html[data-theme="night"] .offcanvas-nav-medium hr,
html[data-theme="night"] .offcanvas-prefs-sep {
    border-top-color: #3a3a3a;
}
html[data-theme="night"] .noticias-header-medium,
html[data-theme="night"] .landing-medium,
html[data-theme="night"] .escritor-section {
    color: #f0f0f0;
}
html[data-theme="night"] .escritor-list li {
    border-bottom-color: #333;
}
html[data-theme="night"] .escritor-service {
    background: #242424;
    border-color: #3a3a3a;
}
html[data-theme="night"] .escritor-service-title { color: #f0f0f0; }
html[data-theme="night"] .escritor-service-price {
    background: rgba(13, 115, 119, 0.22);
    color: #7ec8cb;
}
html[data-theme="night"] .escritor-service-desc { color: #c8c8c8; }
html[data-theme="night"] .escritor-service-delete-btn {
    background: #2a2a2a;
    border-color: #555;
    color: #bbb;
}
html[data-theme="night"] .escritor-service-delete-btn:hover {
    background: #3a2020;
    border-color: #c62828;
    color: #ef9a9a;
}
html[data-theme="night"] .escritor-services-empty {
    background: #1e1e1e;
    border-color: #444;
    color: #aaa;
}
html[data-theme="night"] .escritor-services-toolbar-count { color: #aaa; }
html[data-theme="night"] .escritor-service-modal-error {
    background: #3a2020;
    border-color: #c62828;
    color: #ef9a9a;
}
html[data-theme="night"] .blog-lectura-meta { color: #c8c8c8; }
html[data-theme="night"] .blog-lectura-body { color: #e4e4e4; }

/* Offcanvas menú principal (derecha) */
.offcanvas-medium {
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    width: min(20rem, 92vw);
    height: 100vh;
    height: 100dvh;
    background: var(--blanco-hueso);
    box-shadow: -4px 0 20px rgba(0,0,0,0.1);
    z-index: 12100;
    padding: 1.25rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
    transition: transform 0.24s ease;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.offcanvas-medium.offcanvas-hidden {
    transform: translateX(110%);
    pointer-events: none;
    visibility: hidden;
    display: none;
}
.offcanvas-medium:not(.offcanvas-hidden) {
    display: block;
    pointer-events: auto;
    visibility: visible;
}
.offcanvas-overlay.offcanvas-hidden { display: none !important; pointer-events: none !important; }
.offcanvas-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.35); z-index: 12050; }
.offcanvas-overlay:not(.offcanvas-hidden) {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    cursor: pointer;
    display: block;
}
body.offcanvas-open { overflow: hidden; position: relative; }
/* Offcanvas se monta encima del navbar (header queda debajo) */
.offcanvas-header-medium { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; min-height: 2rem; position: sticky; top: 0; background: var(--blanco-hueso); z-index: 1; padding-bottom: 0.5rem; }
.offcanvas-title-medium { margin: 0; font-size: 1.1rem; font-weight: 600; color: #1a1a1a; }
.offcanvas-close {
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #f7f7f7;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    color: #333;
}
.offcanvas-nav-medium { display: flex; flex-direction: column; gap: 0.15rem; margin-top: 0.75rem; padding-bottom: 1rem; }
.offcanvas-puntos { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 1rem; padding: 0.75rem 0; border-bottom: 1px solid #eee; margin-bottom: 0.5rem; background: linear-gradient(135deg, #f0f9f8 0%, #e8f4f2 100%); border-radius: 8px; padding: 0.75rem 1rem; }
.offcanvas-puntos-label { font-weight: 600; color: #1a5c54; }
.offcanvas-puntos-value { font-weight: 700; font-size: 1.2rem; color: #0d3d38; }
.offcanvas-puntos-nivel { font-size: 0.9rem; color: #666; }
.offcanvas-nav-medium a { color: #1a1a1a; text-decoration: none; padding: 0.5rem 0; }
.offcanvas-nav-link { display: inline-flex; align-items: center; gap: 0.6rem; }
.offcanvas-nav-link[aria-current="page"] { color: var(--accent); font-weight: 600; }
.offcanvas-nav-link-seed { font-size: 0.95em; opacity: 0.92; }
.offcanvas-nav-icon { color: var(--accent); flex-shrink: 0; }
/* Icono PNG en naranja (autores): convierte la imagen al color del tema */
.offcanvas-nav-icon-orange { filter: brightness(0) saturate(100%) invert(48%) sepia(79%) saturate(2476%) hue-rotate(1deg) brightness(105%) contrast(101%); }
.offcanvas-nav-medium hr { border: none; border-top: 1px solid #eee; margin: 0.5rem 0; }

/* Offcanvas acordeones (menús desplegables móviles) */
.offcanvas-accordion { margin-bottom: 0.15rem; border-bottom: 1px solid #f0f0f0; }
.offcanvas-accordion:last-of-type { border-bottom: none; }
.offcanvas-accordion-btn {
    width: 100%;
    text-align: left;
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 1rem;
    color: inherit;
    min-height: 2.75rem;
    padding: 0.65rem 0.15rem;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    -webkit-tap-highlight-color: transparent;
}
.offcanvas-accordion-btn:hover,
.offcanvas-accordion-btn[aria-expanded="true"] {
    color: var(--turquesa-oscuro, #ff9800);
}
.offcanvas-accordion-chevron {
    margin-left: auto;
    font-size: 0.75rem;
    transition: transform 0.2s ease;
    opacity: 0.7;
    flex-shrink: 0;
}
.offcanvas-accordion-btn[aria-expanded="true"] .offcanvas-accordion-chevron { transform: rotate(180deg); }
.offcanvas-accordion-panel { overflow: hidden; }
.offcanvas-accordion-panel[hidden] { display: none !important; }
.offcanvas-accordion-panel:not([hidden]) {
    display: block;
    padding: 0.15rem 0 0.75rem 0.65rem;
    margin: 0 0 0.35rem;
    border-left: 2px solid var(--turquesa-oscuro, #ff9800);
}
.offcanvas-accordion-link {
    display: block;
    padding: 0.65rem 0.5rem;
    min-height: 2.5rem;
    box-sizing: border-box;
    color: #333;
    text-decoration: none;
    font-size: 0.98rem;
    border-radius: 6px;
    -webkit-tap-highlight-color: transparent;
}
.offcanvas-accordion-link:hover,
.offcanvas-accordion-link:active {
    color: var(--turquesa-oscuro, #ff9800);
    background: rgba(0, 0, 0, 0.04);
}
.offcanvas-nav-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 2.75rem;
    padding: 0.5rem 0.15rem;
    width: 100%;
    box-sizing: border-box;
}
html[data-theme="night"] .offcanvas-header-medium { background: #1c1c1c; }
html[data-theme="night"] .offcanvas-close {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .offcanvas-accordion { border-bottom-color: #333; }
html[data-theme="night"] .offcanvas-accordion-link { color: #e8e8e8; }
html[data-theme="night"] .offcanvas-accordion-link:hover,
html[data-theme="night"] .offcanvas-accordion-link:active {
    background: rgba(255, 255, 255, 0.06);
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .offcanvas-accordion-btn[aria-expanded="true"] {
    color: var(--accent-on-dark, #ffb74d);
}
.offcanvas-accordion-puntos .offcanvas-accordion-btn { padding: 0.75rem 1rem; background: linear-gradient(135deg, #f0f9f8 0%, #e8f4f2 100%); border-radius: 8px; }
.offcanvas-accordion-puntos .offcanvas-accordion-panel:not([hidden]) { margin-top: 0.25rem; }
.offcanvas-accordion-puntos-divulga { border-left: 3px solid rgba(26, 92, 84, 0.25); padding-left: 0.5rem; }
.offcanvas-accordion-puntos-divulga .offcanvas-accordion-btn { padding: 0.5rem 0; }

.offcanvas-admin-mode {
    margin: 0 0 0.35rem;
    padding: 0.65rem 0.75rem;
    background: linear-gradient(135deg, rgba(13, 115, 119, 0.08) 0%, rgba(13, 115, 119, 0.04) 100%);
    border: 1px solid rgba(13, 115, 119, 0.18);
    border-radius: 10px;
}
.offcanvas-admin-mode-sep { margin-top: 0.5rem !important; margin-bottom: 0.65rem !important; }
.pas-admin-mode-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    cursor: pointer;
    user-select: none;
}
.pas-admin-mode-toggle__text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}
.pas-admin-mode-toggle__label {
    font-weight: 600;
    font-size: 0.95rem;
    color: #1a1a1a;
    line-height: 1.25;
}
.pas-admin-mode-toggle__hint {
    font-size: 0.78rem;
    color: #666;
    line-height: 1.35;
}
.pas-admin-mode-switch {
    position: relative;
    flex-shrink: 0;
    width: 2.65rem;
    height: 1.55rem;
}
.pas-admin-mode-switch__input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 1;
}
.pas-admin-mode-switch__track {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 999px;
    background: #c8c8c8;
    transition: background 0.2s ease;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.pas-admin-mode-switch__track::after {
    content: '';
    position: absolute;
    top: 0.18rem;
    left: 0.18rem;
    width: 1.18rem;
    height: 1.18rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
    transition: transform 0.2s ease;
}
.pas-admin-mode-switch__input:checked + .pas-admin-mode-switch__track {
    background: var(--accent, #0d7377);
}
.pas-admin-mode-switch__input:checked + .pas-admin-mode-switch__track::after {
    transform: translateX(1.1rem);
}
.pas-admin-mode-switch__input:focus-visible + .pas-admin-mode-switch__track {
    outline: 2px solid var(--accent, #0d7377);
    outline-offset: 2px;
}
html[data-theme="night"] .offcanvas-admin-mode {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.03) 100%);
    border-color: rgba(255, 255, 255, 0.12);
}
html[data-theme="night"] .pas-admin-mode-toggle__label { color: #f0f0f0; }
html[data-theme="night"] .pas-admin-mode-toggle__hint { color: #aaa; }
html[data-theme="night"] .pas-admin-mode-switch__track { background: #444; }

/* Landing */
.landing-medium .hero-medium { padding: 4rem 0; text-align: center; }
.hero-title { font-family: 'Literata', Georgia, serif; font-size: clamp(2rem, 5vw, 3rem); font-weight: 600; margin: 0 0 0.5rem; line-height: 1.2; }
.hero-title-logo { display: block; margin-bottom: 0.75rem; }
.hero-title-logo .hero-logo-img { height: clamp(14rem, 56vw, 32rem); width: auto; max-width: min(95vw, 1040px); object-fit: contain; display: block; margin: 0 auto; }
.hero-subtitle { font-size: 1.2rem; color: #666; max-width: 500px; margin: 0 auto 1.5rem; }
.hero-subtitle a { color: #1a5c54; text-decoration: underline; text-underline-offset: 0.12em; }
.hero-subtitle a:hover { color: var(--turquesa-oscuro, #ff9800); }
.hero-subtitle strong { color: inherit; font-weight: 700; }
.hero-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.landing-medium .hero-medium .pas-share--app {
    margin-top: 1.15rem;
}
.hero-btn { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }
.hero-btn:hover { color: var(--accent-ink, #fff); }
.hero-btn-icon { flex-shrink: 0; }
.btn-medium { display: inline-block; padding: 0.5rem 1.25rem; background: #1a1a1a; color: #fff; border: none; border-radius: 4px; text-decoration: none; font-size: 1rem; cursor: pointer; font-family: inherit; }
.hero-btn.btn-medium { display: inline-flex; }
.btn-medium:hover { background: #333; color: #fff; }
.btn-medium.btn-primary { background: var(--accent); color: var(--accent-ink, #fff); }
.btn-medium.btn-primary:hover { background: var(--accent-hover); color: var(--accent-ink, #fff); }
.btn-medium.btn-follow { background: var(--accent); color: var(--accent-ink, #fff); }
.btn-medium.btn-follow:hover { background: var(--accent-hover); color: var(--accent-ink, #fff); }
.btn-medium.btn-unfollow { background: transparent; color: #666; border: 1px solid #ccc; }
.btn-medium.btn-unfollow:hover { background: #f5f5f5; color: #333; }
.blog-follow-form { display: inline-block; margin: 0; }
.btn-medium.btn-secondary { background: #eee; color: #1a1a1a; }
.btn-medium.btn-secondary:hover { background: #e0e0e0; color: #1a1a1a; }
.section-title-medium { font-family: 'Literata', Georgia, serif; font-size: 1.5rem; margin-bottom: 1.5rem; }
.landing-ranking-medium { padding: 3rem 0; }
.landing-ranking-card { margin: 1.5rem; background: linear-gradient(160deg, #f8fcfb 0%, #f0f9f8 100%); border: 1px solid #d4ebe8; border-radius: 12px; padding: 1.75rem 1.5rem; box-shadow: 0 4px 20px rgba(26, 92, 84, 0.08); }
.landing-ranking-header { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 2px solid rgba(26, 92, 84, 0.15); }
.landing-ranking-header-icon { color: var(--turquesa-oscuro, #1a5c54); flex-shrink: 0; margin-top: 0.15rem; }
.landing-ranking-header-text { min-width: 0; }
.landing-ranking-title { font-family: 'Literata', Georgia, serif; font-size: 1.5rem; font-weight: 600; margin: 0 0 0.25rem; color: #1a3d38; }
.landing-ranking-lead { color: #557; font-size: 0.95rem; margin: 0; }
.landing-ranking-list { list-style: none; padding: 0; margin: 0; }
.landing-ranking-item { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 0.85rem; margin: 0 -0.85rem; border-radius: 8px; transition: background 0.2s ease; }
.landing-ranking-item:hover { background: rgba(255, 255, 255, 0.7); }
.landing-ranking-item-podium { padding: 0.9rem 0.85rem; }
.landing-ranking-pos { flex: 0 0 2.25rem; width: 2.25rem; height: 2.25rem; display: inline-flex; align-items: center; justify-content: center; background: rgba(26, 92, 84, 0.14); color: var(--turquesa-oscuro, #1a5c54); font-weight: 700; font-size: 0.95rem; border-radius: 50%; flex-shrink: 0; }
.landing-ranking-pos-1 { background: linear-gradient(145deg, #d4a84b 0%, #c4942e 100%); color: #fff; box-shadow: 0 2px 8px rgba(196, 148, 46, 0.35); font-size: 1rem; }
.landing-ranking-pos-2 { background: linear-gradient(145deg, #8b9da8 0%, #6b7d88 100%); color: #fff; box-shadow: 0 2px 8px rgba(107, 125, 136, 0.3); font-size: 1rem; }
.landing-ranking-pos-3 { background: linear-gradient(145deg, #a67c52 0%, #8b5e3c 100%); color: #fff; box-shadow: 0 2px 8px rgba(139, 94, 60, 0.3); font-size: 1rem; }
.landing-ranking-link { flex: 1; min-width: 0; color: #1a1a1a; text-decoration: none; font-weight: 500; font-size: 1.05rem; }
.landing-ranking-link:hover { color: var(--turquesa-oscuro, #1a5c54); }
.landing-ranking-name { flex: 1; min-width: 0; font-weight: 500; font-size: 1.05rem; }
.landing-ranking-pts { flex-shrink: 0; font-weight: 600; color: var(--turquesa-oscuro, #1a5c54); font-size: 1rem; }
.landing-ranking-pts-value { font-weight: 700; letter-spacing: 0.02em; }
.landing-ranking-item-current { background: rgba(26, 92, 84, 0.12); border-radius: 10px; margin: 0 -0.85rem; padding-left: 0.85rem; padding-right: 0.85rem; }
.landing-ranking-item-current:hover { background: rgba(26, 92, 84, 0.18); }
.landing-ranking-capsule { display: inline-flex; align-items: center; padding: 0.2rem 0.6rem; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #fff; background: var(--turquesa-oscuro, #1a5c54); border-radius: 999px; flex-shrink: 0; }
@media (min-width: 480px) {
    .landing-ranking-card { padding: 2rem 2rem; }
    .landing-ranking-title { font-size: 1.65rem; }
    .landing-ranking-item { padding: 0.8rem 1rem; margin: 0 -1rem; }
    .landing-ranking-item-podium { padding: 1rem; }
    .landing-ranking-item-current { margin: 0 -1rem; padding-left: 1rem; padding-right: 1rem; }
}
.features-grid-medium {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}
@media (min-width: 640px) {
    .features-grid-medium {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 960px) {
    .features-grid-medium {
        grid-template-columns: repeat(3, 1fr);
    }
}
.feature-card-link { display: block; text-decoration: none; color: inherit; transition: opacity 0.2s ease; }
.feature-card-link:hover { color: inherit; }
.feature-card-link:hover .feature-card-medium,
.feature-card-link:focus-visible .feature-card-medium,
.feature-card-link:active .feature-card-medium {
    border-color: var(--accent, #111);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}
.feature-card-link:focus-visible {
    outline: none;
}
.feature-card-link--btn {
    width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.feature-card-medium {
    padding: 1.5rem;
    border: 1px solid #eee;
    border-radius: 8px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    height: 100%;
    box-sizing: border-box;
}
/* En móvil no hay hover: las cards se ven resaltadas de base */
@media (hover: none) {
    .feature-card-medium {
        border-color: color-mix(in srgb, var(--accent, #111) 22%, #e6e6e6);
        box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
    }
    .feature-card-link:active .feature-card-medium {
        transform: scale(0.985);
        border-color: var(--accent, #111);
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    }
}
.feature-card-icon { margin-bottom: 1rem; color: var(--accent, #111); }
.feature-card-icon iconify-icon { display: block; color: inherit; }
.feature-card-icon--image {
    margin-bottom: 0.85rem;
    overflow: hidden;
    color: inherit;
}
.feature-card-img {
    display: block;
    width: 100%;
    max-width: 220px;
    height: auto;
    margin: 0 auto;
    /* Recorta el vacío superior típico de los SVG */
    aspect-ratio: 611 / 660;
    object-fit: cover;
    object-position: center 88%;
}
@media (max-width: 640px) {
    .feature-card-medium:has(.feature-card-img) {
        padding-top: 1rem;
    }
    .feature-card-icon--image {
        margin-bottom: 0.55rem;
    }
    .feature-card-img {
        max-width: 170px;
        aspect-ratio: 611 / 580;
        object-position: center 92%;
    }
}
/* SVG en modo nocturno: líneas negras → blancas (se conserva el acento naranja aproximado) */
html[data-theme="night"] .feature-card-img--svg {
    filter: invert(1) hue-rotate(180deg);
}
html[data-theme="night"] .feature-card-link:hover .feature-card-medium,
html[data-theme="night"] .feature-card-link:focus-visible .feature-card-medium,
html[data-theme="night"] .feature-card-link:active .feature-card-medium {
    border-color: var(--accent-on-dark, #f0f0f0);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}
@media (hover: none) {
    html[data-theme="night"] .feature-card-medium {
        border-color: color-mix(in srgb, var(--accent-on-dark, #f0f0f0) 28%, #3a3a3a);
        box-shadow: 0 3px 14px rgba(0, 0, 0, 0.28);
    }
}
.feature-card-medium h3 { font-size: 1.1rem; margin: 0 0 0.5rem; }
.feature-card-medium p { margin: 0; color: #555; font-size: 0.95rem; }
.feature-card-puntos { border-color: #b8d9d4; background: linear-gradient(180deg, #fafcfc 0%, #f0f9f8 100%); }
.landing-feature-wrap { position: relative; height: 100%; }
.landing-feature-wrap .feature-card-link { height: 100%; }
.landing-feature-wrap--admin .feature-card-medium { padding-bottom: 2.75rem; height: 100%; box-sizing: border-box; }
.landing-card-admin-actions {
    position: absolute;
    right: 0.65rem;
    bottom: 0.65rem;
    display: flex;
    gap: 0.25rem;
    z-index: 2;
}
.landing-card-editor-box { max-width: 560px; }
.landing-card-editor-form .is-hidden { display: none !important; }
.landing-icon-picker {
    margin: 0.75rem 0;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 0.75rem;
}
.landing-icon-picker legend {
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0 0.35rem;
}
.landing-icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(3rem, 1fr));
    gap: 0.4rem;
}
.landing-icon-option {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0.45rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    cursor: pointer;
    color: var(--turquesa-oscuro, #1a5c54);
    background: #fff;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.landing-icon-option input { position: absolute; opacity: 0; pointer-events: none; }
.landing-icon-option:hover { border-color: var(--turquesa-oscuro, #1a5c54); }
.landing-icon-option.is-selected {
    border-color: var(--turquesa-oscuro, #1a5c54);
    background: rgba(26, 92, 84, 0.08);
    box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15);
}
.landing-card-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}
html[data-theme="night"] .landing-icon-picker { border-color: #444; }
html[data-theme="night"] .landing-icon-option {
    background: #2a2a2a;
    border-color: #555;
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .landing-icon-option.is-selected {
    background: rgba(255, 183, 77, 0.12);
    border-color: var(--accent-on-dark, #ffb74d);
    box-shadow: 0 0 0 2px rgba(255, 183, 77, 0.2);
}
.landing-guest-modal-box { position: relative; max-width: 520px; padding-top: 1.75rem; }
.landing-guest-modal-body {
    margin: 0 0 1.25rem;
    font-size: 0.98rem;
    line-height: 1.6;
    color: #444;
}
.landing-guest-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
}
.landing-guest-modal-actions .btn-medium { margin: 0; }
.guest-signup-cta-box .landing-guest-modal-body { margin: 0 0 1rem; }
.guest-signup-cta-modal { z-index: 10050; }
.guest-signup-cta-box .btn-ghost { background: transparent; border-color: transparent; color: #666; }
.guest-signup-cta-box .btn-ghost:hover { color: #1a1a1a; background: rgba(0,0,0,0.04); }
html[data-theme="night"] .landing-guest-modal-body { color: #d0d0d0; }
.chat-guest-cta-box h2 { font-size: 1.25rem; line-height: 1.35; margin: 0 0 0.75rem; color: var(--turquesa-oscuro, #1a5c54); }
.chat-guest-cta-box .landing-guest-modal-body p { margin: 0; }
.hero-btn-puntos { background: #e8f4f2; color: #1a5c54; border: 1px solid #b8d9d4; }
.hero-btn-puntos:hover { background: #d4ebe8; color: #0d3d38; }

/* Auth */
.auth-page {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
    padding-left: max(var(--page-gutter, 1.5rem), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page-gutter, 1.5rem), env(safe-area-inset-right, 0px));
}
.auth-card { width: 100%; max-width: 400px; }
.auth-card h1 { font-family: 'Literata', Georgia, serif; font-size: 1.75rem; margin-bottom: 0.5rem; }
.auth-lead { color: #666; margin-bottom: 1rem; font-size: 0.95rem; }
.auth-page:has(.perfil-password-fieldset) .auth-card,
.auth-page:has(.auth-recover-password) .auth-card { max-width: 440px; }
.auth-error { color: #c00; margin-bottom: 1rem; font-size: 0.9rem; }
.auth-admin-hint { color: var(--accent); margin-bottom: 0.75rem; font-size: 0.9rem; }
.auth-form label { display: block; margin-bottom: 1rem; }
.auth-form label > span:first-child { display: block; margin-bottom: 0.25rem; font-weight: 600; font-size: 0.9rem; }
.auth-form input,
.auth-form select,
.auth-form textarea { width: 100%; padding: 0.6rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.auth-form input[type="date"],
.auth-form input[type="datetime-local"],
.auth-form input[type="time"],
.input-datetime {
    width: 100%;
    min-height: 2.6rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 0.95rem;
    font-family: inherit;
    color: #1a1a1a;
    background: #fff;
    box-sizing: border-box;
    color-scheme: light;
}
.auth-form input[type="date"]:hover,
.auth-form input[type="datetime-local"]:hover,
.auth-form input[type="time"]:hover,
.input-datetime:hover {
    border-color: rgba(255, 152, 0, 0.55);
}
.auth-form input[type="date"]:focus,
.auth-form input[type="datetime-local"]:focus,
.auth-form input[type="time"]:focus,
.input-datetime:focus {
    outline: none;
    border-color: var(--accent, #ff9800);
    box-shadow: 0 0 0 2px rgba(255, 152, 0, 0.2);
}
.auth-form input[type="date"]::-webkit-calendar-picker-indicator,
.auth-form input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.auth-form input[type="time"]::-webkit-calendar-picker-indicator,
.input-datetime::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.75;
    padding: 0.15rem;
    border-radius: 4px;
    filter: none;
}
.auth-form input[type="date"]::-webkit-calendar-picker-indicator:hover,
.auth-form input[type="datetime-local"]::-webkit-calendar-picker-indicator:hover,
.auth-form input[type="time"]::-webkit-calendar-picker-indicator:hover,
.input-datetime::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
    background: rgba(255, 152, 0, 0.12);
}
html[data-theme="night"] .auth-form input[type="date"],
html[data-theme="night"] .auth-form input[type="datetime-local"],
html[data-theme="night"] .auth-form input[type="time"],
html[data-theme="night"] .input-datetime {
    background: #1c1c1c;
    border-color: #444;
    color: #f0f0f0;
    color-scheme: dark;
}
html[data-theme="night"] .auth-form input[type="date"]:hover,
html[data-theme="night"] .auth-form input[type="datetime-local"]:hover,
html[data-theme="night"] .auth-form input[type="time"]:hover,
html[data-theme="night"] .input-datetime:hover {
    border-color: rgba(255, 183, 77, 0.55);
}
html[data-theme="night"] .auth-form input[type="date"]:focus,
html[data-theme="night"] .auth-form input[type="datetime-local"]:focus,
html[data-theme="night"] .auth-form input[type="time"]:focus,
html[data-theme="night"] .input-datetime:focus {
    border-color: var(--accent, #ff9800);
    box-shadow: 0 0 0 2px rgba(255, 152, 0, 0.25);
}
html[data-theme="night"] .auth-form input[type="date"]::-webkit-calendar-picker-indicator,
html[data-theme="night"] .auth-form input[type="datetime-local"]::-webkit-calendar-picker-indicator,
html[data-theme="night"] .auth-form input[type="time"]::-webkit-calendar-picker-indicator,
html[data-theme="night"] .input-datetime::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(1.2);
    opacity: 0.85;
}
.auth-password-wrap {
    position: relative;
    display: block;
}
.auth-password-wrap input {
    padding-right: 2.75rem;
}
.auth-password-toggle {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    padding: 0.35rem;
    border: none;
    background: transparent;
    color: #666;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    line-height: 0;
}
.auth-password-toggle:hover,
.auth-password-toggle:focus {
    color: #1a1a1a;
    background: rgba(0, 0, 0, 0.06);
    outline: none;
}
.auth-password-toggle:focus-visible {
    box-shadow: 0 0 0 2px rgba(255, 152, 0, 0.35);
}
.auth-form .auth-password-toggle { margin-top: 0; }
html[data-theme="night"] .auth-password-toggle { color: #aaa; }
html[data-theme="night"] .auth-password-toggle:hover,
html[data-theme="night"] .auth-password-toggle:focus {
    color: #f0f0f0;
    background: rgba(255, 255, 255, 0.08);
}
.auth-form textarea { min-height: 8rem; resize: vertical; line-height: 1.5; }
.auth-form input:focus,
.auth-form select:focus,
.auth-form textarea:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }
.auth-form select { cursor: pointer; appearance: none; padding-right: 2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; }
.auth-form button { margin-top: 0.5rem; }
.auth-footer { margin-top: 1rem; font-size: 0.9rem; color: #666; }
.auth-success { color: #0a0; margin-bottom: 1rem; font-size: 0.9rem; }
.auth-recover-email { margin: 0 0 1rem; font-size: 0.95rem; color: #555; }
.auth-recover-result { text-align: center; }
.auth-recover-password {
    margin: 0.75rem 0 1.25rem;
    padding: 0.85rem 1rem;
    font-family: ui-monospace, Consolas, monospace;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #1a1a1a;
    background: #f0f9f8;
    border: 1px solid #b8d9d4;
    border-radius: 8px;
    word-break: break-all;
    user-select: all;
}
html[data-theme="night"] .auth-recover-password {
    background: #1e2a2a;
    border-color: #3a5555;
    color: #e8f5f4;
}
html[data-theme="night"] .auth-recover-email { color: #bbb; }
.auth-form .input-readonly { background: #f0f0f0; color: #666; cursor: not-allowed; }
.auth-form input[type=checkbox] { width: auto; margin-right: 0.5rem; cursor: pointer; accent-color: var(--turquesa-oscuro, #ff9800); }
.auth-form label.perfil-photo-remove { display: flex; align-items: center; cursor: pointer; }
.perfil-password-fieldset { margin: 1.25rem 0; padding: 1rem; border: 1px solid #eee; border-radius: 6px; }
.perfil-password-fieldset legend { font-weight: 600; font-size: 0.9rem; padding: 0 0.5rem; }
.perfil-password-hint { color: #666; font-size: 0.85rem; margin: 0 0 0.75rem; }
/* Foto de perfil */
/* Pestañas en mi perfil */
/* Hub pages (Participar, Descubrir, Mi espacio) */
.hub-page {
    margin-top: 0;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}
/* Evitar doble gutter si el panel interno ya trae .container-medium */
.hub-page .container-medium {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
}
.hub-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; border-bottom: 2px solid #e8e8e8; }
.hub-tab { padding: 0.5rem 1rem; font-size: 0.95rem; text-decoration: none; color: #555; border-bottom: 3px solid transparent; margin-bottom: -2px; font-weight: 500; }
.hub-tab:hover { color: #1a1a1a; }
.hub-tab.hub-tab-active { color: var(--turquesa-oscuro, #0d7377); border-bottom-color: var(--turquesa-oscuro, #0d7377); }
.hub-panel { margin-top: 0; }
.hub-panel .timeline-page-medium { margin-top: 0; }
.hub-panel .noticias-medium .container-medium { margin-top: 0; }
.hub-panel .noticias-header-medium { margin-top: 0; }
.perfil-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; border-bottom: 2px solid #e8e8e8; }
.perfil-tab { padding: 0.5rem 1rem; font-size: 0.95rem; text-decoration: none; color: #555; border-bottom: 3px solid transparent; margin-bottom: -2px; font-weight: 500; }
.perfil-tab:hover { color: #1a1a1a; }
.perfil-tab.perfil-tab-active { color: var(--turquesa-oscuro, #0d7377); border-bottom-color: var(--turquesa-oscuro, #0d7377); }
.auth-card-perfil-wide { max-width: 560px; }
.perfil-contabilidad { margin-top: 0; }
.perfil-contabilidad-title { margin: 0 0 0.5rem; font-size: 1.15rem; font-weight: 600; color: #1a1a1a; }
.perfil-contabilidad-saldo { margin: 0 0 1rem; font-size: 1rem; color: #333; }
.perfil-contabilidad-empty { color: #666; font-size: 0.95rem; margin: 0; }
.perfil-contabilidad-table-wrap { overflow-x: auto; margin-top: 0.5rem; }
.perfil-contabilidad-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.perfil-contabilidad-table th,
.perfil-contabilidad-table td { padding: 0.5rem 0.75rem; text-align: left; border-bottom: 1px solid #eee; vertical-align: top; }
.perfil-contabilidad-table th { background: #f5f5f5; font-weight: 600; color: #333; }
.perfil-contabilidad-table tbody tr:hover { background: #fafafa; }
.perfil-contabilidad-puntos { font-weight: 600; white-space: nowrap; }
.perfil-contabilidad-puntos-pos { color: #0d7377; }
.perfil-contabilidad-puntos-neg { color: #c62828; }
.perfil-puntos { margin-bottom: 1.5rem; padding: 1rem; background: #f8f9fa; border-radius: 8px; border: 1px solid #eee; }
.perfil-puntos-title { margin: 0 0 0.5rem; font-size: 1.1rem; font-weight: 600; color: #1a1a1a; }
.perfil-puntos-saldo { margin: 0 0 0.5rem; font-size: 1rem; color: #333; }
.perfil-puntos-hint { margin: 0 0 0.5rem; font-size: 0.9rem; color: #666; }
.perfil-puntos-perks { margin: 0 0 0.35rem; font-size: 0.9rem; color: #444; }
.perfil-puntos-next { margin: 0; font-size: 0.85rem; color: #555; }
.perfil-photo-wrap { margin-bottom: 1.25rem; }
.perfil-photo-current { position: relative; width: 120px; height: 120px; border-radius: 50%; overflow: hidden; background: #f0f0f0; margin-bottom: 0.75rem; }
.perfil-photo-img { width: 100%; height: 100%; object-fit: cover; display: block; position: relative; z-index: 1; }
.perfil-photo-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 3rem; opacity: 0.6; z-index: 0; }
.perfil-photo-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.perfil-photo-upload .admin-file-label { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.4rem 0.75rem; background: #eee; border: 1px solid #ddd; border-radius: 4px; cursor: pointer; font-size: 0.9rem; }
.perfil-photo-upload .admin-file-label:hover { background: #e0e0e0; }
.perfil-photo-upload .perfil-photo-input { position: absolute; width: 0; height: 0; opacity: 0; }
.perfil-photo-remove { font-size: 0.9rem; color: #666; cursor: pointer; display: flex; align-items: center; gap: 0.35rem; }
.form-error { color: #c00; margin-bottom: 1rem; }

/* Blog */
.blog-medium { padding: 2rem 0; }
.blog-header-medium { text-align: center; margin-bottom: 2rem; }
.blog-header-medium h1 { font-family: 'Literata', Georgia, serif; font-size: 2rem; margin-bottom: 0.25rem; }
.blog-bio { color: #666; margin-bottom: 1rem; }
.blog-author-selector-wrap { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.blog-author-selector-label { font-size: 0.95rem; font-weight: 600; color: #333; }
.blog-author-select { padding: 0.5rem 2rem 0.5rem 0.75rem; font-size: 1rem; border: 1px solid #ddd; border-radius: 6px; background: #fff; color: #1a1a1a; min-width: 200px; cursor: pointer; font-family: inherit; }
.blog-author-select:hover, .blog-author-select:focus { border-color: var(--turquesa-oscuro, #ff9800); outline: none; }
.btn-escribir-large { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1.25rem; font-size: 1.1rem; }
.btn-escribir-large .btn-escribir-icon { width: 40px; height: 40px; color: inherit; }
.btn-escribir-large:hover { color: #fff; background: var(--turquesa-medio, #f57c00); }
.article-list-medium { display: flex; flex-direction: column; gap: 1.5rem; }
.article-preview-medium a { text-decoration: none; color: inherit; display: block; padding: 1rem 0 0; }
.article-preview-link { display: block; }
.article-preview-link:hover { color: var(--turquesa-oscuro, #ff9800); }
.article-preview-cover { width: 100%; max-height: 220px; object-fit: cover; border-radius: 6px; display: block; margin-bottom: 0.5rem; }
.article-preview-title { font-family: 'Literata', Georgia, serif; font-size: 1.35rem; margin: 0 0 0.35rem; }
.article-preview-medium .excerpt { color: #666; font-size: 0.95rem; margin: 0.25rem 0 0; line-height: 1.45; min-height: 4.35em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.article-preview-meta-row { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; padding: 0.5rem 0 1rem; margin-top: 0.25rem; border-bottom: 1px solid #eee; }
.article-preview-meta-row time { font-size: 0.85rem; color: #999; }
.article-preview-actions { margin: 0; flex-direction: row; }
.article-preview-actions .btn-item-edit { text-decoration: none; display: inline-flex !important; align-items: center; justify-content: center; padding: 0.25rem 0.65rem !important; border: none !important; height: 1.75rem; }
.empty-state { color: #666; font-style: italic; padding: 2rem 0; }

/* Artículo single */
.articulo-single-medium { padding: 2rem 0; }
.articulo-header-medium { margin-bottom: 2rem; }
.articulo-header-medium h1 { font-family: 'Literata', Georgia, serif; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.25; margin-bottom: 0.75rem; }
.articulo-meta { font-size: 0.9rem; color: #666; margin: 0; }
.articulo-meta a { color: var(--turquesa-oscuro, #ff9800); text-decoration: none; }
.articulo-cover-img { width: 100%; max-height: 420px; object-fit: cover; border-radius: 8px; margin-top: 1rem; display: block; }
.articulo-body-medium { font-family: 'Literata', Georgia, serif; font-size: 1.2rem; line-height: 1.8; white-space: pre-wrap; }
.articulo-body-formatted { white-space: normal; }
/* padding (no colapso) para separación clara entre párrafos */
.articulo-body-formatted p {
    display: block;
    margin: 0 !important;
    padding: 0 0 1.85em !important;
}
.articulo-body-formatted p:last-child { padding-bottom: 0.35em !important; }
.articulo-body-formatted h2 { font-family: 'Literata', Georgia, serif; font-size: 1.5rem; font-weight: 600; margin: 2rem 0 0.75rem; color: inherit; }
.articulo-body-formatted h2:first-child { margin-top: 0; }
.articulo-body-formatted h3 { font-family: 'Literata', Georgia, serif; font-size: 1.2rem; font-weight: 600; margin: 1.5rem 0 0.5rem; color: inherit; opacity: 0.92; }
.articulo-body-formatted ul { margin: 1rem 0; padding-left: 1.5rem; list-style: disc; }
.articulo-body-formatted li { margin: 0.35rem 0; }
.articulo-puntos-tinta { margin-top: 2rem; padding: 0.75rem 1rem; background: #f5f5f5; border-radius: 8px; font-size: 0.95rem; color: #555; }
.articulo-puntos-tinta strong { color: #1a1a1a; }
.articulo-footer-medium { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #eee; display: flex; gap: 1rem; flex-wrap: wrap; }
.articulo-footer-medium .btn-item-icon { text-decoration: none; }
.articulo-interaction { margin-top: 1.5rem; display: flex; align-items: center; gap: 0.5rem; }
.btn-articulo-like { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.75rem; border: 1px solid #ddd; border-radius: 6px; background: #fff; cursor: pointer; font-size: 0.95rem; color: #555; }
.btn-articulo-like:hover { border-color: #ccc; background: #f9f9f9; }
.btn-articulo-like.is-liked { border-color: #e91e63; color: #e91e63; }

/* Reacciones: solo icono + cantidad */
.article-reactions {
  margin-top: 1.25rem;
  padding: 0.55rem 0 0;
  border: none;
  border-radius: 0;
  background: transparent;
}
.article-reactions-title,
.article-reactions-group-label {
  display: none !important;
}
.article-reactions-groups {
  display: contents;
}
.article-reactions-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.article-reaction-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  min-height: 2rem;
  padding: 0.28rem 0.55rem;
  border: 1px solid #e0e0e0;
  border-radius: 999px;
  background: #fff;
  color: #444;
  font: inherit;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.article-reaction-btn iconify-icon {
  flex-shrink: 0;
  display: block;
}
.article-reaction-label {
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}
.article-reaction-count {
  min-width: 0.9em;
  font-size: 0.78rem;
  font-weight: 700;
  color: #666;
  text-align: center;
  line-height: 1;
}
.article-reaction-btn--positive:hover:not(:disabled) {
  border-color: #2f8f5b;
  background: #f0faf4;
  color: #1d6b42;
}
.article-reaction-btn--positive.is-active {
  border-color: #2f8f5b;
  background: #e5f6ec;
  color: #176338;
}
.article-reaction-btn--positive.is-active .article-reaction-count {
  color: #176338;
}
.article-reaction-btn--negative:hover:not(:disabled) {
  border-color: #b85a4a;
  background: #fdf3f1;
  color: #8f3d30;
}
.article-reaction-btn--negative.is-active {
  border-color: #b85a4a;
  background: #f8e8e4;
  color: #7a3428;
}
.article-reaction-btn--negative.is-active .article-reaction-count {
  color: #7a3428;
}
.article-reaction-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.article-reactions-hint {
  display: inline-block;
  margin: 0.45rem 0 0;
  font-size: 0.8rem;
  color: #888;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.article-reactions-hint:hover {
  color: #333;
}
.articulo-lectura-modal-box .article-reactions {
  margin-top: 1rem;
}
.articulo-comments { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #eee; }
.articulo-comments-title { font-size: 1.1rem; margin-bottom: 1rem; }
.articulo-comment-form { margin-bottom: 1.5rem; }
.articulo-comment-form textarea { width: 100%; max-width: 480px; padding: 0.5rem; border: 1px solid #ddd; border-radius: 6px; font-family: inherit; resize: vertical; }
.articulo-comment-form button { margin-top: 0.5rem; }
.articulo-comments-list { list-style: none; padding: 0; margin: 0; }
.articulo-comment-item { padding: 0.75rem 0; border-bottom: 1px solid #f0f0f0; font-size: 0.95rem; }
.articulo-comment-item strong { display: block; margin-bottom: 0.25rem; }
.articulo-comment-item time { font-size: 0.8rem; color: #888; display: block; margin-top: 0.25rem; }
.articulo-comments-empty { color: #888; font-size: 0.95rem; margin: 0; }
.articulo-comments-hint { color: #666; font-size: 0.92rem; margin: 0 0 1rem; }
.articulo-comment-reply-btn {
  margin-top: 0.45rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, #e07020);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.articulo-comment-reply-btn:hover { color: #b55512; }
.articulo-comment-reply-form {
  margin-top: 0.65rem;
  padding: 0.75rem;
  border: 1px solid #e4e0d8;
  border-radius: 8px;
  background: #faf8f4;
}
.articulo-comment-reply-form textarea {
  width: 100%;
  max-width: 100%;
  padding: 0.5rem;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-family: inherit;
  resize: vertical;
  box-sizing: border-box;
}
.articulo-comment-reply-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.articulo-comment-replies {
  list-style: none;
  margin: 0.65rem 0 0;
  padding: 0 0 0 0.85rem;
  border-left: 3px solid var(--accent, #e07020);
}
.articulo-comment-item--reply {
  border-bottom: none;
  padding: 0.55rem 0.75rem;
  margin-bottom: 0.35rem;
  background: #fff8f0;
  border-radius: 6px;
}
.articulo-comment-reply-badge {
  display: inline-block;
  margin-bottom: 0.35rem;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  background: var(--accent, #e07020);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
html[data-theme="night"] .articulo-comment-reply-form {
  background: #2a2a2a;
  border-color: #444;
}
html[data-theme="night"] .articulo-comment-item--reply {
  background: #2a241c;
}
html[data-theme="night"] .articulo-comment-replies {
  border-left-color: var(--accent, #e07020);
}
.escritor-intereses { max-width: 42rem; }

/* Lecturas (estantería Open Library) */
.escritor-lecturas { max-width: 48rem; }
.lecturas-search { margin: 0 0 1.75rem; }
.lecturas-search-label { display: block; }
.lecturas-search-label > span:first-child {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
}
.lecturas-search-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}
.lecturas-search-input {
  flex: 1 1 14rem;
  min-width: 0;
  padding: 0.55rem 0.75rem;
  border: 1px solid #ddd;
  font: inherit;
}
.lecturas-search-status {
  margin: 0.5rem 0 0;
  font-size: 0.9rem;
  color: #666;
}
.lecturas-search-results {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.lecturas-search-item {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: #fafafa;
}
.lecturas-search-item-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.lecturas-search-item-body strong {
  font-size: 0.95rem;
  line-height: 1.3;
}
.lecturas-lists { display: flex; flex-direction: column; gap: 1.75rem; }
.lecturas-list-block { margin: 0; }
.lecturas-grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.lecturas-card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0.85rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid #eee;
}
.lecturas-card-cover {
  width: 72px;
  aspect-ratio: 2 / 3;
  background: #f0f0f0;
  overflow: hidden;
}
.lecturas-search-item .lecturas-card-cover {
  width: 48px;
  height: 72px;
  aspect-ratio: auto;
}
.lecturas-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lecturas-card-cover-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 1.5rem;
  background: #eee;
}
.lecturas-card-title {
  margin: 0 0 0.2rem;
  font-size: 1.05rem;
  line-height: 1.3;
}
.lecturas-card-authors {
  margin: 0;
  font-size: 0.9rem;
  color: #555;
}
.lecturas-card-meta {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  color: #777;
}
.lecturas-status {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.72rem;
}
.lecturas-status--reading { color: var(--accent, #e07020); }
.lecturas-status--read { color: var(--turquesa-oscuro, #0d7377); }
.lecturas-card-comment {
  margin: 0.55rem 0 0;
  padding: 0.5rem 0.65rem;
  border-left: 3px solid rgba(224, 112, 32, 0.45);
  background: rgba(224, 112, 32, 0.06);
  font-size: 0.92rem;
  color: #333;
}
.lecturas-edit-form {
  margin-top: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.lecturas-edit-form select,
.lecturas-edit-form textarea,
.lecturas-add-box select,
.lecturas-add-box textarea {
  width: 100%;
  font: inherit;
  padding: 0.45rem 0.55rem;
  border: 1px solid #ddd;
}
.lecturas-edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.lecturas-add-box { max-width: 420px; }
.lecturas-add-preview { margin: 0 0 1rem; }
.lecturas-add-preview-inner {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 0.75rem;
  align-items: start;
}
.lecturas-add-preview-inner .lecturas-card-cover { width: 64px; }

html[data-theme="night"] .lecturas-search-input,
html[data-theme="night"] .lecturas-edit-form select,
html[data-theme="night"] .lecturas-edit-form textarea,
html[data-theme="night"] .lecturas-add-box select,
html[data-theme="night"] .lecturas-add-box textarea {
  background: #1a1a1a;
  border-color: #333;
  color: #f0f0f0;
}
html[data-theme="night"] .lecturas-search-item,
html[data-theme="night"] .lecturas-card-cover,
html[data-theme="night"] .lecturas-card-cover-ph { background: #222; }
html[data-theme="night"] .lecturas-search-item { border-color: #333; }
html[data-theme="night"] .lecturas-card { border-color: #333; }
html[data-theme="night"] .lecturas-card-authors,
html[data-theme="night"] .lecturas-card-meta,
html[data-theme="night"] .lecturas-search-status { color: #aaa; }
html[data-theme="night"] .lecturas-card-comment {
  background: rgba(255, 183, 77, 0.1);
  border-left-color: rgba(255, 183, 77, 0.5);
  color: #eee;
}

.escritor-intereses-title {
    font-family: 'Literata', Georgia, serif;
    font-size: 1.35rem;
    margin: 0 0 0.35rem;
}
.escritor-intereses-lead { margin: 0 0 1.25rem; color: #555; font-size: 0.95rem; }
.escritor-intereses-empty { color: #888; }
.escritor-intereses-selected {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.escritor-interes-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: var(--accent, #e07020);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 600;
}
.escritor-interes-remove {
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0 0.15rem;
    opacity: 0.85;
}
.escritor-interes-remove:hover { opacity: 1; }
.escritor-interes-remove-form { display: inline; margin: 0; }
.escritor-intereses-subtitle {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6b6560;
    margin: 1.25rem 0 0.5rem;
}
.escritor-intereses-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.escritor-interes-toggle-form { margin: 0; }
.escritor-interes-option {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.7rem;
    border: 1.5px solid #cfc8bc;
    border-radius: 999px;
    background: #fff;
    color: #333;
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
}
.escritor-interes-option:hover {
    border-color: var(--accent, #e07020);
    color: #b55512;
}
.escritor-interes-option.is-on {
    border-color: var(--accent, #e07020);
    background: #fff4ea;
    color: #8f3f0c;
    font-weight: 600;
}
.escritor-interes-add-form { margin-top: 1.5rem; }
.escritor-interes-add-form label > span:first-child {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
}
.escritor-interes-add-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.escritor-interes-add-row input[type="text"] {
    flex: 1 1 14rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    font: inherit;
}
html[data-theme="night"] .escritor-interes-option {
    background: #1e1e1e;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .escritor-interes-option.is-on {
    background: #3a2a1a;
    border-color: var(--accent, #e07020);
    color: #ffcc99;
}
html[data-theme="night"] .escritor-intereses-lead { color: #aaa; }
.form-hint { font-size: 0.85rem; color: #666; margin-top: 0.5rem; }

.btn-submit-article { display: inline-flex; align-items: center; gap: 0.5rem; }
.btn-submit-article .btn-submit-article-icon { flex-shrink: 0; color: inherit; }
.btn-submit-article:hover { color: #fff; }

/* Escribir */
.escribir-medium { padding: 1.25rem 0 2rem; }
.escribir-medium h1 { font-family: 'Literata', Georgia, serif; margin-bottom: 1rem; }
.form-article-medium label { display: block; margin-bottom: 1rem; }
.form-article-medium label span { display: block; margin-bottom: 0.25rem; font-weight: 600; }
.form-article-medium input[type=text],
.form-article-medium input[type=email],
.form-article-medium input[type=number],
.form-article-medium input[type=url],
.form-article-medium input[type=password] { width: 100%; max-width: 100%; padding: 0.6rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1.1rem; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.form-article-medium input:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }
.form-article-medium select { width: 100%; max-width: 100%; padding: 0.6rem 2rem 0.6rem 0.75rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; font-family: inherit; color: #1a1a1a; background: #fff; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; box-sizing: border-box; }
.form-article-medium select:hover { border-color: #ccc; }
.form-article-medium select:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }
.form-article-medium textarea { width: 100%; padding: 0.6rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; line-height: 1.6; resize: vertical; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.form-article-medium textarea:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }

/* Noticias */
.noticias-header-medium { text-align: center; margin-bottom: 2rem; }
.noticias-header-medium h1 { font-family: 'Literata', Georgia, serif; font-size: 2rem; margin-bottom: 1rem; }
.news-list-medium { display: flex; flex-direction: column; gap: 1.5rem; }
.news-preview-medium { padding-bottom: 0; }
.news-preview-medium .news-preview-link { text-decoration: none; color: inherit; display: block; padding: 1rem 0 0; }
.news-preview-medium .news-preview-link:hover { color: var(--turquesa-oscuro, #ff9800); }
.news-preview-img { width: 100%; max-height: 220px; object-fit: cover; border-radius: 6px; display: block; margin-bottom: 0.5rem; }
.news-preview-title { font-family: 'Literata', Georgia, serif; font-size: 1.35rem; margin: 0 0 0.35rem; }
.news-preview-medium .excerpt { color: #666; font-size: 0.95rem; margin: 0.25rem 0 0; line-height: 1.45; min-height: 4.35em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.news-preview-meta-row { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; padding: 0.5rem 0 1rem; margin-top: 0.25rem; border-bottom: 1px solid #eee; }
.news-preview-meta-row time { font-size: 0.85rem; color: #999; }
.news-preview-meta-row .news-item-actions { margin: 0; flex-direction: row; flex-shrink: 0; }
.news-meta { font-size: 0.85rem; color: #666; display: block; margin-top: 0.25rem; }
.noticia-single-img { width: 100%; max-height: 400px; object-fit: cover; border-radius: 8px; margin: 1rem 0; display: block; }

/* Timeline / Chat */
.timeline-page-medium .timeline-inner { padding-bottom: 10rem; width: 100%; }
.timeline-header-medium { text-align: center; margin-bottom: 1rem; }
.timeline-header-desc { margin: 0; font-size: 0.95rem; color: #666; }
.salas-tabs-medium { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; justify-content: center; }
.salas-tabs-medium .sala-tab { padding: 0.5rem 0.75rem; border-radius: 8px; font-size: 0.9rem; border: 1px solid #e0e0e0; background: #fafafa; cursor: pointer; font-family: inherit; }
.salas-tabs-medium .sala-tab.active { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.feed-medium { display: flex; flex-direction: column; gap: 0.6rem; min-height: 200px; }
.feed-load-more-wrap { text-align: center; padding: 0.75rem 0 1rem; }
.feed-load-more-btn { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--turquesa-oscuro, #1a5c54); background: #fff; color: var(--turquesa-oscuro, #1a5c54); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 1.25rem; line-height: 1; transition: background 0.2s, color 0.2s, opacity 0.2s; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.feed-load-more-btn:hover { background: var(--turquesa-oscuro, #1a5c54); color: #fff; }
.feed-load-more-btn:disabled { opacity: 0.7; cursor: not-allowed; }
.feed-load-more-btn--loading { opacity: 0.8; pointer-events: none; }
.feed-load-more-btn-icon { display: block; }
.composer-fixed-medium { position: fixed; bottom: 0; left: 0; right: 0; z-index: 200; background: #fff; border-top: 1px solid #ddd; padding: 0.75rem 0; box-shadow: 0 -2px 16px rgba(0,0,0,0.08); }
.composer-bar-medium { display: flex; align-items: flex-end; gap: 0.5rem; width: 100%; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
@media (min-width: 768px) {
    .timeline-page-medium .timeline-inner { max-width: 640px; margin-left: auto; margin-right: auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); }
    .composer-fixed-medium .container-medium { max-width: 640px; margin-left: auto; margin-right: auto; }
    .composer-bar-medium { max-width: 640px; }
}
.composer-bar-medium { flex-wrap: wrap; }
.composer-toolbar { display: flex; align-items: center; gap: 0.25rem; flex-shrink: 0; }
.composer-tool-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: none; background: none; cursor: pointer; font-size: 1.1rem; color: #666; border-radius: 8px; }
.composer-tool-btn:hover { background: rgba(255,152,0,0.15); color: var(--accent); }
.composer-file-input { display: none; }
.composer-attachments { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.5rem; padding: 0.5rem; background: #f8f9fa; border-radius: 8px; font-size: 0.85rem; }
.composer-attach-item { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.25rem 0.5rem; background: #fff; border: 1px solid #ddd; border-radius: 6px; }
.composer-attach-item .composer-attach-remove { background: none; border: none; cursor: pointer; color: #999; font-size: 1rem; padding: 0 0.2rem; }
.composer-attach-item .composer-attach-remove:hover { color: #c62828; }
.emoji-picker { position: absolute; bottom: 100%; left: 1rem; margin-bottom: 0.5rem; padding: 0.5rem; background: #fff; border: 1px solid #ddd; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.15); max-height: 200px; overflow-y: auto; z-index: 300; display: grid; grid-template-columns: repeat(8, 1fr); gap: 0.25rem; }
.emoji-picker[hidden] { display: none !important; }
.emoji-picker button { width: 32px; height: 32px; padding: 0; border: none; background: none; cursor: pointer; font-size: 1.25rem; border-radius: 6px; }
.emoji-picker button:hover { background: rgba(255,152,0,0.2); }
.composer-bar-medium textarea { flex: 1; min-height: 48px; min-width: 0; max-height: 120px; padding: 0.65rem 1rem; border: 1px solid #ccc; border-radius: 24px; resize: none; font-family: inherit; font-size: 1rem; line-height: 1.4; color: #1a1a1a; background: #f5f5f5; }
.composer-bar-medium textarea::placeholder { color: #888; }
.composer-bar-medium textarea:focus { outline: none; border-color: var(--accent); background: #fff; }
.btn-post-circle-medium { width: 48px; height: 48px; flex-shrink: 0; border: none; border-radius: 50%; background: var(--accent); color: var(--accent-ink, #fff); cursor: pointer; font-size: 1.25rem; display: inline-flex; align-items: center; justify-content: center; }
.btn-post-circle-medium:hover { background: var(--accent-hover); }
.btn-post-circle-medium .btn-post-icon { flex-shrink: 0; }
.btn-chat-close-circle {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border: 1.5px solid #ccc;
    border-radius: 50%;
    background: #fff;
    color: #333;
    cursor: pointer;
    font-size: 1.65rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-family: inherit;
}
.btn-chat-close-circle:hover {
    background: #f3f3f3;
    border-color: #999;
    color: #111;
}
html[data-theme="night"] .btn-chat-close-circle {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .btn-chat-close-circle:hover {
    background: #333;
    color: #fff;
}
.timeline-page-medium .timeline-inner { padding-bottom: 12rem; }
/* Reservar espacio para el compositor fijo al hacer scroll al último mensaje */
.timeline-page-medium .feed-item,
.timeline-page-medium .thread-reply-item,
.timeline-page-medium .thread-post-container { scroll-margin-bottom: 10rem; }
.reply-preview-medium { display: flex; align-items: center; gap: 0.5rem; padding: 0.35rem 0; margin-bottom: 0.25rem; background: #f5f5f5; border-radius: 8px; padding: 0.5rem; }
.reply-preview-cancel { background: none; border: none; cursor: pointer; font-size: 1.25rem; color: #888; }
.noticia-single-medium .articulo-body-medium { font-family: inherit; font-size: 1rem; }
.post-share-link { display: inline-block; margin-top: 0.35rem; color: var(--turquesa-oscuro, #ff9800); text-decoration: underline; }
.post-share-link:hover { color: var(--turquesa-medio, #f57c00); }
.post-attach-image { max-width: 100%; max-height: 300px; border-radius: 8px; display: block; margin-top: 0.5rem; }
.post-image-wrap { margin: 0.25rem 0; }

/* Chat feed: tarjetas de post y botón Responder (estilo WhatsApp) */
.feed-medium { align-items: stretch; }
.feed-medium .feed-item { max-width: 85%; padding: 0.6rem 0.75rem; border-radius: 12px; box-shadow: 0 1px 2px rgba(0,0,0,0.08); border: none; }
.feed-medium .post-card--own,
.feed-medium .reply-card--own { align-self: flex-end; margin-left: 15%; margin-right: 0; background: #e9e9eb; color: #1a1a1a; }
.feed-medium .post-card--own .post-author,
.feed-medium .post-card--own .post-body,
.feed-medium .post-card--own .post-meta,
.feed-medium .reply-card--own .post-author,
.feed-medium .reply-card--own .post-body { color: inherit; }
.feed-medium .post-card--own .post-time,
.feed-medium .reply-card--own .post-time { color: #666; }
.feed-medium .post-card--own .post-actions { border-top-color: rgba(0,0,0,0.1); }
.feed-medium .post-card--own .btn-reply { background: rgba(255,152,0,0.2); border-color: rgba(255,152,0,0.4); color: var(--accent); }
.feed-medium .post-card--own .btn-reply:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.feed-medium .post-card--own .post-share-link,
.feed-medium .post-card--own .post-pdf-link,
.feed-medium .reply-card--own .post-share-link { color: var(--accent); text-decoration: underline; }
.feed-medium .post-card--other .post-share-link,
.feed-medium .post-card--other .post-pdf-link { color: var(--accent); }
.feed-medium .post-card--other,
.feed-medium .reply-card--other { align-self: flex-start; margin-right: 15%; margin-left: 0; background: #fff; color: #1a1a1a; border: 1px solid #eee; }
.feed-medium .post-card--other .post-author,
.feed-medium .reply-card--other .post-author { color: var(--accent); }
.feed-medium .post-card--other .reply-cartucho,
.feed-medium .reply-card--other .reply-cartucho { background: #f5f5f5; border-bottom-color: #eee; }
.feed-medium .post-card--own .reply-cartucho,
.feed-medium .reply-card--own .reply-cartucho { background: rgba(0,0,0,0.06); border-bottom-color: rgba(0,0,0,0.08); }
.feed-medium .post-header { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.25rem; font-size: 0.875rem; }
.feed-medium .post-author { font-weight: 600; }
.feed-medium .post-time { color: #999; font-size: 0.8rem; }
.feed-medium .post-body { line-height: 1.45; margin-bottom: 0.25rem; word-break: break-word; font-size: 0.95rem; }
.feed-medium .post-badge { font-size: 0.7rem; padding: 0.2rem 0.4rem; border-radius: 4px; margin-right: 0.25rem; }
.feed-medium .post-badge-pinned { background: #e3f2fd; color: #1565c0; }
.feed-medium .post-badge-recommended { background: #fff8e1; color: #f57c00; }
.feed-medium .post-actions { margin-top: 0.4rem; padding-top: 0.4rem; border-top: 1px solid rgba(0,0,0,0.1); display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.feed-medium .btn-reaction { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.5rem; border: 1px solid rgba(0,0,0,0.15); border-radius: 6px; background: transparent; cursor: pointer; font-size: 0.85rem; }
.feed-medium .btn-reaction:hover { background: rgba(255,152,0,0.15); border-color: rgba(255,152,0,0.4); }
.feed-medium .btn-reaction.is-active { background: rgba(255,152,0,0.25); border-color: var(--accent); color: var(--accent); }
.feed-medium .post-reaction-num { font-size: 0.8rem; }
.feed-medium .post-meta { font-size: 0.8rem; color: #888; }
.feed-medium .post-card--other .post-meta { color: #666; }
.feed-medium .btn-reply {
    font-family: inherit;
    color: var(--accent);
    background: rgba(255, 152, 0, 0.1);
    border: 1px solid rgba(255, 152, 0, 0.3);
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    padding: 0;
    width: 1.75rem;
    min-width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.feed-medium .btn-reply .btn-reply-icon,
.feed-medium .btn-reply iconify-icon { display: block; color: inherit; }
.feed-medium .btn-reply:hover {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}
.feed-medium .reply-cartucho { font-size: 0.75rem; color: #666; padding: 0.35rem 0.6rem; margin: -0.6rem -0.75rem 0.4rem -0.75rem; border-radius: 12px 12px 0 0; border-bottom: 1px solid transparent; }
.feed-medium .btn-reintentar-feed { margin-top: 0.5rem; padding: 0.4rem 1rem; background: var(--accent); color: var(--accent-ink, #fff); border: none; border-radius: 6px; cursor: pointer; font-family: inherit; font-size: 0.9rem; }
.feed-medium .btn-reintentar-feed:hover { background: var(--accent-hover); }
.feed-medium .reply-cartucho-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Vista hilo (modo X) */
.thread-view-medium { margin-top: 0.5rem; }
.thread-back-link { display: inline-block; margin-bottom: 1rem; color: var(--accent); text-decoration: none; font-size: 0.9rem; }
.thread-back-link:hover { text-decoration: underline; }
.thread-post-container { margin-bottom: 1rem; }
.thread-post-container .post-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.thread-replies-container { display: flex; flex-direction: column; gap: 0.6rem; margin-left: 1rem; padding-left: 1rem; border-left: 2px solid #eee; }
.thread-replies-container .empty { color: #666; font-style: italic; padding: 1rem 0; margin: 0; }
.thread-reply-item { max-width: 85%; }
.btn-open-thread { background: none; border: none; cursor: pointer; font-family: inherit; font-size: 0.8rem; color: var(--accent); padding: 0; }
.btn-open-thread:hover { text-decoration: underline; }

/* ========== Servicios editoriales – Landing ========== */
.page-hero-landing,
.servicios-editoriales-landing {
    --sed-color: var(--accent, #ff9800);
    --sed-color-hover: var(--accent-hover, #f57c00);
}
.page-hero-body { padding: 2.5rem 0 3.5rem; }
.page-hero-secondary {
    margin: 0;
    align-self: center;
}
.page-hero-landing .eventos-noticias-filters { justify-content: center; margin-bottom: 1.5rem; }
.page-hero-landing .barra-toolbar { margin-bottom: 0.75rem; }
.page-hero-landing > .sed-container.page-hero-body {
    max-width: 1100px;
}
.page-hero-landing .concursos-wall { max-width: 40rem; }
.concursos-filters {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 0 auto 1.5rem;
    max-width: 40rem;
}
.concursos-filters-row {
    justify-content: flex-start;
    margin-bottom: 0;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}
.concursos-filters-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #888;
    margin-right: 0.25rem;
    flex: 0 0 auto;
}
@media (max-width: 480px) {
    .concursos-filters-row {
        gap: 0.35rem;
    }
    .concursos-filters-label {
        width: 100%;
        margin: 0 0 0.15rem;
    }
}
html[data-theme="night"] .concursos-filters-label { color: #999; }
.sed-container { width: 100%; max-width: 1200px; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
@media (min-width: 768px) {
    .sed-container { max-width: 720px; padding-left: max(2rem, env(safe-area-inset-left, 0px)); padding-right: max(2rem, env(safe-area-inset-right, 0px)); }
}
@media (min-width: 1024px) {
    .sed-container { max-width: 840px; }
}

.sed-admin-edit {
    max-width: 100%;
    margin: 1.25rem auto 0;
    padding: 1rem 1.25rem;
    text-align: left;
    background: var(--turquesa-sutil, #fff3e0);
    border: 1px solid color-mix(in srgb, var(--sed-color) 35%, transparent);
    border-radius: 10px;
    box-sizing: border-box;
}
.sed-admin-url-label { display: block; font-size: 0.85rem; font-weight: 600; color: #1a1a1a; margin-bottom: 0.4rem; }
.sed-admin-url-row { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.sed-admin-url-input {
    flex: 1 1 14rem;
    min-width: 0;
    padding: 0.5rem 0.75rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 0.95rem;
    font-family: inherit;
    color: #1a1a1a;
    background: #fff;
    box-sizing: border-box;
}
.sed-admin-url-input:focus {
    outline: none;
    border-color: var(--sed-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--sed-color) 22%, transparent);
}
.sed-admin-url-hint { margin: 0.5rem 0 0; font-size: 0.8rem; color: #666; }
.sed-admin-flash { margin: 0.65rem 0 0; font-size: 0.9rem; }
.sed-admin-flash-ok { color: #2e7d32; }
.sed-admin-flash-error { color: #c62828; }
.sed-admin-cta-hint { margin: 1rem 0 0; font-size: 0.9rem; }
.sed-admin-cta-hint a { color: #fff !important; text-decoration: underline; font-weight: 600; }
.sed-admin-desktop-only { display: block; }
@media (max-width: 767px) {
    .sed-admin-desktop-only { display: none !important; }
}

.sed-hero {
    padding: 3rem 1.5rem 4rem;
    text-align: center;
    background: linear-gradient(180deg, color-mix(in srgb, var(--sed-color) 8%, transparent) 0%, transparent 60%);
    margin: 0;
}
/* Mismo lavado de color diluido en Escritores, La Otra Estantería, Mi espacio y Chat (no La Barra) */
.escritores-page,
.escritor-space,
.libros-page,
.chat-salas-page,
.postales-clasicas-page[data-classics-view="index"] {
    --sed-color: var(--accent, #ff9800);
    background: linear-gradient(180deg, color-mix(in srgb, var(--sed-color) 8%, transparent) 0%, transparent 55%);
    background-repeat: no-repeat;
    margin: 0;
    padding-top: 1.75rem;
}
html[data-theme="night"] .escritores-page,
html[data-theme="night"] .escritor-space,
html[data-theme="night"] .libros-page,
html[data-theme="night"] .chat-salas-page,
html[data-theme="night"] .postales-clasicas-page[data-classics-view="index"] {
    background: linear-gradient(180deg, color-mix(in srgb, var(--sed-color) 14%, transparent) 0%, transparent 55%);
    background-repeat: no-repeat;
}
/* La Barra: sin degradado */
.barra-page:not(.libros-page) {
    background: none;
}
html[data-theme="night"] .barra-page:not(.libros-page) {
    background: none;
}
.sed-hero-inner { max-width: 640px; margin: 0 auto; }
.sed-hero-icon { margin-bottom: 1rem; color: var(--sed-color); display: flex; justify-content: center; }
.sed-hero-icon iconify-icon { display: block; color: inherit; }
.sed-badge { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sed-color); margin-bottom: 0.75rem; }
.sed-hero-title { font-family: 'Literata', Georgia, serif; font-size: clamp(1.75rem, 4.5vw, 2.75rem); font-weight: 600; line-height: 1.2; color: #1a1a1a; margin: 0 0 1rem; }
.sed-hero-lead { font-size: 1.1rem; line-height: 1.6; color: #555; margin: 0 0 1.75rem; }
.sed-cta-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.main-medium .servicios-editoriales-landing a.sed-cta,
.main-medium .servicios-editoriales-landing a.sed-cta:link,
.main-medium .servicios-editoriales-landing a.sed-cta:visited,
.main-medium .page-hero-landing a.sed-cta,
.main-medium .page-hero-landing a.sed-cta:link,
.main-medium .page-hero-landing a.sed-cta:visited,
.servicios-editoriales-landing a.sed-cta,
.servicios-editoriales-landing a.sed-cta:link,
.servicios-editoriales-landing a.sed-cta:visited,
.page-hero-landing a.sed-cta,
.page-hero-landing a.sed-cta:link,
.page-hero-landing a.sed-cta:visited {
    display: inline-flex !important;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: #fff !important;
    background: var(--sed-color) !important;
    border: none;
    border-radius: 8px;
    text-decoration: none !important;
    transition: background 0.2s, transform 0.15s;
    box-sizing: border-box;
}
.main-medium .servicios-editoriales-landing a.sed-cta:hover,
.main-medium .servicios-editoriales-landing a.sed-cta:focus,
.main-medium .page-hero-landing a.sed-cta:hover,
.main-medium .page-hero-landing a.sed-cta:focus,
.servicios-editoriales-landing a.sed-cta:hover,
.servicios-editoriales-landing a.sed-cta:focus,
.page-hero-landing a.sed-cta:hover,
.page-hero-landing a.sed-cta:focus {
    background: var(--sed-color-hover) !important;
    color: #fff !important;
    transform: translateY(-1px);
    text-decoration: none !important;
}
.servicios-editoriales-landing a.sed-cta:focus { outline: 2px solid var(--sed-color); outline-offset: 2px; }
.sed-cta-icon { font-size: 1.1em; color: inherit; }
.servicios-editoriales-landing a.sed-cta-large { padding: 0.9rem 1.75rem; font-size: 1.05rem; }

.sed-benefits { padding: 3rem 0; }
.sed-section-title { font-family: 'Literata', Georgia, serif; font-size: 1.5rem; font-weight: 600; color: #1a1a1a; margin: 0 0 2rem; text-align: center; }
.sed-benefits-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 640px) {
    .sed-benefits-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
    .sed-benefits-grid { grid-template-columns: repeat(4, 1fr); }
}
.sed-benefit-card {
    padding: 1.75rem;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    text-align: center;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.sed-benefit-card:hover {
    border-color: color-mix(in srgb, var(--sed-color) 30%, transparent);
    box-shadow: 0 4px 20px color-mix(in srgb, var(--sed-color) 12%, transparent);
}
.sed-benefit-icon { display: flex; justify-content: center; margin-bottom: 0.75rem; color: var(--sed-color); }
.sed-benefit-icon iconify-icon { display: block; color: inherit; }
.sed-benefit-card h3 { font-family: 'Literata', Georgia, serif; font-size: 1.15rem; font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; }
.sed-benefit-card p { font-size: 0.95rem; line-height: 1.5; color: #555; margin: 0; }

.sed-cta-block { padding: 3.5rem 1.5rem; background: var(--sed-color); color: #fff; text-align: center; }
.sed-cta-inner { max-width: 520px; margin: 0 auto; }
.sed-cta-title { font-family: 'Literata', Georgia, serif; font-size: 1.6rem; font-weight: 600; margin: 0 0 0.5rem; color: #fff; }
.sed-cta-text { font-size: 1rem; opacity: 0.95; margin: 0 0 1.5rem; color: #fff; }
.main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta,
.main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:link,
.main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:visited,
.servicios-editoriales-landing .sed-cta-block a.sed-cta,
.servicios-editoriales-landing .sed-cta-block a.sed-cta:link,
.servicios-editoriales-landing .sed-cta-block a.sed-cta:visited {
    background: #fff !important;
    color: var(--sed-color) !important;
}
.main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:hover,
.main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:focus,
.servicios-editoriales-landing .sed-cta-block a.sed-cta:hover,
.servicios-editoriales-landing .sed-cta-block a.sed-cta:focus {
    background: #f0f0f0 !important;
    color: var(--sed-color) !important;
}

html[data-theme="night"] .sed-admin-edit {
    background: color-mix(in srgb, var(--sed-color) 12%, #1c1c1c);
    border-color: color-mix(in srgb, var(--sed-color) 35%, transparent);
}
html[data-theme="night"] .sed-admin-url-label { color: #f0f0f0; }
html[data-theme="night"] .sed-admin-url-input {
    background: #1c1c1c;
    border-color: #444;
    color: #f0f0f0;
}
html[data-theme="night"] .sed-admin-url-hint { color: #aaa; }
html[data-theme="night"] .sed-hero-title,
html[data-theme="night"] .sed-section-title,
html[data-theme="night"] .sed-benefit-card h3 { color: #f0f0f0; }
html[data-theme="night"] .sed-hero-lead,
html[data-theme="night"] .sed-benefit-card p { color: #c8c8c8; }
html[data-theme="night"] .sed-benefit-card {
    background: #1c1c1c;
    border-color: #333;
}
html[data-theme="night"] .sed-benefit-card:hover {
    border-color: color-mix(in srgb, var(--sed-color) 35%, transparent);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
html[data-theme="night"] .main-medium .servicios-editoriales-landing a.sed-cta,
html[data-theme="night"] .main-medium .servicios-editoriales-landing a.sed-cta:link,
html[data-theme="night"] .main-medium .servicios-editoriales-landing a.sed-cta:visited,
html[data-theme="night"] .main-medium .servicios-editoriales-landing a.sed-cta:hover,
html[data-theme="night"] .main-medium .servicios-editoriales-landing a.sed-cta:focus,
html[data-theme="night"] .main-medium .page-hero-landing a.sed-cta,
html[data-theme="night"] .main-medium .page-hero-landing a.sed-cta:link,
html[data-theme="night"] .main-medium .page-hero-landing a.sed-cta:visited,
html[data-theme="night"] .main-medium .page-hero-landing a.sed-cta:hover,
html[data-theme="night"] .main-medium .page-hero-landing a.sed-cta:focus,
html[data-theme="night"] .servicios-editoriales-landing a.sed-cta,
html[data-theme="night"] .servicios-editoriales-landing a.sed-cta:visited,
html[data-theme="night"] .servicios-editoriales-landing a.sed-cta:hover,
html[data-theme="night"] .servicios-editoriales-landing a.sed-cta:focus,
html[data-theme="night"] .page-hero-landing a.sed-cta,
html[data-theme="night"] .page-hero-landing a.sed-cta:visited,
html[data-theme="night"] .page-hero-landing a.sed-cta:hover,
html[data-theme="night"] .page-hero-landing a.sed-cta:focus {
    color: #fff !important;
}
html[data-theme="night"] .main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta,
html[data-theme="night"] .main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:link,
html[data-theme="night"] .main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:visited,
html[data-theme="night"] .main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:hover,
html[data-theme="night"] .main-medium .servicios-editoriales-landing .sed-cta-block a.sed-cta:focus,
html[data-theme="night"] .servicios-editoriales-landing .sed-cta-block a.sed-cta,
html[data-theme="night"] .servicios-editoriales-landing .sed-cta-block a.sed-cta:visited,
html[data-theme="night"] .servicios-editoriales-landing .sed-cta-block a.sed-cta:hover,
html[data-theme="night"] .servicios-editoriales-landing .sed-cta-block a.sed-cta:focus {
    color: var(--sed-color) !important;
}

/* ========== Servicios (canje + editoriales) ========== */
.servicios-page { padding: 2rem 0 4rem; }
.servicios-page .container-medium { max-width: 960px; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
.servicios-header { text-align: center; margin-bottom: 2.5rem; }
.servicios-title { font-family: 'Literata', Georgia, serif; font-size: clamp(1.6rem, 4vw, 2.25rem); font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; }
.servicios-lead { font-size: 1.05rem; color: #555; margin: 0; max-width: 560px; margin-left: auto; margin-right: auto; }
.servicios-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; border-bottom: 2px solid #e8e8e8; }
.servicios-tab { padding: 0.5rem 1rem; font-size: 0.95rem; text-decoration: none; color: #555; border-bottom: 3px solid transparent; margin-bottom: -2px; font-weight: 500; }
.servicios-tab:hover { color: #1a1a1a; }
.servicios-tab.servicios-tab-active { color: var(--turquesa-oscuro, #0d7377); border-bottom-color: var(--turquesa-oscuro, #0d7377); }
.servicios-contabilidad-saldo { margin: 0 0 1rem; font-size: 1rem; color: #333; }
.servicios-contabilidad-empty { color: #666; font-size: 0.95rem; margin: 0; }
.servicios-contabilidad-table-wrap { overflow-x: auto; margin-top: 0.5rem; }
.servicios-contabilidad-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.servicios-contabilidad-table th,
.servicios-contabilidad-table td { padding: 0.5rem 0.75rem; text-align: left; border-bottom: 1px solid #eee; vertical-align: top; }
.servicios-contabilidad-table th { background: #f5f5f5; font-weight: 600; color: #333; }
.servicios-contabilidad-table tbody tr:hover { background: #fafafa; }
.servicios-contabilidad-puntos { font-weight: 600; white-space: nowrap; }
.servicios-contabilidad-puntos-pos { color: #0d7377; }
.servicios-contabilidad-puntos-neg { color: #c62828; }
.servicios-section { margin-bottom: 3rem; }
.servicios-section-title { font-family: 'Literata', Georgia, serif; font-size: 1.35rem; font-weight: 600; color: #1a1a1a; margin: 0 0 1.25rem; padding-bottom: 0.5rem; border-bottom: 1px solid #eee; }
.servicios-premiacion-lead { margin-bottom: 1.5rem; color: #555; }
.servicios-premiacion-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.servicios-premiacion-card { background: #fafafa; border: 1px solid #eee; border-radius: 8px; padding: 1rem; }
.servicios-premiacion-header { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.servicios-premiacion-title { font-size: 1rem; margin: 0; }
.servicios-premiacion-zona { font-size: 0.8rem; color: #666; }
.servicios-premiacion-pts { font-size: 0.8rem; color: var(--accent, #ff9800); }
.servicios-premiacion-badge { font-size: 0.75rem; color: #2e7d32; }
.servicios-premiacion-como, .servicios-premiacion-obtiene { font-size: 0.9rem; margin: 0.5rem 0 0; }
.servicios-tinta-dorada { background: linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%); border: 1px solid #ffc107; border-radius: 8px; padding: 1.25rem; }
.servicios-tinta-dorada-title { margin: 0 0 0.5rem; font-size: 1.2rem; }
.servicios-tinta-dorada-como, .servicios-tinta-dorada-obtiene { margin: 0.35rem 0; font-size: 0.95rem; }
.servicios-policy-list { margin: 0; padding-left: 1.25rem; color: #555; line-height: 1.65; font-size: 0.95rem; }
.servicios-policy-list li { margin-bottom: 0.5rem; }
.servicios-saldo { font-size: 1rem; margin: 0 0 1rem; padding: 0.6rem 1rem; background: #f0f9f8; border-radius: 8px; border: 1px solid #b8d9d4; color: #1a5c54; }
.servicios-msg { padding: 0.75rem 1rem; border-radius: 8px; margin: 0 0 1rem; font-size: 0.95rem; }
.servicios-msg-ok { background: #e8f5e9; border: 1px solid #a5d6a7; color: #2e7d32; }
.servicios-msg-error { background: #ffebee; border: 1px solid #ef9a9a; color: #c62828; }
.servicios-catalog-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .servicios-catalog-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); } }
.servicios-card { padding: 1.25rem; border: 1px solid #eee; border-radius: 10px; background: #fff; }
.servicios-card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; margin-bottom: 0.5rem; }
.servicios-card-title { font-size: 1.05rem; font-weight: 600; color: #1a1a1a; margin: 0; line-height: 1.3; }
.servicios-card-puntos { font-size: 1rem; font-weight: 700; color: #1a5c54; white-space: nowrap; }
.servicios-card-desc { font-size: 0.9rem; color: #555; line-height: 1.45; margin: 0 0 0.75rem; }
.servicios-card-nivel { font-size: 0.8rem; color: #888; margin: 0 0 0.5rem; }
.servicios-card-form { margin-top: 0.75rem; }
.servicios-card-notes { display: block; margin-bottom: 0.5rem; }
.servicios-card-notes-input { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #ddd; border-radius: 6px; font-size: 0.9rem; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.servicios-card-notes-input::placeholder { color: #999; }
.servicios-card-notes-input:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }
.btn-canje { margin-top: 0.35rem; background: #1a5c54; color: #fff; cursor: pointer; }
.btn-canje:hover { background: #0d3d38; color: #fff; }
.btn-canje-inactive { background: #ccc; color: #888; cursor: not-allowed; opacity: 0.7; }
.btn-canje-inactive:hover { background: #ccc; color: #888; }
.servicios-card-insufficient { font-size: 0.85rem; color: #888; margin: 0.5rem 0 0; }
.servicios-card-login { font-size: 0.9rem; margin: 0.75rem 0 0; }
.servicios-card-login a { color: var(--turquesa-oscuro, #ff9800); }
.servicios-mis-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.servicios-mis-item { display: grid; grid-template-columns: 1fr auto auto auto auto; gap: 0.75rem; align-items: center; padding: 0.6rem 0.75rem; background: #f8f9fa; border-radius: 6px; font-size: 0.9rem; }
@media (max-width: 600px) { .servicios-mis-item { grid-template-columns: 1fr auto; } .servicios-mis-recibo { grid-column: 1 / -1; } }
.servicios-mis-recibo { font-size: 0.85rem; color: #1a5c54; text-decoration: none; white-space: nowrap; }
.servicios-mis-recibo:hover { text-decoration: underline; }
.servicios-mis-nombre { font-weight: 500; color: #1a1a1a; }
.servicios-mis-puntos { color: #1a5c54; font-weight: 600; }
.servicios-mis-estado { font-size: 0.8rem; text-transform: lowercase; padding: 0.2rem 0.5rem; border-radius: 4px; background: #eee; color: #555; }
.servicios-mis-estado-pendiente { background: #fff3e0; color: #e65100; }
.servicios-mis-estado-en_proceso { background: #e3f2fd; color: #1565c0; }
.servicios-mis-estado-completado { background: #e8f5e9; color: #2e7d32; }
.servicios-mis-fecha { font-size: 0.85rem; color: #888; }
.servicios-editoriales-lead { font-size: 1rem; color: #555; margin: 0 0 1rem; }
.servicios-cta-external { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem; }
.servicios-links-title { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; margin: 1rem 0 0.75rem; }
.servicios-links-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.servicios-link-item { display: block; padding: 0.75rem 1rem; background: #f8f9fa; border: 1px solid #eee; border-radius: 8px; text-decoration: none; color: #1a1a1a; transition: border-color 0.2s; }
.servicios-link-item:hover { border-color: var(--turquesa-oscuro, #ff9800); }
.servicios-link-item strong { display: block; font-size: 0.95rem; margin-bottom: 0.2rem; color: #1a5c54; }
.servicios-link-item span { font-size: 0.88rem; color: #666; line-height: 1.4; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ========== Tienda de libros ========== */
.libros-page { padding: 1.75rem 0 4rem; }
.libros-page.barra-page { padding-top: 1.75rem; }
/* Mismo ancho de contenedor que La Barra */
.libros-page.barra-page .barra-container { max-width: 72rem; }

/* Aliados de la librería: columna derecha con scroll propio */
.editoriales-aliadas {
  margin: 1.5rem 0 0;
  padding: 0;
  border: 0;
}
.editoriales-aliadas-inner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
}
.editoriales-aliadas-title {
  margin: 0 0 0.2rem;
  font-size: 1.1rem;
  line-height: 1.25;
}
.editoriales-aliadas-lead {
  margin: 0 0 0.65rem;
  color: #666;
  font-size: 0.85rem;
}
.editoriales-aliadas-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.editorial-aliada-card-link {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0.65rem;
  align-items: start;
  padding: 0.65rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: #fafafa;
  min-height: 100%;
  transition: border-color 0.15s ease, background 0.15s ease;
}
a.editorial-aliada-card-link:hover {
  border-color: rgba(224, 112, 32, 0.45);
  background: #fff;
}
.editorial-aliada-photo {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  background: #eee;
  flex-shrink: 0;
}
.editorial-aliada-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.editorial-aliada-photo-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 1.35rem;
}
.editorial-aliada-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.editorial-aliada-nombre {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.25;
}
.editorial-aliada-desc {
  font-size: 0.8rem;
  color: #555;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.editorial-aliada-url {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--accent, #e07020);
  margin-top: 0.1rem;
}
.editoriales-aliadas-empty {
  margin: 0;
  color: #666;
  font-size: 0.9rem;
  line-height: 1.45;
}
.editoriales-aliadas-admin {
  margin: 0.75rem 0 0;
}
html[data-theme="night"] .editoriales-aliadas-empty { color: #aaa; }
html[data-theme="night"] .editoriales-aliadas-lead,
html[data-theme="night"] .editorial-aliada-desc { color: #aaa; }
html[data-theme="night"] .editorial-aliada-card-link {
  background: #1a1a1a;
  border-color: #333;
}
html[data-theme="night"] a.editorial-aliada-card-link:hover {
  background: #222;
  border-color: rgba(255, 183, 77, 0.45);
}
html[data-theme="night"] .editorial-aliada-photo,
html[data-theme="night"] .editorial-aliada-photo-ph { background: #222; }

@media (max-width: 959px) {
  .libros-page .editoriales-aliadas {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eee;
    max-height: 22rem;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  html[data-theme="night"] .libros-page .editoriales-aliadas { border-color: #333; }
}

.libros-container { width: 100%; max-width: 1200px; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
.libros-header { text-align: center; margin-bottom: 2rem; }
.libros-header-icon { margin-bottom: 0.75rem; color: var(--turquesa-oscuro, #ff9800); display: flex; justify-content: center; }
.libros-header-icon iconify-icon { display: block; color: inherit; }
.libros-header h1 { font-family: 'Literata', Georgia, serif; font-size: 1.75rem; color: #1a1a1a; margin: 0 0 0.5rem; }
.libros-intro { color: #666; font-size: 1rem; margin: 0; }
.libros-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
    width: 100%;
}
@media (min-width: 640px) {
    .libros-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
    /* Misma grilla de 3 columnas que La Barra (.prueba-cards-fotos-grid) */
    .barra-main .libros-grid,
    .libros-page .barra-main .libros-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.5rem;
    }
}
.libro-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    transition: box-shadow 0.2s;
    display: flex;
    flex-direction: column;
    cursor: pointer;
}
.libro-card:hover { box-shadow: 0 4px 16px rgba(13, 115, 119, 0.12); }
.libro-card[hidden] { display: none !important; }
.libro-card-cover {
    aspect-ratio: 2 / 3;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 auto;
}
.libro-card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.libro-card-placeholder { font-size: 3rem; opacity: 0.5; }
.libro-card-body {
    padding: 0.7rem 0.75rem 0.85rem;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
a.libro-card-link {
    color: inherit;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
a.libro-card-link:hover { color: inherit; }
.escritor-libros-grid { margin-top: 0.5rem; }
.escritor-libros-actions { margin: 0.75rem 0 0; }
.escritor-libros .libro-card { cursor: default; }
.escritor-libros .libro-card-buy { padding: 0 0.75rem 0.85rem; margin-top: 0; }
.libro-title {
    font-family: 'Literata', Georgia, serif;
    font-size: 0.92rem;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
    color: #1a1a1a;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.libro-author { font-size: 0.8rem; color: var(--turquesa-oscuro, #0d7377); margin: 0; font-weight: 600; }
.libro-genre { font-size: 0.72rem; color: #888; margin: 0; }
.libro-vendor { font-size: 0.75rem; color: #666; margin: 0; }
.libro-price { font-size: 0.95rem; font-weight: 700; color: #1a1a1a; margin: 0.25rem 0 0; }

.libro-prices {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-weight: 600;
}
.libro-price-line { display: block; font-size: 0.9rem; }
.libro-card-buy { margin-top: 0.65rem; position: relative; }
.libro-buy-toggle { width: 100%; }
.libro-buy-panel {
  margin-top: 0.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: #fafafa;
}
.libro-buy-panel-label,
.libro-buy-edition-label {
  margin: 0.35rem 0 0.25rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #666;
}
.libro-buy-panel-label:first-child,
.libro-buy-edition:first-child .libro-buy-edition-label { margin-top: 0; }
.libro-buy-links { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.libro-buy-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.7rem;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
}
.libro-buy-link--wa { background: #25d366; }
.libro-buy-link--wa:hover { background: #1ebe57; color: #fff; }
.libro-buy-link--tg { background: #229ed9; }
.libro-buy-link--tg:hover { background: #1b8dc2; color: #fff; }
.libro-detail-prices { margin: 0.5rem 0 0; }
.libro-detail-buy {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eee;
}
.libro-buy-hint {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  color: #888;
  line-height: 1.4;
}
.libros-buy-setup-hint {
  margin: 0 0 1rem;
}
.libros-buy-setup-hint a { font-weight: 700; }
.libro-buy-edition { margin-bottom: 0.65rem; }
.libro-buy-edition:last-child { margin-bottom: 0; }
.admin-libros-purchase-phone { margin-bottom: 1.25rem; }
.admin-libros-phone-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: flex-end;
}
.admin-libros-phone-form label { flex: 1 1 220px; margin: 0; }

.libro-card .item-actions { margin-top: 0.45rem; }
.libros-empty { text-align: center; color: #666; padding: 3rem 1rem; grid-column: 1 / -1; }
.libro-subtitle { font-size: 0.85rem; color: #666; margin: 0 0 0.2rem; font-style: italic; }
.libro-isbn { font-size: 0.75rem; color: #888; margin: 0.2rem 0 0; letter-spacing: 0.02em; }
.libro-detail-modal .modal-box.libro-ficha-box { max-width: 640px; padding: 1.5rem 1.5rem 1.75rem; }
.libro-ficha {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 1.25rem 1.5rem;
}
.libro-ficha-cover {
    grid-row: 1 / span 1;
    border-radius: 6px;
    overflow: hidden;
    background: #f0f0f0;
    aspect-ratio: 2 / 3;
    max-height: 210px;
}
.libro-ficha-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.libro-ficha-main { min-width: 0; }
.libro-ficha-publisher {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent, #ff9800);
}
.libro-detail-title { font-family: 'Literata', Georgia, serif; font-size: 1.35rem; margin: 0 0 0.25rem; color: #1a1a1a; line-height: 1.25; }
.libro-ficha-subtitle { margin: 0 0 0.65rem; font-size: 0.95rem; color: #666; font-style: italic; }
.libro-detail-author { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.libro-detail-author-photo { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: #eee; }
.libro-detail-author-photo img { width: 100%; height: 100%; object-fit: cover; }
.libro-detail-author-name { font-size: 1rem; color: var(--accent); font-weight: 600; }
.libro-ficha-meta {
    display: grid;
    gap: 0.35rem 1rem;
    margin: 0 0 0.85rem;
    padding: 0.75rem 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}
.libro-ficha-meta-row { display: grid; grid-template-columns: 5.5rem 1fr; gap: 0.5rem; font-size: 0.88rem; }
.libro-ficha-meta-row dt { margin: 0; color: #888; font-weight: 600; }
.libro-ficha-meta-row dd { margin: 0; color: #333; }
.libro-detail-price { font-size: 1.15rem; font-weight: 700; margin: 0; color: #1a1a1a; }
.libro-ficha-body { grid-column: 1 / -1; }
.libro-ficha-section-title {
    font-family: 'Literata', Georgia, serif;
    font-size: 1rem;
    margin: 0 0 0.5rem;
    color: #1a1a1a;
}
.libro-ficha-synopsis-text {
    font-size: 0.95rem;
    line-height: 1.55;
    color: #444;
    white-space: pre-wrap;
}
.libro-ficha-review {
    margin: 1.25rem 0 0;
    padding: 1rem 1.15rem 1rem 1.25rem;
    border-left: 3px solid var(--accent, #ff9800);
    background: var(--turquesa-sutil, #fff3e0);
    border-radius: 0 8px 8px 0;
}
.libro-ficha-review-text {
    margin: 0;
    font-family: 'Literata', Georgia, serif;
    font-size: 1.05rem;
    font-style: italic;
    line-height: 1.45;
    color: #1a1a1a;
}
.libro-ficha-review-author {
    margin-top: 0.65rem;
    font-size: 0.85rem;
    font-weight: 700;
    font-style: normal;
    color: #555;
}
.book-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}
.book-form-publisher {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: #666;
}
.book-form-review {
    margin: 0.5rem 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid #eee;
    border-radius: 8px;
}
.book-form-review legend {
    padding: 0 0.35rem;
    font-weight: 600;
    font-size: 0.9rem;
}
@media (max-width: 560px) {
    .libro-ficha { grid-template-columns: 1fr; }
    .libro-ficha-cover { max-width: 160px; margin: 0 auto; }
    .book-form-row { grid-template-columns: 1fr; }
}
html[data-theme="night"] .libro-subtitle,
html[data-theme="night"] .libro-isbn { color: #aaa; }
html[data-theme="night"] .libro-detail-title,
html[data-theme="night"] .libro-ficha-section-title,
html[data-theme="night"] .libro-detail-price,
html[data-theme="night"] .libro-ficha-review-text { color: #f0f0f0; }
html[data-theme="night"] .libro-ficha-subtitle,
html[data-theme="night"] .libro-ficha-synopsis-text,
html[data-theme="night"] .libro-ficha-meta-row dd,
html[data-theme="night"] .libro-ficha-review-author,
html[data-theme="night"] .book-form-publisher { color: #ccc; }
html[data-theme="night"] .libro-ficha-meta { border-color: #333; }
html[data-theme="night"] .libro-ficha-meta-row dt { color: #888; }
html[data-theme="night"] .libro-ficha-cover { background: #1a1a1a; }
html[data-theme="night"] .libro-ficha-review { background: rgba(255, 183, 77, 0.1); }
html[data-theme="night"] .book-form-review { border-color: #444; }

.libro-detail-modal .modal-box { max-width: 420px; }
.libro-detail-title { font-family: 'Literata', Georgia, serif; font-size: 1.2rem; margin: 0 0 0.75rem; color: #1a1a1a; }
.libro-detail-author { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.libro-detail-author-photo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: #eee; }
.libro-detail-author-photo img { width: 100%; height: 100%; object-fit: cover; }
.libro-detail-author-name { font-size: 0.95rem; color: var(--accent); font-weight: 600; }
.libro-detail-genre { font-size: 0.9rem; color: #555; margin: 0 0 0.25rem; }
.libro-detail-price { font-size: 1rem; font-weight: 600; margin: 0; }
.libro-form-author-type { margin: 0.75rem 0; padding: 0.5rem 0; border: none; }
.libro-form-author-type legend { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.35rem; }
.libro-form-author-type label { display: block; margin: 0.35rem 0; font-size: 0.9rem; }
.libro-author-wrap { margin-bottom: 0.5rem; }
html[data-theme="night"] .libro-card {
    background: #242424;
    border-color: #3a3a3a;
}
html[data-theme="night"] .libro-title { color: #f0f0f0; }
html[data-theme="night"] .libro-price { color: #f0f0f0; }
html[data-theme="night"] .libro-buy-panel {
  background: #1a1a1a;
  border-color: #333;
}
html[data-theme="night"] .libro-buy-panel-label,
html[data-theme="night"] .libro-buy-edition-label { color: #999; }
html[data-theme="night"] .libro-detail-buy { border-color: #333; }
html[data-theme="night"] .libro-card-cover { background: #1a1a1a; }

/* ========== Estadísticas (panel admin) ========== */
.estadisticas-page { padding: 2rem 0 4rem; }
.estadisticas-container { width: 100%; max-width: 900px; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
.estadisticas-header { text-align: center; margin-bottom: 2rem; }
.estadisticas-header-icon { margin-bottom: 0.75rem; color: var(--turquesa-oscuro, #ff9800); display: flex; justify-content: center; }
.estadisticas-header-icon iconify-icon { display: block; color: inherit; }
.estadisticas-header h1 { font-family: 'Literata', Georgia, serif; font-size: 1.75rem; color: #1a1a1a; margin: 0 0 0.5rem; }
.estadisticas-intro { color: #666; font-size: 1rem; margin: 0; }
.estadisticas-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); margin-bottom: 2.5rem; }
.stats-card { background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 1rem; text-align: center; box-shadow: 0 2px 6px rgba(0,0,0,0.04); }
.stats-card-value { display: block; font-size: 1.75rem; font-weight: 700; color: var(--turquesa-oscuro, #ff9800); font-family: 'Literata', Georgia, serif; line-height: 1.2; }
.stats-card-label { display: block; font-size: 0.8rem; color: #666; margin-top: 0.25rem; }
.estadisticas-chart-section { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid #eee; }
.estadisticas-chart-title { font-size: 1.1rem; color: #1a1a1a; margin: 0 0 1rem; }
.stats-chart { display: flex; flex-direction: column; gap: 0.75rem; }
.stats-chart-row { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.stats-chart-label { flex: 0 0 80px; font-size: 0.9rem; color: #555; }
.stats-chart-bar-wrap { flex: 1; min-width: 120px; display: flex; align-items: center; gap: 0.5rem; }
.stats-chart-bar { height: 24px; background: linear-gradient(90deg, var(--turquesa-sutil, #fff3e0) 0%, var(--turquesa-oscuro, #ff9800) 100%); border-radius: 4px; min-width: 4px; transition: width 0.3s ease; }
.stats-chart-value { font-size: 0.9rem; font-weight: 600; color: #1a1a1a; min-width: 2ch; }

/* ========== Autores (mismo esquema de cards que libros) ========== */
.autores-page { padding: 2rem 0 4rem; }
.autores-container { width: 100%; max-width: 1200px; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
.autores-header { text-align: center; margin-bottom: 2rem; }
.autores-header-icon { margin-bottom: 0.75rem; color: var(--turquesa-oscuro, #ff9800); display: flex; justify-content: center; }
.autores-header-icon iconify-icon { display: block; color: inherit; }
.autores-header h1 { font-family: 'Literata', Georgia, serif; font-size: 1.75rem; color: #1a1a1a; margin: 0 0 0.5rem; }
.autores-intro { color: #666; font-size: 1rem; margin: 0; }
.autores-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
@media (min-width: 640px) { .autores-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); } }
.autor-card { background: #fff; border: 1px solid #eee; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.04); transition: box-shadow 0.2s; }
.autor-card:hover { box-shadow: 0 4px 16px rgba(255, 152, 0, 0.1); }
.autor-card-cover { position: relative; aspect-ratio: 2/3; background: #f0f0f0; overflow: hidden; }
.autor-card-cover img.autor-card-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; display: block; }
.autor-card-cover .autor-card-placeholder { position: absolute; inset: 0; font-size: 3rem; opacity: 0.5; display: flex; align-items: center; justify-content: center; z-index: 0; }
.autor-card-placeholder { font-size: 3rem; opacity: 0.5; display: flex; align-items: center; justify-content: center; }
.autor-card-initial { background: var(--turquesa-sutil, #fff3e0); }
.autor-card-initial .autor-initial { font-size: 3rem; font-weight: 600; color: var(--turquesa-oscuro, #ff9800); font-family: var(--fuente-titulo); }
.autor-card-body { padding: 0.85rem; }
.autor-nombre { font-family: 'Literata', Georgia, serif; font-size: 0.95rem; font-weight: 600; margin: 0 0 0.25rem; line-height: 1.3; color: #1a1a1a; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.autor-articulos { font-size: 0.8rem; color: var(--accent); margin: 0; }
.autor-stats { font-size: 0.8rem; color: var(--accent); margin: 0; }
.autor-stats-sep { margin: 0 0.35rem; opacity: 0.7; }
.autor-card-badges { list-style: none; padding: 0; margin: 0.5rem 0 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.autor-card-badge { font-size: 0.7rem; padding: 0.2rem 0.45rem; border-radius: 4px; background: #fff3e0; color: #e65100; font-weight: 600; white-space: nowrap; }
.autor-card-ficha-link { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; flex-shrink: 0; margin: 0.5rem 0.85rem 0.85rem; padding: 0; font-family: inherit; color: var(--accent, #ff9800); border: 1px solid rgba(255, 152, 0, 0.4); border-radius: 6px; background: transparent; cursor: pointer; transition: background 0.2s, color 0.2s; }
.autor-card-ficha-link:hover { background: #fff3e0; color: #e65100; }
.autor-card-ficha-link iconify-icon { display: block; }
.autor-empresa { font-size: 0.8rem; color: var(--accent); margin: 0 0 0.2rem; }
.autor-bio { font-size: 0.75rem; color: #888; margin: 0 0 0.35rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.autores-empty { text-align: center; color: #666; padding: 3rem 1rem; }
.btn-add-autor-icon { flex-shrink: 0; }
.autor-card { position: relative; }
.autor-card-link { display: block; text-decoration: none; color: inherit; }
.autor-card-link:hover { color: inherit; }
.autor-card-actions { padding: 0 0.85rem 0.85rem; display: flex; gap: 0.5rem; }
.autor-form-titles-wrap { margin: 0.5rem 0; }
.autor-form-titles-wrap .admin-file-field-label { display: block; font-weight: 600; margin-bottom: 0.5rem; font-size: 0.9rem; }
#autor-form-titles-list { margin-bottom: 0.5rem; }
.autor-form-title-row { display: flex; gap: 0.5rem; margin-bottom: 0.5rem; align-items: center; }
.modal-box .autor-form-titles-wrap .autor-form-title-row input[type="text"] { flex: 1; min-width: 8rem; width: auto; }
.modal-box .autor-form-titles-wrap .autor-form-title-row input[type="number"] { width: 5rem; min-width: 5rem; flex-shrink: 0; max-width: 5rem; }
.btn-add-title { padding: 0.35rem 0.75rem; font-size: 0.9rem; background: #eee; border: 1px solid #ddd; border-radius: 4px; cursor: pointer; font-family: inherit; }
.btn-add-title:hover { background: #e0e0e0; }
.btn-remove-title { width: 1.75rem; height: 1.75rem; padding: 0; border: none; background: #ffebee; color: #c62828; border-radius: 4px; cursor: pointer; font-size: 1.1rem; line-height: 1; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.btn-remove-title:hover { background: #ffcdd2; }

/* ========== Ficha detalle del autor ========== */
.autor-ficha-page { padding: 2rem 0 4rem; }
.autor-ficha-container { max-width: 800px; margin: 0 auto; padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px)); box-sizing: border-box; }
.autor-ficha-back { display: inline-block; margin-bottom: 1.5rem; color: var(--accent); text-decoration: none; font-size: 0.95rem; }
.autor-ficha-back:hover { text-decoration: underline; }
.autor-ficha-header { display: flex; gap: 2rem; margin-bottom: 2rem; flex-wrap: wrap; }
.autor-ficha-photo { flex-shrink: 0; width: 160px; aspect-ratio: 2/3; background: #f0f0f0; border-radius: 12px; overflow: hidden; }
.autor-ficha-photo img { width: 100%; height: 100%; object-fit: cover; }
.autor-ficha-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 4rem; opacity: 0.5; }
.autor-ficha-info { flex: 1; min-width: 0; }
.autor-ficha-info h1, .autor-nombre-display { font-family: 'Literata', Georgia, serif; font-size: 1.75rem; color: #1a1a1a; margin: 0 0 0.25rem; display: block; }
.autor-ficha-empresa { font-size: 1rem; color: var(--accent); margin: 0 0 0.5rem; }
.autor-ficha-actions { margin-top: 0.75rem; }
.autor-ficha-bio h2, .autor-ficha-titles h2 { font-family: 'Literata', Georgia, serif; font-size: 1.15rem; margin: 0 0 0.75rem; color: #1a1a1a; }
.autor-ficha-bio p, .autor-ficha-titles-list { margin: 0 0 1.5rem; color: #444; line-height: 1.6; }
.autor-ficha-titles-list { list-style: none; padding: 0; margin: 0; }
.autor-ficha-titles-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.35rem 0; border-bottom: 1px solid #eee; }
.autor-ficha-titles-list li:last-child { border-bottom: none; }
.autor-ficha-title-text { flex: 1; }
.autor-ficha-title-year { font-weight: 600; color: var(--accent); flex-shrink: 0; }
.autor-ficha-titles-empty { margin: 0 0 1rem; color: #666; font-size: 0.95rem; }
.autor-ficha-premios h2, .autor-ficha-canjes h2 { font-family: 'Literata', Georgia, serif; font-size: 1.15rem; margin: 0 0 0.75rem; color: #1a1a1a; }
.autor-ficha-premios-list, .autor-ficha-canjes-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.autor-ficha-premios-list li, .autor-ficha-canjes-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding: 0.5rem 0; border-bottom: 1px solid #eee; }
.autor-ficha-premios-list li:last-child, .autor-ficha-canjes-list li:last-child { border-bottom: none; }
.autor-ficha-premio-nombre, .autor-ficha-canje-nombre { font-weight: 600; flex: 1; min-width: 0; }
.autor-ficha-premio-fecha, .autor-ficha-canje-fecha { font-size: 0.9rem; color: #666; }
.autor-ficha-canje-puntos { font-weight: 600; color: var(--accent); }
.autor-ficha-canje-estado { font-size: 0.85rem; padding: 0.15rem 0.5rem; border-radius: 4px; background: #f0f0f0; color: #555; }
.autor-ficha-canje-estado-completado { background: #e8f5e9; color: #2e7d32; }
.autor-ficha-canje-estado-pendiente { background: #fff3e0; color: #e65100; }

/* Modal ficha autor (página Autores) */
.autor-ficha-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.autor-ficha-modal[hidden] { display: none !important; }
.autor-ficha-modal.is-open { display: flex !important; }
.autor-ficha-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.5); cursor: pointer; }
.autor-ficha-modal-box { position: relative; z-index: 1; width: 100%; max-width: 560px; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; background: #fff; border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.25); }
.autor-ficha-modal-close { position: absolute; top: 0.5rem; right: 0.5rem; z-index: 2; width: 2.25rem; height: 2.25rem; padding: 0; border: none; background: rgba(255,255,255,0.9); font-size: 1.5rem; line-height: 1; color: #666; cursor: pointer; border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,0.1); }
.autor-ficha-modal-close:hover { background: #fff; color: #333; }
.autor-ficha-modal-content { overflow-y: auto; padding: 1.5rem; -webkit-overflow-scrolling: touch; }
.autor-ficha-modal-inner .autor-ficha-header { margin-bottom: 1.25rem; }
.autor-ficha-modal-inner .autor-ficha-photo { width: 120px; }
.autor-ficha-modal-inner .autor-nombre-display { font-size: 1.35rem; }
.autor-ficha-modal-inner .autor-ficha-bio h3,
.autor-ficha-modal-inner .autor-ficha-titles h3,
.autor-ficha-modal-inner .autor-ficha-premios h3,
.autor-ficha-modal-inner .autor-ficha-canjes h3 { font-family: 'Literata', Georgia, serif; font-size: 1.1rem; margin: 0 0 0.5rem; color: #1a1a1a; }
.autor-ficha-modal-loading,
.autor-ficha-modal-error { text-align: center; color: #666; padding: 2rem; margin: 0; }

/* Prueba cards freehand */
.prueba-cards-page { padding: 2rem 0 4rem; }
.prueba-cards-header { text-align: center; margin-bottom: 2.5rem; }
.prueba-cards-title { font-family: 'Literata', Georgia, serif; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; }
.prueba-cards-intro { color: #666; font-size: 1rem; margin: 0; }
.prueba-cards-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.prueba-card { background: var(--blanco-hueso, #fcfbf9); border: 1px solid #e8e6e3; border-radius: 16px; padding: 1.75rem; box-shadow: 0 2px 12px rgba(0,0,0,0.04); transition: box-shadow 0.2s, border-color 0.2s; }
.prueba-card:hover { box-shadow: 0 6px 24px rgba(255, 152, 0, 0.08); border-color: #ddd; }
.prueba-card-icon { width: 48px; height: 48px; margin-bottom: 1rem; color: var(--turquesa-oscuro, #ff9800); }
.prueba-card-icon .icon-freehand { width: 100%; height: 100%; }
.prueba-card-icon-streamline iconify-icon { color: inherit; display: block; }
.prueba-cards-footer { margin-top: 2rem; font-size: 0.9rem; color: #666; }
.prueba-cards-footer a { color: var(--turquesa-oscuro, #ff9800); }
.prueba-cards-footer code { background: #eee; padding: 0.15rem 0.4rem; border-radius: 4px; font-size: 0.85em; }
.prueba-card-title { font-family: 'Literata', Georgia, serif; font-size: 1.15rem; font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; }
.prueba-card-text { font-size: 0.95rem; color: #555; line-height: 1.5; margin: 0; }

/* Prueba cards con fotos apaisadas (misma diagramación que cards con iconos) */
.prueba-cards-fotos-page { padding: 2rem 0 4rem; }
.prueba-cards-fotos-header { text-align: center; margin-bottom: 2.5rem; }
.prueba-cards-fotos-title { font-family: 'Literata', Georgia, serif; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; }
.prueba-cards-fotos-intro { color: #666; font-size: 1rem; margin: 0; }
.prueba-cards-fotos-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.prueba-cards-fotos-grid.escritor-blog-grid > .escritor-blog-card--destacado {
    order: -1;
}
.prueba-card-foto { background: var(--blanco-hueso, #fcfbf9); border: 1px solid #e8e6e3; border-radius: 16px; padding: 1rem 1rem 0.5rem 1rem; box-shadow: 0 2px 12px rgba(0,0,0,0.04); transition: box-shadow 0.2s, border-color 0.2s; }
.prueba-card-foto:hover { box-shadow: 0 6px 24px rgba(255, 152, 0, 0.08); border-color: #ddd; }
.prueba-card-foto-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.5rem; margin-bottom: 1rem; }
.prueba-card-foto-head .prueba-card-foto-img { margin-bottom: 0; }
.prueba-card-foto-img { width: 160px; height: 96px; flex-shrink: 0; margin-bottom: 1rem; border-radius: 8px; overflow: hidden; background: #eee; }
.prueba-card-foto-img img { width: 100%; height: 100%; object-fit: cover; }
.prueba-card-foto-byline { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; align-self: flex-end; gap: 0.15rem; }
.prueba-card-foto-author { font-size: 0.8rem; color: #333; font-weight: 500; }
.prueba-card-foto-date { font-size: 0.8rem; color: #999; }
.prueba-card-foto-head > .prueba-card-foto-date { flex-shrink: 0; align-self: flex-end; }
.blog-categories { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.blog-cat-link { padding: 0.35rem 0.75rem; font-size: 0.9rem; text-decoration: none; color: #555; border-radius: 6px; border: 1px solid #e0e0e0; background: #fafafa; }
.blog-cat-link:hover { background: #f0f0f0; color: #1a1a1a; }
.blog-cat-link.blog-cat-link-active { background: var(--turquesa-oscuro, #0d7377); color: #fff; border-color: var(--turquesa-oscuro, #0d7377); }
.prueba-card-foto-category { font-size: 0.75rem; color: #0d7377; font-weight: 500; }
.prueba-card-foto-puntos { font-size: 0.85rem; color: #1a5c54; font-weight: 600; margin: 0.25rem 0 0; }
.prueba-card-foto-title { font-family: 'Literata', Georgia, serif; font-size: 1.15rem; font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; }
.prueba-card-foto-text { font-size: 0.95rem; color: #555; line-height: 1.5; margin: 0; }

/* Admin (mismo layout que el sitio) */
.admin-unified { padding-block: 1.25rem 2.75rem; }
.admin-unified-header { margin-bottom: 0.75rem; }
.admin-unified-lead { margin: 0 0 1rem; color: #666; max-width: 36rem; }
.admin-unified-tabs { margin-bottom: 1.35rem; }
.admin-unified-panel .estadisticas-page { padding: 0; }
.admin-unified-panel .admin-usuarios,
.admin-unified-panel .admin-concursos { padding-block: 0 1rem; }
.admin-unified-panel .admin-card { margin-top: 0; }
html[data-theme="night"] .admin-unified-lead { color: #aaa; }

/* Admin solo en escritorio: aviso en móvil / tablet estrecha */
.admin-mobile-notice {
    display: block;
    padding-block: 2rem 3rem;
    max-width: 28rem;
}
.admin-mobile-notice-lead {
    margin: 0 0 0.75rem;
    font-size: 1.15rem;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.4;
}
.admin-mobile-notice-text {
    margin: 0 0 1.5rem;
    color: #666;
    line-height: 1.55;
}
.admin-mobile-notice-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 0;
}
.admin-desktop-panel { display: none; }
@media (min-width: 768px) {
    .admin-mobile-notice { display: none; }
    .admin-desktop-panel { display: block; }
}
/* Política móvil: alias reutilizables (768px) */
.desktop-only-notice { display: block; padding-block: 2rem 3rem; max-width: 28rem; }
.desktop-only-panel { display: none; }
@media (min-width: 768px) {
    .desktop-only-notice { display: none !important; }
    .desktop-only-panel { display: block; }
}
.mobile-basic-panel { display: block; }
.viewport-desktop-only { display: none; }
.viewport-mobile-only { display: block; }
@media (min-width: 768px) {
    .viewport-desktop-only { display: block; }
    .viewport-mobile-only { display: none !important; }
}
.admin-mobile-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.admin-mobile-card {
    border: 1px solid #e4e6ea;
    border-radius: 10px;
    padding: 0.75rem 0.85rem;
    background: #fff;
}
.admin-mobile-card__head { display: flex; gap: 0.65rem; align-items: flex-start; margin-bottom: 0.5rem; }
.admin-mobile-card__thumb { width: 44px; height: 44px; border-radius: 6px; object-fit: cover; background: #eee; flex-shrink: 0; }
.admin-mobile-card__thumb--book { width: 36px; height: 54px; }
.admin-mobile-card__title { margin: 0; font-size: 0.95rem; line-height: 1.3; }
.admin-mobile-card__meta { margin: 0.2rem 0 0; font-size: 0.78rem; color: #888; }
.admin-mobile-card__actions { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.55rem; }
html[data-theme="night"] .admin-mobile-card { background: #1a1a1a; border-color: #333; }
html[data-theme="night"] .admin-mobile-card__meta { color: #aaa; }
html[data-theme="night"] .admin-mobile-notice-lead { color: #f0f0f0; }
html[data-theme="night"] .admin-mobile-notice-text { color: #aaa; }

.admin-page .section-title-medium { font-family: 'Literata', Georgia, serif; font-size: 1.35rem; margin: 0 0 1rem; color: #1a1a1a; }
.admin-hub-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1.35rem;
}
.admin-hub-link {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: var(--blanco, #fff);
    color: #333;
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.admin-hub-link:hover {
    border-color: var(--accent, #ff9800);
    color: var(--accent, #ff9800);
    background: var(--turquesa-sutil, #fff3e0);
}
.admin-hub-link.is-active {
    background: var(--accent, #ff9800);
    border-color: var(--accent, #ff9800);
    color: #fff;
}
.admin-usuarios { padding-block: 1.25rem 2.5rem; }
.admin-usuarios-header h2 { margin: 0 0 0.35rem; }
.admin-usuarios-lead { margin: 0 0 0.85rem; color: #666; max-width: 40rem; }
.admin-usuarios-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    gap: 0.75rem;
    margin: 0 0 1.25rem;
}
.admin-usuarios-search {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin: 0 0 1.25rem;
}
.admin-usuarios-search .barra-search { flex: 1 1 16rem; min-width: 0; }
.admin-usuarios-search input[type="search"] {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    font: inherit;
}
.admin-usuarios-table-wrap { overflow-x: auto; margin-bottom: 1rem; }
.admin-usuarios-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}
.admin-usuarios-table th,
.admin-usuarios-table td {
    text-align: left;
    padding: 0.65rem 0.5rem;
    border-bottom: 1px solid #eee;
    vertical-align: middle;
}
.admin-usuarios-table th { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.03em; color: #777; }
.admin-usuarios-pubs {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    text-align: center;
}
.admin-usuarios-table th:nth-child(4),
.admin-usuarios-table td.admin-usuarios-pubs { text-align: center; }
.admin-usuarios-sub { font-size: 0.85rem; color: #777; margin-top: 0.15rem; }
.admin-usuarios-you {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.05rem 0.4rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    background: rgba(26, 92, 84, 0.12);
    color: var(--turquesa-oscuro, #1a5c54);
    border-radius: 4px;
}
.admin-usuarios-role {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
    background: #f0f0f0;
    color: #444;
}
.admin-usuarios-role--administrador { background: rgba(26, 92, 84, 0.15); color: var(--turquesa-oscuro, #1a5c54); }
.admin-usuarios-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}
.admin-usuarios-role-form,
.admin-usuarios-delete-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    margin: 0;
}
.admin-usuarios-edit {
    margin-bottom: 1.5rem;
}
.admin-usuarios-edit-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}
.admin-usuarios-edit-head h3 {
    margin: 0;
    font-family: 'Literata', Georgia, serif;
    font-size: 1.15rem;
}
.admin-usuarios-edit-meta {
    margin: 0 0 1rem;
    font-size: 0.9rem;
    color: #666;
}
.admin-usuarios-edit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.admin-usuarios-row-editing {
    background: var(--turquesa-sutil, #fff3e0);
}
html[data-theme="night"] .admin-usuarios-edit-meta { color: #aaa; }
html[data-theme="night"] .admin-usuarios-row-editing { background: rgba(255, 183, 77, 0.08); }

.admin-publicaciones-filters { margin-bottom: 0.75rem; }
.admin-publicaciones-status select {
    padding: 0.45rem 0.65rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font: inherit;
    min-width: 10rem;
}
.admin-publicaciones-count {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: #666;
}
.admin-publicaciones-id {
    font-variant-numeric: tabular-nums;
    font-size: 0.85rem;
    color: #666;
    white-space: nowrap;
}
.admin-sort-link {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
}
.admin-sort-link:hover { color: var(--accent, #1a5c54); text-decoration: underline; }
.admin-sort-link.is-active { color: var(--accent, #1a5c54); }
html[data-theme="night"] .admin-publicaciones-id { color: #aaa; }
html[data-theme="night"] .admin-sort-link:hover,
html[data-theme="night"] .admin-sort-link.is-active { color: var(--accent-on-dark, #ffb74d); }
.admin-publicaciones-title { display: inline; }
.admin-publicaciones-date {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-size: 0.9rem;
}
.admin-publicaciones-badge {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.15rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    border-radius: 4px;
    vertical-align: middle;
}
.admin-publicaciones-badge--on { background: rgba(26, 92, 84, 0.15); color: var(--turquesa-oscuro, #1a5c54); margin-left: 0; }
.admin-publicaciones-badge--off { background: #eee; color: #666; margin-left: 0; }
.admin-publicaciones-badge--dest { background: #fff3e0; color: #e65100; }
html[data-theme="night"] .admin-publicaciones-count { color: #aaa; }
html[data-theme="night"] .admin-publicaciones-status select {
    background: #242424;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .admin-publicaciones-badge--on { background: rgba(255, 183, 77, 0.15); color: var(--accent-on-dark, #ffb74d); }
html[data-theme="night"] .admin-publicaciones-badge--off { background: #333; color: #aaa; }
html[data-theme="night"] .admin-publicaciones-badge--dest { background: rgba(230, 81, 0, 0.2); color: #ffb74d; }

/* Portada editable en admin publicaciones */
.admin-publicaciones-cover-cell { width: 4.5rem; vertical-align: middle; }
.admin-publicaciones-cover-form {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    margin: 0;
}
.admin-publicaciones-cover-input {
    position: absolute;
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    z-index: -1;
}
.admin-publicaciones-cover-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    cursor: pointer;
    margin: 0;
}
.admin-publicaciones-cover-thumb {
    display: block;
    width: 48px;
    height: 64px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #e0e0e0;
    background: #f5f5f5;
}
.admin-publicaciones-cover-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 64px;
    font-size: 1.35rem;
    font-weight: 600;
    color: #999;
    background: #f5f5f5;
    border: 1px dashed #ccc;
    border-radius: 4px;
}
.admin-publicaciones-cover-hint {
    font-size: 0.7rem;
    color: #888;
    line-height: 1.2;
}
.admin-publicaciones-cover-label:hover .admin-publicaciones-cover-thumb,
.admin-publicaciones-cover-label:hover .admin-publicaciones-cover-empty {
    border-color: var(--accent, #ff9800);
}
.admin-publicaciones-cover-remove {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: #c62828;
    color: #fff;
    font-size: 0.85rem;
    line-height: 1;
    cursor: pointer;
}
.admin-publicaciones-cover-remove:hover { background: #b71c1c; }

/* Toggle destacado en admin */
.admin-publicaciones-dest-form { margin: 0; }
.admin-dest-toggle { display: inline-block; margin: 0; }
.admin-dest-toggle__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid #e0e0e0;
    background: #fafafa;
    border-radius: 999px;
    padding: 0.3rem 0.65rem 0.3rem 0.35rem;
    cursor: pointer;
    font: inherit;
    font-size: 0.8rem;
    color: #555;
}
.admin-dest-toggle__ui {
    width: 2.1rem;
    height: 1.15rem;
    border-radius: 999px;
    background: #ccc;
    position: relative;
    flex-shrink: 0;
    transition: background 0.15s;
}
.admin-dest-toggle__ui::after {
    content: '';
    position: absolute;
    top: 0.12rem;
    left: 0.12rem;
    width: 0.9rem;
    height: 0.9rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.2);
    transition: transform 0.15s;
}
.admin-dest-toggle.is-on .admin-dest-toggle__btn {
    border-color: color-mix(in srgb, var(--accent, #ff9800) 45%, #ddd);
    background: color-mix(in srgb, var(--accent, #ff9800) 12%, #fff);
    color: var(--accent, #e65100);
    font-weight: 600;
}
.admin-dest-toggle.is-on .admin-dest-toggle__ui {
    background: var(--accent, #ff9800);
}
.admin-dest-toggle.is-on .admin-dest-toggle__ui::after {
    transform: translateX(0.95rem);
}
html[data-theme="night"] .admin-publicaciones-cover-thumb,
html[data-theme="night"] .admin-publicaciones-cover-empty {
    border-color: #444;
    background: #2a2a2a;
    color: #aaa;
}
html[data-theme="night"] .admin-dest-toggle__btn {
    background: #2a2a2a;
    border-color: #555;
    color: #ddd;
}
html[data-theme="night"] .admin-dest-toggle.is-on .admin-dest-toggle__btn {
    background: rgba(255, 183, 77, 0.12);
    border-color: #666;
    color: var(--accent-on-dark, #ffb74d);
}

.admin-libros-toolbar { margin: 0.75rem 0 0; }
.admin-libros-cover-thumb {
    display: block;
    width: 40px;
    height: 56px;
    object-fit: cover;
    border-radius: 3px;
    border: 1px solid #eee;
}
.admin-libros-cover-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 56px;
    font-size: 1.25rem;
    background: #f5f5f5;
    border-radius: 3px;
}
html[data-theme="night"] .admin-libros-cover-thumb { border-color: #444; }
html[data-theme="night"] .admin-libros-cover-empty { background: #2a2a2a; }
.admin-usuarios-role-form select {
    padding: 0.35rem 0.5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font: inherit;
    max-width: 11rem;
}
.admin-usuarios-hint { font-size: 0.85rem; color: #777; max-width: 42rem; line-height: 1.45; }
html[data-theme="night"] .admin-usuarios-lead,
html[data-theme="night"] .admin-usuarios-sub,
html[data-theme="night"] .admin-usuarios-hint,
html[data-theme="night"] .admin-usuarios-table th { color: #aaa; }
html[data-theme="night"] .admin-usuarios-table th,
html[data-theme="night"] .admin-usuarios-table td { border-bottom-color: #333; }
html[data-theme="night"] .admin-usuarios-search input[type="search"],
html[data-theme="night"] .admin-usuarios-role-form select {
    background: #242424;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .admin-usuarios-role { background: #333; color: #ddd; }
html[data-theme="night"] .admin-usuarios-role--administrador { background: rgba(255, 183, 77, 0.15); color: var(--accent-on-dark, #ffb74d); }

.admin-card { background: var(--blanco, #fff); padding: 1.5rem; margin-bottom: 1.5rem; border-radius: 10px; border: 1px solid #eee; box-shadow: var(--sombra-sutil, 0 1px 3px rgba(0,0,0,0.06)); }
.admin-card h2 { font-family: 'Literata', Georgia, serif; font-size: 1.15rem; margin: 0 0 1rem; font-weight: 600; color: #1a1a1a; }
.admin-meta { font-size: 0.85rem; color: #666; margin-bottom: 0.5rem; }
.admin-actions { margin-top: 0.75rem; }
.admin-actions form { display: inline; margin-right: 0.5rem; }
.admin-card label { display: block; margin: 0.75rem 0; }
.admin-card label span { display: block; font-weight: 600; margin-bottom: 0.3rem; font-size: 0.9rem; color: #333; }
.admin-card input[type=text], .admin-card input[type=url], .admin-card input[type=number], .admin-card input[type=email], .admin-card textarea,
.admin-card select { width: 100%; max-width: 28rem; padding: 0.6rem 0.75rem; border: 1px solid #ddd; border-radius: 6px; font-size: 1rem; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.admin-card input:focus, .admin-card select:focus, .admin-card textarea:focus { outline: none; border-color: var(--accent, #ff9800); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent, #ff9800) 22%, transparent); }
.admin-card select { cursor: pointer; appearance: none; padding-right: 2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.5rem center; }
.admin-card textarea { min-height: 100px; }
.admin-card .btn-medium { margin-top: 0.75rem; }
.admin-card .btn-medium.btn-primary,
.admin-card button.btn-medium:not(.btn-secondary) {
    background: var(--accent, #ff9800);
    color: #fff;
}
.admin-card .btn-medium.btn-primary:hover,
.admin-card button.btn-medium:not(.btn-secondary):hover {
    background: var(--accent-hover, #f57c00);
    color: #fff;
}

/* Admin: Tinta Dorada — premio trimestral */
.admin-tinta-dorada-desc { color: #555; font-size: 0.95rem; margin: 0 0 1.25rem; line-height: 1.5; }
.admin-tinta-dorada-form { margin-bottom: 1.25rem; }
.admin-tinta-dorada-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
.admin-tinta-dorada-year-label { font-weight: 600; font-size: 0.9rem; }
.admin-tinta-dorada-select { width: auto; min-width: 5rem; padding: 0.4rem 1.75rem 0.4rem 0.5rem; }
.admin-tinta-dorada-trim-label { font-weight: 600; font-size: 0.9rem; margin-left: 0.5rem; }
.admin-tinta-dorada-trim-btns { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.admin-tinta-dorada-trim-btn { display: inline-block; padding: 0.4rem 0.75rem; font-size: 0.9rem; border-radius: 6px; border: 1px solid #ccc; background: #f5f5f5; color: #333; text-decoration: none; transition: background 0.2s, border-color 0.2s; }
.admin-tinta-dorada-trim-btn:hover { background: #eee; border-color: #bbb; color: #1a1a1a; }
.admin-tinta-dorada-trim-btn-active { background: var(--turquesa-oscuro, #1a5c54); border-color: var(--turquesa-oscuro, #1a5c54); color: #fff; }
.admin-tinta-dorada-trim-btn-active:hover { background: var(--turquesa-medio, #0d7377); border-color: var(--turquesa-medio, #0d7377); color: #fff; }
.admin-tinta-dorada-periodo { font-size: 0.95rem; color: #555; margin: 0 0 1rem; }
.admin-tinta-dorada-winners { list-style: none; padding: 0; margin: 0; }
.admin-tinta-dorada-winner { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 0.85rem; margin-bottom: 0.5rem; border-radius: 8px; background: #f8fcfb; border: 1px solid #e0eeeb; }
.admin-tinta-dorada-winner-1 { background: linear-gradient(135deg, #fffbf0 0%, #fef5e0 100%); border-color: #e8d4a0; }
.admin-tinta-dorada-winner-2 { background: linear-gradient(135deg, #f8f9fa 0%, #eef1f3 100%); border-color: #c8d0d6; }
.admin-tinta-dorada-winner-pos { flex: 0 0 2.5rem; font-weight: 700; font-size: 1rem; color: var(--turquesa-oscuro, #1a5c54); }
.admin-tinta-dorada-winner-name { flex: 1; font-weight: 600; }
.admin-tinta-dorada-winner-pts { flex-shrink: 0; font-weight: 700; color: var(--turquesa-oscuro, #1a5c54); }

/* Admin: botón de subir archivo con el mismo estilo */
.admin-file-field { margin: 0.5rem 0; }
.admin-file-field-label { display: block; font-weight: 600; margin-bottom: 0.25rem; font-size: 0.9rem; }
.admin-file-wrap { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; max-width: 400px; }
.admin-file-input { width: 0.1px; height: 0.1px; opacity: 0; overflow: hidden; position: absolute; z-index: -1; }
.admin-file-label { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.5rem 1.1rem; font-size: 0.95rem; font-family: inherit; cursor: pointer; border-radius: 6px; border: 1px solid color-mix(in srgb, var(--accent, #ff9800) 45%, #ddd); background: var(--turquesa-sutil, #fff3e0); color: var(--accent, #ff9800); font-weight: 600; transition: background 0.15s, border-color 0.15s, color 0.15s; }
.admin-file-label:hover { background: var(--accent, #ff9800); border-color: var(--accent, #ff9800); color: #fff; }
.admin-file-label-icon { flex-shrink: 0; color: inherit; }
.admin-file-label.btn-primary { background: var(--accent, #ff9800); border-color: var(--accent, #ff9800); color: var(--accent-ink, #fff); }
.admin-file-label.btn-primary:hover { background: var(--accent-hover, #f57c00); border-color: var(--accent-hover, #f57c00); color: var(--accent-ink, #fff); }
.admin-file-name { font-size: 0.9rem; color: #666; }
.btn-dan { background: #c62828 !important; color: #fff !important; }
.btn-dan:hover { background: #b71c1c !important; color: #fff !important; }
.btn-sec { background: #e0e0e0 !important; color: #333 !important; }
.btn-sec:hover { background: #d0d0d0 !important; color: #333 !important; }
html[data-theme="night"] .admin-page .section-title-medium,
html[data-theme="night"] .admin-card h2 { color: #f0f0f0; }
html[data-theme="night"] .admin-hub-link {
    background: #242424;
    border-color: #555;
    color: #ddd;
}
html[data-theme="night"] .admin-hub-link:hover {
    background: #2e2e2e;
    border-color: var(--accent-on-dark, #ffb74d);
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .admin-hub-link.is-active {
    background: var(--accent, #ff9800);
    border-color: var(--accent, #ff9800);
    color: #fff;
}
html[data-theme="night"] .admin-card,
html[data-theme="night"] .admin-accordion-item {
    background: #1e1e1e;
    border-color: #333;
}
html[data-theme="night"] .admin-accordion-header { background: #2a2a2a; color: #f0f0f0; }
html[data-theme="night"] .admin-card label span,
html[data-theme="night"] .admin-file-field-label { color: #ddd; }
html[data-theme="night"] .admin-card input[type=text],
html[data-theme="night"] .admin-card input[type=url],
html[data-theme="night"] .admin-card input[type=number],
html[data-theme="night"] .admin-card input[type=email],
html[data-theme="night"] .admin-card textarea,
html[data-theme="night"] .admin-card select {
    background: #242424;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .admin-tabs-nav { border-bottom-color: #333; }
html[data-theme="night"] .admin-tab-btn { color: #aaa; }
html[data-theme="night"] .admin-tab-btn.admin-tab-active { color: var(--accent-on-dark, #ffb74d); border-bottom-color: var(--accent-on-dark, #ffb74d); }

.admin-ok { color: #2e7d32; margin-bottom: 1rem; }
.admin-error { color: #c62828; margin-bottom: 1rem; }

/* Admin: pestañas (desktop) y acordeón (móvil) */
.admin-tabs-nav { display: none; flex-wrap: wrap; gap: 0.25rem; margin-bottom: 1rem; border-bottom: 2px solid #e0e0e0; }
.admin-tab-btn { padding: 0.6rem 1rem; background: transparent; border: none; border-bottom: 3px solid transparent; cursor: pointer; font-size: 0.95rem; font-weight: 600; font-family: inherit; color: #666; transition: color 0.2s, border-color 0.2s; }
.admin-tab-btn:hover { color: #1a1a1a; }
.admin-tab-btn.admin-tab-active { color: var(--accent, #ff9800); border-bottom-color: var(--accent, #ff9800); }
.admin-tab-btn:focus { outline: 2px solid var(--accent, #ff9800); outline-offset: 2px; }

.admin-accordion { display: flex; flex-direction: column; gap: 0.5rem; }
.admin-accordion-item { border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; background: #fff; }
.admin-accordion-header { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1rem; background: #f5f5f5; border: none; cursor: pointer; font-size: 1rem; font-weight: 600; font-family: inherit; text-align: left; transition: background 0.15s; }
.admin-accordion-header:hover { background: #eee; }
.admin-accordion-header:focus { outline: 2px solid var(--accent, #ff9800); outline-offset: -2px; }
.admin-accordion-icon { display: inline-block; transition: transform 0.2s; font-size: 0.75rem; }
.admin-accordion-item.admin-accordion-open .admin-accordion-icon { transform: rotate(180deg); }
.admin-accordion-body { overflow: hidden; }
.admin-accordion-body.admin-accordion-collapsed { display: none; }
.admin-accordion-body:not(.admin-accordion-collapsed) { display: block; }
.admin-accordion-body .admin-card { border-radius: 0; border-left: none; border-right: none; }
.admin-accordion-body > .admin-card:first-child { margin-top: 0; }
.admin-accordion-body > .section-title-medium { margin: 1rem 1rem 0.5rem; padding: 0 0 0.5rem; }
.admin-accordion-body .admin-table-wrap { margin: 0; }

@media (min-width: 768px) {
    .admin-tabs-nav { display: flex; flex-wrap: wrap; }
    .admin-accordion-header { display: none; }
    .admin-accordion-item { border: none; border-radius: 0; }
    .admin-accordion-body { display: none; padding: 1rem 0; }
    .admin-accordion-body:not(.admin-tab-panel-active) { display: none !important; }
    .admin-accordion-body.admin-tab-panel-active { display: block !important; }
}

/* Admin: tabla de seguimiento canjes */
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.admin-table th, .admin-table td { padding: 0.5rem 0.75rem; text-align: left; border-bottom: 1px solid #eee; vertical-align: top; }
.admin-table th { background: #f5f5f5; font-weight: 600; }
.admin-table tbody tr:hover { background: #fafafa; }
.admin-inline-form { display: inline-flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.admin-inline-form label { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0; }
.admin-inline-form label span { display: none; }
.admin-inline-form input[type="text"] { width: 180px; padding: 0.35rem 0.5rem; font-size: 0.9rem; }
.admin-select-estado { padding: 0.35rem 1.75rem 0.35rem 0.5rem; font-size: 0.9rem; border: 1px solid #ddd; border-radius: 4px; font-family: inherit; color: #1a1a1a; background: #fff; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.4rem center; }
.admin-select-estado:hover { border-color: #ccc; }
.admin-select-estado:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }
.admin-table-notes { background: #f8f9fa; }
.admin-table-notes td { padding: 0.5rem 0.75rem; font-size: 0.85rem; }
.admin-notes-label { font-weight: 600; margin-right: 0.25rem; }
.admin-notes-form { margin-top: 0.35rem; }
.admin-link { font-size: 0.9rem; color: #1a5c54; }
.admin-link:hover { text-decoration: underline; }
.btn-small { padding: 0.3rem 0.6rem; font-size: 0.85rem; }

/* Modal pantalla completa — cerrado: fuera del hit-testing (no tapar el navbar) */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 1100;
    display: none !important;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    pointer-events: none !important;
    visibility: hidden;
    opacity: 0;
}
.modal-overlay.modal-open {
    display: flex !important;
    opacity: 1;
    visibility: visible;
    pointer-events: auto !important;
}
.modal-overlay[hidden]:not(.modal-open) {
    display: none !important;
    pointer-events: none !important;
}
.modal-box { background: var(--blanco-hueso, #fcfbf9); border-radius: 8px; box-shadow: 0 8px 32px rgba(0,0,0,0.2); max-width: 480px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 1.5rem; }
.modal-box h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.modal-close { position: absolute; top: 0.75rem; right: 0.75rem; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #666; line-height: 1; padding: 0.25rem; }
.modal-close:hover { color: #1a1a1a; }
.modal-box form label { display: block; margin: 0.5rem 0; }
.modal-box form label span { display: block; font-weight: 600; margin-bottom: 0.25rem; font-size: 0.9rem; }
.modal-box form input[type=text], .modal-box form input[type=url], .modal-box form input[type=number], .modal-box form textarea,
.modal-box form select { width: 100%; padding: 0.5rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; font-family: inherit; color: #1a1a1a; background: #fff; box-sizing: border-box; }
.modal-box form input:focus, .modal-box form select:focus, .modal-box form textarea:focus { outline: none; border-color: var(--turquesa-oscuro, #ff9800); box-shadow: 0 0 0 2px rgba(26, 92, 84, 0.15); }
.modal-box form select { cursor: pointer; appearance: none; padding-right: 2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.5rem center; }
.modal-box form textarea { min-height: 80px; }
.modal-box form .btn-medium { margin-top: 0.75rem; margin-right: 0.5rem; }
/* Contenedor FAB: esquina inferior derecha (transparente, apila controles) */
.fab-stack {
    position: fixed;
    right: max(1.25rem, env(safe-area-inset-right, 0px));
    bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
    z-index: 1060;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    pointer-events: none;
}
.fab-stack > * {
    pointer-events: auto;
}
.fab-stack--back {
    right: auto;
    left: max(1.25rem, env(safe-area-inset-left, 0px));
}
.btn-back-round {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    min-width: 3.5rem;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 999px;
    background: var(--accent, #ff9800);
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    flex-shrink: 0;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
    transition: transform 0.18s ease, background 0.18s ease;
}
.btn-back-round:hover,
.btn-back-round:focus {
    background: var(--accent-hover, #f57c00);
    color: #fff;
    transform: scale(1.05);
    outline: none;
}
.btn-back-round:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #ff9800) 35%, transparent);
}
.btn-back-round iconify-icon {
    display: block;
    color: inherit;
}
html[data-theme="night"] .btn-back-round {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

@media (max-width: 480px) {
    .fab-stack,
    .fab-stack--back {
        bottom: max(0.85rem, env(safe-area-inset-bottom, 0px));
    }
    .fab-stack {
        right: max(0.85rem, env(safe-area-inset-right, 0px));
    }
    .fab-stack--back {
        left: max(0.85rem, env(safe-area-inset-left, 0px));
    }
    .btn-create-round,
    .btn-back-round,
    .escritor-chat-fab {
        width: 3.15rem;
        height: 3.15rem;
        min-width: 3.15rem;
    }
}

/* Botón redondo + (crear) — UX unificada */
.btn-create-round {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    min-width: 3.5rem;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 999px;
    background: var(--accent, #ff9800);
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    flex-shrink: 0;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
    transition: transform 0.18s ease, background 0.18s ease, box-shadow 0.2s;
    font-family: inherit;
    line-height: 0;
}
.btn-create-round:hover,
.btn-create-round:focus {
    background: var(--accent-hover, #f57c00);
    color: #fff;
    text-decoration: none;
    transform: scale(1.05);
    outline: none;
}
.btn-create-round:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #ff9800) 35%, transparent);
}
.btn-create-round iconify-icon,
.btn-create-round .btn-create-round-icon {
    display: block;
    color: inherit;
}
.btn-create-round__plus {
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;
    margin-top: -0.1rem;
    color: inherit;
}
html[data-theme="night"] .btn-create-round {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.btn-admin-add { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background: var(--turquesa-oscuro, #ff9800); color: #fff; border: none; border-radius: 4px; font-size: 0.95rem; cursor: pointer; text-decoration: none; font-family: inherit; margin-bottom: 1rem; }
.btn-admin-add:hover { background: var(--turquesa-medio, #f57c00); color: #fff; }
.btn-add-libro-icon { flex-shrink: 0; }
.item-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; flex-wrap: wrap; align-items: center; }
.item-actions form { display: inline; }
.btn-item-edit, .btn-item-duplicate, .btn-item-delete, .btn-item-hide { padding: 0.25rem 0.65rem; font-size: 0.85rem; line-height: 1.25; height: 1.75rem; border-radius: 4px; border: none; cursor: pointer; font-family: inherit; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; box-sizing: border-box; }
.btn-item-edit, .btn-item-duplicate { background: #e0e0e0; color: #333; }
.btn-item-edit:hover, .btn-item-duplicate:hover { background: #d0d0d0; color: #333; }
.btn-item-hide { background: #eceff1; color: #455a64; }
.btn-item-hide:hover { background: #cfd8dc; color: #37474f; }
.btn-item-hide.is-hidden { background: #fff3e0; color: #e65100; }
.btn-item-hide.is-hidden:hover { background: #ffe0b2; color: #bf360c; }
.btn-item-delete { background: #ffebee; color: #c62828; }
.btn-item-delete:hover { background: #ffcdd2; color: #b71c1c; }
.btn-item-icon { width: 1.75rem; min-width: 1.75rem; padding: 0; }
.btn-item-icon iconify-icon { display: block; color: inherit; }
.btn-item-icon .btn-item-icon-img { display: block; width: 18px; height: 18px; }
.modal-file-wrap { margin: 0.5rem 0; }
.modal-file-wrap .admin-file-label { padding: 0.4rem 1rem; font-size: 0.9rem; }
.modal-box .admin-file-field-label { font-size: 0.85rem; }

.news-preview-medium { position: relative; }
.news-item-actions { margin-top: 0.25rem; margin-bottom: 0.5rem; }
.news-item-actions .btn-item-edit,
.news-item-actions .btn-item-duplicate,
.news-item-actions .btn-item-hide { text-decoration: none; display: inline-flex !important; align-items: center; justify-content: center; padding: 0.25rem 0.65rem !important; border: none !important; height: 1.75rem; }
.news-item-actions .btn-item-icon { width: 1.75rem; min-width: 1.75rem; padding: 0 !important; }

/* Noticias: mismo modelo que cards de fotos (clases compartidas) */
.prueba-card-foto-link {
    text-decoration: none;
    color: inherit;
    display: block;
    width: 100%;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
}
.prueba-card-foto-link:hover { color: inherit; }
.prueba-card-foto-link:hover .prueba-card-foto-title { color: var(--turquesa-oscuro, #ff9800); }
.prueba-card-foto-link:focus-visible { outline: 2px solid var(--turquesa-oscuro, #ff9800); outline-offset: 2px; border-radius: 8px; }
.articulo-lectura-modal-box { max-width: 720px; width: min(720px, 96vw); }
/* Anclado arriba: el borde superior no salta al cambiar de pestaña */
.articulo-lectura-modal.autor-ficha-modal,
.articulo-lectura-modal {
    align-items: flex-start;
    justify-content: center;
    padding: 4.5rem 1rem 1.5rem;
    padding-top: max(4.5rem, calc(1rem + env(safe-area-inset-top, 0px) + 3.5rem));
}
.articulo-lectura-modal .articulo-lectura-modal-box,
.articulo-lectura-modal .autor-ficha-modal-box {
    max-height: calc(100vh - 6rem);
    max-height: calc(100dvh - 6rem);
    margin-top: 0;
    align-self: flex-start;
}
/* Sin X flotante: en desktop se cierra con fondo o Escape */
.articulo-lectura-modal .autor-ficha-modal-close {
    display: none !important;
}
.articulo-lectura-modal-footer {
    display: none;
}
.articulo-lectura-modal .autor-ficha-modal-content {
    flex: 1 1 auto;
    min-height: 0;
}
@media (max-width: 768px) {
    .articulo-lectura-modal.autor-ficha-modal,
    .articulo-lectura-modal {
        padding: 0.75rem 0.65rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
        padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
        align-items: stretch;
    }
    .articulo-lectura-modal .articulo-lectura-modal-box,
    .articulo-lectura-modal .autor-ficha-modal-box {
        max-height: calc(100vh - 1.5rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
        max-height: calc(100dvh - 1.5rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
        width: 100%;
        align-self: stretch;
    }
    .articulo-lectura-modal-footer {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        padding: 0.55rem 0.75rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid #ebebeb;
        background: #fff;
    }
    .articulo-lectura-modal-close-fab {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.75rem;
        height: 2.75rem;
        padding: 0;
        border: 1px solid #ddd;
        border-radius: 50%;
        background: #111;
        color: #fff;
        cursor: pointer;
        line-height: 1;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    }
    .articulo-lectura-modal-close-fab:hover,
    .articulo-lectura-modal-close-fab:active {
        background: #333;
        color: #fff;
    }
    .articulo-lectura-modal .autor-ficha-modal-content {
        padding-bottom: 1rem;
    }
}
html[data-theme="night"] .articulo-lectura-modal-footer {
    background: #1c1c1c;
    border-top-color: #333;
}
html[data-theme="night"] .articulo-lectura-modal-close-fab {
    background: #f0f0f0;
    color: #111;
    border-color: #ccc;
}
html[data-theme="night"] .articulo-lectura-modal-close-fab:hover,
html[data-theme="night"] .articulo-lectura-modal-close-fab:active {
    background: #fff;
    color: #111;
}
.articulo-lectura-cover { margin: -0.25rem -0.25rem 1rem; border-radius: 8px; overflow: hidden; max-height: 240px; background: #eee; }
.articulo-lectura-cover img { width: 100%; height: 240px; object-fit: cover; display: block; }
.articulo-lectura-toprow {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    margin: 0 0 0.5rem;
}
.articulo-lectura-meta {
    font-size: 0.9rem;
    color: #666;
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
    padding-top: 0.25rem;
}
.articulo-lectura-meta a { color: var(--turquesa-oscuro, #ff9800); text-decoration: none; font-weight: 600; }
.articulo-lectura-toprow-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.3rem;
    flex-shrink: 0;
    margin-left: auto;
}
.articulo-lectura-toprow-actions .pas-fav-btn {
    order: 0;
    flex-shrink: 0;
}
.articulo-lectura-toprow-actions .pas-share {
    order: 1;
}
.articulo-lectura-toprow-actions .pas-share--modal {
    margin: 0;
    gap: 0.3rem;
}
.articulo-lectura-toprow-actions .pas-share-label { display: none; }
.articulo-header-medium .articulo-cover-img {
    display: block;
    width: 100%;
    max-height: 280px;
    object-fit: cover;
    border-radius: 8px;
    margin: 0 0 0.75rem;
}
.articulo-header-medium .articulo-lectura-toprow {
    margin-bottom: 0.75rem;
}
.articulo-lectura-title { font-family: 'Literata', Georgia, serif; font-size: 1.5rem; margin: 0 0 0.85rem; color: inherit; }
.articulo-lectura-body { line-height: 1.65; color: inherit; margin-bottom: 1.25rem; }
.articulo-lectura-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin: 0 0 1.25rem;
    padding: 0;
    background: transparent;
    border-bottom: 2px solid #e8e8e8;
    border-radius: 0;
}
.articulo-lectura-tab {
    flex: 0 0 auto;
    min-width: 0;
    border: none;
    background: transparent;
    color: #555;
    font: inherit;
    font-size: 0.95rem;
    font-weight: 500;
    padding: 0.5rem 0.15rem 0.55rem;
    margin-bottom: -2px;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    line-height: 1.2;
}
.articulo-lectura-tab-label { white-space: nowrap; }
.articulo-lectura-tab:hover { color: #1a1a1a; }
.articulo-lectura-tab.is-active {
    color: var(--accent, #ff9800);
    border-bottom-color: var(--accent, #ff9800);
    background: transparent;
    box-shadow: none;
}
.articulo-lectura-tab-badge {
    display: inline-block;
    font-weight: 600;
    color: var(--accent, #ff9800);
    font-size: 0.85em;
}
.articulo-lectura-panel[data-modal-panel="texto"] .articulo-lectura-comments {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eee;
}
@media (max-width: 640px) {
    .articulo-lectura-tabs {
        gap: 0.35rem 0.85rem;
        margin-bottom: 1rem;
    }
    .articulo-lectura-tab {
        font-size: 0.88rem;
        padding: 0.45rem 0.1rem 0.5rem;
    }
    .articulo-lectura-tab-badge {
        font-size: 0.82em;
    }
}
.articulo-lectura-panel[hidden] { display: none !important; }
.articulo-lectura-panel.is-active { display: block; }
.articulo-lectura-actions { margin-top: 0.5rem; }
.articulo-lectura-modal-box .articulo-ratings,
.articulo-lectura-modal-box .articulo-comments {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.articulo-lectura-modal-box .articulo-interaction { margin-top: 1rem; }
.articulo-lectura-rating-status { margin: 0.5rem 0 0.75rem; }
.articulo-lectura-modal-box .rating-form { margin-top: 1rem; }
.articulo-lectura-modal-box .articulo-lectura-actions {
    display: none;
}
html[data-theme="night"] .articulo-lectura-tabs { background: transparent; border-bottom-color: #3a3a3a; }
html[data-theme="night"] .articulo-lectura-tab { color: #c8c8c8; }
html[data-theme="night"] .articulo-lectura-tab:hover { color: #f0f0f0; background: transparent; }
html[data-theme="night"] .articulo-lectura-tab.is-active {
    color: var(--accent-on-dark, var(--accent, #ff9800));
    border-bottom-color: var(--accent-on-dark, var(--accent, #ff9800));
    background: transparent;
    box-shadow: none;
}
html[data-theme="night"] .articulo-lectura-panel[data-modal-panel="texto"] .articulo-lectura-comments {
    border-top-color: #3a3a3a;
}
html[data-theme="night"] .articulo-lectura-tab-badge {
    color: var(--accent-on-dark, #ffb74d);
}
@media (max-width: 640px) {
    html[data-theme="night"] .articulo-lectura-tab-badge {
        background: color-mix(in srgb, var(--accent, #ff9800) 22%, #1a1a1a);
    }
    html[data-theme="night"] .articulo-lectura-tab.is-active .articulo-lectura-tab-badge {
        background: color-mix(in srgb, var(--accent, #ff9800) 28%, #1c1c1c);
    }
}

/* Modal de lectura: texto legible en tema nocturno */
html[data-theme="night"] .articulo-lectura-modal-box,
html[data-theme="night"] .articulo-lectura-modal .autor-ficha-modal-box {
    background: #1c1c1c;
    color: #f0f0f0;
}
html[data-theme="night"] .articulo-lectura-title,
html[data-theme="night"] .articulo-lectura-inner,
html[data-theme="night"] .articulo-lectura-body,
html[data-theme="night"] .articulo-lectura-body.articulo-body-formatted,
html[data-theme="night"] .articulo-lectura-body.post-blocks-body,
html[data-theme="night"] .articulo-lectura-body p,
html[data-theme="night"] .articulo-lectura-body .post-p,
html[data-theme="night"] .articulo-lectura-body span,
html[data-theme="night"] .articulo-lectura-body div,
html[data-theme="night"] .articulo-lectura-body li,
html[data-theme="night"] .articulo-lectura-panel {
    color: #eaeaea !important;
}
html[data-theme="night"] .articulo-lectura-meta {
    color: #b0b0b0;
}
html[data-theme="night"] .articulo-lectura-meta a {
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .articulo-lectura-body h2,
html[data-theme="night"] .articulo-lectura-body h3,
html[data-theme="night"] .articulo-lectura-body .post-h2,
html[data-theme="night"] .articulo-lectura-body .post-h3,
html[data-theme="night"] .articulo-lectura-body strong {
    color: #f5f5f5 !important;
}
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comments-title,
html[data-theme="night"] .articulo-lectura-modal-box .articulo-ratings .articulo-comments-title,
html[data-theme="night"] .articulo-lectura-modal-box .rating-summary,
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comment-item,
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comment-item strong,
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comments-hint,
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comments-empty {
    color: #e8e8e8;
}
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comment-item time {
    color: #999;
}
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comment-form textarea,
html[data-theme="night"] .articulo-lectura-modal-box .articulo-comment-reply-form textarea {
    background: #2a2a2a;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .articulo-lectura-cover {
    background: #2a2a2a;
}
html[data-theme="night"] .autor-ficha-modal-loading,
html[data-theme="night"] .autor-ficha-modal-error {
    color: #bbb;
}
.prueba-card-foto-img .prueba-card-foto-img-placeholder { width: 100%; height: 100%; min-height: 96px; background: linear-gradient(135deg, #f0f0f0 0%, #e5e5e5 100%); }
.prueba-card-foto-img-initial { display: flex; align-items: center; justify-content: center; background: var(--turquesa-sutil, #fff3e0); }
.prueba-card-foto-img-initial .autor-initial { font-size: 2.5rem; font-weight: 600; color: var(--turquesa-oscuro, #ff9800); font-family: var(--fuente-titulo); }
.prueba-card-foto-meta { display: flex; justify-content: flex-start; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.prueba-cards-fotos-empty { grid-column: 1 / -1; text-align: center; color: #666; padding: 3rem 1rem; }

/* Escritores / concursos / ratings */
.escritores-grid { list-style: none; padding: 1rem 0 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.25rem; }
.escritores-page .container-medium { padding-top: 0.5rem; }
.escritores-page .articulo-comments-empty { margin-top: 1rem; }
.escritor-card { border: 1px solid #e8e8e8; border-radius: 6px; background: #fff; }
.escritor-card-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    min-height: 100%;
    padding: 1rem;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: center;
    font: inherit;
    color: inherit;
    text-decoration: none;
}
.escritor-card-link:hover { color: inherit; background: #fafafa; }
.escritor-card-link:focus-visible { outline: 2px solid var(--turquesa-oscuro, #ff9800); outline-offset: 2px; }
.escritor-card-photo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: #f0f0f0; }
.escritor-card-name { font-weight: 700; font-family: var(--fuente-titulo, Georgia, serif); }
.escritor-card-headline { font-size: 0.9rem; color: #555; }
.escritor-card-meta { font-size: 0.8rem; color: #888; }

/* Chat · directorio de salas (mismo esquema que Escritores) */
.chat-salas-page .container-medium { padding-top: 0.5rem; }
.chat-forums-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}
.chat-forums-lead {
    flex: 1 1 12rem;
    margin: 0;
    color: var(--text-muted, #5a6a68);
    font-size: 0.95rem;
    line-height: 1.45;
}
.forum-create-modal-box .forum-create-hint {
    margin: 0 0 1rem;
    color: var(--text-muted, #5a6a68);
    font-size: 0.92rem;
    line-height: 1.4;
}
.chat-sala-card-photo--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--accent, #ff9800);
    background: color-mix(in srgb, var(--accent, #ff9800) 12%, transparent);
}
.chat-sala-card-photo--placeholder iconify-icon { display: block; }
.chat-sala-card--open .escritor-card-link,
.chat-sala-card--open .chat-sala-card-link {
    background: color-mix(in srgb, var(--accent, #ff9800) 10%, transparent);
    outline: 2px solid var(--accent, #ff9800);
    outline-offset: -2px;
}
.chat-sala-drawer.escritor-chat-drawer {
    /* hereda el drawer lateral; un poco más ancho para leer */
    width: min(28rem, 100vw);
}

.admin-salas-thumb {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    object-fit: cover;
    display: block;
    background: #f0f0f0;
}
.admin-salas-thumb--empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}
.admin-salas-orden {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
.admin-salas-orden-form { display: inline; margin: 0; }
.admin-salas-orden-num {
    min-width: 1.5rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: #666;
    font-size: 0.9rem;
}
.admin-salas-orden .btn-item-icon:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.admin-check-inline {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.75rem 0;
    font-size: 0.95rem;
}
html[data-theme="night"] .chat-sala-card-photo--placeholder {
    background: color-mix(in srgb, var(--accent, #ff9800) 18%, #1a1a1a);
}

.escritor-modal-header { display: flex; gap: 1.25rem; align-items: flex-start; margin-bottom: 1rem; flex-wrap: wrap; }
.escritor-modal-photo { flex-shrink: 0; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: #f0f0f0; }
.escritor-modal-photo img { width: 100%; height: 100%; object-fit: cover; }
.escritor-modal-photo-ph { width: 100%; height: 100%; background: #e8e8e8; }
.escritor-modal-info { flex: 1; min-width: 0; text-align: left; }
.escritor-modal-actions { margin: 0 0 1.25rem; }
.escritor-page { padding-block: 0 3rem; max-width: 72rem; } /* ancho fijo en todas las pestañas (igual La Barra) */
.escritor-page--wide { max-width: 72rem; }
.escritor-header {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.25rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #eee;
}
.escritor-photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: #f0f0f0; flex-shrink: 0; }
.escritor-header-main { flex: 1 1 12rem; min-width: 0; }
.escritor-name { margin: 0 0 0.25rem; font-family: var(--fuente-titulo, Georgia, serif); font-size: 1.5rem; }
.escritor-postal-code { margin: 0 0 0.35rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9rem; color: #666; letter-spacing: 0.02em; }
.escritor-headline { margin: 0; color: #444; font-size: 0.95rem; }
.escritor-ubicacion { margin: 0.2rem 0 0; font-size: 0.85rem; color: #777; }
.escritor-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    margin-left: auto;
}
.escritor-header-actions .btn-medium {
    margin: 0;
    padding: 0.4rem 1rem;
    font-size: 0.9rem;
    line-height: 1.2;
    white-space: nowrap;
}
.escritor-header-actions .blog-follow-form {
    display: inline-flex;
    margin: 0;
}
.escritor-header-actions .btn-follow-outline {
    background: #fff;
    color: var(--turquesa-oscuro, #ff9800);
    border: 1px solid var(--turquesa-oscuro, #ff9800);
}
.escritor-header-actions .btn-follow-outline:hover {
    background: rgba(255, 152, 0, 0.08);
    color: var(--turquesa-medio, #f57c00);
    border-color: var(--turquesa-medio, #f57c00);
}
.escritor-links { margin-top: 0.65rem; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.escritor-links .btn-medium { margin: 0; }
.escritor-btn-conversar { display: inline-flex; align-items: center; }
@media (max-width: 560px) {
    .escritor-header-actions {
        flex: 1 1 100%;
        margin-left: 0;
        padding-left: calc(72px + 1rem);
    }
}
/* Ocultar botón Directorio residual (nav Escritores ya cubre esa ruta) */
.escritor-header .escritor-links > a[href*="page=escritores"],
.escritor-links.blog-profile-link > a[href*="page=escritores"] {
    display: none !important;
}
.escritor-page .hub-tabs { margin: 0 0 1.5rem; }
.escritor-page .hub-tab.hub-tab-active { color: var(--turquesa-oscuro, #ff9800); border-bottom-color: var(--turquesa-oscuro, #ff9800); }

/* Perfil escritor: offcanvas de secciones en móvil (botón en header izquierdo) */
.escritor-hub-backdrop,
.escritor-hub-drawer { display: none; }

@media (max-width: 767px) {
    .header-medium--hub-nav .logo-medium {
        display: none !important;
    }
    .header-medium--hub-nav .btn-hub-nav-medium {
        display: flex;
    }

    .hub-tabs.hub-tabs--desktop,
    .hub-tabs--profile-shortcuts.hub-tabs--desktop {
        display: none !important;
    }

    .escritor-hub-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 12040;
        background: rgba(0, 0, 0, 0.35);
    }
    .escritor-hub-backdrop[hidden] { display: none !important; }

    .escritor-hub-drawer {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(18.5rem, 86vw);
        z-index: 12045;
        background: var(--blanco-hueso, #faf9f7);
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
        transform: translateX(-105%);
        transition: transform 0.24s ease;
        overflow: hidden;
    }
    .escritor-hub-drawer[hidden] { display: none !important; }
    .escritor-hub-drawer.is-open { transform: translateX(0); }

    .escritor-hub-drawer__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        padding: 0.85rem 1rem;
        border-bottom: 1px solid #eee;
        background: var(--blanco-hueso, #faf9f7);
        flex-shrink: 0;
    }
    .escritor-hub-drawer__title {
        margin: 0;
        font-size: 1rem;
        font-weight: 600;
        color: #1a1a1a;
    }
    .escritor-hub-drawer__close {
        border: none;
        background: transparent;
        font-size: 1.6rem;
        line-height: 1;
        color: #666;
        cursor: pointer;
        padding: 0.15rem 0.35rem;
    }
    .escritor-hub-drawer__profile {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 0.85rem 1rem 0.65rem;
        border-bottom: 1px solid #eee;
        flex-shrink: 0;
    }
    .escritor-hub-drawer__photo {
        width: 56px;
        height: 56px;
        border-radius: 50%;
        object-fit: cover;
        flex-shrink: 0;
        background: #eee;
    }
    .escritor-hub-drawer__profile-text {
        min-width: 0;
        flex: 1;
    }
    .escritor-hub-drawer__profile-name {
        margin: 0;
        font-family: var(--fuente-titulo, Georgia, serif);
        font-size: 1.05rem;
        font-weight: 700;
        line-height: 1.25;
        color: #1a1a1a;
    }
    .escritor-hub-drawer__profile-user,
    .escritor-hub-drawer__profile-meta {
        margin: 0.2rem 0 0;
        font-size: 0.85rem;
        line-height: 1.35;
        color: #666;
    }
    .escritor-hub-drawer__nav {
        display: flex;
        flex-direction: column;
        gap: 0.15rem;
        padding: 0.65rem 0.75rem 1.25rem;
        overflow-y: auto;
        flex: 1;
    }
    .escritor-hub-drawer__link {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        width: 100%;
        padding: 0.72rem 0.85rem;
        border: none;
        border-radius: 8px;
        background: transparent;
        color: #1a1a1a;
        font: inherit;
        font-size: 0.95rem;
        font-weight: 500;
        text-decoration: none;
        text-align: left;
        cursor: pointer;
    }
    .escritor-hub-drawer__link:hover,
    .escritor-hub-drawer__link:focus-visible {
        background: rgba(13, 115, 119, 0.08);
        color: var(--accent, #0d7377);
    }
    .escritor-hub-drawer__link.is-active {
        background: rgba(13, 115, 119, 0.12);
        color: var(--accent, #0d7377);
        font-weight: 600;
    }
    .escritor-hub-drawer__link-text { flex: 1; min-width: 0; }
    .escritor-hub-drawer__link .pas-count-badge--tab { margin-left: auto; }

    body.escritor-hub-nav-open { overflow: hidden; }
}

@media (min-width: 768px) {
    .escritor-hub-backdrop,
    .escritor-hub-drawer {
        display: none !important;
    }
    .btn-hub-nav-medium {
        display: none !important;
    }
}

html[data-theme="night"] .btn-hub-nav-medium { color: #f0f0f0; }
html[data-theme="night"] .btn-hub-nav-medium:hover { color: var(--accent-on-dark, #ffb74d); }
html[data-theme="night"] .escritor-hub-drawer {
    background: #1c1c1c;
}
html[data-theme="night"] .escritor-hub-drawer__head {
    background: #1c1c1c;
    border-bottom-color: #333;
}
html[data-theme="night"] .escritor-hub-drawer__title { color: #f0f0f0; }
html[data-theme="night"] .escritor-hub-drawer__close { color: #aaa; }
html[data-theme="night"] .escritor-hub-drawer__profile {
    border-bottom-color: #333;
}
html[data-theme="night"] .escritor-hub-drawer__profile-name { color: #f0f0f0; }
html[data-theme="night"] .escritor-hub-drawer__profile-user,
html[data-theme="night"] .escritor-hub-drawer__profile-meta { color: #aaa; }
html[data-theme="night"] .escritor-hub-drawer__link { color: #e8e8e8; }
html[data-theme="night"] .escritor-hub-drawer__link:hover,
html[data-theme="night"] .escritor-hub-drawer__link:focus-visible,
html[data-theme="night"] .escritor-hub-drawer__link.is-active {
    background: rgba(255, 255, 255, 0.08);
    color: var(--accent-on-dark, #ffb74d);
}

.escritor-section { margin: 0 0 1.5rem; }
.escritor-blog-wall.barra-layout { margin-top: 0.25rem; }
.escritor-blog-panel .barra-main { min-width: 0; }
/* El gap lo marca .prueba-cards-fotos-grid (igual que La Barra) */

.escritor-blog-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; position: relative; }
.escritor-blog-card .prueba-card-foto-link { display: flex; flex-direction: column; flex: 1; min-height: 0; position: relative; z-index: 0; }
.escritor-blog-card-media { width: 100%; aspect-ratio: 16 / 10; background: #eceae7; overflow: hidden; }
.escritor-blog-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.escritor-blog-card-media .prueba-card-foto-img-placeholder { width: 100%; height: 100%; background: linear-gradient(145deg, #f0eeeb 0%, #e4e1db 100%); }
.escritor-blog-card-body { padding: 0.85rem 1rem 1rem; }
.escritor-blog-card-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; margin: 0 0 0.4rem; font-size: 0.8rem; color: #888; }
.escritor-blog-card .prueba-card-foto-title { margin: 0 0 0.35rem; font-size: 1.05rem; }
.escritor-blog-card .prueba-card-foto-text { font-size: 0.9rem; }
.pas-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
}
.pas-share-label {
    display: none;
}
/* Unificado: círculo + icono (estilo cards de La Barra) */
.pas-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0;
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    background: #fff;
    color: #333;
    font: inherit;
    text-decoration: none;
    cursor: pointer;
    line-height: 1;
    flex-shrink: 0;
}
.pas-share-btn:hover {
    background: #f7f7f7;
    color: #111;
    text-decoration: none;
}
.pas-share-btn iconify-icon { display: block; flex-shrink: 0; }
.pas-share-btn-text { display: none; }
.pas-share-btn--wa { color: #128c7e; border-color: #b7e0db; }
.pas-share-btn--wa:hover { background: #e8f6f3; color: #0b6b60; }
.pas-share-btn--tg { color: #229ed9; border-color: #b6dff3; }
.pas-share-btn--tg:hover { background: #eaf6fc; color: #1677a8; }
.pas-share-btn--copy { color: #555; }

.pas-share--card {
    padding: 0.35rem 0.75rem 0.65rem;
    gap: 0.3rem;
    position: relative;
    z-index: 2;
}
.pas-card-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem 0.65rem;
    position: relative;
    z-index: 2;
}
.pas-card-toolbar .pas-share--card {
    padding: 0;
}
.pas-card-toolbar--modal {
    margin: 0.75rem 0 1rem;
    padding: 0.55rem 0.65rem;
    background: #f4f3f1;
    border-radius: 10px;
}
.pas-card-toolbar--modal .pas-share--modal {
    margin: 0;
    padding: 0;
    background: transparent;
}
.pas-fav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0;
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    background: #fff;
    color: #555;
    cursor: pointer;
    text-decoration: none;
    line-height: 1;
    font: inherit;
    flex-shrink: 0;
}
.pas-fav-btn:hover {
    background: #f7f7f7;
    color: #111;
    text-decoration: none;
}
.pas-fav-btn.is-on {
    color: var(--accent, #ff9800);
    border-color: color-mix(in srgb, var(--accent, #ff9800) 45%, #ddd);
    background: color-mix(in srgb, var(--accent, #ff9800) 12%, #fff);
}
.pas-fav-btn iconify-icon { display: block; }
html[data-theme="night"] .pas-card-toolbar--modal { background: #2a2a2a; }
html[data-theme="night"] .pas-fav-btn {
    background: #222;
    border-color: #444;
    color: #e8e8e8;
}
html[data-theme="night"] .pas-fav-btn:hover { background: #2c2c2c; color: #fff; }
html[data-theme="night"] .pas-fav-btn.is-on {
    color: var(--accent-on-dark, #ffb74d);
    border-color: rgba(255, 183, 77, 0.45);
    background: rgba(255, 183, 77, 0.12);
}

/* Variantes: solo layout; el botón es siempre el círculo */
.pas-share--modal {
    margin: 0.75rem 0 1rem;
    gap: 0.35rem;
}
.pas-share--modal .pas-share-label {
    width: 100%;
    margin: 0 0 0.2rem;
}
.pas-share--app {
    justify-content: center;
    margin-top: 0.85rem;
    gap: 0.4rem;
}
.pas-share--app .pas-share-label {
    width: 100%;
    text-align: center;
    margin: 0 0 0.3rem;
    color: #555;
}
.pas-share--inline {
    gap: 0.3rem;
}
.offcanvas-share-app {
    margin: 0.75rem 0 0.25rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.03);
}
.offcanvas-share-app .pas-share--app {
    margin-top: 0;
    justify-content: flex-start;
}
.offcanvas-share-app .pas-share-label {
    text-align: left;
}

.pas-share-toast {
    position: fixed;
    left: 50%;
    bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%) translateY(120%);
    z-index: 1200;
    padding: 0.65rem 1rem;
    border-radius: 999px;
    background: #1a1a1a;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
    opacity: 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
    pointer-events: none;
}
.pas-share-toast.is-visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}
html[data-theme="night"] .pas-share-btn {
    background: #222;
    border-color: #444;
    color: #e8e8e8;
}
html[data-theme="night"] .pas-share-btn:hover { background: #2c2c2c; color: #fff; }
html[data-theme="night"] .pas-share-btn--wa { color: #5fd4c4; border-color: #3a6660; }
html[data-theme="night"] .pas-share-btn--wa:hover { background: #1e3330; color: #7fe0d4; }
html[data-theme="night"] .pas-share-btn--tg { color: #6ec4ef; border-color: #3a5a6e; }
html[data-theme="night"] .pas-share-btn--tg:hover { background: #1e2f3a; color: #8fd4f5; }
html[data-theme="night"] .pas-share-label { color: #aaa; }
html[data-theme="night"] .pas-share-toast { background: #f0f0f0; color: #111; }
html[data-theme="night"] .offcanvas-share-app { background: rgba(255,255,255,0.06); }
html[data-theme="night"] .escritor-blog-card--destacado .pas-share-btn {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.2);
    color: #f0f0f0;
}
.escritor-blog-card-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin: 0.65rem 0 0;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.86rem;
    color: #555;
}
.escritor-blog-card-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    font-weight: 600;
}
.escritor-blog-card-stat--rating .escritor-blog-card-stat-icon {
    color: var(--accent, #e07020);
    font-size: 0.95rem;
    line-height: 1;
}
.escritor-blog-card-stat--comments iconify-icon {
    color: #6b6560;
}
.escritor-blog-card--destacado .escritor-blog-card-stats {
    border-top-color: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.82);
}
.escritor-blog-card--destacado .escritor-blog-card-stat--rating .escritor-blog-card-stat-icon {
    color: #ffb74d;
}
.escritor-blog-card--destacado .escritor-blog-card-stat--comments iconify-icon {
    color: rgba(255, 255, 255, 0.7);
}
.escritor-blog-card .prueba-card-foto-meta { padding: 0 0.75rem 0.65rem; }
.escritor-blog-card-actions {
    position: relative;
    z-index: 5;
    pointer-events: auto;
}
.escritor-blog-card-actions .item-action-form,
.escritor-blog-card-actions .btn-item-edit,
.escritor-blog-card-actions .btn-item-hide,
.escritor-blog-card-actions .btn-item-delete {
    position: relative;
    z-index: 6;
    pointer-events: auto;
}
.item-actions form.item-action-form { display: inline-flex; margin: 0; }
.escritor-blog-card-meta .prueba-card-foto-author { font-weight: 600; color: #555; }
.escritor-blog-card-meta .prueba-card-foto-genre,
.escritor-blog-card-meta .prueba-card-foto-category { color: #0d7377; }

/* Destacados — fondo contrastante (inspirado en DMR .card--featured) */
.escritor-blog-card--destacado {
    background: var(--featured-bg);
    color: var(--featured-text);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    border-color: transparent;
}
.escritor-blog-card--destacado .escritor-blog-card-media {
    background: rgba(255, 255, 255, 0.06);
}
.escritor-blog-card--destacado .escritor-blog-card-media .prueba-card-foto-img-placeholder {
    background: linear-gradient(145deg, #2a2e33 0%, #1f2328 100%);
}
.escritor-blog-badge-destacado {
    display: inline-block;
    margin: 0 0 0.45rem;
    padding: 0.15rem 0.5rem;
    border-radius: 2px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    background: var(--featured-badge-bg);
    color: var(--featured-badge-text);
}
.escritor-blog-badge-hidden {
    display: inline-block;
    margin: 0 0 0.45rem;
    padding: 0.15rem 0.5rem;
    border-radius: 2px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    background: #fff3e0;
    color: #e65100;
}
.escritor-blog-card--hidden {
    opacity: 0.72;
}
.escritor-blog-card--hidden .escritor-blog-card-media {
    filter: grayscale(0.35);
}
.escritor-blog-card--destacado .prueba-card-foto-title {
    color: var(--featured-text);
}
.escritor-blog-card--destacado .prueba-card-foto-text,
.escritor-blog-card--destacado .escritor-blog-card-meta,
.escritor-blog-card--destacado .escritor-blog-card-meta time {
    color: var(--featured-muted);
}
.escritor-blog-card--destacado .escritor-blog-card-meta .prueba-card-foto-author {
    color: var(--featured-text);
}
.escritor-blog-card--destacado .escritor-blog-card-meta .prueba-card-foto-genre,
.escritor-blog-card--destacado .escritor-blog-card-meta .prueba-card-foto-category {
    color: var(--featured-badge-text);
}
.escritor-blog-card--destacado .prueba-card-foto-meta {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.escritor-blog-card--destacado .btn-item-edit {
    background: rgba(255, 255, 255, 0.12);
    color: var(--featured-text);
}
.escritor-blog-card--destacado .btn-item-edit:hover {
    background: rgba(255, 255, 255, 0.2);
}
.escritor-blog-card--destacado .btn-item-hide {
    background: rgba(255, 255, 255, 0.1);
    color: #ddd;
}
.escritor-blog-card--destacado .btn-item-hide:hover {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}
.escritor-blog-card--destacado .btn-item-hide.is-hidden {
    background: rgba(255, 183, 77, 0.22);
    color: #ffb74d;
}
.escritor-blog-card--destacado .btn-item-delete {
    background: rgba(255, 82, 82, 0.18);
    color: #ff8a80;
}
.escritor-blog-card--destacado .btn-item-delete:hover {
    background: rgba(255, 82, 82, 0.28);
    color: #ffcdd2;
}

/* La Barra / descubrir — filtros laterales (estilo DMR) */
.barra-page .barra-container { max-width: 72rem; }
.barra-layout { display: block; }
.barra-main { min-width: 0; }
.barra-filters__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #eee;
}
.barra-filters__title {
    margin: 0;
    font-family: var(--fuente-titulo, Literata, Georgia, serif);
    font-size: 1.15rem;
    font-weight: 700;
}
.barra-filters__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #f7f7f7;
    color: #333;
    cursor: pointer;
    font-size: 1.35rem;
    line-height: 1;
}
.barra-filters-btn {
    display: inline-flex;
    align-items: center;
    height: 2.15rem;
    padding: 0 0.9rem;
    margin: 0;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #f7f7f7;
    color: #333;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}
.barra-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.75rem;
    margin: 0 0 0.85rem;
}
.barra-toolbar-spacer { flex: 1 1 auto; min-width: 0; }
.barra-toolbar .btn-admin-add { margin: 0; }
.barra-hidden-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    white-space: nowrap;
    text-decoration: none;
}
.barra-hidden-toggle.is-active {
    background: #fff3e0;
    color: #e65100;
    border-color: #ffcc80;
}
.barra-hidden-toggle.is-active:hover {
    background: #ffe0b2;
    color: #bf360c;
}
.barra-search {
    flex: 1 1 12rem;
    min-width: 0;
    margin: 0;
}
.barra-search-input {
    width: 100%;
    box-sizing: border-box;
    height: 2.15rem;
    padding: 0 0.85rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #fff;
    color: #1a1a1a;
    font: inherit;
    font-size: 0.9rem;
}
.barra-search-input:focus {
    outline: none;
    border-color: var(--turquesa-oscuro, #0d7377);
    box-shadow: 0 0 0 2px rgba(13, 115, 119, 0.15);
}
.barra-search-input::placeholder { color: #999; }
.barra-search-empty {
    margin: 0 0 0.85rem;
    padding: 0.85rem 1rem;
    text-align: center;
    color: #777;
    font-size: 0.95rem;
    background: #fafafa;
    border: 1px dashed #ddd;
    border-radius: 8px;
}
.barra-search-empty[hidden] { display: none !important; }
html[data-theme="night"] .barra-search-input {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .barra-search-input::placeholder { color: #888; }
html[data-theme="night"] .barra-search-empty {
    background: #1e1e1e;
    border-color: #444;
    color: #aaa;
}
[data-blog-search-item][hidden] { display: none !important; }
.barra-filters-backdrop {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    transition: opacity 0.22s ease;
    pointer-events: none;
}
.barra-filters-backdrop:not([hidden]) { pointer-events: auto; }
body.barra-filters-open .barra-filters-backdrop { opacity: 1; }
.barra-filter-group { margin: 0 0 1.25rem; }
.barra-filter-group__title {
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #888;
}
.barra-filter-group__hint {
    margin: -0.2rem 0 0.55rem;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #999;
}
.barra-chip--interes:not(.barra-chip--on) {
    border-color: #f0d4b8;
    background: #fffaf4;
}
.barra-chips {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}
.barra-chip {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
    text-decoration: none;
    border: 1px solid #e0e0e0;
    border-radius: 999px;
    padding: 0.5rem 0.85rem;
    background: #fff;
    color: #555;
    font-size: 0.85rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
}
button.barra-chip { appearance: none; }.barra-chip:hover { border-color: #ccc; color: #222; background: #fafafa; }
.barra-chip--on,
.barra-chip--on:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-ink, #fff);
}

/* Eventos y noticias (oficiales PostAlSur) */
.eventos-noticias-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.eventos-noticias-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 1.25rem;
}
.eventos-noticias-filters .barra-chip {
    width: auto;
    display: inline-block;
    padding: 0.4rem 0.85rem;
}
.eventos-noticias-kind {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #0d7377;
}
.eventos-noticias-kind--evento { color: var(--turquesa-oscuro, #ff9800); }
.eventos-noticias-kind--convocatoria { color: #6a1b9a; }
.eventos-noticias-when { margin: 0.35rem 0 0; font-size: 0.85rem; color: #666; }
.eventos-noticias-modal-note { margin: 0 0 1rem; font-size: 0.9rem; color: #666; }
.eventos-noticias-dates { display: grid; gap: 0.75rem; margin-bottom: 0.75rem; }
@media (min-width: 560px) {
    .eventos-noticias-dates { grid-template-columns: 1fr 1fr; }
}
.eventos-noticias-back { margin: 0 0 1rem; }
.eventos-noticias-back a { color: #666; text-decoration: none; font-size: 0.9rem; }
.eventos-noticias-back a:hover { color: var(--turquesa-oscuro, #ff9800); }
.eventos-noticias-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 0.85rem; align-items: center; }

@media (max-width: 959px) {
    .barra-filters {
        position: fixed;
        top: 0;
        left: 0;
        right: auto;
        bottom: 0;
        width: min(18.5rem, 88vw);
        z-index: 1001;
        display: flex;
        flex-direction: column;
        padding: 1rem;
        background: #fff;
        border-right: 1px solid #eee;
        border-left: none;
        box-shadow: 8px 0 32px rgba(0, 0, 0, 0.12);
        transform: translateX(-104%);
        transition: transform 0.24s ease;
        overflow-y: auto;
        overscroll-behavior: contain;
        pointer-events: none;
    }
    .barra-filters-backdrop {
        z-index: 1000;
    }
    body.barra-filters-open { overflow: hidden; }
    body.barra-filters-open .barra-filters {
        transform: translateX(0);
        pointer-events: auto;
    }
    .barra-filters-btn {
        align-self: flex-start;
    }
}

@media (min-width: 960px) {
    .barra-layout {
        display: grid;
        grid-template-columns: 13rem minmax(0, 1fr);
        gap: 2rem;
        align-items: start;
    }
    .barra-layout--no-filters { grid-template-columns: 1fr; }
    .barra-filters {
        grid-column: 1;
        grid-row: 1;
        position: sticky;
        top: 5.5rem;
        max-height: calc(100vh - 6.5rem);
        overflow-y: auto;
        padding: 0;
        background: transparent;
        box-shadow: none;
        transform: none;
        pointer-events: auto;
    }
    .barra-main { grid-column: 2; grid-row: 1; }
    .barra-layout--no-filters .barra-main { grid-column: 1; }
    .barra-filters-btn { display: none; }
    .barra-filters-backdrop { display: none !important; }
    .barra-filters__head { display: none; }
    /* Grilla de 3 columnas junto al sidebar de filtros (La Barra y blog del autor) */
    .barra-main .prueba-cards-fotos-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    /* Librería: columna de aliados (después de reglas genéricas de .barra-layout) */
    .libros-page .barra-layout--with-allied {
        grid-template-columns: 13rem minmax(0, 1fr) 16.5rem;
    }
    .libros-page .barra-layout--with-allied.barra-layout--no-filters {
        grid-template-columns: minmax(0, 1fr) 16.5rem;
    }
    .libros-page .barra-layout--with-allied .barra-main {
        grid-column: 2;
        grid-row: 1;
    }
    .libros-page .barra-layout--with-allied.barra-layout--no-filters .barra-main {
        grid-column: 1;
    }
    .libros-page .barra-layout--with-allied .editoriales-aliadas {
        grid-column: 3;
        grid-row: 1;
        margin: 0;
        position: sticky;
        top: 5.5rem;
        max-height: calc(100vh - 6.5rem);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0 0.15rem 0.5rem 0;
        -webkit-overflow-scrolling: touch;
    }
    .libros-page .barra-layout--with-allied.barra-layout--no-filters .editoriales-aliadas {
        grid-column: 2;
    }
}


.blog-lectura-panel { max-width: 42rem; margin: 0 auto; }
.blog-lectura-toolbar { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; }
.blog-lectura-cover { width: 100%; max-height: 280px; object-fit: cover; border-radius: 10px; margin-bottom: 1.25rem; background: #eee; }
.blog-lectura-meta { font-size: 0.9rem; color: #666; margin: 0 0 0.5rem; }
.blog-lectura-title { font-family: 'Literata', Georgia, serif; font-size: clamp(1.35rem, 3vw, 1.85rem); margin: 0 0 1.25rem; line-height: 1.25; }
.blog-lectura-body {
    line-height: 1.75;
    color: #333;
    margin-bottom: 1.5rem;
    font-size: 1.15rem;
}
.blog-lectura-body p,
.blog-lectura-body .post-p,
.post-blocks-body > p,
.post-blocks-body .post-p,
.articulo-body-formatted .post-p {
    display: block;
    margin: 0 !important;
    padding: 0 0 1.85em !important;
}
.blog-lectura-body p:last-child,
.blog-lectura-body .post-p:last-child,
.post-blocks-body > p:last-child,
.post-blocks-body .post-p:last-child {
    padding-bottom: 0.35em !important;
}
/* Si el texto usa <br> como “párrafo” (importaciones / un solo bloque) */
.blog-lectura-body br,
.post-blocks-body .post-p br,
.articulo-body-formatted p br {
    content: "";
    display: block;
    margin-top: 1.1em;
}
.articulo-meta-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.5rem; }
.articulo-meta-actions .btn-medium { font-size: 0.9rem; padding: 0.4rem 1rem; }
.escritor-section h3 { margin-bottom: 0.75rem; }
.escritor-list { list-style: none; padding: 0; margin: 0; }
.escritor-list li { padding: 0.75rem 0; border-bottom: 1px solid #eee; }
.escritor-meta { color: #777; font-size: 0.9rem; }
.escritor-edit h4 { margin-top: 2rem; }
.inline-form { display: inline; margin-left: 0.5rem; }

/* Perfil personal (pestaña Escritor) */
.escritor-perfil {
    max-width: 42rem;
    margin: 0.25rem 0 0;
}
.escritor-tab-panel .escritor-perfil-view {
    margin-bottom: 1.75rem;
}
.escritor-perfil-view:not(.escritor-perfil-view--empty) {
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e8e8e8;
}
.escritor-perfil-view-head,
.escritor-perfil-cuenta-teaser-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    margin: 0 0 0.85rem;
}
.escritor-perfil-view-head .escritor-perfil-view-title,
.escritor-perfil-cuenta-teaser-head .escritor-perfil-view-title {
    margin: 0;
}
.escritor-perfil-view-empty {
    margin: 0;
    color: #666;
    line-height: 1.55;
}
.escritor-perfil-cuenta-teaser {
    margin-top: 2rem;
    padding-top: 1.75rem;
    border-top: 1px solid #eee;
}
.escritor-perfil-cuenta-teaser-lead {
    margin: 0;
    color: #666;
    font-size: 0.95rem;
    line-height: 1.45;
}
.escritor-perfil-modal {
    position: relative;
    max-width: 640px;
}
.escritor-perfil-modal-title {
    margin: 0 2rem 0.5rem 0;
    font-size: 1.25rem;
}
.escritor-cuenta-modal .escritor-perfil-edit-lead { margin-bottom: 1rem; }
.escritor-cuenta-modal form + form { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid #eee; }
html[data-theme="night"] .escritor-perfil-cuenta-teaser { border-top-color: #333; }
html[data-theme="night"] .escritor-perfil-view-empty,
html[data-theme="night"] .escritor-perfil-cuenta-teaser-lead { color: #aaa; }
html[data-theme="night"] .escritor-cuenta-modal form + form { border-top-color: #333; }
.escritor-perfil-view-title {
    margin: 0 0 0.65rem;
    font-size: 1.15rem;
}
.escritor-perfil-view-meta {
    margin: 0 0 0.85rem;
    color: #666;
    font-size: 0.95rem;
    line-height: 1.45;
}
.escritor-perfil-view-headline { font-weight: 600; color: #333; }
.escritor-perfil-view-sep { margin: 0 0.35rem; color: #aaa; }
.escritor-perfil-view-bio {
    margin: 0;
    line-height: 1.65;
    color: #333;
}
.escritor-perfil-edit-head { margin: 0 0 1.15rem; }
.escritor-perfil-edit-title {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
}
.escritor-perfil-edit-lead {
    margin: 0;
    color: #666;
    font-size: 0.95rem;
    line-height: 1.45;
    max-width: 36rem;
}
.escritor-cuenta {
    margin-top: 2rem;
    padding-top: 1.75rem;
    border-top: 1px solid #eee;
}
html[data-theme="night"] .escritor-cuenta { border-top-color: #333; }
.escritor-perfil-form { margin: 0; }
.escritor-perfil-form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0 1rem;
}
.escritor-perfil-form-bio { margin-bottom: 0.75rem; }
.escritor-perfil-form-bio textarea { min-height: 11rem; }
.escritor-perfil-form-actions {
    display: flex;
    justify-content: flex-start;
    margin-top: 0.35rem;
}
.escritor-perfil-form-actions .btn-medium { margin-top: 0; }
@media (min-width: 640px) {
    .escritor-perfil-form-row {
        grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    }
}
html[data-theme="night"] .escritor-perfil-view {
    border-bottom-color: #333;
}
html[data-theme="night"] .escritor-perfil-view-meta,
html[data-theme="night"] .escritor-perfil-edit-lead { color: #aaa; }
html[data-theme="night"] .escritor-perfil-view-headline,
html[data-theme="night"] .escritor-perfil-view-bio { color: #f0f0f0; }
html[data-theme="night"] .escritor-perfil-view-sep { color: #a8a8a8; }

/* Servicios del escritor */
.escritor-services-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin: 0 0 1.15rem;
}
.escritor-services-toolbar-count {
    margin: 0;
    font-size: 0.95rem;
    color: #666;
}
.escritor-services-toolbar .btn-medium {
    margin: 0;
    padding: 0.45rem 1.1rem;
    font-size: 0.92rem;
}
.escritor-services {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.escritor-services-empty {
    margin: 0;
    padding: 1.25rem 1rem;
    text-align: center;
    color: #777;
    font-size: 0.98rem;
    background: #fafafa;
    border: 1px dashed #ddd;
    border-radius: 8px;
}
.escritor-service {
    position: relative;
    padding: 1rem 1.1rem 1.05rem;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    border-left: 3px solid var(--turquesa-oscuro, #0d7377);
}
.escritor-service-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.45rem 0.65rem;
    margin-bottom: 0.35rem;
}
.escritor-service-title {
    margin: 0;
    flex: 1 1 10rem;
    min-width: 0;
    font-family: var(--fuente-titulo, 'Literata', Georgia, serif);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
    color: #1a1a1a;
}
.escritor-service-price {
    display: inline-block;
    flex: 0 0 auto;
    margin: 0.1rem 0 0;
    padding: 0.2rem 0.55rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #1a5c54;
    background: #eef7f6;
    border-radius: 999px;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.escritor-service-delete {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
}
.escritor-service-delete-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: #fafafa;
    color: #888;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.escritor-service-delete-btn:hover {
    background: #ffebee;
    border-color: #ef9a9a;
    color: #c62828;
}
.escritor-service-desc {
    margin: 0.35rem 0 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: #555;
}
.escritor-service-actions {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.escritor-service-contact {
    font-size: 0.88rem;
    padding: 0.35rem 0.9rem;
}
.escritor-service-modal-box {
    position: relative;
    padding-top: 1.75rem;
}
.escritor-service-modal-error {
    margin: 0 0 0.85rem;
    padding: 0.6rem 0.75rem;
    border-radius: 6px;
    background: #ffebee;
    border: 1px solid #ef9a9a;
    color: #c62828;
    font-size: 0.92rem;
}
body.modal-body-lock { overflow: hidden; }
.concursos-wall { list-style: none; padding: 0; margin: 0; max-width: 40rem; margin-inline: auto; }
.concurso-wall-item { border-bottom: 1px solid #e8e8e8; }
.concurso-wall-item .pas-share--card {
    padding: 0 0.25rem 0.75rem;
}
.concurso-wall-link { display: block; padding: 1rem 0.25rem; text-decoration: none; color: inherit; }
.concurso-wall-link:hover { background: #fafafa; }
html[data-theme="night"] .concurso-wall-item { border-bottom-color: #333; }
html[data-theme="night"] .concurso-wall-link:hover { background: #2a2a2a; }
.concurso-header .pas-share { margin-top: 0.75rem; }
.concurso-wall-title { display: block; font-weight: 700; font-family: var(--fuente-titulo, Georgia, serif); }
.concurso-wall-meta, .concurso-wall-date { display: block; font-size: 0.85rem; color: #777; margin-top: 0.25rem; }
.concurso-page { padding-block: 1.5rem 3rem; max-width: 42rem; }
.concurso-header h2 { margin-bottom: 0.35rem; }
.concurso-meta { color: #666; font-size: 0.95rem; }
.concurso-desc { margin: 1.25rem 0; line-height: 1.6; }
.concurso-section { margin: 2rem 0; }
.admin-contest-extra { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid #eee; }
.admin-contest-jurors { list-style: none; margin: 0 0 1rem; padding: 0; }
.admin-contest-jurors li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid #f0f0f0;
}
html[data-theme="night"] .admin-contest-extra { border-top-color: #333; }
html[data-theme="night"] .admin-contest-jurors li { border-bottom-color: #333; }
.concurso-review-card { border: 1px solid #e8e8e8; border-radius: 6px; padding: 1rem; margin-bottom: 1.5rem; background: #fff; }
.concurso-review-text { max-height: 16rem; overflow: auto; margin: 0.75rem 0 1rem; padding: 0.75rem; background: #fafafa; font-size: 0.95rem; line-height: 1.55; white-space: pre-wrap; }
.concurso-ranking { padding-left: 1.25rem; }
.rating-form .rating-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.65rem; }
.rating-form .rating-row select { width: auto; min-width: 5rem; }

/* Estrellas interactivas */
.rating-stars-row {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid #eee;
}
.rating-stars-row:last-of-type { border-bottom: none; }
.rating-stars-label {
    flex: 1 1 10rem;
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
}
.rating-stars {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    flex: 0 0 auto;
}
.rating-star {
    appearance: none;
    border: none;
    background: transparent;
    padding: 0.1rem 0.15rem;
    margin: 0;
    cursor: pointer;
    font-size: 1.55rem;
    line-height: 1;
    color: #d0d0d0;
    transition: color 0.12s ease, transform 0.12s ease;
}
.rating-star:hover,
.rating-star:focus-visible {
    transform: scale(1.12);
    outline: none;
}
.rating-star.is-on,
.rating-star.is-preview {
    color: var(--turquesa-oscuro, #ff9800);
}
.rating-star.is-preview:not(.is-on) {
    color: var(--turquesa-claro, #ffb74d);
}
.rating-stars-hint {
    margin-left: 0.45rem;
    min-width: 4.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #888;
    font-variant-numeric: tabular-nums;
}
.rating-stars.has-value .rating-stars-hint {
    color: var(--turquesa-oscuro, #ff9800);
}
.rating-stars.is-invalid {
    outline: 2px solid #c62828;
    outline-offset: 4px;
    border-radius: 6px;
}
.rating-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
}
.rating-avgs-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 0.5rem 0.75rem;
    align-items: center;
}
.rating-avg-stars {
    letter-spacing: 0.05em;
    color: #d0d0d0;
    font-size: 1.05rem;
}
.rating-avg-stars .is-on { color: var(--turquesa-oscuro, #ff9800); }
.rating-avg-num {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    min-width: 2.5rem;
    text-align: right;
}
html[data-theme="night"] .rating-avg-stars { color: #555; }
html[data-theme="night"] .rating-avg-stars .is-on { color: var(--accent-on-dark, #ffb74d); }
html[data-theme="night"] .rating-stars-row { border-bottom-color: #333; }
html[data-theme="night"] .rating-stars-label { color: #f0f0f0; }
html[data-theme="night"] .rating-star { color: #555; }
html[data-theme="night"] .rating-star.is-on,
html[data-theme="night"] .rating-stars.has-value .rating-stars-hint {
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .rating-star.is-preview:not(.is-on) {
    color: var(--accent-on-dark, #ffb74d);
    opacity: 0.7;
}
html[data-theme="night"] .rating-stars-hint { color: #aaa; }
.rating-summary { margin-bottom: 0.5rem; }
.rating-avgs-list { list-style: none; padding: 0; margin: 0 0 1.25rem; font-size: 0.95rem; color: #444; }
.rating-avgs-list li { padding: 0.2rem 0; }
.articulo-ratings { margin: 2rem 0; padding-top: 1.5rem; border-top: 1px solid #eee; }
.admin-concursos { padding-block: 1.5rem 3rem; max-width: 40rem; }

/* Compartir + bloques DMR en artículos */
.articulo-share { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 1.25rem 0; padding: 0.75rem 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.articulo-share-label { font-size: 0.9rem; color: #666; margin-right: 0.25rem; }
.articulo-share-btn { display: inline-block; padding: 0.35rem 0.75rem; border: 1px solid #ddd; border-radius: 4px; background: #fff; color: #333; text-decoration: none; font-size: 0.85rem; cursor: pointer; font-family: inherit; }
.articulo-share-btn:hover { background: #f5f5f5; color: #111; }
.post-blocks-body .post-image, .post-blocks-body .post-video-upload, .post-blocks-body figure { margin: 1.25rem 0; }
.post-blocks-body .post-image__img, .post-blocks-body img { max-width: 100%; height: auto; border-radius: 4px; }
.post-blocks-body blockquote,
.post-blocks-body .post-quote {
    margin: 1rem 0;
    padding: 0.85rem 1.1rem;
    border-left: 3px solid var(--accent, #0d7377);
    background: var(--turquesa-sutil, #f7fafa);
    color: var(--texto-oscuro, #1a1a1a);
    font-style: italic;
    border-radius: 0 8px 8px 0;
}
.post-blocks-body .post-quote p { margin: 0; }
.post-blocks-body .post-quote__cite {
    display: block;
    margin-top: 0.5rem;
    font-style: normal;
    font-size: 0.9rem;
    color: var(--texto-medio, #666);
}
.post-blocks-body .post-subtitle {
    color: var(--texto-medio, #666);
    font-size: 1.15rem;
    margin: 0 0 1.15rem;
}
.post-blocks-body .post-embed, .post-blocks-body iframe { max-width: 100%; }
.post-blocks-body h2, .post-blocks-body h3 { margin-top: 1.5rem; }

html[data-theme="night"] .post-blocks-body blockquote,
html[data-theme="night"] .post-blocks-body .post-quote {
    background: #242424;
    border-left-color: var(--accent, #0d7377);
    color: #e8e8e8;
}
html[data-theme="night"] .post-blocks-body .post-quote__cite,
html[data-theme="night"] .post-blocks-body .post-subtitle {
    color: #aaa;
}
html[data-theme="night"] .articulo-body-formatted h2,
html[data-theme="night"] .articulo-body-formatted h3,
html[data-theme="night"] .post-blocks-body .post-h2,
html[data-theme="night"] .post-blocks-body .post-h3 {
    color: #f0f0f0;
}
html[data-theme="night"] .post-blocks-body .post-file,
html[data-theme="night"] .post-blocks-body .post-link,
html[data-theme="night"] .post-blocks-body .post-embed__teaser {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .blog-lectura-cover {
    background: #2a2a2a;
}
.escribir-medium { padding: 1.25rem 0 2rem; }
.escribir-medium .container-medium { max-width: 1320px; }
.escribir-blocks .editor-layout { margin-top: 0.25rem; }
.escribir-blocks .editor-layout--pas {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr) 280px;
    gap: 1.15rem;
    align-items: start;
}
@media (min-width: 1100px) {
    .escribir-blocks .editor-layout--pas:has(.editor-side--meta.is-collapsed) {
        grid-template-columns: 200px minmax(0, 1fr) minmax(9.5rem, 11.5rem);
    }
}
.escribir-blocks .editor-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.escribir-blocks .editor-side--meta {
    position: sticky;
    top: 4.5rem;
    align-self: start;
    min-width: 0;
}
.escribir-blocks .editor-meta-bar { margin-bottom: 0.5rem; }
.escribir-blocks .editor-meta-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid #e0ddd8;
    border-radius: 8px;
    background: #fafbfc;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1a1a1a;
    cursor: pointer;
    text-align: left;
}
.escribir-blocks .editor-meta-toggle:hover { border-color: #ccc; background: #f3f3f3; }
.escribir-blocks .editor-meta-toggle__label { flex: 1; min-width: 0; }
.escribir-blocks .editor-meta-toggle__hint {
    font-size: 0.75rem;
    font-weight: 500;
    color: #888;
}
.escribir-blocks .editor-meta-toggle__caret {
    font-size: 0.7rem;
    opacity: 0.7;
    transition: transform 0.15s ease;
}
.escribir-blocks .editor-side--meta.is-collapsed .editor-meta-toggle__caret {
    transform: rotate(-90deg);
}
.escribir-blocks .editor-panel--meta {
    background: #fafbfc;
    border: 1px solid #e8e6e3;
    border-radius: 12px;
    padding: 0.95rem 1rem 1rem;
    margin: 0;
    border-bottom: none;
}
.escribir-blocks .editor-panel--meta .editor-field { margin-bottom: 0.9rem; }
.escribir-blocks .editor-panel--meta .editor-field:last-child { margin-bottom: 0; }
.escribir-blocks .editor-panel--doc {
    background: #fff;
    border: 1px solid #e8e6e3;
    border-radius: 12px;
    padding: 1rem 1.15rem 1.15rem;
    flex: 1;
    min-height: 0;
}
.escribir-blocks .editor-doc-scroll {
    min-height: min(55vh, 28rem);
}
.escribir-blocks .editor-panel-title {
    font-family: 'Literata', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 0.2rem;
    color: #1a1a1a;
}
.escribir-blocks .editor-field--title { margin: 0; }
.escribir-blocks .editor-field--title input[type="text"] {
    font-size: 1.35rem;
    font-family: 'Literata', Georgia, serif;
    font-weight: 600;
    padding: 0.65rem 0.85rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
}
.escribir-blocks .editor-field label,
.escribir-blocks .editor-field-label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 600;
    font-size: 0.85rem;
    color: #333;
}
.escribir-blocks .editor-hint-inline { font-weight: 400; color: #888; font-size: 0.78rem; }
.escribir-blocks .editor-hint { margin: 0.3rem 0 0; font-size: 0.8rem; color: #888; line-height: 1.4; }

@media (max-width: 1099px) {
    .escribir-blocks .editor-layout--pas {
        grid-template-columns: 180px minmax(0, 1fr);
    }
    .escribir-blocks .editor-side--meta {
        grid-column: 1 / -1;
        position: static;
        order: -1;
    }
}
@media (max-width: 900px) {
    .escribir-blocks .editor-layout--pas { grid-template-columns: 1fr; }
    .escribir-blocks .editor-side--meta { order: 0; }
    .escribir-blocks .btn-submit-article {
        margin-bottom: 1rem;
        width: 100%;
        justify-content: center;
    }
}

/* Selector de categoría */
.escribir-blocks .editor-select-wrap { position: relative; }
.escribir-blocks .editor-select,
.escribir-blocks .editor-field select.editor-select,
.escribir-blocks .form-article-medium .editor-select {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0.65rem 2.1rem 0.65rem 0.75rem;
    border: 1px solid #d0ceca !important;
    border-radius: 8px !important;
    border-bottom: 1px solid #d0ceca !important;
    font-size: 0.95rem !important;
    font-family: inherit;
    color: #1a1a1a;
    background-color: #fff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23555' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.75rem center !important;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    box-sizing: border-box;
}
.escribir-blocks .editor-select:hover { border-color: #bbb !important; }
.escribir-blocks .editor-select:focus {
    outline: none;
    border-color: var(--turquesa-oscuro, #ff9800) !important;
    box-shadow: 0 0 0 3px rgba(255, 152, 0, 0.15);
}

/* Portada */
.escribir-blocks .editor-file-input {
    position: absolute;
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    z-index: -1;
}
.escribir-blocks .editor-file-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0.55rem 0.75rem;
    border: 1px dashed #c8c5c0;
    border-radius: 8px;
    background: #fff;
    color: #444;
    font-weight: 500;
    font-size: 0.88rem;
    cursor: pointer;
    max-width: 100%;
}
.escribir-blocks .editor-file-btn:hover {
    border-color: var(--turquesa-oscuro, #ff9800);
    color: var(--turquesa-oscuro, #ff9800);
    background: #fffaf3;
}
.escribir-blocks .editor-cover-current {
    margin: 0.45rem 0 0;
    font-size: 0.85rem;
    color: #666;
}
.escribir-blocks .editor-cover-preview {
    margin-top: 0.65rem;
}
.escribir-blocks .editor-cover-preview img {
    display: block;
    width: 100%;
    max-width: 240px;
    height: auto;
    max-height: 160px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #e4e0d8;
    background: #f5f3ef;
}
.escribir-blocks .editor-cover-current img {
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid #e8e6e3;
}

/* Tag picker */
.tag-picker { position: relative; }
.tag-picker__shell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    min-height: 2.5rem;
    padding: 0.4rem 0.55rem;
    border: 1px solid #d0ceca;
    border-radius: 8px;
    background: #fff;
    cursor: text;
}
.tag-picker__shell:focus-within {
    border-color: var(--turquesa-oscuro, #ff9800);
    box-shadow: 0 0 0 3px rgba(255, 152, 0, 0.15);
}
.tag-picker__badges { display: contents; }
.tag-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.22rem 0.4rem 0.22rem 0.55rem;
    border: none;
    border-radius: 999px;
    background: var(--turquesa-sutil, #fff3e0);
    color: #c45c00;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    line-height: 1.2;
}
.tag-badge:hover { background: #ffe0b2; color: #a04000; }
.tag-badge__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tag-badge__x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    font-size: 0.9rem;
    line-height: 1;
    opacity: 0.7;
}
.tag-badge:hover .tag-badge__x { opacity: 1; background: rgba(0,0,0,0.06); }
.tag-picker__input {
    flex: 1 1 5rem;
    min-width: 4.5rem;
    border: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    padding: 0.3rem 0.1rem !important;
    background: transparent !important;
    font-size: 0.9rem !important;
    box-shadow: none !important;
    outline: none;
}
.tag-picker__list {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 40;
    margin: 0;
    padding: 0.3rem 0;
    list-style: none;
    max-height: 12rem;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e0ddd8;
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.12);
}
.tag-picker__list[hidden] { display: none !important; }
.tag-picker__option {
    padding: 0.5rem 0.8rem;
    font-size: 0.88rem;
    color: #1a1a1a;
    cursor: pointer;
}
.tag-picker__option:hover,
.tag-picker__option.is-active {
    background: #fff3e0;
    color: #c45c00;
}

/* Toggle destacado */
.escribir-blocks .editor-toggle {
    display: flex !important;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 0;
    padding: 0.7rem 0.75rem;
    border: 1px solid #e8e6e3;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}
.escribir-blocks .editor-toggle input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.escribir-blocks .editor-toggle__ui {
    flex-shrink: 0;
    width: 2.35rem;
    height: 1.3rem;
    margin-top: 0.1rem;
    border-radius: 999px;
    background: #ddd;
    position: relative;
    transition: background 0.15s;
}
.escribir-blocks .editor-toggle__ui::after {
    content: '';
    position: absolute;
    top: 0.12rem;
    left: 0.12rem;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    transition: transform 0.15s;
}
.escribir-blocks .editor-toggle input:checked + .editor-toggle__ui {
    background: var(--turquesa-oscuro, #ff9800);
}
.escribir-blocks .editor-toggle input:checked + .editor-toggle__ui::after {
    transform: translateX(1.05rem);
}
.escribir-blocks .editor-toggle__text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}
.escribir-blocks .editor-toggle__text strong {
    font-size: 0.9rem;
    color: #1a1a1a;
}
.escribir-blocks .editor-toggle__text .editor-hint { margin: 0; }
.escribir-blocks .btn-submit-article { margin-top: 0.35rem; align-self: flex-start; }

.tag-checkboxes { display: flex; flex-wrap: wrap; gap: 0.5rem 0.85rem; margin: 0.35rem 0; }
.tag-check { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 400; font-size: 0.95rem; cursor: pointer; }
.tag-check input { width: auto; margin: 0; }
.editor-hint-inline { font-weight: 400; color: #888; font-size: 0.85rem; }
.editor-field-label { display: block; margin-bottom: 0.35rem; font-weight: 600; font-size: 0.9rem; }

html[data-theme="night"] .escribir-blocks .editor-panel--meta,
html[data-theme="night"] .escribir-blocks .editor-panel--doc,
html[data-theme="night"] .escribir-blocks .editor-meta-toggle {
    background: #1c1c1c;
    border-color: #3a3a3a;
    color: #f0f0f0;
}
html[data-theme="night"] .escribir-blocks .editor-panel-title,
html[data-theme="night"] .escribir-blocks .editor-toggle__text strong { color: #f0f0f0; }
html[data-theme="night"] .escribir-blocks .editor-field label,
html[data-theme="night"] .escribir-blocks .editor-field-label { color: #ddd; }
html[data-theme="night"] .escribir-blocks .editor-select,
html[data-theme="night"] .escribir-blocks .editor-field--title input[type="text"],
html[data-theme="night"] .tag-picker__shell,
html[data-theme="night"] .escribir-blocks .editor-file-btn,
html[data-theme="night"] .escribir-blocks .editor-toggle {
    background: #2a2a2a !important;
    border-color: #555 !important;
    color: #f0f0f0 !important;
}
html[data-theme="night"] .tag-picker__list {
    background: #1c1c1c;
    border-color: #3a3a3a;
}
html[data-theme="night"] .tag-picker__option { color: #f0f0f0; }
html[data-theme="night"] .tag-picker__option:hover,
html[data-theme="night"] .tag-picker__option.is-active {
    background: #333;
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .tag-badge {
    background: rgba(255, 152, 0, 0.2);
    color: #ffb74d;
}
html[data-theme="night"] .escribir-blocks .editor-meta-toggle__hint { color: #aaa; }

/* Conversación del autor — columna lateral (overlay) */
.hub-tabs .escritor-chat-tab {
    appearance: none;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.95rem;
    font-weight: 500;
    color: #555;
    padding: 0.5rem 1rem;
    margin-bottom: -2px;
}
.hub-tabs .escritor-chat-tab.hub-tab-active {
    color: var(--turquesa-oscuro, #ff9800);
    border-bottom-color: var(--turquesa-oscuro, #ff9800);
}

.escritor-chat-fab {
    position: relative;
    width: 3.5rem;
    height: 3.5rem;
    border: none;
    border-radius: 999px;
    background: var(--accent, #ff9800);
    color: #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.18s ease, background 0.18s ease;
    flex-shrink: 0;
}
.escritor-chat-fab:hover { transform: scale(1.05); }
.barra-write-fab {
    /* Compat: mismo aspecto que btn-create-round dentro de .fab-stack */
    position: static;
    width: 3.5rem;
    height: 3.5rem;
    border: none;
    border-radius: 999px;
    background: var(--accent, #ff9800);
    color: #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.18s ease, background 0.18s ease;
    flex-shrink: 0;
}
.barra-write-fab:hover {
    color: #fff;
    transform: scale(1.05);
}
.barra-write-fab__plus {
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;
    margin-top: -0.1rem;
}
html[data-theme="night"] .barra-write-fab {
    background: var(--accent, #ff9800);
    color: #fff;
}
.escritor-chat-fab__icon-close { display: none; font-size: 1.75rem; line-height: 1; }
body.escritor-chat-open .escritor-chat-fab__icon-open { display: none; }
body.escritor-chat-open .escritor-chat-fab__icon-close { display: block; }

.escritor-chat-backdrop {
    position: fixed;
    inset: 0;
    z-index: 12140;
    background: rgba(20, 20, 20, 0.28);
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
}
.escritor-chat-backdrop[hidden] { display: none !important; }

.escritor-chat-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 12150; /* por encima del navbar sticky (12000) para que se vea el título/cerrar */
    width: min(26rem, 100vw);
    height: 100vh;
    height: 100dvh;
    display: flex !important; /* permite animar aunque tenga [hidden] */
    flex-direction: column;
    background: #fff;
    box-shadow: -10px 0 36px rgba(0, 0, 0, 0.16);
    transform: translateX(100%);
    transition: transform 0.28s ease;
    box-sizing: border-box;
    visibility: visible;
}
.escritor-chat-drawer.is-open {
    transform: translateX(0);
}
.escritor-chat-drawer[hidden]:not(.is-open) {
    pointer-events: none;
    visibility: hidden;
    /* se queda en pantalla pero fuera; el transform anima al abrir */
}

.escritor-chat-drawer__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-shrink: 0;
    padding: 1rem 1rem 0.85rem;
    border-bottom: 1px solid #eee;
    background: #fafafa;
}
.escritor-chat-drawer__title {
    margin: 0;
    font-family: var(--fuente-titulo, Literata, Georgia, serif);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.2;
}
.escritor-chat-drawer__sub {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
    color: #666;
}
.escritor-chat-drawer__close {
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #fff;
    color: #333;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
}
.escritor-chat-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.escritor-chat-lead {
    margin: 0;
    padding: 0.75rem 1rem 0;
    color: #555;
    font-size: 0.9rem;
    line-height: 1.45;
    flex-shrink: 0;
}
.escritor-chat-drawer .timeline-embed-autor {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    border: none;
    border-radius: 0;
    background: #fff;
    padding: 0;
}
.escritor-chat-drawer .timeline-embed-autor .timeline-inner {
    flex: 1 1 auto;
    min-height: 0;
    max-width: none;
    margin: 0;
    padding: 0.75rem 1rem 1rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    box-sizing: border-box;
}
.escritor-chat-drawer .timeline-embed-autor .composer-embed,
.escritor-chat-drawer .composer-fixed-medium.composer-embed {
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    width: 100%;
    flex-shrink: 0;
    margin: 0;
    border-radius: 0;
    border-top: 1px solid #eee;
    box-shadow: 0 -4px 14px rgba(0, 0, 0, 0.05);
    background: #fff;
    z-index: 1;
}
.escritor-chat-drawer .timeline-embed-autor .composer-bar-medium {
    max-width: none;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
.escritor-chat-drawer .timeline-embed-autor #chat-composer {
    position: relative;
}
.escritor-chat-drawer .timeline-embed-autor .emoji-picker {
    left: 0.75rem;
    right: 0.75rem;
}

@media (min-width: 960px) {
    /* Desktop: columna derecha parcial; sin oscurecer toda la página */
    .escritor-chat-backdrop { background: transparent; }
    .escritor-chat-drawer {
        top: 0;
        width: min(24rem, 38vw);
        border-left: 1px solid #e8e8e8;
    }
    body.escritor-chat-open .fab-stack {
        right: calc(min(24rem, 38vw) + 1rem);
    }
    /* Con el chat lateral abierto, el + de escribir sobra */
    body.escritor-chat-open .btn-create-round,
    body.escritor-chat-open .barra-write-fab {
        display: none !important;
    }
}

@media (max-width: 959px) {
    .escritor-chat-drawer {
        width: 100vw;
        max-width: 100vw;
    }
    /*
     * Chat a pantalla completa en móvil: ocultar TODOS los FABs flotantes
     * (volver, cerrar chat, +). El drawer ya trae × en el encabezado y el
     * composer trae enviar; así no se montan círculos naranjas unos sobre otros.
     */
    body.escritor-chat-open .fab-stack,
    body.escritor-chat-open .fab-stack--back,
    body.escritor-chat-open .fab-stack--barra {
        display: none !important;
    }
    body.escritor-chat-open .escritor-chat-drawer {
        height: 100dvh;
        max-height: 100dvh;
    }
    /* Composer por encima de la barra gestual del sistema */
    .escritor-chat-drawer .composer-fixed-medium.composer-embed {
        padding-bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
    }
    .escritor-chat-drawer__close {
        min-width: 2.5rem;
        min-height: 2.5rem;
        font-size: 1.75rem;
    }
}

/* ——— Tema nocturno: superficies globales pendientes ——— */
html[data-theme="night"] .modal-box,
html[data-theme="night"] .autor-ficha-modal-box,
html[data-theme="night"] .admin-toast {
    background: #1c1c1c;
    border-color: #3a3a3a;
    color: #f0f0f0;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.55);
}
html[data-theme="night"] .modal-box h2,
html[data-theme="night"] .modal-box form label span { color: #f0f0f0; }
html[data-theme="night"] .modal-close { color: #aaa; }
html[data-theme="night"] .modal-close:hover { color: #fff; }
html[data-theme="night"] .modal-box form input[type=text],
html[data-theme="night"] .modal-box form input[type=url],
html[data-theme="night"] .modal-box form input[type=number],
html[data-theme="night"] .modal-box form input[type=email],
html[data-theme="night"] .modal-box form input[type=password],
html[data-theme="night"] .modal-box form input[type=datetime-local],
html[data-theme="night"] .modal-box form textarea,
html[data-theme="night"] .modal-box form select {
    background: #2a2a2a !important;
    border-color: #555 !important;
    color: #f0f0f0 !important;
}

html[data-theme="night"] .barra-filters,
html[data-theme="night"] .barra-filters__head {
    background: #1c1c1c;
    border-color: #3a3a3a;
    color: #f0f0f0;
}
@media (min-width: 960px) {
    html[data-theme="night"] .barra-filters,
    html[data-theme="night"] .barra-filters__head {
        background: transparent;
        border-color: transparent;
        box-shadow: none;
    }
}
html[data-theme="night"] .barra-filters__title { color: #f0f0f0; }
html[data-theme="night"] .barra-filters__close {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}

html[data-theme="night"] .auth-form .input-readonly,
html[data-theme="night"] .input-readonly {
    background: #2a2a2a !important;
    border-color: #444 !important;
    color: #999 !important;
}

html[data-theme="night"] .stats-card,
html[data-theme="night"] .admin-accordion-item,
html[data-theme="night"] .servicios-card,
html[data-theme="night"] .escritor-card {
    background: #1e1e1e;
    border-color: #3a3a3a;
    color: #f0f0f0;
}
html[data-theme="night"] .escritor-card-link:hover {
    background: #2a2a2a;
    color: #f5f5f5;
}
html[data-theme="night"] .escritor-card-name {
    color: #f5f5f5;
}
html[data-theme="night"] .escritor-card-headline {
    color: #d0d0d0;
}
html[data-theme="night"] .escritor-card-meta {
    color: #b8b8b8;
}
html[data-theme="night"] .stats-card-label { color: #aaa; }

html[data-theme="night"] .offcanvas-close {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .offcanvas-header-medium {
    background: #1c1c1c;
}

html[data-theme="night"] .escritor-perfil-edit,
html[data-theme="night"] .escritor-cuenta-card,
html[data-theme="night"] .escritor-perfil-edit-title {
    color: #f0f0f0;
}
html[data-theme="night"] .escritor-cuenta { border-top-color: #333; }

html[data-theme="night"] .feed-medium .reply-card--other,
html[data-theme="night"] .emoji-picker,
html[data-theme="night"] .composer-attach-item {
    background: #1e1e1e;
    border-color: #3a3a3a;
    color: #f0f0f0;
}
html[data-theme="night"] .composer-bar-medium textarea {
    background: #2a2a2a !important;
    border-color: #555 !important;
    color: #f0f0f0 !important;
}
html[data-theme="night"] .composer-fixed-medium,
html[data-theme="night"] .escritor-chat-drawer .timeline-embed-autor .composer-fixed-medium,
html[data-theme="night"] .escritor-chat-drawer .timeline-embed-autor {
    background: #1c1c1c !important;
    border-color: #3a3a3a !important;
}
html[data-theme="night"] .escritor-chat-drawer {
    border-left-color: #3a3a3a;
}

html[data-theme="night"] .blog-cat-link {
    background: #2a2a2a;
    border-color: #555;
    color: #ddd;
}
html[data-theme="night"] .btn-articulo-like,
html[data-theme="night"] .articulo-share-btn,
html[data-theme="night"] .blog-author-select,
html[data-theme="night"] .feed-load-more-btn {
    background: #2a2a2a;
    border-color: #555;
    color: #eee;
}
html[data-theme="night"] .article-reactions {
    background: transparent;
    border: none;
}
html[data-theme="night"] .article-reaction-btn {
    background: #222;
    border-color: #444;
    color: #e8e8e8;
}
html[data-theme="night"] .article-reaction-count {
    background: transparent;
    color: #bbb;
}
html[data-theme="night"] .article-reactions-hint {
    color: #aaa;
}
html[data-theme="night"] .article-reactions-hint:hover {
    color: #eee;
}
html[data-theme="night"] .feed-load-more-btn:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

html[data-theme="night"] .admin-table-notes { background: #242424; }
html[data-theme="night"] .admin-file-label {
    background: rgba(255, 255, 255, 0.06);
    color: var(--accent-on-dark, #ffb74d);
}
html[data-theme="night"] .perfil-password-fieldset {
    border-color: #444;
}
html[data-theme="night"] .perfil-password-hint,
html[data-theme="night"] .editor-hint,
html[data-theme="night"] .escribir-blocks .editor-hint,
html[data-theme="night"] .escribir-blocks .editor-hint-inline {
    color: #999;
}

html[data-theme="night"] .escribir-blocks .editor-doc-scroll,
html[data-theme="night"] .escribir-blocks .editor-panel--doc {
    background: var(--adm-bg, #1c1c1c);
    border-color: var(--adm-border, #3a3a3a);
    color: var(--adm-text, #f0f0f0);
}
html[data-theme="night"] .escribir-blocks .editor-meta-toggle:hover {
    background: #2a2a2a;
    border-color: #555;
}
html[data-theme="night"] .tag-picker__input {
    color: #f0f0f0;
    background: transparent;
}
html[data-theme="night"] .tag-picker__input::placeholder { color: #888; }

html[data-theme="night"] .page-hero-landing,
html[data-theme="night"] .page-hero-body {
    color: #f0f0f0;
}
html[data-theme="night"] .eventos-noticias-filters .barra-chip {
    background: #2a2a2a;
    border-color: #555;
    color: #ddd;
}

html[data-theme="night"] .prueba-card-foto-img-placeholder {
    background: #2a2a2a;
}

html[data-theme="night"] code {
    background: #2a2a2a;
    color: #e0e0e0;
}

/* ——— Tema nocturno: contraste adicional (páginas y paneles) ——— */
html[data-theme="night"] .articulo-single-medium,
html[data-theme="night"] .articulo-single-medium .articulo-body-formatted,
html[data-theme="night"] .articulo-single-medium .post-blocks-body,
html[data-theme="night"] .blog-lectura-panel .articulo-body-formatted,
html[data-theme="night"] .blog-lectura-panel .post-blocks-body {
    color: #eaeaea;
}
html[data-theme="night"] .articulo-header-medium h1,
html[data-theme="night"] .articulo-comments-title,
html[data-theme="night"] .rating-summary,
html[data-theme="night"] .rating-avg-label {
    color: #f0f0f0;
}
html[data-theme="night"] .articulo-meta,
html[data-theme="night"] .articulo-comment-item time,
html[data-theme="night"] .form-hint {
    color: #aaa;
}
html[data-theme="night"] .articulo-comment-item,
html[data-theme="night"] .articulo-comment-item strong,
html[data-theme="night"] .articulo-comments-hint {
    color: #e8e8e8;
}
html[data-theme="night"] .articulo-comment-form textarea,
html[data-theme="night"] .articulo-comment-reply-form textarea {
    background: #2a2a2a;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .articulo-footer-medium,
html[data-theme="night"] .articulo-comments,
html[data-theme="night"] .articulo-ratings {
    border-color: #3a3a3a;
}
html[data-theme="night"] .escritor-headline,
html[data-theme="night"] .escritor-ubicacion,
html[data-theme="night"] .escritor-intereses-lead,
html[data-theme="night"] .escritor-perfil-view-meta,
html[data-theme="night"] .escritor-perfil-edit-lead {
    color: #b8b8b8;
}
html[data-theme="night"] .escritor-perfil-view-title,
html[data-theme="night"] .escritor-perfil-edit-title,
html[data-theme="night"] .escritor-intereses-title,
html[data-theme="night"] .escritor-perfil-view-bio {
    color: #f0f0f0;
}
html[data-theme="night"] .escritor-blog-card-stats {
    border-top-color: rgba(255, 255, 255, 0.12);
    color: #ccc;
}
html[data-theme="night"] .escritor-blog-card-stat--comments iconify-icon {
    color: #aaa;
}
html[data-theme="night"] .btn-medium.btn-secondary {
    background: #2a2a2a;
    color: #eee;
    border-color: #555;
}
html[data-theme="night"] .btn-medium.btn-secondary:hover {
    background: #333;
    color: #fff;
}
html[data-theme="night"] .auth-form input,
html[data-theme="night"] .auth-form textarea,
html[data-theme="night"] .auth-form select,
html[data-theme="night"] .escritor-perfil-form input,
html[data-theme="night"] .escritor-perfil-form textarea {
    background: #2a2a2a;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .auth-form label span,
html[data-theme="night"] .escritor-perfil-form label span {
    color: #ddd;
}
html[data-theme="night"] .escritor-interes-add-row input[type="text"] {
    background: #2a2a2a;
    border-color: #555;
    color: #f0f0f0;
}
html[data-theme="night"] .barra-filter-group__title {
    color: #b0b0b0;
}
html[data-theme="night"] .sed-hero-title,
html[data-theme="night"] .sed-hero p,
html[data-theme="night"] .page-hero-landing h1 {
    color: #f0f0f0;
}
html[data-theme="night"] .container-medium,
html[data-theme="night"] .escritor-space,
html[data-theme="night"] .barra-page,
html[data-theme="night"] .escritores-page {
    color: var(--texto-oscuro, #f2f2f2);
}

/* ——— Tema nocturno: pase de contraste global (textos secundarios) ——— */
html[data-theme="night"] .hero-subtitle,
html[data-theme="night"] .feature-card-medium p,
html[data-theme="night"] .auth-lead,
html[data-theme="night"] .auth-footer,
html[data-theme="night"] .auth-recover-email,
html[data-theme="night"] .perfil-password-hint,
html[data-theme="night"] .perfil-contabilidad-empty,
html[data-theme="night"] .perfil-puntos-hint,
html[data-theme="night"] .perfil-puntos-perks,
html[data-theme="night"] .perfil-puntos-next,
html[data-theme="night"] .perfil-photo-remove,
html[data-theme="night"] .offcanvas-puntos-nivel,
html[data-theme="night"] .timeline-header-desc,
html[data-theme="night"] .form-hint,
html[data-theme="night"] .editor-hint,
html[data-theme="night"] .escribir-blocks .editor-hint,
html[data-theme="night"] .escribir-blocks .editor-hint-inline,
html[data-theme="night"] .sed-admin-url-hint,
html[data-theme="night"] .servicios-lead,
html[data-theme="night"] .servicios-premiacion-lead,
html[data-theme="night"] .servicios-premiacion-zona,
html[data-theme="night"] .servicios-policy-list,
html[data-theme="night"] .servicios-card-desc,
html[data-theme="night"] .servicios-card-nivel,
html[data-theme="night"] .servicios-card-insufficient,
html[data-theme="night"] .servicios-contabilidad-empty,
html[data-theme="night"] .servicios-mis-estado,
html[data-theme="night"] .article-preview-medium .excerpt,
html[data-theme="night"] .news-preview-medium .excerpt,
html[data-theme="night"] .news-meta,
html[data-theme="night"] .modal-subtitle,
html[data-theme="night"] .blog-bio,
html[data-theme="night"] .empty-state,
html[data-theme="night"] .articulo-meta,
html[data-theme="night"] .articulo-comments-hint,
html[data-theme="night"] .articulo-comments-empty,
html[data-theme="night"] .articulo-comment-item time,
html[data-theme="night"] .articulo-puntos-tinta,
html[data-theme="night"] .concursos-filters-label,
html[data-theme="night"] .pas-share-label,
html[data-theme="night"] .escritor-intereses-lead,
html[data-theme="night"] .escritor-intereses-empty,
html[data-theme="night"] .escritor-services-toolbar-count,
html[data-theme="night"] .escritor-services-empty,
html[data-theme="night"] .escritor-chat-lead,
html[data-theme="night"] .escritor-card-headline,
html[data-theme="night"] .escritor-card-meta,
html[data-theme="night"] .thread-replies-container .empty,
html[data-theme="night"] .article-reactions-hint,
html[data-theme="night"] .stats-card-label,
html[data-theme="night"] .landing-guest-modal-body,
html[data-theme="night"] .prefs-section-title,
html[data-theme="night"] .barra-filter-group__title,
html[data-theme="night"] .barra-filter-group__hint {
    color: var(--texto-claro, #b8b8b8);
}

html[data-theme="night"] .perfil-contabilidad-saldo,
html[data-theme="night"] .perfil-contabilidad-table th,
html[data-theme="night"] .perfil-puntos-saldo,
html[data-theme="night"] .servicios-contabilidad-saldo,
html[data-theme="night"] .servicios-contabilidad-table th,
html[data-theme="night"] .blog-author-selector-label,
html[data-theme="night"] .oc-section strong,
html[data-theme="night"] .form-inscribir label,
html[data-theme="night"] .hub-tab,
html[data-theme="night"] .perfil-tab,
html[data-theme="night"] .servicios-tab {
    color: var(--texto-medio, #d4d4d4);
}

html[data-theme="night"] .article-preview-meta-row time,
html[data-theme="night"] .news-preview-meta-row time,
html[data-theme="night"] .feed-medium .post-time,
html[data-theme="night"] .feed-medium .post-meta,
html[data-theme="night"] .feed-medium .post-card--other .post-meta,
html[data-theme="night"] .feed-medium .reply-card--own .post-time,
html[data-theme="night"] .feed-medium .reply-cartucho,
html[data-theme="night"] .composer-tool-btn,
html[data-theme="night"] .composer-attach-item .composer-attach-remove,
html[data-theme="night"] .reply-preview-cancel,
html[data-theme="night"] .escritor-blog-card-meta,
html[data-theme="night"] .escritor-blog-card-meta time,
html[data-theme="night"] .escritor-blog-card-meta .prueba-card-foto-author,
html[data-theme="night"] .prueba-card-foto-author {
    color: #c4c4c4;
}

html[data-theme="night"] .feed-medium .post-card--own .post-actions {
    border-top-color: rgba(255, 255, 255, 0.12);
}
html[data-theme="night"] .feed-medium .reply-card--own .reply-cartucho {
    background: rgba(255, 255, 255, 0.06);
    border-bottom-color: rgba(255, 255, 255, 0.1);
    color: #c8c8c8;
}

html[data-theme="night"] .btn-articulo-like,
html[data-theme="night"] .btn-medium.btn-unfollow {
    background: #2a2a2a;
    border-color: #555;
    color: #e0e0e0;
}
html[data-theme="night"] .btn-medium.btn-unfollow:hover {
    background: #333;
    color: #fff;
}

html[data-theme="night"] .composer-bar-medium textarea::placeholder,
html[data-theme="night"] .barra-search-input::placeholder,
html[data-theme="night"] .tag-picker__input::placeholder,
html[data-theme="night"] .servicios-card-notes-input::placeholder,
html[data-theme="night"] input::placeholder,
html[data-theme="night"] textarea::placeholder {
    color: #9a9a9a;
    opacity: 1;
}

html[data-theme="night"] .modal-close,
html[data-theme="night"] .oc-edit-btn {
    color: #c8c8c8;
}
html[data-theme="night"] .oc-edit-btn {
    background: #2a2a2a;
    border-color: #555;
}
html[data-theme="night"] .modal-close:hover {
    color: #fff;
    background: #333;
}

html[data-theme="night"] .auth-form label,
html[data-theme="night"] .auth-form label span,
html[data-theme="night"] .escritor-perfil-form label,
html[data-theme="night"] .escritor-perfil-form label span,
html[data-theme="night"] .form-article-medium label,
html[data-theme="night"] .form-article-medium label span,
html[data-theme="night"] .modal-box form label,
html[data-theme="night"] .modal-box form label span {
    color: #e4e4e4;
}

html[data-theme="night"] .nav-user,
html[data-theme="night"] .nav-user-dropdown-btn,
html[data-theme="night"] .prefs-font-value {
    color: #e8e8e8;
}

html[data-theme="night"] .logo-medium:hover {
    color: #fff;
}

html[data-theme="night"] .escritor-interes-option {
    color: #d8d8d8;
}
html[data-theme="night"] .escritor-interes-option.is-on {
    color: #fff;
}

html[data-theme="night"] .pas-share-btn--copy {
    color: #d0d0d0;
}

html[data-theme="night"] .articulo-lectura-meta,
html[data-theme="night"] .articulo-lectura-title,
html[data-theme="night"] .blog-lectura-meta,
html[data-theme="night"] .blog-lectura-body,
html[data-theme="night"] .articulo-lectura-body,
html[data-theme="night"] .articulo-body-formatted,
html[data-theme="night"] .post-blocks-body {
    color: #eaeaea;
}

html[data-theme="night"] .articulo-lectura-tab,
html[data-theme="night"] .articulo-lectura-tab-label {
    color: #cfcfcf;
}
html[data-theme="night"] .articulo-lectura-tab.is-active,
html[data-theme="night"] .articulo-lectura-tab.is-active .articulo-lectura-tab-label {
    color: var(--accent-on-dark, #ffb74d);
}

html[data-theme="night"] .rating-summary,
html[data-theme="night"] .rating-avg-label,
html[data-theme="night"] .rating-stars-label {
    color: #e8e8e8;
}

html[data-theme="night"] .libro-subtitle,
html[data-theme="night"] .libro-isbn,
html[data-theme="night"] .libro-ficha-subtitle {
    color: var(--texto-claro, #b8b8b8);
}

html[data-theme="night"] .offcanvas-share-app .pas-share-label {
    color: var(--texto-claro, #b8b8b8);
}

html[data-theme="night"] .chat-sala-card .escritor-card-headline,
html[data-theme="night"] .chat-sala-card .escritor-card-meta {
    color: var(--texto-claro, #b8b8b8);
}

html[data-theme="night"] .articulo-puntos-tinta {
    background: #2a2a2a;
    color: var(--texto-claro, #b8b8b8);
}
html[data-theme="night"] .perfil-contabilidad-table th,
html[data-theme="night"] .servicios-contabilidad-table th {
    background: #2a2a2a;
    color: #e8e8e8;
}
html[data-theme="night"] .perfil-contabilidad-table td,
html[data-theme="night"] .servicios-contabilidad-table td {
    color: #d8d8d8;
    border-color: #3a3a3a;
}
html[data-theme="night"] .auth-form .input-readonly,
html[data-theme="night"] .input-readonly {
    background: #2a2a2a !important;
    border-color: #444 !important;
    color: #b8b8b8 !important;
}
html[data-theme="night"] .landing-guest-modal-body {
    color: var(--texto-medio, #d4d4d4);
}
html[data-theme="night"] .prueba-card-foto-text,
html[data-theme="night"] .escritor-service-desc,
html[data-theme="night"] .sed-hero-lead,
html[data-theme="night"] .sed-benefit-card p {
    color: var(--texto-medio, #d4d4d4);
}
html[data-theme="night"] .prueba-card-foto-category {
    color: var(--accent-on-dark, #ffb74d) !important;
}

/* Postales clásicas (Ciudad Seva) */
.postales-clasicas-lead { margin: 0 0 1rem; color: #444; max-width: 42rem; }
.postales-clasicas-admin-tools { margin: 0.75rem 0 1.25rem; display: grid; gap: 0.65rem; }
.postales-clasicas-sync-stats { margin: 0; font-size: 0.9rem; color: #555; }
.postales-clasicas-full-sync { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.postales-clasicas-sync-log { margin: 0.5rem 0 0; font-size: 0.85rem; color: #666; font-family: ui-monospace, monospace; }
#classic-sync-progress { width: min(100%, 320px); height: 0.65rem; }
.postales-clasicas-search,
.postales-clasicas-toolbar { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 1rem; }
.postales-clasicas-count { margin: 0; font-size: 0.9rem; color: #666; white-space: nowrap; }
.postales-clasicas-search-empty { margin: 0 0 1rem; color: #888; font-size: 0.95rem; }
.postales-clasicas-nav {
    display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: center;
    margin: 0 0 1.25rem; padding-bottom: 0.85rem; border-bottom: 1px solid #eee;
}
.postales-clasicas-nav__back { text-decoration: none; font-size: 0.9rem; padding: 0.4rem 0.75rem; }
.postales-clasicas-nav__crumb {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
    font-size: 0.9rem; color: #666;
}
.postales-clasicas-nav__crumb li:not(:last-child)::after {
    content: '›'; margin-left: 0.35rem; color: #bbb;
}
.postales-clasicas-nav__crumb a { color: var(--turquesa-oscuro, #ff9800); text-decoration: none; }
.postales-clasicas-nav__crumb a:hover { text-decoration: underline; }
.postales-clasicas-nav__crumb [aria-current="page"] { color: #1a1a1a; font-weight: 600; }
.postales-clasicas-page[data-classics-view="index"] .container-medium {
    padding-top: 0.5rem;
    padding-bottom: 0.75rem;
}
.postales-clasicas-index-panel {
    display: flex;
    flex-direction: column;
    min-height: 240px;
    margin-top: 0.25rem;
    border: 1px solid #eee;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
    overflow: hidden;
}
.postales-clasicas-letters {
    display: flex; flex-wrap: wrap; gap: 0.25rem;
    margin: 0; padding: 0.55rem 0.75rem;
    flex-shrink: 0;
    background: var(--blanco-hueso, #fff);
    border-bottom: 1px solid #eee;
    z-index: 2;
}
.postales-clasicas-authors-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0.85rem 0.75rem 1rem;
    scrollbar-gutter: stable;
}
.postales-clasicas-authors-scroll:focus-visible {
    outline: 2px solid var(--turquesa-oscuro, #ff9800);
    outline-offset: -2px;
}
.postales-clasicas-letters__link {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 1.75rem; height: 1.75rem; padding: 0 0.35rem;
    border-radius: 6px; font-size: 0.85rem; font-weight: 600;
    text-decoration: none; color: var(--turquesa-oscuro, #ff9800);
    border: 1px solid transparent;
}
.postales-clasicas-letters__link:hover {
    background: #fff3e0; border-color: rgba(255,152,0,0.25);
}
.postales-clasicas-letters__link.is-active {
    background: var(--turquesa-oscuro, #ff9800);
    color: #fff;
    border-color: var(--turquesa-oscuro, #ff9800);
}
.postales-clasicas-letter-group { margin-bottom: 1.75rem; scroll-margin-top: 0.5rem; }
.postales-clasicas-letter-group:last-child { margin-bottom: 0; }
.postales-clasicas-letter-heading {
    margin: 0 0 0.75rem; font-size: 1.15rem; font-weight: 700;
    color: var(--turquesa-oscuro, #ff9800);
    font-family: var(--fuente-titulo, Georgia, serif);
    border-bottom: 2px solid #fff3e0; padding-bottom: 0.25rem;
}
.postales-clasicas-breadcrumb { margin: 0 0 1rem; font-size: 0.9rem; }
.postales-clasicas-breadcrumb a { color: var(--turquesa-oscuro, #ff9800); text-decoration: none; }
.postales-clasicas-author-head { margin-bottom: 1.25rem; }
.postales-clasicas-author-name { margin: 0 0 0.25rem; font-family: var(--fuente-titulo, Georgia, serif); font-size: 1.5rem; }
.postales-clasicas-author-meta { margin: 0; color: #666; }
.postales-clasicas-source { margin: 0.35rem 0 0; font-size: 0.85rem; color: #777; }
.postales-clasicas-author-icon {
    display: flex; align-items: center; justify-content: center;
    background: #f5f0e8; color: #8a6d3b; border-radius: 50%;
}
.postales-clasicas-stories {
    list-style: none; margin: 0; padding: 0;
    display: grid; gap: 0.35rem;
}
.postales-clasicas-story-link {
    display: block; padding: 0.65rem 0.85rem;
    border: 1px solid #eee; border-radius: 10px;
    text-decoration: none; color: #1a1a1a; background: #fff;
    transition: box-shadow 0.15s, border-color 0.15s;
}
.postales-clasicas-story-link:hover {
    border-color: var(--turquesa-oscuro, #ff9800);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.postales-clasicas-story-nav {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem;
    margin-bottom: 1rem;
}
.postales-clasicas-story-nav__spacer { display: block; }
.postales-clasicas-story-nav__link {
    display: flex; flex-direction: column; gap: 0.2rem;
    padding: 0.65rem 0.85rem; border: 1px solid #eee; border-radius: 10px;
    text-decoration: none; color: inherit; background: #fafafa;
    transition: border-color 0.15s, background 0.15s;
}
.postales-clasicas-story-nav__link:hover {
    border-color: var(--turquesa-oscuro, #ff9800); background: #fff;
}
.postales-clasicas-story-nav__link--next { text-align: right; }
.postales-clasicas-story-nav__label {
    font-size: 0.75rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--turquesa-oscuro, #ff9800);
}
.postales-clasicas-story-nav__title { font-size: 0.9rem; color: #333; line-height: 1.35; }
.postal-clasica-reader {
    background: #fff; border: 1px solid #eee; border-radius: 14px;
    padding: 1.25rem 1.35rem 1.5rem; max-width: 46rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.postal-clasica-reader__title {
    margin: 0 0 0.35rem; font-family: var(--fuente-titulo, Georgia, serif); font-size: 1.65rem;
}
.postal-clasica-reader__subtitle { margin: 0 0 0.5rem; color: #666; font-size: 0.95rem; }
.postal-clasica-reader__meta { margin: 0 0 1rem; color: #888; font-size: 0.9rem; }
.postal-clasica-reader__body {
    font-family: 'Literata', Georgia, serif; font-size: 1.05rem; line-height: 1.75;
    color: #222;
}
.postal-clasica-reader__body p { margin: 0 0 1em; text-align: justify; }
.postal-clasica-reader__foot { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #eee; }
html[data-theme="night"] .postal-clasica-reader,
html[data-theme="night"] .postales-clasicas-story-link,
html[data-theme="night"] .postales-clasicas-story-nav__link { background: #1a1a1a; border-color: #333; color: #eee; }
html[data-theme="night"] .postal-clasica-reader__body { color: #ddd; }
html[data-theme="night"] .postales-clasicas-author-icon { background: #2a2418; color: #c9a962; }
html[data-theme="night"] .postales-clasicas-nav { border-bottom-color: #333; }
html[data-theme="night"] .postales-clasicas-nav__crumb [aria-current="page"] { color: #eee; }
html[data-theme="night"] .postales-clasicas-index-panel {
    background: rgba(26, 26, 26, 0.92);
    border-color: #333;
}
html[data-theme="night"] .postales-clasicas-letters { background: #1c1c1c; border-bottom-color: #333; }
html[data-theme="night"] .postales-clasicas-letter-heading { border-bottom-color: #3a3020; }

.classics-community-badge {
    display: inline-block;
    margin-top: 0.15rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(255, 152, 0, 0.12);
    color: var(--turquesa-oscuro, #ff9800);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.classics-community-badge--inline {
    margin: 0.35rem 0 0;
}
.postales-clasicas-toolbar--index {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin-bottom: 0.75rem;
}
.postales-clasicas-toolbar--index .postales-clasicas-search {
    flex: 1 1 16rem;
    margin-bottom: 0;
}
.postales-clasicas-author-actions {
    margin: 0.75rem 0 0;
}
.classic-user-modal .auth-form textarea {
    width: 100%;
    min-height: 14rem;
    padding: 0.65rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-family: inherit;
    font-size: 0.95rem;
    line-height: 1.5;
    box-sizing: border-box;
    resize: vertical;
}
.classic-user-modal--wide { max-width: 640px; }
.classic-user-modal-sep {
    border: none;
    border-top: 1px solid #eee;
    margin: 1rem 0 0.85rem;
}
.classic-user-modal-hint {
    margin: -0.35rem 0 0.75rem;
    font-size: 0.85rem;
    color: #666;
}
html[data-theme="night"] .classic-user-modal-hint { color: #aaa; }
html[data-theme="night"] .classic-user-modal-sep { border-top-color: #333; }
.admin-clasicos-stats { margin-bottom: 1.25rem; }
.admin-clasicos-sync-actions {
    display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
    margin: 0.75rem 0;
}
.admin-clasicos-sync-form { margin: 0; }
.admin-clasicos-progress { display: block; width: min(100%, 420px); height: 0.65rem; margin-top: 0.5rem; }
.admin-clasicos-sync-log { margin: 0.5rem 0 0; font-size: 0.85rem; color: #666; font-family: ui-monospace, monospace; }
.admin-clasicos-search { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0; }
.admin-clasicos-pending { color: #c45c00; font-size: 0.85rem; }
.admin-clasicos-table .admin-usuarios-sub { max-width: 28rem; }
@media (max-width: 540px) {
    .postales-clasicas-story-nav { grid-template-columns: 1fr; }
    .postales-clasicas-story-nav__link--next { text-align: left; }
}

/* Trueque (intercambio de libros) */
.trueque-page { padding: 1.75rem 0 4rem; }
.trueque-lead { margin: 0 0 1rem; color: #444; max-width: 42rem; }
.trueque-tabs { margin-bottom: 1.25rem; }
.trueque-search { margin-bottom: 1rem; }
.trueque-section-title { font-family: var(--fuente-titulo, Georgia, serif); font-size: 1.2rem; margin: 1.25rem 0 0.75rem; }
.trueque-grid {
    list-style: none; margin: 0; padding: 0;
    display: grid; gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.trueque-card {
    display: flex; gap: 0.85rem;
    border: 1px solid #eee; border-radius: 12px; background: #fff;
    padding: 0.85rem; box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.trueque-card-cover { flex-shrink: 0; width: 72px; }
.trueque-card-cover img { width: 72px; height: 108px; object-fit: cover; border-radius: 6px; }
.trueque-card-cover-ph {
    display: flex; align-items: center; justify-content: center;
    width: 72px; height: 108px; background: #f5f0e8; border-radius: 6px; font-size: 1.75rem;
}
.trueque-card-title { margin: 0 0 0.25rem; font-size: 1rem; font-weight: 700; }
.trueque-card-authors { margin: 0; font-size: 0.9rem; color: #555; }
.trueque-card-meta { margin: 0.35rem 0; font-size: 0.85rem; color: #777; }
.trueque-card-notes { margin: 0.35rem 0 0; font-size: 0.85rem; color: #666; }
.trueque-card-actions { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.5rem; }
.trueque-offer-panel { margin-bottom: 1.25rem; }
.trueque-offer-form textarea { min-height: 4.5rem; }
.trueque-offers-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.trueque-offer-msg { margin: 0.5rem 0; padding: 0.5rem 0.75rem; border-left: 3px solid #ff9800; background: #fff8ef; color: #444; }
.trueque-offer-actions, .trueque-inline-form { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.5rem; }

.trueque-mercado-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.trueque-mercado-toolbar .trueque-search { margin-bottom: 0; }
.trueque-publish-modal-box { max-width: 520px; position: relative; }
.trueque-publish-modal .trueque-publish-hint { margin: 0 0 1rem; color: #555; font-size: 0.92rem; }
.trueque-publish-form { display: flex; flex-direction: column; gap: 0.75rem; }
.trueque-publish-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}
.trueque-field { display: flex; flex-direction: column; gap: 0.3rem; margin: 0; }
.trueque-field span { font-size: 0.88rem; font-weight: 600; }
.trueque-field input,
.trueque-field select,
.trueque-field textarea { width: 100%; box-sizing: border-box; }
.trueque-field--full { grid-column: 1 / -1; }
.trueque-publish-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
.trueque-cover-field { margin: 0; }
.trueque-cover-upload {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.85rem;
}
.trueque-cover-preview {
    flex: 0 0 auto;
    width: 4.5rem;
    aspect-ratio: 2 / 3;
    border-radius: 6px;
    overflow: hidden;
    background: #f0f0f0;
    border: 1px solid #e0e0e0;
}
.trueque-cover-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.trueque-cover-upload .admin-file-wrap {
    flex: 1 1 12rem;
    min-width: 0;
}
html[data-theme="night"] .trueque-cover-preview {
    background: #1a1a1a;
    border-color: #333;
}
.trueque-empty-cta {
    display: inline-block;
    margin-top: 0.5rem;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}
@media (max-width: 640px) {
    .trueque-mercado-toolbar .barra-toolbar { flex-direction: column; align-items: stretch; }
    .trueque-mercado-toolbar .barra-search { width: 100%; }
    .trueque-mercado-toolbar .barra-search-input { width: 100%; }
    .trueque-mercado-toolbar .barra-toolbar .btn-medium { width: 100%; }
    .trueque-publish-fields { grid-template-columns: 1fr; }
    .trueque-publish-actions .btn-medium { flex: 1 1 auto; min-width: calc(50% - 0.25rem); }
}
@media (min-width: 641px) {
    .trueque-mercado-toolbar {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .trueque-mercado-toolbar .trueque-search { flex: 1 1 16rem; }
}

html[data-theme="night"] .trueque-publish-modal .trueque-publish-hint { color: #aaa; }
.lecturas-swap-form { margin-top: 0.35rem; }
html[data-theme="night"] .trueque-card { background: #1a1a1a; border-color: #333; color: #eee; }
html[data-theme="night"] .trueque-card-authors,
html[data-theme="night"] .trueque-card-meta,
html[data-theme="night"] .trueque-card-notes { color: #aaa; }
html[data-theme="night"] .trueque-offer-msg { background: #2a2418; color: #ddd; }

.admin-trueque-cover-cell { text-align: center; }
.admin-trueque-cover-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 72px;
    font-size: 1.25rem;
    background: #f5f5f5;
    border-radius: 6px;
}
html[data-theme="night"] .admin-trueque-cover-empty { background: #2a2a2a; }

/* Estadísticas de visitas (admin) */
.admin-analytics-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    margin-top: 1.5rem;
}
.admin-analytics-block h3 { margin: 0 0 0.75rem; font-size: 1rem; }
.admin-analytics-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.admin-analytics-list li {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: baseline;
    font-size: 0.92rem;
    border-bottom: 1px solid rgba(0,0,0,0.06);
    padding-bottom: 0.35rem;
}
.admin-analytics-count {
    font-weight: 600;
    white-space: nowrap;
    color: var(--turquesa-oscuro, #c45c00);
}
.estadisticas-cards--compact { margin-bottom: 1.5rem; }

/* Catálogo de productos */
.productos-page { padding: 1rem 0 2.5rem; }
.productos-header { margin-bottom: 1.5rem; }
.productos-lead { color: #555; max-width: 42rem; }
.productos-admin-note { margin-top: 0.75rem; font-size: 0.9rem; }
.productos-section { margin-bottom: 2rem; }
.productos-section-title {
    font-size: 1.15rem;
    margin: 0 0 1rem;
    padding-bottom: 0.35rem;
    border-bottom: 2px solid var(--turquesa-sutil, #fff3e0);
}
.productos-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.producto-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, transform 0.2s;
}
.producto-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    transform: translateY(-2px);
}
.producto-card--featured { border-color: var(--turquesa-oscuro, #ff9800); }
.producto-card-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: #f5f5f5;
}
.producto-card-placeholder {
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    background: #f5f5f5;
}
.producto-card-body { padding: 0.85rem 1rem 1rem; }
.producto-card-title { margin: 0 0 0.35rem; font-size: 1rem; line-height: 1.3; }
.producto-card-price { margin: 0 0 0.35rem; font-weight: 600; color: var(--turquesa-oscuro, #c45c00); }
.producto-card-desc { margin: 0; font-size: 0.85rem; color: #666; line-height: 1.4; }
.producto-detail { max-width: 640px; margin: 0 auto; }
.producto-detail-img {
    width: 100%;
    max-height: 360px;
    object-fit: contain;
    border-radius: 8px;
    background: #f8f8f8;
}
.producto-detail-meta { display: flex; gap: 0.75rem; flex-wrap: wrap; margin: 1rem 0 0.5rem; font-size: 0.9rem; }
.producto-cat {
    background: var(--turquesa-sutil, #fff3e0);
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
}
.producto-detail-title { margin: 0 0 0.75rem; }
.producto-detail-desc { line-height: 1.6; color: #333; }
.admin-table-thumb { border-radius: 6px; object-fit: cover; vertical-align: middle; margin-right: 0.5rem; }
html[data-theme="night"] .producto-card { background: #1a1a1a; border-color: #333; color: #eee; }
html[data-theme="night"] .producto-card-desc { color: #aaa; }
html[data-theme="night"] .admin-analytics-list li { border-color: #333; }
.admin-analytics-ranking { margin-top: 1.25rem; }
.admin-analytics-ranking__head { margin-bottom: 0.75rem; }
.admin-analytics-ranking__head h3 { margin: 0 0 0.35rem; font-size: 1.1rem; }
.admin-analytics-ranking__lead { margin: 0; font-size: 0.88rem; color: #666; }
.admin-analytics-rank { width: 2.5rem; color: #888; font-variant-numeric: tabular-nums; }
.admin-publicaciones-views { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.admin-publicaciones-views--muted { color: #777; font-weight: 500; }
html[data-theme="night"] .admin-analytics-ranking__lead { color: #aaa; }
html[data-theme="night"] .admin-publicaciones-views--muted { color: #999; }

/* Micro postales — pantalla propia, timeline tipo chat/Twitter */
.momentos-page { padding-bottom: 0; background: #f7f8fa; min-height: calc(100vh - 4rem); }
.momentos-shell {
    max-width: 640px;
    margin: 0 auto;
    padding-left: max(var(--page-gutter), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page-gutter), env(safe-area-inset-right, 0px));
}
.momentos-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(247, 248, 250, 0.92);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid #e6e8eb;
    padding: 0.85rem 0 0.65rem;
    margin-bottom: 0;
}
.momentos-topbar__title { margin: 0; font-size: 1.35rem; line-height: 1.2; }
.momentos-topbar__lead { margin: 0.25rem 0 0.75rem; font-size: 0.88rem; color: #667; line-height: 1.4; }
.momentos-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid #e6e8eb;
    margin-bottom: 0.65rem;
}
.momentos-tab {
    flex: 1;
    text-align: center;
    padding: 0.65rem 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: #667;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.momentos-tab:hover { color: #222; background: rgba(0,0,0,0.03); }
.momentos-tab--on { color: var(--turquesa-oscuro, #c45c00); border-bottom-color: var(--turquesa-oscuro, #c45c00); }
.momentos-author-search {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    margin-bottom: 0.5rem;
}
.momentos-author-search input[type="search"] {
    flex: 1;
    min-width: 9rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    font: inherit;
    background: #fff;
}
.momentos-filter-clear,
.momentos-filter-active { font-size: 0.85rem; }
.momentos-filter-clear { color: var(--turquesa-oscuro, #c45c00); }
.momentos-filter-active { margin: 0 0 0.5rem; color: #555; }
.momentos-author-results { list-style: none; margin: 0 0 0.75rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.momentos-author-chip {
    display: inline-block;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #ddd;
    font-size: 0.85rem;
    text-decoration: none;
    color: #333;
}
.momentos-author-chip:hover { border-color: var(--turquesa-oscuro, #c45c00); color: var(--turquesa-oscuro, #c45c00); }
.momentos-flash { margin: 0.35rem 0 0.5rem; }
.momentos-composer--edit {
    margin: 0.5rem 0 0;
    padding: 0.75rem;
    background: #fff;
    border: 1px solid #e6e8eb;
    border-radius: 12px;
}
.momentos-composer-input {
    width: 100%;
    min-height: 4.5rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid #ddd;
    border-radius: 10px;
    font: inherit;
    line-height: 1.45;
    resize: vertical;
    box-sizing: border-box;
}
.momentos-composer-tools { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.5rem; }
.momentos-composer-file span { font-size: 0.85rem; color: #666; }
.momentos-composer-remove-img { font-size: 0.85rem; color: #666; }
.momentos-composer-actions { margin-left: auto; display: flex; gap: 0.4rem; }
.momentos-composer-preview-img { max-width: 180px; max-height: 140px; border-radius: 8px; margin-top: 0.5rem; object-fit: cover; }
.momentos-timeline-inner { padding-bottom: 7.5rem; }
.momentos-feed { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.momentos-hcard {
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
    background: #fff;
    border: 1px solid #e4e6ea;
    border-radius: 10px;
    padding: 0.3rem 0.35rem 0.3rem 0.3rem;
    min-height: 50px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.momentos-hcard:hover { border-color: #ccc; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06); }
.momentos-hcard--own { background: #fafafa; }
.momentos-hcard__main {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    padding: 0.1rem 0.15rem;
    border-radius: 8px;
}
.momentos-hcard__main:hover { background: rgba(0, 0, 0, 0.02); }
.momentos-hcard__main:focus { outline: none; }
.momentos-hcard__main:focus-visible { outline: 2px solid var(--turquesa-oscuro, #c45c00); outline-offset: 1px; }
.momentos-hcard__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    background: #e8e8e8;
    flex-shrink: 0;
}
.momentos-hcard__body { flex: 1; min-width: 0; overflow: hidden; }
.momentos-hcard__meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    line-height: 1.2;
    margin-bottom: 0.08rem;
}
.momentos-hcard__author {
    font-weight: 700;
    color: #111;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 55%;
}
.momentos-hcard__time { color: #888; white-space: nowrap; flex-shrink: 0; font-size: 0.7rem; }
.momentos-hcard__text {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.25;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.momentos-hcard__text--media { color: #888; font-style: italic; }
.momentos-hcard__thumb {
    width: 42px;
    height: 42px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
    background: #eee;
    border: 1px solid #ececec;
}
.momentos-hcard__tools {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
    flex-shrink: 0;
    padding-left: 0.15rem;
}
.momentos-hcard__delete-form { margin: 0; }
.momentos-hcard__tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.85rem;
    line-height: 1;
    color: #888;
    cursor: pointer;
    text-decoration: none;
    border-radius: 4px;
}
.momentos-hcard__tool:hover { background: #f0f0f0; color: var(--turquesa-oscuro, #c45c00); }
.momentos-hcard__tool--danger:hover { color: #b33; }
.momentos-hcard__actions {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding: 0 0.1rem;
}
.momentos-hcard__repost,
.momentos-hcard__repost-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    min-width: 1.6rem;
    padding: 0.15rem 0.25rem;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.72rem;
    line-height: 1;
    color: #888;
    cursor: pointer;
    border-radius: 4px;
}
.momentos-hcard__repost-stat { cursor: default; padding: 0.15rem 0.2rem; }
.momentos-hcard__repost:hover { background: #f0f0f0; color: var(--turquesa-oscuro, #c45c00); }
.momentos-hcard__repost--on { color: var(--turquesa-oscuro, #c45c00); font-weight: 700; }
.momentos-hcard__repost-icon { font-size: 0.85rem; line-height: 1; }
.momentos-hcard__repost-count { min-width: 0.65rem; text-align: left; }
.micro-mention { color: var(--turquesa-oscuro, #c45c00); text-decoration: none; font-weight: 600; }
.micro-mention:hover { text-decoration: underline; }
.micro-mention-list {
    position: fixed;
    z-index: 1200;
    max-height: 180px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    padding: 0.25rem;
}
.micro-mention-list[hidden] { display: none !important; }
.micro-mention-list__item {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    padding: 0.4rem 0.5rem;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.82rem;
    text-align: left;
    cursor: pointer;
    border-radius: 6px;
    color: #222;
}
.micro-mention-list__item strong { color: var(--turquesa-oscuro, #c45c00); font-weight: 700; }
.micro-mention-list__item span { color: #666; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.micro-mention-list__item:hover,
.micro-mention-list__item--on { background: #f5f5f5; }
.micro-postal-modal__actions {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}
.micro-postal-modal__repost {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    background: #fff;
    font: inherit;
    font-size: 0.85rem;
    color: #555;
    cursor: pointer;
}
.micro-postal-modal__repost:hover { border-color: #bbb; color: var(--turquesa-oscuro, #c45c00); }
.micro-postal-modal__repost--on {
    border-color: var(--turquesa-oscuro, #c45c00);
    color: var(--turquesa-oscuro, #c45c00);
    background: rgba(196, 92, 0, 0.06);
}
.micro-postal-modal__repost-stat { font-size: 0.85rem; color: #888; }
.momentos-feed-sentinel { height: 1px; }
.momentos-feed-loading { text-align: center; color: #888; font-size: 0.88rem; padding: 0.5rem 0 1rem; margin: 0; }
.momentos-empty { padding: 2rem 0.5rem; text-align: center; }
.momentos-composer-fixed { z-index: 210; }
.momentos-composer-fixed--guest { padding: 0.85rem 0; text-align: center; }
.momentos-composer-bar { align-items: center; }
.momentos-composer-bar__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: #eee;
}
.momentos-composer-bar textarea { min-height: 42px; max-height: 100px; }
.momentos-composer-bar__photo { position: relative; }
.momentos-login-hint { margin: 0; font-size: 0.92rem; }
.momentos-login-hint a { color: var(--turquesa-oscuro, #c45c00); font-weight: 600; }

.micro-postal-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.micro-postal-modal[hidden] { display: none !important; }
.micro-postal-modal.is-open { display: flex !important; }
.micro-postal-modal__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.55); cursor: pointer; }
.micro-postal-modal__box {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
}
.micro-postal-modal__close {
    position: absolute;
    top: 0.45rem;
    right: 0.45rem;
    z-index: 3;
    width: 2.1rem;
    height: 2.1rem;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #555;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
}
.micro-postal-modal__close:hover { color: #111; }
.micro-postal-modal__body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.micro-postal-modal__figure { margin: 0; line-height: 0; }
.micro-postal-modal__image { width: 100%; max-height: 52vh; object-fit: cover; display: block; background: #f0f0f0; }
.micro-postal-modal__content { padding: 1rem 1.1rem 1.15rem; }
.micro-postal-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; }
.micro-postal-modal__author { display: flex; align-items: center; gap: 0.55rem; text-decoration: none; color: inherit; font-weight: 600; min-width: 0; }
.micro-postal-modal__author:hover { text-decoration: underline; }
.micro-postal-modal__avatar { border-radius: 50%; object-fit: cover; background: #eee; flex-shrink: 0; }
.micro-postal-modal__head time { font-size: 0.8rem; color: #888; flex-shrink: 0; }
.micro-postal-modal__text { line-height: 1.6; color: #222; white-space: pre-wrap; word-break: break-word; }
.micro-postal-modal__footer { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid #f0f0f0; }
.micro-postal-modal__loading,
.micro-postal-modal__error { padding: 2rem 1.25rem; text-align: center; color: #666; margin: 0; }

html[data-theme="night"] .momentos-page { background: #111; }
html[data-theme="night"] .momentos-topbar { background: rgba(17, 17, 17, 0.92); border-color: #333; }
html[data-theme="night"] .momentos-topbar__lead { color: #aaa; }
html[data-theme="night"] .momentos-tabs { border-color: #333; }
html[data-theme="night"] .momentos-tab { color: #aaa; }
html[data-theme="night"] .momentos-tab--on { color: var(--accent, #ff9800); border-bottom-color: var(--accent, #ff9800); }
html[data-theme="night"] .momentos-author-search input[type="search"] { background: #1a1a1a; border-color: #444; color: #eee; }
html[data-theme="night"] .momentos-author-chip { background: #1a1a1a; border-color: #444; color: #ddd; }
html[data-theme="night"] .momentos-hcard { background: #1a1a1a; border-color: #333; }
html[data-theme="night"] .momentos-hcard--own { background: #222; }
html[data-theme="night"] .momentos-hcard__author { color: #eee; }
html[data-theme="night"] .momentos-hcard__text { color: #ddd; }
html[data-theme="night"] .momentos-hcard__thumb { border-color: #333; background: #111; }
html[data-theme="night"] .momentos-hcard__main:hover { background: rgba(255,255,255,0.04); }
html[data-theme="night"] .momentos-hcard__tool:hover { background: #2a2a2a; }
html[data-theme="night"] .momentos-hcard__repost:hover { background: #2a2a2a; }
html[data-theme="night"] .micro-mention { color: #ffb366; }
html[data-theme="night"] .micro-mention-list { background: #1a1a1a; border-color: #333; }
html[data-theme="night"] .micro-mention-list__item { color: #eee; }
html[data-theme="night"] .micro-mention-list__item:hover,
html[data-theme="night"] .micro-mention-list__item--on { background: #2a2a2a; }
html[data-theme="night"] .micro-postal-modal__repost { background: #222; border-color: #444; color: #ccc; }
html[data-theme="night"] .momentos-composer--edit { background: #1a1a1a; border-color: #333; }
html[data-theme="night"] .momentos-composer-input { background: #111; border-color: #444; color: #eee; }
html[data-theme="night"] .micro-postal-modal__box { background: #1a1a1a; color: #eee; }
html[data-theme="night"] .micro-postal-modal__text { color: #ddd; }
html[data-theme="night"] .micro-postal-modal__image { background: #111; }
html[data-theme="night"] .micro-postal-modal__footer { border-color: #333; }
html[data-theme="night"] .micro-postal-modal__close { background: rgba(30, 30, 30, 0.92); color: #ccc; }
