/*
 * Quijotext
 * Interfaz minimalista en blanco y negro construida principalmente con Flexbox.
 */
:root {
    --negro: #000000;
    --blanco: #ffffff;
    --gris-25: #fcfcfc;
    --gris-50: #f7f7f7;
    --gris-100: #eeeeee;
    --gris-200: #dedede;
    --gris-300: #c4c4c4;
    --gris-500: #737373;
    --gris-700: #333333;
    --fondo: var(--blanco);
    --superficie: var(--blanco);
    --superficie-secundaria: var(--gris-50);
    --texto: var(--negro);
    --texto-secundario: #626262;
    --borde: #dedede;
    --sombra: 0 18px 55px rgba(0, 0, 0, .09);
    --radio: 14px;
    --transicion: 180ms ease;
}

html[data-tema="oscuro"] {
    --fondo: #0a0a0a;
    --superficie: #111111;
    --superficie-secundaria: #171717;
    --texto: #ffffff;
    --texto-secundario: #a8a8a8;
    --borde: #2c2c2c;
    --sombra: 0 18px 55px rgba(0, 0, 0, .36);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
    margin: 0;
    background: var(--fondo);
    color: var(--texto);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 1.45;
}
button, input, select, textarea { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
svg { width: 18px; height: 18px; stroke-width: 1.7; }
::selection { background: #000; color: #fff; }
::-moz-selection { background: #000; color: #fff; }

.sobrelinea, .etiqueta-minimalista {
    display: block;
    margin-bottom: 6px;
    color: var(--texto-secundario);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.boton {
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-weight: 720;
    transition: transform var(--transicion), background var(--transicion), border-color var(--transicion), color var(--transicion);
}
.boton:hover { transform: translateY(-1px); }
.boton:disabled { opacity: .55; cursor: wait; transform: none; }
.boton-negro { background: var(--negro); color: var(--blanco); border-color: var(--negro); }
html[data-tema="oscuro"] .boton-negro { background: var(--blanco); color: var(--negro); border-color: var(--blanco); }
.boton-claro { background: var(--superficie); color: var(--texto); }
.boton-claro:hover { border-color: var(--texto); }
.boton-ancho { width: 100%; }
.boton-icono {
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--transicion), border-color var(--transicion);
}
.boton-icono:hover { background: var(--superficie-secundaria); border-color: var(--borde); }

.campo-formulario { display: flex; flex-direction: column; gap: 7px; }
.campo-formulario > span { font-size: 13px; font-weight: 750; }
.campo-formulario input,
.campo-formulario select,
.campo-formulario textarea,
.rejilla-formulario input,
.rejilla-formulario select {
    width: 100%;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie);
    padding: 11px 12px;
    outline: none;
    transition: border-color var(--transicion), box-shadow var(--transicion);
}
.campo-formulario input:focus,
.campo-formulario select:focus,
.campo-formulario textarea:focus { border-color: var(--texto); box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 8%, transparent); }
.campo-formulario textarea { resize: vertical; min-height: 120px; }
.campo-formulario small, .ayuda-campo { color: var(--texto-secundario); font-size: 12px; }
.formulario-apilado { display: flex; flex-direction: column; gap: 18px; }
.entrada-con-icono { position: relative; display: flex; align-items: center; }
.entrada-con-icono svg { position: absolute; left: 12px; color: var(--texto-secundario); }
.entrada-con-icono input { padding-left: 42px; }

/* Inicio de sesión */
.pagina-login { overflow: hidden; }
.login-contenedor { min-height: 100vh; display: flex; background: #fff; color: #000; }
.login-presentacion {
    flex: 1 1 55%;
    min-width: 0;
    padding: clamp(28px, 5vw, 72px);
    background: #000;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 48px;
}
.login-marca { display: flex; align-items: center; gap: 12px; }
.marca-simbolo {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--negro);
    color: var(--blanco);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: Georgia, serif;
    font-size: 20px;
    font-weight: 800;
}
.login-presentacion .marca-simbolo { background: #fff; color: #000; }
.marca-simbolo.grande { width: 44px; height: 44px; }
.login-mensaje { max-width: 700px; }
.login-mensaje .etiqueta-minimalista { color: #999; }
.login-mensaje h1 { margin: 0 0 22px; font-family: Georgia, serif; font-size: clamp(40px, 5vw, 76px); line-height: 1.02; letter-spacing: -.045em; font-weight: 500; }
.login-mensaje p { max-width: 620px; margin: 0; color: #bdbdbd; font-size: 17px; line-height: 1.7; }
.login-presentacion > small { color: #7d7d7d; }
.login-panel { flex: 1 1 45%; min-width: 420px; display: flex; align-items: center; justify-content: center; padding: 40px; background: #fff; color: #000; }
.tarjeta-login { width: min(410px, 100%); display: flex; flex-direction: column; gap: 24px; }
.tarjeta-login h2 { margin: 2px 0 7px; font-size: 34px; letter-spacing: -.035em; }
.tarjeta-login p { margin: 0; color: #6b6b6b; }
.nota-acceso { padding-top: 6px; font-size: 12px; line-height: 1.55; }

/* Estructura global con sidebar */
.aplicacion-con-sidebar { min-height: 100vh; display: flex; }
.sidebar-principal {
    width: 248px;
    flex: 0 0 248px;
    min-height: 100vh;
    padding: 20px 14px;
    border-right: 1px solid var(--borde);
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
}
.marca-aplicacion { height: 52px; padding: 0 9px; display: flex; align-items: center; gap: 11px; }
.marca-texto { font-weight: 800; letter-spacing: -.02em; }
.navegacion-principal { margin-top: 26px; display: flex; flex-direction: column; gap: 5px; }
.enlace-sidebar {
    min-height: 43px;
    padding: 0 12px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--texto-secundario);
    font-weight: 650;
}
.enlace-sidebar:hover, .enlace-sidebar.activo { color: var(--texto); background: var(--superficie-secundaria); }
.sidebar-inferior { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--borde); display: flex; align-items: center; gap: 8px; }
.usuario-sidebar { min-width: 0; flex: 1; display: flex; align-items: center; gap: 10px; }
.usuario-sidebar img, .avatar-inicial { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.avatar-inicial { background: var(--negro); color: var(--blanco); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
html[data-tema="oscuro"] .avatar-inicial { background: var(--blanco); color: var(--negro); }
.datos-usuario-sidebar { min-width: 0; display: flex; flex-direction: column; }
.datos-usuario-sidebar strong, .datos-usuario-sidebar small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.datos-usuario-sidebar strong { font-size: 13px; }
.datos-usuario-sidebar small { color: var(--texto-secundario); font-size: 11px; }
.contenido-principal { flex: 1; min-width: 0; padding: 42px clamp(24px, 5vw, 72px); }
.cabecera-pagina { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.cabecera-pagina h1 { margin: 0; font-size: clamp(32px, 4vw, 48px); letter-spacing: -.045em; }
.cabecera-pagina p { margin: 8px 0 0; color: var(--texto-secundario); }
.resumen-biblioteca { margin: 38px 0 26px; padding: 18px 20px; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie-secundaria); display: flex; align-items: center; gap: 20px; }
.dato-resumen { display: flex; align-items: baseline; gap: 7px; }
.dato-resumen span { font-size: 28px; font-weight: 800; }
.dato-resumen small { color: var(--texto-secundario); }
.linea-resumen { width: 1px; height: 34px; background: var(--borde); }
.resumen-biblioteca p { margin: 0; color: var(--texto-secundario); }
.rejilla-proyectos { display: flex; flex-wrap: wrap; gap: 24px; align-items: stretch; }
.tarjeta-proyecto { width: min(285px, 100%); display: flex; flex-direction: column; gap: 12px; }
.portada-proyecto {
    height: 354px;
    border: 1px solid var(--negro);
    background: var(--negro);
    color: var(--blanco);
    border-radius: 4px 12px 12px 4px;
    padding: 32px 26px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    box-shadow: 12px 16px 26px rgba(0,0,0,.14);
    transition: transform var(--transicion), box-shadow var(--transicion);
}
.portada-proyecto:hover { transform: translateY(-4px) rotate(-.4deg); box-shadow: 16px 22px 34px rgba(0,0,0,.18); }
.lomo-portada { position: absolute; left: 12px; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,.22); box-shadow: 4px 0 10px rgba(255,255,255,.08); }
.titulo-portada { font-family: Georgia, serif; font-size: 25px; line-height: 1.25; }
.portada-proyecto small { position: absolute; bottom: 25px; color: #8f8f8f; letter-spacing: .12em; text-transform: uppercase; }
.datos-proyecto { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.datos-proyecto h2 { margin: 0 0 4px; font-size: 16px; line-height: 1.3; }
.datos-proyecto p { margin: 0; color: var(--texto-secundario); font-size: 12px; }
.menu-contextual { position: relative; }
.menu-flotante { width: 168px; padding: 6px; border: 1px solid var(--borde); border-radius: 10px; background: var(--superficie); box-shadow: var(--sombra); position: absolute; z-index: 10; top: 42px; right: 0; display: none; }
.menu-contextual.abierto .menu-flotante { display: flex; flex-direction: column; }
.menu-flotante a, .menu-flotante button { width: 100%; min-height: 36px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; display: flex; align-items: center; gap: 9px; text-align: left; }
.menu-flotante a:hover, .menu-flotante button:hover { background: var(--superficie-secundaria); }
.estado-vacio { width: 100%; min-height: 380px; border: 1px dashed var(--gris-300); border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 28px; }
.icono-vacio { width: 64px; height: 64px; margin-bottom: 16px; border: 1px solid var(--borde); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.icono-vacio svg { width: 28px; height: 28px; }
.estado-vacio h2 { margin: 0 0 8px; }
.estado-vacio p { max-width: 420px; margin: 0 0 20px; color: var(--texto-secundario); }

/* Modales */
body.modal-abierto { overflow: hidden; }
.modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 24px; }
.modal.visible { display: flex; }
.modal-fondo { position: absolute; inset: 0; background: rgba(0,0,0,.62); backdrop-filter: blur(4px); }
.modal-contenido { width: min(620px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 24px; border: 1px solid var(--borde); border-radius: 16px; background: var(--superficie); box-shadow: var(--sombra); position: relative; animation: aparecer-modal 180ms ease; }
.modal-pequeno { width: min(470px, 100%); }
.modal-configuracion { width: min(940px, 100%); padding: 0; overflow: hidden; }
@keyframes aparecer-modal { from { opacity: 0; transform: translateY(10px) scale(.985); } }
.modal-cabecera { margin-bottom: 22px; display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.modal-configuracion > .modal-cabecera { margin: 0; padding: 22px 24px; border-bottom: 1px solid var(--borde); }
.modal-cabecera h2 { margin: 0; font-size: 24px; letter-spacing: -.03em; }
.acciones-modal { padding-top: 6px; display: flex; justify-content: flex-end; gap: 10px; }
.configuracion-editorial { min-height: 535px; display: flex; }
.navegacion-configuracion { width: 210px; flex: 0 0 210px; padding: 18px 12px; border-right: 1px solid var(--borde); background: var(--superficie-secundaria); display: flex; flex-direction: column; gap: 5px; }
.navegacion-configuracion button { min-height: 42px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--texto-secundario); display: flex; align-items: center; gap: 10px; text-align: left; }
.navegacion-configuracion button.activo, .navegacion-configuracion button:hover { background: var(--superficie); color: var(--texto); }
.contenido-configuracion { min-width: 0; flex: 1; padding: 26px; overflow: auto; display: flex; flex-direction: column; }
.contenido-configuracion > section { display: none; }
.contenido-configuracion > section.activo { display: block; }
.contenido-configuracion h3 { margin: 0 0 6px; font-size: 22px; }
.contenido-configuracion section > p { margin: 0 0 22px; color: var(--texto-secundario); }
.contenido-configuracion .acciones-modal { margin-top: auto; border-top: 1px solid var(--borde); padding-top: 18px; }
.plantillas-margenes { margin-bottom: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.plantillas-margenes button { flex: 1 1 180px; min-height: 72px; padding: 12px; border: 1px solid var(--borde); border-radius: 10px; background: var(--superficie); display: flex; flex-direction: column; align-items: flex-start; gap: 4px; text-align: left; }
.plantillas-margenes button:hover, .plantillas-margenes button.activo { border-color: var(--texto); }
.plantillas-margenes small { color: var(--texto-secundario); font-size: 11px; }
.rejilla-formulario { display: flex; flex-wrap: wrap; gap: 16px; }
.rejilla-formulario .campo-formulario { flex: 1 1 210px; }
.interruptor { margin-top: 22px; display: flex; align-items: center; gap: 12px; cursor: pointer; }
.interruptor input { position: absolute; opacity: 0; }
.interruptor > span { width: 42px; height: 24px; border: 1px solid var(--borde); border-radius: 999px; background: var(--superficie-secundaria); position: relative; transition: background var(--transicion); }
.interruptor > span::after { content: ""; width: 18px; height: 18px; border-radius: 50%; background: var(--texto-secundario); position: absolute; left: 2px; top: 2px; transition: transform var(--transicion), background var(--transicion); }
.interruptor input:checked + span { background: var(--texto); }
.interruptor input:checked + span::after { transform: translateX(18px); background: var(--superficie); }
.interruptor div { display: flex; flex-direction: column; }
.interruptor small { color: var(--texto-secundario); }
.muestra-cita { margin-top: 22px; padding: 18px; border: 1px solid var(--borde); border-radius: 10px; }
.muestra-cita > span { color: var(--texto-secundario); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.muestra-cita blockquote { margin: 18px 0 4px 1.27cm; font-family: Georgia, serif; line-height: 1.65; }

/* Configuración de cuenta */
.configuracion-cuenta { max-width: 1180px; }
.rejilla-configuracion-cuenta { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start; }
.tarjeta-configuracion { flex: 1 1 390px; padding: 24px; border: 1px solid var(--borde); border-radius: 14px; background: var(--superficie); }
.tarjeta-configuracion > header { margin-bottom: 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.tarjeta-configuracion h2 { margin: 0 0 4px; font-size: 20px; }
.tarjeta-configuracion header p { margin: 0; color: var(--texto-secundario); }
.editor-avatar { display: flex; align-items: center; gap: 18px; }
.avatar-grande { width: 82px; height: 82px; flex: 0 0 82px; border-radius: 50%; background: var(--negro); color: var(--blanco); overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 30px; font-weight: 800; }
.avatar-grande img { width: 100%; height: 100%; object-fit: cover; }
.selector-archivo input { display: none; }
.selector-tema { display: flex; gap: 14px; }
.opcion-tema { flex: 1; padding: 12px; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie); display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.opcion-tema.activo { border: 2px solid var(--texto); padding: 11px; }
.muestra-tema { width: 100%; height: 90px; margin-bottom: 7px; border: 1px solid #bbb; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
.muestra-tema.claro { background: #fff; color: #000; }
.muestra-tema.oscuro { background: #0b0b0b; color: #fff; }
.opcion-tema small { color: var(--texto-secundario); }

/* Editor de tres paneles */
.pagina-editor { height: 100vh; overflow: hidden; }
.editor-aplicacion { height: 100vh; display: flex; background: var(--superficie-secundaria); }
.sidebar-editor-global {
    width: 56px;
    flex: 0 0 56px;
    padding: 10px 8px;
    border-right: 1px solid var(--borde);
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    z-index: 20;
}
.sidebar-editor-global .marca-simbolo { width: 36px; height: 36px; }
.sidebar-editor-global nav, .sidebar-editor-global > div { display: flex; flex-direction: column; gap: 8px; }
.sidebar-editor-global > div { margin-top: auto; }
.sidebar-editor-global a:not(.marca-simbolo), .sidebar-editor-global button { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--texto-secundario); display: flex; align-items: center; justify-content: center; }
.sidebar-editor-global a:hover, .sidebar-editor-global button:hover { background: var(--superficie-secundaria); color: var(--texto); }
.sidebar-editor-global .perfil-editor-compacto { overflow: hidden; border: 1px solid var(--borde); }
.sidebar-editor-global .perfil-editor-compacto img { width: 100%; height: 100%; object-fit: cover; }
.sidebar-editor-global .perfil-editor-compacto span { width: 100%; height: 100%; background: var(--negro); color: var(--blanco); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; }
html[data-tema="oscuro"] .sidebar-editor-global .perfil-editor-compacto span { background: var(--blanco); color: var(--negro); }
.editor-zona-principal { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.barra-superior-editor { height: 64px; flex: 0 0 64px; padding: 0 16px; border-bottom: 1px solid var(--borde); background: var(--superficie); display: flex; align-items: center; justify-content: space-between; gap: 18px; z-index: 15; }
.titulo-proyecto-editor, .acciones-editor-superior { display: flex; align-items: center; gap: 10px; }
.titulo-proyecto-editor { min-width: 0; }
.datos-obra-editor { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.rotulo-obra-editor { color: var(--texto-secundario); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.fila-identidad-obra-editor { min-width: 0; display: flex; align-items: center; justify-content: flex-start; gap: 9px; }
.titulo-proyecto-editor input { width: min(28vw, 390px); min-width: 90px; padding: 0; border: 0; background: transparent; font-weight: 800; outline: none; }
.estado-guardado { margin-left: 0; color: var(--texto-secundario); display: flex; align-items: center; gap: 6px; font-size: 12px; }
.accion-editor-icono { width: 42px; height: 42px; flex: 0 0 42px; }
.accion-editor-icono svg { width: 19px; height: 19px; }
.estado-guardado.guardando svg { animation: none; }
.editor-tres-paneles {
    --ancho-estructura: 280px;
    --ancho-componentes: 320px;
    min-height: 0;
    flex: 1;
    display: flex;
    overflow: hidden;
}
.panel-editor { min-width: 220px; background: var(--superficie); display: flex; flex-direction: column; overflow: hidden; }
.panel-estructura { width: var(--ancho-estructura); flex: 0 0 var(--ancho-estructura); }
.panel-componentes { width: var(--ancho-componentes); flex: 0 0 var(--ancho-componentes); }
.separador-panel { width: 5px; flex: 0 0 5px; background: var(--borde); cursor: col-resize; position: relative; z-index: 10; transition: background var(--transicion); }
.separador-panel::after { content: ""; position: absolute; inset: 0 -3px; }
.separador-panel:hover, body.redimensionando .separador-panel { background: var(--negro); }
html[data-tema="oscuro"] .separador-panel:hover, html[data-tema="oscuro"] body.redimensionando .separador-panel { background: var(--blanco); }
.cabecera-panel { min-height: 76px; padding: 16px 15px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cabecera-panel h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.cabecera-panel .sobrelinea { margin-bottom: 2px; font-size: 9px; }
.buscador-panel { margin: 0 12px 12px; position: relative; display: flex; align-items: center; }
.buscador-panel svg { position: absolute; left: 10px; width: 15px; color: var(--texto-secundario); }
.buscador-panel input { width: 100%; height: 38px; padding: 0 10px 0 34px; border: 1px solid var(--borde); border-radius: 8px; background: var(--superficie-secundaria); outline: none; font-size: 12px; }
.lista-estructura { min-height: 0; flex: 1; padding: 0 8px; overflow-y: auto; display: flex; flex-direction: column; gap: 3px; }
.elemento-estructura { min-height: 46px; padding: 7px 7px; border-radius: 8px; display: flex; align-items: center; gap: 7px; color: var(--texto-secundario); cursor: pointer; }
.elemento-estructura:hover { background: var(--superficie-secundaria); color: var(--texto); }
.elemento-estructura.fijo { margin: 0 8px 6px; border: 1px solid var(--borde); background: var(--superficie-secundaria); cursor: default; }
.elemento-estructura.nivel-2 { padding-left: 21px; }
.elemento-estructura.nivel-3 { padding-left: 35px; }
.asa-bloque { width: 20px; height: 28px; flex: 0 0 20px; display: flex; align-items: center; justify-content: center; cursor: grab; opacity: .55; }
.asa-bloque.bloqueada { cursor: default; }
.asa-bloque svg { width: 14px; }
.texto-estructura, .elemento-estructura > div { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.texto-estructura strong, .elemento-estructura > div strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.texto-estructura small, .elemento-estructura > div small { font-size: 10px; color: var(--texto-secundario); }
.acciones-estructura { flex: 0 0 auto !important; flex-direction: row !important; opacity: 0; }
.elemento-estructura:hover .acciones-estructura { opacity: 1; }
.acciones-estructura button { width: 24px; height: 24px; padding: 0; border: 0; border-radius: 5px; background: transparent; display: flex; align-items: center; justify-content: center; }
.acciones-estructura button:hover { background: var(--borde); }
.acciones-estructura svg { width: 13px; }
.estructura-fantasma { opacity: .35; background: var(--superficie-secundaria); }
.ayuda-estructura, .ayuda-componentes { padding: 11px 13px; border-top: 1px solid var(--borde); color: var(--texto-secundario); display: flex; align-items: flex-start; gap: 8px; font-size: 10px; line-height: 1.45; }
.ayuda-estructura svg, .ayuda-componentes svg { width: 14px; flex: 0 0 14px; }
.mini-estado-vacio { padding: 18px 12px; color: var(--texto-secundario); font-size: 11px; text-align: center; }

.panel-documento { min-width: 520px; flex: 1 1 auto; background: #e9e9e9; display: flex; flex-direction: column; overflow: hidden; position: relative; }
html[data-tema="oscuro"] .panel-documento { background: #202020; }
.barra-formato { min-height: 48px; flex: 0 0 48px; padding: 5px 10px; border-bottom: 1px solid var(--borde); background: var(--superficie); display: flex; align-items: center; gap: 3px; overflow-x: auto; }
.barra-formato button { width: 34px; height: 34px; flex: 0 0 34px; padding: 0; border: 1px solid transparent; border-radius: 7px; background: transparent; display: flex; align-items: center; justify-content: center; }
.barra-formato button:hover { border-color: var(--borde); background: var(--superficie-secundaria); }
.barra-formato select { height: 34px; border: 1px solid var(--borde); border-radius: 7px; background: var(--superficie); padding: 0 8px; font-size: 12px; }
.separador-herramientas { width: 1px; height: 22px; flex: 0 0 1px; margin: 0 4px; background: var(--borde); }
.lienzo-documento { min-height: 0; flex: 1; padding: 34px max(24px, calc((100% - 850px) / 2)); overflow: auto; }
.hoja-editor {
    width: max-content;
    min-width: 21cm;
    margin: 0 auto 40px;
    background: transparent;
    color: #000;
    font-family: "Times New Roman", serif;
    font-size: 12pt;
    line-height: 1.55;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
}
.pagina-editor-visual {
    width: 21cm;
    height: 29.7cm;
    padding: var(--margen-superior, 2.54cm) var(--margen-derecho, 2.54cm) var(--margen-inferior, 2.54cm) var(--margen-izquierdo, 2.54cm);
    background: #fff;
    color: #000;
    box-shadow: 0 4px 26px rgba(0,0,0,.14);
    box-sizing: border-box;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: visible;
}
.hoja-editor.pagina-carta { min-width: 21.59cm; }
.hoja-editor.pagina-carta .pagina-editor-visual { width: 21.59cm; height: 27.94cm; }
.contenido-pagina-editor { min-height: 0; flex: 1; position: relative; }
.pie-pagina-editor {
    min-height: 24px;
    flex: 0 0 auto;
    margin-top: 14px;
    padding-top: 7px;
    border-top: 1px solid #ddd;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: #222;
    font: 9pt "Times New Roman", serif;
}
.pie-pagina-editor.centro { justify-content: center; }
.pie-pagina-editor.derecha { justify-content: flex-end; }
.pie-pagina-editor .numero-pagina-editor { min-width: 18px; text-align: right; }
.pie-pagina-editor.sin-contenido { border-top-color: transparent; }
.pagina-portada-editor .contenido-pagina-editor { display: flex; flex-direction: column; }
.pagina-portada-editor .bloque-portada { min-height: 0; flex: 1; }
.pagina-indice-editor .bloque-indice { min-height: 0; }
.cargando-editor, .estado-error-editor { width: 21cm; min-height: 29.7cm; padding: 40px; background: #fff; box-shadow: 0 4px 26px rgba(0,0,0,.14); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #666; box-sizing: border-box; }
.cargando-editor span { width: 30px; height: 30px; border: 2px solid #ddd; border-top-color: #000; border-radius: 50%; animation: girar .8s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
.bloque-editor { min-height: 34px; margin: 7px -16px; padding: 8px 16px; border: 1px solid transparent; border-radius: 5px; position: relative; transition: border-color var(--transicion), background var(--transicion); }
.bloque-editor:hover, .bloque-editor.activo { border-color: #d4d4d4; }
.bloque-editor.activo { background: #fcfcfc; }
.bloque-editor.soltar-antes::before, .bloque-editor.soltar-despues::after { content: "Soltar componente aquí"; position: absolute; left: 0; right: 0; height: 3px; background: #000; color: #000; font: 10px Inter, sans-serif; }
.bloque-editor.soltar-antes::before { top: -5px; }
.bloque-editor.soltar-despues::after { bottom: -5px; }
.contenido-bloque, .formula-latex, .imagen-editor figcaption { outline: none; }
.contenido-bloque:empty::before { content: "Escribe aquí…"; color: #aaa; }
.bloque-titulo1 .contenido-bloque { font-size: 24pt; line-height: 1.2; font-weight: 700; margin: 24px 0 12px; }
.bloque-titulo2 .contenido-bloque { font-size: 18pt; line-height: 1.25; font-weight: 700; margin: 20px 0 10px; }
.bloque-titulo3 .contenido-bloque { font-size: 14pt; line-height: 1.3; font-weight: 700; margin: 16px 0 8px; }
.bloque-cita .contenido-bloque { margin-left: 1.27cm; padding-left: 14px; border-left: 2px solid #000; font-style: italic; }
.etiqueta-bloque { margin-bottom: 8px; color: #777; font: 700 9px Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; display: flex; align-items: center; gap: 6px; }
.etiqueta-bloque svg { width: 12px; height: 12px; }
.etiqueta-bloque.discreta { position: absolute; left: -4px; top: -14px; opacity: 0; }
.bloque-editor:hover .etiqueta-bloque.discreta { opacity: 1; }
.acciones-bloque { position: absolute; right: -42px; top: auto; bottom: 5px; display: flex; flex-direction: column; gap: 3px; opacity: 0; transition: opacity var(--transicion); }
.bloque-editor:hover .acciones-bloque, .bloque-editor.activo .acciones-bloque { opacity: 1; }
.acciones-bloque button { width: 30px; height: 30px; padding: 0; border: 1px solid #ddd; border-radius: 7px; background: #fff; color: #000; display: flex; align-items: center; justify-content: center; }
.acciones-bloque svg { width: 14px; }
.bloque-portada { min-height: 700px; margin-top: 0; display: flex; flex-direction: column; justify-content: center; text-align: center; border-bottom: 1px dashed #bbb; }
.portada-editor-contenido h1 { margin: 0; font-size: 34pt; line-height: 1.15; }
.portada-editor-contenido p { margin-top: 32px; font-size: 14pt; }
.bloque-indice { min-height: 580px; border-bottom: 1px dashed #bbb; }
.indice-editor h1 { font-size: 26pt; margin: 0 0 30px; }
.indice-editor ol { list-style: none; padding: 0; margin: 0; }
.indice-editor li { margin: 8px 0; display: flex; align-items: baseline; gap: 8px; }
.indice-editor li.nivel-2 { padding-left: 24px; }
.indice-editor li.nivel-3 { padding-left: 48px; }
.indice-editor li i { flex: 1; border-bottom: 1px dotted #aaa; }
.indice-vacio { color: #888; font-style: italic; }
.formula-editor { text-align: center; }
.formula-latex { padding: 8px; border: 1px dashed #ccc; border-radius: 5px; color: #555; font: 12px ui-monospace, monospace; }
.formula-renderizada { min-height: 58px; padding: 12px; display: flex; align-items: center; justify-content: center; }
.imagen-editor { margin: 0; text-align: center; }
.imagen-editor img { max-height: 480px; margin: auto; object-fit: contain; }
.imagen-editor figcaption { margin-top: 8px; color: #555; font-size: 10pt; font-style: italic; }
.salto-pagina-editor { height: 46px; margin: 12px -80px; border-top: 1px dashed #999; border-bottom: 1px dashed #999; background: #f3f3f3; display: flex; align-items: center; justify-content: center; color: #666; font: 700 10px Inter, sans-serif; text-transform: uppercase; letter-spacing: .12em; }
.barra-estado-editor { min-height: 36px; flex: 0 0 36px; padding: 0 12px; border-top: 1px solid var(--borde); background: var(--superficie); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 11px; color: var(--texto-secundario); position: relative; }
.barra-estado-editor > div { display: flex; align-items: center; gap: 14px; }
.boton-ir-final {
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid #000;
    border-radius: 50%;
    background: #000;
    color: #fff;
    box-shadow: 0 8px 22px rgba(0,0,0,.22);
    position: absolute;
    z-index: 25;
    right: 18px;
    bottom: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform var(--transicion), box-shadow var(--transicion);
}
.boton-ir-final:hover { transform: translateY(2px); box-shadow: 0 5px 14px rgba(0,0,0,.28); }
.boton-ir-final:focus-visible { outline: 3px solid color-mix(in srgb, #000 24%, transparent); outline-offset: 3px; }
.boton-ir-final svg { width: 18px; height: 18px; }
html[data-tema="oscuro"] .boton-ir-final { border-color: #fff; background: #fff; color: #000; }

.acciones-cabecera-panel { display: flex; align-items: center; gap: 4px; }
.contenedor-filtro-componentes { position: relative; }
.menu-filtro-componentes {
    width: 205px;
    padding: 7px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie);
    box-shadow: var(--sombra);
    position: absolute;
    z-index: 80;
    top: calc(100% + 7px);
    right: 0;
    display: none;
}
.menu-filtro-componentes.visible { display: block; }
.menu-filtro-componentes > span { display: block; padding: 6px 8px 7px; color: var(--texto-secundario); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.menu-filtro-componentes button { width: 100%; min-height: 36px; padding: 0 8px; border: 0; border-radius: 7px; background: transparent; color: var(--texto); display: grid; grid-template-columns: 18px 1fr 16px; align-items: center; gap: 7px; text-align: left; font-size: 11px; }
.menu-filtro-componentes button:hover, .menu-filtro-componentes button.activo { background: var(--superficie-secundaria); }
.menu-filtro-componentes button svg { width: 14px; height: 14px; }
.menu-filtro-componentes button > svg:last-child { opacity: 0; }
.menu-filtro-componentes button.activo > svg:last-child { opacity: 1; }
.resumen-filtro-componentes { min-height: 32px; margin: 0 10px 10px; padding: 0 9px; border: 1px solid var(--borde); border-radius: 8px; background: var(--superficie-secundaria); color: var(--texto-secundario); display: flex; align-items: center; gap: 7px; font-size: 10px; }
.resumen-filtro-componentes svg { width: 13px; height: 13px; }
.resumen-filtro-componentes strong { color: var(--texto); }
.zona-subir-imagen { margin: 0 10px 10px; padding: 10px; border: 1px dashed var(--gris-300); border-radius: 9px; position: relative; display: flex; align-items: center; gap: 9px; cursor: pointer; }
.zona-subir-imagen:hover { border-color: var(--texto); }
.zona-subir-imagen.oculto { display: none; }
.zona-subir-imagen > div { min-width: 0; display: flex; flex-direction: column; }
.zona-subir-imagen strong { font-size: 11px; }
.zona-subir-imagen small { color: var(--texto-secundario); font-size: 9px; }
.zona-subir-imagen input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.lista-componentes { min-height: 0; flex: 1; padding: 0 8px; overflow-y: auto; display: flex; flex-direction: column; gap: 5px; }
.tarjeta-componente { min-height: 58px; padding: 8px; border: 1px solid var(--borde); border-radius: 9px; background: var(--superficie); display: flex; align-items: center; gap: 9px; cursor: grab; }
.tarjeta-componente:hover { border-color: var(--texto); }
.tarjeta-componente.arrastrando { opacity: .4; }
.tarjeta-componente.componente-fijo, .tarjeta-componente.bloqueado { background: var(--superficie-secundaria); }
.tarjeta-componente.componente-fijo { cursor: default; }
.tarjeta-componente.bloqueado:not(.componente-fijo) { cursor: grab; }
.icono-componente { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 8px; background: var(--superficie-secundaria); display: flex; align-items: center; justify-content: center; }
.icono-componente svg { width: 16px; }
.datos-componente { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.datos-componente strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.datos-componente small { color: var(--texto-secundario); font-size: 9px; }
.acciones-componente { display: none; gap: 2px; }
.tarjeta-componente:hover .acciones-componente { display: flex; }
.acciones-componente button { width: 25px; height: 25px; padding: 0; border: 0; border-radius: 5px; background: transparent; display: flex; align-items: center; justify-content: center; }
.acciones-componente button:hover { background: var(--superficie-secundaria); }
.acciones-componente svg, .candado-componente { width: 13px; }
.candado-componente { color: var(--texto-secundario); }
.estado-bloqueado-componente { display: inline-flex; align-items: center; gap: 4px; }
.estado-bloqueado-componente svg { width: 10px; height: 10px; }
.barra-seleccion { position: fixed; z-index: 100; transform: translateX(-50%); display: none; }
.barra-seleccion.visible { display: block; }
.barra-seleccion button { height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: #000; color: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.24); display: flex; align-items: center; gap: 7px; font-size: 11px; }


/* Editor continuo y datos editoriales del libro */
.hoja-editor {
    width: 21cm;
    min-width: 21cm;
    min-height: 29.7cm;
    margin: 0 auto 40px;
    padding: var(--margen-superior, 2.54cm) var(--margen-derecho, 2.54cm) var(--margen-inferior, 2.54cm) var(--margen-izquierdo, 2.54cm);
    background: #fff;
    color: #000;
    box-shadow: 0 4px 26px rgba(0,0,0,.14);
    box-sizing: border-box;
    display: block;
}
.hoja-editor.pagina-carta { width: 21.59cm; min-width: 21.59cm; min-height: 27.94cm; }
.documento-continuo-editor { width: 100%; min-height: 100%; }
.hoja-editor > .cargando-editor, .hoja-editor > .estado-error-editor { width: 100%; min-height: 22cm; padding: 30px; box-shadow: none; }
.documento-continuo-editor .bloque-portada { min-height: 21.5cm; }
.documento-continuo-editor .bloque-indice { min-height: 18cm; }
.portada-editor-contenido { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.imagen-portada-editor { width: min(100%, 12.5cm); max-height: 15.5cm; margin: 0 auto 30px; border-radius: 3px; object-fit: contain; box-shadow: 0 8px 24px rgba(0,0,0,.13); }
.portada-editor-contenido h2 { max-width: 80%; margin: 16px auto 0; font-size: 18pt; line-height: 1.35; font-weight: 400; }
.formula-renderizada { min-height: 70px; padding: 14px 12px; font-size: 12pt; overflow-x: auto; }
.formula-renderizada mjx-container[jax="SVG"], .formula-academica mjx-container[jax="SVG"] { font-size: 100% !important; max-width: 100%; }
/* La regla global de iconos fija todos los SVG en 18 px. MathJax también genera SVG,
   por eso restablecemos aquí sus dimensiones naturales para que la fórmula tenga
   el mismo cuerpo visual que el texto del manuscrito. */
.formula-renderizada mjx-container[jax="SVG"] > svg,
.formula-academica mjx-container[jax="SVG"] > svg {
    width: auto !important;
    height: auto !important;
    max-width: 100%;
}
.bloque-cita.estilo-cita-apa7 .contenido-bloque { margin-left: 1.27cm; padding-left: 0; border-left: 0; line-height: 2; font-style: normal; }
.bloque-cita.estilo-cita-mla9 .contenido-bloque { margin-left: 2.54cm; padding-left: 0; border-left: 0; line-height: 2; font-style: normal; }
.bloque-cita.estilo-cita-chicago .contenido-bloque { margin-left: 1.27cm; padding-left: 16px; border-left: 1px solid #000; line-height: 1.55; font-style: normal; }
.rejilla-datos-libro { display: flex; align-items: flex-start; gap: 28px; }
.campos-datos-libro { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 18px; }
.selector-portada-libro { min-height: 48px; padding: 0 14px; border: 1px dashed var(--borde); border-radius: 9px; background: var(--superficie-secundaria); display: flex; align-items: center; justify-content: center; gap: 9px; cursor: pointer; }
.selector-portada-libro:hover { border-color: var(--texto); }
.selector-portada-libro input { display: none; }
.selector-portada-libro svg { width: 18px; }
.interruptor.oculto { display: none; }
.vista-previa-portada-config { width: 190px; height: 304px; flex: 0 0 190px; padding: 24px 18px; border: 1px solid var(--borde); border-radius: 5px 11px 11px 5px; background: #050505; color: #fff; box-shadow: 8px 12px 24px rgba(0,0,0,.15); overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center; }
.vista-previa-portada-config.con-imagen { padding: 0; }
.vista-previa-portada-config > img { width: 100%; height: 100%; object-fit: cover; }
.portada-tipografica-config { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.portada-tipografica-config span { font-family: Georgia, serif; font-size: 21px; line-height: 1.2; }
.portada-tipografica-config small { color: #b7b7b7; font: 13px/1.35 Georgia, serif; }
.resumen-biblioteca-compacto { width: fit-content; padding-right: 24px; }
.portada-proyecto.con-imagen { padding: 0; overflow: hidden; background: #111; }
.imagen-portada-proyecto { width: 100%; height: 100%; object-fit: cover; }
.subtitulo-portada { max-width: 90%; margin-top: 14px; color: #bbb; font: 14px/1.4 Georgia, serif; }
.subtitulo-tarjeta-proyecto { margin-bottom: 5px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.muestra-cita blockquote { position: relative; }
.muestra-cita blockquote p { margin: 0; }
.muestra-cita blockquote cite { display: block; margin-top: 8px; font-size: .9em; font-style: normal; text-align: right; }
.muestra-cita.estilo-apa7 blockquote { margin-left: 1.27cm; line-height: 2; }
.muestra-cita.estilo-mla9 blockquote { margin-left: 2.54cm; line-height: 2; }
.muestra-cita.estilo-chicago blockquote { margin-left: 1.27cm; padding-left: 14px; border-left: 1px solid var(--texto); line-height: 1.55; }
.muestra-cita.estilo-chicago blockquote cite { margin-top: 15px; padding-top: 9px; border-top: 1px solid var(--borde); text-align: left; font-size: .78em; }

/* Previsualización e impresión */
.pagina-previsualizacion { background: #dedede; counter-reset: pagina; }
.barra-previsualizacion { height: 66px; padding: 0 22px; background: var(--superficie); border-bottom: 1px solid var(--borde); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 30; }
.barra-previsualizacion > div { display: flex; align-items: center; gap: 11px; }
.barra-previsualizacion > div > div { display: flex; flex-direction: column; }
.barra-previsualizacion span { color: var(--texto-secundario); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.documento-previsualizado { padding: 36px 20px; display: flex; flex-direction: column; align-items: center; gap: 28px; font-family: var(--fuente-documento); }
.pagina-impresion {
    width: var(--ancho-pagina);
    min-height: var(--alto-pagina);
    padding: var(--margen-superior) var(--margen-derecho) var(--margen-inferior) var(--margen-izquierdo);
    background: #fff;
    color: #000;
    box-shadow: 0 5px 28px rgba(0,0,0,.16);
    position: relative;
    counter-increment: pagina;
    display: flex;
    flex-direction: column;
}
.contenido-pagina { flex: 1; }
.portada-impresion .contenido-pagina { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.portada-impresion h1 { max-width: 80%; margin: 0; font-size: 34pt; line-height: 1.15; }
.portada-impresion h2 { max-width: 76%; margin: 16px 0 0; font-size: 18pt; line-height: 1.35; font-weight: 400; }
.portada-impresion p { margin-top: 34px; font-size: 14pt; }
.imagen-portada-impresion { width: min(100%, 12.5cm); max-height: 15.5cm; margin: 0 auto 28px; object-fit: contain; }
.pagina-indice h1 { margin: 0 0 30px; font-size: 24pt; }
.indice-previsualizacion { list-style: none; padding: 0; }
.indice-previsualizacion li { margin: 8px 0; }
.indice-previsualizacion li.nivel-2 { padding-left: 24px; }
.indice-previsualizacion li.nivel-3 { padding-left: 48px; }
.indice-previsualizacion a { display: flex; align-items: baseline; gap: 8px; }
.puntos-indice { flex: 1; border-bottom: 1px dotted #777; }
.flujo-documento { font-size: 12pt; line-height: 1.55; }
.flujo-documento h1 { margin: 24px 0 12px; font-size: 24pt; line-height: 1.2; }
.flujo-documento h2 { margin: 20px 0 10px; font-size: 18pt; line-height: 1.25; }
.flujo-documento h3 { margin: 16px 0 8px; font-size: 14pt; line-height: 1.3; }
.bloque-texto-previsualizado p { margin: 0 0 12pt; text-align: justify; }
.cita-academica { margin: 18px 0 18px 1.27cm; line-height: 2; }
.cita-academica.estilo-mla9 { margin-left: 2.54cm; }
.cita-academica.estilo-chicago { padding-left: 14px; border-left: 1px solid #000; }
.formula-academica { margin: 24px 0; text-align: center; font-size: 12pt; overflow-x: auto; }
.flujo-documento figure { margin: 24px auto; text-align: center; }
.flujo-documento figure img { max-height: 17cm; margin: auto; object-fit: contain; }
.flujo-documento figcaption { margin-top: 8px; font-size: 10pt; font-style: italic; }
.pie-pagina { min-height: 24px; margin-top: 18px; padding-top: 8px; border-top: 1px solid #ddd; display: flex; align-items: center; justify-content: space-between; font-size: 9pt; }
.pie-pagina.centro { justify-content: center; gap: 24px; }
.pie-pagina.derecha { justify-content: flex-end; gap: 24px; }
.numero-pagina::after { content: counter(pagina); }
.documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido { height: var(--alto-pagina); min-height: var(--alto-pagina); overflow: hidden; box-sizing: border-box; }
.documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido > .contenido-pagina { min-height: 0; overflow: hidden; }
body.vista-continua .documento-previsualizado { padding: 0; gap: 0; }
body.vista-continua .pagina-impresion { box-shadow: none; border-bottom: 1px dashed #aaa; }


/* Mejoras editoriales 1.3.0 */
.elemento-estructura.activo-por-scroll {
    background: #000;
    color: #fff;
    box-shadow: inset 3px 0 0 #000;
}
.elemento-estructura.activo-por-scroll .texto-estructura small,
.elemento-estructura.activo-por-scroll > svg,
.elemento-estructura.activo-por-scroll .asa-bloque { color: #d7d7d7; }
.elemento-estructura.activo-por-scroll .acciones-estructura { opacity: 1; }
.elemento-estructura.activo-por-scroll .acciones-estructura button { color: #fff; }
.elemento-estructura.activo-por-scroll .acciones-estructura button:hover { background: #252525; }
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll { background: #fff; color: #000; }
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll .texto-estructura small,
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll > svg,
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll .asa-bloque { color: #444; }
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll .acciones-estructura button { color: #000; }
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll .acciones-estructura button:hover { background: #e5e5e5; }

.indice-editor li strong { min-width: 44px; font: inherit; font-weight: 700; }
.indice-editor li span { min-width: 0; }

.fuente-cita-editor,
.fuente-cita-academica {
    display: block;
    margin-top: 10px;
    font-size: .88em;
    line-height: 1.45;
    font-style: normal;
    text-align: right;
}
.bloque-cita.estilo-cita-chicago .fuente-cita-editor,
.cita-academica.estilo-chicago .fuente-cita-academica { text-align: left; }
.texto-cita-academica > :first-child { margin-top: 0; }
.texto-cita-academica > :last-child { margin-bottom: 0; }

.fuente-cita-componente {
    padding: 16px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie-secundaria);
}
.fuente-cita-componente.oculto { display: none; }
.cabecera-fuente-cita { margin-bottom: 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.cabecera-fuente-cita > div { display: flex; flex-direction: column; gap: 3px; }
.cabecera-fuente-cita small { color: var(--texto-secundario); font-size: 11px; }
.cabecera-fuente-cita svg { width: 18px; }
.rejilla-fuente-cita { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.campo-fuente-ancho { grid-column: 1 / -1; }
.vista-fuente-cita { margin-top: 14px; padding: 12px; border-left: 2px solid var(--texto); background: var(--superficie); display: flex; flex-direction: column; gap: 7px; }
.vista-fuente-cita > span { color: var(--texto-secundario); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.vista-fuente-cita cite { font-family: Georgia, serif; font-size: 12px; font-style: normal; line-height: 1.5; }

.campos-principales-libro { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 22px; }
.rejilla-imagenes-libro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tarjeta-imagen-libro { min-width: 0; padding: 16px; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie-secundaria); }
.encabezado-imagen-libro { margin-bottom: 15px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.encabezado-imagen-libro > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.encabezado-imagen-libro small { color: var(--texto-secundario); font-size: 11px; line-height: 1.4; }
.encabezado-imagen-libro svg { width: 18px; flex: 0 0 18px; }
.cuerpo-imagen-libro { display: flex; align-items: flex-start; gap: 14px; }
.controles-imagen-libro { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.controles-imagen-libro > small { color: var(--texto-secundario); font-size: 10px; line-height: 1.45; }
.controles-imagen-libro .interruptor { margin-top: 2px; align-items: flex-start; }
.controles-imagen-libro .interruptor > span { flex: 0 0 42px; }
.controles-imagen-libro .interruptor strong { font-size: 11px; }
.controles-imagen-libro .interruptor small { font-size: 10px; }
.tarjeta-imagen-libro .vista-previa-portada-config { width: 112px; height: 179px; flex: 0 0 112px; padding: 14px 10px; box-shadow: 5px 7px 14px rgba(0,0,0,.13); }
.tarjeta-imagen-libro .portada-tipografica-config span { font-size: 14px; }
.tarjeta-imagen-libro .portada-tipografica-config small { font-size: 10px; }
.vista-previa-miniatura-config {
    width: 126px;
    height: 158px;
    flex: 0 0 126px;
    border: 1px solid var(--borde);
    border-radius: 9px;
    background: #090909;
    color: #fff;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.vista-previa-miniatura-config > img { width: 100%; height: 100%; object-fit: cover; }
.miniatura-tipografica-config { padding: 12px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.miniatura-tipografica-config span { font: 700 15px/1.25 Georgia, serif; }
.miniatura-tipografica-config small { color: #aaa; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }

.muestra-indice-config { margin-top: 22px; padding: 18px; border: 1px solid var(--borde); border-radius: 10px; }
.muestra-indice-config > span { display: block; margin-bottom: 14px; color: var(--texto-secundario); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.muestra-indice-config > div { margin: 7px 0; display: flex; align-items: baseline; gap: 8px; font-family: Georgia, serif; }
.muestra-indice-config > div.nivel-2 { padding-left: 24px; }
.muestra-indice-config > div.nivel-3 { padding-left: 48px; }
.muestra-indice-config strong { min-width: 48px; }
.muestra-indice-config em { font-style: normal; }
.muestra-indice-config i { flex: 1; border-bottom: 1px dotted var(--texto-secundario); }
.muestra-indice-config small { font-size: 12px; }

.indice-previsualizacion li { break-inside: avoid; page-break-inside: avoid; }
.indice-previsualizacion a { color: inherit; text-decoration: none; }
.numero-apartado-indice { min-width: 52px; font-weight: 700; }
.titulo-apartado-indice { min-width: 0; }
.pagina-destino-indice { min-width: 2.8em; text-align: right; font-variant-numeric: tabular-nums; }
.pagina-indice.continuacion-indice h1 { font-size: 18pt; }
.documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice,
.documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido {
    height: var(--alto-pagina);
    min-height: var(--alto-pagina);
    overflow: hidden;
    box-sizing: border-box;
}
.documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice > .contenido-pagina,
.documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido > .contenido-pagina {
    min-height: 0;
    overflow: hidden;
}

@media (max-width: 900px) {
    .rejilla-imagenes-libro { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .campos-principales-libro { grid-template-columns: 1fr; }
    .cuerpo-imagen-libro { flex-direction: column; }
    .rejilla-fuente-cita { grid-template-columns: 1fr; }
    .campo-fuente-ancho { grid-column: auto; }
}

/* Notificaciones */
.contenedor-notificaciones { position: fixed; z-index: 2000; top: 18px; right: 18px; display: flex; flex-direction: column; gap: 8px; pointer-events: none; }
.notificacion { min-width: 280px; max-width: 420px; padding: 12px 14px; border: 1px solid var(--borde); border-radius: 10px; background: var(--superficie); color: var(--texto); box-shadow: var(--sombra); display: flex; align-items: center; gap: 9px; opacity: 0; transform: translateY(-8px); transition: opacity var(--transicion), transform var(--transicion); }
.notificacion.visible { opacity: 1; transform: translateY(0); }
.notificacion.error { border-color: #c10000; }
.notificacion.correcto { border-color: #148331; }
.notificacion span { font-size: 12px; }

.pagina-error { min-height: 100vh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 30px; }
.codigo-error { font-size: 88px; font-weight: 900; letter-spacing: -.08em; }
.pagina-error h1 { margin: 0; }
.pagina-error p { color: var(--texto-secundario); margin-bottom: 22px; }

@media (max-width: 1050px) {
    .sidebar-principal { width: 76px; flex-basis: 76px; }
    .marca-texto, .enlace-sidebar span, .datos-usuario-sidebar { display: none; }
    .marca-aplicacion, .enlace-sidebar { justify-content: center; }
    .usuario-sidebar { flex: 0 0 auto; }
    .acciones-editor-superior .boton-claro span { display: none; }
    .panel-estructura { min-width: 220px; }
}

@media (max-width: 820px) {
    .login-presentacion { display: none; }
    .login-panel { min-width: 0; }
    .cabecera-pagina { align-items: flex-start; flex-direction: column; }
    .contenido-principal { padding: 28px 20px; }
    .tarjeta-proyecto { width: calc(50% - 12px); }
    .configuracion-editorial { flex-direction: column; }
    .navegacion-configuracion { width: 100%; flex: 0 0 auto; border-right: 0; border-bottom: 1px solid var(--borde); flex-direction: row; overflow-x: auto; }
    .navegacion-configuracion button { flex: 0 0 auto; }
    .modal-configuracion { max-height: calc(100vh - 20px); }
    .rejilla-datos-libro { flex-direction: column; }
    .vista-previa-portada-config { align-self: center; }
    .editor-tres-paneles { overflow-x: auto; }
    .acciones-editor-superior .boton-claro { display: none; }
}

@media (max-width: 560px) {
    .sidebar-principal { display: none; }
    .tarjeta-proyecto { width: 100%; }
    .portada-proyecto { height: 310px; }
    .resumen-biblioteca { align-items: flex-start; flex-direction: column; }
    .linea-resumen { width: 100%; height: 1px; }
    .selector-tema { flex-direction: column; }
    .modal { padding: 10px; }
    .modal-contenido { padding: 18px; }
    .acciones-modal { flex-direction: column-reverse; }
    .acciones-modal .boton { width: 100%; }
}

@media print {
    @page { margin: 0; size: auto; }
    body { background: #fff !important; }
    .no-imprimir, .contenedor-notificaciones { display: none !important; }
    .documento-previsualizado { padding: 0; gap: 0; display: block; }
    .pagina-impresion { width: var(--ancho-pagina); min-height: var(--alto-pagina); margin: 0; box-shadow: none; page-break-after: always; break-after: page; }
    .pagina-impresion:last-child { page-break-after: auto; }
}

/* Actualizador de base de datos */
.pagina-actualizacion { min-height: 100vh; background: var(--superficie-secundaria); }
.pagina-instalador { min-height: 100vh; padding: 28px; display: flex; align-items: center; justify-content: center; }
.tarjeta-instalador { width: min(650px, 100%); padding: 32px; border: 1px solid var(--borde); border-radius: 16px; background: var(--superficie); box-shadow: var(--sombra); }
.tarjeta-instalador h1 { margin: 8px 0 10px; }
.tarjeta-instalador > p { color: var(--texto-secundario); line-height: 1.55; }
.tarjeta-instalador form { margin: 24px 0 18px; display: flex; flex-wrap: wrap; gap: 10px; }
.tarjeta-instalador > small { color: var(--texto-secundario); }
.alerta { margin: 18px 0; padding: 12px 14px; border: 1px solid var(--borde); border-radius: 9px; }
.alerta.correcta { border-color: #148331; }
.alerta.error { border-color: #c10000; }

/* Herramientas editoriales y componentes 1.4.0 */
#boton-filtro-componentes.filtro-activo {
    border-color: var(--texto);
    background: var(--texto);
    color: var(--superficie);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 14%, transparent);
}
.resumen-filtro-componentes { flex-wrap: wrap; padding-top: 7px; padding-bottom: 7px; }
.resumen-filtro-componentes small { margin-left: auto; font-size: 9px; line-height: 1.3; text-align: right; }
.resumen-filtro-componentes.filtro-activo {
    border-color: var(--texto);
    background: var(--texto);
    color: var(--superficie);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 12%, transparent);
}
.resumen-filtro-componentes.filtro-activo strong,
.resumen-filtro-componentes.filtro-activo small { color: var(--superficie); }
.buscador-componentes input { padding-right: 37px; }
.buscador-componentes > button {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--texto-secundario);
    position: absolute;
    right: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.buscador-componentes > button:hover { background: var(--borde); color: var(--texto); }
.buscador-componentes > button svg { width: 13px; height: 13px; position: static; }

.panel-buscar-reemplazar {
    width: min(420px, calc(100% - 28px));
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie);
    box-shadow: 0 16px 42px rgba(0,0,0,.2);
    position: absolute;
    z-index: 70;
    top: 56px;
    right: 14px;
    display: none;
    flex-direction: column;
    gap: 11px;
}
.panel-buscar-reemplazar.visible { display: flex; }
.panel-buscar-reemplazar > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-buscar-reemplazar > header > div { display: flex; flex-direction: column; }
.panel-buscar-reemplazar > header span { color: var(--texto-secundario); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.panel-buscar-reemplazar > header strong { font-size: 14px; }
.campo-busqueda-editor { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.campo-busqueda-editor > span { font-size: 11px; font-weight: 700; }
.campo-busqueda-editor input { min-width: 0; height: 36px; padding: 0 10px; border: 1px solid var(--borde); border-radius: 7px; background: var(--superficie-secundaria); color: var(--texto); outline: none; }
.campo-busqueda-editor input:focus { border-color: var(--texto); box-shadow: 0 0 0 2px color-mix(in srgb, var(--texto) 10%, transparent); }
.campo-busqueda-editor small { min-width: 80px; color: var(--texto-secundario); font-size: 9px; text-align: right; }
.acciones-busqueda-editor { padding-top: 3px; display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.acciones-busqueda-editor > div { margin-right: auto; display: flex; gap: 3px; }
.acciones-busqueda-editor button { min-height: 32px; padding: 0 10px; border: 1px solid var(--borde); border-radius: 7px; background: var(--superficie); color: var(--texto); font-size: 10px; font-weight: 700; }
.acciones-busqueda-editor > div button { width: 32px; padding: 0; display: flex; align-items: center; justify-content: center; }
.acciones-busqueda-editor button.principal { border-color: var(--texto); background: var(--texto); color: var(--superficie); }
.acciones-busqueda-editor button:hover { transform: translateY(-1px); }
.acciones-busqueda-editor svg { width: 14px; height: 14px; }
.barra-formato button.activo { border-color: var(--texto); background: var(--texto); color: var(--superficie); }

.configuracion-imagen-componente,
.configuracion-tabla-componente {
    padding: 16px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie-secundaria);
}
.configuracion-imagen-componente.oculto,
.configuracion-tabla-componente.oculto { display: none; }
.selector-imagen-componente { min-height: 112px; border: 1px dashed var(--gris-300); border-radius: 10px; background: var(--superficie); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.selector-imagen-componente:hover { border-color: var(--texto); }
.selector-imagen-componente input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.selector-imagen-componente > span { width: 100%; padding: 15px; display: flex; align-items: center; justify-content: center; gap: 10px; text-align: left; }
.selector-imagen-componente > span > svg { width: 22px; height: 22px; flex: 0 0 22px; }
.selector-imagen-componente > span > strong,
.selector-imagen-componente > span > small { display: block; }
.selector-imagen-componente > span > small { color: var(--texto-secundario); font-size: 10px; }
.selector-imagen-componente img { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 8px; object-fit: cover; }
.selector-imagen-componente span span { min-width: 0; display: flex; flex-direction: column; }
.rejilla-configuracion-tabla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vista-tabla-componente { max-height: 210px; margin-top: 14px; padding: 10px; border: 1px solid var(--borde); border-radius: 9px; background: var(--superficie); overflow: auto; }

.tabla-editor { overflow-x: auto; }
.tabla-editor table,
.tabla-previsualizacion table,
.vista-tabla-componente table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.tabla-editor th, .tabla-editor td,
.tabla-previsualizacion th, .tabla-previsualizacion td,
.vista-tabla-componente th, .vista-tabla-componente td {
    min-width: 70px;
    padding: 8px 9px;
    border: 1px solid #222;
    vertical-align: top;
    overflow-wrap: anywhere;
}
.tabla-editor th,
.tabla-previsualizacion th,
.vista-tabla-componente th { background: #efefef; font-weight: 700; text-align: left; }
.vista-tabla-componente th, .vista-tabla-componente td { padding: 6px; font-size: 10px; }
.tabla-previsualizacion { margin: 18px 0; overflow: hidden; break-inside: avoid; page-break-inside: avoid; }

.opcion-numeracion-libro {
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid var(--borde);
    border-radius: 11px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.opcion-numeracion-libro > div { min-width: 0; display: flex; align-items: flex-start; gap: 10px; }
.opcion-numeracion-libro > div > svg { width: 19px; height: 19px; flex: 0 0 19px; margin-top: 2px; }
.opcion-numeracion-libro > div > div { display: flex; flex-direction: column; gap: 3px; }
.opcion-numeracion-libro small { color: var(--texto-secundario); font-size: 10px; line-height: 1.4; }
.opcion-numeracion-libro .campo-formulario { width: min(330px, 44%); flex: 0 0 auto; }

.bloque-bibliografia { margin-top: 38px; border-top: 1px dashed #888; }
.bibliografia-editor h1 { margin: 30px 0 24px; font-size: 24pt; }
.bibliografia-editor ol { margin: 0; padding: 0; list-style: none; }
.bibliografia-editor li,
.entrada-bibliografia-previsualizada {
    margin: 0 0 12pt;
    padding-left: 1.27cm;
    text-indent: -1.27cm;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.bibliografia-editor a,
.entrada-bibliografia-previsualizada a { color: inherit; text-decoration: underline; }
.titulo-bibliografia-previsualizacion { margin-top: 0 !important; }
.salto-pagina-bibliografia { display: none; }

.cabecera-bibliografia-config { margin-bottom: 16px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.cabecera-bibliografia-config h3 { margin-bottom: 5px; }
.cabecera-bibliografia-config p { margin: 0; color: var(--texto-secundario); font-size: 12px; line-height: 1.5; }
.interruptor-bibliografia { margin-bottom: 18px; padding: 13px; border: 1px solid var(--borde); border-radius: 10px; background: var(--superficie-secundaria); }
.lista-bibliografia-config { display: flex; flex-direction: column; gap: 12px; }
.registro-bibliografia-config { padding: 14px; border: 1px solid var(--borde); border-radius: 11px; background: var(--superficie-secundaria); }
.registro-bibliografia-config > header { margin-bottom: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.registro-bibliografia-config > header > div { min-width: 0; display: flex; flex-direction: column; }
.registro-bibliografia-config > header span { color: var(--texto-secundario); font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.registro-bibliografia-config > header strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.registro-bibliografia-config > header button { width: 30px; height: 30px; padding: 0; border: 1px solid var(--borde); border-radius: 7px; background: var(--superficie); color: var(--texto); display: flex; align-items: center; justify-content: center; }
.registro-bibliografia-config > header button:hover { border-color: var(--texto); }
.registro-bibliografia-config > header svg { width: 14px; height: 14px; }
.rejilla-registro-bibliografia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.campo-bibliografia-ancho { grid-column: 1 / -1; }
.vista-referencia-bibliografica { margin-top: 12px; padding: 11px 12px; border-left: 2px solid var(--texto); background: var(--superficie); }
.vista-referencia-bibliografica > span { color: var(--texto-secundario); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vista-referencia-bibliografica p { margin: 5px 0 0; font: 12px/1.5 Georgia, serif; overflow-wrap: anywhere; }
.vista-referencia-bibliografica a { color: inherit; }
.estado-bibliografia-vacia { min-height: 160px; padding: 24px; border: 1px dashed var(--borde); border-radius: 11px; color: var(--texto-secundario); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; }
.estado-bibliografia-vacia.oculto { display: none; }
.estado-bibliografia-vacia svg { width: 24px; height: 24px; }
.estado-bibliografia-vacia strong { color: var(--texto); }
.estado-bibliografia-vacia span { font-size: 11px; }

.numero-pagina::after { content: attr(data-numero); }

@media (max-width: 760px) {
    .campo-busqueda-editor { grid-template-columns: 1fr; }
    .campo-busqueda-editor small { text-align: left; }
    .opcion-numeracion-libro { align-items: stretch; flex-direction: column; }
    .opcion-numeracion-libro .campo-formulario { width: 100%; }
    .rejilla-registro-bibliografia { grid-template-columns: 1fr; }
    .campo-bibliografia-ancho { grid-column: auto; }
}

/* === Versión 1.5.0: aplicación a pantalla completa y administración SaaS === */
.pagina-aplicacion { height: 100vh; overflow: hidden; }
.pagina-aplicacion .aplicacion-con-sidebar { height: 100vh; min-height: 0; overflow: hidden; }
.pagina-aplicacion .sidebar-principal { height: 100%; min-height: 0; position: relative; top: auto; flex-shrink: 0; }
.pagina-aplicacion .contenido-principal { height: 100%; min-height: 0; overflow-y: auto; }
.etiqueta-panel-admin { margin: 2px 15px 18px; padding: 7px 10px; border: 1px solid var(--borde); border-radius: 9px; color: var(--texto-secundario); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contenido-admin { background: var(--fondo); }
.resumen-admin { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
.resumen-admin > div { min-width: 145px; flex: 1; border: 1px solid var(--borde); border-radius: 14px; padding: 18px; background: var(--superficie); display: flex; flex-direction: column; }
.resumen-admin strong { font-size: 26px; }
.resumen-admin span { color: var(--texto-secundario); font-size: 13px; }
.tabla-administracion-contenedor { border: 1px solid var(--borde); border-radius: 16px; background: var(--superficie); overflow: auto; }
.tabla-administracion { width: 100%; border-collapse: collapse; min-width: 920px; }
.tabla-administracion th { padding: 13px 16px; text-align: left; color: var(--texto-secundario); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid var(--borde); }
.tabla-administracion td { padding: 15px 16px; border-bottom: 1px solid var(--borde); vertical-align: middle; }
.tabla-administracion tbody tr:last-child td { border-bottom: 0; }
.tabla-administracion td > strong, .tabla-administracion td > small { display: block; }
.tabla-administracion td > small { margin-top: 3px; color: var(--texto-secundario); }
.estado-pago, .insignia { display: inline-flex; padding: 5px 9px; border-radius: 999px; border: 1px solid var(--borde); font-size: 11px; font-weight: 800; }
.estado-pago.correcto { background: #eaf8ef; border-color: #a8d9b9; color: #17642e; }
.estado-pago.pendiente { background: #fff4e5; border-color: #e7c99c; color: #754300; }
.acciones-tabla-admin { display: flex; justify-content: flex-end; gap: 5px; }
.enlace-suscripcion, .boton-texto { border: 0; padding: 0; background: transparent; color: var(--texto); font: inherit; font-weight: 750; text-decoration: underline; cursor: pointer; }
.interruptor-compacto { display: inline-flex; width: auto; }
.interruptor-compacto > div { display: none; }
.rejilla-formulario-doble { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.campo-ancho { grid-column: 1 / -1; }
.campo-desactivado { opacity: .45; }
.tarjeta-integracion { max-width: 880px; border: 1px solid var(--borde); border-radius: 18px; background: var(--superficie); padding: 24px; }
.tarjeta-integracion > header { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.tarjeta-integracion > header > div:nth-child(2) { flex: 1; }
.tarjeta-integracion h2, .tarjeta-integracion p { margin: 0; }
.tarjeta-integracion p { color: var(--texto-secundario); }
.logo-integracion { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--borde); border-radius: 13px; }
.bloque-webhook { display: flex; flex-direction: column; gap: 6px; padding: 14px; border: 1px solid var(--borde); border-radius: 12px; background: var(--fondo-secundario); }
.bloque-webhook code { overflow-wrap: anywhere; }
.acciones-formulario { display: flex; justify-content: flex-end; gap: 10px; }
.pagina-suscripcion { min-height: 100vh; background: #f2f2f2; }
.suscripcion-contenedor { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.tarjeta-suscripcion { width: min(480px, 100%); background: #fff; color: #000; padding: 38px; border: 1px solid #d8d8d8; border-radius: 20px; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.08); }
.tarjeta-suscripcion h1 { font-size: 34px; margin: 12px 0; }
.tarjeta-suscripcion p { color: #5b5b5b; line-height: 1.6; }
.precio-suscripcion { display: flex; align-items: baseline; justify-content: center; gap: 7px; margin: 24px 0; }
.precio-suscripcion strong { font-size: 34px; }
.enlace-secundario { display: inline-block; margin-top: 18px; color: inherit; }
@media (max-width: 760px) { .rejilla-formulario-doble { grid-template-columns: 1fr; } .campo-ancho { grid-column: auto; } }

/* Biblioteca: seis proyectos por fila y selector persistente */
.acciones-cabecera-proyectos { display: flex; align-items: center; gap: 10px; }
.selector-vista-proyectos { display: inline-flex; padding: 3px; border: 1px solid var(--borde); border-radius: 11px; background: var(--superficie); }
.selector-vista-proyectos button { width: 35px; height: 35px; border: 0; border-radius: 8px; background: transparent; color: var(--texto-secundario); display: grid; place-items: center; cursor: pointer; }
.selector-vista-proyectos button.activo { background: var(--texto); color: var(--superficie); }
.rejilla-proyectos.vista-cuadricula .tarjeta-proyecto { flex: 1 1 calc((100% - 120px) / 6); max-width: calc((100% - 120px) / 6); min-width: 145px; }
.rejilla-proyectos.vista-lista { flex-direction: column; gap: 10px; }
.rejilla-proyectos.vista-lista .tarjeta-proyecto { width: 100%; display: flex; align-items: stretch; border: 1px solid var(--borde); border-radius: 14px; overflow: hidden; background: var(--superficie); }
.rejilla-proyectos.vista-lista .portada-proyecto { width: 105px; min-width: 105px; aspect-ratio: 4 / 5; border-radius: 0; }
.rejilla-proyectos.vista-lista .datos-proyecto { flex: 1; padding: 16px; align-items: center; }
@media (max-width: 1500px) { .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto { flex-basis: calc((100% - 72px) / 4); max-width: calc((100% - 72px) / 4); } }
@media (max-width: 900px) { .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto { flex-basis: calc((100% - 24px) / 2); max-width: calc((100% - 24px) / 2); } }

/* Editor 1.5.0: formularios, tablas y configuración contenida */
[hidden] { display: none !important; }
.modal-configuracion { height: min(760px, calc(100vh - 34px)); max-height: calc(100vh - 34px); display: flex; flex-direction: column; }
.modal-configuracion > .modal-cabecera { flex: 0 0 auto; }
.configuracion-editorial { min-height: 0; flex: 1; overflow: hidden; }
.navegacion-configuracion { height: 100%; min-height: 0; overflow-y: auto; flex: 0 0 210px; }
.contenido-configuracion { height: 100%; min-height: 0; overflow: hidden; padding: 0; }
.contenido-configuracion > section { min-height: 0; overflow-y: auto; padding: 26px; }
.contenido-configuracion > section.activo { display: block; flex: 1; }
.contenido-configuracion .acciones-modal { position: relative; z-index: 3; flex: 0 0 auto; margin: 0; padding: 16px 26px; border-top: 1px solid var(--borde); background: var(--superficie); }
.registro-bibliografia-config > header { display: flex; align-items: center; gap: 8px; padding: 0; }
.cabecera-acordeon-bibliografia { flex: 1; border: 0; background: transparent; padding: 14px; display: flex; align-items: center; justify-content: space-between; text-align: left; color: inherit; cursor: pointer; }
.cabecera-acordeon-bibliografia > div { display: flex; flex-direction: column; }
.cabecera-acordeon-bibliografia svg { transition: transform .2s ease; }
.registro-bibliografia-config.abierto .cabecera-acordeon-bibliografia svg { transform: rotate(180deg); }
.registro-bibliografia-config > header > [data-eliminar-bibliografia] { margin-right: 10px; }
.cuerpo-acordeon-bibliografia { display: none; padding: 0 14px 14px; }
.registro-bibliografia-config.abierto .cuerpo-acordeon-bibliografia { display: block; }
.bloque-tabla-editor { position: relative; }
.controles-tabla-bloque { position: absolute; left: 9px; bottom: 9px; display: flex; gap: 5px; opacity: 0; transform: translateY(3px); pointer-events: none; transition: .16s ease; z-index: 4; }
.bloque-tabla-editor:hover .controles-tabla-bloque, .bloque-tabla-editor.activo .controles-tabla-bloque { opacity: 1; transform: none; pointer-events: auto; }
.controles-tabla-bloque button { min-width: 28px; height: 28px; border: 1px solid #cfcfcf; border-radius: 7px; background: #fff; color: #000; display: inline-flex; align-items: center; justify-content: center; gap: 4px; font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.controles-tabla-bloque svg { width: 14px !important; height: 14px !important; }
.aviso-reduccion-tabla { display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; border: 1px solid #d7b36b; border-radius: 10px; background: #fff8e8; color: #5d3b00; font-size: 12px; }
.tabla-editor table[data-estilo="intercalado"] tbody tr:nth-child(even) td,
.vista-tabla-componente table[data-estilo="intercalado"] tr:nth-child(even) td,
.bloque-tabla table[data-estilo="intercalado"] tbody tr:nth-child(even) td { background: #f1f1f1; }
.tabla-editor table[data-estilo="cabecera"] tbody td,
.tabla-editor table[data-estilo="sin_sombreado"] tbody td { background: transparent; }
.tabla-editor table th, .vista-tabla-componente table th, .bloque-tabla table th { background: #dedede !important; color: #000; font-weight: 800; }
@media (max-width: 760px) {
    .modal-configuracion { height: calc(100vh - 14px); max-height: calc(100vh - 14px); }
    .configuracion-editorial { flex-direction: column; }
    .navegacion-configuracion { flex: 0 0 auto; height: auto; max-height: 112px; }
}
.tabla-previsualizacion table[data-estilo="intercalado"] tbody tr:nth-child(even) td { background: #f1f1f1; }
.tabla-previsualizacion table[data-estilo="cabecera"] tbody td,
.tabla-previsualizacion table[data-estilo="sin_sombreado"] tbody td { background: transparent; }
.tabla-previsualizacion table th { background: #dedede !important; color: #000; font-weight: 800; }
.rejilla-proyectos.vista-cuadricula .portada-proyecto { height: auto; aspect-ratio: 4 / 5; padding: 22px 15px; }
.rejilla-proyectos.vista-cuadricula .titulo-portada { font-size: clamp(16px, 1.2vw, 22px); }
@media (min-width: 1151px) and (max-width: 1500px) {
    .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto { flex-basis: calc((100% - 120px) / 6); max-width: calc((100% - 120px) / 6); }
}

/* === Versión 1.5.1: tablas externas, citas bibliográficas y navegación editorial === */

/* Los controles de la tabla viven fuera de la cuadrícula y nunca cubren celdas. */
.bloque-tabla-editor { overflow: visible; }
.bloque-tabla-editor .tabla-editor { position: relative; }
.controles-tabla-bloque {
    left: -43px;
    bottom: 7px;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    transform: translateX(3px);
}
.bloque-tabla-editor:hover .controles-tabla-bloque,
.bloque-tabla-editor.activo .controles-tabla-bloque { transform: none; }
.controles-tabla-bloque button {
    width: 36px;
    min-width: 36px;
    height: 30px;
    padding: 0;
    flex-direction: column;
    gap: 0;
    line-height: 1;
}
.controles-tabla-bloque button span { font-size: 8px; line-height: 1; }

/* El título detectado por scroll es gris; el elegido por clic permanece negro. */
.elemento-estructura.activo-por-scroll {
    background: #ececec;
    color: #111;
    box-shadow: inset 3px 0 0 #bdbdbd;
}
.elemento-estructura.activo-por-scroll .texto-estructura small,
.elemento-estructura.activo-por-scroll > svg,
.elemento-estructura.activo-por-scroll .asa-bloque { color: #666; }
.elemento-estructura.activo-por-scroll .acciones-estructura button { color: #111; }
.elemento-estructura.activo-por-scroll .acciones-estructura button:hover { background: #d8d8d8; }
.elemento-estructura.seleccionado-por-clic,
.elemento-estructura.seleccionado-por-clic.activo-por-scroll {
    background: #000;
    color: #fff;
    box-shadow: inset 3px 0 0 #000;
}
.elemento-estructura.seleccionado-por-clic .texto-estructura small,
.elemento-estructura.seleccionado-por-clic > svg,
.elemento-estructura.seleccionado-por-clic .asa-bloque { color: #d7d7d7; }
.elemento-estructura.seleccionado-por-clic .acciones-estructura { opacity: 1; }
.elemento-estructura.seleccionado-por-clic .acciones-estructura button { color: #fff; }
.elemento-estructura.seleccionado-por-clic .acciones-estructura button:hover { background: #252525; }
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll {
    background: #2c2c2c;
    color: #f2f2f2;
    box-shadow: inset 3px 0 0 #5a5a5a;
}
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll .texto-estructura small,
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll > svg,
html[data-tema="oscuro"] .elemento-estructura.activo-por-scroll .asa-bloque { color: #aaa; }
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic,
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic.activo-por-scroll {
    background: #fff;
    color: #000;
    box-shadow: inset 3px 0 0 #fff;
}
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic .texto-estructura small,
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic > svg,
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic .asa-bloque { color: #444; }
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic .acciones-estructura button { color: #000; }

/* Selector de una fuente ya registrada en Bibliografía. */
.selector-fuente-bibliografica { position: relative; }
.campo-buscador-fuente { position: relative; }
.campo-buscador-fuente > svg {
    width: 15px;
    height: 15px;
    position: absolute;
    left: 12px;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    color: var(--texto-secundario);
    pointer-events: none;
}
.campo-buscador-fuente input { padding-left: 37px; }
.resultados-fuentes-cita {
    width: 100%;
    max-height: 228px;
    margin-top: 6px;
    padding: 6px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie);
    box-shadow: 0 14px 34px rgba(0,0,0,.14);
    position: absolute;
    z-index: 130;
    left: 0;
    top: 100%;
    overflow-y: auto;
    display: none;
}
.resultados-fuentes-cita.visible { display: flex; flex-direction: column; gap: 3px; }
.resultados-fuentes-cita button {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--texto);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 3px;
    text-align: left;
    cursor: pointer;
}
.resultados-fuentes-cita button:hover,
.resultados-fuentes-cita button:focus-visible { background: var(--superficie-secundaria); outline: none; }
.resultados-fuentes-cita button strong {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 12px;
}
.resultados-fuentes-cita button small { color: var(--texto-secundario); font-size: 10px; }
.estado-fuentes-cita { padding: 16px 12px; color: var(--texto-secundario); font-size: 11px; line-height: 1.45; text-align: center; }
.fuente-cita-seleccionada {
    min-height: 58px;
    margin-top: 12px;
    padding: 10px 11px;
    border: 1px solid var(--texto);
    border-radius: 10px;
    background: var(--superficie);
    display: flex;
    align-items: center;
    gap: 10px;
}
.fuente-cita-seleccionada.oculto { display: none; }
.fuente-cita-seleccionada > svg { width: 18px; height: 18px; flex: 0 0 18px; }
.fuente-cita-seleccionada > div { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.fuente-cita-seleccionada strong,
.fuente-cita-seleccionada small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fuente-cita-seleccionada strong { font-size: 12px; }
.fuente-cita-seleccionada small { color: var(--texto-secundario); font-size: 10px; }
.fuente-cita-seleccionada button {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--borde);
    border-radius: 7px;
    background: var(--superficie-secundaria);
    color: var(--texto);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.fuente-cita-seleccionada button svg { width: 14px; height: 14px; }
.campo-pagina-cita { margin-top: 12px; }

/* Acordeones bibliográficos compactos: solo título, alineado a la izquierda. */
.lista-bibliografia-config { gap: 8px; }
.registro-bibliografia-config { padding: 0; overflow: hidden; }
.registro-bibliografia-config > header { min-height: 46px; margin: 0; gap: 4px; }
.cabecera-acordeon-bibliografia { min-width: 0; min-height: 46px; padding: 9px 10px 9px 13px; gap: 10px; }
.cabecera-acordeon-bibliografia strong {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 12px;
    text-align: left;
}
.registro-bibliografia-config > header > [data-eliminar-bibliografia] { margin: 0 8px 0 0; flex: 0 0 30px; }
.cuerpo-acordeon-bibliografia { padding: 4px 13px 13px; border-top: 1px solid var(--borde); }

/* Vista de proyectos en lista: miniatura, texto y menú en una sola línea compacta. */
.rejilla-proyectos.vista-lista .tarjeta-proyecto {
    min-height: 78px;
    flex-direction: row;
    align-items: center;
    gap: 0;
    padding: 0;
    overflow: visible;
}
.rejilla-proyectos.vista-lista .portada-proyecto {
    width: 58px;
    min-width: 58px;
    height: 72px;
    min-height: 72px;
    aspect-ratio: auto;
    margin: 3px 0 3px 3px;
    padding: 7px 5px;
    border-radius: 9px;
    box-shadow: none;
    overflow: hidden;
}
.rejilla-proyectos.vista-lista .portada-proyecto:hover { transform: none; box-shadow: none; }
.rejilla-proyectos.vista-lista .portada-proyecto .titulo-portada { font-size: 8px; line-height: 1.15; }
.rejilla-proyectos.vista-lista .portada-proyecto .subtitulo-portada,
.rejilla-proyectos.vista-lista .portada-proyecto small,
.rejilla-proyectos.vista-lista .portada-proyecto .lomo-portada { display: none; }
.rejilla-proyectos.vista-lista .datos-proyecto {
    min-width: 0;
    flex: 1;
    padding: 10px 12px 10px 14px;
    align-items: center;
    gap: 14px;
}
.rejilla-proyectos.vista-lista .datos-proyecto > div:first-child { min-width: 0; flex: 1; }
.rejilla-proyectos.vista-lista .datos-proyecto h2 { margin: 0 0 3px; font-size: 14px; }
.rejilla-proyectos.vista-lista .subtitulo-tarjeta-proyecto { margin: 0 !important; color: var(--texto-secundario); font-size: 11px; }
.rejilla-proyectos.vista-lista .datos-proyecto > div:first-child > p:not(.subtitulo-tarjeta-proyecto) { display: none; }
.rejilla-proyectos.vista-lista .menu-contextual { flex: 0 0 auto; }

@media (max-width: 760px) {
    .controles-tabla-bloque { left: -35px; }
    .resultados-fuentes-cita { position: static; box-shadow: none; }
    .rejilla-proyectos.vista-lista .portada-proyecto { width: 50px; min-width: 50px; height: 64px; min-height: 64px; }
}
/* Los resultados forman parte del flujo del modal para no quedar recortados por su scroll interno. */
.resultados-fuentes-cita { position: static; box-shadow: none; }

/* Quijotext 1.6.0: coautoría, invitaciones y lectura compartida. */
.boton-alertas-coautoria,
.alerta-coautoria-editor {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.boton-alertas-coautoria:hover,
.alerta-coautoria-editor:hover { color: var(--texto); background: var(--superficie-secundaria); border-color: var(--borde); }
.contador-invitaciones {
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid var(--superficie);
    border-radius: 999px;
    background: var(--negro);
    color: var(--blanco);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: -3px;
    right: -4px;
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
}
html[data-tema="oscuro"] .contador-invitaciones { background: var(--blanco); color: var(--negro); }
.contador-invitaciones.oculto { display: none; }

.modal-invitaciones { width: min(720px, 100%); padding: 0; overflow: hidden; }
.modal-invitaciones > .modal-cabecera { margin: 0; padding: 22px 24px; border-bottom: 1px solid var(--borde); }
.lista-invitaciones-coautoria { max-height: min(570px, calc(100vh - 170px)); padding: 16px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
.tarjeta-invitacion-coautoria {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie);
    display: flex;
    align-items: center;
    gap: 13px;
}
.miniatura-invitacion-obra {
    width: 52px;
    height: 65px;
    flex: 0 0 52px;
    border: 1px solid var(--borde);
    border-radius: 7px;
    background: var(--superficie-secundaria);
    overflow: hidden;
    display: grid;
    place-items: center;
}
.miniatura-invitacion-obra img { width: 100%; height: 100%; object-fit: cover; }
.miniatura-invitacion-obra svg { width: 21px; height: 21px; color: var(--texto-secundario); }
.datos-invitacion-coautoria { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.datos-invitacion-coautoria > span { color: var(--texto-secundario); font-size: 11px; }
.datos-invitacion-coautoria strong,
.datos-invitacion-coautoria small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.datos-invitacion-coautoria strong { font-size: 14px; }
.datos-invitacion-coautoria small { color: var(--texto-secundario); font-size: 11px; }
.acciones-invitacion-coautoria { flex: 0 0 auto; display: flex; gap: 8px; }
.acciones-invitacion-coautoria .boton { min-height: 36px; padding: 7px 12px; font-size: 12px; }
.estado-invitaciones-vacio { min-height: 240px; color: var(--texto-secundario); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; text-align: center; }
.estado-invitaciones-vacio svg { width: 30px; height: 30px; margin-bottom: 5px; }
.estado-invitaciones-vacio strong { color: var(--texto); }
.estado-invitaciones-vacio span { max-width: 340px; font-size: 12px; }

.etiqueta-coautoria-editor,
.etiqueta-coautoria-tarjeta {
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    font-weight: 750;
    white-space: nowrap;
}
.etiqueta-coautoria-editor { padding: 4px 7px; }
.etiqueta-coautoria-editor b { color: var(--texto); font-weight: 700; }
.etiqueta-coautoria-tarjeta { padding: 5px 8px; position: absolute; z-index: 3; top: 8px; left: 8px; background: var(--superficie); box-shadow: 0 5px 18px rgba(0,0,0,.1); }
.etiqueta-coautoria-editor svg,
.etiqueta-coautoria-tarjeta svg { width: 13px; height: 13px; }
.tarjeta-proyecto { position: relative; }

/* Pestaña Autor dentro de la configuración editorial. */
.cabecera-autoria-config { margin-bottom: 18px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.cabecera-autoria-config p { max-width: 620px; margin: 0; color: var(--texto-secundario); }
.cabecera-autoria-config > svg { width: 24px; height: 24px; color: var(--texto-secundario); }
.autor-principal-config,
.lista-coautorias-config article {
    padding: 12px;
    border: 1px solid var(--borde);
    border-radius: 11px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: center;
    gap: 11px;
}
.avatar-autor-config,
.avatar-coautor-config {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 50%;
    background: var(--negro);
    color: var(--blanco);
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 850;
}
html[data-tema="oscuro"] .avatar-autor-config,
html[data-tema="oscuro"] .avatar-coautor-config { background: var(--blanco); color: var(--negro); }
.avatar-autor-config img,
.avatar-coautor-config img { width: 100%; height: 100%; object-fit: cover; }
.autor-principal-config > div,
.lista-coautorias-config article > div { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.autor-principal-config small { color: var(--texto-secundario); font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.autor-principal-config span:not(.avatar-autor-config),
.lista-coautorias-config small { color: var(--texto-secundario); font-size: 11px; }
.formulario-invitar-coautor { margin-top: 18px; padding: 16px; border: 1px dashed var(--borde); border-radius: 11px; }
.campo-invitacion-coautor { display: flex; align-items: center; gap: 8px; position: relative; }
.campo-invitacion-coautor > svg { width: 16px; position: absolute; left: 12px; color: var(--texto-secundario); }
.campo-invitacion-coautor input { min-width: 0; flex: 1; padding-left: 38px; }
.campo-invitacion-coautor .boton { flex: 0 0 auto; }
.lista-coautorias-config { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.lista-coautorias-config article { background: var(--superficie); }
.estado-coautoria { padding: 4px 7px; border-radius: 999px; background: var(--superficie-secundaria); color: var(--texto-secundario); font-size: 10px; font-weight: 750; white-space: nowrap; }
.estado-coautoria.estado-aceptada { background: var(--negro); color: var(--blanco); }
html[data-tema="oscuro"] .estado-coautoria.estado-aceptada { background: var(--blanco); color: var(--negro); }

/* Compartir obra. */
.boton-compartir-obra { border-color: var(--borde); background: var(--superficie); }
.boton-compartir-obra:hover { border-color: var(--texto); }
.modal-compartir-obra { width: min(620px, 100%); }
.selector-visibilidad-obra { display: flex; gap: 10px; }
.selector-visibilidad-obra label { min-width: 0; flex: 1; cursor: pointer; }
.selector-visibilidad-obra input { position: absolute; opacity: 0; pointer-events: none; }
.selector-visibilidad-obra label > span {
    min-height: 105px;
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 11px;
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    transition: border-color var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.selector-visibilidad-obra label > span > svg { margin-bottom: 5px; color: var(--texto-secundario); }
.selector-visibilidad-obra small { color: var(--texto-secundario); font-size: 11px; }
.selector-visibilidad-obra input:checked + span { border-color: var(--texto); box-shadow: 0 0 0 2px color-mix(in srgb, var(--texto) 8%, transparent); background: var(--superficie-secundaria); }
.campo-clave-compartir.oculto,
.enlace-generado-obra.oculto { display: none; }
.enlace-generado-obra { padding: 14px; border: 1px solid var(--borde); border-radius: 11px; background: var(--superficie-secundaria); display: flex; flex-direction: column; gap: 8px; }
.enlace-generado-obra > span { font-size: 12px; font-weight: 750; }
.enlace-generado-obra > div { display: flex; gap: 8px; }
.enlace-generado-obra input { min-width: 0; flex: 1; padding: 10px 11px; border: 1px solid var(--borde); border-radius: 9px; background: var(--superficie); }
.enlace-generado-obra .boton { min-height: 40px; }

/* Lector público de una obra. */
.pagina-obra-publica { min-height: 100vh; background: #dedede; }
.barra-obra-publica {
    min-height: 68px;
    padding: 9px 22px;
    border-bottom: 1px solid var(--borde);
    background: var(--superficie);
    color: var(--texto);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    position: sticky;
    top: 0;
    z-index: 40;
}
.identidad-obra-publica { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; }
.barra-obra-publica > div { min-width: 0; flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; }
.barra-obra-publica > div .sobrelinea { margin: 0; font-size: 8px; }
.barra-obra-publica > div strong { max-width: min(600px, 50vw); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.autoria-publica-obra {
    width: min(960px, calc(100% - 40px));
    margin: 12px auto 42px;
    padding: 30px;
    border: 1px solid rgba(0,0,0,.14);
    border-radius: 16px;
    background: #fff;
    color: #000;
    box-shadow: 0 14px 38px rgba(0,0,0,.08);
}
.encabezado-autoria-publica { margin-bottom: 20px; }
.encabezado-autoria-publica h2 { margin: 0; font-size: 25px; letter-spacing: -.035em; }
.lista-autores-publicos { display: flex; flex-direction: column; gap: 12px; }
.tarjeta-autor-publico { padding: 17px; border: 1px solid #dfdfdf; border-radius: 12px; background: #fff; display: flex; align-items: flex-start; gap: 16px; }
.avatar-autor-publico { width: 66px; height: 66px; flex: 0 0 66px; border-radius: 50%; background: #000; color: #fff; overflow: hidden; display: grid; place-items: center; font-size: 23px; font-weight: 850; }
.avatar-autor-publico img { width: 100%; height: 100%; object-fit: cover; }
.tarjeta-autor-publico > div:last-child { min-width: 0; flex: 1; }
.etiqueta-autoria { color: #6c6c6c; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tarjeta-autor-publico h3 { margin: 3px 0 5px; font-size: 17px; }
.tarjeta-autor-publico p { max-width: 720px; margin: 0; color: #555; font-size: 13px; line-height: 1.65; }
.pie-publico-quijotext { padding: 20px; background: #000; color: #fff; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; }
.pie-publico-quijotext span { color: #aaa; }
.acceso-obra-privada,
.estado-obra-publica { min-height: 100vh; padding: 28px; display: flex; align-items: center; justify-content: center; text-align: center; background: #f2f2f2; color: #000; }
.tarjeta-acceso-obra,
.estado-obra-publica {
    flex-direction: column;
}
.tarjeta-acceso-obra { width: min(430px, 100%); padding: 34px; border: 1px solid #ddd; border-radius: 16px; background: #fff; box-shadow: 0 18px 55px rgba(0,0,0,.09); text-align: left; }
.tarjeta-acceso-obra > .marca-simbolo { margin-bottom: 20px; }
.tarjeta-acceso-obra h1 { margin: 0 0 6px; font-size: 30px; letter-spacing: -.04em; }
.tarjeta-acceso-obra > p { color: #666; }
.tarjeta-acceso-obra > small { display: block; margin-top: 18px; color: #777; text-align: center; }
.subtitulo-acceso-obra { margin-top: 0 !important; font-family: Georgia, serif; }
.estado-obra-publica h1 { margin: 18px 0 6px; }
.estado-obra-publica p { margin: 0; color: #666; }

@media (max-width: 760px) {
    .tarjeta-invitacion-coautoria { align-items: flex-start; flex-wrap: wrap; }
    .datos-invitacion-coautoria { min-width: calc(100% - 70px); }
    .acciones-invitacion-coautoria { width: 100%; padding-left: 65px; }
    .acciones-invitacion-coautoria .boton { flex: 1; }
    .campo-invitacion-coautor { align-items: stretch; flex-direction: column; }
    .campo-invitacion-coautor > svg { top: 14px; }
    .lista-coautorias-config article { align-items: flex-start; flex-wrap: wrap; }
    .estado-coautoria { margin-left: 51px; }
    .selector-visibilidad-obra { flex-direction: column; }
    .selector-visibilidad-obra label > span { min-height: 88px; }
    .barra-obra-publica { padding: 9px 12px; }
    .barra-obra-publica > div { align-items: flex-start; text-align: left; }
    .barra-obra-publica > div strong { max-width: 42vw; }
    .barra-obra-publica .boton { width: 40px; min-width: 40px; padding: 0; }
    .barra-obra-publica .boton svg { margin: 0; }
    .barra-obra-publica .boton { font-size: 0; }
    .autoria-publica-obra { width: calc(100% - 20px); padding: 20px; }
    .tarjeta-autor-publico { flex-direction: column; }
}

@media (max-width: 560px) {
    .etiqueta-coautoria-editor { display: none; }
    .modal-invitaciones { padding: 0; }
    .enlace-generado-obra > div { flex-direction: column; }
    .enlace-generado-obra .boton { width: 100%; }
    .identidad-obra-publica strong { display: none; }
    .autoria-publica-obra { margin-bottom: 20px; }
}

@media print {
    .autoria-publica-obra,
    .pie-publico-quijotext { display: none !important; }
}
.estado-coautorias-vacio { min-height: 92px; border: 1px dashed var(--borde); border-radius: 11px; color: var(--texto-secundario); display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 12px; }
.estado-coautorias-vacio svg { width: 17px; height: 17px; }

/* ================================================================
   Quijotext 1.7.0 · colaboración editorial segura
   ================================================================ */
.presencia-colaborativa {
    min-height: 42px;
    padding: 6px 14px;
    border-bottom: 1px solid var(--borde, #e4e4e4);
    background: var(--superficie, #fff);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    flex: 0 0 auto;
}
.presencia-colaborativa-texto {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--texto-secundario, #6b6b6b);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}
.presencia-colaborativa-texto svg { width: 15px; height: 15px; }
.avatares-presencia { display: flex; align-items: center; justify-content: flex-start; min-width: 0; }
.avatares-presencia .avatar-presencia:first-child { margin-left: 0; }
.avatar-presencia {
    --color-autor: #111;
    appearance: none;
    padding: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 3px solid var(--color-autor);
    background: #fff;
    display: grid;
    place-items: center;
    overflow: visible;
    position: relative;
    margin-left: -6px;
    box-shadow: 0 0 0 2px var(--superficie, #fff);
    color: #111;
    font-weight: 800;
    font-size: 11px;
    cursor: pointer;
}
.avatar-presencia img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.avatar-presencia small {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 40;
    width: max-content;
    max-width: 220px;
    padding: 6px 8px;
    border-radius: 7px;
    background: #111;
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.25;
    opacity: 0;
    transform: translateY(-3px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}
.avatar-presencia:hover small,
.avatar-presencia:focus-visible small { opacity: 1; transform: translateY(0); }
.avatar-presencia:focus-visible { outline: 2px solid var(--color-autor); outline-offset: 3px; }
.bloque-editor.bloque-localizado-escritor { outline: 1px solid var(--texto-secundario); outline-offset: 4px; }

.bloque-editor.bloque-espera-edicion [data-contenido-bloque] { cursor: text; }
.bloque-editor.solicitando-bloqueo { opacity: .72; }
.bloque-editor.bloque-reservado-propio {
    box-shadow: inset 3px 0 0 var(--color-presencia, #111);
}
.bloque-editor.bloque-presencia-remota,
.bloque-editor.bloque-bloqueado-remoto {
    box-shadow: inset 3px 0 0 var(--color-presencia, #777);
}
.bloque-editor.bloque-bloqueado-remoto::after {
    content: attr(data-bloqueado-por) " está editando";
    position: absolute;
    top: 8px;
    right: 10px;
    z-index: 8;
    padding: 4px 7px;
    border-radius: 999px;
    background: var(--color-presencia, #777);
    color: #fff;
    font: 700 10px/1.2 Arial, sans-serif;
    letter-spacing: .01em;
    pointer-events: none;
}
.elemento-estructura.presencia-remota {
    border-left: 3px solid var(--color-presencia, #777);
    background: color-mix(in srgb, var(--color-presencia, #777) 10%, transparent);
}

.etiqueta-cambios-realizados {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 8px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    box-shadow: 0 8px 20px rgba(0,0,0,.16);
}
.etiqueta-cambios-realizados svg { width: 12px; height: 12px; }
.rejilla-proyectos.vista-lista .etiqueta-cambios-realizados {
    position: static;
    flex: 0 0 auto;
    margin-left: auto;
    margin-right: 8px;
}

.modal-historial-cambios,
.modal-notas-obra { width: min(760px, calc(100vw - 32px)); max-height: min(820px, calc(100vh - 36px)); overflow: hidden; display: flex; flex-direction: column; }
.explicacion-seguridad-historial {
    margin: 18px 22px 0;
    padding: 13px 15px;
    border: 1px solid var(--borde, #ddd);
    border-radius: 12px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: var(--fondo-suave, #f7f7f7);
}
.explicacion-seguridad-historial > svg { width: 20px; height: 20px; flex: 0 0 auto; }
.explicacion-seguridad-historial div { display: grid; gap: 3px; }
.explicacion-seguridad-historial strong { font-size: 13px; }
.explicacion-seguridad-historial span { color: var(--texto-secundario, #666); font-size: 12px; line-height: 1.45; }
.lista-historial-cambios,
.lista-notas-obra { min-height: 180px; overflow: auto; padding: 18px 22px 24px; display: grid; gap: 10px; }
.entrada-historial {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: start;
    padding: 13px;
    border: 1px solid var(--borde, #ddd);
    border-radius: 12px;
    background: var(--superficie, #fff);
}
.entrada-historial.es-conflicto { border-style: dashed; }
.avatar-historial,
.avatar-nota {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    overflow: hidden;
    display: grid;
    place-items: center;
    font-size: 12px;
    font-weight: 800;
}
.avatar-historial img,
.avatar-nota img { width: 100%; height: 100%; object-fit: cover; }
.datos-historial { min-width: 0; }
.datos-historial p { margin: 0; font-size: 13px; line-height: 1.4; }
.datos-historial small { display: block; margin-top: 3px; color: var(--texto-secundario, #777); font-size: 11px; }

.acciones-entrada-historial { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.acciones-entrada-historial:empty { display: none; }

.datos-historial blockquote {
    margin: 9px 0 0;
    padding: 8px 10px;
    border-left: 2px solid #111;
    background: var(--fondo-suave, #f6f6f6);
    color: var(--texto-secundario, #555);
    font-size: 11px;
    line-height: 1.45;
}
.cargando-lista,
.estado-lista-vacia { min-height: 150px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; color: var(--texto-secundario, #777); font-size: 12px; }
.cargando-lista span { width: 22px; height: 22px; border: 2px solid #ddd; border-top-color: #111; border-radius: 50%; animation: giro .8s linear infinite; }
.estado-lista-vacia svg { width: 24px; height: 24px; }
.estado-lista-vacia strong { color: var(--texto-principal, #111); font-size: 14px; }

.editor-nueva-nota { margin: 18px 22px 0; padding: 12px; border: 1px solid var(--borde, #ddd); border-radius: 12px; background: var(--fondo-suave, #f7f7f7); }
.editor-nueva-nota textarea,
.nota-obra textarea {
    width: 100%;
    box-sizing: border-box;
    resize: vertical;
    border: 0;
    outline: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: 1.5;
}
.editor-nueva-nota > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.editor-nueva-nota small,
.estado-nota { color: var(--texto-secundario, #777); font-size: 10px; }
.nota-obra { padding: 13px; border: 1px solid var(--borde, #ddd); border-radius: 12px; background: var(--superficie, #fff); }
.nota-obra header { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-bottom: 10px; }
.nota-obra header > div:nth-child(2) { display: grid; gap: 2px; }
.nota-obra header strong { font-size: 13px; }
.nota-obra header small { color: var(--texto-secundario, #777); font-size: 10px; }
.nota-obra p { margin: 0; font-size: 13px; line-height: 1.55; white-space: normal; }
.nota-obra textarea { min-height: 80px; padding: 8px; border: 1px solid var(--borde, #ddd); border-radius: 8px; background: var(--fondo-suave, #fafafa); }
.acciones-nota-propia { margin-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.boton-guardar-nota-existente { min-height: 34px; padding: 6px 10px; font-size: 11px; }

.modal-conflicto-edicion { width: min(880px, calc(100vw - 32px)); }
.modal-conflicto-edicion > p { margin: 18px 22px 0; color: var(--texto-secundario, #666); line-height: 1.5; }
.comparador-conflicto { padding: 18px 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.comparador-conflicto label { display: grid; gap: 7px; font-size: 12px; font-weight: 800; }
.comparador-conflicto textarea { min-height: 240px; resize: vertical; padding: 12px; border: 1px solid var(--borde, #ddd); border-radius: 10px; background: var(--fondo-suave, #f8f8f8); color: inherit; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }

@media (max-width: 1180px) {
    .boton-editor-texto span { display: none; }
    .boton-editor-texto { width: 38px; padding-inline: 0; justify-content: center; }
}
@media (max-width: 760px) {
    .presencia-colaborativa-texto span { display: none; }
    .comparador-conflicto { grid-template-columns: 1fr; }
    .entrada-historial { grid-template-columns: 34px minmax(0, 1fr); }
    .entrada-historial > .boton { grid-column: 2; justify-self: start; }
}
.rejilla-proyectos.vista-lista .etiqueta-cambios-realizados {
    position: absolute;
    left: auto;
    right: 58px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    margin: 0;
}
@media (max-width: 720px) {
    .rejilla-proyectos.vista-lista .etiqueta-cambios-realizados {
        right: 48px;
        max-width: 112px;
        white-space: normal;
        text-align: center;
    }
}
.acciones-conflicto-edicion { flex-wrap: wrap; }
.acciones-conflicto-edicion .oculto { display: none !important; }

/* ================================================================
   Quijotext 1.7.1 · estabilidad colaborativa y bibliografía
   ================================================================ */
/* La regla general de botones del encabezado tenía mayor especificidad y
   anulaba el padding del acordeón. Se restablece un margen de lectura claro. */
.registro-bibliografia-config > header > .cabecera-acordeon-bibliografia {
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 46px;
    padding: 9px 12px 9px 20px;
    justify-content: space-between;
}

/* ================================================================
   Quijotext 1.7.2 · confirmación manual de bloques colaborativos
   ================================================================ */
.estado-guardado.pendiente-publicacion {
    color: var(--texto);
    font-weight: 700;
}
.estado-guardado.pendiente-publicacion svg {
    width: 15px;
    height: 15px;
}

.boton-confirmar-bloque {
    --color-autor: #111;
    position: absolute;
    top: 8px;
    right: -42px;
    z-index: 12;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--color-autor);
    border-radius: 50%;
    background: var(--superficie, #fff);
    color: var(--color-autor);
    display: grid;
    place-items: center;
    opacity: .48;
    cursor: pointer;
    box-shadow: 0 0 0 2px var(--superficie, #fff);
    transition: opacity .16s ease, transform .16s ease, background .16s ease, color .16s ease;
}
.boton-confirmar-bloque:hover,
.boton-confirmar-bloque.con-cambios {
    opacity: 1;
}
.boton-confirmar-bloque.con-cambios {
    background: var(--color-autor);
    color: #fff;
    transform: scale(1.04);
}
.boton-confirmar-bloque:disabled {
    cursor: wait;
}
.boton-confirmar-bloque svg {
    width: 15px;
    height: 15px;
}
.boton-confirmar-bloque.publicando svg {
    animation: girar .8s linear infinite;
}

/* La marca colaborativa es deliberadamente estática: sin pulsos ni cambios de
   opacidad. El sondeo solo cambia este borde cuando cambia la reserva real. */
.bloque-editor.bloque-reservado-propio,
.bloque-editor.bloque-bloqueado-remoto {
    box-shadow: inset 3px 0 0 var(--color-presencia, #777);
}

/* ================================================================
   Quijotext 1.7.3 · publicación estable por bloque
   ================================================================ */
.editor-aplicacion.modo-confirmacion-bloques .bloque-editor,
.editor-aplicacion[data-es-colaborativa="1"] .bloque-editor {
    transition: none !important;
}

.boton-confirmar-bloque {
    top: 8px;
    right: 10px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    box-shadow: 0 0 0 3px var(--superficie, #fff), 0 4px 12px rgba(0, 0, 0, .10);
}

.bloque-editor.bloque-reservado-propio > .etiqueta-bloque.discreta {
    padding-right: 42px;
}

.bloque-editor.bloque-reservado-propio,
.bloque-editor.bloque-bloqueado-remoto {
    transition: none !important;
    animation: none !important;
}


/* ================================================================
   Quijotext 1.7.4 · publicación manual estable en coautoría
   ================================================================ */
.editor-aplicacion.modo-confirmacion-bloques .bloque-editor.solicitando-bloqueo,
.editor-aplicacion[data-es-colaborativa="1"] .bloque-editor.solicitando-bloqueo {
    opacity: 1 !important;
}

.editor-aplicacion.modo-confirmacion-bloques .bloque-editor.bloque-reservado-propio,
.editor-aplicacion[data-es-colaborativa="1"] .bloque-editor.bloque-reservado-propio {
    border-color: var(--color-presencia, #111) !important;
    box-shadow: none !important;
    transition: none !important;
    animation: none !important;
}

.editor-aplicacion.modo-confirmacion-bloques .bloque-editor.bloque-bloqueado-remoto,
.editor-aplicacion[data-es-colaborativa="1"] .bloque-editor.bloque-bloqueado-remoto {
    border-color: var(--color-presencia, #777) !important;
    box-shadow: none !important;
    transition: none !important;
    animation: none !important;
}

.editor-aplicacion.modo-confirmacion-bloques .bloque-editor.bloque-reserva-en-duda {
    border-style: dashed;
}

.estado-guardado.guardando,
.estado-guardado.guardando svg,
.boton-confirmar-bloque,
.boton-confirmar-bloque svg {
    animation: none !important;
}

.estado-guardado {
    min-width: 112px;
}


/* ================================================================
   Quijotext 1.7.5 · reserva estable y descarte explícito de borrador
   ================================================================ */
.controles-publicacion-bloque {
    position: absolute;
    top: 8px;
    right: 10px;
    z-index: 12;
    display: flex;
    align-items: center;
    gap: 6px;
}

.controles-publicacion-bloque .boton-confirmar-bloque,
.controles-publicacion-bloque .boton-descartar-bloque {
    position: static !important;
    top: auto !important;
    right: auto !important;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: none !important;
    animation: none !important;
}

.controles-publicacion-bloque .boton-descartar-bloque {
    border: 1px solid var(--borde, #d8d8d8);
    background: var(--superficie, #fff);
    color: var(--texto, #111);
    cursor: pointer;
    box-shadow: 0 0 0 3px var(--superficie, #fff), 0 4px 12px rgba(0, 0, 0, .08);
}

.controles-publicacion-bloque .boton-descartar-bloque:hover {
    border-color: #111;
}

.controles-publicacion-bloque .boton-descartar-bloque:disabled,
.controles-publicacion-bloque .boton-confirmar-bloque:disabled {
    cursor: wait;
    opacity: .62;
}

.controles-publicacion-bloque svg {
    width: 15px !important;
    height: 15px !important;
    animation: none !important;
}

.bloque-editor.bloque-reservado-propio > .etiqueta-bloque.discreta {
    padding-right: 78px;
}

.estado-guardado,
.estado-guardado *,
.editor-aplicacion.modo-confirmacion-bloques .bloque-editor,
.editor-aplicacion.modo-confirmacion-bloques .bloque-editor * {
    animation-name: none !important;
}

/* ================================================================
   Quijotext 1.7.7 · colaboración minimalista y concentración cálida
   ================================================================ */

/* La etiqueta de coautoría sobre la miniatura solo pertenece a cuadrícula. */
.etiqueta-coautoria-lista { display: none; }
.rejilla-proyectos.vista-lista .etiqueta-coautoria-cuadricula { display: none; }
.rejilla-proyectos.vista-lista .etiqueta-coautoria-lista {
    position: static;
    z-index: auto;
    display: inline-flex;
    flex: 0 0 auto;
    padding: 4px 7px;
    background: var(--superficie-secundaria);
    box-shadow: none;
}
.rejilla-proyectos.vista-lista .resumen-proyecto-tarjeta {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.rejilla-proyectos.vista-lista .linea-titulo-proyecto-lista {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.rejilla-proyectos.vista-lista .linea-titulo-proyecto-lista h2 {
    min-width: 0;
    max-width: min(620px, 55vw);
    margin: 0;
}
.rejilla-proyectos.vista-lista .linea-titulo-proyecto-lista h2 a {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.autores-coautoria-lista { display: none; }
.rejilla-proyectos.vista-lista .autores-coautoria-lista {
    width: 100%;
    margin: 1px 0 0 !important;
    color: var(--texto-secundario);
    display: flex !important;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    line-height: 1.3;
}
.rejilla-proyectos.vista-lista .autores-coautoria-lista svg {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
}
.rejilla-proyectos.vista-lista .autores-coautoria-lista span {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.rejilla-proyectos.vista-lista .metadatos-proyecto-tarjeta { display: none; }

/* Acceso discreto al modo concentración desde la esquina inferior izquierda. */
.boton-modo-concentracion {
    width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie);
    color: var(--texto);
    box-shadow: 0 8px 22px rgba(0,0,0,.12);
    position: absolute;
    z-index: 26;
    left: 18px;
    bottom: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 11px;
    font-weight: 750;
    cursor: pointer;
    transition: transform var(--transicion), box-shadow var(--transicion), background var(--transicion), color var(--transicion);
}
.boton-modo-concentracion:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(0,0,0,.17);
}
.boton-modo-concentracion svg { width: 16px; height: 16px; }
.boton-modo-concentracion .icono-salir-concentracion { display: none; }

/* En concentración no se destruye ni se vuelve a renderizar ningún bloque: solo
   se oculta la chrome de Quijotext. Esto conserva selección, cursor y reservas. */
.editor-aplicacion.modo-concentracion-editor .sidebar-editor-global,
.editor-aplicacion.modo-concentracion-editor .barra-superior-editor,
.editor-aplicacion.modo-concentracion-editor .panel-estructura,
.editor-aplicacion.modo-concentracion-editor .panel-componentes,
.editor-aplicacion.modo-concentracion-editor .separador-panel,
.editor-aplicacion.modo-concentracion-editor .presencia-colaborativa,
.editor-aplicacion.modo-concentracion-editor .barra-formato,
.editor-aplicacion.modo-concentracion-editor .panel-buscar-reemplazar,
.editor-aplicacion.modo-concentracion-editor .barra-estado-editor {
    display: none !important;
}
.editor-aplicacion.modo-concentracion-editor .editor-zona-principal,
.editor-aplicacion.modo-concentracion-editor .editor-tres-paneles,
.editor-aplicacion.modo-concentracion-editor .panel-documento {
    width: 100%;
    min-width: 0;
    flex: 1 1 100%;
}
.editor-aplicacion.modo-concentracion-editor .editor-tres-paneles {
    min-height: 100vh;
    background: #eee7d9;
}
.editor-aplicacion.modo-concentracion-editor .panel-documento {
    height: 100vh;
    background: #eee7d9;
}
.editor-aplicacion.modo-concentracion-editor .lienzo-documento {
    padding-top: 42px;
    padding-bottom: 56px;
    background: #eee7d9;
}
.editor-aplicacion.modo-concentracion-editor .hoja-editor {
    background: #fffaf0;
    color: #211d18;
    box-shadow: 0 18px 55px rgba(76, 61, 41, .12);
}
.editor-aplicacion.modo-concentracion-editor .boton-modo-concentracion {
    bottom: 18px;
    background: #000;
    border-color: #000;
    color: #fff;
}
.editor-aplicacion.modo-concentracion-editor .boton-modo-concentracion .icono-entrar-concentracion { display: none; }
.editor-aplicacion.modo-concentracion-editor .boton-modo-concentracion .icono-salir-concentracion { display: inline-flex; }
.editor-aplicacion.modo-concentracion-editor .boton-ir-final { bottom: 18px; }
html[data-tema="oscuro"] .editor-aplicacion.modo-concentracion-editor .editor-tres-paneles,
html[data-tema="oscuro"] .editor-aplicacion.modo-concentracion-editor .panel-documento,
html[data-tema="oscuro"] .editor-aplicacion.modo-concentracion-editor .lienzo-documento { background: #1d1914; }
html[data-tema="oscuro"] .editor-aplicacion.modo-concentracion-editor .hoja-editor {
    background: #29231b;
    color: #f7eddd;
    box-shadow: 0 18px 55px rgba(0,0,0,.32);
}
html[data-tema="oscuro"] .editor-aplicacion.modo-concentracion-editor .boton-modo-concentracion {
    background: #f7eddd;
    border-color: #f7eddd;
    color: #1d1914;
}


@media (max-width: 1080px) {
    .fila-identidad-obra-editor { gap: 7px; }
    .titulo-proyecto-editor input { width: min(24vw, 270px); }
    .etiqueta-coautoria-editor { max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 760px) {
    .rejilla-proyectos.vista-lista .linea-titulo-proyecto-lista {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 4px 7px;
    }
    .rejilla-proyectos.vista-lista .linea-titulo-proyecto-lista h2 {
        max-width: calc(100% - 10px);
    }
    .boton-modo-concentracion {
        width: 40px;
        padding: 0;
    }
    .boton-modo-concentracion span { display: none !important; }
}


/* ================================================================
   Quijotext 1.7.8 · camino visible de la obra y escritores en cabecera
   ================================================================ */

/* Los datos vitales de la obra solo aparecen en la vista de lista. */
.camino-obra-lista { display: none; }
.rejilla-proyectos.vista-lista .tarjeta-proyecto {
    min-height: 92px;
}
.rejilla-proyectos.vista-lista .datos-proyecto {
    padding-top: 9px;
    padding-bottom: 9px;
}
.rejilla-proyectos.vista-lista .camino-obra-lista {
    width: 100%;
    margin-top: 5px;
    color: var(--texto-secundario);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px 15px;
    font-size: 10px;
    line-height: 1.35;
}
.rejilla-proyectos.vista-lista .camino-obra-lista span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}
.rejilla-proyectos.vista-lista .camino-obra-lista span + span::before {
    content: "·";
    margin-right: 8px;
    color: var(--borde-fuerte, #b9b9b9);
}
.rejilla-proyectos.vista-lista .camino-obra-lista svg {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
}
.rejilla-proyectos.vista-lista .camino-obra-lista strong {
    color: var(--texto);
    font-weight: 750;
}

/* La presencia de escritores aprovecha el espacio central de la cabecera. */
.barra-superior-editor {
    justify-content: flex-start;
}
.titulo-proyecto-editor {
    flex: 0 1 auto;
}
.presencia-colaborativa.presencia-colaborativa-cabecera {
    min-width: 140px;
    min-height: 0;
    height: auto;
    flex: 1 1 280px;
    margin-left: 8px;
    padding: 0 10px 0 18px;
    border: 0;
    background: transparent;
    overflow: visible;
}
.presencia-colaborativa-cabecera .presencia-colaborativa-texto {
    color: var(--texto-secundario);
    font-size: 10px;
}
.presencia-colaborativa-cabecera .avatares-presencia {
    padding-left: 2px;
}
.presencia-colaborativa-cabecera .avatar-presencia {
    width: 29px;
    height: 29px;
}
.acciones-editor-superior {
    margin-left: auto;
    flex: 0 0 auto;
}

@media (max-width: 1320px) {
    .presencia-colaborativa.presencia-colaborativa-cabecera {
        flex-basis: 150px;
        padding-left: 8px;
    }
    .presencia-colaborativa-cabecera .presencia-colaborativa-texto span { display: none; }
}

@media (max-width: 900px) {
    .presencia-colaborativa.presencia-colaborativa-cabecera {
        min-width: 70px;
        flex: 0 1 110px;
        margin-left: 0;
        padding: 0 4px;
    }
    .presencia-colaborativa-cabecera .presencia-colaborativa-texto { display: none; }
    .rejilla-proyectos.vista-lista .camino-obra-lista { gap: 4px 9px; }
    .rejilla-proyectos.vista-lista .camino-obra-lista span + span::before { display: none; }
}

@media (max-width: 620px) {
    .rejilla-proyectos.vista-lista .camino-obra-lista span:nth-child(2) { display: none; }
}

/* === Versión 1.7.9: identidad administrable y textos del acceso === */
.configuracion-aplicacion-admin {
    width: min(1180px, 100%);
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.tarjeta-configuracion-admin {
    border: 1px solid var(--borde);
    border-radius: 18px;
    background: var(--superficie);
    padding: 24px;
}
.tarjeta-configuracion-admin > header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}
.tarjeta-configuracion-admin > header > div:nth-child(2) { flex: 1; }
.tarjeta-configuracion-admin h2,
.tarjeta-configuracion-admin p { margin: 0; }
.tarjeta-configuracion-admin p { color: var(--texto-secundario); }
.selector-favicon-admin {
    min-height: 86px;
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--fondo-secundario);
    display: flex;
    align-items: center;
    gap: 16px;
}
.selector-favicon-admin > div:last-child {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.selector-favicon-admin input[type="file"] { max-width: 100%; }
.vista-favicon-admin {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    border: 1px solid var(--borde);
    border-radius: 13px;
    background: var(--superficie);
    display: grid;
    place-items: center;
    overflow: hidden;
}
.vista-favicon-admin img { width: 100%; height: 100%; object-fit: contain; }
.vista-favicon-admin span { font: 800 27px/1 Georgia, serif; }
.rejilla-configuracion-login-admin {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
    gap: 28px;
    align-items: start;
}
.separador-formulario-admin {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--texto-secundario);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.separador-formulario-admin::after { content: ""; height: 1px; flex: 1; background: var(--borde); }
.vista-previa-login-admin {
    position: sticky;
    top: 0;
    min-width: 0;
}
.vista-previa-login-admin > .sobrelinea { display: block; margin-bottom: 9px; }
.mini-login-admin {
    min-height: 520px;
    border: 1px solid var(--borde);
    border-radius: 15px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    box-shadow: 0 18px 45px rgba(0,0,0,.08);
}
.mini-login-presentacion {
    min-width: 0;
    padding: 26px;
    background: #000;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 30px;
}
.mini-login-marca { display: flex; align-items: center; gap: 9px; font-size: 12px; }
.mini-login-presentacion .marca-simbolo { width: 34px; height: 34px; background: #fff; color: #000; font-size: 18px; }
.mini-login-presentacion .etiqueta-minimalista { color: #999; font-size: 8px; }
.mini-login-presentacion h3 {
    margin: 9px 0 12px;
    font: 500 clamp(24px, 2.4vw, 40px)/1.02 Georgia, serif;
    letter-spacing: -.045em;
    white-space: pre-line;
}
.mini-login-presentacion p {
    margin: 0;
    color: #bdbdbd;
    font-size: 10px;
    line-height: 1.65;
    white-space: pre-line;
}
.mini-login-presentacion > small { color: #777; font-size: 8px; }
.mini-login-panel {
    min-width: 0;
    padding: 26px 22px;
    background: #fff;
    color: #000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 13px;
}
.mini-login-panel h3 { margin: 4px 0 6px; font-size: 21px; letter-spacing: -.035em; }
.mini-login-panel p { margin: 0; color: #6b6b6b; font-size: 9px; line-height: 1.5; white-space: pre-line; }
.mini-campo-login { height: 34px; border: 1px solid #ddd; border-radius: 8px; }
.mini-login-panel button { height: 36px; border: 0; border-radius: 8px; background: #000; color: #fff; font: inherit; font-size: 9px; font-weight: 800; }
.acciones-configuracion-admin {
    position: sticky;
    bottom: -42px;
    z-index: 4;
    padding: 14px 0 4px;
    background: linear-gradient(to bottom, transparent, var(--fondo) 22%);
}
.login-mensaje h1,
.login-mensaje p { white-space: pre-line; }

@media (max-width: 1120px) {
    .rejilla-configuracion-login-admin { grid-template-columns: 1fr; }
    .vista-previa-login-admin { position: relative; }
    .mini-login-admin { min-height: 480px; }
}
@media (max-width: 700px) {
    .tarjeta-configuracion-admin { padding: 18px; }
    .selector-favicon-admin { align-items: flex-start; flex-direction: column; }
    .mini-login-admin { grid-template-columns: 1fr; }
    .mini-login-presentacion { min-height: 350px; }
}

/* ================================================================
   Quijotext 1.8.0 · lectura digital responsive e índice navegable
   ================================================================ */
[id^="bloque-"][data-nivel-titulo] { scroll-margin-top: 92px; }

.indice-previsualizacion a[href^="#bloque-"] { cursor: pointer; }

/* Acceso flotante al índice: disponible en escritorio y móvil. */
.boton-indice-flotante {
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    background: #000;
    color: #fff;
    box-shadow: 0 14px 34px rgba(0,0,0,.24);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 82;
    transition: transform var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.boton-indice-flotante:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(0,0,0,.3); }
.boton-indice-flotante svg { width: 21px; height: 21px; }
.boton-indice-flotante[aria-expanded="true"] { background: #222; }

.capa-indice-flotante {
    position: fixed;
    inset: 0;
    z-index: 79;
    background: rgba(0,0,0,.22);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 180ms ease, visibility 180ms ease;
}
.capa-indice-flotante.visible { opacity: 1; visibility: visible; pointer-events: auto; }

.panel-indice-flotante {
    width: min(390px, calc(100vw - 36px));
    max-height: min(680px, calc(100dvh - 112px));
    border: 1px solid rgba(0,0,0,.14);
    border-radius: 18px;
    background: #fff;
    color: #000;
    box-shadow: 0 24px 70px rgba(0,0,0,.22);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: calc(max(18px, env(safe-area-inset-bottom)) + 64px);
    z-index: 81;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(14px) scale(.985);
    transform-origin: right bottom;
    transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
}
.panel-indice-flotante.abierto { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.cabecera-indice-flotante {
    min-height: 76px;
    padding: 17px 18px 14px 21px;
    border-bottom: 1px solid #e6e6e6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.cabecera-indice-flotante .sobrelinea { margin-bottom: 2px; color: #777; font-size: 9px; }
.cabecera-indice-flotante h2 { margin: 0; font: 700 25px/1.1 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.contenido-indice-flotante { min-height: 0; flex: 1; padding: 10px; overflow-y: auto; overscroll-behavior: contain; }
.indice-navegacion-flotante { margin: 0; }
.indice-navegacion-flotante li { margin: 2px 0; padding: 0; }
.indice-navegacion-flotante li.nivel-2 { padding-left: 17px; }
.indice-navegacion-flotante li.nivel-3 { padding-left: 34px; }
.indice-navegacion-flotante a {
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 9px;
    align-items: center;
    gap: 8px;
    color: #252525;
    font: 13px/1.35 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    transition: background var(--transicion), color var(--transicion);
}
.indice-navegacion-flotante a:hover { background: #f2f2f2; }
.indice-navegacion-flotante .numero-apartado-indice { min-width: 42px; color: #777; font-size: 11px; }
.indice-navegacion-flotante .titulo-apartado-indice { flex: 1; }
.indice-navegacion-flotante .pagina-destino-indice { min-width: 28px; color: #888; font-size: 10px; }
.indice-navegacion-flotante .entrada-indice-activa > a { background: #000; color: #fff; }
.indice-navegacion-flotante .entrada-indice-activa .numero-apartado-indice,
.indice-navegacion-flotante .entrada-indice-activa .pagina-destino-indice { color: #cfcfcf; }

/* Lector público: el paginador calcula primero las hojas físicas. Después,
   en pantallas estrechas, esas hojas ya calculadas se presentan como un flujo
   legible sin sacrificar los números reales del índice ni la impresión. */
@media screen and (max-width: 900px) {
    body.pagina-obra-publica.lector-publico-listo { background: #fff; }
    body.pagina-obra-publica.lector-publico-listo .barra-obra-publica {
        min-height: 58px;
        padding: 8px 14px;
        gap: 11px;
        background: rgba(255,255,255,.96);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }
    body.pagina-obra-publica.lector-publico-listo .identidad-obra-publica { gap: 7px; }
    body.pagina-obra-publica.lector-publico-listo .identidad-obra-publica .marca-simbolo { width: 34px; height: 34px; border-radius: 9px; font-size: 17px; }
    body.pagina-obra-publica.lector-publico-listo .barra-obra-publica > div { align-items: flex-start; text-align: left; }
    body.pagina-obra-publica.lector-publico-listo .barra-obra-publica > div strong { max-width: min(58vw, 520px); }
    body.pagina-obra-publica.lector-publico-listo .barra-obra-publica > .boton { display: none; }

    body.pagina-obra-publica.lector-publico-listo .documento-previsualizado {
        width: 100%;
        padding: 0;
        gap: 0;
        align-items: stretch;
        background: #fff;
    }
    body.pagina-obra-publica.lector-publico-listo .pagina-impresion,
    body.pagina-obra-publica.lector-publico-listo .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice,
    body.pagina-obra-publica.lector-publico-listo .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido {
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        margin: 0;
        box-shadow: none;
        overflow: visible !important;
    }
    body.pagina-obra-publica.lector-publico-listo .pagina-impresion > .contenido-pagina,
    body.pagina-obra-publica.lector-publico-listo .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice > .contenido-pagina,
    body.pagina-obra-publica.lector-publico-listo .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido > .contenido-pagina {
        width: 100%;
        max-width: 720px;
        min-height: 0;
        margin-inline: auto;
        overflow: visible !important;
    }
    body.pagina-obra-publica.lector-publico-listo .portada-impresion {
        min-height: min(82dvh, 720px) !important;
        padding: clamp(42px, 9vw, 78px) clamp(22px, 7vw, 58px) !important;
        border-bottom: 1px solid #ebe7e0;
    }
    body.pagina-obra-publica.lector-publico-listo .portada-impresion h1 { max-width: 100%; font-size: clamp(37px, 9vw, 64px); }
    body.pagina-obra-publica.lector-publico-listo .portada-impresion h2 { max-width: 100%; font-size: clamp(20px, 5vw, 28px); }
    body.pagina-obra-publica.lector-publico-listo .portada-impresion p { margin-top: 28px; font-size: 17px; }
    body.pagina-obra-publica.lector-publico-listo .imagen-portada-impresion { width: min(100%, 360px); max-height: 52dvh; margin-bottom: 25px; }

    body.pagina-obra-publica.lector-publico-listo .pagina-indice {
        padding: 42px clamp(20px, 6vw, 54px) 48px !important;
        border-bottom: 1px solid #ebe7e0;
    }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice h1 { margin-bottom: 22px; font-size: clamp(31px, 7vw, 44px); }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice.continuacion-indice h1 { font-size: 26px; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .indice-previsualizacion li { margin: 3px 0; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .indice-previsualizacion a {
        min-height: 44px;
        padding: 9px 5px;
        border-radius: 8px;
        gap: 7px;
        align-items: center;
        font-size: 15px;
        line-height: 1.35;
    }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .indice-previsualizacion a:active { background: #f1f1f1; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .indice-previsualizacion li.nivel-2 { padding-left: 17px; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .indice-previsualizacion li.nivel-3 { padding-left: 34px; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .numero-apartado-indice { min-width: 45px; font-size: 13px; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .pagina-destino-indice { min-width: 27px; font-size: 12px; }

    body.pagina-obra-publica.lector-publico-listo .pagina-contenido {
        padding: 0 clamp(20px, 6vw, 54px) !important;
        border: 0;
    }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice + .pagina-contenido { padding-top: 42px !important; }
    body.pagina-obra-publica.lector-publico-listo .documento-previsualizado > .pagina-contenido:last-child { padding-bottom: 58px !important; }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento {
        font-size: clamp(17px, 2.7vw, 19px);
        line-height: 1.76;
        overflow-wrap: anywhere;
    }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento h1 { margin: 1.7em 0 .62em; font-size: clamp(32px, 7vw, 48px); line-height: 1.12; }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento h2 { margin: 1.55em 0 .58em; font-size: clamp(26px, 5.8vw, 36px); line-height: 1.18; }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento h3 { margin: 1.4em 0 .52em; font-size: clamp(21px, 4.8vw, 28px); line-height: 1.24; }
    body.pagina-obra-publica.lector-publico-listo .bloque-texto-previsualizado p { margin: 0 0 1.18em; text-align: left; }
    body.pagina-obra-publica.lector-publico-listo .fragmento-paginado-con-continuacion > :last-child { margin-bottom: 0 !important; }
    body.pagina-obra-publica.lector-publico-listo .fragmento-paginado-continuacion > :first-child { margin-top: 0 !important; }
    body.pagina-obra-publica.lector-publico-listo .cita-academica,
    body.pagina-obra-publica.lector-publico-listo .cita-academica.estilo-mla9 {
        margin: 1.5em 0 1.5em clamp(18px, 5vw, 42px);
        line-height: 1.7;
    }
    body.pagina-obra-publica.lector-publico-listo .cita-academica.estilo-chicago { padding-left: 15px; }
    body.pagina-obra-publica.lector-publico-listo .formula-academica { max-width: 100%; margin: 1.5em 0; overflow-x: auto; overscroll-behavior-x: contain; }
    body.pagina-obra-publica.lector-publico-listo .tabla-previsualizacion { max-width: 100%; margin: 1.4em 0; overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
    body.pagina-obra-publica.lector-publico-listo .tabla-previsualizacion table { width: max(100%, 520px); table-layout: auto; font-size: 14px; }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento figure { margin: 1.7em auto; }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento figure img { width: auto; max-width: 100%; max-height: 70dvh; }
    body.pagina-obra-publica.lector-publico-listo .pie-pagina { display: none; }

    body.pagina-obra-publica.lector-publico-listo .autoria-publica-obra {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 42px clamp(20px, 6vw, 54px) 48px;
        border: 0;
        border-top: 1px solid #ebe7e0;
        border-radius: 0;
        box-shadow: none;
    }
    body.pagina-obra-publica.lector-publico-listo .autoria-publica-obra > * { width: 100%; max-width: 720px; margin-inline: auto; }
    body.pagina-obra-publica.lector-publico-listo .encabezado-autoria-publica { margin-bottom: 18px; }
    body.pagina-obra-publica.lector-publico-listo .tarjeta-autor-publico { padding: 16px 0; border-width: 1px 0 0; border-radius: 0; flex-direction: row; gap: 14px; }
    body.pagina-obra-publica.lector-publico-listo .lista-autores-publicos .tarjeta-autor-publico:first-child { border-top: 0; }
    body.pagina-obra-publica.lector-publico-listo .avatar-autor-publico { width: 54px; height: 54px; flex-basis: 54px; font-size: 19px; }
    body.pagina-obra-publica.lector-publico-listo .tarjeta-autor-publico p { font-size: 14px; line-height: 1.6; }
}

@media screen and (max-width: 620px) {
    .panel-indice-flotante {
        width: auto;
        max-height: min(72dvh, 620px);
        left: max(10px, env(safe-area-inset-left));
        right: max(10px, env(safe-area-inset-right));
        bottom: max(10px, env(safe-area-inset-bottom));
        border-radius: 20px;
        transform: translateY(24px);
        transform-origin: center bottom;
    }
    .panel-indice-flotante.abierto { transform: none; }
    .cabecera-indice-flotante { min-height: 70px; padding: 15px 14px 12px 18px; }
    .contenido-indice-flotante { padding: 8px; }
    .indice-navegacion-flotante a { min-height: 46px; padding: 9px 10px; font-size: 14px; }
    .boton-indice-flotante { width: 52px; height: 52px; }
    body.indice-lector-abierto { overflow: hidden; }

    body.pagina-obra-publica.lector-publico-listo .identidad-obra-publica strong { display: none; }
    body.pagina-obra-publica.lector-publico-listo .barra-obra-publica > div strong { max-width: 68vw; font-size: 13px; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .puntos-indice { min-width: 12px; }
    body.pagina-obra-publica.lector-publico-listo .pagina-indice .titulo-apartado-indice { overflow-wrap: anywhere; }
    body.pagina-obra-publica.lector-publico-listo .flujo-documento { font-size: 17.5px; line-height: 1.78; }
    body.pagina-obra-publica.lector-publico-listo .cita-academica,
    body.pagina-obra-publica.lector-publico-listo .cita-academica.estilo-mla9 { margin-left: 18px; }
}

@media print {
    .boton-indice-flotante,
    .capa-indice-flotante,
    .panel-indice-flotante { display: none !important; }
    .indice-previsualizacion a[href^="#bloque-"] {
        color: #000 !important;
        text-decoration: none !important;
        cursor: default !important;
        pointer-events: none !important;
        background: transparent !important;
    }
    .indice-previsualizacion .entrada-indice-activa > a { background: transparent !important; color: #000 !important; }
}
