/* ==========================================================================
   Éfata RevelatiO — css/main.css
   Bloques: Reset/Tokens · Layout · Components · Niebla marina
   ========================================================================== */

/* --- Reset & Tokens · Niebla marina (premium, light, sacred) ------------- */
:root {
    /* Editorial · Niebla marina / pizarra / oro sacro */
    --color-primary-navy: #3A5364;
    --color-sacred-gold: #C9A84C;
    --color-gold-light: #D4B85E;
    --color-bg-celestial: #EEF2F4;
    --color-card-surface: #FFFFFF;
    --color-border-subtle: #D5DDE3;
    --color-text-main: #2C3E4A;
    --color-text-muted: #5A6B78;
    --fruto-amor: #A8201A;
    --fruto-gozo: #C59B27;
    --fruto-paz: #1D4ED8;
    --fruto-paciencia: #7E22CE;
    --fruto-bondad: #15803D;
    --fruto-templanza: #9A3412;

    --obsidian: #2C3E4A;
    --obsidian-mid: #3A5364;
    --pearl: #FFFFFF;
    --paper: #EEF2F4;
    --sidebar: #F8FAFB;
    --graphite: #2C3E4A;
    --graphite-soft: rgba(44, 62, 74, 0.88);
    --chrome-ink: #2C3E4A;
    --chrome-muted: #5A6B78;
    --gold: #C9A84C;
    --gold-bright: #D4B85E;
    --gold-soft: rgba(201, 168, 76, 0.18);
    --gold-line: rgba(201, 168, 76, 0.35);
    --panel: #FFFFFF;
    --panel-elevated: #F8FAFB;
    --radius: 14px;
    --shadow-card: 0 10px 28px -12px rgba(58, 83, 100, 0.14), 0 4px 10px -6px rgba(58, 83, 100, 0.08);
    --shadow-deep: 0 18px 40px -16px rgba(58, 83, 100, 0.22);
    --ink: #2C3E4A;
    --ink-soft: #3D5464;
    --ink-muted: #5A6B78;
    --chrome-dark: #3A5364;
    --night: #3A5364;
    --reading-lh: 1.8;
}

*,
*::before,
*::after {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html,
body {
    height: 100%;
    margin: 0;
    background: var(--paper, #EEF2F4);
}

body {
    background: var(--color-bg-celestial, #EEF2F4);
    color: var(--color-text-main, #2C3E4A);
    font-family: Cinzel, "Playfair Display", "Source Serif 4", Georgia, serif;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    min-height: 100dvh;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Fallbacks si falla Tailwind: layout del aposento */
.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-1 {
    flex: 1 1 0%;
}

.min-h-0 {
    min-height: 0;
}

.min-w-0 {
    min-width: 0;
}

.shrink-0 {
    flex-shrink: 0;
}

.h-full {
    height: 100%;
}

.w-full {
    width: 100%;
}

.items-center {
    align-items: center;
}

.justify-between {
    justify-content: space-between;
}

.justify-center {
    justify-content: center;
}

.gap-1 {
    gap: 0.25rem;
}

.gap-3 {
    gap: 0.75rem;
}

.grid {
    display: grid;
}

.grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.text-left {
    text-align: left;
}

.overflow-y-auto {
    overflow-y: auto;
}

@media (min-width: 1024px) {
    .lg\:flex-row {
        flex-direction: row;
    }

    .lg\:w-\[17\.5rem\] {
        width: 17.5rem;
    }

    .lg\:max-h-none {
        max-height: none;
    }

    .lg\:border-b-0 {
        border-bottom-width: 0;
    }

    .lg\:border-r {
        border-right-width: 1px;
        border-right-style: solid;
        border-right-color: rgba(197, 160, 89, 0.2);
    }
}

.hidden {
    display: none !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.font-display {
    font-family: "Cormorant Garamond", Georgia, serif;
}

.font-brand {
    font-family: Cinzel, serif;
}

.wordmark {
    background: linear-gradient(180deg, #e8d5a3, #C5A059 55%, #8d7040);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.canon-scroll::-webkit-scrollbar {
    width: 6px;
}

.canon-scroll::-webkit-scrollbar-thumb {
    background: var(--gold);
    border-radius: 99px;
}

.rv-card {
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    border: 1px solid rgba(26, 26, 26, 0.06);
}

.rv-card-deep {
    background: var(--panel);
    color: var(--chrome-ink);
    border: 1px solid rgba(197, 160, 89, 0.16);
    border-radius: var(--radius);
    box-shadow: var(--shadow-deep);
}

.rv-stage {
    background: var(--paper);
    color: var(--ink);
}

/* --- Layout · Estudio shell ---------------------------------------------- */
.rv-chrome {
    background: var(--chrome-dark);
    color: #F8FAFC;
    border-color: var(--gold-line);
}

/* --- Components · Sidebar / Canon ---------------------------------------- */
.rv-sidebar {
    background: var(--chrome-dark);
    color: #F1E7DB;
    border-right: 1px solid rgba(201, 168, 76, 0.3);
}

.rv-shell {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 0%;
    min-height: 0;
}

@media (min-width: 1024px) {
    .rv-shell {
        flex-direction: row;
    }
}

.libro-btn {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    color: var(--chrome-ink);
    border-radius: 10px;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: left;
    padding: 0.5rem 0.5rem;
}

.libro-btn>.libro-caps,
.libro-btn>span:last-child {
    flex-shrink: 0;
    font-size: 10px;
    letter-spacing: 0.06em;
    color: var(--gold);
    opacity: 0.9;
}

.libro-btn>.libro-nombre {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.cap-btn:hover {
    background: rgba(197, 160, 89, 0.15);
    border-color: rgba(197, 160, 89, 0.4);
}

.libro-btn.is-open,
.libro-btn:hover {
    color: var(--gold);
    background: var(--gold-soft);
}

.cap-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2rem;
    min-width: 0;
    border-radius: 8px;
    border: 1px solid rgba(197, 160, 89, 0.18);
    background: rgba(255, 255, 255, 0.04);
    color: var(--chrome-ink);
    cursor: pointer;
    font-size: 12px;
}

.cap-btn.is-active {
    background: var(--gold);
    color: var(--obsidian);
    border-color: var(--gold);
    box-shadow: var(--shadow-card);
}

.caps-grid {
    display: none;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.25rem;
    padding: 0 0.5rem 0.75rem;
}

.libro-item.is-open .caps-grid {
    display: grid;
}

.rv-ia-isotipo {
    width: 1.2rem;
    height: 1.2rem;
    object-fit: contain;
    flex-shrink: 0;
    filter: drop-shadow(0 0 6px rgba(197, 160, 89, 0.42));
}

.rv-ia-name {
    font-family: Cinzel, serif;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .1em;
    color: var(--gold);
    white-space: nowrap;
    line-height: 1;
}

.rv-ia-kicker {
    margin: .28rem 0 0;
    font-size: 9px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--chrome-muted);
}

.rv-ia-badge,
.rv-ia-btn {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
}

.rv-ia-badge-lg .rv-ia-isotipo {
    width: 2.05rem;
    height: 2.05rem;
}

.rv-ia-badge-lg .rv-ia-name {
    font-size: 13px;
    letter-spacing: .12em;
}

.rv-ia-welcome {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    padding: .15rem .1rem 1rem;
    color: #C9C6BE;
    font-size: 13px;
    line-height: 1.65;
}

.rv-ia-welcome.is-hidden {
    display: none;
}

.rv-fab {
    position: fixed !important;
    right: 1.15rem;
    bottom: 1.15rem;
    z-index: 999999 !important;
    width: auto;
    height: 3.35rem;
    min-width: 44px;
    min-height: 44px;
    padding: 0 .95rem 0 .42rem;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border-radius: 999px;
    border: 1px solid #D4AF37;
    background: #0a0a0a;
    box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.35);
    cursor: pointer;
    color: #D4AF37;
    pointer-events: auto;
    isolation: isolate;
}

.rv-fab-omni {
    animation: rv-fab-glow 2.6s ease-in-out infinite;
}

.rv-fab-pulse {
    position: absolute;
    inset: -4px;
    border-radius: inherit;
    border: 1px solid rgba(212, 175, 55, 0.45);
    animation: rv-fab-ring 2.6s ease-out infinite;
    pointer-events: none;
    z-index: -1;
}

@keyframes rv-fab-glow {
    0%, 100% { box-shadow: 0 0 10px rgba(212, 175, 55, 0.18), 0 8px 24px rgba(0, 0, 0, 0.45); }
    50% { box-shadow: 0 0 22px rgba(212, 175, 55, 0.42), 0 8px 28px rgba(0, 0, 0, 0.5); }
}

@keyframes rv-fab-ring {
    0% { opacity: 0.7; transform: scale(1); }
    70% { opacity: 0; transform: scale(1.18); }
    100% { opacity: 0; transform: scale(1.18); }
}

.rv-fab .rv-ia-isotipo {
    width: 1.85rem;
    height: 1.85rem;
    mix-blend-mode: screen;
    background: transparent;
}

.rv-fab:hover {
    background: #111111;
    border-color: #D4AF37;
    color: #FFFFFF;
}

.rv-fab .rv-ia-name {
    font-size: 10px;
    letter-spacing: 0.12em;
}

/* Panel permanente RevelatiO IA */
#panel-asistente-ia.rv-ia-panel,
#panel-asistente-ia.rv-drawer {
    z-index: 999998 !important;
    background: #0a0a0a;
    border-left: 1px solid rgba(212, 175, 55, 0.4);
    color: #F5F0E6;
}

.rv-ia-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.28);
    background: #000000;
}

.rv-ia-context-hint {
    margin: 0;
    padding: 0.55rem 1rem;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: #E8D5A3;
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
    background: rgba(212, 175, 55, 0.06);
}

.rv-ia-context-hint strong {
    color: #D4AF37;
    font-weight: 600;
}

.rv-ia-disclaimer {
    margin: 0;
    padding: 0.65rem 1rem 0.85rem;
    font-size: 10px;
    line-height: 1.5;
    color: rgba(245, 240, 230, 0.72);
    border-top: 1px solid rgba(212, 175, 55, 0.28);
    background: #000000;
}

.rv-ia-msg {
    margin-bottom: 0.85rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid rgba(212, 175, 55, 0.22);
}

.rv-ia-msg-user {
    background: rgba(212, 175, 55, 0.1);
    color: #D4AF37;
    border-color: rgba(212, 175, 55, 0.35);
}

.rv-ia-msg-bot {
    background: #000000;
    color: #F5F0E6;
}

.rv-ia-md {
    font-size: 13.5px;
    line-height: 1.65;
}

.rv-ia-md h2,
.rv-ia-md h3,
.rv-ia-md h4 {
    margin: 0.65rem 0 0.35rem;
    font-family: Cinzel, serif;
    color: #D4AF37;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
}

.rv-ia-md p {
    margin: 0.35rem 0;
}

.rv-ia-md ul {
    margin: 0.4rem 0 0.4rem 1.1rem;
    padding: 0;
}

.rv-ia-md code {
    font-size: 0.9em;
    color: #E8D5A3;
}

.rv-ia-md h5 {
    margin: 0.55rem 0 0.3rem;
    font-family: Cinzel, serif;
    color: #C5A059;
    font-size: 0.88rem;
}

.rv-ia-loading-row {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: #C5A059;
    font-size: 0.92rem;
    letter-spacing: 0.02em;
}

.rv-ia-spinner {
    width: 1rem;
    height: 1rem;
    border: 2px solid rgba(212, 175, 55, 0.25);
    border-top-color: #D4AF37;
    border-radius: 50%;
    animation: rv-ia-spin 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes rv-ia-spin {
    to { transform: rotate(360deg); }
}

.rv-ia-btn.is-loading {
    opacity: 0.85;
    cursor: wait;
    pointer-events: none;
}

.rv-ia-btn.is-loading .rv-ia-spinner {
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.4rem;
}

.rv-ia-alert {
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: rgba(18, 18, 18, 0.72);
    border-radius: 10px;
    padding: 0.85rem 1rem;
    color: #E0E6ED;
}

.rv-ia-alert strong {
    display: block;
    color: #D4AF37;
    margin-bottom: 0.35rem;
    font-family: Cinzel, serif;
}

.rv-ia-alert-hint {
    margin-top: 0.5rem !important;
    font-size: 0.85em;
    opacity: 0.8;
}

.rv-ia-mode-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem;
    padding: 0.55rem 0.85rem 0.15rem;
}

.rv-ia-mode-tab {
    border: 1px solid rgba(212, 175, 55, 0.28);
    background: rgba(11, 12, 16, 0.55);
    color: #C9D0D8;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    padding: 0.55rem 0.4rem;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.rv-ia-mode-tab.is-active {
    border-color: rgba(212, 175, 55, 0.75);
    background: linear-gradient(180deg, rgba(212, 175, 55, 0.18), rgba(18, 18, 18, 0.4));
    color: #F5F0E6;
}

.rv-ia-block {
    margin: 0.65rem 0;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    border: 1px solid transparent;
}

.rv-ia-block--science {
    border-color: rgba(120, 160, 200, 0.35);
    background: linear-gradient(135deg, rgba(40, 70, 100, 0.22), rgba(11, 12, 16, 0.35));
}

.rv-ia-block--bible {
    border-color: rgba(212, 175, 55, 0.4);
    background: linear-gradient(135deg, rgba(80, 60, 20, 0.28), rgba(11, 12, 16, 0.4));
}

.rv-ia-block--bridge {
    border-color: rgba(180, 140, 100, 0.35);
    background: rgba(22, 22, 24, 0.55);
}

.rv-ia-block--action {
    border-color: rgba(100, 180, 120, 0.35);
    background: linear-gradient(135deg, rgba(30, 70, 45, 0.25), rgba(11, 12, 16, 0.4));
}

.rv-quick-access {
    margin-top: 1.25rem;
}

.rv-quick-search {
    display: flex;
    gap: 0.55rem;
    align-items: stretch;
    margin: 0.65rem 0 0.85rem;
}

.rv-quick-search input {
    flex: 1;
    min-width: 0;
    border: 1px solid rgba(212, 175, 55, 0.28);
    background: rgba(11, 12, 16, 0.55);
    color: #E0E6ED;
    border-radius: 10px;
    padding: 0.7rem 0.9rem;
    font-size: 0.92rem;
}

.rv-quick-go {
    white-space: nowrap;
    padding: 0.65rem 1rem;
}

.rv-quick-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.rv-chip {
    border: 1px solid rgba(197, 155, 39, 0.4);
    background: #13233D;
    color: #DFB743;
    border-radius: 0.375rem;
    padding: 0.4rem 0.75rem;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.rv-chip:hover {
    border-color: rgba(197, 155, 39, 0.55);
    background: rgba(197, 155, 39, 0.2);
    color: #DFB743;
}

.rv-quick-chips--sidebar {
    margin-top: 0.55rem;
}

.rv-quick-chips--sidebar .rv-chip {
    font-size: 0.68rem;
    padding: 0.32rem 0.55rem;
}

.rv-ia-reply-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(212, 175, 55, 0.22);
}

.rv-ia-reply-actions button {
    min-height: 32px;
    padding: 0 0.65rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: transparent;
    color: #F5F0E6;
    font-size: 10px;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.rv-ia-reply-actions button:hover {
    border-color: #D4AF37;
    color: #D4AF37;
    background: rgba(212, 175, 55, 0.08);
}

/* Fase 4 · Trazabilidad Exegética (auditoría de fuentes) */
.rv-ia-trace {
    margin-top: 0.85rem;
    border: 1px solid rgba(158, 123, 53, 0.45);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.35);
    overflow: hidden;
}

.rv-ia-trace-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.55rem;
    cursor: pointer;
    list-style: none;
    padding: 0.65rem 0.75rem;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #E8D5A3;
    user-select: none;
}

.rv-ia-trace-summary::-webkit-details-marker {
    display: none;
}

.rv-ia-trace-mark {
    color: #B8860B;
}

.rv-ia-trace-badge {
    margin-left: auto;
    font-size: 9px;
    letter-spacing: 0.08em;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    border: 1px solid rgba(184, 134, 11, 0.45);
    color: #B8860B;
}

.rv-ia-trace[open] .rv-ia-trace-summary {
    border-bottom: 1px solid rgba(158, 123, 53, 0.3);
}

.rv-ia-trace-body {
    padding: 0.75rem 0.85rem 0.9rem;
}

.rv-ia-trace-lead {
    margin: 0 0 0.7rem;
    font-size: 12px;
    line-height: 1.45;
    color: rgba(245, 240, 230, 0.78);
}

.rv-ia-trace-grid {
    display: grid;
    gap: 0.65rem;
    margin: 0;
}

.rv-ia-trace-grid dt {
    margin: 0 0 0.2rem;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #B8860B;
}

.rv-ia-trace-grid dd {
    margin: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #F5F0E6;
}

body.is-acompanamiento #panel-asistente-ia .rv-ia-kicker::after {
    content: " · estudio (no pastoral)";
}

.rv-canon-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0 .85rem;
    margin-right: .15rem;
    border-radius: 12px;
    border: 1px solid rgba(197, 160, 89, 0.35);
    color: var(--gold);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.rv-canon-toggle.is-on {
    background: rgba(197, 160, 89, 0.16);
}

@media (min-width: 1024px) {
    .rv-canon-toggle {
        display: none;
    }
}

.rv-drawer {
    position: fixed;
    right: 1rem;
    bottom: 5.1rem;
    z-index: 999998;
    width: min(24rem, calc(100vw - 1.5rem));
    max-height: 62vh;
    display: none;
    background: var(--panel);
    border: 1px solid rgba(197, 160, 89, 0.2);
    border-radius: 16px;
    box-shadow: var(--shadow-deep);
}

.rv-drawer.is-open {
    display: flex;
}

.rv-sidebar input {
    background: #0A0C11;
    color: var(--chrome-ink);
    border: 1px solid rgba(197, 160, 89, 0.28);
    border-radius: 12px;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .25);
}

.rv-sidebar input::placeholder {
    color: var(--chrome-muted);
}

select.rv-select {
    min-width: 12.5rem;
    padding: .5rem .75rem;
    font-size: 12px;
    background: #fff;
    color: var(--graphite);
    border: 1px solid rgba(26, 26, 26, 0.08);
    border-radius: 12px;
    box-shadow: var(--shadow-card);
}

select.rv-select:focus {
    outline: 2px solid var(--gold);
}

.rv-card-deep input,
.rv-card-deep textarea,
.rv-drawer input,
.rv-drawer textarea {
    background: #0A0C11;
    color: var(--chrome-ink);
    border: 1px solid rgba(197, 160, 89, 0.28);
    border-radius: 12px;
}

.rv-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.15rem;
    align-items: end;
}

.rv-exp-btn {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px;
    min-height: 44px;
    border-radius: 12px;
    border: 1px solid rgba(26, 26, 26, 0.08);
    background: #fff;
    color: var(--gold);
    box-shadow: var(--shadow-card);
    display: grid;
    place-items: center;
}

.rv-exp-btn:hover,
.rv-exp-btn.is-on {
    background: rgba(197, 160, 89, 0.14);
    border-color: var(--gold);
}

.rv-exp-wrap {
    position: relative;
    align-self: end;
}

.rv-exp-panel {
    display: none;
    position: absolute;
    top: calc(100% + .55rem);
    right: 0;
    z-index: 60;
    width: min(19.5rem, calc(100vw - 2.5rem));
    padding: 1rem 1.05rem;
    background: var(--paper);
    color: var(--graphite);
    border: 1px solid rgba(26, 26, 26, 0.08);
    border-radius: 16px;
    box-shadow: var(--shadow-deep);
}

.rv-exp-panel.is-open {
    display: block;
}

.rv-exp-panel label span {
    color: var(--gold);
}

.rv-exp-panel input[type="range"] {
    width: 100%;
    accent-color: var(--gold);
}

body:not(.is-santuario):not(.is-acompanamiento) .rv-chrome,
body:not(.is-santuario):not(.is-acompanamiento) .rv-shell,
body:not(.is-santuario):not(.is-acompanamiento) #breadcrumbs,
body:not(.is-santuario):not(.is-acompanamiento) #rv-popover {
    display: none !important;
}

/* Dock de audio: oculto en bienvenida; visible solo en Visor / Aposento */
#rv-audio-dock.rv-audio-dock {
    display: none !important;
    visibility: hidden;
    pointer-events: none;
}

body.rv-splash-blocking #rv-audio-dock {
    display: none !important;
}

body.visor-active #rv-audio-dock.rv-audio-dock,
body.aposento-active #rv-audio-dock.rv-audio-dock,
body.is-santuario #rv-audio-dock.rv-audio-dock {
    display: flex !important;
    visibility: visible;
    pointer-events: auto;
}

/* RevelatiO IA FAB: no tapa formularios de bienvenida */
#btn-asistente-ia.rv-fab {
    display: inline-flex !important;
    position: fixed !important;
    right: 1.15rem !important;
    bottom: 1.15rem !important;
    z-index: 40 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

body.rv-splash-blocking #btn-asistente-ia {
    display: none !important;
}

/* En umbral: FAB discreto, por debajo del flujo de registro */
body:not(.visor-active):not(.aposento-active):not(.is-santuario):not(.is-acompanamiento) #btn-asistente-ia.rv-fab {
    z-index: 30 !important;
    opacity: 0.92;
}

#panel-asistente-ia,
#panel-asistente-ia.is-open {
    z-index: 50 !important;
}

body.is-santuario #panel-canon {
    visibility: visible;
    pointer-events: auto;
}

.rv-door[data-ir] {
    pointer-events: auto !important;
    cursor: pointer !important;
    position: relative;
    z-index: 2;
}

.rv-audio-dock {
    position: fixed;
    z-index: 35;
    left: 1rem;
    right: auto;
    bottom: 1rem;
    transform: none;
    width: auto;
    max-width: min(22rem, calc(100vw - 6.5rem));
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    min-height: 3rem;
    padding: 0.45rem 0.65rem;
    background: #0a0a0a;
    color: #FFFFFF;
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
    pointer-events: auto;
}

.rv-audio-dock.is-expanded {
    max-width: min(26rem, calc(100vw - 5.5rem));
    border-radius: 16px;
}

.rv-dock-main {
    min-width: 0;
    flex: 1 1 auto;
}

.rv-dock-title {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.08em;
    color: #FDFCFA;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 9.5rem;
}

.rv-audio-dock button.rv-dock-play {
    width: 2.45rem;
    height: 2.45rem;
    min-width: 40px;
    min-height: 40px;
    border-radius: 999px;
    border: 1px solid #D4AF37;
    background: #0a0a0a !important;
    color: #D4AF37 !important;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    cursor: pointer;
}

.rv-audio-dock button.rv-dock-play.is-on {
    background: #D4AF37 !important;
    color: #0a0a0a !important;
}

.rv-dock-chip {
    min-height: 32px;
    padding: 0 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: transparent !important;
    color: #E8D5A3 !important;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
}

.rv-dock-chip:hover {
    border-color: #D4AF37;
    color: #FFFFFF !important;
}

.rv-dock-panel {
    display: none;
    width: 100%;
    flex-basis: 100%;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 0.75rem;
    padding-top: 0.55rem;
    margin-top: 0.15rem;
    border-top: 1px solid rgba(212, 175, 55, 0.25);
}

.rv-audio-dock.is-expanded .rv-dock-panel {
    display: grid;
}

.rv-dock-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(245, 240, 230, 0.7);
}

.rv-dock-field select,
.rv-dock-field input[type="range"] {
    width: 100%;
    accent-color: #D4AF37;
}

.rv-dock-field select {
    min-height: 32px;
    border-radius: 8px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: #000000;
    color: #F5F0E6;
    font-size: 11px;
    letter-spacing: 0.02em;
    text-transform: none;
    padding: 0 0.45rem;
}

.rv-dock-loop {
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
    padding-top: 1.1rem;
}

.rv-audio-status {
    margin: 0.1rem 0 0;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #C9C6BE;
}

/* Botones Escuchar */
.rv-listen-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-height: 30px;
    padding: 0 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: transparent;
    color: #D4AF37;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-listen-btn:hover,
.rv-listen-btn.is-speaking {
    background: rgba(212, 175, 55, 0.12);
    border-color: #D4AF37;
    color: #FFFFFF;
}

.rv-listen-btn svg {
    width: 14px;
    height: 14px;
}

.rv-toolbar-listen {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.65rem;
}

body.is-acompanamiento #rv-audio-dock {
    display: none !important;
}

@media (max-width: 767px) {
    .rv-audio-dock {
        width: calc(100vw - 1.5rem);
        bottom: 4.85rem;
        border-radius: 16px;
    }

    .rv-fab {
        bottom: 1.05rem;
    }

    .rv-footer {
        padding-bottom: 9.2rem;
    }

    #rv-popover {
        flex-wrap: wrap;
        max-width: min(96vw, 22rem);
    }

    #rv-popover .rv-pop-acts {
        flex-wrap: wrap;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .rv-audio-dock {
        width: min(26rem, calc(100vw - 8rem));
    }

    .rv-footer {
        padding-bottom: 6.4rem;
    }
}

.rv-toolbar label span {
    color: var(--gold);
}

.rv-highlight-dev,
.rv-hl-oro,
mark.rv-hl-oro {
    background: rgba(197, 160, 89, 0.42);
    color: var(--graphite);
    box-shadow: inset 0 -2px 0 var(--gold);
    border-radius: 4px;
    transition: background .25s ease, box-shadow .25s ease;
}

.rv-hl-azul,
mark.rv-hl-azul {
    background: rgba(46, 92, 184, 0.28);
    color: var(--graphite);
    box-shadow: inset 0 -2px 0 #2E5CB8;
    border-radius: 4px;
    transition: background .25s ease, box-shadow .25s ease;
}

.rv-hl-verde,
mark.rv-hl-verde {
    background: rgba(46, 125, 78, 0.30);
    color: var(--graphite);
    box-shadow: inset 0 -2px 0 #2E7D4E;
    border-radius: 4px;
    transition: background .25s ease, box-shadow .25s ease;
}

.rv-hl-purpura,
mark.rv-hl-purpura {
    background: rgba(122, 62, 157, 0.28);
    color: var(--graphite);
    box-shadow: inset 0 -2px 0 #7A3E9D;
    border-radius: 4px;
    transition: background .25s ease, box-shadow .25s ease;
}

.rv-verse-surface {
    display: block;
    cursor: pointer;
    border-radius: 8px;
    padding: .18rem .4rem .22rem .2rem;
    touch-action: manipulation;
    margin: 0 0 .85em;
    scroll-margin-top: 5.5rem;
    transition: background .2s ease, box-shadow .2s ease, outline-color .2s ease;
}

.rv-verse-surface:hover {
    background: rgba(197, 160, 89, 0.08);
}

.rv-verse-surface.is-verse-on {
    background: linear-gradient(90deg, rgba(197, 160, 89, 0.16), rgba(197, 160, 89, 0.04));
    box-shadow: inset 3px 0 0 var(--gold), 0 8px 18px -12px rgba(90, 70, 30, 0.28);
    outline: 1px solid rgba(197, 160, 89, 0.4);
    outline-offset: 2px;
}

/* —— Fase 2 · Modo de Estudio por Versículo —— */
.rv-verse-study {
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem 1.15rem;
    border: 1px solid rgba(212, 175, 55, 0.38);
    border-radius: 14px;
    background:
        radial-gradient(120% 80% at 0% 0%, rgba(212, 175, 55, 0.12), transparent 55%),
        #000000;
}

.rv-verse-study[hidden] {
    display: none !important;
}

.rv-verse-study-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 0.85rem;
    margin-bottom: 0.85rem;
}

.rv-verse-study-kicker {
    margin: 0;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-verse-study-ref {
    margin: 0;
    flex: 1 1 auto;
    font-family: Cinzel, serif;
    font-size: 1.05rem;
    letter-spacing: 0.06em;
    color: #FFFFFF;
}

.rv-verse-study-nav {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.rv-verse-study-btn,
.rv-verse-study-exit {
    min-height: 36px;
    padding: 0 0.75rem;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.45);
    background: #0a0a0a;
    color: #FFFFFF;
    font-size: 12px;
    letter-spacing: 0.08em;
    cursor: pointer;
}

.rv-verse-study-exit {
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 0.14em;
    color: #D4AF37;
}

.rv-verse-study-btn:hover,
.rv-verse-study-exit:hover {
    border-color: #D4AF37;
    background: rgba(212, 175, 55, 0.12);
}

.rv-verse-study-btn:disabled {
    opacity: 0.35;
    cursor: default;
}

.rv-verse-study-hero {
    margin: 0;
    padding: 0.35rem 0 0.85rem;
    border: 0;
    font-family: "Source Serif 4", "Cormorant Garamond", serif;
    font-size: clamp(1.2rem, 2.4vw, 1.55rem);
    line-height: 1.75;
    color: #FFFFFF;
}

.rv-verse-study-hero .rv-verse-num {
    color: #D4AF37;
}

.rv-verse-study-jumps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.rv-verse-study-jumps button {
    min-height: 34px;
    padding: 0 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-verse-study-jumps button:hover {
    border-color: #D4AF37;
    color: #D4AF37;
}

body.is-verse-study #texto-biblico .rv-verse-surface:not(.is-verse-on) {
    opacity: 0.28;
    filter: saturate(0.55);
}

body.is-verse-study #texto-biblico .rv-verse-surface.is-verse-on {
    opacity: 1;
    background: linear-gradient(90deg, rgba(212, 175, 55, 0.22), rgba(212, 175, 55, 0.06));
    box-shadow: inset 3px 0 0 #D4AF37, 0 12px 28px -14px rgba(212, 175, 55, 0.45);
    outline-color: rgba(212, 175, 55, 0.65);
}

body.is-verse-study #rv-ficha-academica {
    display: none !important;
}

.rv-pop-study {
    border-color: rgba(212, 175, 55, 0.55) !important;
    color: #D4AF37 !important;
}

.rv-verse-text {
    display: inline;
}

.rv-verse-num,
sup.rv-verse-num {
    display: inline;
    position: static;
    float: none;
    font-family: Cinzel, serif;
    font-size: .68em;
    font-weight: 700;
    line-height: 0;
    vertical-align: super;
    margin: 0 .32em 0 0;
    padding: 0;
    min-width: 0;
    height: auto;
    color: var(--gold);
    background: none;
    border: none;
    border-radius: 0;
    letter-spacing: .02em;
    user-select: none;
}

.rv-verse-surface.is-verse-on .rv-verse-num {
    color: #8D7040;
    background: none;
    border: none;
}

.rv-lectura-cuerpo {
    display: block;
    width: 100%;
}

/* Legacy: si vuelve el rail visible, layout en columnas sin estrechar el texto */
.rv-lectura-cuerpo:has(.rv-verse-rail:not([hidden])) {
    display: grid;
    grid-template-columns: 2.85rem minmax(0, 1fr);
    gap: 0.85rem 1rem;
    align-items: start;
}

.rv-verse-rail:empty,
.rv-verse-rail[hidden] {
    display: none !important;
}

.rv-lectura-cuerpo:has(.rv-verse-rail:empty),
.rv-lectura-cuerpo:has(.rv-verse-rail[hidden]) {
    display: block;
    grid-template-columns: none;
}

.rv-verse-rail {
    position: sticky;
    top: .65rem;
    max-height: min(68vh, 38rem);
    overflow-y: auto;
    padding: .1rem 0 .3rem;
}

.rv-verse-rail-label {
    display: block;
    margin-bottom: .35rem;
    font-size: 8px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--gold);
}

.rv-verse-rail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
}

.rv-verse-rail button {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px;
    min-height: 44px;
    border-radius: 8px;
    font-size: 11px;
    color: #6B6B6B;
    background: transparent;
    border: 1px solid transparent;
}

.rv-verse-rail button:hover {
    color: var(--graphite);
    background: rgba(197, 160, 89, 0.12);
    border-color: rgba(197, 160, 89, 0.28);
}

.rv-verse-rail button.is-on {
    color: var(--graphite);
    background: rgba(197, 160, 89, 0.22);
    border-color: var(--gold);
    box-shadow: var(--shadow-card);
}

@media (max-width: 639px) {
    .rv-lectura-cuerpo:has(.rv-verse-rail:not([hidden])) {
        grid-template-columns: 1fr;
    }

    .rv-verse-rail {
        position: static;
        max-height: none;
        margin-bottom: .4rem;
        padding-bottom: .55rem;
        border-bottom: 1px solid rgba(26, 26, 26, .06);
    }

    .rv-verse-rail-grid {
        grid-template-columns: repeat(auto-fill, minmax(1.85rem, 1fr));
    }
}

#rv-popover {
    position: fixed;
    z-index: 120;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    width: min(96vw, 28rem);
    max-width: min(96vw, 28rem);
    padding: 0.55rem 0.6rem 0.6rem;
    background: #000000;
    color: #FDFCFA;
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-radius: 14px;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.62);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transform: translateY(4px) scale(.98);
    opacity: 0;
    transition: opacity .16s ease, transform .16s ease;
    pointer-events: auto;
}

#rv-popover.is-on {
    display: flex;
    opacity: 1;
    transform: translateY(0) scale(1);
}

#rv-popover .rv-pop-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

#rv-popover .rv-pop-acts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem;
}

#rv-popover .rv-pop-panel {
    border-top: 1px solid rgba(212, 175, 55, 0.22);
    padding-top: 0.45rem;
}

#rv-popover .rv-pop-label {
    margin: 0 0 0.28rem;
    font-family: Cinzel, serif;
    font-size: 8px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.9);
}

#rv-popover .rv-pop-strongs,
#rv-popover .rv-pop-xrefs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    max-height: 4.6rem;
    overflow: auto;
}

#rv-popover .rv-pop-strongs button,
#rv-popover .rv-pop-xrefs button {
    min-height: 28px;
    padding: 0.2rem 0.45rem;
    border-radius: 8px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: rgba(212, 175, 55, 0.08);
    color: #E8D5A3;
    font-size: 10px;
    cursor: pointer;
}

#rv-popover .rv-pop-empty {
    margin: 0;
    font-size: 11px;
    color: #8f8c84;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
}

#rv-popover .rv-pop-selects {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
}

#rv-popover .rv-pop-selects label {
    display: block;
    font-size: 8px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.85);
    margin-bottom: 0.2rem;
}

#rv-popover .rv-pop-selects select {
    width: 100%;
    min-height: 34px;
    border-radius: 8px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: #0a0a0c;
    color: #FDFCFA;
    font-size: 11px;
    padding: 0.25rem 0.4rem;
}

.rv-ficha-academica {
    margin: 0 0 1.25rem;
    padding: 1rem;
    border-radius: 0.5rem;
    border: 1px solid #E2D7C3;
    background: #F4EFE6;
    box-shadow: 0 1px 3px rgba(10, 25, 47, 0.06);
    color: #0A192F;
}

/* Fase 1 · Ficha de Contexto Histórico (pergamino editorial — contraste & jerarquía) */
.rv-contexto-historico {
    margin: 0 0 1.5rem;
    padding: 1rem 1.1rem 1.15rem;
    background: #FAF6EE;
    border: 1px solid #E8DFC8;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px rgba(10, 25, 47, 0.06);
}

@media (min-width: 640px) {
    .rv-contexto-historico {
        padding: 1.25rem 1.35rem 1.35rem;
    }
}

.rv-contexto-historico[hidden] {
    display: none !important;
}

.rv-contexto-meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    margin: 0;
    padding: 0 0 0.9rem;
    border-bottom: 1px solid #E8DFC8;
}

@media (min-width: 640px) {
    .rv-contexto-meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.85rem 1.25rem;
        padding-bottom: 1rem;
    }
}

.rv-contexto-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.rv-contexto-label {
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #855D10;
    font-weight: 700;
    margin-bottom: 0.1rem;
}

@media (min-width: 640px) {
    .rv-contexto-label {
        font-size: 11px;
    }
}

.rv-contexto-value {
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-size: 0.8125rem; /* 13px */
    letter-spacing: 0.01em;
    color: #0A192F;
    font-weight: 700;
    line-height: 1.35;
}

@media (min-width: 640px) {
    .rv-contexto-value {
        font-size: 0.9375rem; /* 15px */
    }
}

.rv-contexto-resumen-wrap {
    padding-top: 0.85rem;
}

.rv-contexto-resumen {
    margin: 0;
    padding: 0;
    border: 0;
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-size: 0.9375rem; /* 15px — antes ~12px */
    font-style: italic;
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: 0.02em;
    color: #1C1917; /* stone-800 — más contraste que slate-700 */
    max-width: none;
}

@media (min-width: 640px) {
    .rv-contexto-resumen {
        font-size: 1.0625rem; /* 17px */
        line-height: 1.7;
    }
}

/* Visible en Modo Aposento / santuario (sin sticky negro) */
body.is-santuario #contexto-historico-header:not([hidden]) {
    display: block;
    position: relative;
    top: auto;
    z-index: 1;
    background: #FAF6EE;
}

.rv-ficha-academica[hidden] {
    display: none !important;
}

.rv-ficha-kicker {
    margin: 0 0 0.35rem;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.95);
}

.rv-ficha-title {
    margin: 0 0 0.75rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.2rem;
    color: #FDFCFA;
    font-weight: 600;
}

.rv-ficha-grid {
    display: grid;
    gap: 0.55rem 1rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .rv-ficha-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.rv-ficha-grid dt {
    margin: 0;
    font-family: Cinzel, serif;
    font-size: 8px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.85);
}

.rv-ficha-grid dd {
    margin: 0.15rem 0 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 0.98rem;
    line-height: 1.45;
    color: #C9C6BE;
}

#rv-popover button[data-act] {
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 600;
    color: #FDFCFA !important;
    background: #1A1D26 !important;
    border: 1px solid rgba(253, 252, 250, 0.22);
    border-radius: 9px;
    padding: 0.38rem 0.58rem;
    min-height: 34px;
    white-space: nowrap;
    cursor: pointer;
}

#rv-popover button[data-act]:hover {
    color: #090A0F !important;
    background: #C5A059 !important;
    border-color: #C5A059;
}

#rv-popover button[data-act="ai"] {
    text-transform: none;
    letter-spacing: 0;
    color: #090A0F !important;
    background: #C5A059 !important;
    border: 1px solid #C5A059;
    padding: 0.28rem 0.5rem 0.28rem 0.35rem;
    gap: 0.28rem;
    display: inline-flex;
    align-items: center;
}

#rv-popover button[data-act="ai"]:hover {
    color: #090A0F !important;
    background: #E8D5A3 !important;
    border-color: #E8D5A3;
}

#rv-popover button[data-act="ai"] .rv-ia-isotipo {
    width: 0.92rem;
    height: 0.92rem;
}

#rv-popover button[data-act="ai"] .rv-ia-name {
    font-size: 9px;
    letter-spacing: .08em;
    color: inherit;
    text-transform: uppercase;
    font-weight: 700;
}

.rv-ipad-swatches {
    display: flex;
    align-items: center;
    gap: .2rem;
    padding: 0 .08rem;
}

.rv-swatch {
    width: 1.2rem;
    height: 1.2rem;
    min-width: 22px;
    min-height: 22px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .35);
    box-shadow: 0 0 0 1px rgba(197, 160, 89, 0.18);
    transition: transform .16s ease, box-shadow .16s ease;
}

.rv-swatch:hover {
    transform: scale(1.1);
}

.rv-swatch.is-on {
    box-shadow: 0 0 0 2px var(--gold);
    transform: scale(1.08);
}

.sw-oro {
    background: radial-gradient(circle at 35% 30%, #E8D5A3, #C5A059 55%, #8D7040);
}

.sw-azul {
    background: radial-gradient(circle at 35% 30%, #7BA3E8, #2E5CB8 58%, #1B3A7A);
}

.sw-verde {
    background: radial-gradient(circle at 35% 30%, #8FCB9B, #2E7D4E 58%, #1B4D32);
}

.sw-purpura {
    background: radial-gradient(circle at 35% 30%, #C49BDE, #7A3E9D 58%, #4A2266);
}

.rv-ipad-sep {
    width: 1px;
    height: 0.9rem;
    background: rgba(197, 160, 89, 0.28);
    margin: 0 .08rem;
}

/* --- Components · Estudio tools ------------------------------------------ */
.rv-nav-cuaderno {
    width: 100%;
    text-align: left;
    padding: .7rem .85rem;
    border-radius: 12px;
    border: 1px solid rgba(201, 168, 76, 0.5);
    color: var(--gold-bright);
    background: var(--chrome-dark);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    box-shadow: none;
    cursor: pointer;
}

.rv-nav-cuaderno:hover {
    background: rgba(201, 168, 76, 0.14);
    color: #FFFFFF;
    border-color: var(--gold-bright);
}

.rv-nav-cuaderno.is-on {
    background: var(--gold-bright);
    color: var(--chrome-dark);
    border-color: #D4AF37;
}

.rv-sidebar-home {
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-height: 36px;
    padding: 0.4rem 0.55rem;
    border: 0;
    border-bottom: 1px solid rgba(197, 155, 39, 0.28);
    border-radius: 0;
    background: transparent;
    color: #E7E5E4;
    font-family: Cinzel, serif;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    text-align: left;
}

.rv-sidebar-home:hover {
    color: #D4AF37;
}

/* Contraste editorial del menú lateral de estudio · Azul Noche Imperial */
body.is-santuario .rv-sidebar,
#panel-canon.rv-sidebar {
    background-color: var(--chrome-dark) !important;
    color: #E7E5E4 !important;
    border-right: 1px solid rgba(201, 168, 76, 0.3) !important;
    border-color: rgba(201, 168, 76, 0.3) !important;
}

body.is-santuario .rv-sidebar input,
#panel-canon #buscador-canon {
    background: #13233D !important;
    color: #F8FAFC !important;
    border: 1px solid rgba(197, 155, 39, 0.4) !important;
}

body.is-santuario .rv-sidebar input::placeholder {
    color: #94A3B8 !important;
}

body.is-santuario .rv-sidebar .libro-btn,
body.is-santuario .rv-sidebar .libro-nombre {
    color: #E2E8F0 !important;
}

body.is-santuario .rv-sidebar h3 {
    color: #DFB743 !important;
}

body.is-santuario .rv-sidebar .libro-caps {
    color: #94A3B8 !important;
}

body.is-santuario .rv-sidebar .cap-btn {
    color: #CBD5E1 !important;
    border-color: rgba(213, 221, 227, 0.35) !important;
    background: #2C3E4A !important;
}

body.is-santuario .rv-sidebar .cap-btn.is-active {
    background: var(--gold-bright) !important;
    color: var(--chrome-dark) !important;
    border-color: var(--gold-bright) !important;
}

body.is-santuario .rv-sidebar .cap-btn:hover {
    background: #2C3E4A !important;
    color: var(--gold-bright) !important;
    border-color: var(--gold-bright) !important;
}

/* --- Components · Cuaderno del Peregrino (panel derecho) ----------------- */
#modulo-cuaderno,
.rv-cuaderno {
    position: fixed;
    inset: 0;
    z-index: 92;
    display: none;
    pointer-events: none;
}

#modulo-cuaderno.is-open,
.rv-cuaderno.is-open {
    display: block;
    pointer-events: auto;
}

.rv-cuaderno-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

.rv-cuaderno-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(26.5rem, 100%);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #0a0a0a;
    color: #F5F0E6;
    border-left: 1px solid rgba(212, 175, 55, 0.35);
    box-shadow: -18px 0 40px -20px rgba(0, 0, 0, 0.75);
    transform: translateX(104%);
    transition: transform 0.28s ease;
}

#modulo-cuaderno.is-open .rv-cuaderno-panel,
.rv-cuaderno.is-open .rv-cuaderno-panel {
    transform: translateX(0);
}

.rv-cuaderno-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.1rem 1.15rem 0.95rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.28);
    background: #000000;
}

.rv-cuaderno-kicker {
    margin: 0;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-cuaderno-title {
    margin: 0.35rem 0 0;
    font-family: Cinzel, serif;
    font-size: 1.55rem;
    letter-spacing: 0.04em;
    color: #FFFFFF;
}

.rv-cuaderno-tools {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.rv-cuaderno-icon-btn {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: #0a0a0a;
    color: #D4AF37;
    cursor: pointer;
}

.rv-cuaderno-icon-btn:hover {
    background: rgba(212, 175, 55, 0.12);
    color: #FFFFFF;
}

.rv-cuaderno-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem 1.1rem 1.25rem;
}

.rv-cuaderno-meter,
.rv-cuaderno-quota {
    margin-bottom: 1rem;
    padding-bottom: 0.95rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.22);
}

.rv-cuaderno-meter-labels,
.rv-cuaderno-quota-kicker {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 11px;
    font-weight: 600;
    color: #E8E2D4;
}

.rv-cuaderno-quota-kicker {
    display: block;
    margin: 0 0 0.35rem;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #E8C547;
}

.rv-cuaderno-quota-copy,
.rv-cuaderno-expire-hint {
    margin: 0.45rem 0 0;
    font-size: 12px;
    line-height: 1.55;
    color: #F0E6C8;
}

.rv-cuaderno-export-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.7rem;
}

.rv-cuaderno-export-row .rv-btn-gold {
    padding: 0.45rem 0.7rem;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.rv-cuaderno-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.95rem;
}

.rv-cuaderno-lista {
    display: grid;
    gap: 0.75rem;
}

.rv-note-card {
    background: #0a0a0a;
    border-radius: 12px;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(212, 175, 55, 0.28);
    box-shadow: none;
    color: #F5F0E6;
}

.rv-note-card.is-expire {
    border-color: rgba(212, 175, 55, 0.55);
}

.rv-note-card .rv-note-when {
    margin: 0 0 0.45rem;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #E8C547;
    font-weight: 600;
}

.rv-note-card .rv-note-ref {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #F0D56A;
    font-weight: 600;
}

.rv-note-card .rv-note-title {
    margin: 0.35rem 0 0;
    font-family: Cinzel, serif;
    font-size: 1.05rem;
    line-height: 1.35;
    color: #FFFFFF;
}

.rv-note-card .rv-note-body {
    margin: 0.45rem 0 0;
    font-size: 14px;
    line-height: 1.6;
    color: #F5F0E6;
}

.rv-note-card .rv-chip {
    border-color: rgba(232, 197, 71, 0.45);
    color: #F0D56A;
    background: rgba(19, 35, 61, 0.85);
}

.rv-chip-gold {
    border-color: rgba(232, 197, 71, 0.65);
    color: #F0D56A;
    background: rgba(197, 155, 39, 0.18);
}

.rv-cuota-track {
    height: 10px;
    border-radius: 99px;
    background: rgba(248, 250, 252, 0.18);
    border: 1px solid rgba(232, 197, 71, 0.35);
    overflow: hidden;
    margin-top: 0.5rem;
}

.rv-cuota-fill {
    height: 100%;
    min-width: 4px;
    border-radius: 99px;
    background: linear-gradient(90deg, #F0D56A, #C59B27);
    box-shadow: 0 0 8px rgba(240, 213, 106, 0.35);
    transition: width .35s ease;
}

.rv-cuaderno-footer {
    flex: 0 0 auto;
    padding: 0.85rem 1.1rem 1rem;
    border-top: 1px solid rgba(212, 175, 55, 0.28);
    background: #000000;
}

.rv-cuaderno-footer p {
    margin: 0;
    font-size: 11px;
    line-height: 1.55;
    color: #E8E2D4;
}

.rv-ia-to-notebook {
    width: 100%;
    min-height: 38px;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: transparent;
    color: #D4AF37;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-ia-to-notebook:hover {
    background: rgba(212, 175, 55, 0.1);
    color: #FFFFFF;
}

.rv-cuaderno-print {
    display: none;
}

@media print {
    body * {
        visibility: hidden !important;
    }

    #rv-cuaderno-print,
    #rv-cuaderno-print * {
        visibility: visible !important;
    }

    #rv-cuaderno-print {
        display: block !important;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        padding: 1.5rem;
        background: #ffffff !important;
        color: #111111 !important;
        font-family: Georgia, "Times New Roman", serif;
        line-height: 1.65;
    }

    #rv-cuaderno-print h1 {
        font-size: 1.5rem;
        margin: 0 0 1rem;
        color: #111 !important;
    }

    #rv-cuaderno-print h2 {
        font-size: 1.1rem;
        margin: 1.25rem 0 0.35rem;
        color: #111 !important;
        border-bottom: 1px solid #ccc;
        padding-bottom: 0.25rem;
    }

    #rv-cuaderno-print .print-meta {
        font-size: 0.8rem;
        color: #333 !important;
        margin-bottom: 0.5rem;
    }

    #rv-cuaderno-print p {
        color: #111 !important;
        margin: 0.35rem 0;
    }

    #rv-splash,
    #rv-app,
    #rv-overlays > :not(#rv-cuaderno-print),
    .rv-fab,
    .rv-audio-dock {
        display: none !important;
    }
}

.rv-chip {
    font-size: 9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .22rem .5rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    color: #E8D5A3;
}

.rv-chip-gold {
    color: #D4AF37;
    border-color: rgba(212, 175, 55, .55);
    background: rgba(212, 175, 55, .12);
}

.rv-sync {
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-sync.is-busy {
    color: #E8D5A3;
}

.rv-tab {
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .45rem .75rem;
    border-radius: 999px;
    border: 1px solid rgba(232, 197, 71, 0.42);
    background: rgba(19, 35, 61, 0.55);
    color: #F0E6C8;
    cursor: pointer;
}

.rv-tab.is-on {
    background: rgba(197, 155, 39, 0.28);
    color: #FFFFFF;
    border-color: #E8C547;
    box-shadow: none;
    font-weight: 600;
}

#modulo-marginnote {
    background: var(--paper);
    color: var(--graphite);
    border: 1px solid rgba(26, 26, 26, 0.08);
    box-shadow: var(--shadow-deep);
    z-index: 92;
}

#modulo-marginnote input,
#modulo-marginnote textarea {
    background: #fff;
    color: var(--graphite);
    border: 1px solid rgba(26, 26, 26, 0.08);
}

.rv-token {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    margin: 0 .4rem .7rem 0;
    vertical-align: top;
    cursor: pointer;
}

.rv-token-orig {
    color: var(--gold);
    font-size: 1.05rem;
    line-height: 1.2;
}

.rv-token-meta {
    color: var(--graphite-soft);
    font-size: 9px;
    letter-spacing: .04em;
    text-align: center;
    max-width: 7.5rem;
}

.rv-lectura-title {
    color: #0A192F !important;
}

.rv-lectura-meta {
    color: #334155 !important;
}

.rv-lectura-muted {
    color: #475569 !important;
}

.rv-lectura-note {
    color: #475569 !important;
}

#rv-music,
#rv-voice,
#rv-welcome-voice {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    pointer-events: none;
}

#form-sermon,
#visor-paralelo {
    display: none !important;
}

body.rv-estudio #revelatio-universal-action-bar,
body.rv-estudio .rv-action-sheet,
body.rv-estudio .rv-selection-toolbar,
body.rv-estudio .rv-selection-handle {
    display: none !important;
}

.sheet-hidden {
    display: none;
}

.sheet-hidden.is-open {
    display: block;
}

.efata-modal.sheet-hidden.is-open {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.rv-header-copy {
    min-width: 0;
}

.rv-sub {
    font-size: 10px;
    letter-spacing: 0.12em;
    color: var(--chrome-muted);
    line-height: 1.45;
}

.rv-lockup-btn {
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    border-radius: 12px;
}

.rv-lockup-btn:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
}

/* --- Layout · Router shell ------------------------------------------------ */
.rv-app {
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.rv-route {
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.rv-route[hidden] {
    display: none !important;
}
#rv-overlays {
    /* overlays viven fuera del router */
}

/* --- Layout · Dashboard -------------------------------------------------- */
.rv-home {
    position: fixed;
    inset: 0;
    z-index: 82;
    overflow-y: auto;
    overflow-x: hidden;
    background:
        radial-gradient(1200px 640px at 12% -10%, rgba(197, 160, 89, 0.14), transparent 58%),
        radial-gradient(900px 520px at 92% 8%, rgba(197, 160, 89, 0.07), transparent 50%),
        #0a0a0c;
    color: #F4F5F7;
    -webkit-overflow-scrolling: touch;
}

.rv-home.is-hidden {
    display: none;
}

body:not(.is-santuario) {
    overflow: hidden;
}

.rv-home-bg {
    pointer-events: none;
    position: absolute;
    inset: 0;
    background-image: url("brand/textures/marmol.png");
    background-size: cover;
    background-position: center;
    opacity: 0.09;
}

.rv-home-inner {
    position: relative;
    width: min(72rem, calc(100% - 2rem));
    margin: 0 auto;
    padding: 1.6rem 0 3.5rem;
}

.rv-glass {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid var(--color-border-subtle);
    border-radius: 18px;
    box-shadow: var(--shadow-card), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.rv-home-kicker {
    font-size: 10px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--gold);
}

.rv-home-hero {
    display: grid;
    gap: 1.15rem;
    margin-bottom: 1.1rem;
}

.rv-home-brand {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: min(100%, 36rem);
    margin: 0.35rem auto 0.85rem;
    isolation: isolate;
}

/* Halo premium detrás del emblema (sin caja). */
.rv-home-brand::before {
    content: "";
    position: absolute;
    inset: 4% 10% 12%;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 48% 42% at 50% 36%, rgba(232, 205, 140, 0.42), rgba(197, 160, 89, 0.16) 42%, transparent 72%),
        radial-gradient(ellipse 28% 22% at 68% 22%, rgba(255, 220, 150, 0.28), transparent 70%);
    filter: blur(34px);
    opacity: 0.95;
    animation: rv-brand-glow 7.5s ease-in-out infinite;
}

.rv-home-brand::after {
    content: "";
    position: absolute;
    inset: 18% 22% 28%;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(circle at 50% 45%, rgba(255, 236, 190, 0.22), transparent 68%);
    filter: blur(18px);
    mix-blend-mode: screen;
}

.rv-home-lockup {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 32rem);
    height: auto;
    max-height: min(42vh, 22rem);
    object-fit: contain;
    mix-blend-mode: normal;
    filter:
        drop-shadow(0 0 18px rgba(197, 160, 89, 0.38)) drop-shadow(0 0 48px rgba(197, 160, 89, 0.22)) drop-shadow(0 18px 40px rgba(0, 0, 0, 0.55)) brightness(1.06) contrast(1.04) saturate(1.08);
    -webkit-mask-image: none;
    mask-image: none;
    transform: translateZ(0) scale(1.04);
}

@keyframes rv-brand-glow {

    0%,
    100% {
        opacity: 0.82;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        transform: scale(1.04);
    }
}

.rv-home-hero-panel {
    display: grid;
    gap: 1.25rem;
    padding: 1.55rem 1.45rem 1.45rem;
}

.rv-home-hero h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(2.15rem, 5vw, 3.55rem);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: #FDFCFA;
}

.rv-home-hero h2 em {
    font-style: italic;
    color: #E8D5A3;
}

.rv-home-lead {
    max-width: 38rem;
    font-size: 1.05rem;
    line-height: 1.7;
    color: #C9C6BE;
}

.rv-home-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.rv-home-actions .rv-btn-fill,
.rv-home-actions .rv-btn-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 2.75rem;
    height: 2.75rem;
    padding: 0 1.2rem;
    border-radius: 10px;
    font-family: Cinzel, Georgia, serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1;
    white-space: nowrap;
}

.rv-home-actions .rv-btn-fill {
    border: 1px solid var(--gold);
    background: linear-gradient(180deg, #E8D5A3 0%, var(--gold) 48%, #9a7a3d 100%);
    color: #0a0a0c;
    box-shadow:
        0 10px 28px rgba(197, 160, 89, 0.32),
        0 0 0 1px rgba(232, 213, 163, 0.25) inset;
    min-height: 3.05rem;
    height: 3.05rem;
    padding: 0 1.55rem;
    font-size: 11px;
    letter-spacing: 0.2em;
}

.rv-home-actions .rv-btn-fill:hover {
    filter: brightness(1.06);
    box-shadow:
        0 14px 34px rgba(197, 160, 89, 0.42),
        0 0 0 1px rgba(255, 240, 200, 0.35) inset;
}

.rv-home-actions .rv-btn-fill:active {
    transform: translateY(1px);
    filter: brightness(0.98);
}

#entrar-texto {
    position: relative;
    z-index: 1;
}

.rv-home-actions .rv-btn-gold {
    border: 1px solid rgba(197, 160, 89, 0.55);
    background: transparent;
    color: #E8D5A3;
    box-shadow: none;
}

.rv-home-actions .rv-btn-gold:hover {
    background: rgba(197, 160, 89, 0.1);
    border-color: var(--gold);
}

.rv-home-music {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 0.95rem;
    color: #C9C6BE;
    cursor: pointer;
    user-select: none;
}

.rv-home-music input {
    width: 0.95rem;
    height: 0.95rem;
    accent-color: var(--gold);
}

.rv-btn-fill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gold);
    background: var(--gold);
    color: #0a0a0c;
    border-radius: 12px;
    padding: 0.78rem 1.15rem;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    min-height: 44px;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(197, 160, 89, 0.22);
}

.rv-btn-fill:hover {
    filter: brightness(1.06);
}

.rv-home-grid {
    display: grid;
    gap: 1.1rem;
}

@media (min-width: 900px) {
    .rv-home-hero-panel {
        padding: 2rem 2.1rem 1.85rem;
    }

    .rv-home-brand {
        width: min(100%, 42rem);
        margin-bottom: 1.1rem;
    }

    .rv-home-lockup {
        max-height: min(48vh, 26rem);
        width: min(100%, 38rem);
        transform: translateZ(0) scale(1.06);
    }

    .rv-home-grid {
        grid-template-columns: 1.15fr 0.85fr;
    }

    .rv-home-span {
        grid-column: 1 / -1;
    }
}

.rv-home-card {
    padding: 1.25rem 1.3rem 1.3rem;
    transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.rv-home-card:hover {
    transform: translateY(-2px);
    border-color: rgba(197, 160, 89, 0.38);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.rv-home-card h3 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.65rem;
    line-height: 1.2;
    color: #FDFCFA;
    margin: 0.35rem 0 0.55rem;
}

.rv-home-card p {
    color: #C9C6BE;
    font-size: 0.95rem;
    line-height: 1.65;
}

.rv-home-quote {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 1.2rem;
    line-height: 1.45;
    color: #E8D5A3;
    margin: 0.7rem 0 1rem;
}

.rv-home-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.85rem;
}

.rv-home-form input,
.rv-home-form textarea {
    flex: 1 1 14rem;
    min-height: 44px;
    border-radius: 12px;
    border: 1px solid rgba(197, 160, 89, 0.28);
    background: rgba(9, 10, 15, 0.55);
    color: #F4F5F7;
    padding: 0.7rem 0.9rem;
    font-size: 0.95rem;
}

.rv-home-form textarea {
    min-height: 5.2rem;
    resize: vertical;
    flex-basis: 100%;
}

.rv-home-form input:focus,
.rv-home-form textarea:focus {
    outline: 1px solid var(--gold);
}

.rv-home-status {
    margin-top: 0.85rem;
    min-height: 1.4rem;
    font-size: 0.92rem;
    line-height: 1.45;
    color: #F5E6B8;
    font-weight: 600;
}
.rv-home-status:not(:empty) {
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: rgba(212, 175, 55, 0.12);
}

.rv-auth {
    margin-top: 0.15rem;
}

.rv-auth-lead {
    max-width: 42rem;
}

.rv-auth-grid {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

@media (min-width: 700px) {
    .rv-auth-grid {
        grid-template-columns: 1fr 1fr;
    }

    .rv-auth-grid .rv-auth-full {
        grid-column: 1 / -1;
    }
}

.rv-auth-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.rv-auth-field label {
    font-family: Cinzel, Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #E8D5A3;
}

.rv-auth-field input,
.rv-auth-field select {
    width: 100%;
    box-sizing: border-box;
    min-height: 48px;
    border-radius: 12px;
    border: 1px solid rgba(197, 160, 89, 0.32);
    background: rgba(9, 10, 15, 0.72);
    color: #FDFCFA;
    padding: 0.75rem 0.95rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.05rem;
}

.rv-auth-field input:focus,
.rv-auth-field select:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 1px rgba(197, 160, 89, 0.35);
}

.rv-wa-row {
    display: grid;
    grid-template-columns: 7.2rem 1fr;
    gap: 0.5rem;
}

.rv-auth-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.1rem;
    margin-top: 0.2rem;
}

.rv-auth-actions .rv-btn-fill {
    min-width: 12rem;
}

.rv-auth-switch {
    background: none;
    border: 0;
    padding: 0;
    color: #C9C6BE;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 0.98rem;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.2em;
    text-decoration-color: rgba(197, 160, 89, 0.45);
}

.rv-auth-switch:hover {
    color: #E8D5A3;
    text-decoration-color: var(--gold);
}

.rv-auth-session {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.85rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(197, 160, 89, 0.28);
    background: rgba(197, 160, 89, 0.08);
}

.rv-auth-session[hidden],
#form-login[hidden],
#form-registro[hidden],
#rv-auth-forms[hidden] {
    display: none !important;
}

.rv-auth-session strong {
    color: #0A192F;
    font-family: Cinzel, Georgia, serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.rv-auth-session.is-admin {
    border-color: rgba(197, 160, 89, 0.55);
    background: linear-gradient(135deg, rgba(197, 160, 89, 0.16), rgba(197, 160, 89, 0.05));
}

.rv-auth-admin-badge {
    display: inline-block;
    margin-top: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(197, 160, 89, 0.45);
    color: #8A6A12;
    font-family: Cinzel, Georgia, serif;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.rv-auth-session p {
    margin: 0.25rem 0 0;
    color: #334155;
    font-size: 0.92rem;
}

.rv-auth-hint {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: #8f8c84;
    line-height: 1.45;
}

.rv-auth-gate {
    margin: 0 0 0.85rem;
    padding: 0.7rem 0.9rem;
    border-radius: 12px;
    border: 1px solid rgba(197, 160, 89, 0.35);
    background: rgba(197, 160, 89, 0.1);
    color: #E8D5A3;
    font-size: 0.92rem;
    line-height: 1.55;
    font-family: "Cormorant Garamond", Georgia, serif;
}

.rv-auth.is-gate-focus {
    outline: 1px solid rgba(197, 160, 89, 0.55);
    box-shadow: 0 0 0 4px rgba(197, 160, 89, 0.12), 0 18px 40px rgba(0, 0, 0, 0.35);
    animation: rv-gate-pulse 1.1s ease-out 1;
}

@keyframes rv-gate-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(197, 160, 89, 0.35), 0 18px 40px rgba(0, 0, 0, 0.35);
    }

    100% {
        box-shadow: 0 0 0 12px rgba(197, 160, 89, 0), 0 18px 40px rgba(0, 0, 0, 0.35);
    }
}

body:not(.is-registrado) #rv-home [data-ir],
body:not(.is-registrado) #form-home-ia button[type="submit"] {
    position: relative;
}

body:not(.is-registrado) #rv-home .rv-home-actions .rv-btn-fill::after,
body:not(.is-registrado) #rv-home .rv-home-actions .rv-btn-gold::after {
    content: "Registro";
    margin-left: 0.45rem;
    font-size: 9px;
    letter-spacing: 0.12em;
    opacity: 0.75;
}

.rv-streak {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.rv-streak-mark {
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 50%;
    border: 1px solid rgba(197, 160, 89, 0.45);
    display: grid;
    place-items: center;
    font-family: Cinzel, serif;
    font-size: 1.15rem;
    color: var(--gold);
    background: radial-gradient(circle at 40% 30%, rgba(197, 160, 89, 0.22), transparent 65%);
    box-shadow: 0 0 18px rgba(197, 160, 89, 0.18);
}

.rv-note-mini {
    display: block;
    width: 100%;
    text-align: left;
    background: rgba(9, 10, 15, 0.4);
    border: 1px solid rgba(197, 160, 89, 0.14);
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
    color: inherit;
    cursor: pointer;
}

.rv-note-mini+.rv-note-mini {
    margin-top: 0.45rem;
}

.rv-note-mini:hover {
    border-color: rgba(197, 160, 89, 0.4);
}

.rv-note-mini b {
    display: block;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 600;
}

.rv-note-mini span {
    display: block;
    margin-top: 0.25rem;
    color: #C9C6BE;
    font-size: 13px;
    line-height: 1.45;
}

.rv-home-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.35rem;
}

.rv-home-pills button,
.rv-home-pills a {
    border: 1px solid rgba(201, 168, 76, 0.45);
    color: var(--chrome-dark);
    background: var(--panel);
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.rv-home-pills button:hover,
.rv-home-pills a:hover {
    background: rgba(197, 160, 89, 0.12);
}


/* —— Umbral doble vía · Niebla marina —— */
#rv-home.rv-home {
    background: var(--paper);
    background-image: none;
    color: var(--ink);
}

body:not(.is-santuario):not(.is-acompanamiento) {
    background: var(--paper);
    color: var(--ink);
}

#rv-home .rv-home-bg {
    opacity: 0.04;
}

.rv-dual-hero {
    display: grid;
    gap: 0.85rem;
    width: min(56rem, 100%);
    margin: 0 auto;
    padding: 1.5rem 0 0.5rem;
    min-height: auto;
    align-content: center;
}

.rv-dual-brand {
    text-align: center;
    margin: 0;
}

.rv-dual-brand img,
.rv-dual-brand .rv-brand-lockup {
    width: min(13rem, 48vw);
    height: auto;
    margin: 0 auto;
    display: block;
    padding: 0.75rem 1rem;
    filter: drop-shadow(0 16px 36px rgba(0, 0, 0, 0.55));
}

.rv-dual-kicker {
    margin: 0.85rem 0 0.35rem;
    font-family: Cinzel, Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--chrome-dark);
    text-align: center;
}

.rv-dual-title {
    margin: 0;
    text-align: center;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.85rem, 4.2vw, 2.65rem);
    font-weight: 600;
    line-height: 1.12;
    color: var(--ink);
}

.rv-dual-subtitle {
    margin: 0.55rem 0 0;
    text-align: center;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.15rem, 2.6vw, 1.55rem);
    font-style: italic;
    font-weight: 500;
    color: var(--ink-soft);
    line-height: 1.3;
}

.rv-dual-title em {
    font-style: italic;
    color: var(--chrome-dark);
}

.rv-dual-doors {
    display: grid;
    gap: 1rem;
    width: min(56rem, 100%);
    margin: 0 auto 0.5rem;
}

.rv-home-block {
    position: relative;
    z-index: 1;
}

.rv-home-auth-card {
    width: min(36rem, 100%);
    margin-left: auto;
    margin-right: auto;
    margin-top: 2rem;
    margin-bottom: 2rem;
    z-index: 2;
}

.rv-home-chips-foot {
    width: min(56rem, 100%);
    margin: 0 auto 1.5rem;
    text-align: center;
}

.rv-home-chips-foot .rv-home-kicker {
    margin-bottom: 0.65rem;
}

.rv-quick-chips--home {
    justify-content: center;
}

.rv-quick-chips--home .rv-chip {
    font-size: 0.68rem;
    opacity: 0.88;
}

.rv-ia-quick-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.85rem;
}

.rv-ia-quick-chips .rv-chip {
    font-size: 0.68rem;
}

/* Espacio inferior para que FAB no tape inputs en umbral */
#rv-home .rv-home-inner {
    padding-bottom: 6.5rem;
}

#rv-home .rv-auth-field,
#rv-home .rv-auth-field input,
#rv-home .rv-auth-field select {
    position: relative;
    z-index: 2;
}

@media (min-width: 820px) {
    .rv-dual-doors {
        grid-template-columns: 1fr 1fr;
        gap: 1.15rem;
    }
}

.rv-door {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 14.5rem;
    padding: 1.7rem 1.55rem 1.5rem;
    border-radius: 18px;
    border: 1px solid rgba(201, 168, 76, 0.45);
    background: var(--chrome-dark);
    box-shadow:
        0 22px 48px rgba(58, 83, 100, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    text-decoration: none;
    color: #F8FAFC;
    overflow: hidden;
    transition: border-color .28s ease, transform .28s ease, box-shadow .28s ease;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.rv-door::before {
    content: "";
    position: absolute;
    inset: -40% auto auto -20%;
    width: 70%;
    height: 70%;
    pointer-events: none;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.14), transparent 68%);
    opacity: 0.85;
    transition: opacity .28s ease;
}

.rv-door:hover {
    border-color: rgba(212, 175, 55, 0.7);
    transform: translateY(-4px);
    box-shadow:
        0 30px 64px rgba(0, 0, 0, 0.65),
        0 0 0 1px rgba(212, 175, 55, 0.2);
}

.rv-door:hover::before {
    opacity: 1;
}

.rv-door:focus-visible {
    outline: 2px solid rgba(212, 175, 55, 0.7);
    outline-offset: 3px;
}

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

.rv-door-kicker {
    margin: 0 0 0.55rem;
    font-family: Cinzel, Georgia, serif;
    font-size: 9px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-door-title {
    margin: 0 0 0.7rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    font-weight: 600;
    line-height: 1.15;
    color: #E0E6ED;
}

.rv-door-copy {
    margin: 0;
    flex: 1;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 0.98rem;
    line-height: 1.65;
    color: #A8B0BA;
}

.rv-door-cta {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: Cinzel, serif;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #D4AF37;
}

body:not(.is-registrado) .rv-door[data-ir]::after {
    content: " · Registro";
    font-size: 9px;
    letter-spacing: 0.12em;
    opacity: 0.7;
}

/* Acompañamiento ministerial */
/* --- Layout · Acompañamiento --------------------------------------------- */
#rv-acompanamiento {
    display: none;
    position: relative;
    z-index: 40;
    min-height: 100dvh;
    background: #000000;
    color: #FDFCFA;
    padding: 1.25rem 1rem 3rem;
}

body.is-acompanamiento #rv-acompanamiento {
    display: block;
}

body.is-acompanamiento #rv-home,
body.is-acompanamiento .rv-chrome,
body.is-acompanamiento .rv-shell,
body.is-acompanamiento #breadcrumbs {
    display: none !important;
}

.rv-acomp-inner {
    width: min(42rem, 100%);
    margin: 0 auto;
}

.rv-acomp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.rv-acomp-card {
    padding: 1.6rem 1.45rem 1.7rem;
    border-radius: 18px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background:
        radial-gradient(ellipse at top, rgba(212, 175, 55, 0.1), transparent 55%),
        #000000;
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.5);
}

.rv-acomp-card h2 {
    margin: 0 0 0.65rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.7rem, 3vw, 2.2rem);
    color: #FDFCFA;
}

.rv-acomp-card p {
    margin: 0 0 0.9rem;
    color: #C9C6BE;
    line-height: 1.55;
}

.rv-acomp-form textarea {
    width: 100%;
    min-height: 7.5rem;
    margin: 0.75rem 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(197, 160, 89, 0.28);
    background: #000000;
    color: #FDFCFA;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 1rem;
    resize: vertical;
}

.rv-acomp-form textarea:focus {
    outline: none;
    border-color: #C5A059;
}

#rv-acomp-respuesta {
    margin-top: 1.25rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(197, 160, 89, 0.2);
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.15rem;
    line-height: 1.55;
    color: #E8DCC0;
    white-space: pre-wrap;
}

#rv-acomp-respuesta:empty {
    display: none;
}

.rv-home-foot {
    margin-top: 1.4rem;
    text-align: center;
    color: #9A9790;
    font-size: 12px;
    line-height: 1.7;
}

.rv-aporte {
    margin-top: 1.15rem;
    text-align: center;
    padding: 1.65rem 1.45rem 1.7rem;
    background: #000000;
    border: 1px solid rgba(212, 175, 55, 0.4);
}

.rv-aporte .rv-home-kicker {
    margin-bottom: 0.35rem;
    color: rgba(212, 175, 55, 0.95);
}

.rv-aporte h3 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.45rem, 3vw, 1.9rem);
    color: #FDFCFA;
    margin: 0.2rem 0 0.75rem;
    font-weight: 600;
}

.rv-aporte-leyenda {
    max-width: 40rem;
    margin: 0 auto 1.35rem;
    color: #C9C6BE;
    font-size: 1.05rem;
    line-height: 1.75;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
}

.rv-aporte-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: min(100%, 28rem);
    min-height: 3.35rem;
    padding: 1rem 1.55rem;
    border-radius: 14px;
    border: 1px solid rgba(212, 175, 55, 0.55);
    background:
        linear-gradient(180deg, rgba(212, 175, 55, 0.18) 0%, rgba(212, 175, 55, 0.06) 100%),
        #050505;
    color: #F0E6C8;
    font-family: Cinzel, Georgia, serif;
    font-size: clamp(10px, 2.4vw, 12px);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    box-shadow:
        0 16px 40px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 rgba(255, 240, 200, 0.14);
    transition: border-color 0.28s ease, background 0.28s ease, color 0.28s ease, box-shadow 0.28s ease, transform 0.28s ease;
}

.rv-aporte-btn:hover {
    border-color: rgba(212, 175, 55, 0.85);
    color: #FDFCFA;
    transform: translateY(-2px);
    background:
        linear-gradient(180deg, rgba(212, 175, 55, 0.26) 0%, rgba(212, 175, 55, 0.1) 100%),
        #000000;
    box-shadow:
        0 20px 48px rgba(0, 0, 0, 0.55),
        0 0 28px rgba(212, 175, 55, 0.14),
        inset 0 1px 0 rgba(255, 240, 200, 0.2);
}

.rv-aporte-btn:focus-visible {
    outline: 2px solid rgba(212, 175, 55, 0.7);
    outline-offset: 3px;
}

.rv-aporte-btn svg {
    flex-shrink: 0;
    opacity: 0.95;
}

.rv-aporte-wa {
    display: block;
    margin-top: 1rem;
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    color: #8f8c84;
}

.rv-aporte-wa a {
    color: rgba(212, 175, 55, 0.95);
    text-decoration: none;
    border-bottom: 1px solid rgba(212, 175, 55, 0.35);
}

.rv-aporte-wa a:hover {
    color: #E8D5A3;
    border-bottom-color: rgba(212, 175, 55, 0.75);
}

.rv-auth-field-hint {
    margin: 0.35rem 0 0;
    font-size: 11px;
    line-height: 1.45;
    color: #8f8c84;
}

.rv-auth-lead strong {
    color: #E8D5A3;
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .rv-home-card {
        transition: none;
    }

    .rv-home-brand::before {
        animation: none;
    }
}

.rv-btn-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gold);
    color: var(--gold);
    background: transparent;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: var(--shadow-card);
}

.rv-btn-gold:hover {
    background: var(--gold-soft);
}

.rv-btn-gold.rv-ia-btn {
    text-transform: none;
    letter-spacing: 0;
    min-height: 44px;
}

.rv-btn-gold .rv-ia-name {
    color: var(--gold);
}

.rv-footer {
    flex-shrink: 0;
    border-top: 1px solid rgba(201, 168, 76, 0.28);
    background: var(--chrome-dark);
    padding: 0.45rem 1rem;
    z-index: 40;
    min-height: 0;
}

.rv-footer-compact {
    margin: 0;
    text-align: center;
    color: #9A9790;
    font-size: 0.68rem;
    line-height: 1.35;
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rv-footer-more {
    border: 0;
    background: transparent;
    color: #C59B27;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    padding: 0;
}

.rv-footer-details {
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid rgba(197, 155, 39, 0.18);
}

.rv-footer-details[hidden] {
    display: none !important;
}

.rv-footer-details p,
.rv-footer p {
    margin: 0 auto 0.35rem;
    max-width: 52rem;
    text-align: center;
    color: #9A9790;
    font-size: 0.68rem;
    line-height: 1.45;
}

.rv-footer-details p:last-child,
.rv-footer p:last-child {
    margin-bottom: 0;
}

.rv-legal-sbu {
    color: #C9C6BE;
}

/* En visor / Aposento el legal vive en la barra fija de 3rem */
body.visor-active .rv-footer,
body.aposento-active .rv-footer,
body.is-santuario .rv-footer,
body.is-aposento .rv-footer {
    display: none !important;
}

.rv-strong-row {
    display: flex;
    flex-wrap: wrap;
    gap: .28rem .4rem;
    margin-top: .4rem;
}

/* Fase 2 · Interlineal inverso (data grid) */
.rv-il-legend {
    margin: 0 0 0.65rem;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.75);
}

.rv-interlineal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.2rem, 1fr));
    gap: 0;
    border-top: 1px solid rgba(212, 175, 55, 0.28);
    border-left: 1px solid rgba(212, 175, 55, 0.28);
    background: #0a0a0a;
}

.rv-il-cell {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.28rem;
    padding: 0.7rem 0.65rem 0.75rem;
    border: 1px solid rgba(197, 155, 39, 0.4);
    border-radius: 0.5rem;
    background: rgba(254, 243, 199, 0.7);
    color: #0F172A;
    text-align: left;
    cursor: pointer;
    min-height: 6.5rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    transition: background 0.15s ease, border-color 0.15s ease;
}

.rv-il-cell:hover,
.rv-il-cell:focus-visible {
    background: rgb(253, 230, 138);
    border-color: #C59B27;
    outline: none;
}

.rv-il-es {
    font-size: 12px;
    letter-spacing: 0.02em;
    color: #0F172A;
    font-weight: 600;
    line-height: 1.3;
}

.rv-il-orig {
    font-size: 1.15rem;
    line-height: 1.35;
    color: #0A192F;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.rv-il-orig[lang="he"],
.rv-il-orig.is-he {
    direction: rtl;
    font-family: "SBL Hebrew", "Ezra SIL", "Times New Roman", serif;
    font-size: 1.25rem;
}

.rv-il-orig[lang="el"],
.rv-il-orig.is-el {
    font-family: "SBL Greek", "Gentium Plus", "Times New Roman", serif;
}

.rv-il-trans {
    font-size: 10px;
    font-style: italic;
    color: #57534e;
    letter-spacing: 0.03em;
}

.rv-il-morph {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 9px;
    letter-spacing: 0.08em;
    color: #855D10;
    text-transform: uppercase;
}

.rv-il-code {
    font-size: 9px;
    letter-spacing: 0.08em;
    color: #855D10;
    font-weight: 700;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    margin-top: auto;
}

.rv-concordancia-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.rv-verse-study-ref-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.rv-atlas-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-width: 36px;
    min-height: 36px;
    padding: 0 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.45);
    background: #0a0a0a;
    color: #D4AF37;
    cursor: pointer;
    flex-shrink: 0;
}

.rv-atlas-btn:hover,
.rv-atlas-btn:focus-visible {
    background: rgba(212, 175, 55, 0.12);
    border-color: #D4AF37;
    color: #FFFFFF;
    outline: none;
}

.rv-atlas-btn-lg {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0 0.85rem;
}

.rv-atlas-modal {
    position: fixed;
    inset: 0;
    z-index: 999980;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.rv-atlas-modal[hidden] {
    display: none !important;
}

.rv-atlas-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(4px);
}

.rv-atlas-card {
    position: relative;
    z-index: 1;
    width: min(52rem, 100%);
    max-height: min(88vh, 40rem);
    display: flex;
    flex-direction: column;
    background: #0a0a0a;
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-radius: 16px;
    box-shadow: 0 28px 64px rgba(0, 0, 0, 0.65);
    overflow: hidden;
}

.rv-atlas-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem 0.95rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.28);
}

.rv-atlas-kicker {
    margin: 0 0 0.25rem;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-atlas-title {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.45rem;
    color: #FDFCFA;
    font-weight: 600;
}

.rv-atlas-lugar {
    margin: 0.25rem 0 0;
    font-size: 12px;
    color: rgba(245, 240, 230, 0.75);
}

.rv-atlas-close {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: transparent;
    color: #D4AF37;
    cursor: pointer;
}

.rv-atlas-stage {
    position: relative;
    flex: 1 1 auto;
    min-height: 16rem;
    background:
        radial-gradient(ellipse at 30% 20%, rgba(212, 175, 55, 0.08), transparent 55%),
        #111111;
}

.rv-atlas-iframe,
.rv-atlas-img {
    display: block;
    width: 100%;
    height: min(52vh, 26rem);
    border: 0;
    object-fit: cover;
    background: #000;
}

.rv-atlas-iframe[hidden],
.rv-atlas-img[hidden] {
    display: none !important;
}

.rv-atlas-fallback {
    display: grid;
    place-items: center;
    text-align: center;
    gap: 0.45rem;
    min-height: 16rem;
    padding: 2rem 1.5rem;
}

.rv-atlas-fallback[hidden] {
    display: none !important;
}

.rv-atlas-fallback-mark {
    margin: 0;
    font-size: 1.6rem;
    color: #D4AF37;
}

.rv-atlas-fallback p {
    margin: 0;
    max-width: 28rem;
    color: #F5F0E6;
    font-size: 0.95rem;
    line-height: 1.5;
}

.rv-atlas-fallback-hint {
    font-size: 11px !important;
    color: rgba(245, 240, 230, 0.55) !important;
}

.rv-atlas-fallback code {
    color: #D4AF37;
    font-size: 10px;
}

.rv-atlas-foot {
    padding: 0.75rem 1.25rem 1rem;
    border-top: 1px solid rgba(212, 175, 55, 0.22);
}

.rv-atlas-foot p {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: rgba(245, 240, 230, 0.65);
}

#rv-popover button[data-act="oia"],
.rv-pop-oia {
    border-color: rgba(212, 175, 55, 0.65) !important;
    color: #D4AF37 !important;
    letter-spacing: 0.06em;
}

/* Fase 3 · Flujos inductivos O-I-A + etiquetas doctrinales */
.rv-doctrine-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.55rem 0 0.35rem;
    width: 100%;
}

.rv-doctrine-tag {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: transparent;
    color: rgba(212, 175, 55, 0.9);
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-doctrine-tag:hover,
.rv-doctrine-tag.is-on {
    background: rgba(212, 175, 55, 0.12);
    border-color: #D4AF37;
    color: #FDFCFA;
}

.rv-doctrine-chip,
.rv-note-tags .rv-doctrine-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 0.45rem;
    margin: 0 0.25rem 0.25rem 0;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: rgba(212, 175, 55, 0.08);
    color: #E8D5A3;
    font-size: 9px;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.rv-note-tags {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 0.45rem;
}

.rv-oia-quick {
    border-color: rgba(212, 175, 55, 0.55) !important;
    color: #D4AF37 !important;
}

.rv-oia-composer {
    margin: 0 0 1.1rem;
    padding: 1rem 0.95rem 1.05rem;
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 14px;
    background:
        linear-gradient(165deg, rgba(212, 175, 55, 0.08), transparent 50%),
        #111111;
}

.rv-oia-composer[hidden] {
    display: none !important;
}

.rv-oia-kicker {
    margin: 0 0 0.2rem;
    font-size: 9px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-oia-title {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.2rem;
    color: #FDFCFA;
    font-weight: 600;
}

.rv-oia-ref {
    margin: 0.35rem 0 0.55rem;
    font-size: 12px;
    color: rgba(245, 240, 230, 0.8);
}

.rv-oia-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-bottom: 0.75rem;
    min-height: 1.2rem;
}

.rv-oia-tags-hint {
    font-size: 10px;
    color: rgba(245, 240, 230, 0.5);
    letter-spacing: 0.04em;
}

.rv-oia-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.rv-oia-label {
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #D4AF37;
}

.rv-oia-input {
    width: 100%;
    min-height: 5.5rem;
    resize: vertical;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.3);
    background: #0a0a0a;
    color: #F5F0E6;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.55;
    padding: 0.7rem 0.75rem;
}

.rv-oia-input:focus {
    outline: none;
    border-color: #D4AF37;
    box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.25);
}

.rv-oia-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.35rem;
}

.rv-oia-cancel {
    min-height: 36px;
    padding: 0 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: transparent;
    color: #E8D5A3;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-strong,
.rv-token.is-strong {
    cursor: pointer;
}

.rv-strong {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 11px;
    letter-spacing: .02em;
    color: #0F172A;
    background: rgba(254, 243, 199, 0.7);
    border: 1px solid rgba(197, 155, 39, 0.4);
    border-radius: 0.375rem;
    padding: .2rem .5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.rv-strong:hover,
.rv-token.is-strong:hover {
    background: rgb(253, 230, 138);
}

.rv-strong sup,
.rv-strong-num {
    font-size: 9px;
    margin-left: .18rem;
    color: #855D10;
    font-weight: 700;
    letter-spacing: .04em;
    font-family: ui-monospace, Menlo, Consolas, monospace;
}

.rv-strong-panel {
    display: none;
    position: fixed;
    z-index: 95;
    right: 1.25rem;
    bottom: 7.4rem;
    width: min(22rem, calc(100vw - 2rem));
    padding: 1.1rem 1.15rem 1.2rem;
    background: #ffffff;
    color: #0F172A;
    border: 2px solid #C59B27;
    border-radius: 16px;
    box-shadow: 0 20px 40px rgba(7, 16, 30, 0.22);
}

.rv-strong-panel.is-open {
    display: block;
}

.rv-strong-lemma {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.45rem;
    color: #0A192F;
    font-weight: 700;
    margin: 0 0 .35rem;
}

.rv-strong-meta {
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #855D10;
    margin: 0 0 .85rem;
}

.rv-strong-def {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 1.02rem;
    line-height: 1.65;
    color: #0F172A;
    font-weight: 600;
    margin: 0;
}

/* Popup flotante Strong (alto contraste) */
.strong-popover {
    position: fixed;
    z-index: 120;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(7, 16, 30, 0.45);
}
.strong-popover.hidden {
    display: none !important;
}

.rv-stage-grid {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 1.15rem 1.15rem 3.4rem;
}

.rv-shell {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 0%;
    min-height: 0;
    width: 100%;
}

@media (min-width: 1024px) {
    .rv-shell {
        flex-direction: row;
    }

    .rv-sidebar {
        width: 17.5rem;
        flex-shrink: 0;
        max-height: none !important;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .rv-sidebar>* {
        display: revert;
    }
}

.rv-stage {
    flex: 1 1 0%;
    min-width: 0;
    min-height: 0;
    width: 100%;
    background: var(--paper) !important;
    color: var(--ink) !important;
}

@media (max-width: 1023px) {
    .rv-stage-grid {
        padding: 1rem 1rem 3.5rem;
    }

    .rv-footer {
        padding: 1.2rem 1.25rem 4.6rem;
    }

    .rv-sidebar:not(.is-open) {
        max-height: 0;
        overflow: hidden;
        border-bottom-width: 0;
        padding: 0;
    }

    .rv-sidebar:not(.is-open)>* {
        display: none;
    }

    .rv-sidebar.is-open {
        max-height: min(70vh, 32rem);
        overflow: auto;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .rv-stage-grid {
        max-width: 58rem;
        padding: 1.35rem 1.75rem 7rem;
    }

    select.rv-select {
        min-width: 11rem;
        min-height: 44px;
    }

    .rv-sidebar.is-open {
        position: absolute;
        z-index: 55;
        top: 0;
        left: 0;
        width: min(22rem, 88vw);
        max-height: min(78vh, 38rem);
        background: var(--chrome-dark);
        border-right: 1px solid rgba(197, 160, 89, 0.22);
        box-shadow: var(--shadow-deep);
    }

    .rv-audio-dock {
        width: min(26rem, calc(100vw - 8rem));
        min-height: 2.85rem;
    }

    .rv-exp-btn,
    .rv-canon-toggle,
    .rv-btn-gold {
        min-height: 44px;
    }
}

@media (min-width: 1024px) {
    .rv-stage-grid {
        max-width: 64rem;
        padding: 1.5rem 2rem 6.5rem;
    }
}

.rv-lockup {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
}

.rv-lockup-hero,
.rv-lockup-btn .rv-brand-lockup {
    height: 4.6rem;
    width: auto;
    max-width: 12.5rem;
    object-fit: contain;
    filter: drop-shadow(0 0 10px rgba(197, 160, 89, 0.28));
}

/* Compacto en chrome: h-9 gana sobre el lockup hero */
.rv-chrome .rv-lockup-btn .rv-brand-lockup--compact,
.rv-chrome .rv-brand-lockup--compact.rv-lockup-hero {
    height: 2.25rem;
    max-width: none;
    max-height: 2.25rem;
    filter: none;
}

.rv-cerebro {
    height: 2.15rem;
    width: 2.15rem;
    object-fit: contain;
    filter: drop-shadow(0 0 8px rgba(197, 160, 89, 0.35));
}

.rv-palabra {
    height: .82rem;
    width: auto;
    max-width: 7.2rem;
    object-fit: contain;
    margin-top: .22rem;
}

.rv-isotipo {
    height: 2.6rem;
    width: 2.6rem;
    object-fit: contain;
    filter: drop-shadow(0 0 8px rgba(197, 160, 89, 0.35));
}

.rv-lectura {
    position: relative;
    width: 100%;
    max-width: none;
    background: #0a0a0a;
    color: #FFFFFF;
    border-radius: 16px;
    box-shadow: var(--shadow-card);
    border: 1px solid rgba(212, 175, 55, 0.35);
}

#texto-biblico {
    color: rgba(255, 255, 255, 0.92) !important;
    width: 100%;
    max-width: none;
}

.rv-estudio-modulo {
    margin: 1.85rem 0 0;
    width: 100%;
}

.rv-estudio-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: 0 0 .85rem;
}

.rv-estudio-tabs button {
    min-height: 44px;
    padding: .55rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.5) !important;
    background: transparent !important;
    color: #FFFFFF !important;
    font-family: Cinzel, serif;
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-estudio-tabs button.is-on,
.rv-estudio-tabs button[aria-selected="true"] {
    color: #000000 !important;
    background: #D4AF37 !important;
    border-color: #D4AF37 !important;
    font-weight: 600;
}

/* —— Lentes de estudio · dos pilares Dark Luxury —— */
.rv-persp-pillars {
    display: grid;
    gap: 1rem;
    margin: 0 0 1.1rem;
}

@media (min-width: 900px) {
    .rv-persp-pillars {
        grid-template-columns: 1fr 1fr;
        gap: 1.1rem;
        align-items: stretch;
    }
}

.rv-persp-pillar {
    padding: 1rem 0.95rem 1.05rem;
    border-radius: 16px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background:
        linear-gradient(165deg, rgba(212, 175, 55, 0.08), transparent 42%),
        #000000;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.rv-persp-pillar-kicker {
    margin: 0 0 0.25rem;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.95);
}

.rv-persp-pillar-title {
    margin: 0 0 0.3rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    font-weight: 600;
    line-height: 1.2;
    color: #FDFCFA;
}

.rv-persp-pillar-lead {
    margin: 0 0 0.85rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 0.95rem;
    font-style: italic;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.92);
}

.rv-persp-rail {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0;
    margin: 0;
}

.rv-persp-chip {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    width: 100%;
    text-align: left;
    min-height: 48px;
    padding: 0.7rem 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(212, 175, 55, 0.5);
    background: #0a0a0a;
    color: #FFFFFF;
    font-family: Cinzel, serif;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .18s ease, box-shadow .2s ease;
}

.rv-persp-chip:hover,
.rv-persp-chip:focus-visible {
    color: #FDFCFA;
    border-color: rgba(212, 175, 55, 0.65);
    transform: translateY(-1px);
    outline: none;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}

.rv-persp-chip.is-on {
    color: #0a0a0c;
    background: linear-gradient(180deg, #E8D5A3, #C5A059 58%, #9a7a3d);
    border-color: rgba(212, 175, 55, 0.85);
}

.rv-persp-chip .rv-persp-mark {
    font-size: 1rem;
    line-height: 1.2;
    flex-shrink: 0;
}

.rv-persp-chip-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.rv-persp-chip-copy strong {
    font-weight: 600;
    letter-spacing: 0.1em;
}

.rv-persp-chip-copy small {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 11px;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.4;
    opacity: 0.88;
    color: inherit;
}

.rv-persp-chip.is-on .rv-persp-chip-copy small {
    color: rgba(10, 10, 12, 0.78);
}

.rv-persp-tip {
    display: none;
    margin: 0 0 1rem;
    padding: 0.95rem 1.05rem;
    border-radius: 14px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background:
        radial-gradient(ellipse at top left, rgba(212, 175, 55, 0.12), transparent 55%),
        #050505;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
}

.rv-persp-tip.is-on {
    display: block;
    animation: rv-persp-in .28s ease;
}

.rv-persp-tip-kicker {
    margin: 0 0 0.3rem;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.95);
}

.rv-persp-tip-title {
    margin: 0 0 0.45rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.25rem;
    color: #FDFCFA;
    font-weight: 600;
}

.rv-persp-tip-body {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.02rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.92);
}

.rv-persp-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.65rem 0.85rem;
    margin: 0 0 1.1rem;
}

.rv-persp-toggle {
    min-height: 40px;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: transparent;
    color: #E8D5A3;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
}

.rv-persp-toggle.is-on {
    background: rgba(212, 175, 55, 0.16);
    border-color: rgba(212, 175, 55, 0.7);
    color: #FDFCFA;
}

.rv-persp-synth {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    width: min(100%, 28rem);
    min-height: 52px;
    padding: 0.7rem 1.15rem 0.7rem 0.75rem;
    border-radius: 14px;
    border: 1px solid rgba(212, 175, 55, 0.65);
    background:
        linear-gradient(135deg, rgba(212, 175, 55, 0.28), rgba(14, 16, 22, 0.95) 52%);
    color: #FDFCFA;
    font-family: Cinzel, serif;
    font-size: clamp(10px, 2.2vw, 11px);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45), 0 0 24px rgba(212, 175, 55, 0.12);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.rv-persp-synth:hover {
    transform: translateY(-2px);
    border-color: #E8D5A3;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.55), 0 0 32px rgba(212, 175, 55, 0.18);
}

.rv-persp-synth .rv-ia-isotipo {
    width: 1.25rem;
    height: 1.25rem;
}

.rv-persp-synth .rv-ia-name {
    color: #E8D5A3;
    font-weight: 600;
}

.rv-persp-grid {
    display: grid;
    gap: 1rem;
}

.rv-persp-grid.is-compare {
    grid-template-columns: 1fr;
}

@media (min-width: 820px) {
    .rv-persp-grid.is-compare {
        grid-template-columns: 1fr 1fr;
    }
}

.rv-persp-card {
    padding: 1.15rem 1.1rem 1.2rem;
    border-radius: 16px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: #000000;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
    animation: rv-persp-in .32s ease;
}

@keyframes rv-persp-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {

    .rv-persp-card,
    .rv-persp-tip.is-on,
    .rv-persp-chip,
    .rv-persp-synth {
        animation: none;
        transition: none;
    }
}

.rv-persp-card-kicker {
    margin: 0 0 0.35rem;
    font-family: Cinzel, serif;
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.95);
}

.rv-persp-card-title {
    margin: 0 0 0.7rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.25rem, 2.2vw, 1.55rem);
    font-weight: 600;
    color: #FDFCFA;
    line-height: 1.2;
}

.rv-persp-card-body {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 0.98rem;
    line-height: 1.65;
    color: #FFFFFF;
}

.rv-persp-card-body p {
    margin: 0 0 0.75rem;
}

.rv-persp-card-body p:last-child {
    margin-bottom: 0;
}

.rv-persp-meta {
    margin: 0.9rem 0 0;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.75);
}

.rv-persp-compare-pick {
    display: none;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin: 0 0 0.85rem;
}

.rv-persp-compare-pick.is-on {
    display: flex;
}

.rv-persp-compare-pick label {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #E8D5A3;
}

.rv-persp-compare-pick select {
    min-height: 40px;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: #0a0a0c;
    color: #FDFCFA;
    padding: 0.35rem 0.65rem;
}

.rv-persp-synth-report {
    display: none;
    margin-top: 1rem;
    padding: 1.15rem 1.1rem 1.25rem;
    border-radius: 16px;
    border: 1px solid rgba(212, 175, 55, 0.45);
    background: #000000;
}

.rv-persp-synth-report.is-on {
    display: block;
    animation: rv-persp-in .4s ease;
}

.rv-persp-synth-report h4 {
    margin: 0 0 0.4rem;
    font-family: Cinzel, serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.95);
}

.rv-persp-synth-report .rv-persp-block {
    margin: 0 0 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}

.rv-persp-synth-report .rv-persp-block:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.rv-persp-synth-report .rv-persp-block p {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #FFFFFF;
}

.rv-persp-synth-head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.rv-persp-synth-head .rv-ia-isotipo {
    width: 1.5rem;
    height: 1.5rem;
}

.rv-persp-synth-head strong {
    display: block;
    font-family: Cinzel, serif;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #FDFCFA;
}

.rv-persp-synth-head span {
    font-size: 12px;
    color: #C9C6BE;
}

.rv-persp-loading {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    color: rgba(255, 255, 255, 0.92);
}

.rv-estudio-cols {
    display: grid;
    gap: 1.4rem;
}

@media (min-width: 768px) {
    .rv-estudio-cols {
        grid-template-columns: 1.15fr .85fr;
        gap: 1.8rem;
    }
}

.rv-estudio-vacio {
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(228, 210, 168, 0.7);
}

.rv-xref-list {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.rv-xref-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    width: 100%;
    min-height: 44px;
    text-align: left;
    padding: .7rem .85rem;
    border-radius: 12px;
    border: 1px solid rgba(197, 160, 89, 0.22);
    background: rgba(9, 10, 15, 0.35);
}

.rv-xref-item:hover {
    border-color: var(--gold);
    background: rgba(197, 160, 89, 0.1);
}

.rv-xref-ref {
    font-family: Cinzel, serif;
    font-size: 12px;
    letter-spacing: .06em;
    color: var(--gold);
}

.rv-xref-nota {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.55;
    color: #F0E6D0;
}

.rv-comentario-kicker {
    margin: 0 0 .55rem;
    font-family: Cinzel, serif;
    font-size: 10px;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: #D4AF37 !important;
}

#etiqueta-autor {
    margin: 0;
    font-family: Cinzel, serif;
    font-weight: 600;
    font-size: 1.05rem;
    letter-spacing: .08em;
    color: #D4AF37 !important;
}

.rv-comentario-ref {
    margin: .35rem 0 1.35rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 1.05rem;
    color: rgba(255, 255, 255, 0.92) !important;
}

#analisis-neuro {
    color: #FFFFFF !important;
    max-width: none;
}

#analisis-neuro .rv-obra-autor {
    margin: 0 0 1.25rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 1.05rem;
    letter-spacing: 0.04em;
    color: #D4AF37 !important;
}

#analisis-neuro .rv-exegesis {
    margin: 0 0 1.55rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.28rem;
    line-height: 2.05;
    color: #FFFFFF !important;
    white-space: pre-line;
    overflow: visible;
    text-wrap: pretty;
}

@media (min-width: 768px) {
    #analisis-neuro .rv-exegesis {
        font-size: 1.34rem;
        line-height: 2.12;
        max-width: none;
    }
}

#analisis-neuro .rv-exegesis:last-child {
    margin-bottom: 0;
}

.efata-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(9, 10, 15, 0.72);
    padding: 1rem;
    overflow: auto;
}

.efata-modal-panel {
    margin: 0 auto;
    max-width: 58rem;
    background: var(--panel);
    border: 1px solid rgba(197, 160, 89, 0.22);
    border-radius: 16px;
    box-shadow: var(--shadow-deep);
}

.efata-preview-wrap {
    background: #0A0C11;
    display: flex;
    justify-content: center;
    padding: 1rem;
    border-radius: 14px;
}

#canvas-efata-card {
    width: min(100%, 22rem);
    height: auto;
    border-radius: 12px;
    box-shadow: var(--shadow-card);
}

.efata-swatch {
    width: 4.4rem;
    height: 3.2rem;
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(197, 160, 89, 0.28);
    border-radius: 12px;
    box-shadow: var(--shadow-card);
}

.efata-swatch.is-on,
.efata-tipo.is-on {
    border-color: var(--gold);
    box-shadow: 0 0 0 1px var(--gold);
}

.efata-tipo {
    border: 1px solid rgba(197, 160, 89, 0.28);
    color: var(--chrome-ink);
    padding: .45rem .7rem;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    border-radius: 12px;
    box-shadow: var(--shadow-card);
}

.sw-marmol {
    background-image: url("brand/textures/marmol.png");
}

.sw-papiro {
    background-image: url("brand/textures/papiro.png");
}

.sw-jerusalem {
    background-image: url("brand/textures/jerusalem.png");
}

.sw-midnight {
    background: linear-gradient(135deg, #0A192F 0%, #07101E 100%);
}

.sw-pergamino {
    background: linear-gradient(135deg, #FBF6EB 0%, #EFE3CA 100%);
}

.sw-obsidian {
    background: linear-gradient(135deg, #0C0D11 0%, #020304 100%);
}

.rv-splash {
    position: fixed;
    inset: 0;
    z-index: 240;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(180deg, #EEF2F4 0%, #F8FAFB 100%);
    opacity: 1;
    cursor: pointer;
    transition: opacity 1.5s ease;
    -webkit-tap-highlight-color: transparent;
}

.rv-splash.is-out {
    opacity: 0;
    pointer-events: none;
    cursor: default;
}

.rv-splash.is-gone {
    display: none;
    pointer-events: none;
}

.rv-splash.is-playing .rv-splash-logo {
    animation: rv-splash-logo-hold 3.2s cubic-bezier(.22, 1, .36, 1) forwards;
}

.rv-splash-stage {
    position: relative;
    display: grid;
    place-items: center;
    width: min(98vw, 56rem);
    height: min(92vh, 56rem);
    pointer-events: none;
}

.rv-splash-stage::after {
    content: "";
    position: absolute;
    inset: -12%;
    pointer-events: none;
    background: radial-gradient(ellipse at center, transparent 52%, rgba(238, 242, 244, 0.55) 82%);
}

.rv-splash-logo {
    width: min(22rem, 86vw);
    height: auto;
    max-height: 70vh;
    object-fit: contain;
    opacity: 0;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    mix-blend-mode: multiply;
    filter: contrast(1.1) brightness(0.95);
    -webkit-mask-image: none;
    mask-image: none;
    animation: rv-splash-logo 1.8s cubic-bezier(.22, 1, .36, 1) forwards;
}

.rv-splash-hint {
    position: absolute;
    left: 50%;
    bottom: max(6vh, 1.6rem);
    z-index: 2;
    transform: translateX(-50%);
    margin: 0;
    font-family: Cinzel, serif;
    font-size: 10px;
    letter-spacing: 0.38em;
    text-transform: uppercase;
    color: rgba(92, 69, 8, 0.72);
    opacity: 0;
    animation: rv-splash-hint 1.2s ease 1.6s forwards;
    pointer-events: none;
    user-select: none;
}

.rv-splash.is-playing .rv-splash-hint {
    opacity: 0;
    animation: none;
}

@keyframes rv-splash-logo {
    from {
        opacity: 0;
        transform: scale(0.94);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes rv-splash-logo-hold {
    from {
        opacity: 1;
        transform: scale(1);
    }

    to {
        opacity: 1;
        transform: scale(1.015);
    }
}

@keyframes rv-splash-hint {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {

    .rv-splash-logo,
    .rv-splash.is-playing .rv-splash-logo {
        animation: none;
        opacity: 1;
        transform: none;
    }

    .rv-splash-hint {
        animation: none;
        opacity: 0.55;
    }

    .rv-splash {
        transition: opacity 0.35s ease;
    }
}

/* =========================================================
 --- Niebla marina · capa final (papel / pizarra / oro) --- */
/* Superficies de página en niebla; chrome en pizarra media
   ========================================================= */

body.is-santuario,
body.is-santuario .rv-stage,
body.is-santuario .rv-estudio-modulo,
body.is-santuario #panel-neuro,
body.is-santuario #panel-perspectivas,
body.is-santuario #panel-concordancia {
    background-color: var(--paper) !important;
    color: var(--ink) !important;
}

/* Papel digital de lectura: tono cálido distinto del UI */
body.is-santuario .rv-lectura,
body.is-santuario #texto-biblico {
    background: var(--paper) !important;
    color: var(--ink) !important;
    border-color: var(--gold-line) !important;
}

body.is-santuario .rv-lectura {
    border-color: var(--gold-line) !important;
}

/* Texto de lectura: charcoal sobre pergamino */
body.is-santuario #texto-biblico,
body.is-santuario #texto-biblico p,
body.is-santuario #texto-biblico .rv-verse-text,
body.is-santuario #texto-biblico .rv-verse-surface,
body.is-santuario #analisis-neuro,
body.is-santuario #analisis-neuro p,
body.is-santuario #analisis-neuro .rv-exegesis,
body.is-santuario .rv-comentario-cuerpo,
body.is-santuario .rv-persp-card-body,
body.is-santuario .rv-persp-card-body p,
body.is-santuario .rv-persp-tip-body,
body.is-santuario .rv-persp-pillar-lead,
body.is-santuario .rv-persp-synth-report p,
body.is-santuario .rv-xref-nota,
body.is-santuario .rv-estudio-vacio,
body.is-santuario .rv-ficha-grid dd,
body.is-santuario .rv-lectura-note,
body.is-santuario .rv-contexto-resumen,
body.is-santuario .rv-contexto-value {
    color: #0F172A !important;
    opacity: 1 !important;
    line-height: 1.8 !important;
}

body.is-santuario #texto-biblico {
    font-family: "Source Serif 4", Georgia, serif !important;
    font-size: 1.15rem;
    line-height: 1.8 !important;
}

body.is-santuario .rv-contexto-resumen {
    color: #1C1917 !important;
    font-size: 0.9375rem !important;
}
@media (min-width: 640px) {
    body.is-santuario .rv-contexto-resumen {
        font-size: 1.0625rem !important;
    }
}
body.is-santuario .rv-contexto-value {
    color: #0A192F !important;
}
body.is-santuario .rv-contexto-label {
    color: #855D10 !important;
}

body.is-santuario .rv-lectura-meta,
body.is-santuario .rv-comentario-ref,
body.is-santuario .rv-ficha-grid dt,
body.is-santuario .rv-il-legend,
body.is-santuario .rv-il-trans,
body.is-santuario .rv-lectura-muted {
    color: #334155 !important;
}

/* Encabezados serif premium + oro (kickers / nums) */
body.is-santuario .rv-comentario-kicker,
body.is-santuario #etiqueta-autor,
body.is-santuario .rv-obra-autor,
body.is-santuario .rv-persp-pillar-kicker,
body.is-santuario .rv-persp-card-kicker,
body.is-santuario .rv-persp-tip-kicker,
body.is-santuario .rv-ficha-kicker,
body.is-santuario .rv-estudio-h,
body.is-santuario .rv-xref-ref,
body.is-santuario .rv-verse-num {
    font-family: Cinzel, "Cormorant Garamond", Georgia, serif !important;
    color: #5C4508 !important;
    opacity: 1 !important;
}

body.is-santuario .rv-lectura-title {
    font-family: Cinzel, "Playfair Display", Georgia, serif !important;
    color: #0A192F !important;
    opacity: 1 !important;
}

body.is-santuario .rv-persp-pillar-title,
body.is-santuario .rv-persp-card-title,
body.is-santuario .rv-persp-tip-title,
body.is-santuario .rv-ficha-title {
    font-family: Cinzel, "Cormorant Garamond", Georgia, serif !important;
    color: #0A192F !important;
    opacity: 1 !important;
}

body.is-santuario .rv-estudio-tabs button {
    background: #121212 !important;
    border: 1px solid rgba(212, 175, 55, 0.4) !important;
    color: #E0E6ED !important;
}

body.is-santuario .rv-estudio-tabs button.is-on,
body.is-santuario .rv-estudio-tabs button[aria-selected="true"] {
    background: #D4AF37 !important;
    border-color: #D4AF37 !important;
    color: #0B0C10 !important;
}

body.is-santuario .rv-persp-chip {
    background: #121212 !important;
    border: 1px solid rgba(212, 175, 55, 0.4) !important;
    color: #E0E6ED !important;
}

body.is-santuario .rv-persp-chip small {
    color: #9CA3AF !important;
}

body.is-santuario .rv-persp-chip.is-on,
body.is-santuario .rv-persp-chip[aria-selected="true"] {
    background: #D4AF37 !important;
    border-color: #D4AF37 !important;
    color: #0B0C10 !important;
}

body.is-santuario .rv-persp-chip.is-on small,
body.is-santuario .rv-persp-chip[aria-selected="true"] small {
    color: rgba(11, 12, 16, 0.85) !important;
}

body.is-santuario .text-\[\#6B6B6B\],
body.is-santuario .text-\[\#8D7040\],
body.is-santuario .text-\[\#3D3D3D\],
body.is-santuario .text-\[\#C9C6BE\],
body.is-santuario .text-\[\#8f8c84\],
body.is-santuario .text-\[\#9A9790\],
body.is-santuario .text-\[\#F4F5F7\],
body.is-santuario .text-\[\#FDFCFA\],
body.is-santuario .text-\[\#1C1C1C\] {
    color: #A8B0BA !important;
}

body.is-santuario .text-\[\#C5A059\],
body.is-santuario .text-\[\#D4AF37\],
body.is-santuario .text-\[\#E8D5A3\],
body.is-santuario .text-\[\#9E7B35\] {
    color: #D4AF37 !important;
}

body.is-santuario .rv-sidebar {
    background-color: var(--chrome-dark) !important;
    color: #E7E5E4 !important;
    border-right: 1px solid rgba(201, 168, 76, 0.3) !important;
    border-color: rgba(201, 168, 76, 0.3) !important;
}

body.is-santuario .rv-chrome {
    background: var(--chrome-dark) !important;
    color: #F8FAFC !important;
    border-color: rgba(201, 168, 76, 0.3) !important;
}

body.is-santuario .rv-select,
body.is-santuario select.rv-select {
    background: #2C3E4A !important;
    color: #F8FAFC !important;
    border-color: rgba(201, 168, 76, 0.4) !important;
}

body.is-santuario .rv-verse-surface,
body.is-santuario .rv-verse-text {
    color: #0F172A !important;
    line-height: 1.8 !important;
}

body.is-santuario .rv-verse-num {
    color: #5C4508 !important;
}

body.is-santuario #contexto-historico-header,
body.is-santuario .rv-contexto-historico {
    background: #F4EFE6 !important;
    border: 1px solid #E2D7C3 !important;
}

body.is-santuario .rv-il-es { color: #0F172A !important; }
body.is-santuario .rv-il-orig { color: #0A192F !important; }
body.is-santuario .rv-il-trans { color: #57534e !important; }
body.is-santuario .rv-il-morph,
body.is-santuario .rv-il-code { color: #855D10 !important; }
body.is-santuario .rv-il-cell {
  background: rgba(254, 243, 199, 0.75) !important;
  border: 1px solid rgba(197, 155, 39, 0.45) !important;
  color: #0F172A !important;
}
body.is-santuario .rv-interlineal-grid {
    background: var(--paper) !important;
    border-color: rgba(201, 168, 76, 0.35) !important;
}

/* Superficies globales */
#rv-app,
.rv-home {
    background: var(--paper);
    color: var(--ink);
}

.rv-btn-gold,
button.rv-btn-gold {
    background: var(--gold-bright) !important;
    border-color: var(--gold-bright) !important;
    color: var(--chrome-dark) !important;
}

.rv-toolbar,
.rv-estudio-modulo,
.rv-comentario,
.rv-concordancia,
.rv-ficha-academica,
.rv-verse-study,
.rv-oia-composer {
    background: #121212;
    color: #E0E6ED;
    border-color: rgba(212, 175, 55, 0.35);
}

.rv-oia-input,
.rv-select,
select.rv-select,
#buscador-canon {
    background: #2C3E4A;
    color: #F8FAFC;
    border-color: rgba(201, 168, 76, 0.35);
}

.rv-chrome,
.rv-sidebar,
.rv-estudio-tabs,
.rv-cuaderno-head,
.rv-contexto-historico {
    border-color: rgba(212, 175, 55, 0.35) !important;
}

.rv-cuaderno-panel {
    background: #121212 !important;
    color: #E0E6ED !important;
    border-color: rgba(212, 175, 55, 0.4) !important;
}

.rv-note-card {
    background: #161618 !important;
    color: #E0E6ED !important;
    border-color: rgba(212, 175, 55, 0.3) !important;
}

.rv-note-body,
.rv-note-ref,
.rv-note-title {
    color: #F5F0E6 !important;
    line-height: 1.65 !important;
}

.rv-note-ref {
    color: #F0D56A !important;
}

.rv-note-when,
.rv-sync,
.rv-cuaderno-kicker {
    color: #E8C547 !important;
}

.rv-cuaderno-title {
    color: #FFFFFF !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
}

/* Logo / lockup: fundido sin caja negra */
.rv-lockup-btn {
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.rv-lockup-hero,
.rv-dual-brand img,
.rv-dual-brand .rv-brand-lockup,
.rv-splash-logo {
    padding: 0;
    box-sizing: content-box;
    background: transparent;
    border: none;
    box-shadow: none;
    mix-blend-mode: multiply;
    filter: drop-shadow(0 2px 8px rgba(201, 168, 76, 0.28));
    image-rendering: auto;
}

img.rv-lockup-hero[src*="lockup-clear"],
img.rv-splash-logo[src*="lockup-clear"] {
    mix-blend-mode: normal;
}

.rv-lockup-hero,
.rv-lockup-btn .rv-brand-lockup {
    height: 4.85rem;
    width: auto;
    max-width: min(14rem, 52vw);
    object-fit: contain;
}

.rv-chrome .rv-lockup-btn .rv-brand-lockup--compact,
.rv-chrome .rv-brand-lockup--compact.rv-lockup-hero {
    height: 2.25rem;
    max-width: none;
    max-height: 2.25rem;
}

/* Tipografía de lectura global */
#texto-biblico,
.rv-verse-text,
.rv-comentario-cuerpo,
.rv-exegesis {
    line-height: 1.8;
}

.rv-lectura-title,
.rv-dual-title,
.rv-door-title,
.rv-ficha-title,
.rv-cuaderno-title,
.rv-atlas-title,
.rv-oia-title {
    font-family: "Cormorant Garamond", Cinzel, Georgia, serif;
}

/* Chrome flotante premium (ya oscuro) */
#rv-popover,
#btn-asistente-ia,
.rv-fab-omni,
#panel-asistente-ia,
.rv-ia-panel,
#rv-audio-dock.rv-audio-dock {
    background: #0B0C10 !important;
    border-color: rgba(212, 175, 55, 0.45) !important;
    color: #E0E6ED !important;
}

#rv-audio-dock button.rv-dock-play {
    border-color: #D4AF37 !important;
    color: #D4AF37 !important;
    background: #0B0C10 !important;
}

#rv-audio-dock button.rv-dock-play.is-on {
    background: #D4AF37 !important;
    color: #0B0C10 !important;
}

#rv-splash {
    background: var(--paper, #EEF2F4) !important;
    color: var(--ink, #2C3E4A) !important;
}

/* —— Lectura avanzada: bible-nav, verse-actions, study-panel, aposento —— */
.rv-hl-rubi,
mark.rv-hl-rubi {
    background: rgba(176, 48, 64, 0.32);
    color: var(--graphite);
    box-shadow: inset 0 -2px 0 #B03040;
    border-radius: 4px;
}
.sw-rubi { background: radial-gradient(circle at 30% 30%, #e07080, #8b1e2d); }

.rv-bible-nav {
    position: fixed;
    inset: 0;
    z-index: 100050;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: rgba(0, 0, 0, 0.62);
    padding: 1rem;
}
.rv-bible-nav[hidden] { display: none !important; }
.rv-bible-nav-panel {
    width: min(720px, 100%);
    max-height: min(86vh, 820px);
    display: flex;
    flex-direction: column;
    background: #121212;
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 16px 16px 10px 10px;
    overflow: hidden;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
}
.rv-bible-nav-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 1rem 1.1rem 0.5rem;
}
.rv-bible-nav-kicker {
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #C5A059;
}
.rv-bible-nav-head h2 {
    font-family: Cinzel, serif;
    color: #F5F0E6;
    font-size: 1.15rem;
    margin: 0.2rem 0 0;
}
.rv-bible-nav-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem 1rem 0.75rem;
    align-items: center;
}
.rv-bible-nav-toolbar input[type="search"],
.rv-bible-nav-ver select {
    background: #0B0C10;
    border: 1px solid rgba(212, 175, 55, 0.28);
    color: #E0E6ED;
    border-radius: 8px;
    padding: 0.45rem 0.65rem;
    font-size: 0.9rem;
}
.rv-bible-nav-toolbar input[type="search"] { flex: 1; min-width: 140px; }
.rv-bible-nav-ver {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #C5A059;
}
.rv-bible-nav-body { padding: 0.5rem 1rem 1.2rem; overflow: auto; }
.rv-bnav-section h3 {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #C5A059;
    margin: 0.75rem 0 0.45rem;
}
.rv-bnav-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
    gap: 0.4rem;
}
.rv-bnav-nums { grid-template-columns: repeat(auto-fill, minmax(2.6rem, 1fr)); }
.rv-bnav-item, .rv-bnav-full, .rv-bible-nav-back, .rv-bible-nav-close {
    border: 1px solid rgba(212, 175, 55, 0.28);
    background: rgba(18, 18, 18, 0.9);
    color: #E0E6ED;
    border-radius: 8px;
    padding: 0.55rem 0.4rem;
    cursor: pointer;
    font-size: 0.82rem;
}
.rv-bnav-item:hover, .rv-bnav-full:hover { border-color: #D4AF37; background: rgba(212, 175, 55, 0.12); }
.rv-bnav-full { width: 100%; margin-top: 0.85rem; padding: 0.7rem; }

.rv-verse-actions {
    position: fixed;
    z-index: 100040;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.4rem;
    align-items: center;
    padding: 0.4rem 0.55rem;
    background: rgba(12, 10, 9, 0.96);
    border: 1px solid rgba(120, 53, 15, 0.45);
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
    max-width: min(96vw, 640px);
}
.rv-verse-actions[hidden] { display: none !important; }
.rv-va-swatches { display: flex; gap: 0.2rem; }
.rv-va-swatch {
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    cursor: pointer;
    background: transparent;
    font-size: 0.85rem;
    line-height: 1;
    padding: 0;
}
.rv-va-swatch--emoji { display: grid; place-items: center; }
.rv-va-sep {
    width: 1px;
    height: 1.35rem;
    background: rgba(212, 175, 55, 0.35);
    flex-shrink: 0;
}
.rv-va-acts { display: flex; flex-wrap: nowrap; gap: 0.25rem; }
.rv-va-acts button {
    border: 1px solid rgba(212, 175, 55, 0.28);
    background: transparent;
    color: #E7E5E4;
    border-radius: 999px;
    padding: 0.28rem 0.55rem;
    font-size: 0.68rem;
    letter-spacing: 0.02em;
    cursor: pointer;
    white-space: nowrap;
}
.rv-va-acts button:hover { border-color: #D4AF37; color: #D4AF37; }
.is-va-active { outline: 1px solid rgba(212, 175, 55, 0.55); }

/* —— Lectura minimalista —— */
#modulo-estudio[hidden],
#rv-verse-study[hidden],
#rv-popover[hidden] {
    display: none !important;
}
.bible-reader,
#bible-reader {
    display: flex;
    justify-content: center;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 2rem 1rem 5.5rem;
}
.bible-reader-inner {
    width: 100%;
    max-width: 48rem;
    margin: 0 auto;
}
#bible-reader #texto-biblico,
#texto-biblico.visor-biblico-contenido {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    font-family: "Source Serif 4", "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.1rem, 2.2vw, 1.28rem);
    line-height: 1.85;
    color: #0F172A;
}
#texto-biblico .rv-verse-surface {
    display: block;
    width: 100%;
    max-width: none;
    padding: 0.55rem 0.65rem;
    margin: 0 0 0.85rem;
    border-radius: 10px;
    transition: background 0.2s ease;
}
#texto-biblico .rv-verse-text {
    display: inline;
    line-height: 1.85;
}
#texto-biblico .rv-verse-num {
    font-size: 0.72rem;
    color: #D4AF37;
    font-weight: 600;
    margin-right: 0.4rem;
    vertical-align: super;
    font-family: ui-sans-serif, system-ui, sans-serif;
}
#texto-biblico .rv-lectura-title {
    display: block;
    width: 100%;
    font-size: clamp(1.75rem, 4vw, 2.35rem);
    color: #0A192F;
    margin: 0 0 1.5rem;
    font-family: Cinzel, "Playfair Display", Georgia, serif;
    font-weight: 700;
    border-bottom: 1px solid #E8DFC8;
    padding-bottom: 0.55rem;
}
body.visor-active .rv-stage,
body.is-santuario .rv-stage {
    max-width: none;
    width: 100%;
    margin: 0;
}
body.visor-active .rv-stage-grid,
body.is-santuario .rv-stage-grid {
    max-width: none;
    width: 100%;
}
body.visor-active #btn-asistente-ia.rv-fab,
body.is-santuario #btn-asistente-ia.rv-fab,
body.aposento-active #btn-asistente-ia.rv-fab {
    display: none !important;
}

/* Cajón estudio */
#study-drawer.rv-study-panel,
.study-drawer.rv-study-panel {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: min(26rem, 94vw);
    z-index: 100040;
    background: #0c0a09;
    border-left: 1px solid rgba(120, 53, 15, 0.35);
    transform: translateX(100%);
    transition: transform 0.28s ease;
    display: flex;
    flex-direction: column;
    box-shadow: -12px 0 40px rgba(0, 0, 0, 0.45);
}
#study-drawer.rv-study-panel.is-open,
.study-drawer.rv-study-panel.is-open {
    transform: translateX(0);
}
#study-drawer[hidden]:not(.is-open) { display: none !important; }
#study-drawer.is-open {
    display: flex !important;
    transform: translateX(0);
}

.rv-sp-dogma-list {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}
.rv-sp-dogma-card {
    width: 100%;
    text-align: left;
    border: 1px solid rgba(212, 175, 55, 0.22);
    background: rgba(18, 18, 18, 0.55);
    color: #E7E5E4;
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.rv-sp-dogma-card.is-active {
    border-color: #f59e0b;
    background: rgba(245, 158, 11, 0.15);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
.rv-sp-dogma-card strong { display: block; color: #5C4508; font-size: 0.78rem; }
.rv-sp-dogma-card small { display: block; margin-top: 0.2rem; color: #334155; font-size: 0.72rem; }
.rv-sp-dogma-detail {
    margin-top: 0.45rem;
    padding: 0.75rem 0.8rem;
    border-radius: 10px;
    border: 1px solid rgba(212, 175, 55, 0.18);
    background: rgba(8, 8, 10, 0.85);
}
.rv-sp-dogma-label {
    margin: 0 0 0.25rem;
    font-size: 0.65rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #D4AF37;
}
.rv-sp-dogma-copy {
    margin: 0 0 0.75rem;
    font-size: 0.84rem;
    line-height: 1.55;
    color: #E7E5E4;
}
.rv-sp-dogma-ia {
    width: 100%;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: rgba(212, 175, 55, 0.1);
    color: #F5F0E6;
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
    font-size: 0.72rem;
    cursor: pointer;
}
.rv-sp-author-bar { margin-bottom: 0.85rem; }
.rv-sp-author-label {
    display: block;
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #C5A059;
    margin-bottom: 0.35rem;
}
.rv-sp-autor {
    width: 100%;
    border: 1px solid rgba(212, 175, 55, 0.28);
    background: #121212;
    color: #F5F0E6;
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
    font-size: 0.78rem;
}
.rv-sp-comment-prose {
    font-family: "Source Serif 4", "Cormorant Garamond", Georgia, serif;
    font-size: 0.95rem;
    line-height: 1.75;
    color: #E7E5E4;
}
.rv-sp-comment-prose p { margin: 0 0 0.95rem; }
.rv-sp-comment-prose h3,
.rv-sp-comment-prose h4 {
    font-family: Cinzel, "Source Serif 4", serif;
    color: #D4AF37;
    font-size: 0.95rem;
    margin: 1.1rem 0 0.45rem;
}
.rv-sp-bible-cite {
    color: #FDE68A;
    font-style: italic;
    font-weight: 500;
}
.rv-sp-tsk-groups { display: grid; gap: 0.85rem; margin-top: 0.65rem; }
.rv-sp-tsk-head {
    margin-bottom: 0.75rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid #E8DFC8;
}
.rv-sp-tsk-head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.rv-sp-tsk-head-title {
    margin: 0;
    font-family: Cinzel, "Playfair Display", Georgia, serif;
    font-size: 0.78rem;
    font-weight: 700;
    color: #0A192F;
}
.rv-sp-tsk-badge {
    flex: 0 0 auto;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 700;
    color: #5C4508;
    background: #FEF3C7;
    border: 1px solid rgba(197, 155, 39, 0.35);
    border-radius: 6px;
    padding: 0.15rem 0.45rem;
}
.rv-sp-tsk-head-copy {
    margin: 0.35rem 0 0;
    font-size: 11px;
    line-height: 1.45;
    font-style: italic;
    color: #475569;
}
.rv-sp-tsk-head-ref {
    margin: 0.35rem 0 0;
    font-size: 11px;
    font-weight: 600;
    color: #5C4508;
}
.rv-sp-tsk-group {
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 12px;
    padding: 0.75rem;
    background: rgba(18, 18, 18, 0.65);
}
.rv-sp-tsk-phrase {
    margin: 0 0 0.55rem;
    font-size: 0.82rem;
    color: #FDE68A;
    font-family: "Source Serif 4", Georgia, serif;
    font-weight: 600;
}
.rv-sp-tsk-refs { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rv-sp-tsk-ref {
    border: 1px solid rgba(212, 175, 55, 0.3);
    background: rgba(212, 175, 55, 0.08);
    color: #E7E5E4;
    border-radius: 999px;
    padding: 0.35rem 0.65rem;
    font-size: 0.72rem;
    cursor: pointer;
}
.rv-sp-tsk-ref:hover { border-color: #D4AF37; color: #D4AF37; }
.rv-sp-strong-grid { display: grid; gap: 0.65rem; }
.rv-sp-morph-card {
    border: 1px solid #E8DFC8;
    border-radius: 12px;
    padding: 0.8rem 0.85rem;
    background: #ffffff;
}
.rv-sp-morph-head {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 1.2rem;
    color: #0A192F;
    font-weight: 700;
    margin-bottom: 0.35rem;
}
.rv-sp-strong-badge {
    display: inline-block;
    margin-bottom: 0.4rem;
    padding: 0.15rem 0.45rem;
    border-radius: 6px;
    background: rgba(197, 155, 39, 0.15);
    color: #9A7418;
    font-size: 0.68rem;
    font-weight: 700;
}
.rv-sp-morph-pos {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    color: #57534e;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.rv-sp-morph-def {
    margin: 0 0 0.65rem;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #0F172A;
    font-weight: 600;
}
.rv-sp-morph-act {
    width: 100%;
    border: 1px solid rgba(212, 175, 55, 0.28);
    background: transparent;
    color: #E7E5E4;
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
    font-size: 0.7rem;
    cursor: pointer;
}
.rv-sp-loading { color: #A8A29E; font-size: 0.85rem; }
.rv-sp-retry {
    margin-top: 0.5rem;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: transparent;
    color: #D4AF37;
    border-radius: 8px;
    padding: 0.4rem 0.7rem;
    cursor: pointer;
}
.rv-sp-preview {
    position: absolute;
    z-index: 5;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: rgba(12, 10, 9, 0.97);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}
.rv-sp-preview-ref { margin: 0 0 0.35rem; color: #D4AF37; font-size: 0.78rem; font-weight: 700; }
.rv-sp-preview-text {
    margin: 0 0 0.65rem;
    font-size: 0.82rem;
    line-height: 1.5;
    color: #E7E5E4;
    font-family: "Source Serif 4", Georgia, serif;
}
.rv-sp-preview-acts { display: flex; gap: 0.4rem; }
.rv-sp-preview-acts button {
    border: 1px solid rgba(212, 175, 55, 0.3);
    background: rgba(212, 175, 55, 0.12);
    color: #F5F0E6;
    border-radius: 8px;
    padding: 0.35rem 0.6rem;
    font-size: 0.7rem;
    cursor: pointer;
}

/* Pie de lectura minimalista (reemplaza dock gigante) */
#rv-audio-dock.rv-reader-footer,
.rv-reader-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 35;
    height: 2.75rem;
    max-width: none !important;
    width: 100% !important;
    margin: 0;
    border-radius: 0 !important;
    border: none;
    border-top: 1px solid rgba(197, 155, 39, 0.28);
    background: rgba(10, 25, 47, 0.96) !important;
    color: #A8A29E;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0 0.85rem !important;
    box-shadow: none;
    flex-wrap: nowrap;
}
body.visor-active #rv-audio-dock.rv-reader-footer,
body.aposento-active #rv-audio-dock.rv-reader-footer,
body.is-santuario #rv-audio-dock.rv-reader-footer {
    display: flex !important;
    visibility: visible;
    pointer-events: auto;
}
.rv-reader-footer-left {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
    flex: 0 1 auto;
    max-width: 42%;
}
.rv-reader-play {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    border: 1px solid rgba(197, 155, 39, 0.45);
    background: transparent;
    color: #C59B27;
    font-size: 0.65rem;
    cursor: pointer;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.rv-reader-play.is-on {
    background: rgba(197, 155, 39, 0.18);
}
.rv-reader-track {
    font-size: 0.65rem;
    color: #D6D3D1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rv-reader-vol {
    width: 3.5rem;
    accent-color: #C59B27;
    height: 0.25rem;
    flex-shrink: 0;
}
.rv-reader-legal {
    margin: 0;
    flex: 1 1 auto;
    text-align: center;
    min-width: 0;
    font-size: 0.62rem !important;
    color: #94A3B8 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rv-reader-ia {
    flex-shrink: 0;
    border: 1px solid rgba(197, 155, 39, 0.35);
    background: transparent;
    color: #E7E5E4;
    border-radius: 999px;
    padding: 0.28rem 0.65rem;
    font-size: 0.68rem;
    cursor: pointer;
    white-space: nowrap;
}
.rv-reader-ia:hover { border-color: #C59B27; color: #C59B27; }

@media (max-width: 900px) {
    .rv-reader-vol { display: none; }
    .rv-reader-track { max-width: 7rem; }
}
@media (max-width: 767px) {
    .rv-reader-legal { display: none; }
    .rv-reader-track { display: none; }
    .rv-va-acts button { padding: 0.28rem 0.4rem; font-size: 0.62rem; }
    #rv-audio-dock.rv-reader-footer {
        bottom: 0;
        width: 100%;
        height: 2.6rem;
        padding: 0 0.65rem !important;
        padding-bottom: env(safe-area-inset-bottom, 0) !important;
    }
    .rv-footer-compact { white-space: normal; font-size: 0.62rem; }
}

.rv-study-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 94vw);
    z-index: 100030;
    display: flex;
    flex-direction: column;
    background: #0B0C10;
    border-left: 1px solid rgba(212, 175, 55, 0.35);
    box-shadow: -18px 0 50px rgba(0, 0, 0, 0.45);
}
.rv-study-panel[hidden] { display: none !important; }
.rv-sp-head {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1rem 0.5rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.2);
}
.rv-sp-kicker {
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #5C4508;
    font-weight: 600;
}
.rv-sp-head h2 {
    font-family: Cinzel, serif;
    font-size: 1rem;
    color: #0A192F;
    margin: 0.2rem 0;
}
.rv-sp-ref { color: #5C4508; font-size: 0.85rem; font-weight: 600; }
.rv-sp-chrome {
    flex-shrink: 0;
    border-bottom: 1px solid rgba(197, 155, 39, 0.28);
    background: #FAF7F0;
}
.rv-sp-tabs,
#study-drawer-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.25rem;
    padding: 0.55rem 0.65rem 0.7rem;
    overflow: visible;
    background: rgba(10, 25, 47, 0.04);
    border-bottom: 1px solid rgba(232, 223, 200, 0.85);
}
@media (min-width: 640px) {
    .rv-sp-tabs,
    #study-drawer-tabs {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
.rv-sp-tabs button,
#study-drawer-tabs button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 2.35rem;
    white-space: normal;
    text-align: center;
    line-height: 1.2;
    border: 1px solid rgba(197, 155, 39, 0.42);
    background: #FFFBF0;
    color: #0A192F;
    border-radius: 8px;
    padding: 0.4rem 0.35rem;
    font-size: 0.68rem;
    font-weight: 600;
    cursor: pointer;
    font-family: Cinzel, "Playfair Display", Georgia, serif;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
@media (min-width: 640px) {
    .rv-sp-tabs button,
    #study-drawer-tabs button {
        font-size: 0.72rem;
        padding: 0.45rem 0.4rem;
    }
}
.rv-sp-tabs button.is-on,
#study-drawer-tabs button.is-on {
    border-color: rgba(92, 69, 8, 0.55);
    background: #F8EBC8;
    color: #0A192F;
}
.rv-sp-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.85rem 1rem 1.75rem;
}
#study-drawer [id^="lens-result-"] {
    max-height: none !important;
    overflow: visible !important;
}
.rv-sp-card {
    border: 1px solid rgba(212, 175, 55, 0.22);
    border-radius: 10px;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
    background: rgba(18, 18, 18, 0.7);
}
.rv-sp-card-kicker {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #C5A059;
    margin-bottom: 0.4rem;
}
.rv-sp-strong-list, .rv-sp-tsk-list { list-style: none; padding: 0; margin: 0; }
.rv-sp-strong-list button, .rv-sp-tsk-list button {
    width: 100%;
    text-align: left;
    border: 1px solid rgba(212, 175, 55, 0.2);
    background: transparent;
    color: #E0E6ED;
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
    margin-bottom: 0.35rem;
    cursor: pointer;
}
.rv-sp-tsk-list small { display: block; color: #9aa3ad; margin-top: 0.2rem; }

/* —— Modo Aposento (concentración inmersiva) —— */
.rv-aposento-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
}
.rv-aposento-toggle.is-on {
    border-color: #D4AF37;
    background: rgba(212, 175, 55, 0.18);
    color: #F5F0E6;
}
#aposento-controls.flex {
    display: flex;
}

body.aposento-active,
body.is-aposento {
    background-color: var(--paper) !important;
    transition: background-color 0.5s ease;
}

body.aposento-active #aposento-controls,
body.is-aposento #aposento-controls {
    display: flex !important;
}

body.aposento-active aside,
body.is-aposento aside,
body.aposento-active #panel-canon,
body.is-aposento #panel-canon,
body.aposento-active nav:not(.aposento-nav),
body.is-aposento nav:not(.aposento-nav),
body.aposento-active footer,
body.is-aposento footer,
body.aposento-active .rv-footer,
body.is-aposento .rv-footer,
body.aposento-active .panel-lateral-secundario,
body.is-aposento .panel-lateral-secundario,
body.aposento-active #rv-study-drawer:not(.is-open),
body.is-aposento #rv-study-drawer:not(.is-open),
body.aposento-active .rv-study-panel:not(.is-open),
body.is-aposento .rv-study-panel:not(.is-open) {
    opacity: 0.15;
    pointer-events: none;
    filter: blur(1px);
    transition: opacity 0.5s ease, filter 0.5s ease;
}
body.aposento-active #study-drawer.is-open,
body.is-aposento #study-drawer.is-open,
body.aposento-active .rv-study-panel.is-open,
body.is-aposento .rv-study-panel.is-open {
    opacity: 1 !important;
    pointer-events: auto !important;
    filter: none !important;
    z-index: 100060;
}

/* Cabecera con botón Aposento permanece usable */
body.aposento-active header.rv-chrome,
body.is-aposento header.rv-chrome,
body.aposento-active #rv-aposento-cluster,
body.is-aposento #rv-aposento-cluster {
    opacity: 1 !important;
    pointer-events: auto !important;
    filter: none !important;
}

body.aposento-active .visor-biblico-contenido,
body.is-aposento .visor-biblico-contenido,
body.aposento-active #texto-biblico,
body.is-aposento #texto-biblico {
    max-width: 48rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 1.15rem !important;
    line-height: 2rem !important;
    color: #0F172A !important;
    transition: all 0.4s ease;
}

body.aposento-active .rv-lectura,
body.is-aposento .rv-lectura {
    background: linear-gradient(180deg, #FAF7F0 0%, #F5EFEB 100%);
    border: 1px solid #E2D7C3;
    border-radius: 14px;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

body.aposento-active .rv-stage,
body.is-aposento .rv-stage {
    max-width: 52rem;
    margin: 0 auto;
    padding: 1.5rem 1.25rem 4rem;
}

body.has-study-panel .rv-stage { padding-right: min(420px, 94vw); }

@media (max-width: 900px) {
    body.has-study-panel .rv-stage { padding-right: 0; }
}
