/*
 * 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;
    --verde-pro: #C7FF2F;
    --fuente-titulos-quijotext: Georgia, "Times New Roman", serif;
}

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;
    background: var(--superficie);
    color: var(--texto);
    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 { height: 100vh; height: 100dvh; overflow: hidden; }
.login-contenedor { height: 100vh; height: 100dvh; min-height: 0; display: flex; overflow: hidden; 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;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 48px;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    text-align: left;
}
.login-marca { display: flex; align-items: center; justify-content: flex-start; gap: 12px; }
.login-presentacion .login-marca { margin-top: auto; }
.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; }
.marca-simbolo.con-favicon { overflow: hidden; background: transparent; color: transparent; }
.marca-simbolo.con-favicon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.login-mensaje { width: min(100%, 780px); max-width: 780px; }
.login-mensaje .etiqueta-minimalista { color: #999; }
.login-mensaje h1 { margin: 0 0 24px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px, 5.4vw, 84px); line-height: 1.01; letter-spacing: -.045em; font-weight: 500; }
.login-mensaje p { max-width: 680px; margin: 0; color: #bdbdbd; font-size: 18px; line-height: 1.68; }
.login-presentacion > small { max-width: 680px; margin: 0 0 auto; color: #7d7d7d; font-size: 13px; line-height: 1.55; }
.login-panel { flex: 1 1 45%; min-width: 420px; min-height: 0; height: 100%; display: flex; align-items: center; justify-content: center; padding: 24px 40px; overflow: hidden; background: #fff; color: #000; }
.login-panel-ilustrado { position: relative; overflow: hidden; isolation: isolate; }
.escena-login { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; background:#fff; }
.fondo-login { position:absolute; inset:0; opacity:0; background-repeat:no-repeat; transition-property:opacity; transition-timing-function:ease-in-out; will-change:opacity; }
.fondo-login.fondo-login-activo { opacity:1; }
.velo-login-transicion { position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,.04) 55%,transparent); opacity:.15; }
.tarjeta-login { width: min(410px, 100%); display: flex; flex-direction: column; gap: 24px; }
.login-panel-ilustrado .tarjeta-login { position: relative; z-index: 1; box-sizing: border-box; max-height: calc(100dvh - 48px); padding: 26px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; background: rgba(255,255,255,.94); border: 1px solid rgba(0,0,0,.06); border-radius: 26px; box-shadow: 0 18px 40px rgba(0,0,0,.08); backdrop-filter: blur(4px); }
.login-panel-ilustrado .tarjeta-login::-webkit-scrollbar { width: 8px; }
.login-panel-ilustrado .tarjeta-login::-webkit-scrollbar-track { background: transparent; }
.login-panel-ilustrado .tarjeta-login::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: rgba(0,0,0,.2); background-clip: padding-box; }
.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;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    padding: 20px 14px;
    border-right: 1px solid var(--borde);
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    overflow: hidden;
}
.marca-aplicacion { height: 52px; padding: 0 9px; display: flex; align-items: center; gap: 11px; }
.marca-texto { font-weight: 800; letter-spacing: -.02em; }
.navegacion-principal { flex: 1 1 auto; min-height: 0; margin-top: 26px; margin-bottom: 14px; padding-right: 4px; display: flex; flex-direction: column; gap: 5px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scroll-behavior: smooth; }
.navegacion-principal::-webkit-scrollbar { width: 7px; }
.navegacion-principal::-webkit-scrollbar-track { background: transparent; }
.navegacion-principal::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: color-mix(in srgb, var(--texto) 24%, transparent); background-clip: padding-box; }
.navegacion-principal { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--texto) 24%, transparent) transparent; }
.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 { flex: 0 0 auto; margin-top: 0; 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; }

/* Pies persistentes de formularios dentro de modales. El contenido se desplaza
   de forma independiente y las acciones permanecen siempre accesibles. */
.modal-contenido:not(.modal-configuracion):has(> form) {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.modal-contenido:not(.modal-configuracion):has(> form) > .modal-cabecera {
    flex: 0 0 auto;
    margin: 0;
    padding: 24px;
    border-bottom: 1px solid var(--borde);
    background: var(--superficie);
}
.modal-contenido:not(.modal-configuracion):has(> form) > form {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px 24px 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-padding-bottom: 96px;
}
.modal-contenido:not(.modal-configuracion) > form > .acciones-modal:last-child,
.modal-contenido:not(.modal-configuracion) > form > .acciones-formulario:last-child,
.modal-contenido .pie-fijo-modal {
    position: sticky;
    bottom: 0;
    z-index: 12;
    min-height: 72px;
    margin: 28px -24px 0;
    padding: 16px 24px calc(16px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--borde);
    background: color-mix(in srgb, var(--superficie) 94%, transparent);
    box-shadow: 0 -16px 34px rgba(0,0,0,.07);
    backdrop-filter: blur(18px);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}
.modal-contenido .pie-fijo-modal { flex: 0 0 auto; }
.modal-plan-contenido { width: min(820px, 100%); }
.modal-plan-contenido > .formulario-plan-admin {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}
.modal-plan-contenido .contenido-scroll-modal {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-padding-bottom: 24px;
}
.modal-plan-contenido .pie-fijo-modal {
    position: relative;
    bottom: auto;
    margin: 0;
}
.modal-alerta-producto-admin > form {
    display: flex;
    flex-direction: column;
    overflow: hidden !important;
    padding: 0 !important;
}
.modal-alerta-producto-admin .contenido-modal-alerta-admin {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
}
.modal-alerta-producto-admin .pie-fijo-modal {
    position: relative;
    bottom: auto;
    margin: 0;
}
.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;
    min-width: 0;
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}
/*
 * Switch accesible y estable. El checkbox nativo permanece en el árbol de
 * accesibilidad y en el orden de tabulación, pero su caja física queda anclada
 * al propio label. Así no puede heredar anchos/paddings de formularios ni
 * convertirse en un elemento absoluto fuera de contexto que provoque saltos
 * de scroll al recibir foco.
 */
.interruptor > input[type="checkbox"] {
    position: absolute !important;
    inset-inline-start: 0;
    top: 50%;
    inline-size: 1px !important;
    block-size: 1px !important;
    min-inline-size: 1px !important;
    min-block-size: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    transform: translateY(-50%);
    pointer-events: none;
}
.interruptor > span {
    width: 42px;
    height: 24px;
    flex: 0 0 42px;
    box-sizing: border-box;
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie-secundaria);
    position: relative;
    transition: background var(--transicion), border-color var(--transicion), box-shadow 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[type="checkbox"]:checked + span { background: var(--texto); }
.interruptor > input[type="checkbox"]:checked + span::after { transform: translateX(18px); background: var(--superficie); }
.interruptor > input[type="checkbox"]:focus-visible + span { outline: 2px solid var(--texto); outline-offset: 3px; }
.interruptor > input[type="checkbox"]:disabled + span,
.interruptor[aria-disabled="true"] > span { opacity: .58; cursor: not-allowed; }
.interruptor[aria-busy="true"] { cursor: progress; }
.interruptor[aria-busy="true"] > span { opacity: .72; }
.interruptor > div { min-width: 0; 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;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    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: 12px;
    overflow: visible;
    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 nav {
    flex: 1 1 auto;
    min-height: 0;
    width: calc(100% + 24px);
    margin-inline: -12px;
    padding: 8px 12px;
    box-sizing: border-box;
    align-items: center;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
}
.sidebar-editor-global nav::-webkit-scrollbar { display: none; }
.sidebar-editor-global > div { flex: 0 0 auto; margin-top: 0; }
.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); }

/* Reserva el extremo derecho para el salto al final sin superponer El Escribano. */
.pagina-editor .escribano-flotante { right: 82px; }

.sidebar-editor-global .acceso-gabinete-editor { position: relative; }
.sidebar-editor-global .acceso-gabinete-editor.activo { background: var(--texto); color: var(--superficie); }
.sidebar-editor-global .marca-pro-sidebar {
    min-width: 18px;
    height: 13px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--texto);
    color: var(--superficie);
    position: absolute;
    right: -3px;
    top: -2px;
    display: grid;
    place-items: center;
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .02em;
}

/* Componente de consulta del Gabinete dentro del editor. No es modal: permanece
   abierto mientras el escritor trabaja y solo se cierra con su botón explícito. */
.visor-gabinete-editor {
    width: min(420px, calc(100vw - 96px));
    height: calc(100vh - 92px);
    min-height: 430px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie);
    box-shadow: 0 22px 60px rgba(0,0,0,.18);
    position: fixed;
    z-index: 90;
    left: 68px;
    top: 76px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-12px) scale(.985);
    transform-origin: left top;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.visor-gabinete-editor.visible {
    opacity: 1;
    visibility: visible;
    transform: translateX(0) scale(1);
    pointer-events: auto;
}
.cabecera-visor-gabinete-editor {
    min-height: 76px;
    padding: 15px 16px;
    border-bottom: 1px solid var(--borde);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.cabecera-visor-gabinete-editor h2 { margin: 0; font-size: 20px; letter-spacing: -.03em; }
.cabecera-visor-gabinete-editor .sobrelinea { margin-bottom: 3px; font-size: 8px; }
.titulo-visor-gabinete-editor { display: flex; align-items: center; gap: 8px; }
.titulo-visor-gabinete-editor > span {
    padding: 3px 7px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    color: var(--texto-secundario);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.vista-lista-gabinete-editor { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.buscador-gabinete-editor { margin: 14px 14px 8px; position: relative; display: flex; align-items: center; }
.buscador-gabinete-editor > svg { width: 16px; height: 16px; position: absolute; left: 12px; color: var(--texto-secundario); pointer-events: none; }
.buscador-gabinete-editor input {
    width: 100%;
    height: 42px;
    padding: 0 42px 0 38px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie-secundaria);
    color: var(--texto);
    outline: none;
    font-size: 12px;
}
.buscador-gabinete-editor input:focus { border-color: var(--texto); box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 8%, transparent); }
.buscador-gabinete-editor button {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--texto-secundario);
    position: absolute;
    right: 7px;
    display: grid;
    place-items: center;
}
.buscador-gabinete-editor button:hover { background: var(--superficie); color: var(--texto); }
.buscador-gabinete-editor button svg { width: 13px; height: 13px; }
.resumen-gabinete-editor {
    min-height: 28px;
    padding: 0 16px 6px;
    color: var(--texto-secundario);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 10px;
    font-weight: 700;
}
.resumen-gabinete-editor svg { width: 12px; height: 12px; opacity: .55; }
.lista-gabinete-editor { min-height: 0; flex: 1; padding: 0 8px 10px; overflow-y: auto; overscroll-behavior: contain; }
.registro-gabinete-editor {
    width: 100%;
    min-height: 82px;
    padding: 9px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--texto);
    display: grid;
    grid-template-columns: 52px minmax(0,1fr) 18px;
    align-items: center;
    gap: 10px;
    text-align: left;
    cursor: pointer;
}
.registro-gabinete-editor:hover,
.registro-gabinete-editor:focus-visible { background: var(--superficie-secundaria); outline: none; }
.miniatura-registro-gabinete-editor {
    width: 52px;
    height: 60px;
    border: 1px solid var(--borde);
    border-radius: 8px;
    background: var(--superficie-secundaria);
    overflow: hidden;
    display: grid;
    place-items: center;
    color: var(--texto-secundario);
}
.miniatura-registro-gabinete-editor img { width: 100%; height: 100%; object-fit: cover; }
.miniatura-registro-gabinete-editor svg { width: 20px; height: 20px; }
.cuerpo-registro-gabinete-editor { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.cuerpo-registro-gabinete-editor > strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.cuerpo-registro-gabinete-editor > small {
    color: var(--texto-secundario);
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-size: 10px;
    line-height: 1.45;
}
.metadato-registro-gabinete-editor { min-width: 0; display: flex; align-items: center; gap: 7px; }
.metadato-registro-gabinete-editor b { color: var(--texto-secundario); font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.metadato-registro-gabinete-editor em { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--texto-secundario); font-size: 8px; font-style: normal; }
.flecha-registro-gabinete-editor { width: 15px; height: 15px; color: var(--texto-secundario); }
.cargando-gabinete-editor,
.estado-vacio-gabinete-editor {
    min-height: 210px;
    padding: 28px;
    color: var(--texto-secundario);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    text-align: center;
}
.cargando-gabinete-editor span { width: 24px; height: 24px; border: 2px solid var(--borde); border-top-color: var(--texto); border-radius: 50%; animation: girar .8s linear infinite; }
.cargando-gabinete-editor strong,
.estado-vacio-gabinete-editor strong { color: var(--texto); font-size: 12px; }
.estado-vacio-gabinete-editor > svg { width: 24px; height: 24px; }
.estado-vacio-gabinete-editor span { max-width: 280px; font-size: 10px; line-height: 1.5; }
.estado-vacio-gabinete-editor button { min-height: 34px; padding: 0 13px; border: 1px solid var(--borde); border-radius: 8px; background: var(--superficie); color: var(--texto); font-size: 10px; font-weight: 750; }
.detalle-gabinete-editor { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.detalle-gabinete-editor[hidden],
.vista-lista-gabinete-editor[hidden] { display: none !important; }
.volver-gabinete-editor {
    min-height: 42px;
    margin: 8px 10px 0;
    padding: 0 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 750;
}
.volver-gabinete-editor:hover { background: var(--superficie-secundaria); color: var(--texto); }
.volver-gabinete-editor svg { width: 14px; height: 14px; }
.contenido-detalle-gabinete-editor { padding: 4px 18px 24px; }
.imagen-detalle-gabinete-editor { margin: 0 0 16px; border: 1px solid var(--borde); border-radius: 12px; overflow: hidden; background: var(--superficie-secundaria); }
.imagen-detalle-gabinete-editor img { width: 100%; max-height: 250px; object-fit: cover; display: block; }
.identidad-detalle-gabinete-editor { padding-bottom: 16px; border-bottom: 1px solid var(--borde); }
.identidad-detalle-gabinete-editor > span { color: var(--texto-secundario); display: inline-flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.identidad-detalle-gabinete-editor > span svg { width: 13px; height: 13px; }
.identidad-detalle-gabinete-editor h3 { margin: 7px 0 8px; font-size: 23px; line-height: 1.15; letter-spacing: -.035em; }
.identidad-detalle-gabinete-editor > div { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.identidad-detalle-gabinete-editor small { color: var(--texto-secundario); display: inline-flex; align-items: center; gap: 5px; font-size: 9px; }
.identidad-detalle-gabinete-editor small svg { width: 12px; height: 12px; }
.campo-detalle-gabinete-editor { padding: 15px 0; border-bottom: 1px solid var(--borde); }
.campo-detalle-gabinete-editor > span { color: var(--texto-secundario); display: block; margin-bottom: 7px; font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.campo-detalle-gabinete-editor p { margin: 0; color: var(--texto); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.65; }
.sin-contenido-detalle-gabinete-editor { margin-top: 16px; padding: 16px; border: 1px dashed var(--borde); border-radius: 10px; color: var(--texto-secundario); font-size: 10px; line-height: 1.5; text-align: center; }
.etiquetas-detalle-gabinete-editor { padding-top: 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.etiquetas-detalle-gabinete-editor span { padding: 5px 8px; border-radius: 999px; background: var(--superficie-secundaria); color: var(--texto-secundario); font-size: 9px; }
.archivo-detalle-gabinete-editor {
    margin-top: 16px;
    padding: 11px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    color: var(--texto);
    display: grid;
    grid-template-columns: 20px minmax(0,1fr) 18px;
    align-items: center;
    gap: 9px;
    text-decoration: none;
}
.archivo-detalle-gabinete-editor:hover { background: var(--superficie-secundaria); }
.archivo-detalle-gabinete-editor > svg { width: 15px; height: 15px; }
.archivo-detalle-gabinete-editor span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.archivo-detalle-gabinete-editor strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; }
.archivo-detalle-gabinete-editor small { color: var(--texto-secundario); font-size: 8px; }
.editor-aplicacion.modo-concentracion-editor .visor-gabinete-editor { display: none !important; }

@media (max-width: 980px) {
    .visor-gabinete-editor { width: min(380px, calc(100vw - 84px)); left: 62px; top: 70px; height: calc(100vh - 82px); }
}
.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; }
/* La elección desde Estructura se refleja de inmediato, sin esperar a que la
   reserva colaborativa responda desde el servidor. Es una señal de navegación,
   no de propiedad del bloqueo. Las marcas de presencia posteriores conservan
   prioridad porque se declaran más adelante en la hoja de estilos. */
.bloque-editor.seleccion-estructura-inmediata {
    box-shadow: inset 3px 0 0 var(--color-seleccion-estructura, #7C3AED);
}
.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-titulo4 .contenido-bloque { font-size: 12pt; line-height: 1.5; font-weight: 700; margin: 14px 0 6px; }
.bloque-titulo5 .contenido-bloque { font-size: 12pt; line-height: 1.5; font-weight: 700; font-style: normal; margin: 12px 0 6px; }
.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; }


/* Composición de bloques de texto en columnas ajustables. */
.qtx-columnas-editor {
    width: 100%;
    display: grid;
    align-items: stretch;
    gap: 0;
}
.qtx-columna-editor {
    min-width: 0;
    padding: 0 10px;
    overflow-wrap: anywhere;
    word-break: normal;
}
.qtx-columna-editor:first-child { padding-left: 0; }
.qtx-columna-editor:last-child { padding-right: 0; }
.qtx-columna-editor > :first-child { margin-top: 0; }
.qtx-columna-editor > :last-child { margin-bottom: 0; }
.qtx-columna-editor:empty::before {
    content: "Escribe en esta columna…";
    color: #aaa;
    pointer-events: none;
}
.asa-columnas-bloque {
    width: 12px;
    min-height: 42px;
    padding: 0;
    border: 0;
    background: transparent;
    display: flex;
    align-items: stretch;
    justify-content: center;
    cursor: col-resize;
    user-select: none;
    touch-action: none;
}
.asa-columnas-bloque span {
    width: 1px;
    min-height: 100%;
    border-radius: 999px;
    background: #d6d6d6;
    transition: width var(--transicion), background var(--transicion);
}
.qtx-columnas-editor:hover .asa-columnas-bloque span,
.asa-columnas-bloque:focus-visible span,
body.redimensionando-columnas-bloque .asa-columnas-bloque span {
    width: 3px;
    background: #111;
}
.asa-columnas-bloque:focus-visible { outline: 2px solid #111; outline-offset: 2px; border-radius: 5px; }
body.redimensionando-columnas-bloque { cursor: col-resize !important; user-select: none !important; }
body.redimensionando-columnas-bloque * { cursor: col-resize !important; }

/* El mismo tallado se conserva en la previsualización, lectura pública y exportación impresa. */
.qtx-bloque-columnas {
    width: 100%;
    display: grid;
    grid-template-columns: var(--qtx-columnas, repeat(2, minmax(0, 1fr)));
    align-items: start;
    gap: 1.15em;
    break-inside: avoid;
    page-break-inside: avoid;
}
.qtx-bloque-columnas .qtx-columna {
    min-width: 0;
    overflow-wrap: anywhere;
}
.qtx-bloque-columnas .qtx-columna > :first-child { margin-top: 0; }
.qtx-bloque-columnas .qtx-columna > :last-child { margin-bottom: 0; }

.panel-columnas-bloque {
    width: min(310px, calc(100vw - 24px));
    padding: 16px;
    border: 1px solid var(--borde);
    border-radius: 18px;
    background: var(--superficie);
    color: var(--texto);
    box-shadow: 0 24px 70px rgba(0,0,0,.18);
    position: fixed;
    z-index: 1900;
    display: none;
}
.panel-columnas-bloque.visible { display: block; animation: aparecer-panel-columnas .16s ease-out; }
@keyframes aparecer-panel-columnas { from { opacity: 0; transform: translateY(5px) scale(.985); } }
.panel-columnas-bloque header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.panel-columnas-bloque header > div { display: flex; flex-direction: column; gap: 2px; }
.panel-columnas-bloque header strong { font-family: Georgia, serif; font-size: 20px; letter-spacing: -.025em; }
.panel-columnas-bloque header button {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: var(--superficie-secundaria);
    color: var(--texto);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.panel-columnas-bloque header button:hover { background: var(--borde); }
.panel-columnas-bloque header button svg { width: 15px; height: 15px; }
.panel-columnas-bloque > p { margin: 13px 0 15px; color: var(--texto-secundario); font-size: 11px; line-height: 1.55; }
.opciones-columnas-bloque {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
}
.opciones-columnas-bloque > button {
    min-width: 0;
    padding: 9px 6px 7px;
    border: 1px solid var(--borde);
    border-radius: 11px;
    background: var(--superficie-secundaria);
    color: var(--texto);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    cursor: pointer;
}
.opciones-columnas-bloque > button:hover,
.opciones-columnas-bloque > button.activo { border-color: var(--texto); background: var(--superficie); }
.opciones-columnas-bloque > button.activo { box-shadow: inset 0 0 0 1px var(--texto); }
.opciones-columnas-bloque > button > span {
    width: 100%;
    height: 25px;
    display: flex;
    gap: 3px;
}
.opciones-columnas-bloque > button i {
    min-width: 0;
    flex: 1;
    border-radius: 3px;
    background: var(--texto);
    opacity: .84;
}
.opciones-columnas-bloque > button small { color: var(--texto-secundario); font-size: 8px; white-space: nowrap; }
.nota-columnas-bloque {
    margin-top: 12px;
    color: var(--texto-secundario);
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 9px;
}
.nota-columnas-bloque svg { width: 13px; height: 13px; }
html[data-tema="oscuro"] .panel-columnas-bloque { box-shadow: 0 24px 75px rgba(0,0,0,.5); }

.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; }
/* El control de salto conserva su aspecto en las vistas públicas y de previsualización. */
.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; }

/* Dentro del editor, salto y concentración forman un par visual y comparten eje inferior. */
.pagina-editor .boton-ir-final,
.pagina-editor .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;
    bottom: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform var(--transicion), box-shadow var(--transicion), background var(--transicion), color var(--transicion), border-color var(--transicion);
}
.pagina-editor .boton-ir-final { right: 18px; }
.pagina-editor .boton-modo-concentracion { left: 18px; }
.pagina-editor .boton-ir-final:hover,
.pagina-editor .boton-modo-concentracion:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgba(0,0,0,.17); }
.pagina-editor .boton-ir-final:focus-visible,
.pagina-editor .boton-modo-concentracion:focus-visible { outline: 3px solid color-mix(in srgb, var(--texto) 22%, transparent); outline-offset: 3px; }

.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; }
.barra-previsualizacion .boton-negro,
.barra-previsualizacion .boton-negro span,
.barra-previsualizacion .boton-negro svg { color: #fff; }
.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);
    height: var(--alto-pagina);
    min-height: var(--alto-pagina);
    padding: var(--margen-superior) var(--margen-derecho) var(--margen-inferior) var(--margen-izquierdo);
    box-sizing: border-box;
    background: #fff;
    color: #000;
    box-shadow: 0 5px 28px rgba(0,0,0,.16);
    position: relative;
    counter-increment: pagina;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.contenido-pagina { flex: 1 1 auto; min-height: 0; }
.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 { flex: 0 0 auto; min-height: 24px; margin-top: auto; 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-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; }
.fragmento-paginado-con-continuacion > :last-child { margin-bottom: 0 !important; }
.fragmento-paginado-continuacion > :first-child { margin-top: 0 !important; }
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 (prefers-reduced-motion: reduce) {
    .fondo-login { transition:none !important; }
    .fondo-login:not(:first-of-type) { opacity:0 !important; }
    .velo-login-transicion { opacity:.08; }
}

@media (min-width: 901px) and (max-height: 860px) {
    .login-presentacion { padding-top: 28px; padding-bottom: 28px; gap: 30px; }
    .login-mensaje h1 { margin-bottom: 15px; font-size: clamp(40px, 4.8vw, 70px); }
    .login-mensaje p { font-size: 16px; line-height: 1.55; }
    .login-panel { padding-top: 16px; padding-bottom: 16px; }
    .login-panel-ilustrado .tarjeta-login { max-height: calc(100dvh - 32px); padding: 20px 22px; gap: 16px; }
    .pestanas-acceso { margin-bottom: 16px; }
    .tarjeta-login .formulario-apilado { gap: 13px; }
    .tarjeta-login h2 { font-size: 30px; }
    .separador-acceso { margin: 12px 0; }
}

@media (min-width: 901px) and (max-height: 700px) {
    .login-presentacion { padding-top: 20px; padding-bottom: 20px; gap: 20px; }
    .login-mensaje h1 { margin-bottom: 11px; font-size: clamp(36px, 4.25vw, 58px); }
    .login-mensaje p { font-size: 15px; line-height: 1.45; }
    .login-presentacion > small { font-size: 12px; }
    .login-panel { padding: 10px 24px; }
    .login-panel-ilustrado .tarjeta-login { max-height: calc(100dvh - 20px); padding: 17px 20px; gap: 12px; border-radius: 20px; }
    .pestanas-acceso { margin-bottom: 12px; }
    .pestanas-acceso button { min-height: 36px; }
    .tarjeta-login .formulario-apilado { gap: 10px; }
    .campo-formulario { gap: 4px; }
    .campo-formulario input { padding-top: 9px; padding-bottom: 9px; }
    .tarjeta-login h2 { font-size: 27px; }
    .tarjeta-login p, .campo-formulario small, .nota-registro { font-size: 11px; }
}

@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; }
    .modal-contenido:not(.modal-configuracion):has(> form) { padding: 0; }
    .modal-contenido:not(.modal-configuracion):has(> form) > .modal-cabecera { padding: 18px; }
    .modal-contenido:not(.modal-configuracion):has(> form) > form { padding: 18px 18px 0; }
    .modal-contenido:not(.modal-configuracion) > form > .acciones-modal:last-child,
    .modal-contenido:not(.modal-configuracion) > form > .acciones-formulario:last-child,
    .modal-contenido .pie-fijo-modal {
        margin-inline: -18px;
        padding: 14px 18px calc(14px + env(safe-area-inset-bottom));
        flex-direction: column-reverse;
    }
    .modal-plan-contenido > .formulario-plan-admin,
    .modal-alerta-producto-admin > form { padding: 0; }
    .modal-plan-contenido .contenido-scroll-modal { padding: 18px; }
    .modal-plan-contenido .pie-fijo-modal,
    .modal-alerta-producto-admin .pie-fijo-modal { margin: 0; }
    .acciones-modal { flex-direction: column-reverse; }
    .acciones-modal .boton,
    .pie-fijo-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); height: var(--alto-pagina); min-height: var(--alto-pagina); margin: 0; box-sizing: border-box; box-shadow: none; overflow: hidden; page-break-after: always; break-after: page; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    .pagina-impresion:last-child { page-break-after: auto; 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-prefijo) 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(--verde-pro, #C7FF2F);
    color: #050505;
    box-shadow: 0 0 0 1px rgba(199,255,47,.12), 0 0 12px rgba(199,255,47,.24);
    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(--verde-pro, #C7FF2F); color: #050505; }
.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); }


.miniatura-novedad-cuenta {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border: 1px solid var(--borde);
    border-radius: 9px;
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
    display: grid;
    place-items: center;
}
.miniatura-novedad-cuenta svg { width: 14px; height: 14px; }
.tarjeta-novedad-cuenta {
    padding: 10px 4px;
    border-bottom: 1px solid var(--borde);
    display: grid;
    grid-template-columns: 28px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
}
.tarjeta-novedad-cuenta:hover { background: var(--superficie-secundaria); }
.tarjeta-novedad-cuenta.no-leida { background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 7%, var(--superficie)); }
.tarjeta-novedad-cuenta > svg { width: 14px; height: 14px; 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 { gap: 7px; font-size: 11px; font-weight: 750; }
.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,
.editor-aplicacion.modo-concentracion-editor .boton-ir-final {
    bottom: 18px;
    background: #000;
    border-color: #000;
    color: #fff;
}
.editor-aplicacion.modo-concentracion-editor .boton-ir-final { right: 18px; }
.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; }
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,
html[data-tema="oscuro"] .editor-aplicacion.modo-concentracion-editor .boton-ir-final {
    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; }
}

/* =========================================================
   Quijotext 1.9.0 · Registro, planes, onboarding y API
   ========================================================= */
.tarjeta-configuracion-ancha { grid-column: 1 / -1; }
.rejilla-api-cuenta { display: flex; gap: 24px; align-items: flex-start; }
.bloque-api-cuenta { flex: 1 1 0; min-width: 0; border: 1px solid var(--borde, #dedede); border-radius: 16px; padding: 18px; }
.cabecera-bloque-config { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.cabecera-bloque-config h3 { margin: 0 0 4px; font-size: 17px; }
.cabecera-bloque-config p { margin: 0; color: var(--texto-suave, #737373); font-size: 13px; }
.lista-credenciales-api { display: flex; flex-direction: column; gap: 8px; }
.credencial-api { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 70px; padding: 12px 14px; border: 1px solid var(--borde, #e2e2e2); border-radius: 12px; background: var(--fondo-tarjeta, #fff); }
.credencial-api > div { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.credencial-api code { display: block; max-width: 100%; color: var(--texto-suave, #666); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.credencial-api small { color: var(--texto-suave, #777); }
.credencial-api.desactivada { opacity: .55; }
.estado-vacio-compacto { padding: 22px 8px; margin: 0; text-align: center; color: var(--texto-suave, #777); }
.ayuda-api { margin: 16px 0 0; font-size: 13px; color: var(--texto-suave, #777); }
.ayuda-api a { color: inherit; text-underline-offset: 3px; }
.estado-modulo-bloqueado { display: flex; align-items: center; gap: 16px; padding: 18px; border: 1px dashed var(--borde, #ccc); border-radius: 14px; }
.estado-modulo-bloqueado > div { flex: 1; }
.estado-modulo-bloqueado p { margin: 4px 0 0; color: var(--texto-suave, #777); }
.grupo-permisos-api { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.grupo-permisos-api legend { width: 100%; margin-bottom: 6px; font-weight: 700; }
.grupo-permisos-api label { flex: 1 1 calc(50% - 4px); display: flex; gap: 9px; align-items: center; min-height: 44px; padding: 10px 12px; border: 1px solid var(--borde, #ddd); border-radius: 10px; cursor: pointer; }

/* Acceso híbrido y registro */
.tarjeta-acceso-hibrido { width: min(100%, 510px); }
.pestanas-acceso { display: flex; gap: 4px; padding: 4px; margin-bottom: 28px; border: 1px solid var(--borde, #ddd); border-radius: 12px; background: var(--fondo-secundario, #f5f5f5); }
.pestanas-acceso button { flex: 1; min-height: 42px; border: 0; border-radius: 9px; background: transparent; font-weight: 700; color: var(--texto-suave, #666); cursor: pointer; }
.pestanas-acceso button.activo { background: var(--fondo-tarjeta, #fff); color: var(--texto, #111); box-shadow: 0 1px 5px rgba(0,0,0,.07); }
.acceso-google { min-height: 44px; display: flex; justify-content: center; }
.acceso-google > div { width: 100%; }
.separador-acceso { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--texto-suave, #777); font-size: 12px; }
.separador-acceso::before,.separador-acceso::after { content: ""; height: 1px; flex: 1; background: var(--borde, #ddd); }
.casilla-condiciones { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.5; color: var(--texto-suave, #666); }
.casilla-condiciones input { margin-top: 3px; }
.casilla-condiciones a { color: inherit; }
.nota-registro { text-align: center; color: var(--texto-suave, #777); line-height: 1.5; }

/* Onboarding */
.pagina-onboarding { min-height: 100dvh; background: #f2eee5; }
.onboarding-contenedor { min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; padding: 34px 18px; }
.onboarding-marca { width: min(100%, 760px); display: flex; align-items: center; gap: 12px; }
.tarjeta-onboarding { width: min(100%, 760px); padding: clamp(26px, 5vw, 52px); border: 1px solid #dcd6ca; border-radius: 24px; background: #fff; box-shadow: 0 18px 60px rgba(56,45,25,.08); }
.tarjeta-onboarding h1 { margin: 8px 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(34px, 5vw, 54px); line-height: 1.02; }
.tarjeta-onboarding > p { margin: 0 0 28px; color: #666; font-size: 17px; line-height: 1.6; }
.opciones-tipo-obra { display: flex; flex-wrap: wrap; gap: 10px; }
.opciones-tipo-obra label { flex: 1 1 calc(33.333% - 10px); min-width: 170px; }
.opciones-tipo-obra input { position: absolute; opacity: 0; pointer-events: none; }
.opciones-tipo-obra span { min-height: 92px; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 16px; border: 1px solid #dedede; border-radius: 14px; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.opciones-tipo-obra input:checked + span { color: #fff; background: #000; border-color: #000; }
.opciones-tipo-obra span:hover { transform: translateY(-1px); border-color: #999; }
.boton-saltar-onboarding { align-self: center; }

/* Planes */
.rejilla-planes-admin,.rejilla-planes-publicos { display: flex; flex-wrap: wrap; gap: 18px; align-items: stretch; }
.tarjeta-plan-admin,.tarjeta-plan-publica { flex: 1 1 290px; max-width: 430px; display: flex; flex-direction: column; gap: 16px; padding: 22px; border: 1px solid var(--borde, #ddd); border-radius: 18px; background: var(--fondo-tarjeta, #fff); }
.tarjeta-plan-admin.destacado,.tarjeta-plan-publica.destacado { border-color: #111; box-shadow: 0 12px 36px rgba(0,0,0,.08); }
.tarjeta-plan-admin header,.tarjeta-plan-admin footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.tarjeta-plan-admin h2 { margin: 3px 0 0; font-size: 24px; }
.tarjeta-plan-admin p { min-height: 48px; margin: 0; color: var(--texto-suave, #666); line-height: 1.5; }
.estado-plan { padding: 5px 8px; border-radius: 999px; background: #eee; font-size: 11px; font-weight: 700; }
.estado-plan.activo { background: #111; color: #fff; }
.precios-plan-admin { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.precios-plan-admin strong { font-size: 26px; }
.precios-plan-admin small { font-size: 12px; color: var(--texto-suave, #777); }
.metricas-plan-admin { display: flex; flex-wrap: wrap; gap: 8px; }
.metricas-plan-admin span { flex: 1; min-width: 80px; padding: 10px; border-radius: 10px; background: var(--fondo-secundario, #f5f5f5); font-size: 12px; }
.metricas-plan-admin strong { display: block; font-size: 17px; }
.nota-modulos-futuros { display: flex; gap: 14px; margin-top: 20px; padding: 18px; border: 1px dashed var(--borde, #ccc); border-radius: 14px; }
.lista-modulos-plan { display: flex; flex-direction: column; gap: 8px; }
.lista-modulos-plan h4 { margin: 18px 0 2px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.modulo-plan { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--borde, #ddd); border-radius: 12px; cursor: pointer; }
.modulo-plan > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.modulo-plan small { color: var(--texto-suave, #777); }
.icono-modulo { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 9px; background: var(--fondo-secundario, #f4f4f4); }
.rejilla-limites-plan { display: flex; flex-wrap: wrap; gap: 10px; }
.rejilla-limites-plan label { flex: 1 1 150px; display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 700; }
.rejilla-limites-plan input { min-height: 44px; padding: 0 12px; border: 1px solid var(--borde, #ddd); border-radius: 10px; background: transparent; color: inherit; }

/* Administración de usuarios */
.tabla-usuarios-saas td strong + small,.tabla-usuarios-saas td span + small { display: block; margin-top: 4px; }
.insignia-suave { background: var(--fondo-secundario, #f2f2f2); color: var(--texto, #222); }
.texto-apagado { color: var(--texto-suave, #888); }

/* Integraciones */
.lista-integraciones-admin { display: flex; flex-direction: column; gap: 18px; max-width: 1040px; }
.tarjeta-integracion { padding: 22px; border: 1px solid var(--borde, #ddd); border-radius: 18px; background: var(--fondo-tarjeta, #fff); }
.tarjeta-integracion > header { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.tarjeta-integracion > header > div:nth-child(2) { flex: 1; }
.tarjeta-integracion h2 { margin: 0 0 4px; }
.tarjeta-integracion header p { margin: 0; color: var(--texto-suave, #777); }
.bloque-webhook { display: flex; flex-direction: column; gap: 6px; padding: 14px; border-radius: 12px; background: var(--fondo-secundario, #f5f5f5); overflow: hidden; }
.bloque-webhook code { overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .rejilla-api-cuenta { flex-direction: column; }
    .bloque-api-cuenta { width: 100%; }
    .pagina-login { height: auto; min-height: 100dvh; overflow: auto; }
    .login-contenedor { height: auto; min-height: 100dvh; display: block; overflow: visible; }
    .login-presentacion { min-height: auto; padding: 32px 24px 36px; }
    .login-presentacion .login-mensaje { margin: 70px 0 40px; }
    .login-presentacion .login-mensaje h1 { font-size: clamp(46px, 10vw, 78px); }
    .login-panel { height: auto; min-height: auto; padding: 32px 18px 54px; overflow: visible; }
    .login-panel-ilustrado .tarjeta-login { max-height: none; overflow: visible; scrollbar-gutter: auto; }
    .fondo-login { background-position: center top; }
    .tabla-administracion-contenedor { overflow-x: auto; }
    .tabla-usuarios-saas { min-width: 980px; }
}

@media (max-width: 620px) {
    .login-presentacion { padding: 24px 20px 28px; }
    .login-presentacion .login-mensaje { margin: 54px 0 30px; }
    .login-presentacion .login-mensaje h1 { font-size: clamp(40px, 14vw, 62px); line-height: .98; }
    .login-presentacion .login-mensaje p { font-size: 16px; line-height: 1.55; }
    .login-panel { padding: 24px 14px 42px; }
    .fondo-login { background-position: center top; }
    .tarjeta-login { padding: 22px 18px; border-radius: 18px; }
    .pestanas-acceso { margin-bottom: 22px; }
    .tarjeta-onboarding { padding: 24px 18px; border-radius: 18px; }
    .tarjeta-onboarding h1 { font-size: 38px; }
    .opciones-tipo-obra { gap: 8px; }
    .opciones-tipo-obra label { flex-basis: calc(50% - 4px); min-width: 0; }
    .opciones-tipo-obra span { min-height: 86px; padding: 12px; font-size: 13px; }
    .rejilla-formulario-doble { grid-template-columns: 1fr !important; }
    .cabecera-pagina { align-items: flex-start; gap: 14px; }
    .cabecera-pagina > .boton { width: 100%; }
    .contenido-admin { padding-inline: 14px; }
    .tarjeta-integracion { padding: 16px; }
    .tarjeta-integracion > header { align-items: flex-start; }
    .tarjeta-plan-admin,.tarjeta-plan-publica { max-width: none; flex-basis: 100%; }
    .grupo-permisos-api label { flex-basis: 100%; }
    .estado-modulo-bloqueado { align-items: flex-start; flex-wrap: wrap; }
    .estado-modulo-bloqueado .boton { width: 100%; }
}


/* ===== Ajustes 1.9.1 ===== */
.mensaje-acceso-inline{margin:14px 0 6px;padding:12px 14px;border-radius:14px;border:1px solid var(--borde);background:rgba(255,255,255,.75);font-size:.95rem;line-height:1.45;color:var(--texto);} 
.pagina-login[data-tema="oscuro"] .mensaje-acceso-inline,.pagina-login .mensaje-acceso-inline{backdrop-filter:blur(10px);} 
.mensaje-acceso-inline.error{border-color:#cf2e2e;background:rgba(207,46,46,.08);color:#7e1111;} 
.mensaje-acceso-inline.correcto{border-color:#1f7a45;background:rgba(31,122,69,.08);color:#14532d;} 

.hero-planes-quijotext{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr);gap:24px;align-items:stretch;margin-bottom:24px;} 
.hero-planes-contenido,.hero-planes-resumen{border:1px solid var(--borde);border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(245,245,245,.96));padding:28px;} 
[data-tema="oscuro"] .hero-planes-contenido,[data-tema="oscuro"] .hero-planes-resumen{background:linear-gradient(180deg,rgba(16,16,16,.96),rgba(10,10,10,.96));} 
.hero-planes-contenido h1{font-size:clamp(2.2rem,4vw,4rem);line-height:.98;max-width:12ch;margin:8px 0 14px;} 
.hero-planes-contenido p{max-width:68ch;color:var(--texto-secundario);} 
.hero-planes-puntos{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:20px;} 
.hero-planes-puntos span,.hero-planes-resumen strong,.hero-planes-resumen span,.hero-planes-resumen small{display:flex;align-items:center;gap:8px;} 
.hero-planes-puntos span{padding:10px 14px;border-radius:999px;border:1px solid var(--borde);background:rgba(255,255,255,.75);} 
[data-tema="oscuro"] .hero-planes-puntos span{background:rgba(255,255,255,.03);} 
.hero-planes-resumen{display:flex;flex-direction:column;justify-content:center;gap:8px;} 
.hero-planes-resumen strong{font-size:.82rem;text-transform:uppercase;letter-spacing:.18em;color:var(--texto-secundario);} 
.hero-planes-resumen span{font-size:1.75rem;font-weight:800;} 
.hero-planes-resumen small{line-height:1.5;color:var(--texto-secundario);} 
.aviso-prueba-destacado{margin-bottom:22px;} 
.rejilla-planes-quijotext{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;} 
.tarjeta-plan-quijotext{display:flex;flex-direction:column;gap:18px;border:1px solid var(--borde);border-radius:30px;padding:24px;background:var(--superficie);box-shadow:0 16px 45px rgba(0,0,0,.04);} 
.tarjeta-plan-quijotext.destacado{border-color:#000;box-shadow:0 22px 60px rgba(0,0,0,.1);} 
[data-tema="oscuro"] .tarjeta-plan-quijotext.destacado{border-color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.32);} 
.tarjeta-plan-quijotext.actual{outline:2px solid rgba(0,0,0,.1);} 
[data-tema="oscuro"] .tarjeta-plan-quijotext.actual{outline-color:rgba(255,255,255,.12);} 
.banda-plan-quijotext{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--texto-secundario);} 
.banda-plan-quijotext small{padding:7px 10px;border-radius:999px;background:#000;color:#fff;letter-spacing:.06em;} 
[data-tema="oscuro"] .banda-plan-quijotext small{background:#fff;color:#000;} 
.cabecera-tarjeta-plan{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;} 
.cabecera-tarjeta-plan h2{font-size:2rem;margin:0 0 6px;} 
.cabecera-tarjeta-plan p{margin:0;color:var(--texto-secundario);line-height:1.55;} 
.insignia-plan-actual{padding:8px 12px;border-radius:999px;border:1px solid var(--borde);font-weight:700;font-size:.85rem;white-space:nowrap;} 
.precio-plan-quijotext{display:flex;flex-direction:column;gap:2px;padding:18px 0;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde);} 
.precio-plan-quijotext strong{font-size:2.1rem;line-height:1;font-weight:800;} 
.precio-plan-quijotext span,.precio-plan-quijotext small{color:var(--texto-secundario);} 
.resumen-limites-plan{display:grid;grid-template-columns:1fr;gap:10px;} 
.resumen-limites-plan span{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:16px;background:rgba(0,0,0,.03);} 
[data-tema="oscuro"] .resumen-limites-plan span{background:rgba(255,255,255,.05);} 
.lista-beneficios-plan-bonita{display:grid;gap:10px;margin:0;padding:0;list-style:none;} 
.lista-beneficios-plan-bonita li{display:flex;align-items:flex-start;gap:10px;} 
.lista-beneficios-plan-bonita li i{margin-top:3px;} 
.acciones-plan-quijotext{display:flex;flex-direction:column;gap:10px;margin-top:auto;} 

.boton-pro-bloqueado{opacity:.72 !important;cursor:not-allowed !important;position:relative;} 
.boton-pro-bloqueado:hover{opacity:.9 !important;} 
.panel-editor.bloqueado-plan{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:22px;} 
.panel-pro-bloqueado{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%;padding:22px;border:1px dashed var(--borde);border-radius:22px;background:rgba(0,0,0,.025);} 
[data-tema="oscuro"] .panel-pro-bloqueado{background:rgba(255,255,255,.03);} 
.panel-pro-bloqueado i{width:42px;height:42px;padding:10px;border-radius:14px;background:#000;color:#fff;} 
[data-tema="oscuro"] .panel-pro-bloqueado i{background:#fff;color:#000;} 
.panel-pro-bloqueado strong{font-size:1.05rem;} 
.panel-pro-bloqueado p{margin:0;color:var(--texto-secundario);line-height:1.6;} 

.opciones-tipo-obra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch;} 
.opciones-tipo-obra label{height:100%;display:flex;} 
.opciones-tipo-obra label span{display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:116px;width:100%;} 
.opciones-tipo-obra label strong{line-height:1.25;display:block;} 

@media (max-width: 1100px){
  .hero-planes-quijotext{grid-template-columns:1fr;}
}
@media (max-width: 900px){
  .opciones-tipo-obra{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 680px){
  .hero-planes-contenido h1{max-width:none;}
  .opciones-tipo-obra{grid-template-columns:1fr;}
  .hero-planes-contenido,.hero-planes-resumen,.tarjeta-plan-quijotext{padding:20px;}
}


/* ===== Ajustes 1.9.2: funciones Pro visibles ===== */
.navegacion-configuracion .pestana-config-pro-bloqueada {
    position: relative;
    opacity: .58;
    cursor: not-allowed;
}
.navegacion-configuracion .pestana-config-pro-bloqueada span { flex: 1; text-align: left; }
.navegacion-configuracion .pestana-config-pro-bloqueada small {
    margin-left: auto;
    padding: 3px 7px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.navegacion-configuracion .pestana-config-pro-bloqueada svg:last-child { width: 14px; height: 14px; }
.navegacion-configuracion .pestana-config-pro-bloqueada:hover { opacity: .82; }

.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada { cursor: not-allowed; }
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada > span {
    position: relative;
    opacity: .58;
    border-style: dashed;
    cursor: not-allowed;
}
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada:hover > span { opacity: .82; }
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada strong {
    display: flex;
    align-items: center;
    gap: 8px;
}
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada strong em {
    font-style: normal;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 7px;
    border: 1px solid var(--borde);
    border-radius: 999px;
}
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada b {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 9px;
    border-radius: 10px;
    background: var(--texto);
    color: var(--fondo);
    font-size: 11px;
    font-weight: 700;
    opacity: 0;
    transform: translateY(4px);
    pointer-events: none;
    transition: opacity var(--transicion), transform var(--transicion);
}
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada b svg { width: 13px; height: 13px; }
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada:hover b {
    opacity: 1;
    transform: translateY(0);
}


/* ===== Quijotext 2.0.0 · Gabinete y El Escribano ===== */
.enlace-sidebar-bloqueado{opacity:.72;position:relative}.candado-sidebar-modulo{width:14px!important;height:14px!important;margin-left:auto}.enlace-sidebar-bloqueado:hover{opacity:1}
.cabecera-gabinete{align-items:flex-end}.cabecera-gabinete p{max-width:720px}.barra-gabinete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde)}.buscador-gabinete{display:flex;align-items:center;gap:10px;flex:1 1 320px;min-width:220px;height:46px;padding:0 14px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie)}.buscador-gabinete input{width:100%;border:0;outline:0;background:transparent;color:var(--texto);font:inherit}.filtros-gabinete{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.filtros-gabinete::-webkit-scrollbar{display:none}.filtros-gabinete button,.selector-vista-gabinete button{height:42px;padding:0 12px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);color:var(--texto);display:inline-flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer}.filtros-gabinete button.activo,.selector-vista-gabinete button.activo{background:var(--negro);color:var(--blanco);border-color:var(--negro)}html[data-tema="oscuro"] .filtros-gabinete button.activo,html[data-tema="oscuro"] .selector-vista-gabinete button.activo{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}.selector-vista-gabinete{display:flex;gap:6px}.selector-vista-gabinete button{width:42px;padding:0;justify-content:center}.resumen-gabinete{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;color:var(--texto-secundario);font-size:13px}.resumen-gabinete select{max-width:260px;border:1px solid var(--borde);border-radius:10px;padding:9px 11px;background:var(--superficie);color:var(--texto)}.registros-gabinete.vista-cuadricula{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.registros-gabinete.vista-lista{display:flex;flex-direction:column;gap:10px}.registros-gabinete.cargando{opacity:.55;pointer-events:none}.tarjeta-registro-gabinete{position:relative;display:flex;gap:14px;border:1px solid var(--borde);border-radius:18px;background:var(--superficie);padding:16px;min-width:0}.vista-cuadricula .tarjeta-registro-gabinete{flex-direction:column;min-height:255px}.visual-registro-gabinete{width:54px;height:54px;flex:0 0 54px;border-radius:14px;background:var(--superficie-secundaria);display:grid;place-items:center;overflow:hidden}.vista-cuadricula .visual-registro-gabinete{width:100%;height:116px;flex-basis:116px}.visual-registro-gabinete img{width:100%;height:100%;object-fit:cover}.visual-registro-gabinete>svg{width:24px;height:24px}.cuerpo-registro-gabinete{min-width:0;flex:1}.tipo-registro-gabinete{font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--texto-secundario)}.cuerpo-registro-gabinete h2{font-size:17px;margin:5px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cuerpo-registro-gabinete small{display:flex;align-items:center;gap:5px;color:var(--texto-secundario)}.cuerpo-registro-gabinete p{margin:8px 0 0;color:var(--texto-secundario);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.acciones-registro-gabinete{display:flex;gap:5px;align-self:flex-start}.acciones-registro-gabinete button{width:32px;height:32px;border:1px solid var(--borde);border-radius:9px;background:var(--superficie);color:var(--texto);display:grid;place-items:center;cursor:pointer}.acciones-registro-gabinete button svg{width:15px;height:15px}.vista-cuadricula .acciones-registro-gabinete{position:absolute;top:26px;right:26px}.etiquetas-registro-gabinete{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.etiquetas-registro-gabinete span{padding:5px 8px;border-radius:999px;background:var(--superficie-secundaria);font-size:10px}.estado-gabinete-vacio{grid-column:1/-1;min-height:330px;border:1px dashed var(--borde);border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;color:var(--texto-secundario)}.estado-gabinete-vacio strong{color:var(--texto)}.modal-gabinete{width:min(760px,calc(100vw - 30px));max-height:min(820px,calc(100vh - 30px));overflow:auto}.campo-archivo-gabinete input{padding:14px;border:1px dashed var(--borde);border-radius:12px}.entrada-etiquetas-gabinete{min-height:48px;border:1px solid var(--borde);border-radius:12px;padding:7px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.entrada-etiquetas-gabinete input{border:0!important;outline:0;min-width:180px;flex:1;padding:6px!important}.entrada-etiquetas-gabinete>div{display:flex;gap:5px;flex-wrap:wrap}.entrada-etiquetas-gabinete button{border:0;border-radius:999px;background:#000;color:#fff;padding:6px 9px;display:flex;gap:5px;align-items:center;font-size:11px}.sugerencias-etiquetas-gabinete{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.sugerencias-etiquetas-gabinete button{border:1px solid var(--borde);border-radius:999px;background:var(--superficie);color:var(--texto);padding:6px 9px;cursor:pointer}

.escribano-flotante{position:fixed;right:22px;bottom:20px;z-index:1450}.burbuja-escribano{position:relative;width:68px;height:68px;padding:0;border:3px solid #050505;border-radius:50%;background:#050505;box-shadow:0 18px 45px rgba(0,0,0,.2);cursor:pointer;overflow:visible}.burbuja-escribano img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.alerta-escribano{position:absolute;right:-1px;top:-2px;width:16px;height:16px;border-radius:50%;background:var(--verde-escribano);border:3px solid var(--superficie);box-shadow:0 0 0 2px rgba(0,0,0,.08)}.alerta-escribano.visible{animation:respirar-escribano 1.8s ease-in-out infinite}@keyframes respirar-escribano{50%{transform:scale(1.18)}}.candado-escribano{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:#000;color:#fff;border:2px solid #fff;display:grid;place-items:center}.candado-escribano svg{width:12px;height:12px}.panel-escribano{position:absolute;right:0;bottom:82px;width:min(430px,calc(100vw - 30px));height:min(650px,calc(100vh - 120px));border:1px solid var(--borde);border-radius:24px;background:var(--superficie);box-shadow:0 28px 80px rgba(0,0,0,.22);display:none;grid-template-rows:auto auto 1fr auto auto;overflow:hidden}.panel-escribano.visible{display:grid}.cabecera-escribano{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--borde)}.identidad-escribano{display:flex;align-items:center;gap:10px}.identidad-escribano img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #000}.identidad-escribano div{display:flex;flex-direction:column}.identidad-escribano strong{font-size:15px}.cabecera-escribano>div:last-child{display:flex;gap:4px}.cabecera-escribano button{width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--texto);display:grid;place-items:center;cursor:pointer}.cabecera-escribano button:hover{background:var(--superficie-secundaria)}.contexto-escribano{display:flex;align-items:center;gap:8px;padding:9px 16px;border-bottom:1px solid var(--borde);color:var(--texto-secundario);font-size:11px}.contexto-escribano svg{width:14px;height:14px}.mensajes-escribano{overflow:auto;padding:18px 16px;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin}.mensaje-escribano{max-width:92%;display:flex;flex-direction:column;gap:5px}.mensaje-escribano.usuario{align-self:flex-end}.mensaje-escribano>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--texto-secundario)}.mensaje-escribano.usuario>span{text-align:right}.mensaje-escribano>div{padding:12px 14px;border-radius:16px;background:var(--superficie-secundaria);line-height:1.58;font-size:14px}.mensaje-escribano.usuario>div{background:#000;color:#fff;border-bottom-right-radius:5px}.mensaje-escribano.asistente>div{border-bottom-left-radius:5px}.mensaje-escribano.pensando>div{display:flex;gap:5px;width:max-content}.mensaje-escribano.pensando i{width:6px;height:6px;border-radius:50%;background:var(--texto-secundario);animation:pensar-escribano 1.15s infinite ease-in-out}.mensaje-escribano.pensando i:nth-child(2){animation-delay:.15s}.mensaje-escribano.pensando i:nth-child(3){animation-delay:.3s}@keyframes pensar-escribano{50%{opacity:.25;transform:translateY(-3px)}}.composer-escribano{margin:0 12px 8px;padding:8px 8px 8px 12px;border:1px solid var(--borde);border-radius:16px;display:flex;align-items:flex-end;gap:8px;background:var(--superficie)}.composer-escribano textarea{flex:1;max-height:150px;resize:none;border:0;outline:0;background:transparent;color:var(--texto);font:inherit;line-height:1.5;padding:7px 0}.composer-escribano button{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:12px;background:#000;color:#fff;display:grid;place-items:center;cursor:pointer}.composer-escribano.bloqueado{opacity:.5;pointer-events:none}.nota-escribano{padding:0 14px 12px;color:var(--texto-secundario);font-size:10px;text-align:center}
.pestanas-integraciones-admin{display:flex;gap:7px;overflow-x:auto;margin:0 0 18px;padding:5px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie-secundaria);scrollbar-width:none}.pestanas-integraciones-admin::-webkit-scrollbar{display:none}.pestanas-integraciones-admin button{flex:1 0 160px;height:46px;border:0;border-radius:11px;background:transparent;color:var(--texto);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer}.pestanas-integraciones-admin button.activo{background:var(--superficie);box-shadow:0 2px 8px rgba(0,0,0,.06)}.paneles-integraciones-admin .tarjeta-integracion{max-width:none}.aviso-integracion-segura{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria)}.aviso-integracion-segura div{display:flex;flex-direction:column;gap:3px}.aviso-integracion-segura span{color:var(--texto-secundario);font-size:12px;line-height:1.5}
.configuracion-escribano-admin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tarjeta-config-escribano{padding:22px;border:1px solid var(--borde);border-radius:20px;background:var(--superficie);display:flex;flex-direction:column;gap:18px}.tarjeta-config-escribano:nth-child(3){grid-column:1/-1}.tarjeta-config-escribano>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.tarjeta-config-escribano h2{margin:4px 0 0}.rejilla-formulario-triple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.catalogo-contexto-gabinete{display:flex;flex-direction:column;gap:12px}.catalogo-contexto-gabinete>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.catalogo-contexto-gabinete label input{position:absolute;opacity:0}.catalogo-contexto-gabinete label span{min-height:52px;padding:11px;border:1px solid var(--borde);border-radius:12px;display:flex;align-items:center;gap:8px;cursor:pointer}.catalogo-contexto-gabinete label input:checked+span{background:#000;color:#fff;border-color:#000}.pie-config-escribano{grid-column:1/-1;position:sticky;bottom:0;z-index:3;padding:14px 18px;border:1px solid var(--borde);border-radius:18px;background:color-mix(in srgb,var(--superficie) 94%,transparent);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;gap:16px}.pie-config-escribano>div{display:flex;align-items:center;gap:9px;color:var(--texto-secundario);font-size:12px}

@media(max-width:1050px){.configuracion-escribano-admin{grid-template-columns:1fr}.tarjeta-config-escribano:nth-child(3),.pie-config-escribano{grid-column:auto}.rejilla-formulario-triple{grid-template-columns:1fr 1fr}.catalogo-contexto-gabinete>div{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.cabecera-gabinete{align-items:flex-start}.contenido-gabinete{padding-inline:16px}.barra-gabinete{position:sticky;top:0;z-index:10;background:var(--fondo);padding:10px 0}.filtros-gabinete{order:3;width:100%}.resumen-gabinete{align-items:stretch;flex-direction:column}.resumen-gabinete select{max-width:none}.registros-gabinete.vista-cuadricula{grid-template-columns:1fr}.vista-lista .tarjeta-registro-gabinete{padding:12px}.panel-escribano{right:-6px;bottom:78px;width:calc(100vw - 28px);height:min(72vh,650px);border-radius:20px}.escribano-flotante{right:16px;bottom:16px}.burbuja-escribano{width:62px;height:62px}.rejilla-formulario-triple,.catalogo-contexto-gabinete>div{grid-template-columns:1fr}.pie-config-escribano{flex-direction:column;align-items:stretch}.pestanas-integraciones-admin button{flex-basis:130px}.pestanas-integraciones-admin button span{display:none}}
@media print{.escribano-flotante{display:none!important}}

.metricas-escribano-admin{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 18px}.metricas-escribano-admin article{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--borde);border-radius:18px;background:var(--superficie)}.metricas-escribano-admin span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--texto-secundario);font-weight:800}.metricas-escribano-admin strong{font-size:1.45rem}.metricas-escribano-admin small{color:var(--texto-secundario)}
@media(max-width:1200px){.metricas-escribano-admin{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.metricas-escribano-admin{grid-template-columns:repeat(2,minmax(0,1fr))}}

.archivo-fuente-gabinete{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;color:var(--texto);font-size:12px;font-weight:700;text-decoration:none;padding:7px 10px;border:1px solid var(--borde);border-radius:999px}.archivo-fuente-gabinete:hover{background:var(--superficie-secundaria)}.archivo-fuente-gabinete svg{width:14px;height:14px}


/* ===== Quijotext 2.0.1 · estabilidad de El Escribano y Gabinete compacto ===== */
.catalogo-contexto-gabinete>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.boton-contexto-gabinete{min-height:58px;padding:12px 14px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie);color:var(--texto);display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;font:inherit;transition:background var(--transicion),color var(--transicion),border-color var(--transicion)}
.boton-contexto-gabinete>span{flex:1;min-width:0}
.boton-contexto-gabinete .marca-contexto-gabinete{opacity:0;width:17px;height:17px}
.boton-contexto-gabinete.activo{background:var(--negro);color:var(--blanco);border-color:var(--negro)}
.boton-contexto-gabinete.activo .marca-contexto-gabinete{opacity:1}
html[data-tema="oscuro"] .boton-contexto-gabinete.activo{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.boton-contexto-gabinete:focus-visible{outline:3px solid color-mix(in srgb,var(--texto) 22%,transparent);outline-offset:2px}

.imagen-universal-gabinete{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie-secundaria)}
.cabecera-imagen-gabinete{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cabecera-imagen-gabinete>div{display:flex;flex-direction:column;gap:3px}.cabecera-imagen-gabinete span{font-size:12px;color:var(--texto-secundario)}
.selector-imagen-gabinete{display:block;cursor:pointer}.selector-imagen-gabinete input{position:absolute;opacity:0;pointer-events:none}
.selector-imagen-gabinete>span{min-height:116px;border:1px dashed var(--borde);border-radius:14px;background:var(--superficie);display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;text-align:left;overflow:hidden}
.selector-imagen-gabinete>span>svg{width:26px;height:26px}.selector-imagen-gabinete>span>strong,.selector-imagen-gabinete>span>small{display:block}.selector-imagen-gabinete>span>small{color:var(--texto-secundario);margin-top:3px}
.selector-imagen-gabinete img{width:86px;height:86px;border-radius:12px;object-fit:cover;flex:0 0 86px}
.quitar-imagen-gabinete{align-self:flex-start;display:inline-flex;align-items:center;gap:7px}

.tarjeta-registro-gabinete{min-height:0}
.vista-cuadricula .tarjeta-registro-gabinete{min-height:260px}
.fila-principal-registro-gabinete{min-width:0}
.fila-principal-registro-gabinete h2{font-size:17px;margin:5px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fila-principal-registro-gabinete p{margin:0;color:var(--texto-secundario);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.metadatos-registro-gabinete{display:flex;align-items:center;gap:7px 14px;flex-wrap:wrap;margin-top:9px;color:var(--texto-secundario);font-size:11px;min-width:0}
.metadatos-registro-gabinete span,.metadatos-registro-gabinete a{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;color:inherit}
.metadatos-registro-gabinete svg{width:14px;height:14px;flex:0 0 14px}
.metadatos-registro-gabinete span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.registros-gabinete.vista-lista .tarjeta-registro-gabinete{align-items:center;padding:10px 12px;gap:12px;border-radius:14px;min-height:76px}
.registros-gabinete.vista-lista .visual-registro-gabinete{width:52px;height:52px;flex:0 0 52px;border-radius:12px}
.registros-gabinete.vista-lista .cuerpo-registro-gabinete{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.5fr);grid-template-rows:auto auto;column-gap:18px;align-items:center;min-width:0}
.registros-gabinete.vista-lista .tipo-registro-gabinete{grid-column:1;grid-row:1;align-self:end}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete{grid-column:1 / -1;grid-row:1 / 3;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.5fr);column-gap:18px;align-items:center;pointer-events:none}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete h2{grid-column:1;margin:17px 0 0;font-size:15px;line-height:1.2}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete p{grid-column:2;margin:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.registros-gabinete.vista-lista .metadatos-registro-gabinete{grid-column:2;grid-row:2;margin-top:24px;flex-wrap:nowrap;overflow:hidden;pointer-events:auto}
.registros-gabinete.vista-lista .etiquetas-registro-gabinete{display:none}
.registros-gabinete.vista-lista .acciones-registro-gabinete{margin-left:auto;flex:0 0 auto}

@media(max-width:1050px){.catalogo-contexto-gabinete>div{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
 .catalogo-contexto-gabinete>div{grid-template-columns:1fr}
 .registros-gabinete.vista-lista .cuerpo-registro-gabinete{display:block}
 .registros-gabinete.vista-lista .fila-principal-registro-gabinete{display:block}
 .registros-gabinete.vista-lista .fila-principal-registro-gabinete h2{margin:4px 0 3px}
 .registros-gabinete.vista-lista .fila-principal-registro-gabinete p{font-size:12px}
 .registros-gabinete.vista-lista .metadatos-registro-gabinete{margin-top:6px;flex-wrap:nowrap}
 .registros-gabinete.vista-lista .metadatos-registro-gabinete span:nth-child(n+3){display:none}
}


/* Ajuste final del layout compacto de la vista lista del Gabinete. */
.identidad-registro-gabinete{min-width:0}
.registros-gabinete.vista-lista .cuerpo-registro-gabinete{display:flex;flex-direction:column;justify-content:center;min-width:0}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.5fr);gap:18px;align-items:center;min-width:0;pointer-events:auto}
.registros-gabinete.vista-lista .identidad-registro-gabinete{min-width:0}
.registros-gabinete.vista-lista .identidad-registro-gabinete h2{margin:3px 0 0;font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete p{margin:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;min-width:0}
.registros-gabinete.vista-lista .metadatos-registro-gabinete{margin-top:7px;flex-wrap:nowrap;overflow:hidden}
@media(max-width:760px){
 .registros-gabinete.vista-lista .fila-principal-registro-gabinete{display:block}
 .registros-gabinete.vista-lista .fila-principal-registro-gabinete p{margin-top:4px}
}

/* ===== Quijotext 2.0.2 · Ajustes visuales del Gabinete ===== */
/* La cabecera y el buscador se separan por espacio, no por una línea técnica. */
.barra-gabinete {
    border-top: 0;
}

/* Vista lista: toda la información nace desde el mismo eje izquierdo. */
.registros-gabinete.vista-lista .tarjeta-registro-gabinete {
    align-items: center;
    text-align: left;
}
.registros-gabinete.vista-lista .cuerpo-registro-gabinete {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    min-width: 0;
    text-align: left;
}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    width: 100%;
    min-width: 0;
    text-align: left;
}
.registros-gabinete.vista-lista .identidad-registro-gabinete {
    flex: 0 1 240px;
    min-width: 140px;
    max-width: 240px;
    text-align: left;
}
.registros-gabinete.vista-lista .identidad-registro-gabinete h2 {
    margin: 3px 0 0;
    text-align: left;
}
.registros-gabinete.vista-lista .tipo-registro-gabinete {
    display: block;
    text-align: left;
}
.registros-gabinete.vista-lista .fila-principal-registro-gabinete p {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin: 0;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.registros-gabinete.vista-lista .metadatos-registro-gabinete {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px 14px;
    width: 100%;
    margin-top: 7px;
    text-align: left;
    flex-wrap: nowrap;
    overflow: hidden;
}
.registros-gabinete.vista-lista .metadatos-registro-gabinete span,
.registros-gabinete.vista-lista .metadatos-registro-gabinete a {
    justify-content: flex-start;
    text-align: left;
}

/* En concentración, El Escribano se aparta de la flecha de fin de obra. */
.editor-aplicacion.modo-concentracion-editor ~ .escribano-flotante,
body:has(.editor-aplicacion.modo-concentracion-editor) .escribano-flotante {
    right: 82px;
    bottom: 16px;
}

@media (max-width: 700px) {
    .registros-gabinete.vista-lista .fila-principal-registro-gabinete {
        display: block;
    }
    .registros-gabinete.vista-lista .identidad-registro-gabinete {
        max-width: none;
        min-width: 0;
    }
    .registros-gabinete.vista-lista .fila-principal-registro-gabinete p {
        margin-top: 4px;
    }
    body:has(.editor-aplicacion.modo-concentracion-editor) .escribano-flotante {
        right: 76px;
        bottom: 14px;
    }
}

/* ======================================================================
   Quijotext 2.1.0 · Correos y Automatizaciones
   ====================================================================== */
.admin-marketing-contenido { overflow-y: auto; padding: clamp(24px, 3vw, 44px); }
.cabecera-marketing-admin { display:flex; justify-content:space-between; align-items:flex-start; gap:28px; margin-bottom:26px; }
.cabecera-marketing-admin h1 { margin:6px 0 10px; font-size:clamp(34px,4vw,58px); line-height:1; }
.cabecera-marketing-admin p { max-width:720px; margin:0; color:var(--texto-secundario); font-size:17px; line-height:1.65; }
.metricas-marketing-admin { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:28px; }
.metricas-marketing-admin article { display:flex; align-items:center; gap:14px; min-height:96px; padding:18px; border:1px solid var(--borde); border-radius:20px; background:var(--superficie); }
.metricas-marketing-admin article > svg { width:38px; height:38px; padding:9px; border-radius:13px; background:var(--superficie-secundaria); }
.metricas-marketing-admin strong { display:block; font-size:26px; line-height:1; }
.metricas-marketing-admin span { display:block; margin-top:6px; color:var(--texto-secundario); font-size:13px; }
.barra-biblioteca-marketing,.cabecera-lista-automatizaciones { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.cabecera-lista-automatizaciones h2 { margin:0 0 5px; font-size:24px; }
.cabecera-lista-automatizaciones p { margin:0; color:var(--texto-secundario); }
.buscador-marketing { display:flex; align-items:center; gap:10px; width:min(100%,420px); padding:0 14px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie); }
.buscador-marketing input { width:100%; height:48px; border:0; outline:0; background:transparent; color:var(--texto); }
.barra-biblioteca-marketing select { height:48px; min-width:155px; padding:0 14px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie); color:var(--texto); }
.rejilla-correos-admin { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:16px; }
.tarjeta-correo-admin { position:relative; display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:16px; min-height:230px; padding:20px; border:1px solid var(--borde); border-radius:24px; background:var(--superficie); transition:transform var(--transicion),box-shadow var(--transicion),border-color var(--transicion); }
.tarjeta-correo-admin:hover { transform:translateY(-2px); border-color:var(--gris-500); box-shadow:0 18px 48px rgba(0,0,0,.07); }
.icono-correo-admin { display:grid; place-items:center; width:58px; height:58px; border-radius:17px; background:var(--negro); color:var(--blanco); }
html[data-tema="oscuro"] .icono-correo-admin { background:var(--blanco); color:var(--negro); }
.contenido-correo-admin { min-width:0; }
.cabecera-tarjeta-correo { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.estado-plantilla { display:inline-flex; padding:6px 9px; border-radius:999px; background:var(--superficie-secundaria); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.estado-plantilla.activa { background:#dff7e8; color:#145c32; }
.estado-plantilla.archivada { opacity:.65; }
.contenido-correo-admin h2 { margin:14px 0 7px; font-size:22px; }
.contenido-correo-admin > p { min-height:43px; margin:0 0 18px; color:var(--texto-secundario); line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.asunto-correo-admin { padding:13px 14px; border-radius:14px; background:var(--superficie-secundaria); }
.asunto-correo-admin span { display:block; margin-bottom:5px; color:var(--texto-secundario); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.asunto-correo-admin strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:14px; }
.acciones-tarjeta-correo { display:flex; gap:7px; }
.estado-vacio-marketing { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:360px; padding:48px; border:1px dashed var(--borde); border-radius:28px; text-align:center; background:var(--superficie); }
.estado-vacio-marketing > svg { width:58px; height:58px; padding:15px; border-radius:18px; background:var(--superficie-secundaria); }
.estado-vacio-marketing h2 { margin:20px 0 8px; }
.estado-vacio-marketing p { max-width:550px; margin:0 0 24px; color:var(--texto-secundario); line-height:1.65; }

.modal-builder-marketing { z-index:3100; }
.modal-builder-marketing.visible { display:block; }
.modal-builder-marketing .modal-fondo { background:rgba(0,0,0,.66); }
.builder-marketing { position:fixed; inset:14px; z-index:2; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--borde); border-radius:24px; background:var(--fondo); box-shadow:0 28px 90px rgba(0,0,0,.34); }
.cabecera-builder-marketing { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:74px; padding:12px 18px; border-bottom:1px solid var(--borde); background:var(--superficie); }
.identidad-builder,.acciones-builder { display:flex; align-items:center; gap:12px; }
.identidad-builder > div { display:flex; flex-direction:column; gap:3px; }
.identidad-builder input { width:min(36vw,460px); border:0; outline:0; padding:0; background:transparent; color:var(--texto); font-size:20px; font-weight:800; }
.estado-builder { padding:8px 11px; border-radius:999px; background:var(--superficie-secundaria); color:var(--texto-secundario); font-size:12px; white-space:nowrap; }
.cuerpo-builder-correo { flex:1; min-height:0; display:grid; grid-template-columns:250px minmax(360px,1fr) 330px; }
.panel-bloques-correo,.panel-propiedades-correo,.panel-pasos-automatizacion,.panel-configuracion-automatizacion { overflow-y:auto; padding:22px; background:var(--superficie); }
.panel-bloques-correo,.panel-pasos-automatizacion { border-right:1px solid var(--borde); }
.panel-propiedades-correo,.panel-configuracion-automatizacion { border-left:1px solid var(--borde); }
.cabecera-panel-builder h2 { margin:7px 0 7px; font-size:22px; }
.cabecera-panel-builder p { margin:0 0 20px; color:var(--texto-secundario); font-size:14px; line-height:1.55; }
.paleta-bloques-correo { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.paleta-bloques-correo button { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-height:84px; padding:13px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie); color:var(--texto); cursor:grab; font-weight:700; }
.paleta-bloques-correo button:hover { border-color:var(--texto); background:var(--superficie-secundaria); }
.variables-builder { margin-top:28px; padding-top:22px; border-top:1px solid var(--borde); }
.variables-builder h3 { margin:6px 0; }
.variables-builder p { margin:0 0 12px; color:var(--texto-secundario); font-size:13px; line-height:1.5; }
.lista-variables-builder { display:flex; flex-wrap:wrap; gap:7px; }
.lista-variables-builder button { padding:7px 9px; border:1px solid var(--borde); border-radius:9px; background:var(--superficie-secundaria); color:var(--texto); font-family:monospace; font-size:11px; cursor:pointer; }
.lienzo-builder-correo { min-width:0; overflow:auto; padding:22px; background:#e9e7e1; }
html[data-tema="oscuro"] .lienzo-builder-correo { background:#080808; }
.toolbar-lienzo-correo { display:flex; justify-content:space-between; align-items:center; max-width:760px; margin:0 auto 14px; color:#555; font-size:13px; }
.selector-dispositivo-correo { display:flex; padding:4px; border-radius:11px; background:rgba(255,255,255,.78); }
.selector-dispositivo-correo button { display:grid; place-items:center; width:34px; height:30px; border:0; border-radius:8px; background:transparent; color:#555; cursor:pointer; }
.selector-dispositivo-correo button.activo { background:#000; color:#fff; }
.marco-correo-builder { width:min(100%,680px); min-height:620px; margin:0 auto; border-radius:20px; overflow:hidden; background:#fff; color:#111; box-shadow:0 22px 60px rgba(0,0,0,.15); transition:width .2s ease; }
.marco-correo-builder.vista-movil { width:390px; }
.correo-builder-marca { padding:24px 32px; border-bottom:1px solid #ece9e2; font-family:Georgia,'Times New Roman',serif; font-size:21px; font-weight:700; }
.zona-bloques-correo { min-height:480px; padding:32px; }
.correo-builder-pie { padding:18px 32px; border-top:1px solid #ece9e2; color:#777; font-size:12px; }
.bloque-correo-builder { position:relative; margin:0 0 8px; padding:18px; border:1px solid transparent; border-radius:13px; cursor:pointer; transition:border-color .15s,background .15s; }
.bloque-correo-builder:hover { border-color:#c8c4bc; }
.bloque-correo-builder.seleccionado { border-color:#000; background:#faf9f6; }
.etiqueta-bloque-correo { position:absolute; left:-2px; top:-12px; display:none; align-items:center; gap:4px; padding:4px 7px; border-radius:7px; background:#000; color:#fff; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.bloque-correo-builder:hover .etiqueta-bloque-correo,.bloque-correo-builder.seleccionado .etiqueta-bloque-correo { display:flex; }
.acciones-bloque-correo { position:absolute; top:5px; right:5px; display:none; gap:4px; }
.bloque-correo-builder:hover .acciones-bloque-correo,.bloque-correo-builder.seleccionado .acciones-bloque-correo { display:flex; }
.acciones-bloque-correo button { display:grid; place-items:center; width:28px; height:28px; border:1px solid #ddd; border-radius:7px; background:#fff; color:#111; cursor:pointer; }
.contenido-previa-bloque h1 { margin:0; font-family:Georgia,'Times New Roman',serif; line-height:1.16; }
.contenido-previa-bloque p { margin:0; line-height:1.7; }
.contenido-previa-bloque blockquote { margin:0; padding:16px 18px; border-left:3px solid #111; background:#f6f3eb; font-family:Georgia,'Times New Roman',serif; line-height:1.6; }
.contenido-previa-bloque hr { border:0; border-top:1px solid #ddd8ce; }
.contenido-previa-bloque img { max-width:100%; border-radius:12px; }
.boton-previa-correo { display:inline-block; padding:13px 20px; border-radius:11px; font-weight:800; }
.firma-previa-correo { font-family:Georgia,'Times New Roman',serif; line-height:1.6; }
.imagen-vacia-correo,.zona-correo-vacia { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:120px; color:#8a8a8a; text-align:center; }
.zona-correo-vacia { min-height:400px; }
.pestanas-propiedades-builder { display:flex; gap:5px; padding:4px; margin-bottom:20px; border-radius:12px; background:var(--superficie-secundaria); }
.pestanas-propiedades-builder button { flex:1; height:38px; border:0; border-radius:9px; background:transparent; color:var(--texto); cursor:pointer; font-weight:700; }
.pestanas-propiedades-builder button.activo { background:var(--superficie); box-shadow:0 3px 12px rgba(0,0,0,.07); }
.estado-sin-seleccion-builder { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:260px; color:var(--texto-secundario); text-align:center; }
.estado-sin-seleccion-builder svg { width:42px; height:42px; margin-bottom:12px; }
.cabecera-propiedad-bloque { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px; }
.cabecera-propiedad-bloque h3,.cabecera-propiedad-bloque h2 { margin:5px 0 0; }
.rejilla-propiedades-bloque { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.texto-ayuda-formulario { color:var(--texto-secundario); line-height:1.55; }

.lista-automatizaciones-admin { display:grid; gap:14px; }
.tarjeta-automatizacion-admin { display:grid; grid-template-columns:110px 190px minmax(0,1fr) auto; gap:18px; align-items:center; min-height:168px; padding:20px; border:1px solid var(--borde); border-radius:24px; background:var(--superficie); }
.estado-flujo-visual { align-self:start; display:flex; align-items:center; gap:7px; color:var(--texto-secundario); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.estado-flujo-visual span { width:9px; height:9px; border-radius:50%; background:#999; }
.estado-flujo-visual.activo span { background:#33c26f; box-shadow:0 0 0 5px rgba(51,194,111,.12); }
.resumen-flujo-automatizacion { display:flex; align-items:center; }
.nodo-resumen { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; border:1px solid var(--borde); border-radius:11px; background:var(--superficie); }
.nodo-resumen.disparador { background:#000; color:#fff; }
html[data-tema="oscuro"] .nodo-resumen.disparador { background:#fff; color:#000; }
.nodo-resumen.final { border-radius:50%; }
.resumen-flujo-automatizacion > span { width:18px; height:1px; background:var(--borde); }
.contenido-automatizacion-admin h2 { margin:6px 0; font-size:22px; }
.contenido-automatizacion-admin p { margin:0 0 14px; color:var(--texto-secundario); line-height:1.5; }
.estadisticas-automatizacion { display:flex; flex-wrap:wrap; gap:14px; color:var(--texto-secundario); font-size:12px; }
.estadisticas-automatizacion strong { color:var(--texto); }
.acciones-automatizacion-admin { display:flex; align-items:center; gap:12px; }
.interruptor-compacto { margin:0; }
.interruptor-con-etiqueta { display:flex; align-items:center; gap:9px; }

.cuerpo-builder-automatizacion { flex:1; min-height:0; display:grid; grid-template-columns:285px minmax(420px,1fr) 340px; }
.tipo-paso-automatizacion { display:flex; align-items:flex-start; gap:13px; width:100%; margin-bottom:10px; padding:15px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie); color:var(--texto); text-align:left; cursor:pointer; }
.tipo-paso-automatizacion:hover { border-color:var(--texto); transform:translateY(-1px); }
.tipo-paso-automatizacion > svg { width:38px; height:38px; padding:9px; border-radius:12px; background:var(--superficie-secundaria); }
.tipo-paso-automatizacion strong,.tipo-paso-automatizacion span { display:block; }
.tipo-paso-automatizacion span { margin-top:4px; color:var(--texto-secundario); font-size:12px; line-height:1.45; }
.consejo-builder-automatizacion { display:flex; gap:11px; margin-top:24px; padding:14px; border-radius:15px; background:var(--superficie-secundaria); color:var(--texto-secundario); font-size:13px; line-height:1.55; }
.lienzo-automatizacion { overflow:auto; padding:24px; background:var(--superficie-secundaria); }
.encabezado-lienzo-automatizacion { display:flex; justify-content:space-between; align-items:center; max-width:720px; margin:0 auto 22px; }
.encabezado-lienzo-automatizacion h2 { margin:5px 0 0; }
.encabezado-lienzo-automatizacion > span { padding:8px 11px; border-radius:999px; background:var(--superficie); color:var(--texto-secundario); font-size:12px; }
.flujo-automatizacion { width:min(100%,720px); margin:0 auto; }
.nodo-automatizacion { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center; padding:17px; border:1px solid var(--borde); border-radius:18px; background:var(--superficie); box-shadow:0 8px 24px rgba(0,0,0,.04); cursor:pointer; }
.nodo-automatizacion.activo { border-color:var(--texto); box-shadow:0 0 0 2px rgba(0,0,0,.06); }
html[data-tema="oscuro"] .nodo-automatizacion.activo { box-shadow:0 0 0 2px rgba(255,255,255,.08); }
.icono-nodo { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:var(--superficie-secundaria); }
.nodo-disparador .icono-nodo { background:#000; color:#fff; }
html[data-tema="oscuro"] .nodo-disparador .icono-nodo { background:#fff; color:#000; }
.nodo-automatizacion strong,.nodo-automatizacion small { display:block; }
.nodo-automatizacion strong { margin:5px 0 4px; font-size:16px; }
.nodo-automatizacion small { color:var(--texto-secundario); line-height:1.4; }
.nodo-paso { grid-template-columns:22px 46px minmax(0,1fr) auto; }
.asa-nodo { color:var(--texto-secundario); cursor:grab; }
.nodo-final { opacity:.72; cursor:default; }
.nodo-final .icono-nodo { border-radius:50%; }
.conector-flujo { display:flex; flex-direction:column; align-items:center; height:54px; }
.conector-flujo span { flex:1; width:1px; background:var(--borde); }
.conector-flujo button { display:grid; place-items:center; width:25px; height:25px; border:1px solid var(--borde); border-radius:50%; background:var(--superficie); color:var(--texto); cursor:pointer; }
.configuracion-disparador-especial { margin-top:12px; padding:14px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie-secundaria); }
.aviso-condicion-flujo { display:flex; align-items:flex-start; gap:10px; padding:13px; border-radius:13px; background:var(--superficie-secundaria); color:var(--texto-secundario); font-size:13px; line-height:1.5; }
.enlace-crear-correo { display:inline-flex; align-items:center; gap:7px; margin-top:8px; color:var(--texto); font-weight:700; }

@media (max-width:1200px) {
    .metricas-marketing-admin { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cuerpo-builder-correo { grid-template-columns:220px minmax(360px,1fr) 300px; }
    .cuerpo-builder-automatizacion { grid-template-columns:240px minmax(380px,1fr) 300px; }
    .tarjeta-automatizacion-admin { grid-template-columns:90px 160px minmax(0,1fr) auto; }
}
@media (max-width:980px) {
    .builder-marketing { inset:0; border-radius:0; }
    .cuerpo-builder-correo,.cuerpo-builder-automatizacion { grid-template-columns:210px minmax(360px,1fr); }
    .panel-propiedades-correo,.panel-configuracion-automatizacion { position:absolute; right:0; top:74px; bottom:0; width:330px; z-index:5; box-shadow:-16px 0 45px rgba(0,0,0,.12); }
    .tarjeta-automatizacion-admin { grid-template-columns:80px minmax(0,1fr) auto; }
    .resumen-flujo-automatizacion { display:none; }
}
@media (max-width:760px) {
    .admin-marketing-contenido { padding:20px 14px; }
    .cabecera-marketing-admin,.barra-biblioteca-marketing,.cabecera-lista-automatizaciones { flex-direction:column; align-items:stretch; }
    .metricas-marketing-admin { grid-template-columns:1fr 1fr; }
    .rejilla-correos-admin { grid-template-columns:1fr; }
    .tarjeta-correo-admin { grid-template-columns:50px minmax(0,1fr); }
    .acciones-tarjeta-correo { position:absolute; right:14px; top:14px; }
    .cuerpo-builder-correo,.cuerpo-builder-automatizacion { grid-template-columns:1fr; }
    .panel-bloques-correo,.panel-pasos-automatizacion { display:none; }
    .panel-propiedades-correo,.panel-configuracion-automatizacion { display:none; }
    .cabecera-builder-marketing { padding:10px; }
    .identidad-builder input { width:45vw; font-size:16px; }
    .acciones-builder .estado-builder,.acciones-builder .boton-claro { display:none; }
    .lienzo-builder-correo,.lienzo-automatizacion { padding:14px; }
    .marco-correo-builder,.marco-correo-builder.vista-movil { width:100%; }
    .tarjeta-automatizacion-admin { grid-template-columns:1fr auto; }
    .estado-flujo-visual { grid-column:1; }
    .contenido-automatizacion-admin { grid-column:1; }
    .acciones-automatizacion-admin { grid-column:2; grid-row:1/3; }
}
.controles-builder-movil { display:none; align-items:center; gap:5px; }
@media (max-width:760px) {
    .controles-builder-movil { display:flex; }
    .modal-builder-marketing .panel-bloques-correo,
    .modal-builder-marketing .panel-propiedades-correo,
    .modal-builder-marketing .panel-pasos-automatizacion,
    .modal-builder-marketing .panel-configuracion-automatizacion { display:none; position:absolute; inset:74px 0 0 0; z-index:20; width:auto; border:0; box-shadow:none; }
    .modal-builder-marketing.mostrar-panel-bloques .panel-bloques-correo,
    .modal-builder-marketing.mostrar-panel-propiedades .panel-propiedades-correo,
    .modal-builder-marketing.mostrar-panel-pasos .panel-pasos-automatizacion,
    .modal-builder-marketing.mostrar-panel-configuracion .panel-configuracion-automatizacion { display:block; }
    .modal-builder-marketing.mostrar-panel-bloques .lienzo-builder-correo,
    .modal-builder-marketing.mostrar-panel-propiedades .lienzo-builder-correo,
    .modal-builder-marketing.mostrar-panel-pasos .lienzo-automatizacion,
    .modal-builder-marketing.mostrar-panel-configuracion .lienzo-automatizacion { visibility:hidden; }
}


/* ======================================================================
   Quijotext 2.1.1 · Métricas, Tema Medieval y almacenamiento
   ====================================================================== */
.modal-superpuesta-builder { z-index: 3600 !important; }
.modal-metricas-automatizacion { z-index: 3350; }
.metricas-automatizacion-contenido { width:min(980px,calc(100vw - 32px)); max-height:min(860px,calc(100vh - 32px)); overflow:hidden; padding:0; display:flex; flex-direction:column; }
.cabecera-metricas-automatizacion { margin:0; padding:22px 24px; border-bottom:1px solid var(--borde); align-items:center; }
.cabecera-metricas-automatizacion p { margin:6px 0 0; color:var(--texto-secundario); }
.acciones-cabecera-metricas { display:flex; align-items:center; gap:8px; }
.acciones-cabecera-metricas select { height:40px; padding:0 34px 0 12px; border:1px solid var(--borde); border-radius:11px; background:var(--superficie); color:var(--texto); }
.cuerpo-metricas-automatizacion { padding:22px; overflow:auto; display:flex; flex-direction:column; gap:18px; }
.cargando-metricas,.estado-vacio-metricas { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; color:var(--texto-secundario); }
.cargando-metricas span { width:28px; height:28px; border:2px solid var(--borde); border-top-color:var(--texto); border-radius:50%; animation:girar 1s linear infinite; }
.rejilla-metricas-automatizacion { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.rejilla-metricas-automatizacion article { display:flex; gap:12px; align-items:center; min-height:96px; padding:17px; border:1px solid var(--borde); border-radius:18px; background:var(--superficie); }
.rejilla-metricas-automatizacion article>svg { width:38px; height:38px; padding:9px; border-radius:12px; background:var(--superficie-secundaria); }
.rejilla-metricas-automatizacion strong { display:block; font-size:25px; line-height:1; }
.rejilla-metricas-automatizacion span { display:block; margin-top:6px; color:var(--texto-secundario); font-size:12px; }
.panel-tendencia-automatizacion,.actividad-reciente-automatizacion { padding:20px; border:1px solid var(--borde); border-radius:20px; background:var(--superficie); }
.panel-tendencia-automatizacion>header,.actividad-reciente-automatizacion>header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:18px; }
.panel-tendencia-automatizacion h3,.actividad-reciente-automatizacion h3 { margin:4px 0 0; font-size:20px; }
.leyenda-tendencia { display:flex; gap:12px; color:var(--texto-secundario); font-size:11px; }
.leyenda-tendencia span { display:flex; align-items:center; gap:6px; }
.leyenda-tendencia i { width:9px; height:9px; border-radius:3px; background:#171717; }
.leyenda-tendencia span:last-child i { background:#aaa; }
.grafico-tendencia-automatizacion { height:190px; display:grid; grid-template-columns:repeat(14,minmax(12px,1fr)); gap:8px; align-items:end; padding-top:10px; }
.dia-tendencia { min-width:0; height:100%; display:flex; flex-direction:column; justify-content:flex-end; gap:7px; }
.barras-dia { height:150px; display:flex; align-items:flex-end; justify-content:center; gap:2px; }
.barras-dia span,.barras-dia b { width:min(10px,42%); min-height:2px; border-radius:5px 5px 2px 2px; background:#171717; }
.barras-dia b { background:#aaa; }
.dia-tendencia small { overflow:hidden; text-align:center; color:var(--texto-secundario); font-size:9px; white-space:nowrap; }
.resumen-operativo-automatizacion { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.resumen-operativo-automatizacion article { padding:14px 16px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie-secundaria); display:flex; justify-content:space-between; gap:10px; align-items:center; }
.resumen-operativo-automatizacion span { color:var(--texto-secundario); font-size:12px; }
.resumen-operativo-automatizacion strong { font-size:17px; }
.lista-ejecuciones-recientes { display:flex; flex-direction:column; gap:8px; }
.lista-ejecuciones-recientes article { display:grid; grid-template-columns:100px minmax(180px,1fr) auto; gap:12px; align-items:center; padding:12px; border:1px solid var(--borde); border-radius:14px; }
.lista-ejecuciones-recientes article>div { min-width:0; }
.lista-ejecuciones-recientes strong,.lista-ejecuciones-recientes small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lista-ejecuciones-recientes small,.lista-ejecuciones-recientes time { color:var(--texto-secundario); font-size:11px; }
.lista-ejecuciones-recientes p { grid-column:2/-1; margin:0; color:#a22020; font-size:11px; }
.estado-ejecucion { justify-self:start; padding:6px 9px; border-radius:999px; background:var(--superficie-secundaria); font-size:10px; font-weight:800; }
.estado-ejecucion.completada { background:#e7f6ed; color:#17643a; }
.estado-ejecucion.error { background:#fdeaea; color:#9b1c1c; }
.estado-ejecucion.cancelada { background:#f4efe4; color:#755522; }

/* En concentración, ambos controles flotantes conservan la misma línea base.
   El Escribano se desplaza a la izquierda para no cubrir el salto al final. */
body:has(.editor-aplicacion.modo-concentracion-editor) .escribano-flotante { right:82px; bottom:16px; }

/* Medidor de almacenamiento del escritor. */
.tarjeta-almacenamiento-perfil { align-self:start; }
.resumen-almacenamiento-perfil { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin:4px 0 13px; }
.resumen-almacenamiento-perfil strong { display:block; font-size:25px; line-height:1; }
.resumen-almacenamiento-perfil span { display:block; margin-top:6px; color:var(--texto-secundario); font-size:12px; }
.resumen-almacenamiento-perfil b { font-size:15px; }
.barra-almacenamiento-perfil { height:12px; padding:2px; border:1px solid var(--borde); border-radius:999px; background:var(--superficie-secundaria); overflow:hidden; }
.barra-almacenamiento-perfil span { display:block; height:100%; max-width:100%; border-radius:999px; background:linear-gradient(90deg,#111,#555); transition:width .35s ease; }
.detalle-almacenamiento-perfil { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-top:12px; color:var(--texto-secundario); font-size:11px; }
.detalle-almacenamiento-perfil span,.detalle-almacenamiento-perfil a { display:flex; gap:6px; align-items:center; }
.detalle-almacenamiento-perfil a { color:var(--texto); font-weight:700; text-decoration:none; }

/* Vista previa del tema Medieval. */
.muestra-tema.medieval { background:linear-gradient(145deg,#ead6ad,#b78750); color:#4b2d19; border-color:#9b7448; box-shadow:inset 0 0 0 1px rgba(255,255,255,.25); }

/* Tema Medieval: pergamino, madera y tinta cálida sin sacrificar legibilidad. */
html[data-tema="medieval"] {
    --negro:#302014;
    --blanco:#fffaf0;
    --gris-25:#fbf2df;
    --gris-50:#f4e7ce;
    --gris-100:#ead7b7;
    --gris-200:#d7bd91;
    --gris-300:#b89768;
    --gris-500:#7f6345;
    --gris-700:#4e3522;
    --fondo:#d7bf94;
    --superficie:#f5e8cc;
    --superficie-secundaria:#ead8b7;
    --texto:#352417;
    --texto-secundario:#70573d;
    --borde:#b99565;
    --sombra:0 18px 55px rgba(72,43,22,.22);
    --radio:12px;
}
html[data-tema="medieval"] body {
    background:
      radial-gradient(circle at 18% 12%,rgba(255,246,220,.7),transparent 34%),
      radial-gradient(circle at 82% 78%,rgba(111,69,35,.12),transparent 42%),
      repeating-linear-gradient(8deg,rgba(93,56,28,.025) 0 1px,transparent 1px 5px),
      #d7bf94;
    color:var(--texto);
    cursor:url('../img/cursor-pluma.svg') 4 28,auto;
}
html[data-tema="medieval"] a,
html[data-tema="medieval"] button,
html[data-tema="medieval"] [role="button"],
html[data-tema="medieval"] label[for] { cursor:url('../img/cursor-pluma.svg') 4 28,pointer; }
html[data-tema="medieval"] input,
html[data-tema="medieval"] textarea,
html[data-tema="medieval"] [contenteditable="true"] { cursor:text; }
html[data-tema="medieval"] .sidebar-principal,
html[data-tema="medieval"] .sidebar-editor-global,
html[data-tema="medieval"] .barra-superior-editor,
html[data-tema="medieval"] .barra-formato,
html[data-tema="medieval"] .modal-contenido,
html[data-tema="medieval"] .tarjeta-configuracion,
html[data-tema="medieval"] .tarjeta-proyecto,
html[data-tema="medieval"] .panel-editor,
html[data-tema="medieval"] .panel-escribano {
    background:
      linear-gradient(rgba(255,250,237,.82),rgba(245,229,198,.88)),
      repeating-linear-gradient(90deg,rgba(94,58,28,.025) 0 1px,transparent 1px 7px);
    border-color:var(--borde);
}
html[data-tema="medieval"] .sidebar-principal,
html[data-tema="medieval"] .sidebar-editor-global { box-shadow:inset -1px 0 rgba(91,55,29,.22); }
html[data-tema="medieval"] .marca-simbolo { background:#4b2e1a; color:#f8e9c8; border-color:#4b2e1a; font-family:Georgia,'Times New Roman',serif; }
html[data-tema="medieval"] h1,
html[data-tema="medieval"] h2,
html[data-tema="medieval"] h3,
html[data-tema="medieval"] .datos-proyecto h2 { color:#3b2516; }
html[data-tema="medieval"] .sobrelinea { color:#795431; }
html[data-tema="medieval"] .boton-negro,
html[data-tema="medieval"] .filtros-gabinete button.activo,
html[data-tema="medieval"] .selector-vista-gabinete button.activo { background:#4b2e1a; border-color:#4b2e1a; color:#f9e9c7; box-shadow:0 7px 18px rgba(76,43,21,.18); }
html[data-tema="medieval"] .boton-claro,
html[data-tema="medieval"] .boton-icono,
html[data-tema="medieval"] input,
html[data-tema="medieval"] textarea,
html[data-tema="medieval"] select { background:rgba(255,249,233,.68); border-color:#b99565; color:#3a281b; }
html[data-tema="medieval"] .panel-documento,
html[data-tema="medieval"] .lienzo-documento { background:#b99b70; }
html[data-tema="medieval"] .hoja-editor,
html[data-tema="medieval"] .pagina-editor-visual {
    background:
      radial-gradient(circle at 15% 10%,rgba(255,255,255,.45),transparent 32%),
      repeating-linear-gradient(0deg,rgba(95,58,27,.018) 0 1px,transparent 1px 4px),
      #f7e8c7;
    color:#302116;
    box-shadow:0 10px 36px rgba(64,36,16,.25),inset 0 0 40px rgba(112,67,28,.05);
}
html[data-tema="medieval"] .hoja-editor ::selection { background:#684525; color:#fff2d3; }
html[data-tema="medieval"] .barra-estado-editor { background:#e9d5b2; }
html[data-tema="medieval"] .elemento-estructura.activo-manual { background:#4b2e1a; color:#f7e5c2; }
html[data-tema="medieval"] .elemento-estructura.activo-scroll { background:#dac09a; color:#3b2718; }
html[data-tema="medieval"] .burbuja-escribano { border-color:#4b2e1a; background:#4b2e1a; box-shadow:0 16px 38px rgba(70,39,18,.3); }
html[data-tema="medieval"] .mensaje-escribano.usuario>div,
html[data-tema="medieval"] .composer-escribano button { background:#4b2e1a; color:#f9e9c7; }
html[data-tema="medieval"] .barra-almacenamiento-perfil span { background:linear-gradient(90deg,#5e3a20,#ad7c43); }
html[data-tema="medieval"] .editor-aplicacion.modo-concentracion-editor .editor-tres-paneles,
html[data-tema="medieval"] .editor-aplicacion.modo-concentracion-editor .panel-documento,
html[data-tema="medieval"] .editor-aplicacion.modo-concentracion-editor .lienzo-documento { background:#ad8b60; }
html[data-tema="medieval"] .editor-aplicacion.modo-concentracion-editor .hoja-editor { background:#f7e8c7; color:#302116; }

@media (max-width:800px) {
    .rejilla-metricas-automatizacion { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .resumen-operativo-automatizacion { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .lista-ejecuciones-recientes article { grid-template-columns:90px minmax(0,1fr); }
    .lista-ejecuciones-recientes time { grid-column:2; }
    .grafico-tendencia-automatizacion { gap:3px; }
    .dia-tendencia small { display:none; }
}
@media (max-width:560px) {
    .metricas-automatizacion-contenido { max-height:calc(100vh - 14px); }
    .cabecera-metricas-automatizacion { align-items:flex-start; }
    .acciones-cabecera-metricas select { max-width:110px; }
    .rejilla-metricas-automatizacion,.resumen-operativo-automatizacion { grid-template-columns:1fr; }
    .editor-aplicacion.modo-concentracion-editor .boton-ir-final { right:16px; }
}

.selector-tema { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:760px){ .selector-tema { grid-template-columns:1fr; } }

/* ======================================================================
   Quijotext 2.1.2 · navegación despejada en Previsualización
   ====================================================================== */
/* En Previsualización, la navegación flotante se sitúa junto al borde
   derecho del papel, siguiendo el mismo criterio del modo concentración.
   El Escribano conserva la esquina inferior derecha sin cubrirla. */
body.pagina-previsualizacion .boton-indice-flotante,
body.pagina-previsualizacion .boton-ir-final {
    right: max(18px, calc(50% - 10.8cm - 50px));
    bottom: 20px;
}

body.pagina-previsualizacion .boton-indice-flotante {
    width: 42px;
    height: 42px;
    opacity: .76;
    border-color: rgba(0, 0, 0, .22);
    background: rgba(255, 255, 255, .9);
    color: #191919;
    box-shadow: 0 5px 17px rgba(0, 0, 0, .14);
    backdrop-filter: blur(8px);
}

body.pagina-previsualizacion .boton-indice-flotante:hover,
body.pagina-previsualizacion .boton-indice-flotante[aria-expanded="true"] {
    opacity: 1;
    background: #000;
    color: #fff;
}

body.pagina-previsualizacion .escribano-flotante {
    right: 22px;
    bottom: 20px;
}

html[data-tema="oscuro"] body.pagina-previsualizacion .boton-indice-flotante {
    border-color: rgba(255, 255, 255, .24);
    background: rgba(28, 28, 28, .9);
    color: #fff;
}

@media (max-width: 900px) {
    body.pagina-previsualizacion .boton-indice-flotante,
    body.pagina-previsualizacion .boton-ir-final {
        right: 92px;
        bottom: max(18px, env(safe-area-inset-bottom));
    }

    body.pagina-previsualizacion .escribano-flotante {
        right: 16px;
        bottom: max(16px, env(safe-area-inset-bottom));
    }
}

/* ======================================================================
   Quijotext 2.1.4 · biblioteca móvil, publicación y navegación adaptable
   ====================================================================== */
.mensaje-solo-movil,
.navegacion-movil { display: none; }

.estado-publicacion-tarjeta {
    position: absolute;
    z-index: 5;
    top: 10px;
    right: 10px;
    min-height: 27px;
    padding: 5px 8px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: rgba(14,14,14,.82);
    color: #fff;
    box-shadow: 0 4px 14px rgba(0,0,0,.16);
    backdrop-filter: blur(8px);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .035em;
}
.estado-publicacion-tarjeta svg { width: 12px; height: 12px; }
.estado-publicacion-tarjeta.publicada { background: rgba(20, 83, 45, .88); }
.estado-publicacion-tarjeta.oculta { background: rgba(39, 39, 42, .82); }
.estado-publicacion-tarjeta.privada { background:rgba(105,55,8,.9); box-shadow:0 0 0 1px rgba(255,166,45,.32),0 8px 24px rgba(0,0,0,.12); }

.acciones-obra-tarjeta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}
.accion-obra-rapida {
    min-height: 34px;
    padding: 7px 9px;
    border: 1px solid var(--borde);
    border-radius: 9px;
    background: var(--superficie);
    color: var(--texto);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    font: inherit;
    font-size: 10px;
    font-weight: 700;
    transition: border-color var(--transicion), background var(--transicion), transform var(--transicion);
}
.accion-obra-rapida:hover { border-color: var(--texto); background: var(--superficie-secundaria); transform: translateY(-1px); }
.accion-obra-rapida svg { width: 14px; height: 14px; }
.accion-publicacion.activa { border-color: rgba(20,83,45,.34); }
.accion-pro-bloqueada { color: var(--texto-secundario); }

.rejilla-proyectos.vista-cuadricula .datos-proyecto {
    flex-wrap: wrap;
    align-items: center;
}
.rejilla-proyectos.vista-cuadricula .resumen-proyecto-tarjeta { min-width: 0; flex: 1 1 calc(100% - 44px); }
.rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta { width: 100%; }
.rejilla-proyectos.vista-cuadricula .accion-obra-rapida { flex: 1 1 0; padding-inline: 7px; }
.rejilla-proyectos.vista-lista .acciones-obra-tarjeta { margin-left: auto; }
.rejilla-proyectos.vista-lista .menu-contextual { margin-left: 2px; }

.interruptor-publicacion-obra {
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 13px;
    background: var(--superficie-secundaria);
}
.nota-publicacion-obra {
    padding: 11px 13px;
    border-radius: 11px;
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 11px;
    line-height: 1.45;
}
.nota-publicacion-obra svg { width: 16px; height: 16px; flex: 0 0 16px; }
#nombre-obra-compartir { margin: 4px 0 0; color: var(--texto-secundario); font-size: 12px; }

.aviso-editor-escritorio,
.mensaje-escritura-escritorio {
    width: 100%;
    padding: 15px 17px;
    border: 1px solid var(--borde);
    border-radius: 15px;
    background: var(--superficie);
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.aviso-editor-escritorio { margin: 0 0 20px; }
.aviso-editor-escritorio > svg,
.mensaje-escritura-escritorio > svg { width: 20px; height: 20px; flex: 0 0 20px; }
.aviso-editor-escritorio div,
.mensaje-escritura-escritorio div { display: flex; flex-direction: column; gap: 4px; }
.aviso-editor-escritorio span,
.mensaje-escritura-escritorio span { color: var(--texto-secundario); font-size: 12px; line-height: 1.5; }

@media (max-width: 1100px) {
    .acciones-obra-tarjeta .accion-obra-rapida span { display: none; }
    .acciones-obra-tarjeta .accion-obra-rapida { width: 35px; flex: 0 0 35px; padding: 0; }
}

@media (max-width: 900px) {
    .sidebar-principal { display: none !important; }
    .aplicacion-con-sidebar { display: block; min-height: 100vh; }
    .contenido-principal { width: 100%; padding: 22px 16px calc(104px + env(safe-area-inset-bottom)); }
    .mensaje-solo-movil { display: flex; }
    .accion-solo-escritorio { display: none !important; }

    .navegacion-movil {
        position: fixed;
        z-index: 700;
        left: 10px;
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        min-height: 62px;
        padding: 6px;
        border: 1px solid var(--borde);
        border-radius: 18px;
        background: var(--superficie);
        background: color-mix(in srgb, var(--superficie) 94%, transparent);
        box-shadow: 0 14px 40px rgba(0,0,0,.17);
        backdrop-filter: blur(16px);
        display: grid;
        grid-template-columns: repeat(4, minmax(0,1fr));
        gap: 4px;
    }
    .navegacion-movil a {
        min-width: 0;
        padding: 7px 4px;
        border-radius: 12px;
        color: var(--texto-secundario);
        text-decoration: none;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        font-size: 9px;
        font-weight: 700;
    }
    .navegacion-movil a.activo { background: var(--texto); color: var(--superficie); }
    .navegacion-movil svg { width: 18px; height: 18px; }

    .cabecera-obras-responsive { gap: 16px; }
    .cabecera-obras-responsive > div:first-child { max-width: 620px; }
    .cabecera-obras-responsive h1 { font-size: clamp(29px, 9vw, 42px); }
    .acciones-cabecera-proyectos { width: 100%; justify-content: flex-end; }
    .resumen-biblioteca-compacto { margin-top: 16px; }

    /* En móvil ambas preferencias visuales convergen en una tarjeta de gestión
       compacta; el selector se conserva para sincronizar la preferencia de escritorio. */
    .rejilla-proyectos.vista-cuadricula,
    .rejilla-proyectos.vista-lista {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto,
    .rejilla-proyectos.vista-lista .tarjeta-proyecto {
        width: 100%;
        max-width: none;
        min-width: 0;
        min-height: 132px;
        padding: 10px;
        border: 1px solid var(--borde);
        border-radius: 18px;
        background: var(--superficie);
        display: grid;
        grid-template-columns: 82px minmax(0,1fr);
        align-items: stretch;
        gap: 13px;
        overflow: visible;
    }
    .rejilla-proyectos.vista-cuadricula .portada-proyecto,
    .rejilla-proyectos.vista-lista .portada-proyecto {
        grid-column: 1;
        grid-row: 1;
        width: 82px;
        min-width: 82px;
        height: 112px;
        min-height: 112px;
        aspect-ratio: auto;
        padding: 12px 8px;
        border-radius: 9px 13px 13px 9px;
    }
    .rejilla-proyectos .portada-proyecto:hover { transform: none; box-shadow: 7px 10px 20px rgba(0,0,0,.14); }
    .rejilla-proyectos.vista-cuadricula .titulo-portada,
    .rejilla-proyectos.vista-lista .portada-proyecto .titulo-portada { font-size: 10px; line-height: 1.18; }
    .rejilla-proyectos.vista-cuadricula .subtitulo-portada,
    .rejilla-proyectos.vista-cuadricula .portada-proyecto small,
    .rejilla-proyectos.vista-cuadricula .lomo-portada,
    .rejilla-proyectos.vista-lista .subtitulo-portada,
    .rejilla-proyectos.vista-lista .portada-proyecto small,
    .rejilla-proyectos.vista-lista .lomo-portada { display: none; }

    .rejilla-proyectos.vista-cuadricula .datos-proyecto,
    .rejilla-proyectos.vista-lista .datos-proyecto {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        padding: 3px 0 0;
        display: grid;
        grid-template-columns: minmax(0,1fr) auto;
        grid-template-rows: 1fr auto;
        align-items: start;
        gap: 8px;
    }
    .rejilla-proyectos .resumen-proyecto-tarjeta { grid-column: 1 / -1; min-width: 0; }
    .rejilla-proyectos .datos-proyecto h2 { margin: 0 0 4px; font-size: 16px; }
    .rejilla-proyectos .datos-proyecto h2 a { color: inherit; text-decoration: none; }
    .rejilla-proyectos .metadatos-proyecto-tarjeta { display: block !important; font-size: 10px; }
    .rejilla-proyectos.vista-lista .camino-obra-lista { margin-top: 7px; display: flex; gap: 4px 9px; }
    .rejilla-proyectos .camino-obra-lista span:nth-child(2) { display: none; }
    .rejilla-proyectos .camino-obra-lista span + span::before { display: none; }

    .rejilla-proyectos .acciones-obra-tarjeta {
        grid-column: 1;
        grid-row: 2;
        width: auto;
        margin: 0;
        display: flex;
        gap: 5px;
    }
    .rejilla-proyectos .acciones-obra-tarjeta .accion-obra-rapida {
        width: auto;
        min-width: 36px;
        height: 36px;
        flex: 0 0 auto;
        padding: 0 9px;
    }
    .rejilla-proyectos .acciones-obra-tarjeta .accion-obra-rapida span { display: none; }
    .rejilla-proyectos .menu-contextual { grid-column: 2; grid-row: 2; align-self: center; justify-self: end; }
    .rejilla-proyectos .menu-flotante { right: 0; bottom: calc(100% + 8px); top: auto; min-width: 185px; }

    .estado-publicacion-tarjeta { top: 16px; right: 16px; }
    .etiqueta-coautoria-cuadricula,
    .etiqueta-cambios-realizados { display: none !important; }
    .etiqueta-coautoria-lista { display: inline-flex !important; }

    .mensaje-escritura-escritorio { margin-top: 20px; margin-bottom: 4px; }
    .estado-vacio .mensaje-solo-movil { max-width: 380px; margin: 8px auto 0; color: var(--texto-secundario); font-size: 12px; line-height: 1.5; text-align: center; }

    .modal-compartir-obra { width: min(100%, 560px); max-height: calc(100dvh - 20px); overflow-y: auto; }
    .selector-visibilidad-obra { grid-template-columns: 1fr; }
    .enlace-generado-obra > div { flex-direction: column; align-items: stretch; }
    .enlace-generado-obra .boton { width: 100%; }

    /* Lectura cómoda: el papel conserva jerarquía editorial, pero deja de
       desbordar horizontalmente en pantallas estrechas. */
    body.pagina-previsualizacion .barra-previsualizacion {
        min-height: 62px;
        height: auto;
        padding: 9px 10px;
        gap: 8px;
        align-items: center;
    }
    body.pagina-previsualizacion .barra-previsualizacion > div:first-child { min-width: 0; flex: 1; }
    body.pagina-previsualizacion .barra-previsualizacion > div:first-child > div { min-width: 0; }
    body.pagina-previsualizacion .barra-previsualizacion strong { max-width: 42vw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    body.pagina-previsualizacion .barra-previsualizacion > div:last-child { gap: 5px; overflow-x: auto; scrollbar-width: none; }
    body.pagina-previsualizacion .barra-previsualizacion > div:last-child::-webkit-scrollbar { display: none; }
    body.pagina-previsualizacion .barra-previsualizacion .boton { width: 38px; min-width: 38px; height: 38px; padding: 0; font-size: 0; }
    body.pagina-previsualizacion .barra-previsualizacion .boton svg { width: 17px; height: 17px; }
    body.pagina-previsualizacion .documento-previsualizado { padding: 14px 10px 110px; gap: 14px; }
    body.pagina-previsualizacion .pagina-impresion,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido {
        width: 100%;
        height: auto !important;
        min-height: auto !important;
        padding: 34px 24px 42px;
        border-radius: 3px;
        overflow: visible !important;
    }
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice > .contenido-pagina,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido > .contenido-pagina { overflow: visible; }
    body.pagina-previsualizacion .portada-impresion { min-height: calc(100dvh - 100px) !important; }
    body.pagina-previsualizacion .portada-impresion h1 { max-width: 100%; font-size: clamp(28px, 10vw, 43px); }
    body.pagina-previsualizacion .portada-impresion h2 { max-width: 100%; font-size: 18px; }
    body.pagina-previsualizacion .flujo-documento { font-size: 11.5pt; line-height: 1.65; }
    body.pagina-previsualizacion .flujo-documento h1 { font-size: 22pt; }
    body.pagina-previsualizacion .flujo-documento h2 { font-size: 17pt; }
    body.pagina-previsualizacion .cita-academica,
    body.pagina-previsualizacion .cita-academica.estilo-mla9 { margin-left: 18px; }
    body.pagina-previsualizacion .tabla-previsualizacion { overflow-x: auto; }

    /* La navegación y El Escribano respetan la barra móvil inferior. */
    .pagina-aplicacion .escribano-flotante { bottom: calc(86px + env(safe-area-inset-bottom)); }
    .pagina-aplicacion .panel-escribano { bottom: calc(154px + env(safe-area-inset-bottom)); }
}

@media (max-width: 520px) {
    .contenido-principal { padding-inline: 12px; }
    .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto,
    .rejilla-proyectos.vista-lista .tarjeta-proyecto { grid-template-columns: 72px minmax(0,1fr); padding: 9px; gap: 11px; }
    .rejilla-proyectos.vista-cuadricula .portada-proyecto,
    .rejilla-proyectos.vista-lista .portada-proyecto { width: 72px; min-width: 72px; height: 101px; min-height: 101px; }
    .estado-publicacion-tarjeta { top: 13px; right: 13px; padding: 4px 7px; }
    .estado-publicacion-tarjeta span { display: none; }
    .rejilla-proyectos .datos-proyecto h2 { padding-right: 25px; font-size: 15px; }
}

@media (min-width: 901px) {
    .rejilla-proyectos.vista-lista .estado-publicacion-tarjeta {
        top: 8px;
        right: 54px;
    }
}

/* ======================================================================
   Quijotext 2.1.5 · pulido responsive, navegación móvil y biblioteca
   ====================================================================== */

/* El aviso editorial pertenece únicamente a la experiencia móvil. */
.mensaje-escritura-escritorio.mensaje-solo-movil { display: none; }

/* El perfil conserva aire propio y la campana se apoya sobre el avatar sin
   reducirlo ni cubrir su fotografía. */
.perfil-sidebar-con-alertas {
    min-width: 0;
    flex: 1;
    position: relative;
}
.perfil-sidebar-con-alertas .usuario-sidebar { width: 100%; }
.sidebar-inferior .boton-alertas-coautoria {
    position: absolute;
    z-index: 3;
    top: -12px;
    left: 29px;
    width: 23px;
    height: 23px;
    min-width: 23px;
    padding: 0;
    border-color: var(--borde);
    border-radius: 999px;
    background: var(--superficie);
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
}
.sidebar-inferior .boton-alertas-coautoria svg { width: 12px; height: 12px; }
.sidebar-inferior .contador-invitaciones {
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    top: -6px;
    right: -7px;
    border-width: 1px;
    font-size: 8px;
}

/* Los iconos de la cabecera de lectura conservan un centro óptico exacto. */
.barra-previsualizacion .acciones-previsualizacion {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}
.barra-previsualizacion .acciones-previsualizacion .boton,
.barra-previsualizacion > div:first-child > .boton-icono {
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.barra-previsualizacion .acciones-previsualizacion svg,
.barra-previsualizacion > div:first-child > .boton-icono svg {
    display: block;
    flex: 0 0 auto;
    margin: 0;
}

/* El botón móvil de El Escribano forma parte de la navegación, con el aviso
   de respuesta pendiente integrado en el propio menú. */
.navegacion-movil button {
    min-width: 0;
    padding: 7px 4px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--texto-secundario);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    position: relative;
    font: inherit;
    font-size: 9px;
    font-weight: 700;
}
.navegacion-movil button.activo { background: var(--texto); color: var(--superficie); }
.alerta-escribano-movil {
    position: absolute;
    top: 5px;
    right: calc(50% - 16px);
    width: 9px;
    height: 9px;
    border: 2px solid var(--superficie);
    border-radius: 50%;
    background: var(--verde-escribano, #C7FF2F);
    box-shadow: 0 0 0 1px rgba(0,0,0,.12);
}

@media (max-width: 1050px) and (min-width: 901px) {
    .perfil-sidebar-con-alertas { flex: 0 0 38px; }
    .perfil-sidebar-con-alertas .usuario-sidebar { justify-content: center; }
    .sidebar-inferior { justify-content: center; gap: 4px; }
    .sidebar-inferior .boton-alertas-coautoria { left: 27px; }
}

@media (max-width: 900px) {
    .mensaje-escritura-escritorio.mensaje-solo-movil { display: flex; }

    .navegacion-movil { grid-template-columns: repeat(5, minmax(0,1fr)); }
    .navegacion-movil button svg { width: 18px; height: 18px; }

    /* En la aplicación móvil El Escribano se abre desde el menú inferior. */
    .pagina-aplicacion .escribano-flotante {
        right: 0;
        bottom: 0;
        width: 0;
        height: 0;
    }
    .pagina-aplicacion .burbuja-escribano { display: none; }
    .pagina-aplicacion .panel-escribano {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: calc(82px + env(safe-area-inset-bottom));
        width: auto;
        height: min(72dvh, 650px);
        border-radius: 20px;
    }

    /* La lectura móvil queda libre de asistentes flotantes; Índice y el
       desplazamiento vuelven al borde natural de la pantalla. */
    body.pagina-previsualizacion .escribano-flotante { display: none !important; }
    body.pagina-previsualizacion .boton-indice-flotante,
    body.pagina-previsualizacion .boton-ir-final {
        right: 14px;
        bottom: max(16px, env(safe-area-inset-bottom));
    }

    body.pagina-previsualizacion .barra-previsualizacion .acciones-previsualizacion {
        flex: 0 0 auto;
        gap: 6px;
        overflow: visible;
    }
    body.pagina-previsualizacion .barra-previsualizacion .acciones-previsualizacion .boton {
        width: 38px;
        min-width: 38px;
        height: 38px;
        padding: 0;
        gap: 0;
        font-size: 0;
    }
    body.pagina-previsualizacion .barra-previsualizacion .acciones-previsualizacion .boton span { display: none; }

    /* Cuadrícula móvil: dos miniaturas por fila, título bajo la portada y un
       único menú contextual para todas las acciones de la obra. */
    .rejilla-proyectos.vista-cuadricula {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 18px 12px;
        align-items: start;
    }
    .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto {
        width: 100%;
        max-width: none;
        min-width: 0;
        min-height: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        display: flex;
        flex-direction: column;
        gap: 9px;
        overflow: visible;
    }
    .rejilla-proyectos.vista-cuadricula .portada-proyecto {
        width: 100%;
        min-width: 0;
        height: auto;
        min-height: 0;
        aspect-ratio: 4 / 5;
        padding: 18px 12px;
        border-radius: 10px 15px 15px 10px;
    }
    .rejilla-proyectos.vista-cuadricula .titulo-portada {
        display: block;
        font-size: clamp(11px, 3.4vw, 15px);
        line-height: 1.2;
    }
    .rejilla-proyectos.vista-cuadricula .datos-proyecto {
        width: 100%;
        min-width: 0;
        padding: 0 2px;
        display: grid;
        grid-template-columns: minmax(0,1fr) 34px;
        grid-template-rows: auto;
        align-items: start;
        gap: 7px;
    }
    .rejilla-proyectos.vista-cuadricula .resumen-proyecto-tarjeta {
        grid-column: 1;
        min-width: 0;
    }
    .rejilla-proyectos.vista-cuadricula .linea-titulo-proyecto-lista { display: block; }
    .rejilla-proyectos.vista-cuadricula .datos-proyecto h2 {
        margin: 0;
        padding: 0;
        font-size: 14px;
        line-height: 1.28;
    }
    .rejilla-proyectos.vista-cuadricula .datos-proyecto h2 a {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .rejilla-proyectos.vista-cuadricula .subtitulo-tarjeta-proyecto,
    .rejilla-proyectos.vista-cuadricula .metadatos-proyecto-tarjeta,
    .rejilla-proyectos.vista-cuadricula .camino-obra-lista,
    .rejilla-proyectos.vista-cuadricula .autores-coautoria-lista,
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta,
    .rejilla-proyectos.vista-cuadricula .etiqueta-coautoria-lista { display: none !important; }
    .rejilla-proyectos.vista-cuadricula .menu-contextual {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        justify-self: end;
        margin: -4px -3px 0 0;
    }
    .rejilla-proyectos.vista-cuadricula .menu-contextual > .boton-icono {
        width: 34px;
        height: 34px;
        border-color: var(--borde);
        border-radius: 10px;
        background: var(--superficie);
    }
    .rejilla-proyectos.vista-cuadricula .menu-flotante {
        right: 0;
        top: 40px;
        bottom: auto;
        min-width: 190px;
        z-index: 40;
    }
    .rejilla-proyectos.vista-cuadricula .estado-publicacion-tarjeta {
        top: 8px;
        right: 8px;
        padding: 4px 6px;
    }
    .rejilla-proyectos.vista-cuadricula .estado-publicacion-tarjeta span { display: none; }

    /* La vista lista conserva una fila compacta; sus acciones rápidas siguen
       disponibles sin alterar la preferencia de escritorio. */
    .rejilla-proyectos.vista-lista { display: flex; flex-direction: column; gap: 12px; }
}

@media (max-width: 420px) {
    .rejilla-proyectos.vista-cuadricula { gap: 16px 10px; }
    .rejilla-proyectos.vista-cuadricula .portada-proyecto { padding: 14px 9px; }
    .rejilla-proyectos.vista-cuadricula .datos-proyecto h2 { font-size: 13px; }
}

/* =========================================================
   Mi Estudio · Quijotext 2.2.2
   ========================================================= */
.pagina-mi-estudio .contenido-principal{padding-bottom:5rem}.cabecera-mi-estudio{align-items:flex-end}.acciones-cabecera-estudio{display:flex;gap:.75rem;flex-wrap:wrap}.rejilla-mi-estudio{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);gap:1.5rem;align-items:start}.tarjeta-identidad-estudio,.tarjeta-obras-estudio{min-width:0}.resumen-avatar-estudio{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--borde);border-radius:18px;background:var(--superficie-secundaria)}.avatar-estudio-config{width:72px;height:72px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--texto);color:var(--fondo);font-size:1.6rem;font-weight:700;flex:0 0 auto}.avatar-estudio-config img{width:100%;height:100%;object-fit:cover}.resumen-avatar-estudio>div:last-child{display:grid;gap:.2rem}.resumen-avatar-estudio a{font-size:.82rem;text-decoration:underline}.entrada-prefijo-estudio{display:flex;align-items:center;border:1px solid var(--borde);border-radius:12px;background:var(--fondo);overflow:hidden}.entrada-prefijo-estudio b{padding:0 .15rem 0 .85rem;color:var(--texto-secundario)}.entrada-prefijo-estudio input{border:0!important;border-radius:0!important;padding-left:.25rem!important;box-shadow:none!important}.estado-usuario-estudio.correcto{color:#16794a}.estado-usuario-estudio.error{color:#b42318}.estado-usuario-estudio.comprobando{color:var(--texto-secundario)}.grupo-redes-estudio{display:grid;gap:.65rem;padding-top:.5rem}.grupo-redes-estudio>div{display:grid;gap:.15rem}.grupo-redes-estudio>div small{color:var(--texto-secundario)}.campo-red-estudio{display:grid;grid-template-columns:22px 120px 1fr;gap:.6rem;align-items:center}.campo-red-estudio svg{width:18px}.campo-red-estudio span{font-size:.86rem;font-weight:600}.campo-red-estudio input{min-width:0}.interruptores-estudio{display:grid;gap:.8rem}.barra-acciones-obras-estudio{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;border-radius:14px;background:var(--superficie-secundaria);border:1px solid var(--borde);position:sticky;top:1rem;z-index:3}.barra-acciones-obras-estudio>div{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.barra-acciones-obras-estudio .boton{padding:.58rem .72rem;font-size:.8rem}.ayuda-orden-estudio{display:flex;align-items:center;gap:.55rem;color:var(--texto-secundario);font-size:.82rem;margin:.9rem 0}.ayuda-orden-estudio svg{width:17px}.lista-obras-estudio{display:grid;gap:.65rem}.fila-obra-estudio{display:grid;grid-template-columns:30px 28px 48px minmax(0,1fr) auto 38px;align-items:center;gap:.7rem;padding:.75rem;border:1px solid var(--borde);border-radius:15px;background:var(--fondo);transition:.2s ease}.fila-obra-estudio.destacada{border-color:#d9b95a;background:linear-gradient(90deg,rgba(217,185,90,.13),transparent 48%)}.fila-obra-estudio.oculta-estudio{opacity:.62}.asa-obra-estudio{cursor:grab;color:var(--texto-secundario);display:grid;place-items:center}.asa-obra-estudio:active{cursor:grabbing}.seleccion-obra-estudio{display:grid;place-items:center}.seleccion-obra-estudio input{width:18px;height:18px}.miniatura-fila-estudio{width:42px;height:52px;border-radius:7px;overflow:hidden;background:var(--texto);color:var(--fondo);display:grid;place-items:center;font-weight:700}.miniatura-fila-estudio img{width:100%;height:100%;object-fit:cover}.datos-fila-estudio{min-width:0;display:grid;gap:.2rem}.datos-fila-estudio strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.datos-fila-estudio small{color:var(--texto-secundario)}.etiquetas-fila-estudio{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.etiquetas-fila-estudio span{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .48rem;border-radius:999px;border:1px solid var(--borde);font-size:.72rem}.etiquetas-fila-estudio .etiqueta-destacada{border-color:#d9b95a;background:rgba(217,185,90,.12)}.etiquetas-fila-estudio svg{width:13px}.obra-estudio-fantasma{opacity:.35}.estado-vacio-estudio{display:grid;place-items:center;text-align:center;gap:.35rem;min-height:220px;border:1px dashed var(--borde);border-radius:18px;color:var(--texto-secundario)}.estado-vacio-estudio svg{width:36px;height:36px}

.pagina-estudio-publico{background:#f6f4ee;color:#171713}.cabecera-publica-estudio{max-width:1240px;margin:0 auto;padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between}.marca-estudio-publico{display:flex;align-items:center;gap:.65rem}.estudio-publico{max-width:1160px;margin:0 auto;padding:2.5rem 2rem 6rem}.hero-estudio-publico{display:grid;grid-template-columns:180px 1fr;gap:2.5rem;align-items:center;padding:3rem 0 2.6rem;border-bottom:1px solid rgba(0,0,0,.15)}.avatar-publico-estudio{width:180px;height:180px;border-radius:50%;overflow:hidden;background:#171713;color:#fff;display:grid;place-items:center;font-size:4rem;font-family:Georgia,serif}.avatar-publico-estudio img{width:100%;height:100%;object-fit:cover}.identidad-publica-estudio h1{font-family:Georgia,serif;font-size:clamp(3rem,7vw,6.4rem);line-height:.92;letter-spacing:-.055em;margin:.35rem 0 1rem}.lema-estudio-publico{font-size:1.2rem;max-width:760px;color:#4d4b43}.meta-estudio-publico{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.3rem}.meta-estudio-publico span,.meta-estudio-publico a{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.meta-estudio-publico svg{width:16px}.manifiesto-estudio-publico{display:grid;grid-template-columns:180px 1fr;gap:2.5rem;padding:3rem 0;border-bottom:1px solid rgba(0,0,0,.15)}.manifiesto-estudio-publico p{font-family:Georgia,serif;font-size:clamp(1.25rem,2.2vw,1.85rem);line-height:1.6;margin:0}.redes-estudio-publico{padding:1.4rem 0;border-bottom:1px solid rgba(0,0,0,.15);display:flex;justify-content:space-between;gap:1rem;align-items:center}.redes-estudio-publico>span{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.redes-estudio-publico>div{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.redes-estudio-publico a{display:flex;align-items:center;gap:.3rem;border:1px solid rgba(0,0,0,.18);border-radius:999px;padding:.48rem .75rem;font-size:.82rem}.redes-estudio-publico svg{width:14px}.biblioteca-estudio-publico{padding-top:4rem}.biblioteca-estudio-publico>header{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:2rem}.biblioteca-estudio-publico h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.8rem);margin:.35rem 0 0}.biblioteca-estudio-publico>header>strong{font-size:.85rem;color:#6d6a60}.rejilla-obras-estudio-publico{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.obra-estudio-publico{display:grid;gap:1rem}.portada-obra-estudio{aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:#24231f;color:#fff;position:relative;display:grid;place-items:center;padding:1.5rem;text-align:center;font-family:Georgia,serif;font-size:1.35rem;box-shadow:0 16px 40px rgba(0,0,0,.12)}.portada-obra-estudio img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.portada-obra-estudio b{position:absolute;left:.75rem;top:.75rem;display:flex;align-items:center;gap:.35rem;background:#f3d77a;color:#302500;padding:.42rem .62rem;border-radius:999px;font-family:inherit;font-size:.72rem}.portada-obra-estudio b svg{width:14px}.obra-estudio-publico.destacada .portada-obra-estudio{outline:3px solid #d6b64d;outline-offset:4px}.obra-estudio-publico>div{display:grid;gap:.45rem}.estado-lectura-estudio{display:flex;align-items:center;gap:.35rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:#68655b}.estado-lectura-estudio svg{width:14px}.obra-estudio-publico h3{font-family:Georgia,serif;font-size:1.45rem;margin:0}.obra-estudio-publico p{color:#68655b;margin:0;line-height:1.5}.enlace-leer-obra{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.88rem;margin-top:.4rem}.enlace-leer-obra svg{width:16px}.estado-vacio-estudio-publico{grid-column:1/-1;min-height:260px;border:1px dashed rgba(0,0,0,.2);border-radius:20px;display:grid;place-items:center;text-align:center;align-content:center;gap:.6rem}.estado-vacio-estudio-publico svg{width:40px;height:40px}

/* Indexación y acceso privado enriquecido */
.panel-indexacion-obra{display:grid;gap:1.2rem}.resumen-indexacion{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1rem 1.1rem;border:1px solid var(--borde);border-radius:16px;background:var(--superficie-secundaria)}.identificador-doi{display:grid;gap:.3rem}.identificador-doi code{font-size:.86rem;word-break:break-all}.identificador-doi small{color:var(--texto-secundario)}.url-indexacion{display:grid;gap:.45rem}.url-indexacion>div{display:flex;gap:.5rem}.url-indexacion input{flex:1}.preview-serp{border:1px solid var(--borde);border-radius:16px;padding:1.15rem;background:#fff;color:#202124;display:grid;gap:.28rem}.preview-serp>span{font-size:.78rem;color:#5f6368}.preview-serp a{font-size:1.23rem;color:#1a0dab;font-family:Arial,sans-serif}.preview-serp p{font-size:.9rem;line-height:1.45;color:#4d5156;margin:0}.lista-tecnica-indexacion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.lista-tecnica-indexacion span{display:flex;align-items:center;gap:.5rem;padding:.7rem;border-radius:12px;background:var(--superficie-secundaria);font-size:.82rem}.lista-tecnica-indexacion svg{width:16px}
.acceso-obra-privada-indexada{max-width:980px;margin:4rem auto;padding:0 1.5rem}.tarjeta-acceso-indexada{display:grid;grid-template-columns:minmax(250px,360px) 1fr;border:1px solid var(--borde);border-radius:24px;overflow:hidden;background:var(--fondo);box-shadow:0 24px 80px rgba(0,0,0,.12)}.portada-acceso-indexada{min-height:520px;background:var(--texto);color:var(--fondo);display:grid;place-items:center;position:relative;overflow:hidden;padding:2rem;text-align:center}.portada-acceso-indexada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.portada-acceso-indexada span{font-family:Georgia,serif;font-size:2rem;position:relative;z-index:1}.contenido-acceso-indexado{padding:3rem;display:grid;align-content:center;gap:1rem}.contenido-acceso-indexado h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.6rem);line-height:1.02;margin:0}.autor-acceso-indexado{display:flex;align-items:center;gap:.7rem}.autor-acceso-indexado .avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;background:var(--texto);color:var(--fondo);display:grid;place-items:center}.autor-acceso-indexado img{width:100%;height:100%;object-fit:cover}.descripcion-acceso-indexado{line-height:1.6;color:var(--texto-secundario)}

@media (max-width:1100px){.rejilla-mi-estudio{grid-template-columns:1fr}.rejilla-obras-estudio-publico{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.cabecera-mi-estudio{align-items:flex-start}.acciones-cabecera-estudio{width:100%}.acciones-cabecera-estudio .boton{flex:1}.barra-acciones-obras-estudio{position:static;align-items:flex-start;flex-direction:column}.fila-obra-estudio{grid-template-columns:24px 24px 42px minmax(0,1fr) 36px}.etiquetas-fila-estudio{grid-column:4/6;justify-content:flex-start}.campo-red-estudio{grid-template-columns:22px 1fr}.campo-red-estudio span{grid-column:2}.campo-red-estudio input{grid-column:2}.estudio-publico{padding:1.5rem 1.15rem 4rem}.cabecera-publica-estudio{padding:1rem 1.15rem}.hero-estudio-publico{grid-template-columns:1fr;gap:1.5rem}.avatar-publico-estudio{width:120px;height:120px;font-size:2.5rem}.manifiesto-estudio-publico{grid-template-columns:1fr;gap:1rem}.redes-estudio-publico{align-items:flex-start;flex-direction:column}.redes-estudio-publico>div{justify-content:flex-start}.rejilla-obras-estudio-publico{grid-template-columns:1fr}.tarjeta-acceso-indexada{grid-template-columns:1fr}.portada-acceso-indexada{min-height:330px}.contenido-acceso-indexado{padding:2rem}.lista-tecnica-indexacion{grid-template-columns:1fr}}

/* Mi Estudio · diagnóstico de migración 2.2.2 */
.aviso-migracion-estudio{display:grid;grid-template-columns:56px minmax(0,1fr);gap:1rem;align-items:start;padding:1.25rem 1.35rem;border:1px solid var(--borde);border-radius:20px;background:var(--superficie);box-shadow:0 14px 40px rgba(0,0,0,.05);max-width:900px}.icono-aviso-migracion{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--texto);color:var(--fondo)}.icono-aviso-migracion svg{width:24px;height:24px}.aviso-migracion-estudio h2{margin:.15rem 0 .35rem;font-size:1.35rem}.aviso-migracion-estudio p{margin:0;color:var(--texto-secundario);line-height:1.65}.aviso-migracion-estudio details{margin-top:.8rem}.aviso-migracion-estudio summary{cursor:pointer;font-weight:700;font-size:.85rem}.aviso-migracion-estudio code{display:block;margin-top:.55rem;padding:.7rem;border-radius:10px;background:var(--superficie-secundaria);white-space:normal;overflow-wrap:anywhere;font-size:.76rem}.configuracion-cuenta .campo-usuario-estudio .entrada-prefijo-estudio,.modal-contenido .entrada-prefijo-estudio{width:100%}@media(max-width:700px){.aviso-migracion-estudio{grid-template-columns:1fr}.icono-aviso-migracion{width:46px;height:46px}}

/* Quijotext 2.2.4 · Jerarquía, configuración, móvil y publicación de Mi Estudio */
.contenido-principal > .cabecera-pagina {
    margin-bottom: clamp(28px, 3vw, 40px);
}
.contenido-principal > .cabecera-pagina + .resumen-biblioteca,
.contenido-principal > .cabecera-pagina + .rejilla-configuracion-cuenta,
.contenido-principal > .cabecera-pagina + .tabla-administracion-contenedor {
    margin-top: 0;
}

/* Mi Estudio: publicación visible y persistente desde la cabecera. */
.cabecera-mi-estudio > div:first-child { min-width: 0; max-width: 760px; }
.acciones-cabecera-estudio { align-items: center; justify-content: flex-end; }
.control-publicacion-estudio {
    min-height: 48px;
    padding: 7px 10px 7px 13px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie-secundaria);
    display: inline-flex;
    align-items: center;
    gap: 12px;
    transition: border-color var(--transicion), background var(--transicion), opacity var(--transicion);
}
.control-publicacion-estudio.publicado { border-color: rgba(22,101,52,.28); background: rgba(34,197,94,.08); }
.control-publicacion-estudio.guardando { opacity: .66; }
.texto-control-publicacion { min-width: 150px; display: grid; gap: 1px; line-height: 1.25; }
.texto-control-publicacion strong { font-size: 12px; }
.texto-control-publicacion small { color: var(--texto-secundario); font-size: 10px; white-space: nowrap; }
.control-publicacion-estudio.publicado .texto-control-publicacion strong { color: #166534; }
.interruptor-cabecera-estudio { flex: 0 0 auto; margin: 0; }
.interruptor-cabecera-estudio > span { flex: 0 0 42px; }
.interruptor-cabecera-estudio[aria-busy="true"] > span { cursor: progress; }
#boton-guardar-estudio svg.lucide-loader-circle { animation: girar .8s linear infinite; }
.direccion-estudio-config,
.direccion-estudio-perfil {
    padding: 12px 14px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie-secundaria);
    display: grid;
    grid-template-columns: 20px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
}
.direccion-estudio-config > svg,
.direccion-estudio-perfil > svg { width: 18px; height: 18px; color: var(--texto-secundario); }
.direccion-estudio-config > div,
.direccion-estudio-perfil > div { min-width: 0; display: grid; gap: 3px; }
.direccion-estudio-config code,
.direccion-estudio-perfil code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--texto-secundario); font-size: 11px; }
.direccion-estudio-config a,
.direccion-estudio-perfil a { font-size: 12px; font-weight: 750; text-decoration: underline; white-space: nowrap; }
.aviso-vista-previa-estudio {
    max-width: 1160px;
    margin: 18px auto 0;
    padding: 12px 16px;
    border: 1px solid rgba(133,77,14,.24);
    border-radius: 14px;
    background: #fff8e7;
    color: #593b0c;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.aviso-vista-previa-estudio > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.aviso-vista-previa-estudio svg { width: 19px; height: 19px; flex: 0 0 auto; }
.aviso-vista-previa-estudio span { display: grid; gap: 2px; }
.aviso-vista-previa-estudio small { color: #765b2b; }
.aviso-vista-previa-estudio a { flex: 0 0 auto; font-size: 12px; font-weight: 800; text-decoration: underline; }

/* Configuración de cuenta a ancho completo y organizada por pestañas. */
.configuracion-cuenta { width: 100%; max-width: none; }
.pestanas-configuracion-cuenta {
    width: 100%;
    margin-bottom: 22px;
    padding: 5px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: center;
    gap: 5px;
}
.pestanas-configuracion-cuenta button {
    min-height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}
.pestanas-configuracion-cuenta button:hover { color: var(--texto); }
.pestanas-configuracion-cuenta button.activo { background: var(--superficie); color: var(--texto); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.pestanas-configuracion-cuenta svg { width: 17px; height: 17px; }
.paneles-configuracion-cuenta,
.panel-configuracion-cuenta { width: 100%; min-width: 0; }
.panel-configuracion-cuenta[hidden] { display: none !important; }
.rejilla-panel-configuracion {
    width: 100%;
    display: grid;
    gap: 22px;
    align-items: start;
}
.rejilla-perfil-configuracion { grid-template-columns: minmax(430px, 1.15fr) minmax(340px, .85fr); }
.rejilla-panel-configuracion .tarjeta-configuracion,
.panel-configuracion-cuenta > .tarjeta-configuracion { width: 100%; min-width: 0; }
.tarjeta-perfil-principal { grid-row: span 2; }
.tarjeta-seguridad-cuenta,
.tarjeta-integraciones-cuenta { min-height: 360px; }
.formulario-seguridad-cuenta { max-width: 680px; }
.tarjeta-integraciones-cuenta .rejilla-api-cuenta { width: 100%; }

@media (max-width: 1180px) {
    .rejilla-perfil-configuracion { grid-template-columns: 1fr; }
    .tarjeta-perfil-principal { grid-row: auto; }
}

@media (max-width: 900px) {
    /* La barra tiene seis accesos. Una sola fila evita que crezca y cubra el contenido. */
    .navegacion-movil { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .navegacion-movil a,
    .navegacion-movil button { min-width: 0; }
    .navegacion-movil a span,
    .navegacion-movil button span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

    /* Reserva real debajo de todas las pantallas con navegación fija. */
    .pagina-aplicacion .contenido-principal {
        padding-bottom: calc(128px + env(safe-area-inset-bottom)) !important;
        scroll-padding-bottom: calc(128px + env(safe-area-inset-bottom));
    }
    .contenido-principal > .cabecera-pagina { margin-bottom: 24px; }
    .pestanas-configuracion-cuenta { overflow-x: auto; justify-content: flex-start; scrollbar-width: none; }
    .pestanas-configuracion-cuenta::-webkit-scrollbar { display: none; }
    .pestanas-configuracion-cuenta button { flex: 0 0 auto; }
    .selector-tema { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
    .opcion-tema { min-width: 0; }
    .muestra-tema { height: 72px; }
}

@media (max-width: 700px) {
    .aviso-vista-previa-estudio { margin-inline: 14px; align-items: flex-start; flex-direction: column; }
    .direccion-estudio-config,
    .direccion-estudio-perfil { grid-template-columns: 20px minmax(0,1fr); }
    .direccion-estudio-config a,
    .direccion-estudio-perfil a { grid-column: 2; }
    .acciones-cabecera-estudio { width: 100%; gap: 8px; }
    .control-publicacion-estudio { width: 100%; justify-content: space-between; order: -1; }
    .texto-control-publicacion { min-width: 0; }
    .texto-control-publicacion small { white-space: normal; }
    .acciones-cabecera-estudio > .boton { flex: 1 1 180px; }
    .tarjeta-configuracion { padding: 20px; }
}

@media (max-width: 430px) {
    .navegacion-movil { left: 6px; right: 6px; padding: 5px 3px; gap: 2px; }
    .navegacion-movil a,
    .navegacion-movil button { padding-inline: 2px; font-size: 8px; }
    .selector-tema { grid-template-columns: 1fr; }
}

/* Mi Estudio 2.2.5: Tu Estante */
.solo-lectores{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.barra-acciones-obras-estudio[hidden]{display:none!important}
.barra-acciones-obras-estudio.procesando{opacity:.72;pointer-events:none}
.resumen-seleccion-estante{display:inline-flex;align-items:baseline;gap:.25rem;white-space:nowrap}
.estados-fila-estante{display:flex;align-items:center;justify-content:flex-end;gap:.38rem;flex-wrap:wrap}
.estado-icono-estante[hidden]{display:none!important}
.estado-icono-estante{position:relative;width:32px;height:32px;display:inline-grid;place-items:center;border:1px solid var(--borde);border-radius:999px;background:var(--fondo);color:var(--texto-secundario);transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}
.estado-icono-estante svg{width:15px;height:15px;stroke-width:1.8}
.estado-visibilidad-estante.activo{color:var(--texto);background:var(--superficie-secundaria)}
.estado-visibilidad-estante.inactivo{color:var(--texto-secundario);border-style:dashed}
.estado-destacada-estante.activo{color:#8a6500;border-color:#d9b95a;background:rgba(217,185,90,.14)}
.estado-privada-estante{color:var(--texto);background:var(--superficie-secundaria)}
.enlace-obra-estante.deshabilitado{opacity:.38;cursor:default;pointer-events:none}
.lista-obras-estudio.guardando-orden{pointer-events:none;opacity:.72}
.fila-obra-estudio{grid-template-columns:30px 28px 48px minmax(0,1fr) auto 38px}
.fila-obra-estudio.oculta-estudio{opacity:.72;background:var(--superficie-secundaria)}
.fila-obra-estudio.oculta-estudio .miniatura-fila-estudio{filter:grayscale(.7)}
@media (max-width:760px){
 .barra-acciones-obras-estudio>div{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .barra-acciones-obras-estudio .boton{justify-content:center}
 .fila-obra-estudio{grid-template-columns:24px 24px 42px minmax(0,1fr) 36px}
 .estados-fila-estante{grid-column:4/6;grid-row:2;justify-content:flex-start;padding-top:.25rem}
 .enlace-obra-estante{grid-column:5;grid-row:1}
}

/* =========================================================
   Quijotext 2.2.8 · Planes, acceso y pulido transversal
   ========================================================= */

/* Scrollbars: los temas nuevos heredan estas variables y pueden sobrescribirlas. */
:root {
    --scrollbar-track: var(--superficie-secundaria);
    --scrollbar-thumb: #a8a8a8;
    --scrollbar-thumb-hover: #737373;
    --scrollbar-size: 10px;
}
html[data-tema="oscuro"] {
    --scrollbar-track: #111111;
    --scrollbar-thumb: #454545;
    --scrollbar-thumb-hover: #686868;
}
html[data-tema="medieval"] {
    --scrollbar-track: #ead8b7;
    --scrollbar-thumb: #a47a4b;
    --scrollbar-thumb-hover: #765332;
}
* {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
*::-webkit-scrollbar { width: var(--scrollbar-size); height: var(--scrollbar-size); }
*::-webkit-scrollbar-track { background: var(--scrollbar-track); }
*::-webkit-scrollbar-thumb {
    min-height: 34px;
    border: 2px solid var(--scrollbar-track);
    border-radius: 999px;
    background: var(--scrollbar-thumb);
    background-clip: padding-box;
}
*::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); background-clip: padding-box; }
*::-webkit-scrollbar-corner { background: var(--scrollbar-track); }

/* Obras: el menú de tres puntos es una solución compacta exclusiva de pantallas pequeñas. */
.rejilla-proyectos .menu-contextual { display: none; }
/* El cambio de foto pública se guarda sin alterar el flujo ni las dimensiones del formulario. */
#control-foto-publica-estudio.guardando { opacity: .68; pointer-events: none; }

/* Acceso: ambos proveedores comparten exactamente el mismo ancho visual. */
.tarjeta-login.tarjeta-acceso-hibrido { width: min(100%, 400px); }
.acceso-google,
.acceso-google > div,
.acceso-google iframe { width: 100% !important; max-width: none !important; }
.acceso-google { min-height: 44px; overflow: hidden; border-radius: 10px; }

/* Comparador de planes para escritores. */
.pagina-planes-usuario {
    width: 100%;
    min-width: 0;
    padding: clamp(28px, 4vw, 58px);
    padding-bottom: clamp(90px, 10vw, 130px);
    overflow-y: auto;
}
.cabecera-planes-comparacion {
    width: min(1480px, 100%);
    margin: 0 auto clamp(30px, 4vw, 52px);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 34px;
}
.introduccion-planes-comparacion { max-width: 760px; }
.introduccion-planes-comparacion h1 {
    max-width: 760px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 72px);
    font-weight: 700;
    line-height: .98;
    letter-spacing: -.045em;
}
.introduccion-planes-comparacion > p {
    max-width: 680px;
    margin: 20px 0 0;
    color: var(--texto-secundario);
    font-size: 15px;
    line-height: 1.7;
}
.estado-plan-usuario {
    width: fit-content;
    margin-top: 22px;
    padding: 11px 14px;
    border: 1px solid var(--borde);
    border-radius: 13px;
    background: var(--superficie-secundaria);
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    gap: 2px 9px;
}
.estado-plan-usuario > span {
    color: var(--texto-secundario);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.estado-plan-usuario > strong { font-size: 14px; }
.estado-plan-usuario > small { grid-column: 1 / -1; color: var(--texto-secundario); font-size: 11px; }
.selector-ciclo-planes {
    flex: 0 0 auto;
    padding: 8px 10px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie);
    box-shadow: 0 10px 32px rgba(0,0,0,.06);
    display: flex;
    align-items: center;
    gap: 11px;
}
.selector-ciclo-planes > span {
    color: var(--texto-secundario);
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
    transition: color var(--transicion);
}
.selector-ciclo-planes > span.activo { color: var(--texto); }
.selector-ciclo-planes > span small {
    margin-left: 3px;
    padding: 3px 6px;
    border-radius: 999px;
    background: var(--texto);
    color: var(--fondo);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.interruptor-ciclo-planes { display: block; position: relative; width: 48px; height: 28px; }
.interruptor-ciclo-planes input[type="checkbox"] {
    position: absolute !important;
    inset-inline-start: 0;
    top: 50%;
    width: 1px !important;
    height: 1px !important;
    min-width: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    transform: translateY(-50%);
    pointer-events: none;
}
.pista-ciclo-planes {
    width: 48px;
    height: 28px;
    padding: 3px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie-secundaria);
    display: block;
    cursor: pointer;
    transition: background var(--transicion), border-color var(--transicion);
}
.pista-ciclo-planes b {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--texto);
    display: block;
    transition: transform var(--transicion);
}
.interruptor-ciclo-planes input:checked + .pista-ciclo-planes { border-color: var(--texto); }
.interruptor-ciclo-planes input:checked + .pista-ciclo-planes b { transform: translateX(20px); }
.aviso-prueba-destacado {
    width: min(1480px, 100%);
    margin: -24px auto 26px;
}
.rejilla-planes-comparacion {
    width: min(1480px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 265px), 1fr));
    align-items: stretch;
    gap: clamp(16px, 2vw, 24px);
}
.tarjeta-plan-comparacion {
    min-width: 0;
    min-height: 650px;
    padding: 24px;
    border: 1px solid color-mix(in srgb, var(--borde) 88%, var(--texto) 12%);
    border-radius: 30px;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--superficie-secundaria) 70%, transparent) 0%, transparent 42%),
        linear-gradient(180deg, color-mix(in srgb, var(--superficie) 92%, #ffffff 8%) 0%, var(--superficie) 100%);
    box-shadow: 0 22px 70px rgba(0,0,0,.055);
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: relative;
    overflow: hidden;
    transition: transform var(--transicion), border-color var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.tarjeta-plan-comparacion::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 6px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--texto) 20%, transparent), transparent);
    opacity: .9;
}
.tarjeta-plan-comparacion:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--texto) 24%, var(--borde));
    box-shadow: 0 28px 85px rgba(0,0,0,.09);
}
.tarjeta-plan-comparacion.destacado {
    border-color: color-mix(in srgb, var(--verde-escribano, #C7FF2F) 68%, var(--texto) 32%);
    box-shadow: 0 28px 90px rgba(0,0,0,.09), 0 0 0 1px color-mix(in srgb, var(--verde-escribano, #C7FF2F) 28%, transparent);
}
.tarjeta-plan-comparacion.destacado::before {
    height: 8px;
    background: linear-gradient(90deg, var(--verde-escribano, #C7FF2F), color-mix(in srgb, var(--verde-escribano, #C7FF2F) 35%, transparent));
}
.tarjeta-plan-comparacion.actual::after {
    content: "";
    position: absolute;
    inset: 12px;
    pointer-events: none;
    border: 1px dashed color-mix(in srgb, var(--texto) 14%, transparent);
    border-radius: 22px;
}
.encabezado-plan-comparacion {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}
.meta-plan-comparacion {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.numero-plan-comparacion {
    min-width: 54px;
    height: 38px;
    padding: 0 14px;
    border-radius: 14px;
    background: #050505;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .02em;
    box-shadow: 0 10px 22px rgba(0,0,0,.12);
}
.tarjeta-plan-comparacion.destacado .numero-plan-comparacion {
    background: var(--verde-escribano, #C7FF2F);
    color: #050505;
}
.etiqueta-plan-estado {
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--borde);
    background: color-mix(in srgb, var(--superficie-secundaria) 88%, transparent);
    color: var(--texto-secundario);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.etiqueta-plan-estado.actual {
    border-color: color-mix(in srgb, var(--texto) 14%, var(--borde));
    color: var(--texto);
}
.etiqueta-plan-estado.destacado {
    border-color: color-mix(in srgb, var(--verde-escribano, #C7FF2F) 48%, var(--borde));
    background: color-mix(in srgb, var(--verde-escribano, #C7FF2F) 18%, var(--superficie));
    color: color-mix(in srgb, #0b0b0b 85%, var(--texto));
}
.identidad-plan-comparacion {
    min-height: 98px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    text-align: left;
}
.identidad-plan-comparacion h2 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: clamp(34px, 4vw, 40px);
    line-height: .98;
    letter-spacing: -.05em;
}
.identidad-plan-comparacion p {
    width: 100%;
    max-width: none;
    margin: 0;
    color: var(--texto-secundario);
    font-size: 13px;
    line-height: 1.65;
    text-align: justify;
    text-align-last: left;
    text-wrap: pretty;
    hyphens: auto;
}
.precio-plan-comparacion {
    min-height: 124px;
    padding: 18px 18px 16px;
    border: 1px solid color-mix(in srgb, var(--borde) 84%, var(--texto) 16%);
    border-radius: 22px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--superficie-secundaria) 80%, #fff 20%) 0%, var(--superficie) 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
}
.tarjeta-plan-comparacion.destacado .precio-plan-comparacion {
    border-color: color-mix(in srgb, var(--verde-escribano, #C7FF2F) 38%, var(--borde));
    background: linear-gradient(180deg, color-mix(in srgb, var(--verde-escribano, #C7FF2F) 12%, var(--superficie)) 0%, var(--superficie) 100%);
}
.precio-plan-comparacion > div {
    display: flex;
    align-items: baseline;
    justify-content: flex-start;
    gap: 6px;
    flex-wrap: wrap;
}
.precio-plan-comparacion .moneda-plan {
    color: var(--texto-secundario);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.precio-plan-comparacion strong {
    font-size: clamp(52px, 5.6vw, 60px);
    line-height: .92;
    letter-spacing: -.07em;
}
.precio-plan-comparacion.gratuito strong {
    font-family: Georgia, serif;
    font-size: clamp(44px, 5vw, 56px);
}
.precio-plan-comparacion small,
.precio-plan-comparacion > span {
    color: var(--texto-secundario);
    font-size: 11px;
}
.ahorro-plan-anual {
    width: fit-content;
    margin-top: 6px;
    padding: 7px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--verde-escribano, #C7FF2F) 18%, var(--superficie));
    color: color-mix(in srgb, #0b0b0b 88%, var(--texto));
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
}
.limites-plan-comparacion {
    padding: 2px 0 4px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 10px;
}
.limites-plan-comparacion > span {
    min-width: 0;
    padding: 14px 12px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: color-mix(in srgb, var(--superficie-secundaria) 88%, transparent);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    text-align: left;
}
.limites-plan-comparacion svg {
    width: 15px;
    height: 15px;
    margin-bottom: 5px;
    color: var(--texto-secundario);
}
.limites-plan-comparacion strong {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 14px;
    white-space: nowrap;
}
.limites-plan-comparacion small {
    color: var(--texto-secundario);
    font-size: 9px;
    line-height: 1.35;
}
.beneficios-plan-comparacion { flex: 1; min-height: 0; padding-top: 4px; }
.beneficios-plan-comparacion > strong {
    display: block;
    margin-bottom: 12px;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.beneficios-plan-comparacion ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.beneficios-plan-comparacion li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--texto-secundario);
    font-size: 12px;
    line-height: 1.45;
}
.beneficios-plan-comparacion li svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    margin-top: 1px;
    color: var(--texto);
}
.tarjeta-plan-comparacion.destacado .beneficios-plan-comparacion li svg { color: color-mix(in srgb, #0b0b0b 75%, var(--verde-escribano, #C7FF2F)); }
.beneficios-plan-comparacion .beneficios-restantes { color: var(--texto); font-weight: 700; }
.boton-beneficios-restantes {
    width: 100%;
    padding: 10px 12px;
    border: 1px dashed color-mix(in srgb, var(--texto) 24%, var(--borde));
    border-radius: 13px;
    background: color-mix(in srgb, var(--superficie-secundaria) 78%, transparent);
    color: var(--texto);
    display: grid;
    grid-template-columns: 18px minmax(0,1fr) auto;
    align-items: center;
    gap: 8px;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--transicion), background var(--transicion), transform var(--transicion);
}
.boton-beneficios-restantes:hover,
.boton-beneficios-restantes:focus-visible {
    border-color: var(--texto);
    background: var(--superficie-secundaria);
    transform: translateY(-1px);
    outline: none;
}
.boton-beneficios-restantes svg { width: 15px; height: 15px; color: var(--texto); }
.boton-beneficios-restantes span { min-width: 0; font-size: 11px; font-weight: 800; }
.boton-beneficios-restantes small { color: var(--texto-secundario); font-size: 9px; white-space: nowrap; }

.modal-detalle-plan { z-index: 1850; }
.modal-detalle-plan-contenido {
    width: min(980px, 100%);
    height: min(820px, calc(100dvh - 48px));
    max-height: calc(100dvh - 48px);
    padding: 0;
    overflow: hidden;
    border-radius: 26px;
    display: flex;
    flex-direction: column;
}
.modal-detalle-plan-contenido.recomendado {
    border-color: color-mix(in srgb, var(--verde-pro, #C7FF2F) 70%, var(--texto) 30%);
    box-shadow: 0 32px 100px rgba(0,0,0,.24), 0 0 0 2px color-mix(in srgb, var(--verde-pro, #C7FF2F) 38%, transparent);
}
.modal-detalle-plan-contenido.recomendado::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 7px;
    background: var(--verde-pro, #C7FF2F);
    z-index: 2;
}
.cabecera-detalle-plan {
    flex: 0 0 auto;
    padding: 24px 26px 20px;
    border-bottom: 1px solid var(--borde);
    background: color-mix(in srgb, var(--superficie) 94%, transparent);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.identidad-detalle-plan { min-width: 0; display: flex; align-items: center; gap: 14px; }
.numero-detalle-plan {
    min-width: 54px;
    height: 42px;
    padding: 0 14px;
    border-radius: 14px;
    background: #050505;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: Georgia, serif;
    font-size: 16px;
    font-weight: 700;
}
.modal-detalle-plan-contenido.recomendado .numero-detalle-plan { background: var(--verde-pro, #C7FF2F); color: #050505; }
.identidad-detalle-plan h2 { margin: 3px 0 0; font-family: Georgia, serif; font-size: clamp(28px, 4vw, 40px); line-height: 1; letter-spacing: -.045em; }
.acciones-cabecera-detalle-plan { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.distintivo-plan-recomendado {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: 0 8px 22px color-mix(in srgb, var(--verde-pro, #C7FF2F) 28%, transparent);
}
.distintivo-plan-recomendado svg { width: 14px; height: 14px; }
.contenido-detalle-plan {
    min-height: 0;
    flex: 1;
    padding: 24px 26px 30px;
    overflow-y: auto;
}
.presentacion-detalle-plan {
    padding: 20px;
    border: 1px solid var(--borde);
    border-radius: 20px;
    background: color-mix(in srgb, var(--superficie-secundaria) 82%, transparent);
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr);
    align-items: center;
    gap: 24px;
}
.presentacion-detalle-plan > div:first-child > p { max-width: 58ch; margin: 8px 0 0; color: var(--texto-secundario); font-size: 13px; line-height: 1.65; }
.resumen-limites-detalle-plan { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.resumen-limites-detalle-plan article {
    min-width: 0;
    padding: 13px 10px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
.resumen-limites-detalle-plan svg { width: 15px; height: 15px; margin-bottom: 3px; color: var(--texto-secundario); }
.resumen-limites-detalle-plan strong { font-size: 14px; }
.resumen-limites-detalle-plan span { color: var(--texto-secundario); font-size: 9px; line-height: 1.3; }
.catalogo-beneficios-detalle-plan { margin-top: 24px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; align-items: start; }
.grupo-beneficios-detalle-plan {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--borde);
    border-radius: 20px;
    background: var(--superficie);
}
.grupo-beneficios-detalle-plan > header { margin-bottom: 14px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.grupo-beneficios-detalle-plan > header span { font-family: Georgia, serif; font-size: 20px; font-weight: 700; }
.grupo-beneficios-detalle-plan > header small { color: var(--texto-secundario); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.grupo-beneficios-detalle-plan > div { display: flex; flex-direction: column; gap: 9px; }
.beneficio-detalle-plan {
    min-width: 0;
    padding: 12px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--superficie-secundaria) 82%, transparent);
    display: grid;
    grid-template-columns: 38px minmax(0,1fr);
    gap: 11px;
}
.icono-beneficio-detalle-plan {
    width: 38px;
    height: 38px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie);
    display: grid;
    place-items: center;
}
.icono-beneficio-detalle-plan svg { width: 17px; height: 17px; }
.beneficio-detalle-plan strong { display: block; font-size: 12px; line-height: 1.3; }
.beneficio-detalle-plan p { margin: 4px 0 0; color: var(--texto-secundario); font-size: 10px; line-height: 1.5; }
.pie-detalle-plan {
    flex: 0 0 auto;
    padding: 16px 26px calc(16px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--borde);
    background: color-mix(in srgb, var(--superficie) 96%, transparent);
    box-shadow: 0 -14px 30px rgba(0,0,0,.05);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.pie-detalle-plan > span { color: var(--texto-secundario); font-size: 11px; }
.pie-detalle-plan > span strong { color: var(--texto); }
.accion-plan-comparacion { margin-top: auto; display: flex; flex-direction: column; gap: 7px; }
.accion-plan-comparacion small { color: var(--texto-secundario); font-size: 9px; text-align: left; }
.estado-vacio-planes {
    width: min(900px, 100%);
    min-height: 280px;
    margin: 0 auto;
    padding: 30px;
    border: 1px dashed var(--borde);
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
}
.estado-vacio-planes svg { width: 30px; height: 30px; }
.estado-vacio-planes span { color: var(--texto-secundario); }

@media (max-width: 820px) {
    .modal-detalle-plan { padding: 12px; }
    .modal-detalle-plan-contenido { height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); border-radius: 20px; }
    .cabecera-detalle-plan { padding: 20px; align-items: flex-start; }
    .acciones-cabecera-detalle-plan { align-items: flex-end; flex-direction: column-reverse; }
    .distintivo-plan-recomendado { min-height: 30px; padding-inline: 10px; font-size: 8px; }
    .contenido-detalle-plan { padding: 20px; }
    .presentacion-detalle-plan { grid-template-columns: 1fr; }
    .catalogo-beneficios-detalle-plan { grid-template-columns: 1fr; }
    .pie-detalle-plan { padding-inline: 20px; }
}
@media (max-width: 520px) {
    .boton-beneficios-restantes { grid-template-columns: 18px minmax(0,1fr); }
    .boton-beneficios-restantes small { display: none; }
    .cabecera-detalle-plan { gap: 12px; }
    .identidad-detalle-plan { align-items: flex-start; }
    .numero-detalle-plan { min-width: 46px; height: 38px; padding-inline: 11px; }
    .acciones-cabecera-detalle-plan .distintivo-plan-recomendado { position: absolute; top: 16px; right: 62px; }
    .resumen-limites-detalle-plan { grid-template-columns: 1fr; }
    .resumen-limites-detalle-plan article { flex-direction: row; align-items: center; gap: 8px; }
    .resumen-limites-detalle-plan svg { margin: 0; }
    .pie-detalle-plan { align-items: stretch; flex-direction: column; }
    .pie-detalle-plan .boton { width: 100%; }
}

@media (max-width: 1100px) {
    .cabecera-planes-comparacion { align-items: flex-start; flex-direction: column; }
    .selector-ciclo-planes { align-self: center; }
}
@media (max-width: 1050px) {
    .rejilla-proyectos .menu-contextual { display: block; }
}
@media (max-width: 900px) {
    .pagina-planes-usuario { padding: 24px 16px calc(112px + env(safe-area-inset-bottom)); }
    .cabecera-planes-comparacion { gap: 25px; margin-bottom: 30px; }
    .introduccion-planes-comparacion h1 { font-size: clamp(38px, 11vw, 58px); }
    .selector-ciclo-planes { align-self: stretch; justify-content: center; }
    .rejilla-planes-comparacion { grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); }
    .tarjeta-plan-comparacion { min-height: 0; padding: 20px; }
}
@media (max-width: 520px) {
    .selector-ciclo-planes { gap: 8px; }
    .selector-ciclo-planes > span { font-size: 11px; }
    .selector-ciclo-planes > span small { display: none; }
    .estado-plan-usuario { width: 100%; }
    .rejilla-planes-comparacion { display: flex; flex-direction: column; }
    .limites-plan-comparacion { grid-template-columns: 1fr; }
    .limites-plan-comparacion > span { flex-direction: row; justify-content: flex-start; gap: 8px; text-align: left; }
    .limites-plan-comparacion svg { margin: 0; }
}

/* ===== Quijotext 2.3.0 · Alertas y tooltips Pro ===== */
.insignia-pro-global,
.marca-pro-sidebar,
.navegacion-configuracion .pestana-config-pro-bloqueada small,
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada strong em,
.accion-pro-bloqueada small {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 20px;
    padding: 3px 8px;
    border: 1px solid color-mix(in srgb, var(--verde-pro) 72%, #050505 28%) !important;
    border-radius: 999px;
    background: var(--verde-pro) !important;
    color: #050505 !important;
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .09em;
    text-transform: uppercase;
    box-shadow: 0 6px 16px color-mix(in srgb, var(--verde-pro) 24%, transparent);
}
.sidebar-editor-global .marca-pro-sidebar {
    position: absolute;
    top: -6px;
    right: -10px;
    z-index: 35;
    min-width: 29px;
    min-height: 17px;
    padding: 2px 5px;
    font-size: 7px;
    pointer-events: none;
}

.tooltip-pro-global {
    position: fixed;
    z-index: 5000;
    width: min(430px, calc(100vw - 28px));
    min-height: 138px;
    padding: 25px 20px 20px;
    border: 1px solid #dedede;
    border-radius: 20px;
    background: #fff;
    color: #080808;
    box-shadow: 0 24px 75px rgba(0,0,0,.18);
    display: grid;
    grid-template-columns: minmax(0,1fr) 126px;
    align-items: stretch;
    gap: 18px;
    opacity: 0;
    transform: translateY(5px) scale(.985);
    pointer-events: none;
    transition: opacity 150ms ease, transform 150ms ease;
}
.tooltip-pro-global[hidden] { display: none !important; }
.tooltip-pro-global.visible { opacity: 1; transform: translateY(0) scale(1); }
.tooltip-pro-global .insignia-pro-global {
    position: absolute;
    top: 12px;
    right: 12px;
}
.tooltip-pro-global > div { align-self: center; min-width: 0; padding-top: 8px; }
.tooltip-pro-global strong {
    display: block;
    margin: 0 0 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 21px;
    line-height: 1.08;
    letter-spacing: -.025em;
}
.tooltip-pro-global p { margin: 0; color: #5f5f5f; font-size: 12px; line-height: 1.58; }
.tooltip-pro-global figure {
    min-height: 100px;
    margin: 0;
    border-radius: 14px;
    background: #f5f5f5;
    overflow: hidden;
}
.tooltip-pro-global figure img { width: 100%; height: 100%; object-fit: cover; }
.tooltip-pro-global figure[hidden] { display: none; }
.tooltip-pro-global:has(figure[hidden]) { grid-template-columns: 1fr; }

.globo-alerta-producto {
    position: absolute;
    right: 82px;
    bottom: 2px;
    width: min(520px, calc(100vw - 120px));
    min-height: 180px;
    padding: 22px 20px 20px;
    border: 1px solid #dedede;
    border-radius: 24px;
    background: #fff;
    color: #080808;
    box-shadow: 0 28px 90px rgba(0,0,0,.2);
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(130px, 170px);
    align-items: stretch;
    gap: 20px;
    opacity: 0;
    transform: translateX(12px) scale(.985);
    transform-origin: right bottom;
    pointer-events: none;
    transition: opacity 200ms ease, transform 200ms ease;
}
.globo-alerta-producto::after {
    content: "";
    position: absolute;
    right: -12px;
    bottom: 27px;
    width: 22px;
    height: 22px;
    border-top: 1px solid #dedede;
    border-right: 1px solid #dedede;
    background: #fff;
    transform: rotate(45deg);
}
.globo-alerta-producto[hidden] { display: none !important; }
.globo-alerta-producto.visible { opacity: 1; transform: translateX(0) scale(1); pointer-events: auto; }
.cerrar-alerta-producto {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: rgba(255,255,255,.88);
    color: #111;
    display: grid;
    place-items: center;
}
.cerrar-alerta-producto:hover { background: #ededed; }
.contenido-alerta-producto { min-width: 0; align-self: center; }
.contenido-alerta-producto h3 {
    margin: 0 0 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(23px, 2.5vw, 30px);
    line-height: 1.02;
    letter-spacing: -.035em;
}
.contenido-alerta-producto p { margin: 0; color: #5b5b5b; font-size: 13px; line-height: 1.6; }
.contenido-alerta-producto .boton { width: fit-content; margin-top: 16px; background: #050505; color: #fff; border-color: #050505; }
.imagen-alerta-producto { min-height: 136px; margin: 0; border-radius: 17px; background: #f3f3f3; overflow: hidden; }
.imagen-alerta-producto img { width: 100%; height: 100%; object-fit: cover; }
.globo-alerta-producto:has(.imagen-alerta-producto[hidden]) { grid-template-columns: 1fr; }

.contenido-admin-alertas { width: 100%; min-width: 0; overflow-y: auto; padding-bottom: 100px; }
.cabecera-alertas-admin { align-items: flex-end; }
.pestanas-alertas-admin {
    position: sticky;
    top: 0;
    z-index: 8;
    width: fit-content;
    margin: 0 0 28px;
    padding: 5px;
    border: 1px solid var(--borde);
    border-radius: 15px;
    background: color-mix(in srgb, var(--superficie) 94%, transparent);
    backdrop-filter: blur(16px);
    display: flex;
    align-items: center;
    gap: 4px;
}
.pestanas-alertas-admin button {
    min-height: 42px;
    padding: 9px 14px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 760;
}
.pestanas-alertas-admin button small { min-width: 20px; padding: 2px 6px; border-radius: 999px; background: var(--superficie-secundaria); font-size: 9px; }
.pestanas-alertas-admin button.activo { background: var(--texto); color: var(--fondo); }
.pestanas-alertas-admin button.activo small { background: var(--verde-pro); color: #050505; }
.panel-alertas-admin { animation: aparecer-panel-alerta 180ms ease; }
@keyframes aparecer-panel-alerta { from { opacity:0; transform:translateY(4px); } }
.introduccion-panel-alertas { margin-bottom: 22px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.introduccion-panel-alertas h2 { margin: 0 0 6px; font-family: Georgia, serif; font-size: clamp(28px,3vw,38px); }
.introduccion-panel-alertas p { max-width: 780px; margin: 0; color: var(--texto-secundario); line-height: 1.65; }
.rejilla-tooltips-admin { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,390px),1fr)); gap: 18px; align-items: start; }
.tarjeta-tooltip-admin {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--borde);
    border-radius: 22px;
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.tarjeta-tooltip-admin > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.tarjeta-tooltip-admin h3 { margin: 4px 0 0; font-size: 18px; }
.clave-tooltip-admin { color: var(--texto-secundario); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 9px; letter-spacing: .04em; }
.previa-tooltip-admin {
    position: relative;
    min-height: 150px;
    padding: 24px 18px 18px;
    border: 1px solid #dedede;
    border-radius: 18px;
    background: #fff;
    color: #080808;
    display: grid;
    grid-template-columns: minmax(0,1fr) 110px;
    align-items: center;
    gap: 15px;
    box-shadow: 0 14px 38px rgba(0,0,0,.08);
}
.previa-tooltip-admin .insignia-pro-global { position:absolute; top:10px; right:10px; }
.previa-tooltip-admin strong { display:block; margin-bottom:7px; font-family:Georgia,serif; font-size:19px; line-height:1.08; }
.previa-tooltip-admin p { margin:0; color:#626262; font-size:11px; line-height:1.55; }
.previa-tooltip-admin figure { min-height:100px; height:100%; margin:0; border-radius:13px; background:#f2f2f2; overflow:hidden; display:grid; place-items:center; }
.previa-tooltip-admin figure img { width:100%; height:100%; object-fit:cover; }
.previa-tooltip-admin figure svg { color:#aaa; }
.previa-tooltip-admin:has(figure.sin-imagen) { grid-template-columns:minmax(0,1fr) 82px; }
.casilla-quitar-imagen { display:flex; align-items:center; gap:8px; color:var(--texto-secundario); font-size:12px; }
.tarjeta-tooltip-admin footer { display:flex; justify-content:flex-end; }
.lista-alertas-producto-admin { display:flex; flex-direction:column; gap:13px; }
.tarjeta-alerta-producto-admin {
    padding: 15px;
    border: 1px solid var(--borde);
    border-radius: 20px;
    background: var(--superficie);
    display:grid;
    grid-template-columns: 110px minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
}
.tarjeta-alerta-producto-admin.pausada { opacity:.66; }
.imagen-alerta-admin { width:110px; height:100px; margin:0; border-radius:15px; background:var(--superficie-secundaria); overflow:hidden; display:grid; place-items:center; }
.imagen-alerta-admin img { width:100%; height:100%; object-fit:cover; }
.imagen-alerta-admin svg { width:28px; height:28px; color:var(--texto-secundario); }
.contenido-alerta-admin { min-width:0; }
.meta-alerta-admin { display:flex; align-items:center; gap:9px; margin-bottom:5px; }
.meta-alerta-admin span { color:var(--texto-secundario); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.meta-alerta-admin small { padding:3px 7px; border-radius:999px; background:var(--superficie-secundaria); font-size:9px; font-weight:800; }
.tarjeta-alerta-producto-admin.activa .meta-alerta-admin small { background:color-mix(in srgb,var(--verde-pro) 22%,var(--superficie)); color:var(--texto); }
.contenido-alerta-admin h3 { margin:0 0 5px; font-family:Georgia,serif; font-size:22px; }
.contenido-alerta-admin > p { max-width:800px; margin:0; color:var(--texto-secundario); font-size:12px; line-height:1.55; }
.datos-alerta-admin { margin-top:10px; display:flex; flex-wrap:wrap; gap:12px; color:var(--texto-secundario); font-size:10px; }
.datos-alerta-admin span { display:inline-flex; align-items:center; gap:5px; }
.datos-alerta-admin svg { width:13px; height:13px; }
.acciones-alerta-admin { display:flex; align-items:center; gap:5px; }
.estado-alertas-vacio { min-height:320px; padding:30px; border:1px dashed var(--borde); border-radius:22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; }
.estado-alertas-vacio > svg { width:36px; height:36px; }
.estado-alertas-vacio span { color:var(--texto-secundario); }
.estado-alertas-vacio .boton { margin-top:9px; }
.modal-alerta-producto-admin { width:min(1120px,calc(100vw - 28px)); }
.contenido-modal-alerta-admin { max-height:calc(100vh - 190px); padding:20px; overflow-y:auto; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr); gap:22px; }
.campos-alerta-admin { display:flex; flex-direction:column; gap:16px; }
.previa-alerta-producto-admin { position:sticky; top:0; align-self:start; }
.globo-alerta-previa {
    position:relative;
    min-height:235px;
    margin-top:10px;
    padding:26px 20px 20px;
    border:1px solid #dedede;
    border-radius:24px;
    background:#fff;
    color:#080808;
    box-shadow:0 22px 65px rgba(0,0,0,.14);
    display:grid;
    grid-template-columns:minmax(0,1fr) 150px;
    align-items:center;
    gap:18px;
}
.globo-alerta-previa > button { position:absolute; top:10px; right:10px; width:30px; height:30px; padding:0; border:0; border-radius:8px; background:#f1f1f1; display:grid; place-items:center; }
.globo-alerta-previa h3 { margin:0 0 9px; font-family:Georgia,serif; font-size:26px; line-height:1.04; }
.globo-alerta-previa p { margin:0; color:#5e5e5e; font-size:12px; line-height:1.6; }
.globo-alerta-previa .boton { width:fit-content; margin-top:14px; background:#050505; color:#fff; border-color:#050505; }
.globo-alerta-previa figure { min-height:160px; height:100%; margin:0; border-radius:16px; background:#f2f2f2; overflow:hidden; display:grid; place-items:center; }
.globo-alerta-previa figure img { width:100%; height:100%; object-fit:cover; }
.globo-alerta-previa figure svg { color:#aaa; }
.globo-alerta-previa:has(figure.sin-imagen) { grid-template-columns:minmax(0,1fr) 100px; }
.alerta-migracion-modulo { padding:20px; border:1px solid #d7a600; border-radius:18px; display:flex; align-items:flex-start; gap:12px; }
.alerta-migracion-modulo p { margin:4px 0 0; color:var(--texto-secundario); }

@media (max-width: 950px) {
    .contenido-modal-alerta-admin { grid-template-columns:1fr; }
    .previa-alerta-producto-admin { position:static; }
    .tarjeta-alerta-producto-admin { grid-template-columns:86px minmax(0,1fr); }
    .imagen-alerta-admin { width:86px; height:86px; }
    .acciones-alerta-admin { grid-column:1/-1; justify-content:flex-end; }
}
@media (max-width: 700px) {
    .tooltip-pro-global { grid-template-columns:1fr 94px; min-height:120px; }
    .globo-alerta-producto { position:fixed; left:14px; right:14px; bottom:calc(92px + env(safe-area-inset-bottom)); width:auto; grid-template-columns:minmax(0,1fr) 105px; min-height:155px; }
    .globo-alerta-producto::after { display:none; }
    .imagen-alerta-producto { min-height:112px; }
    .cabecera-alertas-admin,.introduccion-panel-alertas { align-items:flex-start; flex-direction:column; }
    .pestanas-alertas-admin { width:100%; }
    .pestanas-alertas-admin button { flex:1; justify-content:center; }
    .tarjeta-alerta-producto-admin { grid-template-columns:1fr; }
    .imagen-alerta-admin { width:100%; height:150px; }
    .acciones-alerta-admin { grid-column:auto; justify-content:flex-start; }
    .globo-alerta-previa { grid-template-columns:1fr; }
    .globo-alerta-previa figure { min-height:150px; }
}

/* ======================================================================
   Quijotext 2.3.2 · prueba Pro, lectura pública y pulido de biblioteca
   ====================================================================== */

/* La cuenta regresiva acompaña al escritor sin competir con su obra. */
.barra-prueba-pro-global {
    min-height: 42px;
    padding: 8px clamp(14px, 3vw, 34px);
    border-bottom: 1px solid rgba(0,0,0,.16);
    background: var(--verde-pro, var(--verde-escribano, #C7FF2F));
    color: #080808;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: relative;
    z-index: 1900;
    font-size: 12px;
    text-align: center;
}
.barra-prueba-pro-global svg { width: 16px; height: 16px; flex: 0 0 16px; }
.barra-prueba-pro-global strong { font-weight: 850; }
.barra-prueba-pro-global a {
    padding: 5px 9px;
    border-radius: 999px;
    background: #080808;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}
.pagina-aplicacion.con-prueba-pro-activa .aplicacion-con-sidebar { height: calc(100vh - 42px); }

/* El centro editorial se calcula respecto a la hoja, no respecto al logo. */
@media (min-width: 761px) {
    .barra-obra-publica {
        display: grid;
        grid-template-columns: minmax(180px, 1fr) minmax(0, min(620px, 52vw)) minmax(180px, 1fr);
    }
    .barra-obra-publica .identidad-obra-publica { grid-column: 1; justify-self: start; }
    .barra-obra-publica > div { grid-column: 2; width: 100%; justify-self: center; }
}

/* La firma deja de ocupar el final de la obra y se consulta como un margen vivo. */
.boton-autoria-flotante {
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(0,0,0,.14);
    border-radius: 50%;
    background: #fff;
    color: #000;
    box-shadow: 0 14px 34px rgba(0,0,0,.2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    left: max(18px, env(safe-area-inset-left));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 82;
    transition: transform var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.boton-autoria-flotante:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(0,0,0,.28); }
.boton-autoria-flotante svg { width: 21px; height: 21px; }
.boton-autoria-flotante[aria-expanded="true"] { background: #f0f0f0; }
.capa-autoria-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-autoria-flotante.visible { opacity: 1; visibility: visible; pointer-events: auto; }
.panel-autoria-flotante {
    width: min(430px, 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;
    left: max(18px, env(safe-area-inset-left));
    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: left bottom;
    transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
}
.panel-autoria-flotante.abierto { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.cabecera-autoria-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-autoria-flotante .sobrelinea { margin-bottom: 2px; color: #777; font-size: 9px; }
.cabecera-autoria-flotante h2 { margin: 0; font: 700 25px/1.1 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.contenido-autoria-flotante { min-height: 0; flex: 1; padding: 12px; overflow-y: auto; overscroll-behavior: contain; }
.tarjeta-autor-flotante {
    padding: 14px;
    border: 1px solid #e1e1e1;
    border-radius: 14px;
    display: grid;
    grid-template-columns: 58px minmax(0,1fr);
    gap: 13px;
    align-items: start;
}
.tarjeta-autor-flotante + .tarjeta-autor-flotante { margin-top: 9px; }
.tarjeta-autor-flotante .avatar-autor-publico { width: 58px; height: 58px; flex-basis: 58px; }
.tarjeta-autor-flotante h3 { margin: 3px 0 5px; font-size: 16px; }
.tarjeta-autor-flotante p { margin: 0; color: #595959; font-size: 12px; line-height: 1.58; }

/* Gabinete de apoyo: memoria del contexto y tamaño adaptable. */
.visor-gabinete-editor {
    width: 440px;
    height: 640px;
    min-width: 320px;
    min-height: 380px;
    max-width: min(760px, calc(100vw - 86px));
    max-height: min(860px, calc(100vh - 78px));
}
.visor-gabinete-editor.redimensionando { transition: none; user-select: none; }
.asa-redimension-gabinete-editor {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 9px 0 14px 0;
    background: color-mix(in srgb, var(--superficie-secundaria) 92%, transparent);
    color: var(--texto-secundario);
    display: grid;
    place-items: center;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 8;
    cursor: nwse-resize;
    touch-action: none;
}
.asa-redimension-gabinete-editor:hover { color: var(--texto); background: var(--superficie-secundaria); }
.asa-redimension-gabinete-editor svg { width: 14px; height: 14px; }

/* Biblioteca de escritorio: acciones silenciosas hasta que el cursor las pide. */
.globo-descripcion-tarjeta { display: none; }
@media (min-width: 1101px) {
    .rejilla-proyectos.vista-cuadricula .tarjeta-proyecto { overflow: visible; }
    .rejilla-proyectos.vista-cuadricula .estado-publicacion-tarjeta {
        top: 6px;
        right: 6px;
        min-height: 21px;
        padding: 3px 6px;
        gap: 4px;
        font-size: 8px;
        box-shadow: 0 3px 9px rgba(0,0,0,.14);
    }
    .rejilla-proyectos.vista-cuadricula .estado-publicacion-tarjeta svg { width: 10px; height: 10px; }
    .rejilla-proyectos.vista-cuadricula .etiqueta-coautoria-cuadricula {
        top: 6px;
        left: 6px;
        padding: 4px 6px;
        font-size: 8px;
    }
    .rejilla-proyectos.vista-cuadricula .etiqueta-coautoria-cuadricula svg { width: 11px; height: 11px; }
    .rejilla-proyectos.vista-cuadricula .titulo-portada { max-width: 88%; font-size: clamp(14px, 1vw, 18px); line-height: 1.18; }
    .rejilla-proyectos.vista-cuadricula .subtitulo-portada { max-width: 84%; margin-top: 10px; font-size: 11px; line-height: 1.35; }
    .rejilla-proyectos.vista-cuadricula .datos-proyecto h2 { font-size: 15px; }
    .rejilla-proyectos.vista-cuadricula .subtitulo-tarjeta-proyecto { font-size: 11px; }
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta {
        width: auto;
        justify-content: flex-start;
        gap: 7px;
    }
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida {
        width: 38px;
        height: 38px;
        min-height: 38px;
        flex: 0 0 38px;
        padding: 0;
        position: relative;
    }
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida > span { display: none; }
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida::after {
        content: attr(data-tooltip-accion);
        min-width: max-content;
        padding: 6px 8px;
        border-radius: 7px;
        background: #050505;
        color: #fff;
        box-shadow: 0 8px 22px rgba(0,0,0,.18);
        position: absolute;
        left: 50%;
        bottom: calc(100% + 7px);
        z-index: 35;
        transform: translate(-50%, 4px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        font-size: 9px;
        font-weight: 750;
        white-space: nowrap;
        transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
    }
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida:hover::after,
    .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida:focus-visible::after {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }
    .descripcion-tarjeta-proyecto { position: relative; overflow: visible; cursor: help; }
    .resumen-descripcion-tarjeta {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        white-space: normal;
    }
    .globo-descripcion-tarjeta {
        display: block;
        width: min(290px, 72vw);
        padding: 10px 12px;
        border: 1px solid var(--borde);
        border-radius: 11px;
        background: var(--superficie);
        color: var(--texto);
        box-shadow: 0 16px 42px rgba(0,0,0,.15);
        position: absolute;
        left: 0;
        bottom: calc(100% + 8px);
        z-index: 38;
        opacity: 0;
        visibility: hidden;
        transform: translateY(4px);
        pointer-events: none;
        font-size: 11px;
        line-height: 1.55;
        transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
    }
    .descripcion-tarjeta-proyecto:hover .globo-descripcion-tarjeta,
    .descripcion-tarjeta-proyecto:focus-visible .globo-descripcion-tarjeta {
        opacity: 1;
        visibility: visible;
        transform: none;
    }
}

.etiqueta-alerta-sistema {
    padding: 4px 7px;
    border-radius: 999px;
    background: var(--verde-pro, var(--verde-escribano, #C7FF2F));
    color: #080808;
    font-size: 8px;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.aviso-alerta-sistema {
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--color-plan-acento, var(--verde-pro, #C7FF2F)) 42%, var(--borde));
    border-radius: 13px;
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 12%, var(--superficie));
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.aviso-alerta-sistema > svg { width: 18px; height: 18px; flex: 0 0 18px; }
.aviso-alerta-sistema > div { display: flex; flex-direction: column; gap: 3px; }
.aviso-alerta-sistema small { color: var(--texto-secundario); line-height: 1.45; }

@media (max-width: 760px) {
    .barra-prueba-pro-global { align-items: flex-start; flex-wrap: wrap; gap: 6px 8px; }
    .barra-prueba-pro-global strong { flex: 1; min-width: 220px; }
    .pagina-aplicacion.con-prueba-pro-activa .aplicacion-con-sidebar { height: auto; min-height: calc(100vh - 58px); }
    .barra-obra-publica { display: grid; grid-template-columns: auto minmax(0,1fr); }
    .boton-autoria-flotante { width: 46px; height: 46px; }
    .panel-autoria-flotante { bottom: calc(max(18px, env(safe-area-inset-bottom)) + 58px); }
    .visor-gabinete-editor { width: min(380px, calc(100vw - 84px)) !important; height: calc(100vh - 82px) !important; min-width: 0; min-height: 0; }
    .asa-redimension-gabinete-editor { display: none; }
}

/* ======================================================================
   Quijotext 2.3.3 · Promociones y cuenta regresiva flotante
   ====================================================================== */

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

/* La prueba acompaña al escritor sin restar altura al escritorio. */
.barra-prueba-pro-global {
    min-height: 38px;
    width: fit-content;
    max-width: min(660px, calc(100vw - 290px));
    padding: 7px 10px 7px 12px;
    border: 1px solid rgba(0,0,0,.2);
    border-radius: 14px;
    box-shadow: 0 14px 40px rgba(0,0,0,.16);
    position: fixed;
    top: 10px;
    left: calc(50% + 122px);
    z-index: 900;
    transform: translateX(-50%);
    justify-content: flex-start;
    text-align: left;
    pointer-events: none;
}
.barra-prueba-pro-global strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.barra-prueba-pro-global a { pointer-events: auto; }
.pagina-aplicacion.con-prueba-pro-activa .aplicacion-con-sidebar {
    height: 100vh;
    min-height: 0;
}

/* Cupón editorial dentro del comparador. */
.cupon-pricing {
    width: min(1480px, 100%);
    margin: -24px auto 28px;
    padding: 15px 16px;
    border: 1px solid var(--borde);
    border-radius: 18px;
    background: color-mix(in srgb, var(--superficie-secundaria) 72%, var(--superficie));
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(320px, auto);
    align-items: center;
    gap: 14px 22px;
}
.identidad-cupon-pricing {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}
.icono-cupon-pricing {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 13px;
    background: var(--verde-pro, var(--verde-escribano, #C7FF2F));
    color: #080808;
    display: grid;
    place-items: center;
}
.icono-cupon-pricing svg { width: 19px; height: 19px; }
.identidad-cupon-pricing > div { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.identidad-cupon-pricing strong { font-size: 14px; }
.identidad-cupon-pricing small { color: var(--texto-secundario); font-size: 11px; line-height: 1.45; }
.formulario-cupon-pricing {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}
.formulario-cupon-pricing label { flex: 1 1 220px; }
.formulario-cupon-pricing input {
    width: 100%;
    height: 42px;
    padding: 0 13px;
    border: 1px solid var(--borde);
    border-radius: 11px;
    background: var(--superficie);
    color: var(--texto);
    font: inherit;
    font-size: 12px;
    text-transform: uppercase;
    outline: none;
}
.formulario-cupon-pricing input:focus { border-color: color-mix(in srgb, var(--texto) 45%, var(--borde)); }
.resultado-cupon-pricing {
    grid-column: 1 / -1;
    padding-top: 11px;
    border-top: 1px solid var(--borde);
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.resultado-cupon-pricing strong { color: var(--texto); font-size: 12px; }
.resultado-cupon-pricing span { color: var(--texto-secundario); font-size: 11px; }
.descuento-cupon-plan,
.ahorro-total-plan {
    width: fit-content;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
}
.descuento-cupon-plan {
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 24%, var(--superficie));
    color: color-mix(in srgb, #080808 88%, var(--texto));
}
.ahorro-total-plan {
    background: #080808;
    color: #fff;
}
.tarjeta-plan-comparacion.cupon-aplicado {
    box-shadow: 0 26px 78px rgba(0,0,0,.08), 0 0 0 1px color-mix(in srgb, var(--verde-pro, #C7FF2F) 20%, transparent);
}
.tarjeta-plan-comparacion.cupon-no-aplicable .ahorro-total-plan {
    background: color-mix(in srgb, #b42318 12%, var(--superficie));
    color: color-mix(in srgb, #b42318 82%, var(--texto));
}

/* Módulo Promociones. */
.contenido-admin-promociones { padding-bottom: 90px; }
.cabecera-promociones-admin,
.introduccion-panel-promociones {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.pestanas-promociones-admin {
    margin: 0 0 20px;
    padding: 5px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie-secundaria);
    display: inline-flex;
}
.pestanas-promociones-admin button {
    min-height: 40px;
    padding: 0 14px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font: inherit;
    font-weight: 750;
}
.pestanas-promociones-admin button.activo { background: var(--superficie); color: var(--texto); box-shadow: 0 4px 14px rgba(0,0,0,.05); }
.pestanas-promociones-admin svg { width: 16px; height: 16px; }
.pestanas-promociones-admin small { min-width: 22px; padding: 3px 6px; border-radius: 999px; background: var(--texto); color: var(--fondo); font-size: 9px; text-align: center; }
.panel-promociones-admin {
    padding: 22px;
    border: 1px solid var(--borde);
    border-radius: 22px;
    background: var(--superficie);
}
.introduccion-panel-promociones { margin-bottom: 20px; }
.introduccion-panel-promociones h2 { margin: 4px 0 7px; }
.introduccion-panel-promociones p { max-width: 780px; margin: 0; color: var(--texto-secundario); line-height: 1.6; }
.lista-cupones-admin { display: flex; flex-direction: column; gap: 11px; }
.tarjeta-cupon-admin {
    padding: 15px;
    border: 1px solid var(--borde);
    border-radius: 17px;
    background: var(--superficie);
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) minmax(150px, .55fr) minmax(170px, .7fr) auto;
    align-items: center;
    gap: 16px;
}
.tarjeta-cupon-admin.pausado { opacity: .7; }
.identidad-cupon-admin { min-width: 0; display: flex; align-items: center; gap: 12px; }
.icono-cupon-admin { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 14px; background: var(--verde-pro, #C7FF2F); color: #080808; display: grid; place-items: center; }
.icono-cupon-admin svg { width: 20px; height: 20px; }
.identidad-cupon-admin > div { min-width: 0; }
.identidad-cupon-admin code { display: block; margin-bottom: 4px; color: var(--texto); font-size: 14px; font-weight: 850; letter-spacing: .05em; }
.identidad-cupon-admin p { margin: 0; overflow: hidden; color: var(--texto-secundario); font-size: 11px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.valor-cupon-admin,
.estado-cupon-admin { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.valor-cupon-admin strong { font-size: 22px; letter-spacing: -.03em; }
.valor-cupon-admin span,
.estado-cupon-admin small { color: var(--texto-secundario); font-size: 10px; }
.acciones-cupon-admin { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.estado-promociones-vacio {
    min-height: 270px;
    padding: 30px;
    border: 1px dashed var(--borde);
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
}
.estado-promociones-vacio > svg { width: 30px; height: 30px; }
.estado-promociones-vacio span { color: var(--texto-secundario); }
.modal-cupon-promocion form { min-height: 0; display: flex; flex: 1; flex-direction: column; }
.contenido-formulario-cupon { display: flex; flex-direction: column; gap: 15px; }

@media (max-width: 1100px) {
    .cupon-pricing { grid-template-columns: 1fr; }
    .formulario-cupon-pricing { justify-content: flex-start; }
    .tarjeta-cupon-admin { grid-template-columns: minmax(230px, 1.4fr) minmax(130px, .6fr) auto; }
    .estado-cupon-admin { grid-column: 1 / 3; padding-left: 56px; }
    .acciones-cupon-admin { grid-column: 3; grid-row: 1 / 3; }
}
@media (max-width: 760px) {
    .barra-prueba-pro-global {
        max-width: none;
        top: 8px;
        left: 10px;
        right: 10px;
        transform: none;
        align-items: center;
        flex-wrap: nowrap;
    }
    .barra-prueba-pro-global strong { min-width: 0; white-space: normal; font-size: 10px; line-height: 1.3; }
    .barra-prueba-pro-global a { flex: 0 0 auto; }
    .pagina-aplicacion.con-prueba-pro-activa .aplicacion-con-sidebar { height: 100vh; min-height: 0; }
    .cupon-pricing { margin-top: 0; padding: 14px; }
    .formulario-cupon-pricing { align-items: stretch; flex-wrap: wrap; }
    .formulario-cupon-pricing label { flex-basis: 100%; }
    .resultado-cupon-pricing { align-items: flex-start; flex-direction: column; gap: 3px; }
    .cabecera-promociones-admin,
    .introduccion-panel-promociones { flex-direction: column; }
    .panel-promociones-admin { padding: 16px; }
    .tarjeta-cupon-admin { grid-template-columns: 1fr; }
    .estado-cupon-admin,
    .acciones-cupon-admin { grid-column: auto; grid-row: auto; padding-left: 0; }
    .acciones-cupon-admin { justify-content: flex-start; }
}
.precio-original-cupon {
    width: fit-content;
    color: var(--texto-secundario);
    font-size: 10px;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}
.modal-cupon-promocion { width: min(700px, 100%); }

/* Quijotext 2.3.4 · recordatorio Pro no intrusivo y descartable. */
.barra-prueba-pro-global {
    width: auto;
    min-height: 42px;
    max-width: min(680px, calc(100vw - 36px));
    padding: 8px 8px 8px 13px;
    border: 1px solid rgba(0,0,0,.22);
    border-radius: 15px;
    position: fixed;
    inset: auto auto 18px 50%;
    z-index: 880;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    box-shadow: 0 16px 42px rgba(0,0,0,.18);
    text-align: left;
    pointer-events: auto;
    transition: opacity .18s ease, transform .18s ease;
}
.barra-prueba-pro-global.cerrando {
    opacity: 0;
    transform: translate(-50%, 8px);
}
.barra-prueba-pro-global > svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}
.barra-prueba-pro-global strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.barra-prueba-pro-global a {
    flex: 0 0 auto;
    pointer-events: auto;
}
.cerrar-barra-prueba-pro {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: rgba(0,0,0,.09);
    color: #080808;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background var(--transicion), transform var(--transicion);
}
.cerrar-barra-prueba-pro:hover,
.cerrar-barra-prueba-pro:focus-visible {
    background: rgba(0,0,0,.17);
    transform: scale(1.04);
    outline: none;
}
.cerrar-barra-prueba-pro svg { width: 15px; height: 15px; }
body.pagina-editor .barra-prueba-pro-global { bottom: 14px; }
.pagina-aplicacion.con-prueba-pro-activa .aplicacion-con-sidebar {
    height: 100vh;
    min-height: 0;
}
@media (max-width: 760px) {
    .barra-prueba-pro-global {
        max-width: calc(100vw - 20px);
        inset: auto 10px calc(82px + env(safe-area-inset-bottom)) 10px;
        transform: none;
        justify-content: flex-start;
        gap: 7px;
    }
    .barra-prueba-pro-global.cerrando { transform: translateY(8px); }
    .barra-prueba-pro-global strong {
        flex: 1;
        white-space: normal;
        font-size: 10px;
        line-height: 1.3;
    }
    .barra-prueba-pro-global a { padding: 5px 8px; font-size: 9px; }
    .cerrar-barra-prueba-pro { width: 27px; height: 27px; flex-basis: 27px; }
    body.pagina-editor .barra-prueba-pro-global { bottom: calc(82px + env(safe-area-inset-bottom)); }
}

/* Quijotext 2.3.5 · confirmación visual de registros guardados. */
.registro-recien-guardado {
    position: relative;
    z-index: 1;
    outline: 3px solid color-mix(in srgb, var(--verde-pro, #C7FF2F) 82%, transparent);
    outline-offset: 4px;
    box-shadow: 0 0 0 8px color-mix(in srgb, var(--verde-pro, #C7FF2F) 16%, transparent), 0 20px 56px rgba(0, 0, 0, .12);
    animation: registro-guardado-quijotext 1.1s ease-in-out 2;
}
@keyframes registro-guardado-quijotext {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}
@media (prefers-reduced-motion: reduce) {
    .registro-recien-guardado { animation: none; }
}


/* Quijotext 2.3.6 · cierre visible del recordatorio del Taller Pro. */
.barra-prueba-pro-global {
    padding-right: 18px;
    overflow: visible;
}
.cerrar-barra-prueba-pro {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    padding: 0;
    border: 2px solid var(--superficie, #fff);
    border-radius: 50%;
    background: #080808;
    color: #fff;
    display: grid;
    place-items: center;
    position: absolute;
    top: -9px;
    right: -9px;
    z-index: 2;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .22);
    cursor: pointer;
    line-height: 1;
    transition: transform var(--transicion), background var(--transicion), box-shadow var(--transicion);
}
.cerrar-barra-prueba-pro span {
    display: block;
    margin-top: -2px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1;
}
.cerrar-barra-prueba-pro:hover,
.cerrar-barra-prueba-pro:focus-visible {
    background: #222;
    transform: scale(1.08);
    box-shadow: 0 7px 18px rgba(0, 0, 0, .28);
    outline: 3px solid color-mix(in srgb, var(--verde-pro, #C7FF2F) 52%, transparent);
    outline-offset: 2px;
}
@media (max-width: 760px) {
    .barra-prueba-pro-global { padding-right: 20px; }
    .cerrar-barra-prueba-pro {
        width: 22px;
        height: 22px;
        flex-basis: 22px;
        top: -7px;
        right: -5px;
    }
    .cerrar-barra-prueba-pro span { font-size: 16px; }
}

/* ======================================================================
   Quijotext 2.3.9 · alertas estables, campañas y notas al pie
   ====================================================================== */
.tarjeta-tooltip-admin {
    transition: border-color var(--transicion), box-shadow var(--transicion), opacity var(--transicion);
}
.tarjeta-tooltip-admin.inactivo { opacity: .72; }
.tarjeta-tooltip-admin.con-cambios { border-color: color-mix(in srgb, var(--verde-pro) 54%, var(--borde)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--verde-pro) 13%, transparent); }
.tarjeta-tooltip-admin.guardando,
.tarjeta-tooltip-admin.guardando-estado { pointer-events: none; opacity: .62; }

.progreso-alerta-masiva {
    max-width: 540px;
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid var(--borde);
    border-radius: 13px;
    background: var(--superficie-secundaria);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.progreso-alerta-masiva > div { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.progreso-alerta-masiva strong { font-size: 13px; font-variant-numeric: tabular-nums; }
.progreso-alerta-masiva small { color:var(--texto-secundario); font-size:10px; }
.pista-progreso-alerta { height:6px; border-radius:999px; background:color-mix(in srgb,var(--borde) 78%,transparent); overflow:hidden; }
.pista-progreso-alerta i { height:100%; border-radius:inherit; background:var(--verde-pro); display:block; transition:width .35s ease; }

.bloque-nota-pie-editor { margin-top: 22px; }
.nota-pie-editor {
    padding-top: 11px;
    border-top: 1px solid color-mix(in srgb, var(--texto) 48%, var(--borde));
    color: var(--texto-secundario);
    font-size: .78em;
    line-height: 1.45;
}
.nota-pie-editor .contenido-bloque { min-height: 42px; }
.nota-pie-editor .contenido-bloque p { margin: 0 0 6px; }

.notas-pie-pagina {
    flex: 0 0 auto;
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid #737373;
    color: #222;
    font-size: 8.5pt;
    line-height: 1.35;
}
.notas-pie-pagina[hidden] { display:none; }
.nota-pie-previsualizacion { margin: 0 0 5px; }
.nota-pie-previsualizacion p { margin: 0 0 4px; }
.nota-pie-previsualizacion:last-child { margin-bottom:0; }

@media (max-width: 700px) {
    .progreso-alerta-masiva > div { align-items:flex-start; flex-direction:column; gap:2px; }
    .introduccion-panel-alertas > .boton { width:100%; justify-content:center; }
}

@media print {
    .notas-pie-pagina { break-inside: avoid; page-break-inside: avoid; }
}
.flujo-documento > .nota-pie-previsualizacion {
    margin-top: 16px;
    padding-top: 8px;
    border-top: 1px solid #737373;
    color: #222;
    font-size: 8.5pt;
    line-height: 1.35;
}

/* Quijotext 2.4.0 · estabilidad de tooltips y mesa de corrección. */
.campo-descripcion-libro {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
}
.campo-descripcion-libro textarea { width: 100%; min-width: 0; resize: vertical; }

.tarjeta-tooltip-admin [data-estado-tooltip] {
    display: block;
    margin-top: 5px;
    color: var(--texto-secundario);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.tarjeta-tooltip-admin.guardando-estado [data-estado-tooltip] { color: var(--texto); }

/* Cuatro herramientas caben en una botonera compacta de 2 × 2. */
.acciones-bloque {
    right: -50px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    display: grid;
    grid-template-columns: repeat(2, 22px);
    gap: 3px;
}
.acciones-bloque button {
    position: relative;
    width: 22px;
    height: 22px;
    min-width: 22px;
    padding: 0;
    border-radius: 6px;
}
.acciones-bloque svg { width: 11px; height: 11px; }
.acciones-bloque .accion-corrector-pro > span {
    position: absolute;
    top: -5px;
    right: -7px;
    min-width: 19px;
    padding: 2px 4px;
    border: 1px solid #050505;
    border-radius: 999px;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    font-size: 6px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.cabecera-corrector-config {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}
.cabecera-corrector-config h3 { margin-bottom: 7px; }
.cabecera-corrector-config p { max-width: 720px; margin: 0; color: var(--texto-secundario); line-height: 1.65; }
.opciones-corrector-config {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.opciones-corrector-config .interruptor {
    min-height: 92px;
    padding: 15px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie-secundaria);
    align-items: flex-start;
}

.modal-corrector-bloque {
    width: min(680px, calc(100vw - 28px));
    max-height: min(720px, calc(100vh - 36px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.estado-corrector-bloque,
.resumen-corrector-bloque,
.nota-diccionario-corrector {
    margin: 18px 22px 0;
    padding: 15px 16px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: center;
    gap: 12px;
}
.estado-corrector-bloque > span {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border: 2px solid var(--borde);
    border-top-color: var(--texto);
    border-radius: 50%;
    animation: girar-corrector .8s linear infinite;
}
@keyframes girar-corrector { to { transform: rotate(360deg); } }
.estado-corrector-bloque p,
.nota-diccionario-corrector span { margin: 0; color: var(--texto-secundario); font-size: 12px; line-height: 1.55; }
.estado-corrector-bloque.error { border-color: color-mix(in srgb, #c10000 45%, var(--borde)); }
.estado-corrector-bloque.error p { color: var(--texto); }
.resumen-corrector-bloque { align-items: flex-start; }
.resumen-corrector-bloque svg,
.nota-diccionario-corrector svg { width: 18px; height: 18px; flex: 0 0 18px; }
.resumen-corrector-bloque div { display: flex; flex-direction: column; gap: 4px; }
.resumen-corrector-bloque strong { font-size: 14px; }
.resumen-corrector-bloque span { color: var(--texto-secundario); font-size: 11px; line-height: 1.5; }
.lista-hallazgos-corrector {
    min-height: 0;
    padding: 16px 22px 6px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.lista-hallazgos-corrector article {
    padding: 13px 14px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    display: grid;
    grid-template-columns: 30px 1fr;
    align-items: flex-start;
    gap: 11px;
}
.lista-hallazgos-corrector article > span {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: #050505;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 11px;
    font-weight: 850;
}
.lista-hallazgos-corrector strong { font-size: 13px; }
.lista-hallazgos-corrector p { margin: 4px 0 0; color: var(--texto-secundario); font-size: 11px; line-height: 1.5; }
.nota-diccionario-corrector { margin-top: 10px; margin-bottom: 4px; }
.modal-corrector-bloque .pie-fijo-modal { margin-top: 16px; }

@media (max-width: 720px) {
    .opciones-corrector-config { grid-template-columns: 1fr; }
    .cabecera-corrector-config { flex-direction: column; }
}

/* 2.4.1 · Revisión léxica dentro de la Mesa de corrección. */
.hallazgo-lexico-corrector {
    border-color: color-mix(in srgb, var(--verde-pro, #C7FF2F) 46%, var(--borde)) !important;
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 7%, var(--superficie));
}
.hallazgo-lexico-corrector > span {
    background: var(--verde-pro, #C7FF2F) !important;
    color: #050505 !important;
}
.sugerencias-corrector {
    margin-top: 11px;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.sugerencias-corrector small {
    width: 100%;
    color: var(--texto-secundario);
    font-size: 10px;
    line-height: 1.5;
}
.sugerencia-corrector {
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie);
    color: var(--texto);
    font: inherit;
    font-size: 11px;
    font-weight: 750;
    cursor: pointer;
    transition: border-color var(--transicion), background var(--transicion), transform var(--transicion);
}
.sugerencia-corrector:hover { transform: translateY(-1px); border-color: var(--texto); }
.sugerencia-corrector.seleccionada {
    border-color: #050505;
    background: #050505;
    color: #fff;
}
.sugerencia-corrector.conservar.seleccionada {
    border-color: var(--borde);
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
}
html[data-tema="oscuro"] .hallazgo-lexico-corrector {
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 10%, var(--superficie));
}
@media (max-width: 520px) {
    .sugerencias-corrector { gap: 6px; }
    .sugerencia-corrector { min-height: 32px; }
}

/* Quijotext 2.4.2 · Acciones compactas y confirmación editorial de bloques. */
.acciones-bloque {
    right: -38px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.acciones-bloque button {
    width: 25px;
    height: 25px;
    min-width: 25px;
    padding: 0;
    border-radius: 7px;
    cursor: pointer;
}
.acciones-bloque svg { width: 12px; height: 12px; }
.acciones-bloque .accion-eliminar-bloque {
    border-color: color-mix(in srgb, #b42318 28%, var(--borde));
    background: color-mix(in srgb, #b42318 7%, var(--superficie));
    color: color-mix(in srgb, #b42318 78%, var(--texto));
}
.acciones-bloque .accion-eliminar-bloque:hover,
.acciones-bloque .accion-eliminar-bloque:focus-visible {
    border-color: color-mix(in srgb, #b42318 58%, var(--borde));
    background: color-mix(in srgb, #b42318 12%, var(--superficie));
    color: #a61b13;
}

.panel-opciones-bloque {
    position: fixed;
    z-index: 1660;
    width: min(310px, calc(100vw - 24px));
    padding: 9px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie);
    box-shadow: 0 22px 70px rgba(0,0,0,.18);
    display: none;
}
.panel-opciones-bloque.visible {
    display: grid;
    gap: 5px;
    animation: aparecer-panel-columnas .15s ease-out;
}
.cabecera-panel-opciones-bloque {
    min-height: 34px;
    padding: 2px 3px 6px 7px;
    border-bottom: 1px solid var(--borde);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.cabecera-panel-opciones-bloque > span {
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.cabecera-panel-opciones-bloque button {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--texto);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.cabecera-panel-opciones-bloque button:hover { background: var(--superficie-secundaria); }
.cabecera-panel-opciones-bloque svg { width: 14px; height: 14px; }
.opcion-panel-bloque {
    width: 100%;
    min-height: 62px;
    padding: 10px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: var(--texto);
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    text-align: left;
    cursor: pointer;
}
.opcion-panel-bloque:hover,
.opcion-panel-bloque:focus-visible {
    border-color: var(--borde);
    background: var(--superficie-secundaria);
    outline: none;
}
.opcion-panel-bloque > svg {
    width: 17px;
    height: 17px;
    justify-self: center;
}
.opcion-panel-bloque > span { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.opcion-panel-bloque strong { font-size: 12px; }
.opcion-panel-bloque small { color: var(--texto-secundario); font-size: 10px; line-height: 1.35; }
.opcion-panel-bloque em {
    padding: 4px 7px;
    border: 1px solid #050505;
    border-radius: 999px;
    background: var(--color-plan-acento, var(--verde-pro, #C7FF2F));
    color: var(--color-plan-acento-texto, #050505);
    font-size: 8px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.panel-opciones-bloque > p {
    margin: 0;
    padding: 14px 10px;
    color: var(--texto-secundario);
    font-size: 11px;
    line-height: 1.5;
}

.modal-eliminar-bloque {
    width: min(540px, calc(100vw - 28px));
    max-height: min(620px, calc(100vh - 36px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.cuerpo-confirmacion-bloque {
    padding: 24px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    gap: 15px;
    overflow-y: auto;
}
.icono-confirmacion-bloque {
    width: 44px;
    height: 44px;
    border: 1px solid color-mix(in srgb, #b42318 26%, var(--borde));
    border-radius: 14px;
    background: color-mix(in srgb, #b42318 8%, var(--superficie));
    color: #a61b13;
    display: grid;
    place-items: center;
}
.icono-confirmacion-bloque svg { width: 18px; height: 18px; }
.cuerpo-confirmacion-bloque > div { min-width: 0; }
.cuerpo-confirmacion-bloque strong { font-size: 15px; }
.cuerpo-confirmacion-bloque p {
    margin: 7px 0 14px;
    color: var(--texto-secundario);
    font-size: 12px;
    line-height: 1.6;
}
.cuerpo-confirmacion-bloque blockquote {
    max-height: 120px;
    margin: 0;
    padding: 12px 14px;
    border-left: 3px solid color-mix(in srgb, #b42318 40%, var(--borde));
    border-radius: 0 10px 10px 0;
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
    font-family: Georgia, serif;
    font-size: 12px;
    line-height: 1.55;
    overflow: auto;
}
.boton-eliminar-confirmado {
    border: 1px solid #9f1c14;
    background: #ad2118;
    color: #fff;
}
.boton-eliminar-confirmado:hover { background: #951a13; }
.boton-eliminar-confirmado:disabled { opacity: .6; cursor: wait; }

.boton-eliminar-secundario {
    border: 1px solid color-mix(in srgb, #b42318 48%, var(--borde));
    background: color-mix(in srgb, #b42318 7%, var(--superficie));
    color: #9f1c14;
}
.boton-eliminar-secundario:hover {
    border-color: #9f1c14;
    background: color-mix(in srgb, #b42318 12%, var(--superficie));
}
.boton-eliminar-secundario:disabled { opacity: .6; cursor: wait; }
.acciones-eliminar-capa {
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* El interruptor conserva su proporción y ocupa una fila propia dentro de cada cuidado. */
.opciones-corrector-config .interruptor {
    min-height: 118px;
    margin-top: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 12px;
}
.opciones-corrector-config .interruptor > span {
    width: 42px;
    height: 24px;
    flex: 0 0 24px;
}
.opciones-corrector-config .interruptor > div { width: 100%; min-width: 0; }
.opciones-corrector-config .interruptor strong { display: block; margin-bottom: 4px; }
.opciones-corrector-config .interruptor small { display: block; line-height: 1.5; }

@media (max-width: 760px) {
    .cuerpo-confirmacion-bloque { grid-template-columns: 1fr; padding: 20px; }
    .modal-eliminar-bloque .acciones-modal { align-items: stretch; }
    .modal-eliminar-bloque .acciones-modal .boton { width: 100%; }
}

/* Estructura editorial por capas. */
.lista-estructura {
    gap: 4px;
    padding-bottom: 12px;
}
.elemento-estructura.capa-documento {
    --sangria-capa: calc(var(--nivel-capa, 0) * 14px);
    min-height: 44px;
    padding: 6px 7px 6px calc(7px + var(--sangria-capa));
    border: 1px solid transparent;
    border-radius: 9px;
    position: relative;
    outline: none;
    cursor: grab;
    user-select: none;
    transition: background var(--transicion), border-color var(--transicion), color var(--transicion), opacity var(--transicion);
}
.elemento-estructura.capa-documento:active { cursor: grabbing; }
.elemento-estructura.capa-documento button,
.elemento-estructura.capa-documento a { cursor: pointer; }
.elemento-estructura.capa-documento:focus-visible {
    border-color: color-mix(in srgb, var(--texto) 42%, var(--borde));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--texto) 10%, transparent);
}
.elemento-estructura.capa-agrupadora {
    background: color-mix(in srgb, var(--texto) 7%, var(--superficie));
    color: var(--texto);
    font-weight: 700;
}
.elemento-estructura.capa-subordinada {
    color: var(--texto-secundario);
}
.elemento-estructura.capa-subordinada:hover {
    background: color-mix(in srgb, var(--texto) 5%, var(--superficie));
    color: var(--texto);
}
/* Las capas dinámicas se arrastran desde cualquier zona libre de la fila.
   El asa genérica se conserva únicamente para elementos fijos, como el índice automático. */
.boton-contraer-capa,
.espacio-contraer-capa {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
}
.boton-contraer-capa {
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    display: grid;
    place-items: center;
    cursor: pointer;
}
.boton-contraer-capa:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.boton-contraer-capa svg { width: 13px; height: 13px; }
.icono-tipo-capa {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: color-mix(in srgb, currentColor 78%, transparent);
}
.elemento-estructura.capa-agrupadora .texto-estructura strong { font-size: 12px; font-weight: 800; }
.elemento-estructura.capa-subordinada .texto-estructura strong { font-size: 11px; font-weight: 600; }
.elemento-estructura.capa-subordinada .texto-estructura small { font-size: 9px; }
/* Navegación por scroll: una sola señal fuerte.
   Únicamente el Título 1 que contiene la zona de lectura se ilumina. Los H2–H5
   y los bloques subordinados conservan su apariencia normal para que el panel
   no compita consigo mismo con varios grises y negros simultáneos. */
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll {
    background: var(--texto);
    color: var(--fondo);
    border-color: var(--texto);
}
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .texto-estructura small,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .texto-estructura small {
    color: color-mix(in srgb, var(--fondo) 74%, transparent);
}
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .boton-menu-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .boton-contraer-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .icono-tipo-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .acciones-estructura button,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .boton-menu-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .boton-contraer-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .icono-tipo-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .acciones-estructura button {
    color: var(--fondo);
}
.elemento-estructura.seleccionado-por-clic:not(.activo-grupo-scroll):not(.activo-bloque-scroll) {
    border-color: color-mix(in srgb, var(--texto) 48%, var(--borde));
    background: color-mix(in srgb, var(--texto) 8%, var(--superficie));
    color: var(--texto);
}
.elemento-estructura.capa-copiada::after {
    content: "";
    position: absolute;
    inset: 3px;
    border: 1px dashed var(--verde-pro, #C7FF2F);
    border-radius: 6px;
    pointer-events: none;
}
.elemento-estructura .acciones-estructura {
    margin-left: auto;
    flex: 0 0 auto !important;
    flex-direction: row !important;
}
.elemento-estructura.capa-subordinada .acciones-estructura { display: none; }
.estructura-elegida { border-color: color-mix(in srgb, var(--texto) 35%, var(--borde)) !important; }
.estructura-arrastrando { opacity: .92; box-shadow: 0 12px 32px rgba(0,0,0,.14); }
.capa-arrastre-acompanante { display: none !important; }
.estructura-fantasma {
    opacity: .25;
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 24%, var(--superficie-secundaria));
    border-color: color-mix(in srgb, var(--verde-pro, #C7FF2F) 58%, var(--borde));
}
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora {
    background: color-mix(in srgb, var(--texto) 9%, var(--superficie));
}
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora {
    background: color-mix(in srgb, #4b2e1a 13%, var(--superficie));
}
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll {
    background: #4b2e1a;
    color: #f7e5c2;
    border-color: #4b2e1a;
}
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .boton-menu-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .boton-contraer-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .icono-tipo-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-grupo-scroll .acciones-estructura button,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .boton-menu-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .boton-contraer-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .icono-tipo-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].activo-bloque-scroll .acciones-estructura button {
    color: #f7e5c2;
}

/* Acciones compactas y contraste de las capas editoriales. */
.elemento-estructura .boton-menu-capa {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: color-mix(in srgb, var(--texto-secundario) 82%, transparent);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background var(--transicion), color var(--transicion);
}
.elemento-estructura .boton-menu-capa:hover,
.elemento-estructura .boton-menu-capa[aria-expanded="true"] {
    background: color-mix(in srgb, currentColor 11%, transparent);
    color: var(--texto);
}
.elemento-estructura .boton-menu-capa svg { width: 13px; height: 13px; }

/* La selección debe conservar un contraste inequívoco en cualquier tema. */
.elemento-estructura.seleccionado-por-clic,
.elemento-estructura.seleccionado-por-clic.activo-por-scroll,
.elemento-estructura.seleccionado-por-clic.activo-grupo-scroll,
.elemento-estructura.seleccionado-por-clic.activo-bloque-scroll {
    background: #ededed !important;
    color: #000 !important;
    border-color: #bcbcbc !important;
    box-shadow: inset 3px 0 0 #000 !important;
}
.elemento-estructura.seleccionado-por-clic .texto-estructura strong,
.elemento-estructura.seleccionado-por-clic .texto-estructura small,
.elemento-estructura.seleccionado-por-clic .asa-bloque,
.elemento-estructura.seleccionado-por-clic .boton-menu-capa,
.elemento-estructura.seleccionado-por-clic .boton-contraer-capa,
.elemento-estructura.seleccionado-por-clic .icono-tipo-capa,
.elemento-estructura.seleccionado-por-clic .acciones-estructura button {
    color: #000 !important;
}
.elemento-estructura.seleccionado-por-clic .boton-menu-capa:hover,
.elemento-estructura.seleccionado-por-clic .boton-menu-capa[aria-expanded="true"],
.elemento-estructura.seleccionado-por-clic .boton-contraer-capa:hover,
.elemento-estructura.seleccionado-por-clic .acciones-estructura button:hover {
    background: #d8d8d8 !important;
}
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic,
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic.activo-por-scroll,
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic.activo-grupo-scroll,
html[data-tema="oscuro"] .elemento-estructura.seleccionado-por-clic.activo-bloque-scroll {
    background: #f5f5f5 !important;
    color: #000 !important;
    border-color: #c9c9c9 !important;
}
html[data-tema="medieval"] .elemento-estructura.seleccionado-por-clic,
html[data-tema="medieval"] .elemento-estructura.seleccionado-por-clic.activo-por-scroll,
html[data-tema="medieval"] .elemento-estructura.seleccionado-por-clic.activo-grupo-scroll,
html[data-tema="medieval"] .elemento-estructura.seleccionado-por-clic.activo-bloque-scroll {
    background: #ead8b8 !important;
    color: #000 !important;
    border-color: #b89b72 !important;
}

/* Si el H1 elegido por clic coincide con la sección que realmente atraviesa la
   línea de lectura, prevalece la señal negra de navegación. De esta manera el
   negro tiene un único significado estable: «estás leyendo esta sección H1». */
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll {
    background: #000 !important;
    color: #fff !important;
    border-color: #000 !important;
    box-shadow: none !important;
}
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .texto-estructura strong,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .texto-estructura small,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .boton-menu-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .boton-contraer-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .icono-tipo-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .acciones-estructura button,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .texto-estructura strong,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .texto-estructura small,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .boton-menu-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .boton-contraer-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .icono-tipo-capa,
.elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .acciones-estructura button {
    color: #fff !important;
}
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll {
    background: #fff !important;
    color: #000 !important;
    border-color: #fff !important;
}
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .texto-estructura strong,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .texto-estructura small,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .boton-menu-capa,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .boton-contraer-capa,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .icono-tipo-capa,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .acciones-estructura button,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .texto-estructura strong,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .texto-estructura small,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .boton-menu-capa,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .boton-contraer-capa,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .icono-tipo-capa,
html[data-tema="oscuro"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .acciones-estructura button {
    color: #000 !important;
}
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll {
    background: #4b2e1a !important;
    color: #f7e5c2 !important;
    border-color: #4b2e1a !important;
}
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .texto-estructura strong,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .texto-estructura small,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .boton-menu-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .boton-contraer-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .icono-tipo-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-grupo-scroll .acciones-estructura button,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .texto-estructura strong,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .texto-estructura small,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .boton-menu-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .boton-contraer-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .icono-tipo-capa,
html[data-tema="medieval"] .elemento-estructura.capa-agrupadora[data-nivel-titulo="1"].seleccionado-por-clic.activo-bloque-scroll .acciones-estructura button {
    color: #f7e5c2 !important;
}

.menu-acciones-capa {
    min-width: 188px;
    padding: 7px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie);
    box-shadow: 0 18px 48px rgba(0,0,0,.18);
    position: fixed;
    z-index: 1800;
    display: none;
    flex-direction: column;
    gap: 2px;
}
.menu-acciones-capa.visible { display: flex; }
.menu-acciones-capa > button {
    width: 100%;
    min-height: 36px;
    padding: 8px 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--texto);
    display: flex;
    align-items: center;
    gap: 10px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.menu-acciones-capa > button:hover { background: var(--superficie-secundaria); }
.menu-acciones-capa > button:disabled { opacity: .38; cursor: not-allowed; }
.menu-acciones-capa > button:disabled:hover { background: transparent; }
.menu-acciones-capa > button svg { width: 15px; height: 15px; flex: 0 0 15px; }
.menu-acciones-capa .separador-menu-capa { height: 1px; margin: 4px 3px; background: var(--borde); }
.menu-acciones-capa .accion-capa-eliminar { color: #a52626; }
.menu-acciones-capa .accion-capa-eliminar:hover { background: color-mix(in srgb, #c43b3b 9%, var(--superficie)); }

/* Controles globales y señal de creación del panel Estructura. */
#boton-alternar-estructura:disabled {
    opacity: .36;
    cursor: default;
    pointer-events: none;
}
#boton-alternar-estructura svg,
#boton-nuevo-titulo svg {
    width: 15px;
    height: 15px;
}
.elemento-estructura.capa-recien-creada,
.elemento-estructura.capa-recien-creada.seleccionado-por-clic,
.elemento-estructura.capa-recien-creada.activo-grupo-scroll,
.elemento-estructura.capa-recien-creada.activo-bloque-scroll {
    background: var(--verde-pro, #C7FF2F) !important;
    color: #050505 !important;
    border-color: color-mix(in srgb, var(--verde-pro, #C7FF2F) 72%, #050505 28%) !important;
    box-shadow: inset 3px 0 0 #050505, 0 0 0 5px color-mix(in srgb, var(--verde-pro, #C7FF2F) 24%, transparent) !important;
    animation: destello-capa-recien-creada 1.8s ease both;
}
.elemento-estructura.capa-recien-creada .texto-estructura strong,
.elemento-estructura.capa-recien-creada .texto-estructura small,
.elemento-estructura.capa-recien-creada .asa-bloque,
.elemento-estructura.capa-recien-creada .boton-menu-capa,
.elemento-estructura.capa-recien-creada .boton-contraer-capa,
.elemento-estructura.capa-recien-creada .icono-tipo-capa,
.elemento-estructura.capa-recien-creada .acciones-estructura button {
    color: #050505 !important;
}
@keyframes destello-capa-recien-creada {
    0% { transform: translateX(-2px); filter: brightness(1.06); }
    18% { transform: translateX(0); filter: brightness(1.16); }
    52% { filter: brightness(1); }
    76% { filter: brightness(1.1); }
    100% { transform: translateX(0); filter: brightness(1); }
}

/* Mesa de Cuestiones · herramienta de primera mano del editor. */
.sidebar-editor-global .acceso-mesa-cuestiones { position: relative; }
.sidebar-editor-global .acceso-mesa-cuestiones.activo { background: var(--texto); color: var(--superficie); }
.contador-mesa-cuestiones {
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid var(--superficie);
    border-radius: 999px;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    position: absolute;
    right: -4px;
    top: -4px;
    display: grid;
    place-items: center;
    font-size: 8px;
    font-weight: 900;
    line-height: 1;
}
.contador-mesa-cuestiones.oculto { display: none; }

.mesa-cuestiones-editor {
    width: 440px;
    height: 660px;
    min-width: 340px;
    min-height: 420px;
    max-width: min(760px, calc(100vw - 86px));
    max-height: min(880px, calc(100vh - 78px));
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie);
    box-shadow: 0 22px 60px rgba(0,0,0,.18);
    position: fixed;
    z-index: 91;
    left: 68px;
    top: 76px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-12px) scale(.985);
    transform-origin: left top;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.mesa-cuestiones-editor.visible { opacity: 1; visibility: visible; transform: translateX(0) scale(1); pointer-events: auto; }
.mesa-cuestiones-editor.redimensionando { transition: none; user-select: none; }
.editor-aplicacion.modo-concentracion-editor .mesa-cuestiones-editor { display: none !important; }

.cabecera-mesa-cuestiones {
    min-height: 76px;
    padding: 15px 16px;
    border-bottom: 1px solid var(--borde);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.cabecera-mesa-cuestiones h2 { margin: 0; font-size: 20px; letter-spacing: -.03em; }
.cabecera-mesa-cuestiones .sobrelinea { margin-bottom: 3px; font-size: 8px; }
.titulo-mesa-cuestiones { display: flex; align-items: center; gap: 8px; }
.titulo-mesa-cuestiones > span {
    padding: 3px 7px;
    border-radius: 999px;
    background: var(--color-plan-acento, var(--verde-pro, #C7FF2F));
    color: var(--color-plan-acento-texto, #050505);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.vista-lista-mesa-cuestiones { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.vista-lista-mesa-cuestiones[hidden], .detalle-mesa-cuestiones[hidden] { display: none !important; }

.creacion-rapida-cuestion {
    margin: 14px 14px 9px;
    padding: 5px 5px 5px 13px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: center;
    gap: 8px;
}
.creacion-rapida-cuestion:focus-within { border-color: var(--texto); box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 8%, transparent); }
.creacion-rapida-cuestion input { min-width: 0; flex: 1; height: 34px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--texto); font: inherit; font-size: 12px; }
.creacion-rapida-cuestion button {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: var(--texto);
    color: var(--superficie);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.creacion-rapida-cuestion button:disabled { opacity: .55; }
.creacion-rapida-cuestion button svg { width: 15px; height: 15px; }

.filtros-mesa-cuestiones { margin: 0 14px 9px; padding: 3px; border: 1px solid var(--borde); border-radius: 11px; background: var(--superficie-secundaria); display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.filtros-mesa-cuestiones button { min-width: 0; height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--texto-secundario); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 10px; font-weight: 750; cursor: pointer; }
.filtros-mesa-cuestiones button.activo { background: var(--superficie); color: var(--texto); box-shadow: 0 2px 9px rgba(0,0,0,.07); }
.filtros-mesa-cuestiones button span { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: color-mix(in srgb, var(--texto) 7%, transparent); display: grid; place-items: center; font-size: 8px; }
.filtros-mesa-cuestiones button.activo span { background: var(--texto); color: var(--superficie); }

.buscador-mesa-cuestiones { margin: 0 14px 8px; position: relative; display: flex; align-items: center; }
.buscador-mesa-cuestiones > svg { width: 15px; height: 15px; position: absolute; left: 12px; color: var(--texto-secundario); pointer-events: none; }
.buscador-mesa-cuestiones input { width: 100%; height: 39px; padding: 0 40px 0 36px; border: 1px solid var(--borde); border-radius: 10px; background: var(--superficie); color: var(--texto); outline: 0; font-size: 11px; }
.buscador-mesa-cuestiones input:focus { border-color: var(--texto); }
.buscador-mesa-cuestiones button { width: 27px; height: 27px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--texto-secundario); position: absolute; right: 7px; display: grid; place-items: center; }
.buscador-mesa-cuestiones button:hover { background: var(--superficie-secundaria); color: var(--texto); }
.buscador-mesa-cuestiones button svg { width: 12px; height: 12px; }

.resumen-mesa-cuestiones { min-height: 27px; padding: 0 16px 6px; color: var(--texto-secundario); display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 9px; font-weight: 700; }
.resumen-mesa-cuestiones svg { width: 12px; height: 12px; opacity: .55; }
.lista-mesa-cuestiones { min-height: 0; flex: 1; padding: 0 8px 12px; overflow-y: auto; overscroll-behavior: contain; }
.tarjeta-cuestion {
    min-height: 74px;
    padding: 8px 7px;
    border-radius: 11px;
    display: grid;
    grid-template-columns: 30px minmax(0,1fr) 16px;
    align-items: center;
    gap: 7px;
    transition: background .16s ease, opacity .16s ease, transform .16s ease, box-shadow .35s ease;
}
.tarjeta-cuestion:hover, .tarjeta-cuestion:focus-within { background: var(--superficie-secundaria); }
.tarjeta-cuestion.saliendo { opacity: 0; transform: translateX(8px); }
.tarjeta-cuestion.recien-creada { background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 18%, var(--superficie)); box-shadow: inset 3px 0 var(--verde-pro, #C7FF2F); }
.check-cuestion { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--texto-secundario); display: grid; place-items: center; cursor: pointer; }
.check-cuestion:hover { background: var(--superficie); color: var(--texto); }
.check-cuestion svg { width: 17px; height: 17px; }
.tarjeta-cuestion.resuelta .check-cuestion { color: #18864b; }
.abrir-cuestion { min-width: 0; padding: 2px 0; border: 0; background: transparent; color: var(--texto); display: flex; flex-direction: column; align-items: flex-start; gap: 5px; text-align: left; cursor: pointer; }
.abrir-cuestion > strong { max-width: 100%; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 12px; line-height: 1.35; }
.tarjeta-cuestion.resuelta .abrir-cuestion > strong { color: var(--texto-secundario); text-decoration: line-through; text-decoration-thickness: 1px; }
.abrir-cuestion > span { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--texto-secundario); }
.abrir-cuestion small { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: flex; align-items: center; gap: 4px; font-size: 8px; }
.abrir-cuestion small svg { width: 10px; height: 10px; flex: 0 0 10px; }
.abrir-cuestion em { flex: 0 0 auto; font-size: 8px; font-style: normal; }
.abrir-cuestion p { max-width: 100%; margin: 0; color: var(--texto-secundario); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 9px; }
.flecha-cuestion { width: 14px; height: 14px; color: var(--texto-secundario); }

.cargando-mesa-cuestiones, .estado-vacio-mesa-cuestiones { min-height: 210px; padding: 28px; color: var(--texto-secundario); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; text-align: center; }
.cargando-mesa-cuestiones span { width: 24px; height: 24px; border: 2px solid var(--borde); border-top-color: var(--texto); border-radius: 50%; animation: girar .8s linear infinite; }
.cargando-mesa-cuestiones strong, .estado-vacio-mesa-cuestiones strong { color: var(--texto); font-size: 12px; }
.estado-vacio-mesa-cuestiones > svg { width: 24px; height: 24px; }
.estado-vacio-mesa-cuestiones span { max-width: 280px; font-size: 10px; line-height: 1.5; }
.estado-vacio-mesa-cuestiones button { min-height: 34px; padding: 0 13px; border: 1px solid var(--borde); border-radius: 8px; background: var(--superficie); color: var(--texto); font-size: 10px; font-weight: 750; }

.detalle-mesa-cuestiones { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.barra-detalle-cuestion { min-height: 48px; padding: 7px 10px 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.volver-mesa-cuestiones, .eliminar-cuestion-icono { min-height: 34px; padding: 0 9px; border: 0; border-radius: 8px; background: transparent; color: var(--texto-secundario); display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 750; cursor: pointer; }
.volver-mesa-cuestiones:hover { background: var(--superficie-secundaria); color: var(--texto); }
.eliminar-cuestion-icono { width: 34px; padding: 0; justify-content: center; color: color-mix(in srgb, #b22424 72%, var(--texto-secundario)); }
.eliminar-cuestion-icono:hover { background: color-mix(in srgb, #b22424 10%, var(--superficie)); color: #a30f0f; }
.volver-mesa-cuestiones svg, .eliminar-cuestion-icono svg { width: 14px; height: 14px; }

.confirmacion-eliminar-cuestion { margin: 5px 14px 0; padding: 10px; border: 1px solid color-mix(in srgb, #b22424 30%, var(--borde)); border-radius: 11px; background: color-mix(in srgb, #b22424 7%, var(--superficie)); display: grid; grid-template-columns: 24px minmax(0,1fr) 28px auto; align-items: center; gap: 8px; }
.confirmacion-eliminar-cuestion[hidden] { display: none !important; }
.confirmacion-eliminar-cuestion > span { width: 24px; height: 24px; border-radius: 8px; background: color-mix(in srgb, #b22424 13%, transparent); color: #a30f0f; display: grid; place-items: center; }
.confirmacion-eliminar-cuestion > span svg { width: 13px; height: 13px; }
.confirmacion-eliminar-cuestion > div { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.confirmacion-eliminar-cuestion strong { font-size: 9px; }
.confirmacion-eliminar-cuestion small { color: var(--texto-secundario); font-size: 8px; }
.confirmacion-eliminar-cuestion button { min-height: 28px; padding: 0 9px; border: 0; border-radius: 7px; background: transparent; color: var(--texto-secundario); font-size: 9px; font-weight: 800; }
.confirmacion-eliminar-cuestion button[data-confirmar-eliminar-cuestion] { background: #a30f0f; color: #fff; }
.confirmacion-eliminar-cuestion button svg { width: 12px; height: 12px; }

.formulario-detalle-cuestion { padding: 8px 17px 80px; display: flex; flex-direction: column; gap: 15px; }
.formulario-detalle-cuestion.cargando { opacity: .55; pointer-events: none; }
.formulario-detalle-cuestion label { display: flex; flex-direction: column; gap: 7px; }
.formulario-detalle-cuestion label > span { color: var(--texto-secundario); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.formulario-detalle-cuestion textarea, .formulario-detalle-cuestion select { width: 100%; border: 1px solid var(--borde); border-radius: 11px; background: var(--superficie-secundaria); color: var(--texto); outline: 0; font: inherit; font-size: 12px; line-height: 1.55; }
.formulario-detalle-cuestion textarea { min-height: 80px; padding: 11px 12px; resize: vertical; }
.formulario-detalle-cuestion .campo-apunte-cuestion textarea { min-height: 190px; }
.formulario-detalle-cuestion select { height: 42px; padding: 0 11px; }
.formulario-detalle-cuestion textarea:focus, .formulario-detalle-cuestion select:focus { border-color: var(--texto); box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 7%, transparent); }
.acciones-vinculo-cuestion { display: flex; flex-wrap: wrap; gap: 8px; }
.acciones-vinculo-cuestion .boton { min-height: 34px; padding: 0 11px; font-size: 9px; }
.acciones-vinculo-cuestion .boton svg { width: 13px; height: 13px; }
.pie-detalle-cuestion { margin-top: 2px; padding-top: 15px; border-top: 1px solid var(--borde); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.estado-cuestion-boton { min-height: 38px; padding: 0 12px; border: 1px solid var(--borde); border-radius: 10px; background: var(--superficie); color: var(--texto-secundario); display: inline-flex; align-items: center; gap: 7px; font-size: 9px; font-weight: 800; cursor: pointer; }
.estado-cuestion-boton.resuelta { border-color: color-mix(in srgb, #18864b 35%, var(--borde)); background: color-mix(in srgb, #18864b 8%, var(--superficie)); color: #18864b; }
.estado-cuestion-boton svg { width: 14px; height: 14px; }
.pie-detalle-cuestion .boton { min-height: 38px; font-size: 9px; }

.asa-redimension-mesa-cuestiones { width: 30px; height: 30px; padding: 0; border: 0; border-radius: 9px 0 14px 0; background: color-mix(in srgb, var(--superficie-secundaria) 92%, transparent); color: var(--texto-secundario); display: grid; place-items: center; position: absolute; right: 0; bottom: 0; z-index: 8; cursor: nwse-resize; touch-action: none; }
.asa-redimension-mesa-cuestiones:hover { color: var(--texto); background: var(--superficie-secundaria); }
.asa-redimension-mesa-cuestiones svg { width: 14px; height: 14px; }

@media (max-width: 980px) {
    .mesa-cuestiones-editor { width: min(390px, calc(100vw - 84px)) !important; height: calc(100vh - 82px) !important; min-width: 0; min-height: 0; left: 62px; top: 70px; }
    .asa-redimension-mesa-cuestiones { display: none; }
}

/* Mesa de Cuestiones 2.4.12: búsqueda de pasajes y estados editoriales. */
.tarjeta-cuestion.resuelta .check-cuestion {
    color: #050505;
    background: #fff;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #050505 14%, transparent);
}
.tarjeta-cuestion.resuelta .check-cuestion:hover { background: color-mix(in srgb, #050505 7%, #fff); color: #050505; }
.estado-cuestion-boton.resuelta {
    border-color: color-mix(in srgb, #050505 24%, var(--borde));
    background: color-mix(in srgb, #050505 5%, var(--superficie));
    color: var(--texto);
}
.campo-vinculo-cuestion { position: relative; display: flex; flex-direction: column; gap: 7px; }
.campo-vinculo-cuestion > span {
    color: var(--texto-secundario);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.buscador-pasaje-cuestion { position: relative; display: flex; align-items: center; }
.buscador-pasaje-cuestion > svg {
    width: 15px;
    height: 15px;
    position: absolute;
    left: 12px;
    color: var(--texto-secundario);
    pointer-events: none;
}
.buscador-pasaje-cuestion input {
    width: 100%;
    height: 42px;
    padding: 0 40px 0 37px;
    border: 1px solid var(--borde);
    border-radius: 11px;
    background: var(--superficie-secundaria);
    color: var(--texto);
    outline: 0;
    font: inherit;
    font-size: 11px;
}
.buscador-pasaje-cuestion input:focus { border-color: var(--texto); box-shadow: 0 0 0 3px color-mix(in srgb, var(--texto) 7%, transparent); }
.buscador-pasaje-cuestion button {
    width: 29px;
    height: 29px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--texto-secundario);
    position: absolute;
    right: 7px;
    display: grid;
    place-items: center;
    cursor: pointer;
}
.buscador-pasaje-cuestion button:hover { background: var(--superficie); color: var(--texto); }
.buscador-pasaje-cuestion button svg { width: 13px; height: 13px; }
.vinculo-elegido-cuestion {
    min-height: 36px;
    padding: 8px 10px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie);
    color: var(--texto-secundario);
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: 9px;
    line-height: 1.45;
}
.vinculo-elegido-cuestion svg { width: 13px; height: 13px; flex: 0 0 13px; margin-top: 1px; color: var(--texto); }
.vinculo-elegido-cuestion span { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.resultados-pasajes-cuestion {
    max-height: 260px;
    padding: 5px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie);
    box-shadow: 0 20px 50px rgba(0,0,0,.15);
    position: absolute;
    z-index: 40;
    top: 70px;
    left: 0;
    right: 0;
    overflow-y: auto;
}
.resultados-pasajes-cuestion[hidden] { display: none !important; }
.resultados-pasajes-cuestion > button {
    width: 100%;
    min-height: 48px;
    padding: 8px 9px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--texto);
    display: grid;
    grid-template-columns: 22px minmax(0,1fr);
    align-items: flex-start;
    gap: 8px;
    text-align: left;
    cursor: pointer;
}
.resultados-pasajes-cuestion > button:hover,
.resultados-pasajes-cuestion > button.activo { background: var(--superficie-secundaria); }
.resultados-pasajes-cuestion > button > svg { width: 15px; height: 15px; margin-top: 2px; color: var(--texto-secundario); }
.resultados-pasajes-cuestion > button > span { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.resultados-pasajes-cuestion strong { font-size: 9px; }
.resultados-pasajes-cuestion small { color: var(--texto-secundario); font-size: 9px; line-height: 1.35; }
.sin-resultados-pasaje { min-height: 76px; padding: 13px; color: var(--texto-secundario); display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 9px; text-align: center; }
.sin-resultados-pasaje svg { width: 16px; height: 16px; }

/* =========================================================
   El Lienzo · herramienta de primera mano
   ========================================================= */
.acceso-lienzo-editor { position:relative; }
.contenedor-lienzo-editor {
    position:fixed;
    inset:0;
    z-index:1700;
    background:var(--fondo);
    display:none;
    overflow:hidden;
}
.contenedor-lienzo-editor.visible { display:block; }
.contenedor-lienzo-editor iframe { width:100%; height:100%; border:0; background:var(--fondo); display:block; }
.contenedor-lienzo-editor.compacto {
    inset:76px auto auto 68px;
    width:max(33.333vw,420px);
    height:max(58vh,420px);
    min-width:min(33.333vw,calc(100vw - 80px));
    min-height:min(33.333vh,calc(100vh - 88px));
    max-width:calc(100vw - 80px);
    max-height:calc(100vh - 88px);
    border:1px solid var(--borde);
    border-radius:24px;
    box-shadow:0 28px 90px rgba(0,0,0,.25);
    box-sizing:border-box;
}
.asa-redimension-lienzo-editor {
    position:absolute;
    right:5px;
    bottom:5px;
    width:30px;
    height:30px;
    border:0;
    border-radius:9px;
    background:color-mix(in srgb,var(--superficie) 92%,transparent);
    color:var(--texto-secundario);
    display:none;
    place-items:center;
    cursor:se-resize;
    touch-action:none;
    user-select:none;
    z-index:4;
}
.contenedor-lienzo-editor.compacto .asa-redimension-lienzo-editor { display:grid; }
.asa-redimension-lienzo-editor svg { width:14px; height:14px; }

body.pagina-lienzo { overflow:hidden; background:var(--fondo); }
body.pagina-lienzo .escribano-flotante,
body.pagina-lienzo [data-barra-prueba-pro] { display:none !important; }
.aplicacion-lienzo {
    width:100vw;
    height:100vh;
    min-width:0;
    display:grid;
    grid-template-rows:86px minmax(0,1fr);
    background:var(--fondo);
    color:var(--texto);
    overflow:hidden;
    position:relative;
}
.cabecera-lienzo {
    min-width:0;
    padding:14px 24px;
    border-bottom:1px solid var(--borde);
    background:color-mix(in srgb,var(--superficie) 96%,transparent);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    z-index:10;
}
.identidad-lienzo,
.acciones-cabecera-lienzo { display:flex; align-items:center; gap:8px; min-width:0; }
.identidad-lienzo > div { min-width:160px; display:flex; flex-direction:column; gap:2px; }
.identidad-lienzo .sobrelinea { font-size:8px; }
#nombre-lienzo {
    width:min(34vw,430px);
    min-width:130px;
    padding:0;
    border:0;
    background:transparent;
    color:var(--texto);
    font-family:Georgia,"Times New Roman",serif;
    font-size:20px;
    font-weight:700;
    outline:none;
    text-overflow:ellipsis;
}
.estado-lienzo { display:inline-flex; align-items:center; gap:5px; color:var(--texto-secundario); font-size:10px; white-space:nowrap; }
.estado-lienzo svg { width:13px; height:13px; }
.estado-lienzo.guardando svg { animation:girar-lienzo 1s linear infinite; }
.estado-lienzo.error { color:#a01919; }
@keyframes girar-lienzo { to { transform:rotate(360deg); } }
.cuerpo-lienzo { min-height:0; display:grid; grid-template-columns:58px minmax(0,1fr); position:relative; overflow:hidden; }
.herramientas-lienzo {
    padding:10px 8px;
    border-right:1px solid var(--borde);
    background:var(--superficie);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    overflow-y:auto;
    z-index:3;
}
.herramientas-lienzo button,
.controles-inferiores-lienzo button {
    width:38px;
    height:38px;
    flex:0 0 38px;
    border:1px solid transparent;
    border-radius:11px;
    background:transparent;
    color:var(--texto-secundario);
    display:grid;
    place-items:center;
    cursor:pointer;
}
.herramientas-lienzo button:hover,
.herramientas-lienzo button.activo,
.controles-inferiores-lienzo button:hover { background:var(--superficie-secundaria); color:var(--texto); border-color:var(--borde); }
.herramientas-lienzo button.activo { background:#050505; color:#fff; border-color:#050505; }
.herramientas-lienzo button:disabled { opacity:.3; cursor:default; }
.herramientas-lienzo .accion-destructiva:not(:disabled) { color:#a42525; }
.herramientas-lienzo svg,
.controles-inferiores-lienzo svg { width:17px; height:17px; }
.separador-herramientas-lienzo { width:26px; height:1px; margin:4px 0; background:var(--borde); }
.color-lienzo { width:38px; height:38px; display:grid; place-items:center; cursor:pointer; position:relative; }
.color-lienzo input { position:absolute; opacity:0; pointer-events:none; }
.color-lienzo span { width:24px; height:24px; border:3px solid var(--superficie); border-radius:50%; box-shadow:0 0 0 1px var(--borde); background:#111; }
.grosor-lienzo { width:38px; padding:7px 0; display:flex; flex-direction:column; align-items:center; gap:4px; color:var(--texto-secundario); }
.grosor-lienzo svg { width:15px; height:15px; }
.grosor-lienzo input { width:38px; accent-color:var(--texto); writing-mode:vertical-lr; direction:rtl; height:65px; }
.escenario-lienzo {
    min-width:0;
    min-height:0;
    padding:44px;
    background:
        linear-gradient(color-mix(in srgb,var(--borde) 45%,transparent) 1px,transparent 1px),
        linear-gradient(90deg,color-mix(in srgb,var(--borde) 45%,transparent) 1px,transparent 1px),
        var(--superficie-secundaria);
    background-size:24px 24px;
    overflow:auto;
    position:relative;
}
.superficie-lienzo {
    margin:auto;
    background:#fff;
    box-shadow:0 24px 90px rgba(0,0,0,.15);
    transform-origin:top left;
    position:relative;
}
#canvas-lienzo { display:block; background:#fff; touch-action:none; cursor:crosshair; }
#canvas-lienzo[data-herramienta="seleccion"],
#canvas-lienzo[data-herramienta="transformar"] { cursor:default; }
#canvas-lienzo[data-herramienta="borrador"] { cursor:not-allowed; }
.controles-inferiores-lienzo {
    position:fixed;
    left:76px;
    right:18px;
    bottom:16px;
    z-index:6;
    display:flex;
    justify-content:space-between;
    align-items:center;
    pointer-events:none;
}
.controles-inferiores-lienzo > div {
    padding:5px;
    border:1px solid var(--borde);
    border-radius:15px;
    background:color-mix(in srgb,var(--superficie) 93%,transparent);
    box-shadow:0 12px 36px rgba(0,0,0,.09);
    backdrop-filter:blur(12px);
    display:flex;
    align-items:center;
    gap:2px;
    pointer-events:auto;
}
.controles-inferiores-lienzo button { width:32px; height:32px; flex-basis:32px; border-radius:9px; }
.control-zoom-lienzo span { min-width:48px; text-align:center; font-size:10px; font-weight:800; }
.catalogo-lienzos,
.ficha-lienzo {
    position:absolute;
    top:86px;
    bottom:0;
    z-index:20;
    width:min(390px,calc(100vw - 30px));
    border-left:1px solid var(--borde);
    background:var(--superficie);
    box-shadow:-24px 0 70px rgba(0,0,0,.13);
    transform:translateX(110%);
    transition:transform var(--transicion);
    display:flex;
    flex-direction:column;
}
.catalogo-lienzos { left:0; right:auto; border-left:0; border-right:1px solid var(--borde); box-shadow:24px 0 70px rgba(0,0,0,.13); transform:translateX(-110%); }
.catalogo-lienzos.visible,
.ficha-lienzo.visible { transform:translateX(0); }
.catalogo-lienzos > header,
.ficha-lienzo > header { padding:18px; border-bottom:1px solid var(--borde); display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.catalogo-lienzos h2,
.ficha-lienzo h2 { margin:2px 0 0; font-family:Georgia,serif; }
.buscador-catalogo-lienzos { margin:14px 16px 6px; padding:9px 11px; border:1px solid var(--borde); border-radius:13px; display:flex; align-items:center; gap:8px; }
.buscador-catalogo-lienzos svg { width:15px; }
.buscador-catalogo-lienzos input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--texto); }
.lista-catalogo-lienzos { flex:1; min-height:0; padding:10px 16px 24px; overflow:auto; display:flex; flex-direction:column; gap:10px; }
.lista-catalogo-lienzos article { padding:9px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie); display:grid; grid-template-columns:72px minmax(0,1fr) 30px; align-items:center; gap:10px; cursor:pointer; }
.lista-catalogo-lienzos article:hover { border-color:color-mix(in srgb,var(--texto) 30%,var(--borde)); }
.lista-catalogo-lienzos article > img,
.lista-catalogo-lienzos article > span { width:72px; height:52px; border-radius:10px; background:#fff; object-fit:cover; display:grid; place-items:center; border:1px solid var(--borde); }
.lista-catalogo-lienzos article > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.lista-catalogo-lienzos strong,
.lista-catalogo-lienzos small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lista-catalogo-lienzos small { color:var(--texto-secundario); font-size:10px; }
.lista-catalogo-lienzos article > button { width:30px; height:30px; border:0; border-radius:8px; background:transparent; color:#9c2929; display:grid; place-items:center; cursor:pointer; }
.estado-lienzo-vacio { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--texto-secundario); text-align:center; }
.ficha-lienzo { right:0; }
.ayuda-ficha-lienzo { margin:14px 18px 0; color:var(--texto-secundario); font-size:10px; line-height:1.5; }
.ficha-lienzo > label { margin:16px 18px 0; display:flex; flex-direction:column; gap:7px; }
.ficha-lienzo > label > span { font-size:11px; font-weight:800; }
.ficha-lienzo input,
.ficha-lienzo textarea { width:100%; padding:11px 12px; border:1px solid var(--borde); border-radius:12px; background:var(--superficie-secundaria); color:var(--texto); font:inherit; resize:vertical; }
.ficha-lienzo footer { margin-top:auto; padding:16px 18px; border-top:1px solid var(--borde); }
.modal-texto-lienzo { position:absolute; inset:0; z-index:40; background:rgba(0,0,0,.3); display:grid; place-items:center; padding:20px; }
.modal-texto-lienzo[hidden] { display:none; }
.modal-texto-lienzo form { width:min(440px,100%); padding:20px; border:1px solid var(--borde); border-radius:20px; background:var(--superficie); box-shadow:0 24px 80px rgba(0,0,0,.22); }
.modal-texto-lienzo label { display:flex; flex-direction:column; gap:8px; }
.modal-texto-lienzo textarea { width:100%; padding:12px; border:1px solid var(--borde); border-radius:12px; background:var(--superficie-secundaria); color:var(--texto); font:inherit; resize:vertical; }
.modal-texto-lienzo form > div { margin-top:14px; display:flex; justify-content:flex-end; gap:8px; }
.acciones-cabecera-gabinete { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.acciones-registro-gabinete > a { width:34px; height:34px; border:0; border-radius:9px; background:transparent; color:var(--texto); display:grid; place-items:center; }

@media(max-width:900px){
    .cabecera-lienzo { height:auto; min-height:70px; align-items:flex-start; }
    .acciones-cabecera-lienzo .boton span { display:none; }
    #nombre-lienzo { width:36vw; font-size:17px; }
    .escenario-lienzo { padding:26px; }
    .contenedor-lienzo-editor.compacto { inset:14px; width:auto !important; height:auto !important; min-width:0; min-height:0; border-radius:20px; }
    .asa-redimension-lienzo-editor { display:none !important; }
}
@media(max-width:620px){
    .aplicacion-lienzo { grid-template-rows:auto minmax(0,1fr); }
    .cabecera-lienzo { flex-direction:column; gap:8px; }
    .identidad-lienzo,.acciones-cabecera-lienzo { width:100%; }
    .acciones-cabecera-lienzo { justify-content:flex-end; }
    #nombre-lienzo { width:100%; }
    .catalogo-lienzos,.ficha-lienzo { top:112px; }
    .cuerpo-lienzo { grid-template-columns:48px minmax(0,1fr); }
    .herramientas-lienzo { padding-inline:5px; }
    .herramientas-lienzo button { width:34px;height:34px;flex-basis:34px; }
    .controles-inferiores-lienzo { left:58px; right:8px; bottom:8px; }
}
.imagen-editor.imagen-desde-lienzo { position:relative; }
.imagen-editor.imagen-desde-lienzo figcaption { display:flex; flex-direction:column; align-items:center; gap:2px; }
.imagen-editor.imagen-desde-lienzo figcaption small { color:var(--texto-secundario); font-size:9px; }
.editar-lienzo-imagen { position:absolute; right:10px; top:10px; width:34px; height:34px; border:1px solid rgba(255,255,255,.55); border-radius:10px; background:rgba(0,0,0,.72); color:#fff; display:grid; place-items:center; cursor:pointer; opacity:0; transform:translateY(-4px); transition:opacity var(--transicion),transform var(--transicion); }
.imagen-editor.imagen-desde-lienzo:hover .editar-lienzo-imagen,
.editar-lienzo-imagen:focus-visible { opacity:1; transform:none; }
.editar-lienzo-imagen svg { width:15px; height:15px; }
.modal-confirmacion-lienzo {
    position:absolute;
    inset:0;
    z-index:45;
    padding:20px;
    background:rgba(0,0,0,.34);
    display:grid;
    place-items:center;
}
.modal-confirmacion-lienzo[hidden] { display:none; }
.modal-confirmacion-lienzo > section {
    width:min(470px,100%);
    padding:0;
    border:1px solid var(--borde);
    border-radius:22px;
    background:var(--superficie);
    box-shadow:0 28px 90px rgba(0,0,0,.24);
    overflow:hidden;
}
.modal-confirmacion-lienzo header {
    padding:18px 20px 14px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.modal-confirmacion-lienzo h2 { margin:3px 0 0; font-family:Georgia,serif; font-size:23px; }
.modal-confirmacion-lienzo p { margin:0; padding:0 20px 20px; color:var(--texto-secundario); font-size:13px; line-height:1.65; }
.modal-confirmacion-lienzo footer { padding:14px 20px 18px; border-top:1px solid var(--borde); display:flex; justify-content:flex-end; gap:8px; }
.modal-confirmacion-lienzo.destructiva #aceptar-confirmacion-lienzo { background:#7f1d1d; border-color:#7f1d1d; color:#fff; }
@media(max-width:520px){.modal-confirmacion-lienzo footer{flex-direction:column-reverse}.modal-confirmacion-lienzo footer .boton{width:100%}}

/* El Lienzo 2.5.1 · acciones simplificadas y fichas sincronizadas. */
.boton-fichas-lienzo {
    min-height: 38px;
    padding-inline: 12px;
    gap: 7px;
    white-space: nowrap;
}
.boton-fichas-lienzo svg { width: 16px; height: 16px; }
.control-utilizar-lienzo { position: relative; }
#boton-utilizar-lienzo { gap: 7px; }
#boton-utilizar-lienzo .indicador-utilizar-lienzo {
    width: 14px;
    height: 14px;
    transition: transform var(--transicion);
}
#boton-utilizar-lienzo[aria-expanded="true"] .indicador-utilizar-lienzo { transform: rotate(180deg); }
.menu-utilizar-lienzo {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 35;
    width: min(300px, calc(100vw - 28px));
    padding: 7px;
    border: 1px solid var(--borde);
    border-radius: 17px;
    background: var(--superficie);
    box-shadow: 0 22px 70px rgba(0,0,0,.18);
    display: none;
    flex-direction: column;
    gap: 2px;
}
.menu-utilizar-lienzo.visible { display: flex; }
.menu-utilizar-lienzo > button {
    width: 100%;
    min-height: 52px;
    padding: 9px 10px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--texto);
    display: grid;
    grid-template-columns: 30px minmax(0,1fr);
    align-items: center;
    gap: 9px;
    text-align: left;
    cursor: pointer;
}
.menu-utilizar-lienzo > button:hover:not(:disabled),
.menu-utilizar-lienzo > button:focus-visible { background: var(--superficie-secundaria); outline: none; }
.menu-utilizar-lienzo > button:disabled { opacity: .45; cursor: not-allowed; }
.menu-utilizar-lienzo > button > svg { width: 18px; height: 18px; justify-self: center; }
.menu-utilizar-lienzo > button > span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.menu-utilizar-lienzo strong { font-size: 12px; }
.menu-utilizar-lienzo small { color: var(--texto-secundario); font-size: 9px; line-height: 1.35; }

.contenedor-lienzo-editor.compacto {
    inset: 76px auto auto 68px;
}

.lista-catalogo-lienzos article {
    grid-template-columns: 72px minmax(0,1fr);
    padding: 9px 48px 9px 9px;
    position: relative;
}
.acciones-ficha-catalogo-lienzo {
    position: absolute;
    top: 7px;
    right: 7px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.acciones-ficha-catalogo-lienzo > button {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: color-mix(in srgb, var(--superficie-secundaria) 88%, transparent);
    color: var(--texto-secundario);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.acciones-ficha-catalogo-lienzo > button:hover:not(:disabled) { background: var(--texto); color: var(--superficie); }
.acciones-ficha-catalogo-lienzo > button.en-gabinete {
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 24%, var(--superficie));
    color: #050505;
}
.acciones-ficha-catalogo-lienzo > button[data-eliminar-lienzo] { color: #9c2929; }
.acciones-ficha-catalogo-lienzo > button[data-eliminar-lienzo]:hover { background: color-mix(in srgb, #a72c2c 14%, var(--superficie)); color: #8e2020; }
.acciones-ficha-catalogo-lienzo > button:disabled { opacity: .38; cursor: not-allowed; }
.acciones-ficha-catalogo-lienzo svg { width: 14px; height: 14px; }

@media(max-width:900px){
    .boton-fichas-lienzo span { display: none; }
    .boton-fichas-lienzo { width: 38px; padding: 0; justify-content: center; }
}
@media(max-width:620px){
    .menu-utilizar-lienzo { position: fixed; top: auto; right: 10px; left: 10px; bottom: 10px; width: auto; }
}

/* Quijotext 2.5.3 · Fichas y retirada selectiva de bocetos */
.acciones-cabecera-catalogo-lienzos {
    display: flex;
    align-items: center;
    gap: 5px;
}
.modal-retirada-lienzo footer {
    align-items: stretch;
}
.modal-retirada-lienzo .boton-retirada-solo-lienzo {
    border-color: color-mix(in srgb, #8b1f1f 28%, var(--borde));
    color: #7f1d1d;
}
.modal-retirada-lienzo .boton-destructivo-lienzo {
    border: 1px solid #7f1d1d;
    background: #7f1d1d;
    color: #fff;
}
.modal-retirada-lienzo .boton-destructivo-lienzo:hover {
    background: #651717;
    border-color: #651717;
}
@media (max-width: 620px) {
    .modal-retirada-lienzo footer {
        flex-direction: column;
    }
    .modal-retirada-lienzo footer .boton {
        width: 100%;
    }
}


/* Quijotext 2.5.4 · retirada verificada y transformación de trazos */
#canvas-lienzo[data-herramienta="transformar"] { cursor: default; }
.herramientas-lienzo button[data-herramienta-lienzo="transformar"].activo {
    background: var(--verde-pro, #C7FF2F);
    border-color: color-mix(in srgb, var(--verde-pro, #C7FF2F) 72%, #050505);
    color: #050505;
}
.modal-retirada-lienzo.verificando section { opacity: .72; pointer-events: none; }
.modal-retirada-lienzo.verificando::after {
    content: "";
    position: absolute;
    width: 24px;
    height: 24px;
    border: 3px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: girar-lienzo .7s linear infinite;
}

/* Quijotext 2.6.0 · pulido de El Lienzo */
.herramientas-lienzo {
    min-width: 0;
    max-width: 58px;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-x: clip;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    contain: inline-size;
}
.herramientas-lienzo > * { max-width: 100%; box-sizing: border-box; }
.herramientas-lienzo .grosor-lienzo,
.herramientas-lienzo .grosor-lienzo input { max-width: 38px; }
.herramientas-lienzo button[data-herramienta-lienzo="transformar"].activo {
    background: #050505;
    border-color: #050505;
    color: #fff;
}

/* Recuperación de acceso */
.enlace-recuperar-acceso { margin-top: -6px; display: flex; justify-content: flex-end; }
.enlace-recuperar-acceso button { padding: 0; border: 0; background: transparent; color: var(--texto-secundario); font: inherit; font-size: 12px; cursor: pointer; }
.enlace-recuperar-acceso button:hover { color: var(--texto); text-decoration: underline; }
.recuperacion-contenedor .tarjeta-login { width: min(100%, 430px); }
.estado-enlace-recuperacion { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.estado-enlace-recuperacion > svg { width: 34px; height: 34px; }
.estado-enlace-recuperacion h2 { margin: 0; font-family: Georgia, serif; font-size: 32px; }
.estado-enlace-recuperacion p { margin: 0 0 8px; color: var(--texto-secundario); line-height: 1.65; }

/* Constructor de correo: configuración y entregas */
#modal-prueba-correo { z-index: 5200; }
#modal-builder-correo { z-index: 4100; }
.cabecera-configuracion-correo { padding-bottom: 12px; border-bottom: 1px solid var(--borde); margin-bottom: 14px; }
.cabecera-configuracion-correo h3 { margin: 4px 0; font-size: 20px; }
.cabecera-configuracion-correo p { margin: 0; color: var(--texto-secundario); font-size: 12px; line-height: 1.5; }
.campos-disparador-correo { margin: 0 0 16px; }
.campos-disparador-correo > section { padding: 14px; border: 1px solid var(--borde); border-radius: 15px; background: var(--superficie-secundaria); }
.resultados-destinatarios-correo { max-height: 220px; margin-top: 6px; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie); overflow: auto; }
.resultados-destinatarios-correo button { width: 100%; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--borde); background: transparent; color: var(--texto); display: flex; justify-content: space-between; align-items: center; gap: 10px; text-align: left; cursor: pointer; }
.resultados-destinatarios-correo button:last-child { border-bottom: 0; }
.resultados-destinatarios-correo button:hover { background: var(--superficie-secundaria); }
.resultados-destinatarios-correo button span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.resultados-destinatarios-correo button small { color: var(--texto-secundario); overflow: hidden; text-overflow: ellipsis; }
.resultados-destinatarios-correo button em { flex: 0 0 auto; color: var(--texto-secundario); font-size: 10px; font-style: normal; }
.resultados-destinatarios-correo > p { margin: 0; padding: 15px; color: var(--texto-secundario); font-size: 12px; }
.destinatarios-elegidos-correo { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.destinatarios-elegidos-correo > span { max-width: 100%; padding: 7px 8px 7px 10px; border: 1px solid var(--borde); border-radius: 999px; background: var(--superficie); display: inline-flex; align-items: center; gap: 6px; }
.destinatarios-elegidos-correo b { font-size: 11px; }
.destinatarios-elegidos-correo small { max-width: 130px; color: var(--texto-secundario); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.destinatarios-elegidos-correo button { width: 20px; height: 20px; border: 0; border-radius: 50%; background: var(--superficie-secundaria); color: var(--texto); cursor: pointer; }
.etiquetas-destinatarios-correo { margin: 12px 0 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 7px; }
.etiquetas-destinatarios-correo legend { width: 100%; margin-bottom: 6px; font-size: 11px; font-weight: 800; }
.etiquetas-destinatarios-correo label { position: relative; }
.etiquetas-destinatarios-correo input { position: absolute; opacity: 0; }
.etiquetas-destinatarios-correo label span { padding: 7px 10px; border: 1px solid var(--borde); border-radius: 999px; background: var(--superficie); display: block; font-size: 10px; cursor: pointer; }
.etiquetas-destinatarios-correo input:checked + span { border-color: #050505; background: #050505; color: #fff; }
.resumen-envios-correo { margin-top: 10px; display: flex; align-items: center; gap: 6px; color: var(--texto-secundario); font-size: 10px; }
.resumen-envios-correo svg { width: 13px; height: 13px; }
.enlace-detalle-correo { margin-top: 8px; padding: 0; border: 0; background: transparent; color: var(--texto-secundario); font: inherit; font-size: 10px; text-decoration: underline; cursor: pointer; }
.boton-enviar-correo { min-height: 34px; padding: 8px 12px; font-size: 11px; }
.detalle-ejecucion-correo { padding: 18px 22px 24px; }
.barra-progreso-correo { height: 9px; border-radius: 999px; background: var(--superficie-secundaria); overflow: hidden; }
.barra-progreso-correo span { height: 100%; display: block; background: #050505; border-radius: inherit; }
.numeros-ejecucion-correo { margin: 18px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.numeros-ejecucion-correo article { padding: 14px; border: 1px solid var(--borde); border-radius: 14px; display: flex; flex-direction: column; gap: 3px; }
.numeros-ejecucion-correo strong { font-size: 20px; }
.numeros-ejecucion-correo span { color: var(--texto-secundario); font-size: 10px; }
.detalle-ejecucion-correo dl { margin: 0; display: grid; gap: 8px; }
.detalle-ejecucion-correo dl div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--borde); }
.detalle-ejecucion-correo dt { color: var(--texto-secundario); }
.detalle-ejecucion-correo dd { margin: 0; font-weight: 700; text-align: right; }

/* Métricas */
.admin-metricas-contenido { width: 100%; min-width: 0; padding: clamp(28px,4vw,54px); overflow-y: auto; }
.cabecera-metricas-admin { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.cabecera-metricas-admin form select { min-width: 130px; }
.rejilla-metricas-principales { margin: 30px 0 20px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }
.rejilla-metricas-principales article { padding: 20px; border: 1px solid var(--borde); border-radius: 20px; background: var(--superficie); display: flex; align-items: flex-start; gap: 13px; }
.rejilla-metricas-principales svg { width: 21px; height: 21px; }
.rejilla-metricas-principales div { display: flex; flex-direction: column; gap: 3px; }
.rejilla-metricas-principales strong { font-size: 28px; line-height: 1; }
.rejilla-metricas-principales span { font-weight: 750; font-size: 12px; }
.rejilla-metricas-principales small { color: var(--texto-secundario); font-size: 10px; }
.rejilla-paneles-metricas { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.panel-metrica,.panel-metrica-amplio { padding: 22px; border: 1px solid var(--borde); border-radius: 22px; background: var(--superficie); }
.panel-metrica-amplio { grid-column: span 2; }
.panel-metrica header,.panel-metrica-amplio header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.panel-metrica h2,.panel-metrica-amplio h2 { margin: 4px 0 0; }
.grafico-registros-admin { height: 230px; padding-top: 20px; display: flex; align-items: flex-end; gap: 5px; }
.grafico-registros-admin span { min-width: 4px; flex: 1; max-width: 22px; border-radius: 5px 5px 2px 2px; background: #050505; opacity: .82; }
.lista-planes-metricas { display: grid; gap: 9px; }
.lista-planes-metricas article { padding: 12px 0; border-bottom: 1px solid var(--borde); display: flex; justify-content: space-between; align-items: center; }
.lista-planes-metricas div { display: flex; flex-direction: column; }
.lista-planes-metricas small { color: var(--texto-secundario); }
.lista-planes-metricas b { font-size: 22px; }
.numeros-metrica { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.numeros-metrica article { padding: 14px 10px; border: 1px solid var(--borde); border-radius: 14px; display: flex; flex-direction: column; gap: 4px; }
.numeros-metrica strong { font-size: 22px; }
.numeros-metrica span { color: var(--texto-secundario); font-size: 10px; }
@media(max-width:1100px){.rejilla-metricas-principales{grid-template-columns:repeat(2,minmax(0,1fr))}.rejilla-paneles-metricas{grid-template-columns:1fr 1fr}.panel-metrica-amplio{grid-column:1/-1}}
@media(max-width:700px){.admin-metricas-contenido{padding:22px 14px calc(105px + env(safe-area-inset-bottom))}.cabecera-metricas-admin{align-items:flex-start;flex-direction:column}.rejilla-metricas-principales,.rejilla-paneles-metricas{grid-template-columns:1fr}.panel-metrica-amplio{grid-column:auto}.numeros-ejecucion-correo,.numeros-metrica{grid-template-columns:1fr}}

/* Quijotext 2.7.0 · Salas de Revisión y Mesa de Correcciones */
.contador-sidebar-correcciones,
.contador-mesa-correcciones {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    display: inline-grid;
    place-items: center;
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
}
.contador-sidebar-correcciones { margin-left: auto; }
.contador-mesa-correcciones { position: absolute; right: -4px; top: -4px; border: 2px solid var(--superficie); }
.contador-mesa-correcciones.oculto { display: none; }

.contenido-correcciones {
    width: 100%;
    min-width: 0;
    padding-bottom: clamp(100px, 10vw, 140px);
    overflow-y: auto;
}
.cabecera-correcciones {
    margin: 0 0 28px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}
.cabecera-correcciones h1 { margin: 3px 0 10px; font-family: Georgia, serif; font-size: clamp(40px, 5vw, 66px); letter-spacing: -.045em; }
.cabecera-correcciones p { max-width: 700px; margin: 0; color: var(--texto-secundario); line-height: 1.7; }
.barra-correcciones {
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.buscador-correcciones,
.buscador-herramienta-mano {
    min-width: 0;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie);
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 0 13px;
}
.buscador-correcciones { width: min(620px, 100%); min-height: 48px; }
.buscador-correcciones svg,
.buscador-herramienta-mano svg { width: 16px; height: 16px; color: var(--texto-secundario); }
.buscador-correcciones input,
.buscador-herramienta-mano input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--texto); font: inherit; }
.barra-correcciones > span { color: var(--texto-secundario); font-size: 12px; }
.catalogo-correcciones {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr));
    gap: 18px;
}
.tarjeta-enlace-correccion {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--borde);
    border-radius: 24px;
    background: var(--superficie);
    box-shadow: 0 18px 56px rgba(0,0,0,.05);
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: relative;
    overflow: hidden;
}
.tarjeta-enlace-correccion.con-novedades::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:var(--verde-pro,#C7FF2F); }
.tarjeta-enlace-correccion > header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.identidad-enlace-correccion { display:flex; align-items:center; gap:12px; min-width:0; }
.icono-sala { width:42px; height:42px; flex:0 0 42px; border-radius:14px; background:var(--superficie-secundaria); display:grid; place-items:center; }
.icono-sala svg { width:19px; height:19px; }
.identidad-enlace-correccion div { min-width:0; }
.identidad-enlace-correccion small { color:var(--texto-secundario); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.identidad-enlace-correccion h2 { margin:4px 0 0; font-family:Georgia,serif; font-size:23px; line-height:1.1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.novedad-correccion { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:6px 9px; border-radius:999px; background:var(--verde-pro,#C7FF2F); color:#050505; font-size:9px; font-weight:900; }
.novedad-correccion svg { width:12px; height:12px; }
.datos-enlace-correccion { display:flex; flex-direction:column; gap:8px; color:var(--texto-secundario); font-size:11px; }
.datos-enlace-correccion span { display:flex; align-items:center; gap:7px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.datos-enlace-correccion svg { width:14px; height:14px; flex:0 0 14px; }
.resumen-estados-correccion { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.resumen-estados-correccion span { padding:11px 8px; border:1px solid var(--borde); border-radius:13px; background:var(--superficie-secundaria); display:flex; flex-direction:column; gap:2px; color:var(--texto-secundario); font-size:9px; text-align:left; }
.resumen-estados-correccion strong { color:var(--texto); font-size:16px; }
.tarjeta-enlace-correccion > footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:4px; }
.tarjeta-enlace-correccion > footer > div { display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.interruptor-compacto { margin:0; }
.interruptor-compacto > div small { display:none; }
.peligro-suave { color:#a62c2c; }
.estado-vacio-correcciones { min-height:260px; padding:30px; border:1px dashed var(--borde); border-radius:22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; color:var(--texto-secundario); }
.estado-vacio-correcciones svg { width:30px; height:30px; }
.estado-vacio-correcciones strong { color:var(--texto); }
.nota-editorial { padding:14px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie-secundaria); display:flex; align-items:flex-start; gap:9px; color:var(--texto-secundario); font-size:12px; line-height:1.5; }
.nota-editorial svg { width:17px; height:17px; flex:0 0 17px; color:var(--texto); }
.lista-detalles-correccion { display:flex; flex-direction:column; gap:12px; }
.detalle-observacion-correccion { padding:18px; border:1px solid var(--borde); border-radius:18px; background:var(--superficie); display:flex; flex-direction:column; gap:11px; }
.detalle-observacion-correccion header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.detalle-observacion-correccion header span { padding:5px 8px; border-radius:999px; background:var(--superficie-secundaria); font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.detalle-observacion-correccion time { color:var(--texto-secundario); font-size:10px; }
.detalle-observacion-correccion blockquote { margin:0; padding:12px 14px; border-left:3px solid var(--texto); background:var(--superficie-secundaria); color:var(--texto-secundario); font-family:Georgia,serif; line-height:1.55; }
.detalle-observacion-correccion p { margin:0; line-height:1.6; }
.detalle-observacion-correccion > div { display:flex; flex-direction:column; gap:4px; }
.detalle-observacion-correccion > div strong { font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.detalle-observacion-correccion > div span { color:var(--texto-secundario); line-height:1.55; }

/* Sala pública de revisión */
.pagina-sala-revision { background:#e7e7e7; }
.acceso-sala-revision { min-height:100vh; padding:40px 18px; display:grid; place-items:center; }
.tarjeta-sala-acceso { width:min(520px,100%); padding:34px; border:1px solid #dedede; border-radius:24px; background:#fff; box-shadow:0 28px 90px rgba(0,0,0,.12); display:flex; flex-direction:column; gap:16px; color:#111; }
.tarjeta-sala-acceso h1 { margin:0; font-family:Georgia,serif; font-size:38px; line-height:1.05; }
.tarjeta-sala-acceso > p { margin:0; color:#666; line-height:1.65; }
.tarjeta-sala-acceso > small { color:#777; font-size:10px; }
.lector-reconocido { padding:13px; border:1px solid #ddd; border-radius:14px; display:flex; align-items:center; gap:10px; }
.lector-reconocido svg { width:20px; height:20px; }
.lector-reconocido div { display:flex; flex-direction:column; }
.lector-reconocido small { color:#777; }
.barra-sala-revision { grid-template-columns:1fr minmax(260px,560px) 1fr; }
.estado-sala-publica { justify-self:end; margin-right:22px; display:inline-flex; align-items:center; gap:6px; color:#666; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.estado-sala-publica svg { width:14px; height:14px; }
.pasaje-revision { position:relative; }
.pasaje-revision::after { content:""; position:absolute; inset:-5px -7px; border-radius:6px; pointer-events:none; transition:background .2s ease; }
.pasaje-revision.pasaje-observacion-activo::after { background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 24%,transparent); }
.boton-observaciones-revision { position:fixed; left:18px; bottom:24px; z-index:1200; width:48px; height:48px; border:1px solid #d7d7d7; border-radius:50%; background:#fff; color:#111; box-shadow:0 14px 40px rgba(0,0,0,.15); display:grid; place-items:center; cursor:pointer; }
.boton-observaciones-revision svg { width:20px; height:20px; }
.boton-observaciones-revision span { position:absolute; right:-5px; top:-5px; min-width:19px; height:19px; padding:0 4px; border-radius:999px; background:#000; color:#fff; display:grid; place-items:center; font-size:9px; font-weight:900; }
.boton-observaciones-revision .contador-novedades-observaciones { position:absolute; left:-6px; top:-6px; min-width:20px; height:20px; padding:0 5px; border:2px solid #fff; border-radius:999px; background:var(--verde-pro,#C7FF2F); color:#071000; display:grid; place-items:center; font-size:9px; font-weight:950; line-height:1; box-shadow:0 0 0 3px rgba(199,255,47,.2),0 8px 20px rgba(0,0,0,.16); }
.boton-observaciones-revision .contador-novedades-observaciones[hidden] { display:none !important; }
.panel-observaciones-revision { position:fixed; left:18px; bottom:84px; z-index:1250; width:min(390px,calc(100vw - 36px)); height:min(660px,calc(100dvh - 120px)); max-height:calc(100dvh - 104px); min-height:0; border:1px solid #d9d9d9; border-radius:22px; background:#fff; color:#111; box-shadow:0 26px 80px rgba(0,0,0,.2); display:none; grid-template-rows:auto minmax(0,1fr); overflow:hidden; }
.panel-observaciones-revision.visible { display:grid; }
.panel-observaciones-revision > header { padding:16px 18px; border-bottom:1px solid #e7e7e7; display:flex; align-items:center; justify-content:space-between; }
.panel-observaciones-revision h2 { margin:3px 0 0; font-family:Georgia,serif; font-size:25px; }
.lista-observaciones-revision { min-height:0; max-height:100%; padding:14px; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; touch-action:pan-y; display:flex; flex-direction:column; gap:10px; }
.observacion-publica { flex:0 0 auto; min-width:0; border:1px solid #dedede; border-radius:16px; overflow:hidden; background:#fff; }
.observacion-publica.actualizada-autor { border-color:#83b900; box-shadow:0 0 0 2px rgba(199,255,47,.34),0 10px 28px rgba(68,101,0,.08); }
.observacion-publica.actualizada-autor > .cuerpo-observacion-publica { background:linear-gradient(180deg,rgba(199,255,47,.105),rgba(255,255,255,0) 45%); }
.aviso-actualizacion-autor { width:max-content; max-width:100%; padding:6px 8px; border-radius:999px; background:var(--verde-pro,#C7FF2F); color:#071000; display:inline-flex; align-items:center; gap:5px; font-size:8px; font-weight:950; letter-spacing:.05em; text-transform:uppercase; }
.aviso-actualizacion-autor svg { width:12px; height:12px; }
.observacion-publica > .cuerpo-observacion-publica { width:100%; padding:14px; border:0; background:transparent; color:inherit; text-align:left; display:flex; flex-direction:column; gap:8px; cursor:pointer; }
.observacion-publica header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.observacion-publica header span { padding:4px 7px; border-radius:999px; background:#f1f1f1; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.observacion-publica time { color:#888; font-size:9px; }
.observacion-publica blockquote { margin:0; color:#666; font-family:Georgia,serif; font-size:12px; line-height:1.45; }
.observacion-publica p { margin:0; line-height:1.5; overflow-wrap:anywhere; }
.acciones-observacion-publica { border-top:1px solid #e7e7e7; background:#fafafa; display:flex; align-items:stretch; flex-wrap:wrap; }
.acciones-observacion-publica button { min-height:38px; padding:9px 12px; border:0; border-right:1px solid #e7e7e7; background:transparent; color:#444; display:inline-flex; align-items:center; justify-content:center; gap:6px; font-size:10px; font-weight:800; cursor:pointer; }
.acciones-observacion-publica button:last-child { border-right:0; }
.acciones-observacion-publica button:hover { background:#f0f0f0; color:#000; }
.acciones-observacion-publica .accion-eliminar-observacion { margin-left:auto; color:#a01818; }
.acciones-observacion-publica .accion-eliminar-observacion:hover { background:#fff0f0; color:#7e0000; }
.acciones-observacion-publica svg { width:14px; height:14px; }
.respuesta-autor-publica { padding:10px; border-radius:12px; background:#f4f4f4; display:flex; flex-direction:column; gap:4px; }
.respuesta-autor-publica strong { font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.respuesta-autor-publica span { color:#555; font-size:11px; line-height:1.5; }
.barra-seleccion-revision { position:fixed; z-index:1500; }
#fragmento-observacion-revision { margin:0; padding:14px; border-left:3px solid #111; background:var(--superficie-secundaria); font-family:Georgia,serif; line-height:1.6; }
::highlight(qtx-observacion-activa) { background:#ffe66a; color:inherit; text-decoration:underline; text-decoration-color:#d4aa00; text-decoration-thickness:1px; }
.qtx-capa-resaltado-observacion { position:fixed; inset:0; z-index:85; pointer-events:none; }
.qtx-capa-resaltado-observacion > span { position:fixed; border-radius:3px; background:rgba(255,230,106,.78); box-shadow:inset 0 -1px 0 rgba(181,136,0,.45); mix-blend-mode:multiply; }
.aviso-edicion-observacion { margin:0; }

/* Mesa de Correcciones dentro del editor */
.sidebar-editor-global .acceso-mesa-correcciones { position: relative; }
.sidebar-editor-global .acceso-mesa-correcciones.activo { background: var(--texto); color: var(--superficie); }
.mesa-correcciones-editor {
    width: 440px;
    height: 660px;
    min-width: 340px;
    min-height: 420px;
    max-width: min(760px, calc(100vw - 86px));
    max-height: min(880px, calc(100vh - 78px));
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie);
    box-shadow: 0 22px 60px rgba(0,0,0,.18);
    position: fixed;
    z-index: 91;
    left: 68px;
    top: 76px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto 1fr;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-12px) scale(.985);
    transform-origin: left top;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.mesa-correcciones-editor.visible {
    opacity: 1;
    visibility: visible;
    transform: translateX(0) scale(1);
    pointer-events: auto;
}
.mesa-correcciones-editor.redimensionando { transition: none; user-select: none; }
.editor-aplicacion.modo-concentracion-editor .mesa-correcciones-editor { display: none !important; }
.cabecera-mesa-correcciones {
    min-height: 76px;
    padding: 15px 16px;
    border-bottom: 1px solid var(--borde);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.cabecera-mesa-correcciones .sobrelinea { margin-bottom: 3px; font-size: 8px; }
.titulo-mesa-correcciones { display: flex; align-items: center; gap: 8px; }
.titulo-mesa-correcciones h2 { margin: 0; font-family: var(--fuente-titulos-quijotext); font-size: 20px; letter-spacing: -.03em; }
.titulo-mesa-correcciones > span {
    padding: 3px 7px;
    border-radius: 999px;
    background: var(--color-plan-acento, var(--verde-pro, #C7FF2F));
    color: var(--color-plan-acento-texto, #050505);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.vista-lista-correcciones-editor { min-height:0; padding:13px; display:grid; grid-template-rows:auto auto auto 1fr; gap:10px; }
.pestanas-mesa-correcciones { padding:4px; border:1px solid var(--borde); border-radius:13px; background:var(--superficie-secundaria); display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.pestanas-mesa-correcciones button { min-height:34px; border:0; border-radius:10px; background:transparent; color:var(--texto-secundario); font-size:10px; font-weight:750; cursor:pointer; }
.pestanas-mesa-correcciones button.activo { background:var(--superficie); color:var(--texto); box-shadow:0 3px 12px rgba(0,0,0,.06); }
.buscador-herramienta-mano { min-height:42px; }
.estado-mesa-correcciones { color:var(--texto-secundario); font-size:10px; }
.lista-mesa-correcciones { min-height:0; overflow:auto; display:flex; flex-direction:column; gap:8px; }
.tarjeta-correccion-editor { width:100%; padding:13px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie); color:var(--texto); display:flex; flex-direction:column; align-items:flex-start; gap:7px; text-align:left; cursor:pointer; position:relative; }
.tarjeta-correccion-editor.nueva::after { content:""; position:absolute; right:10px; top:10px; width:8px; height:8px; border-radius:50%; background:var(--verde-pro,#C7FF2F); box-shadow:0 0 0 3px color-mix(in srgb,var(--verde-pro,#C7FF2F) 20%,transparent); }
.estado-correccion-mini { padding:4px 7px; border-radius:999px; background:var(--superficie-secundaria); font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.tarjeta-correccion-editor strong { padding-right:18px; line-height:1.35; }
.tarjeta-correccion-editor blockquote { margin:0; color:var(--texto-secundario); font-family:Georgia,serif; font-size:11px; line-height:1.45; }
.tarjeta-correccion-editor small { color:var(--texto-secundario); font-size:9px; }
.detalle-correccion-editor { min-height:0; padding:14px; overflow:auto; }
.detalle-correccion-editor > header { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.detalle-correccion-editor > header div { display:flex; flex-direction:column; }
.detalle-correccion-editor > header small { color:var(--texto-secundario); }
.detalle-correccion-editor > blockquote { margin:0 0 14px; padding:13px; border-left:3px solid var(--texto); border-radius:0 12px 12px 0; background:var(--superficie-secundaria); font-family:Georgia,serif; line-height:1.55; cursor:pointer; }
.detalle-correccion-editor > blockquote:hover { background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 13%,var(--superficie-secundaria)); }
.observacion-detalle-correccion,.propuesta-detalle-correccion { margin-bottom:14px; display:flex; flex-direction:column; gap:5px; }
.observacion-detalle-correccion > span,.propuesta-detalle-correccion > span { font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.observacion-detalle-correccion p,.propuesta-detalle-correccion p { margin:0; color:var(--texto-secundario); line-height:1.55; }
.detalle-correccion-editor form { margin-top:14px; }
.asa-redimension-mesa-correcciones { position:absolute; right:4px; bottom:4px; width:24px; height:24px; border:0; background:transparent; color:var(--texto-secundario); cursor:nwse-resize; }
.bloque-correccion-activo { animation:destello-correccion-bloque 2.4s ease; }
@keyframes destello-correccion-bloque { 0%,100%{box-shadow:inherit} 20%,70%{box-shadow:0 0 0 3px color-mix(in srgb,var(--verde-pro,#C7FF2F) 60%,transparent)} }

@media (max-width: 900px) {
    .cabecera-correcciones { align-items:stretch; flex-direction:column; }
    .cabecera-correcciones .boton { width:100%; }
    .barra-correcciones { align-items:stretch; flex-direction:column; }
    .catalogo-correcciones { grid-template-columns:1fr; }
    .tarjeta-enlace-correccion > footer { align-items:stretch; flex-direction:column; }
    .tarjeta-enlace-correccion > footer > div { justify-content:flex-start; }
    .barra-sala-revision { grid-template-columns:auto 1fr; }
    .estado-sala-publica { display:none; }
    .panel-observaciones-revision { left:10px; bottom:86px; width:calc(100vw - 20px); height:min(70vh,660px); }
    .boton-observaciones-revision { left:12px; bottom:calc(88px + env(safe-area-inset-bottom)); }
    .mesa-correcciones-editor { width: min(390px, calc(100vw - 84px)) !important; height: calc(100vh - 82px) !important; min-width: 0; min-height: 0; left: 62px; right: auto; top: 70px; }
}

@media (max-width: 900px) { .navegacion-movil { grid-template-columns: repeat(7, minmax(0,1fr)); } }
.tarjeta-novedad-correcciones { margin:0 0 10px; padding:13px; border:1px solid var(--borde); border-radius:15px; background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 10%,var(--superficie)); color:var(--texto); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:11px; text-decoration:none; }
.tarjeta-novedad-correcciones > svg { width:17px; height:17px; }
.aviso-pasaje-modificado { padding:8px 9px; border-radius:10px; background:#fff7d6; color:#6e5700; font-size:10px; font-weight:750; }

/* Quijotext 2.7.0 · recorrido editorial dentro del detalle de una Sala */
.historial-detalle-correccion {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--borde);
}
.historial-detalle-correccion summary {
    color: var(--texto-secundario);
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}
.historial-detalle-correccion ol {
    margin: 10px 0 0;
    padding: 0 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.historial-detalle-correccion li {
    padding-left: 3px;
    color: var(--texto-secundario);
    font-size: 10px;
    line-height: 1.45;
}
.historial-detalle-correccion li time {
    display: block;
    margin-bottom: 1px;
    color: var(--texto);
    font-size: 9px;
    font-weight: 750;
}

/* Quijotext 2.7.1 · Registros compactos de Salas y menú de acciones */
.catalogo-correcciones {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.tarjeta-enlace-correccion {
    padding: 18px 20px;
    gap: 13px;
    overflow: visible;
    border-radius: 20px;
}
.fila-superior-correccion {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto 38px;
    align-items: center;
    gap: 18px;
    min-width: 0;
}
.identidad-enlace-correccion h2 {
    max-width: 620px;
    font-size: 21px;
}
.insights-correccion {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
}
.insights-correccion > span {
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-size: 9px;
    white-space: nowrap;
}
.insights-correccion > span strong {
    color: var(--texto);
    font-size: 15px;
    line-height: 1;
}
.insights-correccion .novedad-correccion {
    border-color: transparent;
    border-radius: 999px;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    font-weight: 900;
}
.insights-correccion .novedad-correccion b { font-size: 12px; }
.acciones-correccion {
    position: relative;
    align-self: center;
}
.boton-menu-correccion {
    width: 38px;
    height: 38px;
    border: 1px solid var(--borde);
    background: var(--superficie);
}
.menu-acciones-correccion {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    z-index: 80;
    width: 245px;
    padding: 7px;
    border: 1px solid var(--borde);
    border-radius: 15px;
    background: var(--superficie);
    box-shadow: 0 20px 55px rgba(0,0,0,.16);
}
.menu-acciones-correccion[hidden] { display: none; }
.menu-acciones-correccion > button {
    width: 100%;
    min-height: 40px;
    padding: 9px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--texto);
    display: flex;
    align-items: center;
    gap: 9px;
    text-align: left;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}
.menu-acciones-correccion > button:hover { background: var(--superficie-secundaria); }
.menu-acciones-correccion > button svg { width: 15px; height: 15px; }
.menu-acciones-correccion .accion-peligro-correccion { color: #a52a2a; }
.separador-menu-correccion { height: 1px; margin: 5px 3px; background: var(--borde); }
.accion-interruptor-correccion {
    min-height: 51px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.accion-interruptor-correccion > div { min-width: 0; display: grid; gap: 2px; }
.accion-interruptor-correccion strong { font-size: 11px; }
.accion-interruptor-correccion small { color: var(--texto-secundario); font-size: 9px; }
.interruptor-menu-correccion {
    position: relative;
    width: 38px;
    height: 22px;
    flex: 0 0 38px;
    display: inline-flex;
    cursor: pointer;
}
.interruptor-menu-correccion input[type="checkbox"] {
    position: absolute !important;
    inset-inline-start: 0;
    top: 50%;
    width: 1px !important;
    height: 1px !important;
    min-width: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    transform: translateY(-50%);
    pointer-events: none;
}
.interruptor-menu-correccion > span {
    width: 100%;
    height: 100%;
    border-radius: 999px;
    background: #b9b9b9;
    transition: .18s ease;
}
.interruptor-menu-correccion > span::after {
    content: "";
    position: absolute;
    left: 3px;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,.22);
    transition: .18s ease;
}
.interruptor-menu-correccion input:checked + span { background: #050505; }
.interruptor-menu-correccion input:checked + span::after { transform: translateX(16px); }
.interruptor-menu-correccion input:focus-visible + span { outline: 2px solid var(--texto); outline-offset: 2px; }
.nota-menu-correccion {
    margin: 5px;
    padding: 10px;
    border-radius: 10px;
    background: var(--superficie-secundaria);
    color: var(--texto-secundario);
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 9px;
    line-height: 1.4;
}
.nota-menu-correccion svg { width: 14px; height: 14px; flex: 0 0 14px; }
.fila-detalles-correccion {
    padding-left: 54px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    color: var(--texto-secundario);
    font-size: 10px;
}
.fila-detalles-correccion > span {
    min-width: 0;
    max-width: min(360px, 100%);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.fila-detalles-correccion svg { width: 13px; height: 13px; flex: 0 0 13px; }
.fila-detalles-correccion .estado-enlace-fila {
    margin-left: auto;
    padding: 5px 8px;
    border-radius: 999px;
    font-weight: 800;
}
.estado-enlace-fila.activo { background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 28%, var(--superficie)); color: var(--texto); }
.estado-enlace-fila.pausa { background: var(--superficie-secundaria); }
.opcion-acceso-coautores {
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
}
.opcion-acceso-coautores > span:last-child { display: grid; gap: 4px; }
.opcion-acceso-coautores strong { font-size: 12px; }
.opcion-acceso-coautores small { color: var(--texto-secundario); font-size: 10px; line-height: 1.5; }
.barra-seleccion-revision .boton { white-space: nowrap; }

@media (max-width: 1050px) {
    .fila-superior-correccion { grid-template-columns: minmax(240px, 1fr) 38px; }
    .insights-correccion { grid-column: 1 / -1; justify-content: flex-start; padding-left: 54px; }
    .acciones-correccion { grid-column: 2; grid-row: 1; }
}
@media (max-width: 680px) {
    .tarjeta-enlace-correccion { padding: 16px; }
    .fila-superior-correccion { gap: 10px; }
    .identidad-enlace-correccion h2 { font-size: 18px; }
    .insights-correccion, .fila-detalles-correccion { padding-left: 0; }
    .insights-correccion { justify-content: flex-start; }
    .insights-correccion > span { min-height: 34px; }
    .fila-detalles-correccion { align-items: flex-start; flex-direction: column; gap: 8px; }
    .fila-detalles-correccion .estado-enlace-fila { margin-left: 0; }
    .menu-acciones-correccion { position: fixed; top: auto; right: 14px; left: 14px; bottom: 14px; width: auto; z-index: 1600; }
}


/* Tipografía oficial para títulos principales de módulos y herramientas. */
.cabecera-pagina h1,
.modal-cabecera h2,
.cabecera-panel h2,
.cabecera-panel-builder h2,
.encabezado-lienzo-automatizacion h2,
.cabecera-propiedad-bloque h2,
.cabecera-marketing-admin h1,
.pagina-editor aside[aria-label] > header h2,
.pagina-editor .panel-buscar-reemplazar > header strong,
.panel-observaciones-revision > header h2,
.tarjeta-sala-acceso h1 {
    font-family: var(--fuente-titulos-quijotext);
}

/* ===== Quijotext 2.8.0 · El Cerrajero y niveles de plan ===== */
:root { --naranja-plan-superior:#ff7a00; }
.insignia-pro-global.plan-superior,
.marca-pro-sidebar.plan-superior,
[data-insignia-plan].plan-superior,
[data-plan-nivel="superior"] .marca-pro-sidebar,
[data-plan-nivel="superior"] [data-insignia-plan],
.navegacion-configuracion .pestana-config-pro-bloqueada small.plan-superior,
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada strong em.plan-superior,
.accion-pro-bloqueada small.plan-superior {
    border-color:color-mix(in srgb,var(--naranja-plan-superior) 78%,#1a0b00 22%) !important;
    background:var(--naranja-plan-superior) !important;
    color:#130700 !important;
    box-shadow:0 6px 18px color-mix(in srgb,var(--naranja-plan-superior) 34%,transparent) !important;
}
.tooltip-pro-global.plan-superior {
    border-color:color-mix(in srgb,var(--naranja-plan-superior) 58%,#dedede);
    box-shadow:0 24px 75px rgba(0,0,0,.18),0 0 0 3px color-mix(in srgb,var(--naranja-plan-superior) 16%,transparent);
}
.selector-visibilidad-obra .opcion-visibilidad-pro-bloqueada b.plan-superior,
[data-plan-nivel="superior"].opcion-visibilidad-pro-bloqueada b {
    border-color:color-mix(in srgb,var(--naranja-plan-superior) 62%,#dedede);
    background:color-mix(in srgb,var(--naranja-plan-superior) 12%,#fff);
}

.campos-llave-compartir { display:grid; gap:14px; padding:16px; border:1px solid var(--borde); border-radius:17px; background:var(--superficie-secundaria); }
.campos-llave-compartir.oculto { display:none; }
.interruptor-vigencia { margin:0; }
.campo-caducidad-llave.oculto { display:none; }
.enlace-generado-obra > a { display:inline-flex; width:max-content; margin-top:8px; color:var(--texto-secundario); font-size:11px; text-decoration:underline; text-underline-offset:3px; }

.contenido-cerrajero { padding-bottom:70px; }
.cabecera-cerrajero { align-items:flex-end; }
.cabecera-cerrajero p { max-width:760px; }
.barra-cerrajero { max-width:1380px; margin:0 auto 18px; padding:14px 0; border-top:1px solid var(--borde); border-bottom:1px solid var(--borde); display:flex; align-items:center; justify-content:space-between; gap:15px; }
.buscador-cerrajero { width:min(680px,100%); min-height:48px; padding:0 15px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie); display:flex; align-items:center; gap:10px; }
.buscador-cerrajero svg { width:16px; height:16px; color:var(--texto-secundario); }
.buscador-cerrajero input { width:100%; border:0; outline:0; background:transparent; color:var(--texto); font:inherit; }
.barra-cerrajero > span { color:var(--texto-secundario); font-size:12px; white-space:nowrap; }
.catalogo-llaves { max-width:1380px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.tarjeta-llave { position:relative; padding:17px 18px; border:1px solid var(--borde); border-radius:20px; background:var(--superficie); box-shadow:0 14px 46px rgba(0,0,0,.045); display:grid; gap:13px; overflow:visible; transition:border-color .18s ease,box-shadow .18s ease,opacity .18s ease; }
.tarjeta-llave.llave-inactiva { opacity:.72; }
.tarjeta-llave.registro-recien-guardado { border-color:color-mix(in srgb,var(--verde-pro,#c7ff2f) 60%,var(--borde)); box-shadow:0 0 0 4px color-mix(in srgb,var(--verde-pro,#c7ff2f) 15%,transparent),0 18px 56px rgba(0,0,0,.06); }
.fila-principal-llave { display:grid; grid-template-columns:minmax(250px,1fr) auto 42px; align-items:center; gap:16px; min-width:0; }
.identidad-llave { min-width:0; display:flex; align-items:center; gap:12px; }
.icono-llave { width:44px; height:44px; flex:0 0 44px; border-radius:14px; background:var(--superficie-secundaria); display:grid; place-items:center; }
.icono-llave svg { width:19px; height:19px; }
.identidad-llave > div { min-width:0; }
.identidad-llave small { color:var(--texto-secundario); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.identidad-llave h2 { margin:4px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:21px; line-height:1.08; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.insights-llave { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.insights-llave > span { min-height:30px; padding:6px 10px; border:1px solid var(--borde); border-radius:999px; background:var(--superficie-secundaria); color:var(--texto-secundario); display:inline-flex; align-items:center; gap:4px; font-size:9px; font-weight:760; white-space:nowrap; }
.insights-llave > span strong { color:var(--texto); font-size:11px; }
.insights-llave .estado-llave { color:var(--texto); }
.insights-llave .estado-activa { border-color:color-mix(in srgb,#2c9b5f 40%,var(--borde)); background:color-mix(in srgb,#2c9b5f 10%,var(--superficie)); }
.insights-llave .estado-caducada { color:#a22727; border-color:color-mix(in srgb,#c43b3b 38%,var(--borde)); background:color-mix(in srgb,#c43b3b 8%,var(--superficie)); }
.acciones-llave { position:relative; justify-self:end; }
.menu-acciones-llave { position:absolute; z-index:80; top:calc(100% + 8px); right:0; width:245px; padding:8px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie); box-shadow:0 20px 58px rgba(0,0,0,.18); display:flex; flex-direction:column; gap:2px; }
.menu-acciones-llave[hidden] { display:none; }
.menu-acciones-llave > button,.accion-switch-llave { width:100%; min-height:40px; padding:8px 10px; border:0; border-radius:10px; background:transparent; color:var(--texto); display:flex; align-items:center; gap:9px; text-align:left; cursor:pointer; font:inherit; font-size:11px; }
.menu-acciones-llave > button:hover,.accion-switch-llave:hover { background:var(--superficie-secundaria); }
.menu-acciones-llave svg { width:15px; height:15px; flex:0 0 15px; }
.accion-switch-llave { justify-content:space-between; }
.accion-switch-llave > span:first-child { display:flex; align-items:center; gap:9px; }
.accion-switch-llave b { font-size:11px; }
.interruptor-menu { transform:scale(.78); transform-origin:right center; margin:0 -4px 0 0; }
.separador-menu-llave { height:1px; margin:4px; background:var(--borde); }
.menu-acciones-llave .accion-eliminar-llave { color:#a32626; }
.fila-detalles-llave { padding-top:12px; border-top:1px solid var(--borde); display:flex; align-items:center; gap:10px 22px; flex-wrap:wrap; color:var(--texto-secundario); font-size:10px; }
.fila-detalles-llave span { min-width:0; display:inline-flex; align-items:center; gap:6px; }
.fila-detalles-llave svg { width:14px; height:14px; flex:0 0 14px; }
.estado-vacio-cerrajero { min-height:330px; padding:32px; border:1px dashed var(--borde); border-radius:22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; color:var(--texto-secundario); }
.estado-vacio-cerrajero[hidden] { display:none; }
.estado-vacio-cerrajero svg { width:34px; height:34px; }
.estado-vacio-cerrajero strong { color:var(--texto); font-family:Georgia,"Times New Roman",serif; font-size:21px; }
.campo-copiar-llave { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.resumen-detalles-llave { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.resumen-detalles-llave > span { padding:11px; border:1px solid var(--borde); border-radius:13px; background:var(--superficie-secundaria); display:flex; flex-direction:column; gap:4px; }
.resumen-detalles-llave small { color:var(--texto-secundario); font-size:9px; text-transform:uppercase; letter-spacing:.07em; }
.resumen-detalles-llave strong { font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#formulario-detalles-llave.cargando { opacity:.55; pointer-events:none; }

@media (max-width:900px) {
    .cabecera-cerrajero { align-items:stretch; flex-direction:column; }
    .barra-cerrajero { align-items:stretch; flex-direction:column; }
    .fila-principal-llave { grid-template-columns:minmax(0,1fr) 42px; }
    .insights-llave { grid-column:1/-1; grid-row:2; justify-content:flex-start; }
    .acciones-llave { grid-column:2; grid-row:1; }
    .fila-detalles-llave { align-items:flex-start; flex-direction:column; gap:8px; }
}
@media (max-width:560px) {
    .tarjeta-llave { padding:15px; border-radius:17px; }
    .identidad-llave h2 { font-size:18px; }
    .menu-acciones-llave { position:fixed; left:14px; right:14px; bottom:calc(86px + env(safe-area-inset-bottom)); top:auto; width:auto; }
    .resumen-detalles-llave { grid-template-columns:1fr; }
    .campo-copiar-llave { grid-template-columns:1fr; }
}
.nota-dependencias-plan { margin:12px 0 2px; padding:11px 12px; border:1px solid var(--borde); border-radius:12px; background:var(--superficie-secundaria); color:var(--texto-secundario); display:flex; align-items:flex-start; gap:8px; font-size:10px; line-height:1.45; }
.nota-dependencias-plan svg { width:15px; height:15px; flex:0 0 15px; color:var(--texto); }
.enlace-sidebar-bloqueado .insignia-plan-inyectada { margin-left:auto; min-width:29px; min-height:17px; padding:2px 5px; font-size:7px; }
.enlace-sidebar-bloqueado .insignia-plan-inyectada + .candado-sidebar-modulo { margin-left:0; }
.boton-pro-bloqueado { position:relative; }
.boton-pro-bloqueado > .insignia-plan-inyectada { position:absolute; top:-7px; right:-8px; min-width:29px; min-height:17px; padding:2px 5px; font-size:7px; pointer-events:none; }
.insights-llave .estado-oculta { color:#8a4b00; border-color:color-mix(in srgb,#ff9a1f 42%,var(--borde)); background:color-mix(in srgb,#ff9a1f 10%,var(--superficie)); }

/* Publicar y Compartir · Quijotext 2.8.3 */
.modal-publicar-compartir { width:min(840px,calc(100vw - 30px)); max-height:min(920px,calc(100dvh - 30px)); height:auto; min-height:0; }
/* Este modal cambia de altura al alternar puertas, tipos de llave y vigencia.
   Se evita que el formulario crezca artificialmente hasta el máximo del modal:
   así el pie acompaña al contenido y no deja una cámara blanca debajo. */
.modal-publicar-compartir > .formulario-publicar-compartir {
    flex:0 1 auto;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    padding-right:3px;
    scrollbar-gutter:stable;
}
.modal-publicar-compartir > .formulario-publicar-compartir > .acciones-modal:last-child {
    flex:0 0 auto;
}

.panel-publicacion-compartir { display:grid; gap:17px; }
.panel-forja-compartir.oculto,.resultado-llave-compartir.oculto,.direccion-publicacion-obra.oculto { display:none; }
.grupo-acceso-publicacion { display:grid; gap:12px; transition:opacity .18s ease; }
.grupo-acceso-publicacion > header { display:grid; gap:3px; }
.grupo-acceso-publicacion > header h3,.panel-forja-compartir > header h3 { margin:3px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:22px; }
.grupo-acceso-publicacion > header p { margin:3px 0 0; color:var(--texto-secundario); font-size:10px; line-height:1.45; }
.panel-publicacion-compartir.publicacion-inactiva .grupo-acceso-publicacion { opacity:.64; }
.panel-publicacion-compartir.publicacion-inactiva .selector-acceso-obra label:not(.opcion-visibilidad-pro-bloqueada) { cursor:not-allowed; }
.panel-publicacion-compartir.publicacion-inactiva .selector-acceso-obra label:not(.opcion-visibilidad-pro-bloqueada) > span { background:var(--superficie-secundaria); filter:saturate(.55); }
.direccion-publicacion-obra { padding:16px; border:1px solid var(--borde); border-radius:17px; background:var(--superficie-secundaria); display:grid; gap:12px; animation:aparecer-panel-publicacion .18s ease; }
.direccion-publicacion-obra > div:first-child { display:grid; gap:3px; }
.direccion-publicacion-obra > div:first-child strong { font-family:Georgia,"Times New Roman",serif; font-size:17px; }
.direccion-publicacion-obra > div:first-child small { color:var(--texto-secundario); line-height:1.45; }
.campo-direccion-obra { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.campo-direccion-obra input { min-width:0; border:1px solid var(--borde); border-radius:12px; padding:11px 12px; background:var(--superficie); color:var(--texto-secundario); }
.selector-acceso-obra,.selector-tipo-llave { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.selector-acceso-obra label,.selector-tipo-llave label { min-width:0; cursor:pointer; }
.selector-acceso-obra input,.selector-tipo-llave input { position:absolute; opacity:0; pointer-events:none; }
.selector-acceso-obra label > span,.selector-tipo-llave label > span { min-height:116px; padding:15px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie); display:flex; flex-direction:column; align-items:flex-start; gap:6px; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,opacity .18s ease; }
.selector-acceso-obra label > span > svg,.selector-tipo-llave label > span > svg { width:21px; height:21px; }
.selector-acceso-obra strong,.selector-tipo-llave strong { display:flex; align-items:center; gap:6px; font-family:Georgia,"Times New Roman",serif; font-size:16px; }
.selector-acceso-obra strong em { padding:2px 5px; border-radius:999px; background:var(--verde-pro,#c7ff2f); color:#080808; font:800 7px/1.3 system-ui,sans-serif; letter-spacing:.08em; }
.selector-acceso-obra small,.selector-tipo-llave small { color:var(--texto-secundario); font-size:10px; line-height:1.45; }
.selector-acceso-obra input:checked + span,.selector-tipo-llave input:checked + span { border-color:var(--texto); box-shadow:0 0 0 2px color-mix(in srgb,var(--texto) 8%,transparent); background:color-mix(in srgb,var(--superficie-secundaria) 65%,var(--superficie)); }
.selector-acceso-obra input:disabled + span { opacity:.72; }
.panel-forja-compartir { padding:17px; border:1px solid var(--borde); border-radius:19px; background:var(--superficie-secundaria); display:grid; gap:15px; animation:aparecer-panel-publicacion .18s ease; }
@keyframes aparecer-panel-publicacion { from { opacity:0; transform:translateY(-4px); } }
.panel-forja-compartir > header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.panel-forja-compartir > header p { margin:4px 0 0; max-width:580px; color:var(--texto-secundario); font-size:11px; line-height:1.5; }
.panel-forja-compartir > header a { flex:0 0 auto; color:var(--texto); font-size:10px; font-weight:750; display:inline-flex; align-items:center; gap:4px; }
.panel-forja-compartir > header a svg { width:13px; height:13px; }
.selector-tipo-llave label > span { min-height:106px; background:var(--superficie); }
.selector-tipo-llave .opcion-llave-bloqueada > span { position:relative; padding-right:54px; cursor:not-allowed; }
.selector-tipo-llave .opcion-llave-bloqueada > span > svg,.selector-tipo-llave .opcion-llave-bloqueada > span > strong,.selector-tipo-llave .opcion-llave-bloqueada > span > small { opacity:.68; }
.insignia-plan-opcion-llave { position:absolute; top:12px; right:12px; min-width:31px; min-height:20px; padding:3px 8px; border:1px solid var(--plan-borde,#D36A00); border-radius:999px; background:var(--plan-fondo,#FF8A00); color:var(--plan-texto,#1D0B00); box-shadow:0 6px 18px color-mix(in srgb,var(--plan-fondo,#FF8A00) 34%,transparent); display:inline-flex; align-items:center; justify-content:center; font-size:8px; font-style:normal; font-weight:900; line-height:1; letter-spacing:.08em; text-transform:uppercase; }
.campos-forja-llave { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; align-items:start; }
.campo-descripcion-forja,.campo-clave-forja,.fila-vigencia-forja { grid-column:1/-1; }
.campo-correo-forja.oculto,[data-campo-correo].oculto { display:none; }
.fila-vigencia-forja { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; align-items:stretch; }
.fila-vigencia-forja > * { min-width:0; }
.interruptor-vigencia { min-height:84px; margin:0; padding:13px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie); align-items:flex-start; }
.interruptor-vigencia > span { flex:0 0 42px; margin-top:2px; }
.interruptor-vigencia > div { min-width:0; }
.interruptor-vigencia small { line-height:1.45; }
.campo-caducidad-llave { min-height:84px; padding:12px 13px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie); transition:opacity .18s ease,background .18s ease; }
.campo-caducidad-llave small { color:var(--texto-secundario); font-size:9px; line-height:1.4; }
.campo-caducidad-llave.campo-vigencia-deshabilitado { opacity:.58; background:color-mix(in srgb,var(--superficie-secundaria) 72%,var(--superficie)); }
.campo-caducidad-llave.campo-vigencia-deshabilitado input { cursor:not-allowed; pointer-events:none; }
.pie-forja-compartir { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.pie-forja-compartir > span { color:var(--texto-secundario); display:inline-flex; align-items:flex-start; gap:7px; font-size:10px; line-height:1.4; }
.pie-forja-compartir > span svg { width:15px; height:15px; flex:0 0 15px; }
.resultado-llave-compartir { padding:14px; border:1px solid color-mix(in srgb,var(--verde-pro,#c7ff2f) 55%,var(--borde)); border-radius:15px; background:color-mix(in srgb,var(--verde-pro,#c7ff2f) 8%,var(--superficie)); display:grid; gap:10px; }
.resultado-llave-compartir > div:first-child { display:grid; gap:2px; }
.resultado-llave-compartir > div:first-child strong { font-family:Georgia,"Times New Roman",serif; font-size:17px; }
.resultado-llave-compartir > div:first-child small { color:var(--texto-secundario); line-height:1.45; }
.descripcion-fila-llave { flex:1 1 360px; }
.identidad-llave p { margin:3px 0 0; color:var(--texto-secundario); font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Puertas cerradas en Mi Estudio y lector público */
.boton-obra-cerrada,.titulo-obra-cerrada,.enlace-solicitar-llave { border:0; padding:0; background:transparent; color:inherit; text-align:inherit; cursor:pointer; font:inherit; }
.obra-puertas-cerradas .portada-obra-estudio { position:relative; }
.sello-portada-cerrada { position:absolute; left:10px; right:10px; bottom:10px; padding:7px 9px; border-radius:999px; background:rgba(0,0,0,.82); color:#fff; display:flex; align-items:center; justify-content:center; gap:5px; font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.sello-portada-cerrada svg { width:12px; height:12px; }
.titulo-obra-cerrada { font-family:Georgia,"Times New Roman",serif; font-weight:700; }
.enlace-solicitar-llave { display:inline-flex; align-items:center; gap:5px; }
.cuerpo-puertas-cerradas { padding:4px 0 2px; display:grid; gap:14px; text-align:center; }
.cuerpo-puertas-cerradas p { margin:0; color:var(--texto-secundario); line-height:1.65; }
.cuerpo-puertas-cerradas p:first-of-type { color:var(--texto); font-size:18px; font-weight:700; line-height:1.4; }
.ilustracion-puertas-cerradas { width:min(250px,100%); height:min(250px,60vw); margin:0 auto; display:block; object-fit:contain; }
.icono-puertas-cerradas { width:66px; height:66px; margin:0 auto; border:1px solid var(--borde); border-radius:50%; background:var(--superficie-secundaria); display:grid; place-items:center; }
.icono-puertas-cerradas svg { width:27px; height:27px; }
.tarjeta-puertas-cerradas { max-width:580px; }
.sello-puerta-cerrada { padding:13px; border:1px solid #ddd; border-radius:14px; background:#f6f6f6; display:flex; align-items:center; gap:9px; color:#555; line-height:1.5; }
.sello-puerta-cerrada svg { width:19px; height:19px; flex:0 0 19px; }
.nombre-llave-acceso { padding:11px 13px; border:1px solid #ddd; border-radius:13px; background:#f6f6f6; display:flex; align-items:center; gap:8px; }
.nombre-llave-acceso svg { width:17px; height:17px; }

/* Bienvenida personalizada de las llaves */

@media(max-width:720px){
 .selector-acceso-obra,.selector-tipo-llave,.campos-forja-llave,.fila-vigencia-forja { grid-template-columns:1fr; }
 .campos-forja-llave > * { grid-column:1!important; }
 .panel-forja-compartir > header,.pie-forja-compartir { align-items:stretch; flex-direction:column; }
 .campo-direccion-obra { grid-template-columns:1fr; }
}

/* Personalización visual · Quijotext 2.9.0 */
.cabecera-personalizacion-admin { align-items:flex-end; }
.pestanas-personalizacion-admin { display:flex; gap:8px; margin:0 0 18px; padding:5px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie-secundaria); }
.pestanas-personalizacion-admin button { min-width:180px; min-height:44px; padding:0 16px; border:0; border-radius:11px; background:transparent; color:var(--texto); display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:750; }
.pestanas-personalizacion-admin button.activo { background:var(--superficie); box-shadow:0 3px 12px rgba(0,0,0,.06); }
.pestanas-personalizacion-admin svg { width:17px; height:17px; }
.formulario-personalizacion-login { display:grid; gap:18px; }
.rejilla-personalizacion-login { display:grid; grid-template-columns:minmax(360px,.82fr) minmax(520px,1.18fr); gap:22px; align-items:start; }
.campos-registro-personalizacion { display:grid; gap:14px; transition:opacity .2s ease; }
.campos-registro-personalizacion.campos-deshabilitados { opacity:.48; }
.vista-previa-personalizacion-login { position:sticky; top:18px; min-width:0; padding:14px; border:1px solid var(--borde); border-radius:20px; background:var(--superficie-secundaria); }
.vista-previa-personalizacion-login > header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 11px; }
.vista-previa-personalizacion-login > header > div { display:flex; gap:7px; }
.boton-compacto { min-height:36px; padding:0 11px; font-size:11px; }
.login-previo-admin { min-height:480px; display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border:1px solid var(--borde); border-radius:18px; background:#fff; color:#111; }
.login-previo-editorial { padding:24px; background:#050505; color:#fff; display:flex; flex-direction:column; justify-content:space-between; gap:22px; }
.login-previo-editorial > div:nth-child(2) { margin:auto 0; }
.login-previo-editorial h3 { margin:8px 0 12px; font-family:Georgia,"Times New Roman",serif; font-size:30px; line-height:1.02; white-space:pre-line; }
.login-previo-editorial p { margin:0; color:#bdbdbd; font-size:11px; line-height:1.55; white-space:pre-line; }
.login-previo-editorial > small { color:#777; font-size:9px; }
.login-previo-escena { position:relative; overflow:hidden; display:grid; place-items:center; padding:22px; background:#fff; }
.capa-previa-login { position:absolute; inset:0; opacity:0; background-repeat:no-repeat; transition:opacity 2s ease-in-out; }
.capa-previa-login.activa { opacity:1; }
.tarjeta-previa-acceso { position:relative; z-index:2; width:min(240px,92%); padding:18px; border:1px solid rgba(0,0,0,.06); border-radius:17px; background:rgba(255,255,255,.94); box-shadow:0 14px 34px rgba(0,0,0,.1); backdrop-filter:blur(3px); }
.tarjeta-previa-acceso h3 { margin:5px 0 5px; font-family:Georgia,"Times New Roman",serif; font-size:22px; }
.tarjeta-previa-acceso p { margin:0 0 12px; color:#666; font-size:9px; line-height:1.45; }
.tarjeta-previa-acceso i { display:block; height:28px; margin:7px 0; border:1px solid #ddd; border-radius:8px; background:#fff; }
.tarjeta-previa-acceso button { width:100%; min-height:32px; margin-top:7px; border:0; border-radius:8px; background:#000; color:#fff; font-size:9px; font-weight:800; }
.rejilla-imagenes-login-admin { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.tarjeta-imagen-login-admin { min-width:0; padding:14px; border:1px solid var(--borde); border-radius:18px; background:var(--superficie); display:grid; gap:13px; }
.tarjeta-imagen-login-admin > header { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tarjeta-imagen-login-admin h3 { margin:3px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:20px; }
.tarjeta-imagen-login-admin > header em { padding:5px 8px; border-radius:999px; background:var(--verde-pro,#C7FF2F); color:#050505; font-size:8px; font-style:normal; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.miniatura-imagen-login-admin { aspect-ratio:4/3; overflow:hidden; border:1px solid var(--borde); border-radius:14px; background:#f4f4f4; display:grid; place-items:center; }
.miniatura-imagen-login-admin img { width:100%; height:100%; object-fit:cover; }
.miniatura-imagen-login-admin > span { display:grid; place-items:center; gap:6px; color:var(--texto-secundario); font-size:10px; }
.miniatura-imagen-login-admin svg { width:25px; height:25px; }
.rejilla-ajuste-imagen-login { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.acciones-imagen-login-admin { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; padding-top:4px; border-top:1px solid var(--borde); }
.casilla-accion-imagen { display:inline-flex; align-items:center; gap:6px; color:var(--texto-secundario); font-size:10px; cursor:pointer; }
.casilla-accion-imagen input { width:15px; height:15px; }
.pagina-personalizacion-admin .nota-editorial { margin-top:14px; }

@media(max-width:1180px){
    .rejilla-personalizacion-login { grid-template-columns:1fr; }
    .vista-previa-personalizacion-login { position:relative; top:auto; }
    .rejilla-imagenes-login-admin { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:720px){
    .pestanas-personalizacion-admin button { min-width:130px; }
    .login-previo-admin { grid-template-columns:1fr; min-height:720px; }
    .login-previo-editorial { min-height:320px; }
    .login-previo-escena { min-height:400px; }
    .rejilla-imagenes-login-admin { grid-template-columns:1fr; }
    .rejilla-ajuste-imagen-login { grid-template-columns:1fr; }
}

/* Quijotext 2.9.6 · impresión física aislada de las reglas responsive */
@media print {
    html,
    body.pagina-previsualizacion {
        width: auto !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: #fff !important;
    }

    body.pagina-previsualizacion .documento-previsualizado,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa {
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        gap: 0 !important;
        display: block !important;
        overflow: visible !important;
        background: #fff !important;
    }

    body.pagina-previsualizacion .pagina-impresion,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido {
        width: var(--ancho-pagina) !important;
        min-width: var(--ancho-pagina) !important;
        max-width: var(--ancho-pagina) !important;
        height: var(--alto-pagina) !important;
        min-height: var(--alto-pagina) !important;
        max-height: var(--alto-pagina) !important;
        margin: 0 !important;
        padding: var(--margen-superior) var(--margen-derecho) var(--margen-inferior) var(--margen-izquierdo) !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-sizing: border-box !important;
        box-shadow: none !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        break-inside: avoid-page !important;
        page-break-inside: avoid !important;
        break-after: page !important;
        page-break-after: always !important;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }

    body.pagina-previsualizacion .pagina-impresion:last-child,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-impresion:last-child {
        break-after: auto !important;
        page-break-after: auto !important;
    }

    body.pagina-previsualizacion .pagina-impresion > .contenido-pagina,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice > .contenido-pagina,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido > .contenido-pagina {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    body.pagina-previsualizacion .notas-pie-pagina {
        flex: 0 0 auto !important;
    }

    body.pagina-previsualizacion .pie-pagina {
        position: static !important;
        inset: auto !important;
        flex: 0 0 auto !important;
        width: auto !important;
        min-height: 24px !important;
        margin: auto 0 0 !important;
        padding: 8px 0 0 !important;
        box-sizing: border-box !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}

/* ================================================================
   Quijotext 3.0 · Motor de normas editoriales
   ================================================================ */
.hoja-editor[data-norma-editorial] .documento-continuo-editor,
.documento-previsualizado[data-norma-editorial] .flujo-documento {
    font-size: var(--qtx-tamano-fuente, 12pt);
    line-height: var(--qtx-interlineado, 1.5);
}
.hoja-editor[data-norma-editorial] .bloque-editor:not(.bloque-titulo1):not(.bloque-titulo2):not(.bloque-titulo3):not(.bloque-titulo4):not(.bloque-titulo5) [data-contenido-bloque],
.documento-previsualizado[data-norma-editorial] .bloque-texto-previsualizado {
    line-height: var(--qtx-interlineado, 1.5);
    text-align: var(--qtx-alineacion, left);
}
.hoja-editor[data-norma-editorial] .bloque-editor:not(.bloque-titulo1):not(.bloque-titulo2):not(.bloque-titulo3):not(.bloque-titulo4):not(.bloque-titulo5) [data-contenido-bloque] > p,
.documento-previsualizado[data-norma-editorial] .bloque-texto-previsualizado > p {
    margin-top: 0;
    margin-bottom: var(--qtx-espacio-parrafo, 0pt);
    text-indent: var(--qtx-sangria-primera, 0cm);
    line-height: inherit;
    text-align: inherit;
}

/* Jerarquía semántica gobernada por el perfil editorial. El perfil MANUAL de
   Quijotext es neutro; APA/MLA/Chicago/Vancouver conservan sus convenciones. */
.hoja-editor[data-norma-editorial] .bloque-titulo1 .contenido-bloque,
.documento-previsualizado[data-norma-editorial] .flujo-documento > h1 { font-size:var(--qtx-titulo1-tamano,24pt);text-align:var(--qtx-titulo1-alineacion,left);font-weight:var(--qtx-titulo1-peso,700);font-style:var(--qtx-titulo1-estilo,normal);text-indent:var(--qtx-titulo1-sangria,0cm); }
.hoja-editor[data-norma-editorial] .bloque-titulo2 .contenido-bloque,
.documento-previsualizado[data-norma-editorial] .flujo-documento > h2 { font-size:var(--qtx-titulo2-tamano,18pt);text-align:var(--qtx-titulo2-alineacion,left);font-weight:var(--qtx-titulo2-peso,700);font-style:var(--qtx-titulo2-estilo,normal);text-indent:var(--qtx-titulo2-sangria,0cm); }
.hoja-editor[data-norma-editorial] .bloque-titulo3 .contenido-bloque,
.documento-previsualizado[data-norma-editorial] .flujo-documento > h3 { font-size:var(--qtx-titulo3-tamano,14pt);text-align:var(--qtx-titulo3-alineacion,left);font-weight:var(--qtx-titulo3-peso,700);font-style:var(--qtx-titulo3-estilo,normal);text-indent:var(--qtx-titulo3-sangria,0cm); }
.hoja-editor[data-norma-editorial] .bloque-titulo4 .contenido-bloque,
.documento-previsualizado[data-norma-editorial] .flujo-documento > h4 { font-size:var(--qtx-titulo4-tamano,12pt);text-align:var(--qtx-titulo4-alineacion,left);font-weight:var(--qtx-titulo4-peso,700);font-style:var(--qtx-titulo4-estilo,normal);text-indent:var(--qtx-titulo4-sangria,0cm); }
.hoja-editor[data-norma-editorial] .bloque-titulo5 .contenido-bloque,
.documento-previsualizado[data-norma-editorial] .flujo-documento > h5 { font-size:var(--qtx-titulo5-tamano,12pt);text-align:var(--qtx-titulo5-alineacion,left);font-weight:var(--qtx-titulo5-peso,700);font-style:var(--qtx-titulo5-estilo,normal);text-indent:var(--qtx-titulo5-sangria,0cm); }

/* Formato libre Quijotext: ningún párrafo hereda sangría por defecto. Solo el
   primer párrafo inmediatamente posterior a un título/subtítulo la recibe. */
.hoja-editor[data-norma-editorial="MANUAL"] .bloque-parrafo [data-contenido-bloque] > p,
.documento-previsualizado[data-norma-editorial="MANUAL"] .bloque-texto-previsualizado > p { text-indent:0; }
.hoja-editor[data-norma-editorial="MANUAL"] :is(.bloque-titulo1,.bloque-titulo2,.bloque-titulo3,.bloque-titulo4,.bloque-titulo5) + .bloque-parrafo [data-contenido-bloque] > p:first-child,
.documento-previsualizado[data-norma-editorial="MANUAL"] .flujo-documento > :is(h1,h2,h3,h4,h5) + .bloque-texto-previsualizado > p:first-child { text-indent:var(--qtx-sangria-tras-titulo,1.27cm); }
.documento-previsualizado.documento-sala-revision[data-norma-editorial="MANUAL"] :is(.tipo-bloque-titulo1,.tipo-bloque-titulo2,.tipo-bloque-titulo3,.tipo-bloque-titulo4,.tipo-bloque-titulo5) + .tipo-bloque-parrafo .bloque-texto-previsualizado > p:first-child { text-indent:var(--qtx-sangria-tras-titulo,1.27cm); }
.documento-previsualizado[data-norma-editorial] .cita-academica,
.hoja-editor[data-norma-editorial] .bloque-cita .contenido-bloque {
    margin-left: var(--qtx-sangria-bloque, 1.27cm);
    line-height: var(--qtx-interlineado, 1.5);
}
.documento-previsualizado[data-norma-editorial] .entrada-bibliografia-previsualizada,
.hoja-editor[data-norma-editorial] .bibliografia-editor li {
    padding-left: var(--qtx-sangria-francesa, 1.27cm);
    text-indent: calc(var(--qtx-sangria-francesa, 1.27cm) * -1);
    line-height: var(--qtx-interlineado, 1.5);
    margin-bottom: var(--qtx-espacio-parrafo, 0pt);
}
.documento-previsualizado[data-norma-editorial="APA7"] .flujo-documento > h1,
.hoja-editor[data-norma-editorial="APA7"] .bloque-titulo1 .contenido-bloque { text-align:center; font-size:12pt; font-weight:700; font-style:normal; }
.documento-previsualizado[data-norma-editorial="APA7"] .flujo-documento > h2,
.hoja-editor[data-norma-editorial="APA7"] .bloque-titulo2 .contenido-bloque { text-align:left; font-size:12pt; font-weight:700; font-style:normal; }
.documento-previsualizado[data-norma-editorial="APA7"] .flujo-documento > h3,
.hoja-editor[data-norma-editorial="APA7"] .bloque-titulo3 .contenido-bloque { text-align:left; font-size:12pt; font-weight:700; font-style:italic; }
.documento-previsualizado[data-norma-editorial="MLA9"] .flujo-documento > h1,
.hoja-editor[data-norma-editorial="MLA9"] .bloque-titulo1 .contenido-bloque { text-align:center; font-size:12pt; font-weight:400; font-style:normal; }
.documento-previsualizado[data-norma-editorial="MLA9"] .flujo-documento > h2,
.hoja-editor[data-norma-editorial="MLA9"] .bloque-titulo2 .contenido-bloque { text-align:left; font-size:12pt; font-weight:700; }
.documento-previsualizado[data-norma-editorial="MLA9"] .flujo-documento > h3,
.hoja-editor[data-norma-editorial="MLA9"] .bloque-titulo3 .contenido-bloque { text-align:left; font-size:12pt; font-weight:400; font-style:italic; }
.documento-previsualizado[data-norma-editorial^="CHICAGO"] .flujo-documento > h1,
.hoja-editor[data-norma-editorial^="CHICAGO"] .bloque-titulo1 .contenido-bloque { text-align:center; font-size:14pt; font-weight:700; }
.documento-previsualizado[data-norma-editorial="VANCOUVER"] .flujo-documento > h1,
.hoja-editor[data-norma-editorial="VANCOUVER"] .bloque-titulo1 .contenido-bloque { text-align:left; font-size:12pt; font-weight:700; text-transform:uppercase; }
.bloque-cita.estilo-cita-chicago_nb .contenido-bloque,
.cita-academica.estilo-chicago_nb { margin-left:1.27cm; padding-left:0; border-left:0; font-style:normal; }
.bloque-cita.estilo-cita-chicago_ad .contenido-bloque,
.cita-academica.estilo-chicago_ad { margin-left:1.27cm; padding-left:0; border-left:0; font-style:normal; }
.bloque-cita.estilo-cita-vancouver .contenido-bloque,
.cita-academica.estilo-vancouver { margin-left:1.27cm; padding-left:0; border-left:0; font-style:normal; }

.cabecera-norma-editorial { display:flex; justify-content:space-between; align-items:flex-start; gap:22px; margin-bottom:18px; }
.cabecera-norma-editorial h3 { margin:4px 0 7px; }
.cabecera-norma-editorial p { margin:0; max-width:720px; color:var(--texto-secundario); line-height:1.55; }
.estado-norma-actual { flex:0 0 auto; max-width:280px; padding:9px 12px; border:1px solid var(--borde); border-radius:999px; background:var(--superficie-secundaria); font-size:11px; font-weight:800; text-align:center; }
.panel-selector-norma { width:100%; min-width:0; box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,.55fr); gap:12px; padding:16px; border:1px solid var(--borde); border-radius:18px; background:var(--superficie-secundaria); }
.panel-selector-norma > .campo-formulario { min-width:0; }
.panel-selector-norma select,.panel-selector-norma input { width:100%; min-width:0; max-width:100%; box-sizing:border-box; }
.panel-selector-norma .campo-formulario > span,.panel-selector-norma .campo-formulario > small { overflow-wrap:anywhere; }

[data-contenido-config="pagina"] { container-type:inline-size; }
@container (max-width: 720px) {
    .panel-selector-norma { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@container (max-width: 430px) {
    .panel-selector-norma { grid-template-columns:minmax(0,1fr); }
}
.aviso-conversion-editorial { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; margin-top:14px; padding:14px; border:1px solid var(--borde); border-radius:16px; }
.aviso-conversion-editorial > svg { width:20px; height:20px; }
.aviso-conversion-editorial > div { display:flex; flex-direction:column; gap:3px; }
.aviso-conversion-editorial > div span { color:var(--texto-secundario); font-size:11px; line-height:1.45; }
.separador-configuracion-editorial { display:flex; align-items:center; gap:10px; margin:24px 0 8px; color:var(--texto-secundario); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.separador-configuracion-editorial::before,.separador-configuracion-editorial::after { content:""; height:1px; flex:1; background:var(--borde); }
.nota-perfil-derivado { margin:0 0 14px; color:var(--texto-secundario); font-size:11px; line-height:1.55; }
.resumen-norma-citas { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:center; padding:16px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie-secundaria); }
.resumen-norma-citas > svg { width:22px; height:22px; }
.resumen-norma-citas > div { display:flex; flex-direction:column; gap:2px; }
.resumen-norma-citas span { font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--texto-secundario); }
.resumen-norma-citas small { color:var(--texto-secundario); }
.rejilla-opciones-cita { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:12px; padding:14px; margin-bottom:14px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie-secundaria); }
.interruptor-cita-textual { grid-column:1/-1; }

.modal-conversion-norma { width:min(1180px, calc(100vw - 34px)); max-height:calc(100dvh - 30px); overflow:hidden; display:flex; flex-direction:column; }
.progreso-conversion-norma { padding:18px 22px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 14px; align-items:center; border-bottom:1px solid var(--borde); }
.progreso-conversion-norma > div { grid-column:1/-1; height:8px; border-radius:999px; overflow:hidden; background:var(--superficie-secundaria); }
.progreso-conversion-norma > div span { display:block; width:0; height:100%; border-radius:inherit; background:var(--negro); transition:width .35s ease; }
.progreso-conversion-norma strong { font-size:12px; }
.progreso-conversion-norma small { font-size:10px; color:var(--texto-secundario); }
.resultado-conversion-norma { min-height:0; overflow:auto; padding:18px 22px 24px; }
.comparador-conversion-norma { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.version-conversion { min-width:0; border:1px solid var(--borde); border-radius:18px; overflow:hidden; background:var(--fondo-tarjeta); }
.version-conversion > header { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 14px; border-bottom:1px solid var(--borde); }
.version-conversion > header span { font-size:9px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; color:var(--texto-secundario); }
.version-conversion > header strong { font-family:Georgia,"Times New Roman",serif; font-size:13px; text-align:right; }
.mini-hoja-conversion { width:min(86%,390px); min-height:380px; margin:18px auto; background:#fff; color:#111; border:1px solid #ddd; box-shadow:0 14px 32px rgba(0,0,0,.09); overflow:hidden; }
.mini-hoja-conversion h3 { margin:0 0 12px; font:700 1.25em Georgia,"Times New Roman",serif; }
.mini-hoja-conversion h4 { margin:18px 0 8px; font:700 1em Georgia,"Times New Roman",serif; text-align:center; }
.mini-hoja-conversion blockquote { margin-top:14px; margin-bottom:14px; }
.version-conversion dl { margin:0; padding:0 14px 14px; display:grid; gap:6px; }
.version-conversion dl > div { display:grid; grid-template-columns:105px minmax(0,1fr); gap:10px; padding:8px 0; border-top:1px solid var(--borde); }
.version-conversion dt { font-size:9px; font-weight:800; color:var(--texto-secundario); text-transform:uppercase; letter-spacing:.05em; }
.version-conversion dd { margin:0; font-size:11px; line-height:1.4; }
.informe-conversion { margin-top:18px; border:1px solid var(--borde); border-radius:16px; overflow:hidden; }
.informe-conversion > header { padding:13px 14px; display:flex; gap:10px; align-items:center; background:var(--superficie-secundaria); }
.informe-conversion > header svg { width:19px; height:19px; }
.informe-conversion > header div { display:flex; flex-direction:column; gap:2px; }
.informe-conversion > header small { color:var(--texto-secundario); }
.informe-conversion > div { padding:12px; display:grid; gap:7px; }
.advertencia-conversion { display:flex; align-items:flex-start; gap:8px; padding:9px 10px; border:1px solid var(--borde); border-radius:11px; font-size:11px; line-height:1.45; }
.advertencia-conversion svg { width:16px; height:16px; flex:0 0 16px; }
.acciones-conversion { border-top:1px solid var(--borde); }

@media (max-width: 980px) {
    .panel-selector-norma { grid-template-columns:1fr 1fr; }
    .comparador-conversion-norma { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
    .cabecera-norma-editorial,.aviso-conversion-editorial,.resumen-norma-citas { grid-template-columns:1fr; display:grid; }
    .estado-norma-actual { max-width:none; }
    .panel-selector-norma,.rejilla-opciones-cita { grid-template-columns:1fr; }
    .interruptor-cita-textual { grid-column:auto; }
    .modal-conversion-norma { width:calc(100vw - 14px); max-height:calc(100dvh - 14px); }
    .resultado-conversion-norma { padding:12px; }
}


/* Quijotext 3.0.0 - paginación y listas académicas */
.documento-previsualizado[data-norma-editorial="APA7"] .pagina-impresion,
.documento-previsualizado[data-norma-editorial="MLA9"] .pagina-impresion { position: relative; }
.documento-previsualizado[data-norma-editorial="APA7"] .pie-pagina .numero-pagina,
.documento-previsualizado[data-norma-editorial="MLA9"] .pie-pagina .numero-pagina { position:absolute;top:max(.55cm,calc(var(--margen-superior) - 1cm));right:var(--margen-derecho);margin:0;min-width:1.2cm;text-align:right;color:#111; }
.documento-previsualizado[data-norma-editorial="APA7"] .entrada-bibliografia-previsualizada,
.documento-previsualizado[data-norma-editorial="MLA9"] .entrada-bibliografia-previsualizada,
.documento-previsualizado[data-norma-editorial="CHICAGO_NB"] .entrada-bibliografia-previsualizada,
.documento-previsualizado[data-norma-editorial="CHICAGO_AD"] .entrada-bibliografia-previsualizada { padding-left:var(--sangria-francesa,1.27cm);text-indent:calc(-1 * var(--sangria-francesa,1.27cm)); }
.documento-previsualizado[data-norma-editorial="VANCOUVER"] .entrada-bibliografia-previsualizada { padding-left:0;text-indent:0; }

/* Niveles semánticos 4 y 5 para APA 7 y perfiles derivados */
.hoja-editor[data-norma-editorial="APA7"] .bloque-titulo4 .contenido-bloque { text-align:left;font-size:12pt;font-weight:700;font-style:normal;text-indent:1.27cm;margin-bottom:0; }
.hoja-editor[data-norma-editorial="APA7"] .bloque-titulo5 .contenido-bloque { text-align:left;font-size:12pt;font-weight:700;font-style:italic;text-indent:1.27cm;margin-bottom:0; }
.hoja-editor[data-norma-editorial="MLA9"] .bloque-titulo4 .contenido-bloque,
.hoja-editor[data-norma-editorial="MLA9"] .bloque-titulo5 .contenido-bloque { text-align:left;font-size:12pt;font-weight:400; }
.documento-previsualizado[data-norma-editorial="APA7"] h4 { font-size:12pt;font-weight:700;font-style:normal;text-indent:1.27cm;margin-bottom:0; }
.documento-previsualizado[data-norma-editorial="APA7"] h5 { font-size:12pt;font-weight:700;font-style:italic;text-indent:1.27cm;margin-bottom:0; }

/* Chicago 18 — notas bibliográficas */
.nota-chicago-generada sup,
.entrada-nota-final-chicago sup { font-size:.78em; vertical-align:super; margin-right:3px; }
.entrada-nota-final-chicago { margin:0 0 10pt; padding-left:1.27cm; text-indent:-1.27cm; line-height:var(--qtx-interlineado,1.5); }
.titulo-notas-finales-chicago { margin-bottom:18pt; text-align:center; }

/* Tablas y figuras dentro del perfil académico */
.documento-previsualizado[data-norma-editorial] { counter-reset:qtx-tabla qtx-figura; }
.documento-previsualizado[data-norma-editorial] .flujo-documento > figure { counter-increment:qtx-figura; }
.documento-previsualizado[data-norma-editorial] .flujo-documento > .tabla-previsualizacion { counter-increment:qtx-tabla; }
.documento-previsualizado[data-norma-editorial] .flujo-documento > .tabla-previsualizacion::before {
    content:"Tabla " counter(qtx-tabla);
    display:block;
    margin:0 0 6pt;
    font-weight:700;
    text-align:left;
}
.documento-previsualizado[data-norma-editorial="MLA9"] .flujo-documento > figure figcaption::before { content:"Fig. " counter(qtx-figura) ". "; font-style:normal; }
.documento-previsualizado[data-norma-editorial="APA7"] .flujo-documento > figure figcaption::before,
.documento-previsualizado[data-norma-editorial^="CHICAGO"] .flujo-documento > figure figcaption::before,
.documento-previsualizado[data-norma-editorial="VANCOUVER"] .flujo-documento > figure figcaption::before { content:"Figura " counter(qtx-figura) ". "; font-style:normal; }
.documento-previsualizado[data-norma-editorial="MLA9"] .flujo-documento > .tabla-previsualizacion::before { content:"Table " counter(qtx-tabla); }
.documento-previsualizado[data-idioma-norma="en"] .flujo-documento > .tabla-previsualizacion::before { content:"Table " counter(qtx-tabla); }
.documento-previsualizado[data-idioma-norma="en"] .flujo-documento > figure figcaption::before { content:"Figure " counter(qtx-figura) ". "; }

.opciones-avanzadas-cita { border:1px solid var(--borde); border-radius:13px; background:var(--superficie-secundaria); overflow:hidden; }
.opciones-avanzadas-cita summary { padding:11px 12px; cursor:pointer; font-size:11px; font-weight:800; }
.rejilla-opciones-avanzadas-cita { padding:0 12px 12px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
@media(max-width:680px){.rejilla-opciones-avanzadas-cita{grid-template-columns:1fr;}}


/* Quijotext 3.0.4 · Ayuda contextual configurable */
.preferencia-ayudas-contextuales {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--fondo-secundario);
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: 12px 14px;
    align-items: start;
}
.preferencia-ayudas-icono { width: 38px; height: 38px; border: 1px solid var(--borde); border-radius: 12px; background: var(--fondo-tarjeta); display:grid; place-items:center; }
.preferencia-ayudas-icono svg { width:18px; height:18px; }
.preferencia-ayudas-texto strong { display:block; margin:1px 0 4px; font-family:Georgia,"Times New Roman",serif; font-size:16px; }
.preferencia-ayudas-texto p { margin:0; color:var(--texto-secundario); font-size:11px; line-height:1.55; }
.interruptor-preferencia-ayudas { grid-column:1/-1; padding-top:12px; border-top:1px solid var(--borde); }
.interruptor-preferencia-ayudas > div { min-width:0; }
.tooltip-pro-global.funcion-disponible .insignia-pro-global { display:none; }
.tooltip-pro-global.funcion-disponible > div { padding-top:0; }
.plan-requerido-tooltip { display:inline-flex; width:max-content; max-width:100%; margin-top:9px; padding:4px 7px; border-radius:999px; background:var(--verde-pro); color:#111; font-size:8px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.plan-requerido-tooltip.plan-superior { background:#ff7a00; color:#111; box-shadow:0 0 14px rgba(255,122,0,.42); }
.plan-requerido-tooltip[hidden] { display:none !important; }
.rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida[data-ayuda-clave]::after { display:none !important; }
.sin-ayudas-contextuales .tooltip-pro-global { display:none !important; }
.sin-ayudas-contextuales .rejilla-proyectos.vista-cuadricula .acciones-obra-tarjeta .accion-obra-rapida::after,
.sin-ayudas-contextuales .globo-descripcion-tarjeta { display:none !important; }
@media (max-width:620px) {
    .preferencia-ayudas-contextuales { grid-template-columns:1fr; }
    .preferencia-ayudas-icono { display:none; }
    .interruptor-preferencia-ayudas { grid-column:1; }
}

/* Actualizaciones administradas · Quijotext 3.1.0 */
.contenido-admin-actualizaciones { display:flex; flex-direction:column; gap:20px; }
.cabecera-actualizaciones-admin { align-items:center; }
.version-aplicacion-admin { flex:0 0 auto; min-width:150px; padding:13px 16px; border:1px solid var(--borde); border-radius:16px; background:var(--fondo-tarjeta); display:flex; flex-direction:column; gap:3px; text-align:right; box-shadow:0 10px 30px rgba(0,0,0,.035); }
.version-aplicacion-admin small { color:var(--texto-secundario); font-size:9px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.version-aplicacion-admin strong { font-family:Georgia,"Times New Roman",serif; font-size:24px; }
.estado-actualizador-admin,.tarjeta-actualizador-subida,.panel-paquete-validado,.progreso-actualizacion-admin,.historial-actualizaciones-admin { padding:22px; border:1px solid var(--borde); border-radius:22px; background:var(--fondo-tarjeta); box-shadow:0 16px 48px rgba(0,0,0,.035); }
.estado-actualizador-admin > header,.tarjeta-actualizador-subida > header,.panel-paquete-validado > header,.historial-actualizaciones-admin > header { display:flex; align-items:flex-start; gap:14px; }
.estado-actualizador-admin > header { justify-content:space-between; }
.estado-actualizador-admin > header > svg { width:28px; height:28px; }
.estado-actualizador-admin h2,.tarjeta-actualizador-subida h2,.panel-paquete-validado h2,.historial-actualizaciones-admin h2,.progreso-actualizacion-admin h2 { margin:4px 0 5px; font-family:Georgia,"Times New Roman",serif; font-size:27px; }
.estado-actualizador-admin p,.tarjeta-actualizador-subida p,.panel-paquete-validado p,.historial-actualizaciones-admin p,.progreso-actualizacion-admin p { margin:0; color:var(--texto-secundario); line-height:1.55; }
.estado-actualizador-admin.listo { border-color:color-mix(in srgb,var(--verde-pro,#c7ff2f) 60%,var(--borde)); box-shadow:0 0 0 4px color-mix(in srgb,var(--verde-pro,#c7ff2f) 12%,transparent),0 16px 48px rgba(0,0,0,.035); }
.rejilla-estado-actualizador { margin-top:18px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.rejilla-estado-actualizador span { min-width:0; padding:11px 12px; border:1px solid var(--borde); border-radius:13px; display:flex; align-items:center; gap:8px; font-size:10px; background:var(--superficie-secundaria); }
.rejilla-estado-actualizador span svg { width:15px; height:15px; flex:0 0 auto; }
.rejilla-estado-actualizador span.correcto { border-color:color-mix(in srgb,#159653 45%,var(--borde)); color:#0a6f3c; }
.rejilla-estado-actualizador span.advertencia { border-color:color-mix(in srgb,#f59e0b 45%,var(--borde)); color:#9a5a00; }
.rejilla-estado-actualizador span.error { border-color:color-mix(in srgb,#d22 45%,var(--borde)); color:#ad1e1e; }
.nota-seguridad-actualizador { margin-top:14px !important; padding:11px 13px; border-radius:13px; background:color-mix(in srgb,#f59e0b 10%,var(--superficie)); display:flex; gap:9px; align-items:flex-start; font-size:10px; }
.nota-seguridad-actualizador svg { width:15px; height:15px; flex:0 0 auto; }
.icono-actualizador { width:43px; height:43px; flex:0 0 auto; border:1px solid var(--borde); border-radius:14px; background:var(--superficie-secundaria); display:grid; place-items:center; }
.icono-actualizador svg { width:20px; height:20px; }
.tarjeta-actualizador-subida form { margin-top:19px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:18px; align-items:stretch; }
.zona-subida-actualizacion { min-height:240px; padding:28px; border:1.5px dashed color-mix(in srgb,var(--texto) 35%,var(--borde)); border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; background:var(--superficie-secundaria); cursor:pointer; transition:border-color .18s ease,transform .18s ease,background .18s ease; }
.zona-subida-actualizacion:hover { border-color:var(--texto); transform:translateY(-1px); }
.zona-subida-actualizacion.deshabilitada { opacity:.55; cursor:not-allowed; }
.zona-subida-actualizacion input { position:absolute; opacity:0; pointer-events:none; }
.zona-subida-actualizacion > svg { width:34px; height:34px; }
.zona-subida-actualizacion strong { font-family:Georgia,"Times New Roman",serif; font-size:19px; }
.zona-subida-actualizacion span,.zona-subida-actualizacion small { color:var(--texto-secundario); font-size:10px; }
.zona-subida-actualizacion small { margin-top:8px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.zona-subida-actualizacion.arrastrando { border-color:var(--texto); background:color-mix(in srgb,var(--verde-pro,#c7ff2f) 16%,var(--superficie)); box-shadow:0 0 0 5px color-mix(in srgb,var(--verde-pro,#c7ff2f) 18%,transparent); transform:translateY(-2px); }
.zona-subida-actualizacion.con-archivo { border-style:solid; border-color:color-mix(in srgb,#159653 58%,var(--borde)); background:color-mix(in srgb,#159653 5%,var(--superficie)); }
.boton-elegir-paquete-actualizacion { margin-top:7px; padding:9px 14px; border:1px solid var(--texto); border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:7px; background:var(--texto); color:var(--superficie); font:inherit; font-size:10px; font-weight:800; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease; }
.boton-elegir-paquete-actualizacion:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(0,0,0,.12); }
.boton-elegir-paquete-actualizacion svg { width:15px; height:15px; }
.zona-subida-actualizacion .aviso-requisitos-paquete { max-width:430px; margin-top:3px; padding:8px 10px; border-radius:10px; background:color-mix(in srgb,#f59e0b 10%,var(--superficie)); color:#805000; white-space:normal; line-height:1.45; }
.confirmacion-actualizacion-admin { padding:17px; border:1px solid var(--borde); border-radius:18px; display:flex; flex-direction:column; justify-content:center; gap:15px; }
.confirmacion-actualizacion-admin .boton { width:100%; justify-content:center; }
.panel-paquete-validado > header { align-items:center; }
.panel-paquete-validado > header > div { min-width:0; flex:1; }
.sello-firma-paquete { margin-left:auto; padding:7px 10px; border-radius:999px; background:#fff2d6; color:#875100; font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; white-space:nowrap; }
.sello-firma-paquete.firmado { background:var(--verde-pro,#c7ff2f); color:#050505; }
.resumen-paquete-actualizacion { margin-top:18px; padding:15px; border:1px solid var(--borde); border-radius:16px; display:grid; grid-template-columns:minmax(110px,1fr) auto minmax(110px,1fr) minmax(90px,.7fr) minmax(90px,.7fr); gap:12px; align-items:center; background:var(--superficie-secundaria); }
.resumen-paquete-actualizacion > div { min-width:0; display:flex; flex-direction:column; gap:4px; }
.resumen-paquete-actualizacion small { color:var(--texto-secundario); font-size:8px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.resumen-paquete-actualizacion strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.resumen-paquete-actualizacion > svg { width:17px; height:17px; }
.advertencias-paquete { margin-top:12px; padding:12px 14px; border:1px solid color-mix(in srgb,#f59e0b 45%,var(--borde)); border-radius:13px; background:color-mix(in srgb,#f59e0b 8%,var(--superficie)); }
.advertencias-paquete p { color:#805000; font-size:10px; }
.checksum-paquete { display:block; margin-top:12px; padding:10px 12px; border-radius:11px; background:#111; color:#e7e7e7; font-size:9px; overflow-wrap:anywhere; }
.acciones-paquete-actualizacion { margin-top:16px; display:flex; justify-content:flex-end; gap:9px; }
.progreso-actualizacion-admin > header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.progreso-actualizacion-admin > header > strong { font-family:Georgia,"Times New Roman",serif; font-size:32px; }
.barra-progreso-actualizacion { height:10px; margin:18px 0; border-radius:999px; background:var(--superficie-secundaria); overflow:hidden; }
.barra-progreso-actualizacion span { display:block; width:0; height:100%; border-radius:inherit; background:var(--verde-pro,#c7ff2f); transition:width .35s ease; }
.etapas-actualizacion { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.etapas-actualizacion li { padding:11px; border:1px solid var(--borde); border-radius:13px; display:flex; gap:8px; align-items:center; color:var(--texto-secundario); font-size:9px; }
.etapas-actualizacion li svg { width:15px; height:15px; flex:0 0 auto; }
.etapas-actualizacion li.activa { border-color:#111; color:var(--texto); box-shadow:0 0 0 3px color-mix(in srgb,var(--verde-pro,#c7ff2f) 18%,transparent); }
.etapas-actualizacion li.completa { border-color:color-mix(in srgb,#159653 45%,var(--borde)); color:#0a6f3c; background:color-mix(in srgb,#159653 6%,var(--superficie)); }
.etapas-actualizacion li.error { border-color:#d22; color:#ad1e1e; }
.historial-actualizaciones-admin > header > div { flex:1; }
.lista-historial-actualizaciones { margin-top:17px; display:grid; gap:9px; }
.registro-actualizacion { padding:14px 15px; border:1px solid var(--borde); border-radius:16px; display:grid; grid-template-columns:minmax(160px,.8fr) minmax(220px,1.5fr) minmax(90px,.5fr) auto; gap:14px; align-items:center; background:var(--superficie); }
.registro-actualizacion.estado-completada { border-left:4px solid #159653; }
.registro-actualizacion.estado-fallida { border-left:4px solid #c92727; }
.registro-actualizacion.estado-restaurada { border-left:4px solid #7b61ff; }
.versiones-registro-actualizacion { display:flex; align-items:center; gap:7px; min-width:0; }
.versiones-registro-actualizacion span,.versiones-registro-actualizacion strong { font-family:Georgia,"Times New Roman",serif; font-size:16px; white-space:nowrap; }
.versiones-registro-actualizacion svg { width:14px; height:14px; }
.datos-registro-actualizacion { min-width:0; display:flex; flex-direction:column; gap:3px; }
.datos-registro-actualizacion b { font-size:11px; }
.datos-registro-actualizacion small { color:var(--texto-secundario); font-size:9px; }
.datos-registro-actualizacion p { color:#a21c1c; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.firma-registro-actualizacion { display:flex; align-items:center; gap:6px; color:var(--texto-secundario); font-size:9px; }
.firma-registro-actualizacion svg { width:14px; height:14px; }
.acciones-registro-actualizacion { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.estado-vacio-actualizaciones { margin-top:17px; min-height:180px; border:1px dashed var(--borde); border-radius:17px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; text-align:center; color:var(--texto-secundario); }
.estado-vacio-actualizaciones svg { width:30px; height:30px; }
.estado-vacio-actualizaciones strong { color:var(--texto); font-family:Georgia,"Times New Roman",serif; font-size:18px; }
.alerta-restauracion { padding:14px; border:1px solid color-mix(in srgb,#d22 40%,var(--borde)); border-radius:14px; display:flex; gap:10px; background:color-mix(in srgb,#d22 6%,var(--superficie)); }
.alerta-restauracion svg { width:18px; height:18px; flex:0 0 auto; color:#b51d1d; }
.alerta-restauracion p { margin:0; color:var(--texto-secundario); font-size:11px; line-height:1.55; }
.contenido-restauracion-actualizacion { display:grid; gap:15px; }
.boton-peligro { background:#b51d1d; border-color:#b51d1d; color:#fff; }
.boton-peligro:hover { background:#941818; border-color:#941818; }
@media (max-width:1180px) {
    .rejilla-estado-actualizador { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .registro-actualizacion { grid-template-columns:minmax(150px,.8fr) minmax(190px,1.4fr) auto; }
    .firma-registro-actualizacion { display:none; }
}
@media (max-width:900px) {
    .tarjeta-actualizador-subida form { grid-template-columns:1fr; }
    .resumen-paquete-actualizacion { grid-template-columns:1fr auto 1fr; }
    .resumen-paquete-actualizacion > div:nth-last-child(-n+2) { grid-column:auto / span 1; }
    .etapas-actualizacion { grid-template-columns:1fr; }
    .registro-actualizacion { grid-template-columns:1fr; align-items:start; }
    .acciones-registro-actualizacion { justify-content:flex-start; }
}
@media (max-width:620px) {
    .cabecera-actualizaciones-admin { align-items:flex-start; }
    .version-aplicacion-admin { width:100%; text-align:left; }
    .estado-actualizador-admin,.tarjeta-actualizador-subida,.panel-paquete-validado,.progreso-actualizacion-admin,.historial-actualizaciones-admin { padding:16px; border-radius:18px; }
    .rejilla-estado-actualizador { grid-template-columns:1fr; }
    .panel-paquete-validado > header { align-items:flex-start; flex-wrap:wrap; }
    .sello-firma-paquete { margin-left:0; }
    .resumen-paquete-actualizacion { grid-template-columns:1fr; }
    .resumen-paquete-actualizacion > svg { transform:rotate(90deg); }
    .acciones-paquete-actualizacion { flex-direction:column-reverse; }
    .acciones-paquete-actualizacion .boton { width:100%; justify-content:center; }
}


/* Soporte y Tickets — Quijotext 3.2.0 */
.contador-pestana-soporte { min-width:20px; height:20px; padding:0 6px; margin-left:auto; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:var(--verde-pro,#c7ff2f); color:#050505; font-size:9px; font-weight:900; }
.soporte-cuenta { display:grid; gap:18px; min-width:0; }
.cabecera-soporte-cuenta { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:22px; border:1px solid var(--borde); border-radius:22px; background:var(--superficie); }
.cabecera-soporte-cuenta > div { min-width:0; max-width:720px; }
.cabecera-soporte-cuenta h2,.cabecera-tickets-admin h1 { margin:4px 0 8px; font-family:Georgia,"Times New Roman",serif; }
.cabecera-soporte-cuenta p,.cabecera-tickets-admin p { margin:0; color:var(--texto-secundario); line-height:1.6; }
.barra-soporte-cuenta { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.barra-soporte-cuenta > span { display:flex; align-items:center; gap:7px; color:var(--texto-secundario); font-size:10px; }
.barra-soporte-cuenta > span svg { width:15px; height:15px; }
.buscador-soporte { position:relative; flex:1; min-width:180px; }
.buscador-soporte > svg { position:absolute; left:13px; top:50%; width:16px; height:16px; transform:translateY(-50%); color:var(--texto-secundario); pointer-events:none; }
.buscador-soporte input { width:100%; min-height:42px; padding:0 14px 0 40px; border:1px solid var(--borde); border-radius:12px; background:var(--superficie); color:var(--texto); }
.lista-tickets-usuario,.lista-tickets-admin { display:grid; gap:9px; min-width:0; }
.tarjeta-ticket-usuario,.tarjeta-ticket-admin { width:100%; min-width:0; padding:14px 15px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie); color:var(--texto); text-align:left; display:grid; align-items:center; gap:13px; cursor:pointer; transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.tarjeta-ticket-usuario { grid-template-columns:auto minmax(0,1fr) auto; }
.tarjeta-ticket-admin { grid-template-columns:minmax(130px,.58fr) minmax(0,1.55fr) auto; }
.tarjeta-ticket-usuario:hover,.tarjeta-ticket-admin:hover { border-color:#aaa; transform:translateY(-1px); box-shadow:0 10px 28px rgba(0,0,0,.055); }
.tarjeta-ticket-usuario.con-respuesta-nueva,.tarjeta-ticket-admin.ticket-sin-leer { border-color:color-mix(in srgb,var(--verde-pro,#c7ff2f) 76%,#777); box-shadow:0 0 0 3px color-mix(in srgb,var(--verde-pro,#c7ff2f) 15%,transparent); }
.icono-ticket-usuario { width:40px; height:40px; border:1px solid var(--borde); border-radius:12px; display:grid; place-items:center; background:var(--superficie-secundaria); }
.icono-ticket-usuario svg,.identidad-ticket-admin svg { width:18px; height:18px; }
.contenido-ticket-usuario,.contenido-ticket-admin,.meta-ticket-usuario,.meta-ticket-admin,.identidad-ticket-admin { min-width:0; display:flex; }
.contenido-ticket-usuario,.contenido-ticket-admin { flex-direction:column; gap:4px; }
.contenido-ticket-usuario small,.contenido-ticket-admin small { color:var(--texto-secundario); font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.055em; }
.contenido-ticket-usuario strong,.contenido-ticket-admin strong { font-family:Georgia,"Times New Roman",serif; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.contenido-ticket-usuario > span,.contenido-ticket-admin > span { color:var(--texto-secundario); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.meta-ticket-usuario,.meta-ticket-admin { align-items:center; justify-content:flex-end; gap:9px; }
.meta-ticket-usuario > b,.meta-ticket-admin > b { padding:5px 8px; border-radius:999px; background:var(--verde-pro,#c7ff2f); color:#050505; font-size:8px; white-space:nowrap; }
.meta-ticket-usuario > svg,.meta-ticket-admin > svg { width:16px; height:16px; color:var(--texto-secundario); }
.identidad-ticket-admin { align-items:center; gap:9px; }
.identidad-ticket-admin b { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10px; white-space:nowrap; }
.estado-ticket { padding:5px 8px; border-radius:999px; font-style:normal; font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.055em; white-space:nowrap; background:var(--superficie-secundaria); }
.estado-ticket.estado-abierto { background:#eef8ff; color:#12618e; }
.estado-ticket.estado-en_revision { background:#fff7d9; color:#7b5800; }
.estado-ticket.estado-esperando_usuario { background:#f2ebff; color:#6344a7; }
.estado-ticket.estado-resuelto { background:#e7f8ee; color:#157443; }
.estado-ticket.estado-cerrado { background:#ececec; color:#555; }
.estado-vacio-soporte { min-height:190px; padding:24px; border:1px dashed var(--borde); border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; text-align:center; color:var(--texto-secundario); }
.estado-vacio-soporte > svg { width:30px; height:30px; }
.estado-vacio-soporte strong { color:var(--texto); font-family:Georgia,"Times New Roman",serif; font-size:18px; }
.estado-vacio-soporte span { max-width:430px; font-size:10px; line-height:1.55; }
.modal-ticket-soporte,.modal-conversacion-ticket { max-height:min(90vh,880px); overflow:hidden; }
.modal-ticket-soporte > form { min-height:0; overflow-y:auto; padding-right:3px; }
.campo-capturas-ticket input { width:100%; padding:12px; border:1px dashed var(--borde); border-radius:12px; background:var(--superficie-secundaria); }
.previsualizacion-capturas-ticket { display:flex; flex-wrap:wrap; gap:8px; }
.previsualizacion-capturas-ticket:empty { display:none; }
.previsualizacion-capturas-ticket > span { width:84px; min-width:0; display:grid; gap:4px; }
.previsualizacion-capturas-ticket img { width:84px; height:62px; object-fit:cover; border:1px solid var(--borde); border-radius:9px; }
.previsualizacion-capturas-ticket small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--texto-secundario); font-size:8px; }
.cuerpo-conversacion-ticket { min-height:0; height:min(68vh,700px); display:grid; grid-template-rows:minmax(0,1fr) auto; gap:14px; overflow:hidden; }
.cuerpo-ticket-admin { grid-template-columns:230px minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; }
.ficha-usuario-ticket-admin { grid-row:1 / -1; padding:15px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie-secundaria); align-self:stretch; display:flex; align-items:flex-start; gap:10px; overflow:hidden; }
.ficha-usuario-ticket-admin .avatar-inicial { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; flex:0 0 auto; background:#111; color:#fff; font-family:Georgia,"Times New Roman",serif; }
.ficha-usuario-ticket-admin > div { min-width:0; display:flex; flex-direction:column; gap:4px; }
.ficha-usuario-ticket-admin strong,.ficha-usuario-ticket-admin a,.ficha-usuario-ticket-admin small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ficha-usuario-ticket-admin a,.ficha-usuario-ticket-admin small { color:var(--texto-secundario); font-size:9px; }
.historial-ticket { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:4px 8px 8px 2px; display:flex; flex-direction:column; gap:10px; scrollbar-width:thin; }
.mensaje-ticket { width:min(86%,680px); padding:13px 14px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie); display:grid; gap:9px; }
.mensaje-ticket.mensaje-usuario { align-self:flex-end; border-bottom-right-radius:5px; background:var(--superficie-secundaria); }
.mensaje-ticket.mensaje-soporte { align-self:flex-start; border-bottom-left-radius:5px; border-color:color-mix(in srgb,var(--verde-pro,#c7ff2f) 48%,var(--borde)); }
.mensaje-ticket header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mensaje-ticket header span { display:flex; align-items:center; gap:6px; font-size:9px; font-weight:850; }
.mensaje-ticket header svg { width:14px; height:14px; }
.mensaje-ticket time { color:var(--texto-secundario); font-size:8px; white-space:nowrap; }
.texto-mensaje-ticket { font-size:11px; line-height:1.65; overflow-wrap:anywhere; }
.galeria-capturas-ticket { display:grid; grid-template-columns:repeat(auto-fill,minmax(94px,1fr)); gap:7px; }
.galeria-capturas-ticket a { min-width:0; padding:5px; border:1px solid var(--borde); border-radius:10px; background:var(--superficie); display:grid; gap:4px; color:inherit; text-decoration:none; }
.galeria-capturas-ticket img { width:100%; height:82px; object-fit:cover; border-radius:7px; }
.galeria-capturas-ticket span { color:var(--texto-secundario); font-size:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.formulario-respuesta-ticket { min-width:0; padding-top:13px; border-top:1px solid var(--borde); display:grid; gap:10px; background:var(--superficie); }
.formulario-respuesta-ticket.ticket-cerrado textarea { background:var(--superficie-secundaria); }
.formulario-respuesta-ticket .control-deshabilitado { opacity:.48; pointer-events:none; }
.fila-respuesta-ticket,.acciones-respuesta-ticket { display:flex; align-items:center; justify-content:space-between; gap:9px; }
.selector-archivo-ticket { position:relative; overflow:hidden; cursor:pointer; }
.selector-archivo-ticket input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.rejilla-respuesta-admin-ticket { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(180px,1fr); gap:12px; align-items:end; }
.contenido-admin-tickets { min-width:0; }
.cabecera-tickets-admin { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.cabecera-tickets-admin > div { max-width:760px; }
.sello-tickets-pendientes { min-width:126px; padding:12px 15px; border:1px solid var(--borde); border-radius:16px; display:flex; flex-direction:column; gap:3px; background:var(--superficie); }
.sello-tickets-pendientes small { color:var(--texto-secundario); font-size:8px; text-transform:uppercase; letter-spacing:.06em; }
.sello-tickets-pendientes strong { font-family:Georgia,"Times New Roman",serif; font-size:28px; }
.resumen-tickets-admin { margin:20px 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.resumen-tickets-admin article { min-width:0; padding:14px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie); display:flex; align-items:center; gap:11px; }
.resumen-tickets-admin article > svg { width:19px; height:19px; flex:0 0 auto; }
.resumen-tickets-admin article div { min-width:0; display:flex; flex-direction:column; }
.resumen-tickets-admin small { color:var(--texto-secundario); font-size:8px; text-transform:uppercase; letter-spacing:.05em; }
.resumen-tickets-admin strong { font-family:Georgia,"Times New Roman",serif; font-size:22px; }
.panel-tickets-admin { padding:18px; border:1px solid var(--borde); border-radius:20px; background:var(--superficie); }
.filtros-tickets-admin { margin-bottom:15px; display:grid; grid-template-columns:minmax(240px,1.6fr) minmax(160px,.7fr) minmax(150px,.6fr); gap:10px; align-items:end; }
.filtros-tickets-admin > label:not(.buscador-soporte) { display:grid; gap:5px; }
.filtros-tickets-admin > label > span { color:var(--texto-secundario); font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.filtros-tickets-admin select { width:100%; min-height:42px; padding:0 11px; border:1px solid var(--borde); border-radius:12px; background:var(--superficie); color:var(--texto); }
.modal-novedades-admin .lista-novedades-admin { max-height:min(64vh,620px); overflow-y:auto; }
.tarjeta-novedad-administracion { padding:12px; border:1px solid var(--borde); border-radius:14px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center; color:inherit; text-decoration:none; }
.tarjeta-novedad-administracion:hover { border-color:#aaa; }
.tarjeta-novedad-administracion > svg { width:15px; height:15px; }

@media (max-width:1050px) {
    .resumen-tickets-admin { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .filtros-tickets-admin { grid-template-columns:1fr 1fr; }
    .filtros-tickets-admin .buscador-soporte { grid-column:1 / -1; }
    .cuerpo-ticket-admin { grid-template-columns:180px minmax(0,1fr); }
}
@media (max-width:760px) {
    .cabecera-soporte-cuenta,.cabecera-tickets-admin,.barra-soporte-cuenta { flex-direction:column; align-items:stretch; }
    .cabecera-soporte-cuenta .boton { width:100%; justify-content:center; }
    .tarjeta-ticket-usuario,.tarjeta-ticket-admin { grid-template-columns:auto minmax(0,1fr); }
    .tarjeta-ticket-admin .identidad-ticket-admin { grid-column:1 / -1; }
    .meta-ticket-usuario,.meta-ticket-admin { grid-column:2; justify-content:flex-start; flex-wrap:wrap; }
    .cuerpo-ticket-admin { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr) auto; }
    .ficha-usuario-ticket-admin { grid-row:auto; }
    .cuerpo-conversacion-ticket { height:min(76vh,720px); }
    .mensaje-ticket { width:94%; }
    .fila-respuesta-ticket,.acciones-respuesta-ticket { align-items:stretch; flex-direction:column; }
    .fila-respuesta-ticket .boton,.acciones-respuesta-ticket .boton { width:100%; justify-content:center; }
    .rejilla-respuesta-admin-ticket,.filtros-tickets-admin { grid-template-columns:1fr; }
    .filtros-tickets-admin .buscador-soporte { grid-column:auto; }
}
@media (max-width:520px) {
    .resumen-tickets-admin { grid-template-columns:1fr; }
    .panel-tickets-admin { padding:12px; border-radius:16px; }
    .tarjeta-ticket-usuario,.tarjeta-ticket-admin { padding:12px; }
    .icono-ticket-usuario { display:none; }
    .tarjeta-ticket-usuario { grid-template-columns:minmax(0,1fr); }
    .meta-ticket-usuario { grid-column:1; }
    .modal-conversacion-ticket { max-height:96dvh; }
    .cuerpo-conversacion-ticket { height:78dvh; }
}

/* =========================================================
   QUijotext 3.3.0 · Herramienta de mano Fórmulas
   ========================================================= */
.acceso-formulas-editor{position:relative}
.acceso-formulas-editor.activo{background:#b7ff18!important;color:#050505!important}
.herramienta-formulas-editor{position:fixed;z-index:1692;left:68px;right:18px;top:18px;bottom:18px;display:none;grid-template-rows:auto minmax(0,1fr);background:#fff;border:1px solid #dedede;border-radius:26px;box-shadow:0 24px 80px rgba(0,0,0,.22);overflow:hidden;color:#111}
.herramienta-formulas-editor.visible{display:grid}
.cabecera-herramienta-formulas{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 26px;border-bottom:1px solid #e7e7e7;background:#fff}
.cabecera-herramienta-formulas h2{font-family:var(--fuente-titulos,Georgia,serif);font-size:32px;line-height:1;margin:3px 0 7px}
.cabecera-herramienta-formulas p{margin:0;color:#666;max-width:660px}
.acciones-cabecera-formulas{display:flex;align-items:center;gap:10px}
.cuerpo-herramienta-formulas{display:grid;grid-template-columns:minmax(235px,300px) minmax(0,1fr);min-height:0}
.biblioteca-formulas{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:18px;border-right:1px solid #e7e7e7;background:#fafafa}
.buscador-formulas{height:44px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid #d8d8d8;border-radius:14px;background:#fff}
.buscador-formulas svg{width:18px;height:18px;color:#777}.buscador-formulas input{border:0;outline:0;background:transparent;width:100%;min-width:0;font:inherit}
.lista-formulas-guardadas{overflow:auto;padding:12px 2px 2px;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin}
.tarjeta-formula-guardada{display:grid;grid-template-columns:56px minmax(0,1fr);gap:11px;align-items:center;width:100%;padding:9px;text-align:left;border:1px solid #dedede;border-radius:14px;background:#fff;cursor:pointer;color:inherit}
.tarjeta-formula-guardada:hover,.tarjeta-formula-guardada.activa{border-color:#111;box-shadow:0 4px 14px rgba(0,0,0,.07)}
.tarjeta-formula-guardada.activa{outline:2px solid #b7ff18;outline-offset:1px}
.miniatura-formula{height:48px;display:grid;place-items:center;border-radius:10px;background:#f5f5f5;overflow:hidden}.miniatura-formula img{max-width:94%;max-height:42px;object-fit:contain}.miniatura-formula svg{width:22px}
.tarjeta-formula-guardada strong,.tarjeta-formula-guardada small,.tarjeta-formula-guardada em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tarjeta-formula-guardada small{color:#666;margin-top:3px}.tarjeta-formula-guardada em{color:#63702d;font-size:11px;font-style:normal;margin-top:4px}
.estado-formulas-vacio{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;color:#777;padding:24px}.estado-formulas-vacio svg{width:34px;height:34px}.estado-formulas-vacio strong{color:#111}.estado-formulas-vacio span{font-size:13px;line-height:1.45}
.editor-formula-mano{min-height:0;overflow:auto;padding:22px 26px 20px;display:flex;flex-direction:column;gap:18px}
.rejilla-formula-identidad{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(300px,1.25fr);gap:14px}
.constructor-formula{display:grid;grid-template-columns:180px minmax(0,1fr);min-height:500px;border:1px solid #dedede;border-radius:18px;overflow:hidden;background:#fff}
.categorias-formula{padding:10px;background:#f6f6f6;border-right:1px solid #e1e1e1;overflow:auto;display:flex;flex-direction:column;gap:5px}
.categorias-formula button{display:flex;align-items:center;gap:9px;border:0;border-radius:10px;background:transparent;padding:10px;text-align:left;font-weight:700;color:#555;cursor:pointer}.categorias-formula button svg{width:17px;height:17px}.categorias-formula button:hover,.categorias-formula button.activo{background:#111;color:#fff}.categorias-formula button.activo{box-shadow:inset 3px 0 0 #b7ff18}
.mesa-constructor-formula{display:grid;grid-template-rows:auto auto minmax(150px,1fr);gap:15px;padding:17px;min-width:0}
.paleta-formula{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;min-height:120px}
.simbolos-formula,.plantillas-formula{border:1px solid #e2e2e2;border-radius:13px;background:#fafafa;padding:9px;overflow:auto;max-height:190px}
.simbolos-formula{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;align-content:start}.simbolos-formula button{min-height:38px;border:1px solid #ddd;border-radius:8px;background:#fff;font-family:Georgia,serif;font-size:16px;cursor:pointer}.simbolos-formula button:hover{border-color:#111;background:#b7ff18}
.plantillas-formula{display:flex;flex-direction:column;gap:6px}.plantillas-formula button{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:10px;text-align:left;align-items:center;border:1px solid #e0e0e0;border-radius:9px;background:#fff;padding:8px 10px;cursor:pointer}.plantillas-formula button:hover{border-color:#111}.plantillas-formula span{font-weight:700;font-size:12px}.plantillas-formula code{font-size:11px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.campo-latex-formula textarea{font:14px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical;min-height:112px}
.previsualizacion-formula{min-height:160px;border:1px dashed #bdbdbd;border-radius:14px;background:linear-gradient(#fff,#fbfbfb);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;text-align:center}.previsualizacion-formula mjx-container{margin:0!important;max-width:100%}.previsualizacion-formula svg{max-width:100%;height:auto}.formula-sin-contenido,.formula-error{color:#888;font-size:13px}.formula-error{color:#a80000}.formula-con-error{border-color:#d76767;background:#fff7f7}
.campo-etiquetas-formula{margin-top:-2px}.acciones-formula-mano{display:flex;align-items:center;justify-content:flex-end;gap:10px;position:sticky;bottom:-20px;background:#fff;padding:14px 0 2px;border-top:1px solid #eee;z-index:2}.acciones-formula-mano>span{margin-right:auto;color:#777;font-size:13px}.boton-eliminar-formula{color:#a00000!important}
.formula-academica img.imagen-formula-word,.formula-renderizada img{max-width:100%;height:auto}

/* Fórmulas en Componentes y El Gabinete */
.selector-formula-componente{border:1px solid #dedede;border-radius:16px;padding:14px;background:#fafafa}.selector-formula-componente.oculto,.selector-formula-componente[hidden]{display:none!important}.selector-formula-componente .cabecera-fuente-cita{margin-bottom:10px}.resultados-formulas-componente{display:grid;gap:7px;max-height:220px;overflow:auto;margin-top:9px}.resultado-formula-componente{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #ddd;border-radius:11px;background:#fff;padding:8px;text-align:left;cursor:pointer}.resultado-formula-componente:hover,.resultado-formula-componente.activo{border-color:#111;outline:1px solid #b7ff18}.resultado-formula-componente img{max-width:48px;max-height:38px;object-fit:contain}.resultado-formula-componente strong,.resultado-formula-componente small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resultado-formula-componente small{color:#777;margin-top:3px}.formula-gabinete-preview{min-height:140px;padding:20px;border:1px dashed #bbb;border-radius:13px;display:flex;align-items:center;justify-content:center;overflow:auto;background:#fff}.formula-gabinete-preview svg{max-width:100%;height:auto}
.imagen-universal-gabinete.oculto-por-formula{display:none}.campo-gabinete-fecha input[type=date]{min-height:44px}.tarjeta-registro-gabinete[data-tipo="formulas"] .visual-registro-gabinete{background:#fff}.tarjeta-registro-gabinete[data-tipo="formulas"] .visual-registro-gabinete img{object-fit:contain;padding:7px}

@media(max-width:900px){.herramienta-formulas-editor{left:62px;right:8px;top:8px;bottom:8px}.cuerpo-herramienta-formulas{grid-template-columns:220px minmax(0,1fr)}.constructor-formula{grid-template-columns:150px minmax(0,1fr)}.paleta-formula{grid-template-columns:1fr}.rejilla-formula-identidad{grid-template-columns:1fr}}
@media(max-width:700px){.herramienta-formulas-editor{inset:6px;border-radius:18px}.cabecera-herramienta-formulas{padding:16px}.cabecera-herramienta-formulas h2{font-size:25px}.cabecera-herramienta-formulas p{display:none}.cuerpo-herramienta-formulas{display:block;overflow:auto}.biblioteca-formulas{border-right:0;border-bottom:1px solid #ddd;max-height:220px}.editor-formula-mano{overflow:visible;padding:16px}.constructor-formula{display:block;min-height:0}.categorias-formula{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid #ddd}.categorias-formula button{white-space:nowrap}.mesa-constructor-formula{padding:12px}.acciones-formula-mano{flex-wrap:wrap;bottom:-16px}.acciones-formula-mano>span{width:100%;order:-1}.acciones-formula-mano .boton{flex:1}.acciones-cabecera-formulas .boton span{display:none}}
.etiquetas-registro-gabinete button{display:inline-flex;align-items:center;max-width:100%;padding:4px 9px;border:0;border-radius:999px;background:var(--superficie-secundaria,#f1f1f1);color:inherit;font:inherit;font-size:10px;line-height:1.2;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.etiquetas-registro-gabinete button:hover,.etiquetas-registro-gabinete button:focus-visible{background:#b7ff18;color:#050505;outline:1px solid #111;outline-offset:1px}

/* =========================================================
   Quijotext 3.3.1 · Constructor visual de Fórmulas
   ========================================================= */
.herramienta-formulas-editor{left:72px;right:14px;top:14px;bottom:14px;border-radius:24px}
.cabecera-herramienta-formulas{align-items:center;padding:17px 22px;gap:18px}
.cabecera-herramienta-formulas h2{font-size:30px;margin-bottom:5px}
.cabecera-herramienta-formulas p{font-size:14px;line-height:1.45}
.acciones-cabecera-formulas{flex-wrap:wrap;justify-content:flex-end}
.boton-toggle-biblioteca-formulas{position:relative;gap:8px}
.boton-toggle-biblioteca-formulas b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#111;color:#fff;font-size:11px;line-height:1}
.boton-toggle-biblioteca-formulas.activo{border-color:#111;background:#f3f3f3}
.boton-toggle-biblioteca-formulas>svg:last-child{width:16px;height:16px}

.cuerpo-herramienta-formulas{display:grid;grid-template-columns:minmax(260px,310px) minmax(0,1fr);min-height:0;overflow:hidden;transition:grid-template-columns .2s ease}
.cuerpo-herramienta-formulas.biblioteca-colapsada{grid-template-columns:0 minmax(0,1fr)}
.biblioteca-formulas{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;min-width:0;padding:16px;border-right:1px solid #e5e5e5;background:#f8f8f7;overflow:hidden;opacity:1;visibility:visible;transition:opacity .16s ease,padding .2s ease}
.biblioteca-colapsada .biblioteca-formulas{padding-left:0;padding-right:0;border-right:0;opacity:0;visibility:hidden;pointer-events:none}
.cabecera-biblioteca-formulas{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:230px}
.cabecera-biblioteca-formulas h3{margin:2px 0 0;font-family:var(--fuente-titulos,Georgia,serif);font-size:21px;line-height:1.1}
.biblioteca-formulas .buscador-formulas{min-width:230px}
.lista-formulas-guardadas{min-width:230px;overflow-y:auto;overflow-x:hidden;padding-right:3px;overscroll-behavior:contain}
.tarjeta-formula-guardada{grid-template-columns:58px minmax(0,1fr);padding:9px;align-items:center}
.tarjeta-formula-guardada>span:last-child{min-width:0}
.tarjeta-formula-guardada strong,.tarjeta-formula-guardada small,.tarjeta-formula-guardada em{white-space:normal;overflow-wrap:anywhere}

.editor-formula-mano{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0;padding:16px 18px 0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.cuadrante-identidad-formula{padding:14px;border:1px solid #e1e1e1;border-radius:15px;background:#fafafa}
.rejilla-formula-identidad{gap:12px}
.rejilla-formula-identidad .campo-formulario{min-width:0}
.rejilla-formula-identidad input{width:100%}

.constructor-formula-avanzado{display:grid;grid-template-columns:190px minmax(0,1fr);min-width:0;min-height:650px;border:1px solid #d8d8d8;border-radius:18px;background:#fff;overflow:hidden}
.menu-categorias-formula{display:flex;flex-direction:column;min-width:0;border-right:1px solid #dedede;background:#f4f4f2;overflow:hidden}
.encabezado-menu-formula{display:flex;flex-direction:column;gap:3px;padding:16px 14px 12px;border-bottom:1px solid #ddd}
.encabezado-menu-formula span{font-weight:900;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.encabezado-menu-formula small{color:#747474;font-size:11px}
.menu-categorias-formula nav{display:flex;flex-direction:column;gap:5px;padding:9px;overflow-y:auto;overflow-x:hidden}
.menu-categorias-formula nav button{display:grid;grid-template-columns:20px minmax(0,1fr) 14px;align-items:center;gap:8px;width:100%;min-height:43px;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:#555;text-align:left;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.menu-categorias-formula nav button svg{width:17px;height:17px}
.menu-categorias-formula nav button svg:last-child{width:13px;height:13px;opacity:.45}
.menu-categorias-formula nav button:hover{border-color:#ccc;background:#fff;color:#111}
.menu-categorias-formula nav button.activo{border-color:#111;background:#111;color:#fff;box-shadow:inset 4px 0 0 #b7ff18}
.menu-categorias-formula nav button.activo svg:last-child{color:#b7ff18;opacity:1}

.area-trabajo-formula{display:flex;flex-direction:column;gap:13px;min-width:0;padding:16px;overflow:visible;background:#fff}
.cabecera-area-formula{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}
.cabecera-area-formula>div{min-width:0}
.cabecera-area-formula h3{margin:2px 0 5px;font-family:var(--fuente-titulos,Georgia,serif);font-size:23px;line-height:1.1}
.cabecera-area-formula p{margin:0;max-width:720px;color:#666;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.estado-sincronizacion-formula{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:6px 9px;border:1px solid #cddfc5;border-radius:999px;background:#f3fff0;color:#246300;font-size:10px;font-weight:800;white-space:nowrap}
.estado-sincronizacion-formula svg{width:13px;height:13px}
.estado-sincronizacion-formula.sincronizando svg{animation:girar-formula .8s linear infinite}
@keyframes girar-formula{to{transform:rotate(360deg)}}

.subtemas-formula{display:flex;gap:6px;max-width:100%;padding-bottom:2px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.subtemas-formula button{flex:0 0 auto;min-height:34px;padding:7px 12px;border:1px solid #ddd;border-radius:999px;background:#fff;color:#555;font:inherit;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.subtemas-formula button:hover{border-color:#111;color:#111}
.subtemas-formula button.activo{border-color:#111;background:#b7ff18;color:#050505}

.barra-herramientas-formula{display:grid;grid-template-columns:minmax(120px,160px) minmax(0,1fr);gap:12px;padding:12px;border:1px solid #dedede;border-radius:14px;background:#f8f8f7;min-width:0}
.rotulo-herramientas-formula{display:flex;flex-direction:column;gap:4px;padding:5px 7px}
.rotulo-herramientas-formula strong{font-size:13px}
.rotulo-herramientas-formula small{color:#777;font-size:10px;line-height:1.4}
.botones-herramientas-formula{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:7px;min-width:0}
.botones-herramientas-formula button{min-width:0;border:1px solid #d7d7d7;border-radius:10px;background:#fff;color:#111;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.botones-herramientas-formula button:hover{border-color:#111;box-shadow:0 5px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
.herramienta-formula-directa{display:flex;align-items:center;gap:8px;min-height:46px;padding:7px 9px;text-align:left}
.herramienta-formula-directa b{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:8px;background:#f1f1f1;font-family:Georgia,serif;font-size:17px}
.herramienta-formula-directa span{min-width:0;font-size:10px;font-weight:800;overflow-wrap:anywhere}
.herramienta-formula-guiada{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-height:54px;padding:7px 9px;text-align:left}
.herramienta-formula-guiada>svg{width:18px;height:18px;margin:auto}
.herramienta-formula-guiada span{display:block;min-width:0}
.herramienta-formula-guiada b,.herramienta-formula-guiada small{display:block;min-width:0;overflow-wrap:anywhere}
.herramienta-formula-guiada b{font-size:10px;line-height:1.25}
.herramienta-formula-guiada small{margin-top:2px;color:#777;font-size:9px;line-height:1.25}

.doble-editor-formula{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;min-width:0}
.cuadrante-edicion-formula{display:flex;flex-direction:column;min-width:0;margin:0;border:1px solid #dcdcdc;border-radius:14px;background:#fff;overflow:hidden}
.cuadrante-edicion-formula>span{display:grid;grid-template-columns:18px auto minmax(0,1fr);align-items:center;gap:7px;padding:10px 12px;border-bottom:1px solid #e3e3e3;background:#f8f8f7;min-width:0}
.cuadrante-edicion-formula>span svg{width:16px;height:16px}
.cuadrante-edicion-formula>span b{font-size:11px;white-space:nowrap}
.cuadrante-edicion-formula>span em{justify-self:end;color:#777;font-size:9px;font-style:normal;text-align:right;overflow-wrap:anywhere}
.cuadrante-edicion-formula textarea{box-sizing:border-box;width:100%;min-width:0;min-height:175px;max-height:none;padding:13px;border:0;border-radius:0;background:#fff;color:#111;resize:vertical;outline:0;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow:auto;overflow-wrap:normal}
.cuadrante-quijotext-formula textarea{font-family:var(--fuente-cuerpo,Arial,sans-serif);font-size:14px}
.cuadrante-edicion-formula textarea:focus{box-shadow:inset 0 0 0 2px #111}
.cuadrante-edicion-formula>small{display:block;padding:8px 12px;border-top:1px solid #eee;color:#777;font-size:9px;line-height:1.4;background:#fcfcfc;overflow-wrap:anywhere}

.resultado-final-formula{min-width:0;border:2px solid #6cae00;border-radius:15px;background:linear-gradient(180deg,#f7ffec 0,#fff 44%);box-shadow:0 0 0 4px rgba(183,255,24,.14);overflow:hidden}
.resultado-final-formula>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 13px;border-bottom:1px solid #cfe6a7;background:#efffd4}
.resultado-final-formula>header span{display:flex;align-items:center;gap:7px;color:#285e00;font-size:12px}
.resultado-final-formula>header span svg{width:17px;height:17px}
.resultado-final-formula>header small{color:#47731f;font-size:9px;text-align:right}
.resultado-final-formula .previsualizacion-formula{min-height:150px;max-width:100%;padding:24px;border:0;border-radius:0;background:transparent;overflow:auto;overscroll-behavior:contain}
.resultado-final-formula .previsualizacion-formula mjx-container{max-width:none;min-width:min-content}
.resultado-final-formula .previsualizacion-formula svg{max-width:none;height:auto}
.resultado-final-formula.formula-con-error,.resultado-final-formula:has(.formula-con-error){border-color:#bc3a3a;background:#fff7f7;box-shadow:0 0 0 4px rgba(188,58,58,.08)}

.campo-etiquetas-formula{margin:0;padding:12px 14px;border:1px solid #e3e3e3;border-radius:14px;background:#fafafa}
.acciones-formula-mano{bottom:0;margin-top:auto;padding:12px 0 14px;background:linear-gradient(180deg,rgba(255,255,255,.92),#fff 30%)}

.modal-formula-constructor{z-index:1905}
.modal-contenido-formula-constructor{width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px));padding:0;overflow:hidden;display:flex;flex-direction:column;border-radius:20px}
.modal-contenido-formula-constructor>.modal-cabecera{flex:0 0 auto;margin:0;padding:20px 22px;border-bottom:1px solid #e2e2e2;background:#fff}
.modal-contenido-formula-constructor>.modal-cabecera h2{font-family:var(--fuente-titulos,Georgia,serif);font-size:27px}
.modal-contenido-formula-constructor>.modal-cabecera p{margin:6px 0 0;color:#666;font-size:12px;line-height:1.45}
.modal-contenido-formula-constructor>form{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.campos-popup-formula{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px 22px;overflow-y:auto;overflow-x:hidden}
.campo-popup-formula-ancho{grid-column:1/-1}
.campos-popup-formula input,.campos-popup-formula textarea,.campos-popup-formula select{width:100%;min-width:0}
.modal-contenido-formula-constructor .acciones-modal{flex:0 0 auto;margin:0;padding:14px 22px;border-top:1px solid #e2e2e2;background:#fafafa}

/* El mismo constructor dentro del modal de El Gabinete */
.formula-gabinete-constructor{grid-template-columns:165px minmax(0,1fr);min-height:680px;margin-top:4px}
.formula-gabinete-constructor .area-trabajo-formula{padding:13px}
.formula-gabinete-constructor .barra-herramientas-formula{grid-template-columns:1fr}
.formula-gabinete-constructor .rotulo-herramientas-formula{padding:0 2px}
.formula-gabinete-constructor .botones-herramientas-formula{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}
.formula-gabinete-constructor .doble-editor-formula{grid-template-columns:1fr}
.formula-gabinete-constructor .cuadrante-edicion-formula textarea{min-height:135px}

@media(max-width:1180px){
  .cuerpo-herramienta-formulas{grid-template-columns:minmax(240px,270px) minmax(0,1fr)}
  .constructor-formula-avanzado{grid-template-columns:170px minmax(0,1fr)}
  .barra-herramientas-formula{grid-template-columns:1fr}
  .rotulo-herramientas-formula{padding:0 2px}
  .botones-herramientas-formula{grid-template-columns:repeat(auto-fit,minmax(116px,1fr))}
}
@media(max-width:900px){
  .herramienta-formulas-editor{left:62px;right:7px;top:7px;bottom:7px}
  .cabecera-herramienta-formulas{padding:14px 16px}
  .cabecera-herramienta-formulas p{display:none}
  .cuerpo-herramienta-formulas{grid-template-columns:minmax(220px,250px) minmax(0,1fr)}
  .constructor-formula-avanzado,.formula-gabinete-constructor{display:block;min-height:0;overflow:visible}
  .menu-categorias-formula{border-right:0;border-bottom:1px solid #ddd;overflow:visible}
  .encabezado-menu-formula{display:none}
  .menu-categorias-formula nav{flex-direction:row;padding:8px;overflow-x:auto;overflow-y:hidden}
  .menu-categorias-formula nav button{grid-template-columns:17px auto;min-width:max-content;min-height:36px;padding:7px 9px;white-space:nowrap}
  .menu-categorias-formula nav button svg:last-child{display:none}
  .area-trabajo-formula{padding:13px}
  .doble-editor-formula{grid-template-columns:1fr}
  .cuadrante-edicion-formula textarea{min-height:140px}
  .resultado-final-formula .previsualizacion-formula{min-height:130px}
}
@media(max-width:700px){
  .herramienta-formulas-editor{inset:4px;border-radius:16px}
  .cabecera-herramienta-formulas{align-items:flex-start;padding:12px}
  .cabecera-herramienta-formulas h2{font-size:24px}
  .acciones-cabecera-formulas{gap:6px}
  .acciones-cabecera-formulas .boton{padding:8px 9px}
  .acciones-cabecera-formulas .boton>span{display:none}
  .cuerpo-herramienta-formulas,.cuerpo-herramienta-formulas.biblioteca-colapsada{display:block;overflow-y:auto;overflow-x:hidden}
  .biblioteca-formulas{display:none;border-right:0;border-bottom:1px solid #ddd;max-height:none;min-height:280px}
  .cuerpo-herramienta-formulas:not(.biblioteca-colapsada) .biblioteca-formulas{display:grid;opacity:1;visibility:visible;pointer-events:auto;padding:13px}
  .editor-formula-mano{overflow:visible;padding:12px}
  .cuerpo-herramienta-formulas:not(.biblioteca-colapsada) .editor-formula-mano{display:none}
  .cuadrante-identidad-formula{padding:10px}
  .rejilla-formula-identidad{grid-template-columns:1fr}
  .area-trabajo-formula{padding:10px;gap:10px}
  .cabecera-area-formula{display:block}
  .estado-sincronizacion-formula{margin-top:8px}
  .barra-herramientas-formula{padding:9px}
  .botones-herramientas-formula{grid-template-columns:repeat(2,minmax(0,1fr))}
  .herramienta-formula-guiada{grid-template-columns:26px minmax(0,1fr)}
  .herramienta-formula-guiada small{display:none}
  .cuadrante-edicion-formula>span{grid-template-columns:17px minmax(0,1fr)}
  .cuadrante-edicion-formula>span em{display:none}
  .resultado-final-formula>header{display:block}
  .resultado-final-formula>header small{display:block;margin-top:4px;text-align:left}
  .acciones-formula-mano{flex-wrap:wrap}
  .acciones-formula-mano>span{width:100%;order:-1}
  .acciones-formula-mano .boton{flex:1}
  .campos-popup-formula{grid-template-columns:1fr;padding:15px}
  .campo-popup-formula-ancho{grid-column:auto}
}

/* ==========================================================
   Quijotext 3.3.2 · Ajuste de Fórmulas (menú Utilizar y ficha)
   ========================================================== */
.control-utilizar-formulas{position:relative}
[data-boton-utilizar-formulas]{gap:7px}
[data-boton-utilizar-formulas] .indicador-utilizar-formulas{width:14px;height:14px;transition:transform var(--transicion)}
[data-boton-utilizar-formulas][aria-expanded="true"] .indicador-utilizar-formulas{transform:rotate(180deg)}
.menu-utilizar-formulas{position:absolute;top:calc(100% + 9px);right:0;z-index:40;width:min(320px,calc(100vw - 28px));padding:7px;border:1px solid var(--borde);border-radius:17px;background:var(--superficie);box-shadow:0 22px 70px rgba(0,0,0,.18);display:none;flex-direction:column;gap:2px}
.menu-utilizar-formulas.visible{display:flex}
.menu-utilizar-formulas>button{width:100%;min-height:54px;padding:9px 10px;border:0;border-radius:11px;background:transparent;color:var(--texto);display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;text-align:left;cursor:pointer}
.menu-utilizar-formulas>button:hover:not(:disabled),.menu-utilizar-formulas>button:focus-visible{background:var(--superficie-secundaria);outline:none}
.menu-utilizar-formulas>button:disabled{opacity:.45;cursor:not-allowed}
.menu-utilizar-formulas>button>svg{width:18px;height:18px;justify-self:center}
.menu-utilizar-formulas>button>span{min-width:0;display:flex;flex-direction:column;gap:2px}
.menu-utilizar-formulas strong{font-size:12px}
.menu-utilizar-formulas small{color:var(--texto-secundario);font-size:9px;line-height:1.35}

.editor-formula-mano{gap:12px;padding:14px 16px 14px}
.acciones-formula-mano-solo-estado{position:sticky;bottom:0;z-index:2;justify-content:flex-start;padding:10px 0 4px;background:linear-gradient(180deg,rgba(255,255,255,.85),#fff 35%)}
.acciones-formula-mano-solo-estado>span{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid #e1e1e1;border-radius:12px;background:#fafafa;color:#555;font-size:12px;line-height:1.45}

.cabecera-area-formula{justify-content:flex-end;min-height:0}
.cabecera-area-formula>div{display:none}
.area-trabajo-formula{gap:10px;padding:14px;overflow:auto}
.constructor-formula-avanzado{min-height:0;height:100%}
.barra-herramientas-formula{padding:10px}
.rotulo-herramientas-formula{display:none}
.botones-herramientas-formula{grid-template-columns:repeat(auto-fit,minmax(122px,1fr))}
.doble-editor-formula{gap:10px}
.cuadrante-edicion-formula textarea{min-height:150px}
.resultado-final-formula .previsualizacion-formula{min-height:120px;padding:20px}

.lista-formulas-guardadas{display:flex;flex-direction:column;gap:10px}
.tarjeta-formula-guardada{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch;padding:10px;border:1px solid #dcdcdc;border-radius:16px;background:#fff}
.tarjeta-formula-guardada.activa{border-color:#111;box-shadow:0 0 0 1px #111,0 0 0 4px rgba(183,255,24,.18)}
.cuerpo-tarjeta-formula{min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;align-items:center;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.cuerpo-tarjeta-formula .miniatura-formula{display:grid;place-items:center;align-self:stretch;min-height:58px;border-radius:12px;background:#f4f4f4;border:1px solid #ececec}
.cuerpo-tarjeta-formula .miniatura-formula img{max-width:48px;max-height:44px;object-fit:contain}
.cuerpo-tarjeta-formula .miniatura-formula svg{width:24px;height:24px;color:#555}
.cuerpo-tarjeta-formula>span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}
.cuerpo-tarjeta-formula strong{font-size:16px;line-height:1.2}
.cuerpo-tarjeta-formula small,.cuerpo-tarjeta-formula em{white-space:normal;overflow-wrap:anywhere}
.cuerpo-tarjeta-formula small{color:#666;font-size:12px;line-height:1.4}
.cuerpo-tarjeta-formula em{color:#8a8a8a;font-size:11px;font-style:normal}
.acciones-tarjeta-formula{display:flex;flex-direction:column;gap:8px;justify-content:flex-end}
.boton-icono-claro{display:grid;place-items:center;width:38px;height:38px;border:1px solid #d8d8d8;border-radius:12px;background:#fafafa;color:#111;cursor:pointer}
.boton-icono-claro:hover,.boton-icono-claro:focus-visible{border-color:#111;background:#fff;outline:none}
.boton-icono-claro svg{width:17px;height:17px}
.boton-icono-claro.accion-peligro:hover,.boton-icono-claro.accion-peligro:focus-visible{border-color:#b13a3a;color:#8e1717;background:#fff6f6}

.modal-formula-guardar{position:fixed;inset:0;z-index:1910;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.48);backdrop-filter:blur(2px)}
.modal-formula-guardar.visible{display:flex}
.modal-contenido-formula-guardar{width:min(740px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid #e0e0e0;border-radius:22px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.24);overflow:hidden}
.modal-contenido-formula-guardar>header,.modal-contenido-formula-guardar>footer{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;background:#fff}
.modal-contenido-formula-guardar>header{border-bottom:1px solid #e9e9e9}
.modal-contenido-formula-guardar>header h2{margin:2px 0 0;font-family:var(--fuente-titulos,Georgia,serif);font-size:30px;line-height:1.05}
.modal-contenido-formula-guardar>header p{margin:8px 0 0;color:#666;font-size:12px;line-height:1.45;max-width:540px}
.cuerpo-modal-guardar-formula{display:flex;flex-direction:column;gap:14px;padding:18px 20px;overflow:auto;background:#fafafa}
.modal-contenido-formula-guardar>footer{justify-content:flex-end;border-top:1px solid #e9e9e9;background:#fcfcfc}
.modal-contenido-formula-guardar textarea,.modal-contenido-formula-guardar input{width:100%;min-width:0}
.modal-contenido-formula-guardar .campo-etiquetas-formula{margin:0;background:#fff}

@media(max-width:900px){
  .botones-herramientas-formula{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}
  .cuerpo-tarjeta-formula strong{font-size:15px}
}
@media(max-width:700px){
  .menu-utilizar-formulas{position:fixed;top:auto;left:10px;right:10px;bottom:10px;width:auto}
  .editor-formula-mano{padding:10px 10px 14px}
  .constructor-formula-avanzado{border-radius:16px}
  .area-trabajo-formula{padding:10px}
  .botones-herramientas-formula{grid-template-columns:repeat(2,minmax(0,1fr))}
  .resultado-final-formula .previsualizacion-formula{padding:16px}
  .tarjeta-formula-guardada{grid-template-columns:1fr}
  .acciones-tarjeta-formula{flex-direction:row;justify-content:flex-start}
  .modal-formula-guardar{padding:8px}
  .modal-contenido-formula-guardar{width:100%;max-height:calc(100vh - 16px);border-radius:18px}
  .modal-contenido-formula-guardar>header,.modal-contenido-formula-guardar>footer{padding:14px}
  .modal-contenido-formula-guardar>header h2{font-size:25px}
  .cuerpo-modal-guardar-formula{padding:14px}
}

/* ==========================================================
   Quijotext 3.3.3 · Ajuste de bloque de operaciones en Fórmulas
   ========================================================== */
.area-trabajo-formula{align-content:start}
.subtemas-formula{position:sticky;top:0;z-index:6;background:#fff;padding:6px 0 8px;margin:0 0 2px}
.barra-herramientas-formula{position:relative;z-index:2;display:block;padding:12px;border-radius:16px}
.botones-herramientas-formula{display:flex !important;flex-wrap:wrap;align-items:stretch;gap:10px;min-width:0}
.botones-herramientas-formula button{flex:0 1 180px;max-width:220px;min-height:46px}
.herramienta-formula-guiada{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;column-gap:10px;row-gap:2px;padding:10px 12px;text-align:left}
.herramienta-formula-guiada strong,.herramienta-formula-guiada small{white-space:normal}

@media(max-width:900px){
  .subtemas-formula{top:0}
  .botones-herramientas-formula button{flex:1 1 160px;max-width:none}
}
@media(max-width:700px){
  .subtemas-formula{position:sticky;top:0;padding-top:2px}
  .barra-herramientas-formula{padding:10px}
  .botones-herramientas-formula{display:flex !important;flex-wrap:wrap;gap:8px}
  .botones-herramientas-formula button{flex:1 1 calc(50% - 8px);min-width:0;max-width:none}
}

/* ==========================================================
   Quijotext 3.3.4 · Carril horizontal de herramientas
   ========================================================== */
.area-trabajo-formula{
    display:flex;
    flex-direction:column;
    align-content:normal;
    overflow-y:auto;
    overflow-x:hidden;
}
.subtemas-formula{
    position:relative !important;
    top:auto !important;
    z-index:1 !important;
    flex:0 0 auto;
    min-height:38px;
    margin:0;
    padding:0 0 8px;
    background:#fff;
    overflow-x:auto;
    overflow-y:hidden;
}
.barra-herramientas-formula{
    position:relative !important;
    z-index:1 !important;
    flex:0 0 auto;
    display:grid !important;
    grid-template-columns:38px minmax(0,1fr) 38px;
    align-items:center;
    gap:8px;
    min-width:0;
    margin:0;
    padding:10px;
    overflow:hidden;
}
.rotulo-herramientas-formula{display:none !important}
.carril-herramientas-formula{
    min-width:0;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scroll-behavior:smooth;
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.carril-herramientas-formula::-webkit-scrollbar{display:none}
.botones-herramientas-formula{
    display:flex !important;
    flex-flow:row nowrap !important;
    align-items:stretch;
    gap:10px;
    width:max-content;
    min-width:100%;
    padding:0;
}
.botones-herramientas-formula button{
    flex:0 0 auto !important;
    width:fit-content !important;
    min-width:max-content !important;
    max-width:none !important;
    min-height:46px;
    white-space:nowrap;
}
.herramienta-formula-directa{
    width:fit-content !important;
    padding:8px 14px 8px 10px;
}
.herramienta-formula-directa span{white-space:nowrap;overflow:visible}
.herramienta-formula-guiada{
    width:fit-content !important;
    min-width:max-content !important;
    grid-template-columns:30px max-content;
    padding:8px 14px 8px 10px;
}
.herramienta-formula-guiada span{width:max-content;max-width:250px}
.herramienta-formula-guiada b{white-space:nowrap}
.herramienta-formula-guiada small{max-width:230px;white-space:normal}
.flecha-herramientas-formula{
    display:grid;
    place-items:center;
    width:36px;
    height:42px;
    padding:0;
    border:1px solid #d5d5d5;
    border-radius:11px;
    background:#fff;
    color:#111;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    cursor:pointer;
    transition:opacity .15s ease,border-color .15s ease,background .15s ease;
}
.flecha-herramientas-formula.visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}
.flecha-herramientas-formula:hover:not(:disabled),
.flecha-herramientas-formula:focus-visible{
    border-color:#111;
    background:#b7ff18;
    outline:none;
}
.flecha-herramientas-formula:disabled{
    opacity:.28;
    cursor:default;
}
.flecha-herramientas-formula svg{width:18px;height:18px}
.constructor-formula-avanzado:not(.herramientas-formula-desbordadas) .barra-herramientas-formula{
    grid-template-columns:0 minmax(0,1fr) 0;
    gap:0;
}
.constructor-formula-avanzado:not(.herramientas-formula-desbordadas) .flecha-herramientas-formula{
    width:0;
    border:0;
}

@media(max-width:700px){
    .barra-herramientas-formula{
        grid-template-columns:34px minmax(0,1fr) 34px;
        gap:6px;
        padding:8px;
    }
    .flecha-herramientas-formula{width:32px;height:40px}
    .botones-herramientas-formula button{
        flex:0 0 auto !important;
        min-width:max-content !important;
        max-width:none !important;
    }
    .herramienta-formula-guiada small{display:none}
}


/* ==========================================================
   Quijotext 3.3.5 · Fórmulas: estado superior, autoguardado y scroll interno
   ========================================================== */
.acciones-formula-mano-solo-estado{display:none !important}
.acciones-cabecera-formulas{align-items:center;flex-wrap:wrap;gap:10px}
.chip-estado-formula{display:inline-flex;align-items:center;gap:6px;min-height:42px;max-width:min(460px,100%);padding:10px 14px;border:1px solid #e1e1e1;border-radius:14px;background:#fafafa;color:#555;font-size:12px;line-height:1.45}
.chip-estado-formula strong{color:#111}
.constructor-formula-avanzado{grid-template-columns:190px minmax(0,1fr);min-height:0;height:100%}
.area-trabajo-formula{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden !important}
.panel-edicion-derecha-formula{min-height:0;display:flex;flex-direction:column;gap:12px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:4px}
.carril-herramientas-formula{padding-bottom:2px}
.botones-herramientas-formula{min-width:max-content !important}
.botones-herramientas-formula button,.herramienta-formula-directa,.herramienta-formula-guiada{width:fit-content !important;min-width:fit-content !important;max-width:none !important}
.barra-herramientas-formula{margin-bottom:2px}
.subtemas-formula{padding-bottom:6px;margin-bottom:0}
.cabecera-area-formula,.estado-sincronizacion-formula{display:none !important}

@media(max-width:900px){
  .chip-estado-formula{order:3;max-width:100%;flex:1 1 100%}
}
@media(max-width:700px){
  .chip-estado-formula{min-height:auto;padding:9px 12px;font-size:11px}
  .panel-edicion-derecha-formula{padding-right:0}
}

/* ==========================================================
   Quijotext 3.3.6 · Fórmulas: cabecera, borrador y scroll interno
   ========================================================== */
.cabecera-herramienta-formulas{
    display:grid;
    grid-template-columns:minmax(280px,1fr) auto;
    align-items:center;
    gap:20px;
    overflow:visible;
}
.cabecera-herramienta-formulas>div:first-child{min-width:0}
.cabecera-herramienta-formulas>div:first-child p{max-width:620px}
.acciones-cabecera-formulas{
    display:flex;
    flex-flow:row nowrap !important;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    min-width:max-content;
    overflow:visible;
}
.acciones-cabecera-formulas>*{flex:0 0 auto}
.cerrar-formulas-cabecera{margin-left:2px}
.chip-estado-formula{
    order:0;
    min-height:44px;
    max-width:250px;
    padding:10px 13px;
    white-space:nowrap;
}
.chip-estado-formula>svg{width:16px;height:16px;flex:0 0 auto}
.chip-estado-formula>span{overflow:hidden;text-overflow:ellipsis}
.chip-estado-formula[data-estado="guardando"]{border-color:#d8c27c;background:#fffbed;color:#6f5900}
.chip-estado-formula[data-estado="guardando"]>svg{animation:girar-formula .8s linear infinite}
.chip-estado-formula[data-estado="guardado-temporal"]{border-color:#b9d99f;background:#f5ffef;color:#285e00}
.chip-estado-formula[data-estado="guardado-final"]{border-color:#111;background:#111;color:#fff}
.chip-estado-formula[data-estado="error"]{border-color:#d88d8d;background:#fff5f5;color:#8b1818}

.editor-formula-mano{
    height:100%;
    min-height:0;
    overflow:hidden !important;
    padding:14px 16px;
}
.constructor-formula-avanzado{
    height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
}
.area-trabajo-formula{
    height:100%;
    min-height:0 !important;
    overflow:hidden !important;
}
.panel-edicion-derecha-formula{
    flex:1 1 auto;
    min-height:0;
    max-height:100%;
    overflow-y:scroll !important;
    overflow-x:hidden !important;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    overscroll-behavior:contain;
    padding:0 8px 14px 0;
}
.panel-edicion-derecha-formula::-webkit-scrollbar{width:10px}
.panel-edicion-derecha-formula::-webkit-scrollbar-thumb{background:#c8c8c8;border-radius:999px;border:2px solid #fff}
.panel-edicion-derecha-formula::-webkit-scrollbar-track{background:transparent}
.doble-editor-formula,.resultado-final-formula{flex:0 0 auto}
.resultado-final-formula{min-height:0}
.resultado-final-formula .previsualizacion-formula{
    min-height:calc(7 * 1.6em + 52px) !important;
    height:auto !important;
    max-height:none !important;
    padding:24px !important;
}

.sidebar-editor-global .acceso-formulas-editor.activo{
    background:#050505 !important;
    color:#fff !important;
}

@media(max-width:1180px){
    .cabecera-herramienta-formulas{grid-template-columns:minmax(220px,1fr) auto;gap:12px}
    .cabecera-herramienta-formulas>div:first-child p{display:none}
    .chip-estado-formula{max-width:190px}
}
@media(max-width:900px){
    .cabecera-herramienta-formulas{display:flex;align-items:center;overflow-x:auto;overflow-y:visible}
    .cabecera-herramienta-formulas>div:first-child{margin-right:auto;min-width:170px}
    .acciones-cabecera-formulas{order:2;min-width:max-content}
    .chip-estado-formula{order:0;max-width:180px;flex:0 0 auto}
    .constructor-formula-avanzado,.formula-gabinete-constructor{height:auto !important;min-height:0 !important;overflow:visible !important}
    .area-trabajo-formula{height:auto;overflow:visible !important}
    .panel-edicion-derecha-formula{max-height:62vh;overflow-y:scroll !important;padding-right:5px}
}
@media(max-width:700px){
    .cabecera-herramienta-formulas{display:grid;grid-template-columns:minmax(0,1fr) auto;overflow:visible}
    .acciones-cabecera-formulas{grid-column:1/-1;width:100%;overflow-x:auto;justify-content:flex-start;padding-bottom:2px}
    .acciones-cabecera-formulas .boton>span{display:inline}
    .chip-estado-formula{max-width:170px;min-height:40px}
    .panel-edicion-derecha-formula{max-height:66vh;padding-right:3px}
    .resultado-final-formula .previsualizacion-formula{min-height:calc(7 * 1.6em + 44px) !important;padding:18px !important}
}
.constructor-formula-avanzado{flex:1 1 auto}

/* ==========================================================
   Quijotext 3.3.7 · Integración editorial de figuras y fórmulas
   ========================================================== */
.formula-editor{position:relative}
.editar-formula-bloque{
    position:absolute;
    top:10px;
    right:10px;
    z-index:5;
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    padding:0;
    border:1px solid rgba(255,255,255,.55);
    border-radius:11px;
    background:rgba(0,0,0,.78);
    color:#fff;
    cursor:pointer;
    opacity:0;
    transform:translateY(-4px);
    transition:opacity var(--transicion),transform var(--transicion),background var(--transicion);
}
.formula-editor:hover .editar-formula-bloque,
.editar-formula-bloque:focus-visible{opacity:1;transform:none}
.editar-formula-bloque:hover{background:#000}
.editar-formula-bloque svg{width:17px;height:17px}

.imagen-editor.imagen-desde-lienzo figcaption,
.figura-lienzo-documento figcaption{display:flex;flex-direction:column;align-items:center;gap:4px}
.imagen-editor.imagen-desde-lienzo figcaption>span,
.figura-lienzo-documento figcaption{font-style:normal}
.imagen-editor.imagen-desde-lienzo figcaption strong,
.figura-lienzo-documento figcaption strong{font-weight:800}
.imagen-editor.imagen-desde-lienzo figcaption small,
.figura-lienzo-documento figcaption small{display:block;margin-top:2px;color:var(--texto-secundario,#666);font-size:.9em;font-style:normal;line-height:1.45}
.documento-previsualizado[data-norma-editorial] .flujo-documento > figure.figura-lienzo-documento figcaption::before{content:none!important}

.bloque-editor.bloque-insertado-destacado{
    animation:qtx-destacar-bloque-insertado 2.6s ease both;
}
@keyframes qtx-destacar-bloque-insertado{
    0%,18%{box-shadow:0 0 0 4px rgba(183,255,24,.82),0 16px 40px rgba(0,0,0,.12);background:#f8ffe8}
    100%{box-shadow:none;background:transparent}
}

.resultado-final-formula .previsualizacion-formula mjx-container{
    font-size:190%!important;
    line-height:1.25!important;
}
.resultado-final-formula .previsualizacion-formula mjx-container[jax="SVG"]>svg{
    min-height:1.35em;
}

.menu-filtro-componentes{
    position:fixed!important;
    z-index:4200!important;
    isolation:isolate;
}

.contenedor-lienzo-editor[aria-hidden="true"],
.contenedor-lienzo-editor[aria-hidden="true"] iframe{
    pointer-events:none!important;
}

@media(max-width:700px){
    .editar-formula-bloque{opacity:1;transform:none;top:7px;right:7px;width:34px;height:34px}
    .resultado-final-formula .previsualizacion-formula mjx-container{font-size:165%!important}
}

/* ==========================================================
   Quijotext 3.3.8 · Tickets, Fichas y estados homogéneos
   ========================================================== */

/* Modal de Tickets del superadministrador */
.modal-ticket-admin-redisenado{padding:16px}
.modal-ticket-admin-panel{
    width:min(1180px,calc(100vw - 32px));
    height:min(900px,calc(100dvh - 32px));
    max-width:none!important;
    max-height:none!important;
    margin:0;
    padding:0!important;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    overflow:hidden!important;
    border-radius:24px;
}
.cabecera-modal-ticket-admin{
    min-width:0;
    padding:22px 24px 18px;
    border-bottom:1px solid var(--borde);
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    background:var(--superficie);
}
.identidad-modal-ticket-admin{min-width:0}
.identidad-modal-ticket-admin h2{margin:5px 0 7px;font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.08;overflow-wrap:anywhere}
.identidad-modal-ticket-admin p{margin:0;color:var(--texto-secundario);font-size:12px;line-height:1.45}
.contenido-modal-ticket-admin{
    min-height:0;
    padding:18px;
    display:grid;
    grid-template-columns:250px minmax(0,1fr);
    gap:16px;
    overflow:hidden;
    background:var(--superficie-secundaria);
}
.modal-ticket-admin-panel .ficha-usuario-ticket-admin{
    grid-row:auto;
    min-height:0;
    align-self:stretch;
    padding:18px;
    border-radius:18px;
    overflow:auto;
    background:var(--superficie);
}
.columna-conversacion-ticket-admin{
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-rows:minmax(210px,1fr) auto;
    gap:14px;
    overflow:hidden;
}
.historial-ticket-admin-redisenado{
    min-height:0;
    padding:12px;
    border:1px solid var(--borde);
    border-radius:18px;
    background:var(--superficie);
    overflow-y:auto;
    overflow-x:hidden;
}
.formulario-respuesta-ticket-admin{
    min-width:0;
    max-height:46dvh;
    padding:14px;
    border:1px solid var(--borde);
    border-radius:18px;
    background:var(--superficie);
    display:grid;
    grid-template-rows:auto auto auto auto;
    gap:11px;
    overflow-y:auto;
}
.campo-respuesta-ticket-admin textarea{min-height:112px;max-height:230px;resize:vertical}
.controles-respuesta-ticket-admin{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(180px,.65fr);gap:12px;align-items:end}
.controles-respuesta-ticket-admin .selector-archivo-ticket{min-height:44px;justify-content:center}
.acciones-respuesta-ticket-admin{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:-14px;padding-top:10px;background:linear-gradient(180deg,rgba(255,255,255,.8),var(--superficie) 34%)}
.acciones-respuesta-ticket-admin .boton{min-height:44px}

/* Estados sutiles de Fórmulas y El Lienzo */
.estado-archivo-formula,.estado-archivo-lienzo{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:auto!important;
    max-width:220px;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:var(--texto-secundario)!important;
    font-size:11px;
    line-height:1.3;
    white-space:nowrap;
}
.estado-archivo-formula>svg,.estado-archivo-lienzo>svg{width:15px;height:15px;flex:0 0 auto}
.estado-archivo-formula[data-estado="guardando"],.estado-archivo-lienzo.guardando{color:#6d5800!important}
.estado-archivo-formula[data-estado="guardando"]>svg,.estado-archivo-lienzo.guardando>svg{animation:girar-formula .8s linear infinite}
.estado-archivo-formula[data-estado="guardado-final"],.estado-archivo-lienzo.en-gabinete{color:#285e00!important}
.estado-archivo-formula[data-estado="error"],.estado-archivo-lienzo.error{color:#8b1818!important}

/* Archivo de fichas de Fórmulas */
.cabecera-biblioteca-formulas>div:first-child{min-width:0}
.cabecera-biblioteca-formulas h3{margin:0 0 4px;font-size:28px}
.cabecera-biblioteca-formulas p{margin:0;color:var(--texto-secundario);font-size:11px;line-height:1.4}
.acciones-cabecera-biblioteca-formulas{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.estado-ficha-formula,.estado-ficha-lienzo{
    display:inline-flex!important;
    align-items:center;
    gap:5px;
    width:fit-content;
    margin-top:3px;
    padding:4px 7px;
    border-radius:999px;
    font-size:9px!important;
    line-height:1;
    font-weight:800;
    white-space:nowrap!important;
    overflow:visible!important;
}
.estado-ficha-formula svg,.estado-ficha-lienzo svg{width:12px;height:12px}
.estado-ficha-formula.gabinete,.estado-ficha-lienzo.gabinete{background:#efffdf;color:#285e00}
.estado-ficha-formula.temporal,.estado-ficha-lienzo.temporal{background:#f0f0f0;color:#666}

/* Modal de retirada de fórmulas */
.modal-retirada-formula{
    position:fixed;
    inset:0;
    z-index:1920;
    display:none;
    place-items:center;
    padding:18px;
    background:rgba(0,0,0,.48);
    backdrop-filter:blur(2px);
}
.modal-retirada-formula.visible{display:grid}
.modal-retirada-formula[hidden]{display:none!important}
.modal-retirada-formula>section{
    width:min(620px,100%);
    border:1px solid var(--borde);
    border-radius:24px;
    background:var(--superficie);
    box-shadow:0 28px 90px rgba(0,0,0,.24);
    overflow:hidden;
}
.modal-retirada-formula header{padding:22px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.modal-retirada-formula h2{margin:5px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:30px}
.modal-retirada-formula>section>p{margin:0;padding:0 24px 22px;color:var(--texto-secundario);line-height:1.65}
.modal-retirada-formula footer{padding:16px 24px 22px;border-top:1px solid var(--borde);display:grid;grid-template-columns:1fr 1.55fr;gap:10px}
.modal-retirada-formula footer .boton{min-height:54px;justify-content:center;text-align:center;white-space:normal}
.modal-retirada-formula [data-retirar-formula-temporal]{grid-column:1/-1}
.boton-destructivo{border-color:#8e1d1d!important;background:#8e1d1d!important;color:#fff!important}
.boton-destructivo:hover{background:#741414!important}

/* Resultado final de Fórmulas: tamaño editorial real */
.resultado-final-formula .previsualizacion-formula{
    min-height:300px!important;
    padding:38px 28px!important;
    font-size:44px!important;
}
.resultado-final-formula .previsualizacion-formula mjx-container{
    font-size:44px!important;
    line-height:1.3!important;
    margin:0 auto!important;
    overflow:visible!important;
}
.resultado-final-formula .previsualizacion-formula mjx-container[jax="SVG"]>svg{
    min-height:1.4em!important;
    width:auto!important;
    max-width:none!important;
    overflow:visible!important;
}

/* Cabecera y archivo de fichas de El Lienzo */
.cabecera-lienzo{grid-template-columns:minmax(180px,1fr) auto}
.acciones-cabecera-lienzo{justify-content:flex-end;flex-wrap:nowrap}
.catalogo-lienzos>header{align-items:center}
.catalogo-lienzos>header>div:first-child{min-width:0}
.catalogo-lienzos>header h2{margin:0 0 4px;font-size:28px}
.catalogo-lienzos>header p{margin:0;color:var(--texto-secundario);font-size:11px;line-height:1.4}
.lista-catalogo-lienzos article{grid-template-columns:72px minmax(0,1fr) 38px;padding:11px;border-radius:17px}
.lista-catalogo-lienzos article>div:nth-child(2){gap:4px}
.lista-catalogo-lienzos article>div:nth-child(2)>small{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.35}
.acciones-ficha-catalogo-lienzo{gap:6px}
.acciones-ficha-catalogo-lienzo button{width:36px!important;height:36px!important;border:1px solid var(--borde)!important;border-radius:11px!important;background:var(--superficie-secundaria)!important}
.acciones-ficha-catalogo-lienzo button.en-gabinete{background:#efffdf!important;color:#285e00!important}

@media(max-width:900px){
    .modal-ticket-admin-panel{width:calc(100vw - 18px);height:calc(100dvh - 18px);border-radius:18px}
    .contenido-modal-ticket-admin{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);padding:12px}
    .modal-ticket-admin-panel .ficha-usuario-ticket-admin{max-height:120px}
    .columna-conversacion-ticket-admin{grid-template-rows:minmax(180px,1fr) auto}
    .formulario-respuesta-ticket-admin{max-height:48dvh}
    .controles-respuesta-ticket-admin{grid-template-columns:1fr}
    .estado-archivo-formula,.estado-archivo-lienzo{max-width:170px}
    .cabecera-lienzo{overflow-x:auto}
}
@media(max-width:700px){
    .cabecera-modal-ticket-admin{padding:16px}
    .identidad-modal-ticket-admin h2{font-size:24px}
    .contenido-modal-ticket-admin{gap:10px}
    .formulario-respuesta-ticket-admin{padding:11px}
    .acciones-respuesta-ticket-admin{flex-direction:column-reverse;align-items:stretch}
    .acciones-respuesta-ticket-admin .boton{width:100%;justify-content:center}
    .modal-retirada-formula footer{grid-template-columns:1fr}
    .modal-retirada-formula [data-retirar-formula-temporal]{grid-column:auto}
    .resultado-final-formula .previsualizacion-formula{min-height:250px!important;font-size:34px!important;padding:28px 18px!important}
    .resultado-final-formula .previsualizacion-formula mjx-container{font-size:34px!important}
    .acciones-cabecera-lienzo{min-width:max-content}
}

/* ==========================================================
   Quijotext 3.3.9 · Ajustes finales de Fórmulas, Lienzo y planes
   ========================================================== */
.resultado-final-formula .previsualizacion-formula{
    min-height:230px!important;
    padding:26px 24px!important;
    overflow:hidden!important;
    white-space:normal!important;
    font-size:16px!important;
    line-height:1.45!important;
}
.resultado-final-formula .previsualizacion-formula .formula-mathjax{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    white-space:normal;
}
.resultado-final-formula .previsualizacion-formula mjx-container{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 auto!important;
    overflow:visible!important;
    font-size:135%!important;
    line-height:1.35!important;
    text-align:center!important;
}
.resultado-final-formula .previsualizacion-formula mjx-container[jax="SVG"]>svg{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0 auto!important;
    overflow:visible!important;
}
.resultado-final-formula .previsualizacion-formula.formula-multilinea mjx-container{
    font-size:125%!important;
}

/* El Lienzo usa la misma jerarquía de cabecera que Fórmulas. */
.identidad-lienzo .titulo-herramienta-lienzo{min-width:220px;display:flex;flex-direction:column;gap:3px}
.identidad-lienzo .titulo-herramienta-lienzo h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1}
.identidad-lienzo .titulo-herramienta-lienzo p{margin:3px 0 0;color:var(--texto-secundario);font-size:12px;line-height:1.4}
.boton-fichas-lienzo.boton-toggle-biblioteca-formulas{gap:8px}
.boton-fichas-lienzo.boton-toggle-biblioteca-formulas b{display:inline-grid}
.boton-fichas-lienzo.boton-toggle-biblioteca-formulas.activo{border-color:#111;background:#f3f3f3}

/* Una insignia de plan oculta nunca debe conservar espacio. */
[data-insignia-plan][hidden],.marca-pro-sidebar[hidden],.insignia-pro-global[hidden]{display:none!important}

@media(max-width:900px){
    .identidad-lienzo .titulo-herramienta-lienzo p{display:none}
    .identidad-lienzo .titulo-herramienta-lienzo h1{font-size:25px}
}
@media(max-width:700px){
    .resultado-final-formula .previsualizacion-formula{min-height:200px!important;padding:20px 16px!important}
    .resultado-final-formula .previsualizacion-formula mjx-container{font-size:120%!important}
    .identidad-lienzo .titulo-herramienta-lienzo{min-width:150px}
}

/* ==========================================================
   Quijotext 3.4.0 · Planes, buscador de Fórmulas y Gabinete
   ========================================================== */
.boton-eliminar-plan-admin{color:#9b1c1c;border-color:#e2b4b4;background:#fff7f7}
.boton-eliminar-plan-admin:hover,.boton-eliminar-plan-admin:focus-visible{border-color:#9b1c1c;background:#fff0f0;outline:none}
.modal-eliminar-plan-contenido{width:min(620px,calc(100vw - 28px));padding:0;overflow:hidden}
.modal-eliminar-plan-contenido>form{display:flex;flex-direction:column;min-height:0}
.contenido-eliminar-plan{display:flex;flex-direction:column;gap:16px;padding:20px 22px;overflow:auto}
.aviso-eliminar-plan{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:15px;border:1px solid #e4b3b3;border-radius:14px;background:#fff7f7;color:#711313}
.aviso-eliminar-plan>svg{width:22px;height:22px;margin-top:1px}
.aviso-eliminar-plan strong{display:block;margin-bottom:4px}
.aviso-eliminar-plan p{margin:0;color:#7c4343;font-size:12px;line-height:1.5}
.resumen-eliminar-plan{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria)}
.resumen-eliminar-plan span{font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--texto-secundario)}
.resumen-eliminar-plan strong{font-family:var(--fuente-titulos,Georgia,serif);font-size:23px}
.resumen-eliminar-plan small{color:var(--texto-secundario)}
.boton-peligro{border-color:#8f1d1d!important;background:#8f1d1d!important;color:#fff!important}
.boton-peligro:hover,.boton-peligro:focus-visible{background:#721414!important;border-color:#721414!important}

.menu-categorias-formula{position:relative}
.buscador-catalogo-formulas{display:grid;grid-template-columns:18px minmax(0,1fr) 26px;align-items:center;gap:7px;margin:10px 9px 5px;padding:7px 8px;border:1px solid #d6d6d6;border-radius:11px;background:#fff}
.buscador-catalogo-formulas>svg{width:16px;height:16px;color:#777}
.buscador-catalogo-formulas input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#111;font:inherit;font-size:11px}
.buscador-catalogo-formulas button{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:7px;background:transparent;color:#666;cursor:pointer}
.buscador-catalogo-formulas button:hover{background:#f0f0f0;color:#111}
.buscador-catalogo-formulas button svg{width:14px;height:14px}
.resultados-busqueda-formulas{position:absolute;left:9px;right:9px;top:104px;z-index:25;max-height:min(420px,55vh);padding:6px;border:1px solid #d7d7d7;border-radius:13px;background:#fff;box-shadow:0 18px 48px rgba(0,0,0,.18);overflow:auto}
.resultados-busqueda-formulas>button{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:8px;width:100%;padding:8px;border:0;border-radius:9px;background:transparent;color:#111;text-align:left;cursor:pointer}
.resultados-busqueda-formulas>button:hover,.resultados-busqueda-formulas>button:focus-visible{background:#f3f3f3;outline:none}
.resultados-busqueda-formulas>button>span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}
.resultados-busqueda-formulas strong{font-size:11px;overflow-wrap:anywhere}
.resultados-busqueda-formulas small{font-size:9px;color:#777;overflow-wrap:anywhere}
.resultados-busqueda-formulas>button>svg{width:14px;height:14px;color:#777}
.simbolo-resultado-formula{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#f1f1f1;font-family:Georgia,serif;font-size:17px}
.simbolo-resultado-formula svg{width:16px;height:16px}
.sin-resultados-busqueda-formulas{display:flex;align-items:center;gap:8px;padding:12px;color:#777;font-size:10px;line-height:1.4}
.sin-resultados-busqueda-formulas svg{width:17px;height:17px;flex:0 0 auto}
.herramienta-formula-encontrada{border-color:#111!important;box-shadow:0 0 0 3px rgba(183,255,24,.55)!important;animation:formula-encontrada-pulso .7s ease 2}
@keyframes formula-encontrada-pulso{50%{transform:translateY(-2px)}}

.resumen-gabinete-editor button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--texto-secundario);cursor:pointer}
.resumen-gabinete-editor button:hover,.resumen-gabinete-editor button:focus-visible{background:var(--superficie-secundaria);color:var(--texto);outline:none}
.resumen-gabinete-editor button svg{width:15px;height:15px}
.resumen-gabinete-editor button.recargando svg{animation:girar-gabinete-editor .75s linear infinite}
@keyframes girar-gabinete-editor{to{transform:rotate(360deg)}}
.registro-bibliografia-config.fuente-verificada{border-color:#9ac66a;box-shadow:0 0 0 2px rgba(183,255,24,.12)}

@media(max-width:900px){
  .resultados-busqueda-formulas{position:fixed;left:76px;right:18px;top:110px;max-height:48vh}
}
@media(max-width:700px){
  .modal-eliminar-plan-contenido{width:100%;max-height:calc(100vh - 16px)}
  .contenido-eliminar-plan{padding:15px}
  .resultados-busqueda-formulas{left:10px;right:10px;top:128px}
}


/* Quijotext 3.4.1 · Fuente verificada sin envío accidental */
.boton-fuente-verificada{
    width:100%;
    margin-top:22px;
    padding:0;
    border:0;
    background:transparent;
    color:var(--texto);
    font:inherit;
    text-align:left;
    appearance:none;
}
.boton-fuente-verificada>span{flex:0 0 42px;width:42px;height:24px;border:1px solid var(--borde);border-radius:999px;background:var(--superficie-secundaria);position:relative;transition:background var(--transicion),border-color var(--transicion)}
.boton-fuente-verificada>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)}
.boton-fuente-verificada[aria-pressed="true"]>span{background:var(--texto);border-color:var(--texto)}
.boton-fuente-verificada[aria-pressed="true"]>span::after{transform:translateX(18px);background:var(--superficie)}
.boton-fuente-verificada:focus-visible{outline:2px solid var(--texto);outline-offset:6px;border-radius:8px}

/* ==========================================================
   Quijotext 3.4.2 · Confirmaciones de Obras
   ========================================================== */
.accion-eliminar-obra{color:#8f1d1d}
.accion-eliminar-obra:hover,.accion-eliminar-obra:focus-visible{border-color:#b42323;background:#fff5f5;color:#7d1414}
.menu-flotante [data-eliminar-proyecto]{color:#8f1d1d}
.menu-flotante [data-eliminar-proyecto]:hover{background:#fff3f3}

.modal-decision-obra{padding:0;overflow:hidden}
.modal-decision-obra>.modal-cabecera{margin:0;padding:22px 24px;border-bottom:1px solid var(--borde);background:var(--superficie)}
.cuerpo-decision-obra{display:grid;grid-template-columns:54px minmax(0,1fr);gap:15px;align-items:start;padding:22px 24px 8px}
.icono-decision-obra{display:grid;place-items:center;width:52px;height:52px;border:1px solid #d8d8d8;border-radius:15px;background:#f7f7f7;color:#111}
.icono-decision-obra svg{width:23px;height:23px}
.icono-decision-obra.destructivo{border-color:#e2b3b3;background:#fff3f3;color:#8f1d1d}
.cuerpo-decision-obra strong{display:block;margin:2px 0 7px;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.cuerpo-decision-obra p{margin:0;color:var(--texto-secundario);font-size:13px;line-height:1.65}
.confirmacion-escrita-obra{margin:18px 24px 4px;padding:15px;border:1px solid #e3c3c3;border-radius:14px;background:#fff8f8}
.confirmacion-escrita-obra>span{display:block;margin-bottom:8px}
.confirmacion-escrita-obra input{width:100%;min-height:48px;border-color:#cf8e8e;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.confirmacion-escrita-obra input:focus{border-color:#8f1d1d;box-shadow:0 0 0 3px rgba(143,29,29,.1)}
.acciones-modal-decision-obra{margin-top:18px;padding:16px 24px 20px;border-top:1px solid var(--borde);background:#fafafa}
.acciones-modal-decision-obra .boton{min-height:44px}
.acciones-modal-decision-obra .boton svg{width:17px;height:17px}

@media(max-width:620px){
  .cuerpo-decision-obra{grid-template-columns:1fr;padding:18px 18px 6px}
  .icono-decision-obra{width:46px;height:46px}
  .confirmacion-escrita-obra{margin:16px 18px 2px}
  .acciones-modal-decision-obra{padding:14px 18px 18px;flex-direction:column-reverse}
  .acciones-modal-decision-obra .boton{width:100%}
}

/* ==========================================================
   Quijotext 3.4.3 · Menú Publicar en Obras
   ========================================================== */
.control-publicacion-obra{position:relative;display:inline-flex;flex:0 0 auto;min-width:0}
.control-publicacion-obra>.accion-publicacion{position:relative}
.indicador-menu-publicacion{width:12px!important;height:12px!important;transition:transform var(--transicion)}
.control-publicacion-obra.abierto .indicador-menu-publicacion{transform:rotate(180deg)}
.menu-publicacion-obra{position:absolute;top:calc(100% + 8px);right:0;z-index:90;width:min(292px,calc(100vw - 28px));padding:7px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie);box-shadow:0 22px 65px rgba(0,0,0,.2);display:none;flex-direction:column;gap:2px}
.control-publicacion-obra.abierto .menu-publicacion-obra{display:flex}
.menu-publicacion-obra>button{width:100%;min-height:54px;padding:9px 10px;border:0;border-radius:11px;background:transparent;color:var(--texto);display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;text-align:left;cursor:pointer;font:inherit}
.menu-publicacion-obra>button:hover:not(:disabled),.menu-publicacion-obra>button:focus-visible{background:var(--superficie-secundaria);outline:none}
.menu-publicacion-obra>button:disabled{opacity:.38;cursor:not-allowed}
.menu-publicacion-obra>button>svg{width:18px;height:18px;justify-self:center}
.menu-publicacion-obra>button>span{min-width:0;display:flex;flex-direction:column;gap:2px}
.menu-publicacion-obra strong{font-size:12px}
.menu-publicacion-obra small{color:var(--texto-secundario);font-size:9px;line-height:1.35}
.rejilla-proyectos.vista-cuadricula .control-publicacion-obra>.accion-obra-rapida{width:38px;height:38px;min-height:38px;flex:0 0 38px;padding:0}
.rejilla-proyectos.vista-cuadricula .control-publicacion-obra>.accion-obra-rapida>span{display:none}
.rejilla-proyectos.vista-cuadricula .control-publicacion-obra .indicador-menu-publicacion{position:absolute;right:2px;bottom:2px;width:9px!important;height:9px!important}
.rejilla-proyectos.vista-cuadricula .menu-publicacion-obra{right:auto;left:0}
@media(max-width:700px){
  .menu-publicacion-obra{position:fixed;top:auto;right:10px!important;left:10px!important;bottom:10px;width:auto}
}

/* ==========================================================
   Quijotext 3.4.4 · navegación móvil y registros compactos
   ========================================================== */
.boton-detalles-registro-movil,
.acciones-estante-movil{display:none}

/* En Obras vuelve a existir una única acción editorial. */
.accion-publicar-compartir-directa{white-space:nowrap}
.rejilla-proyectos.vista-cuadricula .accion-publicar-compartir-directa,
.rejilla-proyectos.vista-lista .accion-publicar-compartir-directa{
    width:auto!important;
    min-width:0;
    flex:1 1 auto!important;
    padding-inline:10px!important;
}
.rejilla-proyectos .accion-publicar-compartir-directa>span{display:inline!important;white-space:nowrap}

@media(max-width:900px){
    /* Perfil fijo + carril navegable. Nunca salta a una segunda línea. */
    .navegacion-movil{
        display:flex!important;
        align-items:stretch;
        grid-template-columns:none!important;
        gap:6px!important;
        min-width:0;
        min-height:66px;
        padding:6px!important;
        overflow:hidden;
    }
    .perfil-movil-fijo{
        position:relative;
        flex:0 0 52px;
        width:52px;
        min-width:52px!important;
        padding:4px!important;
        border:1px solid var(--borde);
        border-radius:13px!important;
        background:var(--superficie-secundaria);
        display:grid!important;
        place-items:center;
        overflow:hidden;
    }
    .perfil-movil-fijo::after{
        content:"";
        position:absolute;
        top:7px;
        right:-4px;
        bottom:7px;
        width:1px;
        background:var(--borde);
    }
    .perfil-movil-fijo img,
    .avatar-inicial-movil{
        width:38px;
        height:38px;
        border-radius:50%;
        object-fit:cover;
        display:grid;
        place-items:center;
    }
    .avatar-inicial-movil{background:var(--texto);color:var(--superficie);font-weight:900;font-size:15px}
    .perfil-movil-fijo.activo{box-shadow:inset 0 0 0 2px var(--texto)}
    .navegacion-movil-carril{
        min-width:0;
        flex:1 1 auto;
        display:flex;
        align-items:stretch;
        gap:4px;
        overflow-x:auto;
        overflow-y:hidden;
        overscroll-behavior-x:contain;
        scrollbar-width:none;
        scroll-snap-type:x proximity;
        -webkit-overflow-scrolling:touch;
    }
    .navegacion-movil-carril::-webkit-scrollbar{display:none}
    .navegacion-movil-carril>a,
    .navegacion-movil-carril>button{
        position:relative;
        flex:0 0 64px;
        width:64px;
        min-width:64px!important;
        max-width:64px;
        padding:7px 3px!important;
        scroll-snap-align:start;
        border-radius:12px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:4px;
        font-size:8.5px!important;
        line-height:1;
        white-space:nowrap;
    }
    .navegacion-movil-carril>a>span,
    .navegacion-movil-carril>button>span{
        display:block;
        max-width:58px!important;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .navegacion-movil-carril svg{width:19px;height:19px}
    .alerta-novedad-menu-movil{
        position:absolute;
        top:5px;
        right:12px;
        width:10px;
        height:10px;
        border:2px solid var(--superficie);
        border-radius:50%;
        background:var(--verde-pro,#C7FF2F);
        box-shadow:0 0 0 1px rgba(0,0,0,.16),0 0 10px color-mix(in srgb,var(--verde-pro,#C7FF2F) 55%,transparent);
    }
    .alerta-novedad-menu-movil.oculto{display:none!important}

    /* Obras: el botón largo absorbe el espacio disponible. */
    .rejilla-proyectos .acciones-obra-tarjeta{display:grid!important;grid-template-columns:38px minmax(0,1fr) 38px;gap:7px}
    .rejilla-proyectos .accion-publicar-compartir-directa{width:100%!important;min-width:0!important;justify-content:center;font-size:9px!important}
    .rejilla-proyectos .accion-publicar-compartir-directa>span{display:inline!important;overflow:hidden;text-overflow:ellipsis}

    /* El Cerrajero como lista compacta tipo Obras. */
    .contenido-cerrajero{padding-inline:14px}
    .catalogo-llaves{gap:9px}
    .tarjeta-llave{
        padding:12px;
        border-radius:15px;
        gap:9px;
        box-shadow:none;
    }
    .fila-principal-llave{grid-template-columns:minmax(0,1fr) 38px;gap:10px}
    .identidad-llave{gap:10px}
    .icono-llave{width:40px;height:44px;flex-basis:40px;border-radius:11px}
    .identidad-llave h2{font-size:17px;margin-top:2px}
    .identidad-llave p{margin:2px 0 0;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .insights-llave{grid-column:1/-1;grid-row:2;justify-content:flex-start;gap:5px;padding-left:50px}
    .insights-llave>span{min-height:25px;padding:4px 7px;font-size:8px}
    .insights-llave>span:nth-child(n+3){display:none}
    .fila-detalles-llave{display:none!important}
    .boton-detalles-registro-movil{
        width:max-content;
        min-height:32px;
        padding:6px 10px;
        border:1px solid var(--borde);
        border-radius:10px;
        background:var(--superficie-secundaria);
        color:var(--texto);
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:6px;
        font:inherit;
        font-size:10px;
        font-weight:800;
        cursor:pointer;
    }
    .boton-detalles-registro-movil svg{width:14px;height:14px}
    .tarjeta-llave>.boton-detalles-registro-movil{margin-left:50px}

    /* Correcciones en una fila resumida; el resto se abre con Detalles. */
    .catalogo-correcciones{gap:9px}
    .tarjeta-enlace-correccion{padding:12px;border-radius:15px;gap:8px;box-shadow:none}
    .fila-superior-correccion{grid-template-columns:minmax(0,1fr) 38px;gap:9px}
    .identidad-enlace-correccion{gap:9px}
    .identidad-enlace-correccion .icono-sala{width:40px;height:44px;flex:0 0 40px;border-radius:11px}
    .identidad-enlace-correccion h2{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .insights-correccion{grid-column:1/-1;grid-row:2;padding-left:49px!important;gap:5px;justify-content:flex-start}
    .insights-correccion>span{min-height:26px;padding:4px 7px;border-radius:999px;font-size:8px}
    .insights-correccion>span strong{font-size:11px}
    .insights-correccion>span:nth-of-type(n+4){display:none}
    .fila-detalles-correccion{display:none!important}
    .boton-detalles-correccion-movil{margin-left:49px}

    /* Mi Estudio: registros lineales y acciones dentro de los tres puntos. */
    .tarjeta-obras-estudio{padding:14px!important}
    .ayuda-orden-estudio{font-size:10px;margin:8px 0}
    .lista-obras-estudio{gap:8px}
    .fila-obra-estudio{
        position:relative;
        grid-template-columns:44px minmax(0,1fr) 38px!important;
        grid-template-rows:auto auto;
        gap:5px 10px;
        padding:10px;
        border-radius:14px;
        align-items:center;
    }
    .fila-obra-estudio .asa-obra-estudio,
    .fila-obra-estudio .seleccion-obra-estudio,
    .fila-obra-estudio>.enlace-obra-estante{display:none!important}
    .miniatura-fila-estudio{grid-column:1;grid-row:1/3;width:42px;height:52px}
    .datos-fila-estudio{grid-column:2;grid-row:1}
    .datos-fila-estudio strong{font-size:14px}
    .datos-fila-estudio small{font-size:9px;line-height:1.35;white-space:normal}
    .estados-fila-estante{grid-column:2;grid-row:2!important;padding:0!important;justify-content:flex-start}
    .estado-icono-estante{width:auto;height:24px;padding:3px 7px;border-radius:999px;display:inline-flex;gap:4px}
    .estado-icono-estante .solo-lectores{position:static!important;width:auto!important;height:auto!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:nowrap!important;font-size:8px}
    .acciones-estante-movil{display:block;grid-column:3;grid-row:1/3;align-self:center;position:relative}
    .menu-estante-movil{
        position:fixed;
        z-index:1600;
        left:14px;
        right:14px;
        bottom:calc(86px + env(safe-area-inset-bottom));
        padding:8px;
        border:1px solid var(--borde);
        border-radius:16px;
        background:var(--superficie);
        box-shadow:0 22px 70px rgba(0,0,0,.2);
    }
    .menu-estante-movil[hidden]{display:none}
    .menu-estante-movil>button,
    .menu-estante-movil>a{
        width:100%;
        min-height:44px;
        padding:9px 10px;
        border:0;
        border-radius:10px;
        background:transparent;
        color:var(--texto);
        display:flex;
        align-items:center;
        gap:9px;
        text-decoration:none;
        text-align:left;
        font:inherit;
        font-size:11px;
        font-weight:700;
    }
    .menu-estante-movil>button:hover,
    .menu-estante-movil>a:hover{background:var(--superficie-secundaria)}
    .menu-estante-movil svg{width:16px;height:16px}
    .barra-acciones-obras-estudio{position:fixed;z-index:1500;left:14px;right:14px;bottom:calc(86px + env(safe-area-inset-bottom));display:none!important}
}

@media(max-width:430px){
    .navegacion-movil{left:6px;right:6px;gap:4px!important}
    .perfil-movil-fijo{flex-basis:48px;width:48px;min-width:48px!important}
    .navegacion-movil-carril>a,
    .navegacion-movil-carril>button{flex-basis:60px;width:60px;min-width:60px!important;max-width:60px}
}
@media(max-width:900px){
  .navegacion-movil .perfil-movil-fijo{background:var(--superficie-secundaria)!important;color:var(--texto)!important}
}

/* Quijotext 3.4.5 · recuperación de acceso e identidad de correos */
.login-panel-recuperacion { position: relative; background: #f4f2ec; }
.tarjeta-recuperacion-clave { box-sizing: border-box; width: min(440px, 100%); padding: 30px; border: 1px solid rgba(0,0,0,.08); border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 22px 60px rgba(0,0,0,.1); }
.tarjeta-recuperacion-clave .encabezado-acceso h2 { margin: 5px 0 8px; }
.tarjeta-recuperacion-clave .mensaje-acceso-inline { margin: 0; }
.enlace-volver-acceso { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; color: #666; font-size: 12px; font-weight: 700; }
.enlace-volver-acceso:hover { color: #000; }
.enlace-volver-acceso svg { width: 15px; height: 15px; }
.correo-builder-marca { display: flex; align-items: center; gap: 12px; }
.correo-builder-marca img,
.correo-builder-simbolo { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; }
.correo-builder-marca img { display: block; object-fit: contain; }
.correo-builder-simbolo { display: inline-grid; place-items: center; background: #111; color: #fff; font-size: 17px; }
.correo-builder-marca strong { font: inherit; }
@media (max-width: 900px) {
    .pagina-recuperacion-clave .login-presentacion .login-mensaje { margin-top: 34px; }
    .login-panel-recuperacion { padding-top: 42px; padding-bottom: 42px; }
}

/* Quijotext 3.4.6 · Obras a mi cargo */
.pestanas-correcciones {
    margin: 26px 0 18px;
    padding: 4px;
    border: 1px solid var(--borde);
    border-radius: 16px;
    background: var(--superficie-secundaria);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.pestanas-correcciones button {
    min-height: 42px;
    padding: 0 13px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--texto-secundario);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.pestanas-correcciones button:hover { color: var(--texto); }
.pestanas-correcciones button.activo {
    background: var(--superficie);
    color: var(--texto);
    box-shadow: 0 6px 20px rgba(0,0,0,.06);
}
.pestanas-correcciones button svg { width: 16px; height: 16px; }
.pestanas-correcciones button em {
    padding: 3px 6px;
    border-radius: 999px;
    background: var(--color-plan-acento, var(--verde-pro, #C7FF2F));
    color: var(--color-plan-acento-texto, #050505);
    font-size: 7px;
    font-style: normal;
    font-weight: 950;
    letter-spacing: .08em;
}
.pestanas-correcciones button b {
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--superficie-secundaria);
    color: var(--texto);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 900;
}
.pestanas-correcciones button.activo b { background: color-mix(in srgb, var(--texto) 8%, var(--superficie)); }
.pestanas-correcciones button b.con-novedades {
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--verde-pro, #C7FF2F) 20%, transparent);
}
[data-panel-correcciones][hidden],
.modal-obra-a-cargo [hidden] { display: none !important; }
.icono-obra-a-cargo {
    background: var(--color-plan-acento, var(--verde-pro, #C7FF2F));
    color: var(--color-plan-acento-texto, #050505);
}
.tarjeta-obra-a-cargo { border-color: color-mix(in srgb, var(--color-plan-acento, var(--verde-pro, #C7FF2F)) 28%, var(--borde)); }
.panel-pro-obras-a-cargo {
    max-width: 920px;
    min-height: 420px;
    margin: 0 auto;
    padding: clamp(28px, 6vw, 64px);
    border: 1px solid color-mix(in srgb, var(--color-plan-acento, var(--verde-pro, #C7FF2F)) 42%, var(--borde));
    border-radius: 28px;
    background:
        radial-gradient(circle at 90% 12%, color-mix(in srgb, var(--color-plan-acento, var(--verde-pro, #C7FF2F)) 22%, transparent), transparent 34%),
        var(--superficie);
    box-shadow: 0 24px 75px rgba(0,0,0,.07);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 14px;
}
.sello-pro-obras-a-cargo {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: #050505;
    color: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 14px 36px rgba(0,0,0,.16);
}
.sello-pro-obras-a-cargo svg { width: 26px; height: 26px; }
.insignia-pro {
    width: max-content;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--color-plan-acento, var(--verde-pro, #C7FF2F));
    color: var(--color-plan-acento-texto, #050505);
    font-size: 8px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.panel-pro-obras-a-cargo h2 {
    max-width: 660px;
    margin: 2px 0 0;
    font-family: Georgia, serif;
    font-size: clamp(28px, 4vw, 45px);
    line-height: 1.08;
    letter-spacing: -.025em;
}
.panel-pro-obras-a-cargo > p { max-width: 700px; margin: 0; color: var(--texto-secundario); line-height: 1.7; }
.beneficios-obras-a-cargo { margin: 5px 0 8px; display: flex; flex-wrap: wrap; gap: 8px; }
.beneficios-obras-a-cargo span {
    padding: 8px 10px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    background: var(--superficie);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--texto-secundario);
    font-size: 10px;
    font-weight: 750;
}
.beneficios-obras-a-cargo svg { width: 14px; height: 14px; color: var(--texto); }

.modal-obra-a-cargo { z-index: 2400; }
.modal-obra-a-cargo .modal-fondo { background: rgba(0,0,0,.72); backdrop-filter: blur(7px); }
.tarjeta-vincular-revision {
    width: min(560px, calc(100vw - 30px));
    max-height: calc(100dvh - 30px);
    padding: clamp(24px, 5vw, 38px);
    border: 1px solid #d8d8d8;
    border-radius: 26px;
    background: #fff;
    color: #111;
    box-shadow: 0 34px 100px rgba(0,0,0,.28);
    overflow-y: auto;
    display: block;
}
.sello-vincular-revision {
    width: 58px;
    height: 58px;
    margin-bottom: 20px;
    border-radius: 18px;
    background: #050505;
    color: #fff;
    display: grid;
    place-items: center;
}
.sello-vincular-revision svg { width: 27px; height: 27px; }
.tarjeta-vincular-revision h2 {
    margin: 6px 0 11px;
    font-family: Georgia, serif;
    font-size: clamp(29px, 5vw, 42px);
    line-height: 1.06;
    letter-spacing: -.035em;
}
.tarjeta-vincular-revision p { margin: 0; color: #666; line-height: 1.65; }
.cuenta-revision-reconocida {
    margin: 20px 0 13px;
    padding: 13px;
    border: 1px solid #dedede;
    border-radius: 15px;
    background: #f7f7f7;
    display: flex;
    align-items: center;
    gap: 11px;
}
.cuenta-revision-reconocida > svg { width: 22px; height: 22px; flex: 0 0 22px; }
.cuenta-revision-reconocida div { min-width: 0; display: grid; gap: 2px; }
.cuenta-revision-reconocida small { color: #777; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.cuenta-revision-reconocida strong,
.cuenta-revision-reconocida span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cuenta-revision-reconocida span { color: #777; font-size: 10px; }
.formulario-login-revision { margin-top: 20px; }
.formulario-login-revision .campo-formulario input { background: #fff; color: #111; }
.boton-ancho { width: 100%; justify-content: center; margin-top: 12px; }
.nota-login-revision { margin-top: 10px !important; font-size: 10px; text-align: center; }
.aviso-pro-obra-a-cargo {
    margin-top: 20px;
    padding: 13px;
    border: 1px solid color-mix(in srgb, var(--verde-pro, #C7FF2F) 58%, #d5d5d5);
    border-radius: 15px;
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 15%, #fff);
    display: flex;
    align-items: flex-start;
    gap: 11px;
}
.aviso-pro-obra-a-cargo div { display: grid; gap: 4px; }
.aviso-pro-obra-a-cargo strong { font-size: 12px; }
.aviso-pro-obra-a-cargo p { font-size: 10px; }
.separador-eleccion-revision {
    margin: 18px 0 4px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #888;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}
.separador-eleccion-revision::before,
.separador-eleccion-revision::after { content: ""; height: 1px; flex: 1; background: #e1e1e1; }
.mensaje-acceso-inline.correcto { border-color: #84a900; background: rgba(199,255,47,.18); color: #324000; }
.resultado-vincular-revision { min-height: 330px; text-align: center; place-items: center; align-content: center; gap: 12px; }
.resultado-vincular-revision:not([hidden]) { display: grid; }
.icono-resultado-vincular {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    display: grid;
    place-items: center;
}
.icono-resultado-vincular svg { width: 32px; height: 32px; }
.resultado-vincular-revision h2 { margin: 4px 0 0; }
.resultado-vincular-revision p { max-width: 410px; }
.enlace-mesa-vinculada { color: #111; font-size: 11px; font-weight: 850; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 680px) {
    .cabecera-correcciones { align-items: flex-start; }
    .pestanas-correcciones { width: 100%; margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pestanas-correcciones button { min-width: 0; justify-content: center; padding-inline: 8px; }
    .pestanas-correcciones button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .barra-correcciones { align-items: stretch; flex-direction: column; }
    .barra-correcciones > span { padding-left: 3px; }
    .panel-pro-obras-a-cargo { min-height: 0; border-radius: 22px; }
    .beneficios-obras-a-cargo { align-items: stretch; flex-direction: column; }
    .beneficios-obras-a-cargo span { width: 100%; border-radius: 12px; }
    .tarjeta-vincular-revision { border-radius: 22px; }
}
.cuenta-sin-obras-a-cargo { margin-top: 18px; }
.cuenta-sin-obras-a-cargo .cuenta-revision-reconocida { margin-top: 0; }
.aviso-pro-obra-a-cargo > svg { width: 19px; height: 19px; flex: 0 0 19px; margin-top: 1px; }

/* Quijotext 3.4.7 · Identidad previa en Salas de Revisión */
.acceso-sala-revision-identidad { padding: clamp(22px, 5vw, 56px) 18px; align-items: start; }
.tarjeta-sala-acceso-amplia {
    width: min(640px, 100%);
    padding: clamp(24px, 5vw, 42px);
    gap: 22px;
}
.cabecera-acceso-revision,
.pie-acceso-revision {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.identidad-acceso-revision { display: inline-flex; align-items: center; gap: 10px; }
.identidad-acceso-revision .marca-simbolo { width: 30px; height: 30px; font-size: 17px; }
.identidad-acceso-revision strong { font-family: Georgia, serif; font-size: 17px; }
.estado-sala-acceso { display: inline-flex; align-items: center; gap: 6px; color: #737373; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.estado-sala-acceso svg { width: 14px; height: 14px; }
.presentacion-sala-acceso { padding-bottom: 22px; border-bottom: 1px solid #e7e7e7; display: grid; gap: 9px; }
.presentacion-sala-acceso h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(34px, 7vw, 48px); line-height: 1.02; letter-spacing: -.035em; }
.presentacion-sala-acceso p { margin: 0; color: #666; line-height: 1.65; }
.presentacion-sala-acceso .subtitulo-acceso-obra { color: #333; font-family: Georgia, serif; font-size: 16px; }
[data-fase-revision][hidden],
[data-panel-identidad][hidden] { display: none !important; }
.panel-identidad-revision,
.panel-clave-revision { display: grid; gap: 18px; }
.encabezado-paso-revision { display: flex; align-items: flex-start; gap: 13px; }
.encabezado-paso-revision > span { width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; background: #050505; color: #fff; display: grid; place-items: center; font-size: 10px; font-weight: 900; }
.encabezado-paso-revision > div { display: grid; gap: 4px; }
.encabezado-paso-revision strong { font-size: 15px; }
.encabezado-paso-revision p { margin: 0; color: #707070; font-size: 11px; line-height: 1.55; }
.pestanas-identidad-revision { padding: 4px; border: 1px solid #dedede; border-radius: 14px; background: #f4f4f4; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
.pestanas-identidad-revision button { min-height: 40px; border: 0; border-radius: 10px; background: transparent; color: #707070; font: inherit; font-size: 11px; font-weight: 850; cursor: pointer; }
.pestanas-identidad-revision button.activo { background: #fff; color: #050505; box-shadow: 0 5px 18px rgba(0,0,0,.07); }
.formulario-identidad-revision,
.formulario-clave-sala { gap: 14px; }
.formulario-identidad-revision .campo-formulario input,
.formulario-clave-sala .campo-formulario input { background: #fff; color: #111; }
.separador-google-revision { margin: 0; }
.acceso-google-revision { width: 100%; min-height: 42px; display: grid; place-items: center; }
.acceso-google-revision > div { width: 100%; display: grid; place-items: center; }
.acceso-google-revision iframe { max-width: 100% !important; }
.nota-vinculacion-revision { margin: -2px 0 0; padding: 12px 13px; border: 1px solid #dedede; border-radius: 14px; background: #f7f7f7; color: #666; display: flex; align-items: flex-start; gap: 9px; font-size: 10px; line-height: 1.55; }
.nota-vinculacion-revision svg { width: 16px; height: 16px; flex: 0 0 16px; color: #111; }
.enlace-accion-revision { width: max-content; max-width: 100%; margin: 0 auto; padding: 4px 0; border: 0; background: transparent; color: #666; font: inherit; font-size: 10px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.enlace-accion-revision:hover { color: #000; }
.pie-acceso-revision { padding-top: 18px; border-top: 1px solid #e7e7e7; color: #777; font-size: 9px; }
.pie-acceso-revision span { display: inline-flex; align-items: center; gap: 5px; }
.pie-acceso-revision svg { width: 13px; height: 13px; }
@media (max-width: 620px) {
    .acceso-sala-revision-identidad { padding: 12px; }
    .tarjeta-sala-acceso-amplia { border-radius: 20px; }
    .cabecera-acceso-revision { align-items: flex-start; }
    .estado-sala-acceso { margin-top: 7px; }
    .pie-acceso-revision { align-items: flex-start; flex-direction: column; }
}


/* ===== Quijotext 3.4.9 · identidad de menú y tooltips móviles ===== */
@media (max-width: 900px), (hover: none) and (pointer: coarse) {
    [data-pro-clave], [data-ayuda-clave] { -webkit-touch-callout: none; }
    .tooltip-pro-global { width: min(430px, calc(100vw - 28px)); }
}

/* ===== Quijotext 3.4.10 · carril del Gabinete y hojas móviles a escala ===== */
.barra-gabinete {
    align-items: stretch;
    flex-direction: column;
    flex-wrap: nowrap;
}
.fila-busqueda-gabinete {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.fila-busqueda-gabinete .buscador-gabinete {
    min-width: 0;
    flex: 1 1 auto;
}
.fila-busqueda-gabinete .selector-vista-gabinete {
    flex: 0 0 auto;
}
.filtros-gabinete {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
}
.filtros-gabinete button {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

@media (max-width: 900px) {
    body.pagina-previsualizacion { overflow-x: hidden; }
    body.pagina-previsualizacion .documento-previsualizado {
        width: 100%;
        min-width: 0;
        padding: 14px 10px 110px;
        gap: 14px;
        overflow: hidden;
    }
    body.pagina-previsualizacion .pagina-impresion,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido {
        width: var(--ancho-pagina) !important;
        min-width: var(--ancho-pagina) !important;
        max-width: var(--ancho-pagina) !important;
        height: var(--alto-pagina) !important;
        min-height: var(--alto-pagina) !important;
        max-height: var(--alto-pagina) !important;
        padding: var(--margen-superior) var(--margen-derecho) var(--margen-inferior) var(--margen-izquierdo) !important;
        border-radius: 0;
        overflow: hidden !important;
    }
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-indice > .contenido-pagina,
    body.pagina-previsualizacion .documento-previsualizado.paginacion-previsualizacion-activa .pagina-contenido > .contenido-pagina {
        min-height: 0;
        overflow: hidden;
    }
    body.pagina-previsualizacion .portada-impresion { min-height: var(--alto-pagina) !important; }
    body.pagina-previsualizacion .portada-impresion h1 { max-width: 80%; font-size: 34pt; }
    body.pagina-previsualizacion .portada-impresion h2 { max-width: 76%; font-size: 18pt; }
    body.pagina-previsualizacion .flujo-documento { font-size: 12pt; line-height: 1.55; }
    body.pagina-previsualizacion .flujo-documento h1 { font-size: 24pt; }
    body.pagina-previsualizacion .flujo-documento h2 { font-size: 18pt; }
    body.pagina-previsualizacion .cita-academica { margin-left: 1.27cm; }
    body.pagina-previsualizacion .cita-academica.estilo-mla9 { margin-left: 2.54cm; }
    body.pagina-previsualizacion .tabla-previsualizacion { overflow: hidden; }
    body.pagina-previsualizacion .marco-pagina-movil {
        position: relative;
        flex: 0 0 auto;
        max-width: 100%;
        margin: 0 auto;
        overflow: visible;
    }
    body.pagina-previsualizacion .marco-pagina-movil > .pagina-impresion {
        position: absolute;
        inset: 0 auto auto 0;
        transform: scale(var(--escala-pagina-movil, 1));
        transform-origin: top left;
    }
}

@media (max-width: 520px) {
    .fila-busqueda-gabinete { gap: 7px; }
    .fila-busqueda-gabinete .selector-vista-gabinete { gap: 5px; }
    .fila-busqueda-gabinete .selector-vista-gabinete button {
        width: 40px;
        height: 44px;
    }
}

@media print {
    body.pagina-previsualizacion .marco-pagina-movil { display: contents !important; }
    body.pagina-previsualizacion .marco-pagina-movil > .pagina-impresion {
        position: relative !important;
        inset: auto !important;
        transform: none !important;
    }
}


/* Quijotext 3.4.11 · Culqi y checkout seguro */
.integracion-culqi .logo-integracion-culqi{background:#000;color:#fff}
.cabecera-ambiente-culqi{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid var(--borde,#dedede);border-radius:18px;background:#fafafa}
.cabecera-ambiente-culqi>div{display:grid;gap:4px}.cabecera-ambiente-culqi strong{font-size:1.15rem}.cabecera-ambiente-culqi .campo-formulario{min-width:220px;margin:0}
.aviso-culqi-pruebas code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}
.grupo-credenciales-culqi{display:grid;gap:18px;padding:22px;border:1px solid var(--borde,#dedede);border-radius:20px;background:#fff}
.grupo-credenciales-culqi>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0!important;border:0!important}
.grupo-credenciales-culqi h3{margin:2px 0 0;font-size:1.1rem}.grupo-credenciales-culqi textarea{resize:vertical;min-height:90px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}
.etiqueta-ambiente-culqi{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:7px 10px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.08em}
.etiqueta-ambiente-culqi.prueba{background:#eaff42;color:#000}.etiqueta-ambiente-culqi.produccion{background:#000;color:#fff}

/* Quijotext 3.4.14 · checkout Culqi compacto en dos columnas */
.modal-checkout-seguro{z-index:1800}
.checkout-seguro-contenido{display:flex;flex-direction:column;width:min(980px,calc(100vw - 32px));max-height:calc(100dvh - 28px);overflow:hidden;padding:0;border-radius:26px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.28)}
.cabecera-checkout-seguro{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:21px 24px 18px;border-bottom:1px solid #e8e8e8}.cabecera-checkout-seguro h2{margin:3px 0 0;font-size:1.48rem}.sello-checkout-seguro{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#000;color:#fff}.sello-checkout-seguro svg{width:23px;height:23px}
.cuerpo-checkout-seguro{min-height:0;padding:20px 24px}.columnas-checkout-culqi{display:grid;grid-template-columns:minmax(270px,.82fr) minmax(470px,1.38fr);gap:20px;align-items:stretch}.columna-resumen-checkout-culqi{display:grid;align-content:start;gap:12px;min-width:0;padding:15px;border:1px solid #dedede;border-radius:19px;background:#fafafa}
.modo-checkout-culqi{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid #d4e900;border-radius:11px;background:#f7ffb8;font-weight:750;font-size:.8rem;line-height:1.3}.modo-checkout-culqi svg{flex:0 0 auto;width:17px;height:17px}
.resumen-compra-culqi{display:grid;gap:0;border:1px solid #dedede;border-radius:15px;overflow:hidden;background:#fff}.resumen-compra-culqi>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #ececec}.resumen-compra-culqi>div:last-child{border-bottom:0}.resumen-compra-culqi span{color:#666;font-size:.82rem}.resumen-compra-culqi strong{max-width:67%;text-align:right;overflow-wrap:anywhere;font-size:.9rem}.resumen-compra-culqi .total-checkout-culqi{padding:16px 14px;background:#0a0a0a;color:#fff}.resumen-compra-culqi .total-checkout-culqi span{color:#ccc}.resumen-compra-culqi .total-checkout-culqi strong{font-size:1.3rem}.resumen-compra-culqi .total-checkout-culqi small{font-size:.7rem}.descuento-checkout-culqi{background:#f8f8f8}.descuento-checkout-culqi strong{color:#237a2c}
.titular-checkout-culqi{display:grid;align-content:start;gap:14px;min-width:0;padding:0;border:0;background:transparent}.rejilla-titular-culqi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px}.rejilla-titular-culqi .campo-formulario{min-width:0;margin:0;gap:5px}.rejilla-titular-culqi input,.rejilla-titular-culqi select{min-width:0;background:#fff;padding:10px 11px}
.consentimiento-checkout-culqi{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:12px 13px;border:1px solid #dcdcdc;border-radius:13px;cursor:pointer}.consentimiento-checkout-culqi input{margin-top:2px;width:17px;height:17px;accent-color:#000}.consentimiento-checkout-culqi span{font-size:.81rem;line-height:1.4;color:#444}
.estado-checkout-culqi{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:13px;background:#f4f4f4}.estado-checkout-culqi p{margin:0;font-weight:700;font-size:.87rem}.estado-checkout-culqi .indicador-carga{width:19px;height:19px;border:2px solid #bbb;border-top-color:#000;border-radius:50%;animation:giro-carga-culqi .8s linear infinite}@keyframes giro-carga-culqi{to{transform:rotate(360deg)}}
.pie-checkout-seguro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 24px 18px;border-top:1px solid #e8e8e8}.pie-checkout-seguro>div:last-child{display:flex;gap:10px}.procesado-por-culqi{display:flex;align-items:center;gap:8px;color:#666;font-size:.81rem}.procesado-por-culqi svg{width:18px;height:18px}
.aviso-pago-culqi{position:fixed;right:24px;bottom:24px;z-index:500;display:flex;align-items:flex-start;gap:12px;max-width:430px;padding:17px 18px;border:1px solid #d8d8d8;border-radius:16px;background:#fff;box-shadow:0 15px 45px rgba(0,0,0,.14)}.aviso-pago-culqi svg{flex:0 0 auto}.aviso-pago-culqi div{display:grid;gap:3px}.aviso-pago-culqi span{color:#555;font-size:.86rem;line-height:1.4}.aviso-pago-culqi.confirmado{border-color:#b8ddb8}.aviso-pago-culqi.pendiente{border-color:#ded6aa}

@media(min-width:701px) and (max-height:690px){
 .checkout-seguro-contenido{max-height:calc(100dvh - 16px)}
 .cabecera-checkout-seguro{padding:15px 20px 13px}.sello-checkout-seguro{width:40px;height:40px}.cabecera-checkout-seguro h2{font-size:1.3rem}
 .cuerpo-checkout-seguro{padding:14px 20px}.columnas-checkout-culqi{gap:15px}.columna-resumen-checkout-culqi{padding:12px}.resumen-compra-culqi>div{padding:9px 12px}.resumen-compra-culqi .total-checkout-culqi{padding:12px}
 .rejilla-titular-culqi{gap:8px 10px}.rejilla-titular-culqi .campo-formulario{gap:3px}.rejilla-titular-culqi input,.rejilla-titular-culqi select{padding:8px 10px}.consentimiento-checkout-culqi{padding:10px 11px}
 .pie-checkout-seguro{padding:12px 20px 14px}
}

@media(max-width:700px){
 .cabecera-ambiente-culqi{align-items:stretch;flex-direction:column}.cabecera-ambiente-culqi .campo-formulario{min-width:0;width:100%}
 .grupo-credenciales-culqi{padding:18px}.checkout-seguro-contenido{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);overflow:auto;border-radius:22px}
 .cabecera-checkout-seguro{grid-template-columns:auto 1fr;padding:18px 20px}.cabecera-checkout-seguro>.boton-icono{position:absolute;right:15px;top:15px}.cabecera-checkout-seguro h2{padding-right:34px;font-size:1.3rem}
 .cuerpo-checkout-seguro{padding:16px 20px}.columnas-checkout-culqi{grid-template-columns:1fr;gap:15px}.columna-resumen-checkout-culqi{padding:13px}.rejilla-titular-culqi{grid-template-columns:1fr}
 .pie-checkout-seguro{align-items:stretch;flex-direction:column;padding:15px 20px 18px}.pie-checkout-seguro>div:last-child{display:grid;grid-template-columns:1fr}.pie-checkout-seguro .boton{width:100%}.procesado-por-culqi{justify-content:center}
 .aviso-pago-culqi{left:12px;right:12px;bottom:12px;max-width:none}
}


/* Quijotext 3.4.15 · confirmación automática de Culqi */
.aviso-pago-culqi[data-estado-pago-culqi="pendiente"]>svg{animation:giro-confirmacion-culqi 1s linear infinite}
.aviso-pago-culqi.fallido{border-color:#e6aaa2;background:#fffaf9}
.aviso-pago-culqi.fallido>svg{color:#9e2f22}
.boton-comprobar-pago-culqi{justify-self:start;margin-top:7px;padding:0;border:0;background:transparent;color:#111;font:inherit;font-size:.8rem;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.boton-comprobar-pago-culqi:disabled{opacity:.45;cursor:wait}
@keyframes giro-confirmacion-culqi{to{transform:rotate(360deg)}}

/* Quijotext 3.5.0 · administración de usuarios y facturación */
.herramientas-usuarios-admin{display:grid;grid-template-columns:minmax(280px,1fr) minmax(180px,260px) auto;gap:12px;align-items:center;margin:22px 0 16px}
.buscador-admin-tiempo-real{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 15px;border:1px solid var(--borde,#dedede);border-radius:15px;background:var(--superficie,#fff)}
.buscador-admin-tiempo-real svg{width:19px;height:19px;flex:0 0 auto}.buscador-admin-tiempo-real input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;color:inherit}
.herramientas-usuarios-admin>select,.cantidad-pagina-usuarios{min-height:48px;border:1px solid var(--borde,#dedede);border-radius:15px;background:var(--superficie,#fff)}
.herramientas-usuarios-admin>select{padding:0 42px 0 14px;font:inherit;color:inherit}.cantidad-pagina-usuarios{display:flex;align-items:center;gap:8px;padding:0 8px 0 13px}.cantidad-pagina-usuarios span{font-size:.78rem;color:var(--texto-secundario,#666)}.cantidad-pagina-usuarios select{border:0;background:transparent;font:inherit;font-weight:750;color:inherit;outline:0}
.tabla-usuarios-saas tbody.cargando{opacity:.48;pointer-events:none}.tabla-usuarios-saas td small{display:block;margin-top:4px;color:var(--texto-secundario,#6b6b6b)}.acciones-tabla-admin{display:flex;justify-content:flex-end;gap:7px}
.paginacion-usuarios-admin{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.paginacion-usuarios-admin span{font-size:.86rem;color:var(--texto-secundario,#666);text-align:center}
.detalle-usuario-admin{display:grid;gap:22px}.detalle-usuario-admin h3{margin:0;font-size:1rem}.resumen-detalle-usuario,.detalle-transaccion-rejilla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.resumen-detalle-usuario>div,.detalle-transaccion-rejilla>div{display:grid;gap:5px;padding:13px;border:1px solid var(--borde,#e1e1e1);border-radius:13px;background:var(--superficie-suave,#fafafa)}.resumen-detalle-usuario span,.detalle-transaccion-rejilla span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--texto-secundario,#6b6b6b)}.resumen-detalle-usuario strong,.detalle-transaccion-rejilla strong{overflow-wrap:anywhere}
.lista-transacciones-admin{display:grid;gap:9px}.lista-transacciones-admin article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:13px 15px;border:1px solid var(--borde,#e1e1e1);border-radius:14px}.lista-transacciones-admin article>div{display:grid;gap:3px}.lista-transacciones-admin article>div:last-child{text-align:right}.lista-transacciones-admin span,.lista-transacciones-admin small{color:var(--texto-secundario,#666);font-size:.78rem}.lista-transacciones-admin code,.referencia-transaccion{display:block;margin-top:12px;padding:10px;border-radius:10px;background:var(--superficie-suave,#f4f4f4);font-size:.72rem;overflow-wrap:anywhere}

/* Facturación del escritor */
.rejilla-facturacion-usuario{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;margin-bottom:18px}.resumen-suscripcion-facturacion,.cupon-facturacion-destacado,.historial-facturacion{min-width:0}
.datos-suscripcion-facturacion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.datos-suscripcion-facturacion>div{display:grid;gap:5px;padding:14px;border:1px solid var(--borde,#e2e2e2);border-radius:14px;background:var(--superficie-suave,#fafafa)}.datos-suscripcion-facturacion span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--texto-secundario,#696969)}
.aviso-baja-programada{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 14px;border:1px solid #ded6aa;border-radius:13px;background:#fffbe8}.aviso-baja-programada svg{width:19px;height:19px}.enlace-sutil-baja{display:inline-block;margin-top:17px;padding:0;border:0;background:transparent;color:var(--texto-secundario,#666);font:inherit;font-size:.78rem;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.enlace-sutil-baja:hover{color:inherit}
.cupon-facturacion-destacado{border-color:#cce500!important;background:linear-gradient(145deg,#fbffd9,#fff 62%)}.cupon-facturacion-destacado>header>svg{color:#587000}.cupon-facturacion-destacado form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:18px}.cupon-facturacion-destacado form input{min-width:0;padding:12px 13px;border:1px solid #b9cb2d;border-radius:12px;background:#fff;font:inherit;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.cupon-facturacion-destacado>small{display:block;margin-top:9px;color:#566000}
.lista-transacciones-facturacion{display:grid;gap:8px;margin-top:15px}.transaccion-facturacion{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;width:100%;padding:13px 15px;border:1px solid var(--borde,#e2e2e2);border-radius:14px;background:var(--superficie,#fff);color:inherit;text-align:left;cursor:pointer}.transaccion-facturacion:hover{border-color:#a7a7a7;transform:translateY(-1px)}.transaccion-facturacion>span{display:grid;gap:3px}.transaccion-facturacion>span:nth-child(2){text-align:right}.transaccion-facturacion small{color:var(--texto-secundario,#666)}.transaccion-facturacion svg{width:18px;height:18px}
.modal-retencion-plan{position:relative;width:min(760px,calc(100vw - 28px));padding:34px;border-radius:26px;background:var(--superficie,#fff)}.cerrar-retencion{position:absolute;right:18px;top:18px}.modal-retencion-plan h2{max-width:620px;margin:8px 0 20px;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.05}.obras-retencion{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}.obras-retencion span{padding:7px 10px;border-radius:999px;background:#111;color:#fff;font-size:.78rem}.insights-retencion{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:18px 0}.insights-retencion>div{display:grid;gap:3px;padding:14px;border:1px solid var(--borde,#dedede);border-radius:14px}.insights-retencion strong{font-size:1.35rem}.insights-retencion span{font-size:.72rem;color:var(--texto-secundario,#666)}.acciones-retencion{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}
.confirmacion-baja-plan{display:grid;gap:15px}.confirmacion-baja-plan p{margin:0;line-height:1.55}.nota-baja-conservacion{padding:12px 14px;border-radius:12px;background:var(--superficie-suave,#f5f5f5);font-size:.86rem}.confirmacion-escrita-baja{display:grid;gap:7px}.confirmacion-escrita-baja input{padding:12px;border:1px solid var(--borde,#dedede);border-radius:12px;font:inherit;font-weight:800;letter-spacing:.14em}.confirmacion-baja-plan>a{justify-self:start;color:inherit;font-size:.84rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}

/* Constructor y páginas públicas */
.rejilla-paginas-admin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tarjeta-pagina-admin{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:17px;border:1px solid var(--borde,#dedede);border-radius:18px;background:var(--superficie,#fff)}.icono-pagina-admin{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#000;color:#fff}.cabecera-tarjeta-pagina{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.cabecera-tarjeta-pagina h2{margin:0;font-size:1.03rem}.tarjeta-pagina-admin code,.tarjeta-pagina-admin small{display:block;margin-top:5px;color:var(--texto-secundario,#666);overflow-wrap:anywhere}.acciones-pagina-admin{display:flex;align-items:center;gap:7px}
.modal-builder-pagina{width:min(1240px,calc(100vw - 30px));max-height:calc(100dvh - 30px);overflow:hidden;padding:0}.modal-builder-pagina>form{display:flex;flex-direction:column;min-height:0}.constructor-pagina-columnas{display:grid;grid-template-columns:180px minmax(360px,1fr) minmax(300px,.82fr);min-height:0;max-height:calc(100dvh - 178px)}.paleta-bloques-pagina,.editor-pagina-sistema,.previa-pagina-sistema{min-height:0;padding:20px;overflow:auto}.paleta-bloques-pagina{display:grid;align-content:start;gap:8px;border-right:1px solid var(--borde,#e3e3e3);background:var(--superficie-suave,#fafafa)}.paleta-bloques-pagina>strong{margin-bottom:5px}.paleta-bloques-pagina button{display:flex;align-items:center;gap:9px;width:100%;padding:10px;border:1px solid var(--borde,#dedede);border-radius:11px;background:var(--superficie,#fff);color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.paleta-bloques-pagina button:hover{border-color:#111}.paleta-bloques-pagina svg{width:17px;height:17px}
.editor-pagina-sistema{display:grid;align-content:start;gap:15px}.lista-bloques-pagina{display:grid;gap:10px}.bloque-builder-pagina{display:grid;gap:9px;padding:12px;border:1px solid var(--borde,#dedede);border-radius:13px;background:var(--superficie,#fff)}.bloque-builder-pagina>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.bloque-builder-pagina>header strong{text-transform:capitalize}.bloque-builder-pagina>header div{display:flex;gap:4px}.bloque-builder-pagina button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--borde,#dedede);border-radius:8px;background:transparent;color:inherit;cursor:pointer}.bloque-builder-pagina input,.bloque-builder-pagina textarea{width:100%;padding:10px;border:1px solid var(--borde,#dedede);border-radius:10px;background:var(--superficie,#fff);color:inherit;font:inherit}.bloque-builder-pagina textarea{resize:vertical}
.previa-pagina-sistema{border-left:1px solid var(--borde,#e3e3e3);background:#eceae5}.hoja-previa-pagina{min-height:440px;margin-top:10px;padding:30px;border-radius:4px;background:#fff;color:#111;box-shadow:0 12px 35px rgba(0,0,0,.12)}.hoja-previa-pagina h1{margin:0 0 25px;font-family:Georgia,serif}.hoja-previa-pagina h2{font-family:Georgia,serif}.hoja-previa-pagina footer{margin-top:35px;padding-top:14px;border-top:1px solid #ddd;font-size:.76rem;color:#666}
.pagina-publica-sistema{min-height:100dvh;margin:0;padding:48px 18px;background:#eceae5;color:#111;font-family:Arial,sans-serif}.hoja-pagina-publica{width:min(820px,100%);min-height:760px;margin:0 auto;padding:46px 54px;border-radius:8px;background:#fff;box-shadow:0 22px 65px rgba(0,0,0,.14)}.hoja-pagina-publica>header{display:grid;gap:42px;margin-bottom:34px}.marca-pagina-publica{display:inline-flex;align-items:center;gap:10px;justify-self:start;color:#111;text-decoration:none;font-weight:850}.marca-pagina-publica img,.marca-pagina-publica b{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#000;color:#fff;object-fit:cover}.hoja-pagina-publica h1{margin:0;font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.3rem);line-height:1.04}.hoja-pagina-publica article{font-family:Georgia,serif;font-size:1.04rem;line-height:1.72}.hoja-pagina-publica article h2{margin:32px 0 12px;font-size:1.45rem}.hoja-pagina-publica article p{margin:0 0 18px}.hoja-pagina-publica hr{margin:30px 0;border:0;border-top:1px solid #ddd}.accion-pagina-publica{margin:24px 0!important}.boton-pagina-publica{display:inline-flex;padding:12px 17px;border-radius:11px;background:#000;color:#fff;text-decoration:none;font-family:Arial,sans-serif;font-weight:800}.enlace-pagina-publica{color:#111;text-underline-offset:4px}.hoja-pagina-publica>footer{margin-top:55px;padding-top:18px;border-top:1px solid #ddd}.hoja-pagina-publica>footer a{color:#111;font-weight:800}

/* Alertas especiales de facturación */
.modal-alerta-especial{position:fixed;inset:0;z-index:2600;display:grid;place-items:center;padding:18px;visibility:hidden;opacity:0;transition:opacity .2s ease,visibility .2s ease}.modal-alerta-especial.visible{visibility:visible;opacity:1}.fondo-alerta-especial{position:absolute;inset:0;background:rgba(0,0,0,.58);backdrop-filter:blur(4px)}.modal-alerta-especial>section{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;width:min(620px,100%);padding:27px;border:1px solid #3b3b3b;border-radius:23px;background:#111;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.42)}.modal-alerta-especial figure{width:92px;height:92px;margin:0;border-radius:18px;overflow:hidden;background:#252525}.modal-alerta-especial figure img{width:100%;height:100%;object-fit:cover}.modal-alerta-especial .sobrelinea{color:#dfff28}.modal-alerta-especial h2{margin:5px 34px 9px 0;font-size:1.65rem;line-height:1.08}.modal-alerta-especial p{margin:0;color:#d6d6d6;line-height:1.52}.cerrar-alerta-especial{position:absolute;right:13px;top:13px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #454545;border-radius:10px;background:#202020;color:#fff;cursor:pointer}.cerrar-alerta-especial svg{width:17px}.acciones-alerta-especial{display:flex;justify-content:flex-end;margin-top:20px}.modal-alerta-especial .acciones-alerta-especial .boton{background:#eaff42;color:#000}
.reglas-especiales-cupon{display:grid;gap:10px;margin:0;padding:15px;border:1px solid var(--borde,#dedede);border-radius:14px}.reglas-especiales-cupon legend{padding:0 7px;font-weight:800}.reglas-especiales-cupon>small{color:var(--texto-secundario,#666)}

@media(max-width:900px){
 .herramientas-usuarios-admin{grid-template-columns:1fr 1fr}.buscador-admin-tiempo-real{grid-column:1/-1}.rejilla-facturacion-usuario{grid-template-columns:1fr}.rejilla-paginas-admin{grid-template-columns:1fr}
 .constructor-pagina-columnas{grid-template-columns:150px minmax(330px,1fr)}.previa-pagina-sistema{display:none}
 .resumen-detalle-usuario,.detalle-transaccion-rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}.insights-retencion{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
 .herramientas-usuarios-admin{grid-template-columns:1fr}.buscador-admin-tiempo-real{grid-column:auto}.herramientas-usuarios-admin>select,.cantidad-pagina-usuarios{width:100%}.cantidad-pagina-usuarios{justify-content:space-between}.paginacion-usuarios-admin{display:grid;grid-template-columns:1fr 1fr}.paginacion-usuarios-admin span{grid-column:1/-1;grid-row:1}.paginacion-usuarios-admin .boton{width:100%}
 .datos-suscripcion-facturacion,.resumen-detalle-usuario,.detalle-transaccion-rejilla{grid-template-columns:1fr}.cupon-facturacion-destacado form{grid-template-columns:1fr}.transaccion-facturacion{grid-template-columns:minmax(0,1fr) auto}.transaccion-facturacion>span:nth-child(2){display:none}
 .modal-retencion-plan{padding:28px 20px 22px}.insights-retencion{grid-template-columns:1fr 1fr}.acciones-retencion{display:grid}.acciones-retencion .boton{width:100%}
 .tarjeta-pagina-admin{grid-template-columns:auto minmax(0,1fr)}.acciones-pagina-admin{grid-column:1/-1;justify-content:flex-end}.modal-builder-pagina{width:calc(100vw - 14px);max-height:calc(100dvh - 14px)}.constructor-pagina-columnas{display:block;max-height:calc(100dvh - 174px);overflow:auto}.paleta-bloques-pagina{display:flex;position:sticky;top:0;z-index:3;overflow-x:auto;border-right:0;border-bottom:1px solid var(--borde,#ddd)}.paleta-bloques-pagina>strong{display:none}.paleta-bloques-pagina button{flex:0 0 auto;width:auto}.editor-pagina-sistema{overflow:visible}
 .pagina-publica-sistema{padding:0;background:#fff}.hoja-pagina-publica{min-height:100dvh;padding:30px 22px;border-radius:0;box-shadow:none}.hoja-pagina-publica>header{gap:32px}
 .modal-alerta-especial>section{grid-template-columns:1fr;padding:24px 20px}.modal-alerta-especial figure{width:68px;height:68px}.modal-alerta-especial h2{font-size:1.4rem}.acciones-alerta-especial .boton{width:100%}
}

/* Quijotext 3.5.3 · confirmación de eliminación de usuarios */
.boton-icono-peligro {
    color: #a51d1d;
}
.boton-icono-peligro:hover,
.boton-icono-peligro:focus-visible {
    border-color: color-mix(in srgb, #a51d1d 42%, var(--borde));
    background: color-mix(in srgb, #a51d1d 9%, var(--superficie));
    color: #861313;
}
.modal-eliminar-usuario {
    width: min(650px, calc(100vw - 30px));
}
.aviso-eliminacion-usuario {
    padding: 18px;
    border: 1px solid color-mix(in srgb, #b51d1d 42%, var(--borde));
    border-radius: 18px;
    background: color-mix(in srgb, #b51d1d 7%, var(--superficie));
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: flex-start;
}
.aviso-eliminacion-usuario > span {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: #b51d1d;
    color: #fff;
    display: grid;
    place-items: center;
}
.aviso-eliminacion-usuario > span svg { width: 21px; height: 21px; }
.aviso-eliminacion-usuario strong { display: block; margin-bottom: 6px; font-size: 15px; }
.aviso-eliminacion-usuario p { margin: 0; color: var(--texto-secundario); line-height: 1.6; }
.aviso-eliminacion-usuario p b { color: var(--texto); }
.resumen-eliminacion-usuario {
    padding: 14px 16px;
    border: 1px solid var(--borde);
    border-radius: 15px;
    background: var(--superficie-secundaria);
    display: grid;
    gap: 4px;
}
.resumen-eliminacion-usuario > span { color: var(--texto-secundario); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.resumen-eliminacion-usuario > strong { overflow-wrap: anywhere; }
.resumen-eliminacion-usuario > small { margin-top: 7px; color: var(--texto-secundario); line-height: 1.55; }
@media (max-width: 620px) {
    .aviso-eliminacion-usuario { grid-template-columns: 1fr; }
    .modal-eliminar-usuario .acciones-modal { flex-direction: column-reverse; }
    .modal-eliminar-usuario .acciones-modal .boton { width: 100%; }
}

/* Quijotext 3.5.4 · invitación directa a la prueba PRO */
.invitacion-prueba-pro-planes {
    width: min(1480px, 100%);
    margin: -24px auto 28px;
    padding: 18px 20px;
    border: 1px solid color-mix(in srgb, var(--verde-pro, #C7FF2F) 68%, #0b1200);
    border-radius: 20px;
    background:
        radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--verde-pro, #C7FF2F) 28%, transparent), transparent 34%),
        color-mix(in srgb, var(--verde-pro, #C7FF2F) 9%, var(--superficie));
    box-shadow: 0 18px 50px color-mix(in srgb, var(--verde-pro, #C7FF2F) 12%, transparent);
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
}
.icono-prueba-pro-planes {
    width: 48px;
    height: 48px;
    border-radius: 15px;
    background: var(--verde-pro, #C7FF2F);
    color: #050505;
    display: grid;
    place-items: center;
    box-shadow: 0 10px 26px color-mix(in srgb, var(--verde-pro, #C7FF2F) 30%, transparent);
}
.icono-prueba-pro-planes svg { width: 21px; height: 21px; }
.invitacion-prueba-pro-planes > div { min-width: 0; }
.invitacion-prueba-pro-planes h2 { margin: 3px 0 5px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(22px, 2vw, 30px); line-height: 1.05; }
.invitacion-prueba-pro-planes p { margin: 0; color: var(--texto-secundario); font-size: 12px; line-height: 1.55; }
.boton-verde-pro {
    border-color: color-mix(in srgb, var(--verde-pro, #C7FF2F) 76%, #050505) !important;
    background: var(--verde-pro, #C7FF2F) !important;
    color: #050505 !important;
    box-shadow: 0 10px 28px color-mix(in srgb, var(--verde-pro, #C7FF2F) 28%, transparent);
}
.boton-verde-pro:hover { transform: translateY(-1px); }
@media (max-width: 760px) {
    .invitacion-prueba-pro-planes { margin-top: 0; grid-template-columns: 44px minmax(0,1fr); padding: 16px; }
    .invitacion-prueba-pro-planes .boton { grid-column: 1 / -1; width: 100%; }
}

/* Quijotext 3.5.5 · modal de cupones estable y variables de alertas */
.modal-cupon-promocion {
    width: min(820px, calc(100vw - 32px));
    max-height: min(860px, calc(100dvh - 32px));
    padding: 0;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}
.modal-cupon-promocion > .modal-cabecera {
    margin: 0;
    padding: 22px 24px;
    border-bottom: 1px solid var(--borde);
}
.modal-cupon-promocion > #formulario-cupon-promocion {
    min-height: 0;
    padding: 0 !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto;
}
.modal-cupon-promocion .contenido-formulario-cupon {
    min-height: 0;
    padding: 22px 24px 30px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.modal-cupon-promocion .pie-fijo-modal {
    position: relative;
    inset: auto;
    min-height: 74px;
    margin: 0;
    padding: 15px 24px calc(15px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--borde);
    background: var(--superficie);
    box-shadow: 0 -12px 28px rgba(0,0,0,.05);
    backdrop-filter: none;
}
.seccion-formulario-cupon {
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--borde);
    border-radius: 17px;
    background: var(--superficie);
    display: flex;
    flex-direction: column;
    gap: 13px;
}
.cabecera-seccion-cupon {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
.cabecera-seccion-cupon > span,
.reglas-especiales-cupon > legend {
    font-weight: 850;
    color: var(--texto);
}
.cabecera-seccion-cupon small,
.reglas-especiales-cupon > small {
    color: var(--texto-secundario);
    font-size: 10px;
    line-height: 1.45;
}
.reglas-especiales-cupon.seccion-formulario-cupon {
    padding-top: 13px;
}
.reglas-especiales-cupon > legend {
    padding: 0 6px;
}
.interruptor-cupon-admin {
    width: 100%;
    min-width: 0;
    min-height: 58px;
    margin: 0;
    padding: 12px;
    border: 1px solid var(--borde);
    border-radius: 14px;
    background: var(--superficie-secundaria);
    flex: 0 0 auto;
    align-items: flex-start;
}
.interruptor-cupon-admin > span {
    flex: 0 0 42px;
    margin-top: 1px;
}
.interruptor-cupon-admin > div {
    min-width: 0;
    flex: 1 1 auto;
}
.interruptor-cupon-admin strong,
.interruptor-cupon-admin small {
    overflow-wrap: anywhere;
}
.estado-publicacion-cupon {
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 8%, var(--superficie));
}
.estado-publicacion-cupon .interruptor-cupon-admin {
    background: transparent;
}
.nota-variables-alertas {
    padding: 12px 13px;
    border: 1px solid var(--borde);
    border-radius: 13px;
    background: var(--superficie-secundaria);
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.nota-variables-alertas > svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    margin-top: 1px;
}
.nota-variables-alertas > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.nota-variables-alertas small {
    color: var(--texto-secundario);
    line-height: 1.5;
}
.nota-variables-alertas code {
    padding: 1px 4px;
    border-radius: 5px;
    background: var(--superficie);
    color: var(--texto);
    font-size: .9em;
}
@media (max-width: 760px) {
    .modal-cupon-promocion {
        width: 100%;
        max-height: calc(100dvh - 16px);
        border-radius: 18px;
    }
    .modal-cupon-promocion > .modal-cabecera,
    .modal-cupon-promocion .contenido-formulario-cupon,
    .modal-cupon-promocion .pie-fijo-modal {
        padding-left: 16px;
        padding-right: 16px;
    }
    .cabecera-seccion-cupon {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }
}

/* Quijotext 3.5.7 · pie legal del login, redes sociales y Libro de Reclamaciones */
.pie-login-legal {
    position: fixed;
    left: clamp(12px, 2vw, 28px);
    bottom: 10px;
    z-index: 120;
    max-width: calc(100vw - 24px);
    min-height: 28px;
    padding: 5px 8px;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 10px;
    background: color-mix(in srgb, #fff 78%, transparent);
    backdrop-filter: blur(12px);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    box-shadow: 0 7px 20px rgba(0,0,0,.05);
}
.enlaces-legales-login,.redes-sociales-login { display:flex; align-items:center; justify-content:flex-start; gap:4px; min-width:0; }
.enlaces-legales-login button {
    border:0; background:transparent; color:#5c5c5c; padding:4px 6px; border-radius:7px; font:inherit; font-size:9px; line-height:1.1; cursor:pointer; white-space:nowrap;
}
.enlaces-legales-login button:hover,.enlaces-legales-login button:focus-visible { background:rgba(0,0,0,.06); color:#050505; outline:none; }
.separador-pie-login { width:1px; height:14px; background:rgba(0,0,0,.12); flex:0 0 1px; }
.redes-sociales-login a { width:24px; height:24px; border-radius:7px; color:#555; display:grid; place-items:center; text-decoration:none; transition:.16s ease; }
.redes-sociales-login a:hover,.redes-sociales-login a:focus-visible { background:#050505; color:#fff; outline:none; }
.redes-sociales-login svg { width:14px; height:14px; }
.enlace-legal-inline { border:0; padding:0; background:transparent; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }

.contenido-modal-legal-login { width:min(760px,calc(100vw - 28px)); max-height:min(760px,calc(100dvh - 28px)); }
.contenido-pagina-legal-login { padding: 4px 2px 30px; color:var(--texto); }
.contenido-pagina-legal-login h2 { margin:28px 0 8px; font-family:var(--fuente-titulos-quijotext); font-size:25px; }
.contenido-pagina-legal-login p { margin:0 0 14px; color:var(--texto-secundario); line-height:1.7; }
.contenido-pagina-legal-login hr { border:0; border-top:1px solid var(--borde); margin:22px 0; }
.contenido-pagina-legal-login a { color:var(--texto); text-decoration:underline; text-underline-offset:3px; }

.contenido-modal-libro { width:min(940px,calc(100vw - 28px)); max-height:min(900px,calc(100dvh - 28px)); }
.formulario-libro-reclamaciones { display:flex; flex-direction:column; gap:18px; padding-right:4px; }
.campo-trampa-reclamo { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; opacity:0!important; }
.presentacion-libro-reclamaciones { padding:16px 18px; border:1px solid var(--borde); border-radius:18px; background:var(--superficie-secundaria); }
.presentacion-libro-reclamaciones .contenido-editorial-libro p { margin:0 0 10px; color:var(--texto-secundario); line-height:1.55; }
.presentacion-libro-reclamaciones dl { margin:14px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 14px; }
.presentacion-libro-reclamaciones dl div { min-width:0; }
.presentacion-libro-reclamaciones dl .ancho { grid-column:1/-1; }
.presentacion-libro-reclamaciones dt { color:var(--texto-secundario); font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; }
.presentacion-libro-reclamaciones dd { margin:4px 0 0; font-size:12px; font-weight:700; }
.grupo-libro-reclamaciones { margin:0; padding:18px; border:1px solid var(--borde); border-radius:20px; display:flex; flex-direction:column; gap:14px; }
.grupo-libro-reclamaciones legend { padding:0 7px 0 0; display:inline-flex; align-items:center; gap:8px; font-weight:850; }
.grupo-libro-reclamaciones legend b { width:25px; height:25px; border-radius:8px; background:#050505; color:#fff; display:grid; place-items:center; font-size:10px; }
.selector-tipo-reclamo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.selector-tipo-reclamo label { cursor:pointer; }
.selector-tipo-reclamo input { position:absolute; opacity:0; pointer-events:none; }
.selector-tipo-reclamo label>span { min-height:76px; padding:13px 14px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie); display:flex; flex-direction:column; justify-content:center; gap:4px; transition:.15s ease; }
.selector-tipo-reclamo label>span svg { width:18px; height:18px; }
.selector-tipo-reclamo label>span small { color:var(--texto-secundario); line-height:1.35; }
.selector-tipo-reclamo input:checked+span { border-color:#050505; box-shadow:0 0 0 1px #050505 inset; }
.interruptor-menor-reclamo { margin-top:2px; }
.datos-representante-reclamo[hidden] { display:none!important; }
.avisos-legales-reclamo { padding:14px 16px; border-radius:14px; background:var(--superficie-secundaria); color:var(--texto-secundario); font-size:10px; line-height:1.55; }
.avisos-legales-reclamo p { margin:0; }
.avisos-legales-reclamo p+p { margin-top:7px; }
.declaracion-reclamo { align-items:flex-start; }
.acciones-libro-reclamaciones { margin-top:0; }
.confirmacion-libro-reclamaciones { min-height:430px; padding:42px 28px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:11px; }
.confirmacion-libro-reclamaciones[hidden] { display:none!important; }
.confirmacion-libro-reclamaciones>svg { width:46px; height:46px; }
.confirmacion-libro-reclamaciones h3 { margin:0; font-family:var(--fuente-titulos-quijotext); font-size:34px; }
.confirmacion-libro-reclamaciones p { max-width:520px; margin:0; color:var(--texto-secundario); line-height:1.6; }
.confirmacion-libro-reclamaciones strong { margin:10px 0; padding:12px 16px; border:1px solid var(--borde); border-radius:12px; font-family:monospace; font-size:16px; }

/* Personalización · redes sociales */
[data-panel-personalizacion][hidden] { display:none!important; }
.lista-redes-personalizacion { display:flex; flex-direction:column; gap:10px; }
.fila-red-personalizacion { display:grid; grid-template-columns:44px minmax(130px,.45fr) minmax(260px,1fr) auto; align-items:center; gap:12px; padding:12px; border:1px solid var(--borde); border-radius:15px; background:var(--superficie); }
.icono-red-personalizacion { width:40px; height:40px; border-radius:12px; background:var(--superficie-secundaria); display:grid; place-items:center; }
.icono-red-personalizacion svg { width:20px; height:20px; }
.fila-red-personalizacion>div:nth-child(2) { display:flex; flex-direction:column; gap:3px; }
.fila-red-personalizacion>div:nth-child(2) small { color:var(--texto-secundario); }
.interruptor-red-personalizacion { min-width:104px; margin:0; }

/* Superadministración · Reclamos */
.contenido-admin-reclamos { padding-bottom:100px; }
.pestanas-reclamos-admin { display:inline-flex; gap:4px; margin:0 0 20px; padding:4px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie-secundaria); }
.pestanas-reclamos-admin button { min-height:38px; padding:0 13px; border:0; border-radius:10px; background:transparent; color:var(--texto-secundario); display:inline-flex; align-items:center; gap:7px; font:inherit; font-weight:800; cursor:pointer; }
.pestanas-reclamos-admin button svg { width:16px; height:16px; }
.pestanas-reclamos-admin button.activo { background:var(--superficie); color:var(--texto); box-shadow:0 6px 18px rgba(0,0,0,.05); }
[data-panel-reclamos-admin][hidden] { display:none!important; }
.resumen-reclamos-admin { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.resumen-reclamos-admin article { min-height:86px; padding:14px 16px; border:1px solid var(--borde); border-radius:16px; background:var(--superficie); display:flex; flex-direction:column; justify-content:space-between; }
.resumen-reclamos-admin span { color:var(--texto-secundario); font-size:10px; }
.resumen-reclamos-admin strong { font-family:var(--fuente-titulos-quijotext); font-size:26px; }
.barra-reclamos-admin { display:flex; gap:9px; align-items:center; margin-bottom:14px; }
.buscador-reclamos-admin { min-height:44px; flex:1; min-width:260px; padding:0 12px; border:1px solid var(--borde); border-radius:12px; display:flex; align-items:center; gap:8px; }
.buscador-reclamos-admin svg { width:16px; height:16px; color:var(--texto-secundario); }
.buscador-reclamos-admin input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--texto); font:inherit; }
.barra-reclamos-admin select,.campo-estado-reclamo select { min-height:44px; border:1px solid var(--borde); border-radius:12px; background:var(--superficie); color:var(--texto); padding:0 11px; }
.tabla-reclamos-admin td small { display:block; margin-top:3px; color:var(--texto-secundario); }
.etiqueta-reclamo-tipo,.estado-reclamo-admin { display:inline-flex; width:max-content; padding:5px 8px; border-radius:999px; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.etiqueta-reclamo-tipo.reclamo { background:#fff0dc; color:#733a00; }
.etiqueta-reclamo-tipo.queja { background:#f0ecff; color:#45238a; }
.estado-reclamo-admin { background:var(--superficie-secundaria); color:var(--texto-secundario); }
.estado-reclamo-admin.estado-nuevo { background:#fff0dc; color:#733a00; }
.estado-reclamo-admin.estado-en_atencion { background:#e8f2ff; color:#184d88; }
.estado-reclamo-admin.estado-respondido { background:#e8f7ec; color:#146b32; }
.formulario-ajustes-reclamos { max-width:900px; }
.modal-detalle-reclamo { width:min(860px,calc(100vw - 28px)); max-height:min(880px,calc(100dvh - 28px)); }
.encabezado-hoja-reclamo-admin { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:2px 2px 16px; }
.encabezado-hoja-reclamo-admin h3 { margin:3px 0 3px; font-family:var(--fuente-titulos-quijotext); font-size:28px; }
.encabezado-hoja-reclamo-admin p { margin:0; color:var(--texto-secundario); font-size:10px; }
.seccion-detalle-reclamo { padding:16px 0; border-top:1px solid var(--borde); }
.seccion-detalle-reclamo h4 { margin:0 0 12px; font-size:13px; }
.seccion-detalle-reclamo dl { margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.seccion-detalle-reclamo dl .ancho { grid-column:1/-1; }
.seccion-detalle-reclamo dt { color:var(--texto-secundario); font-size:9px; text-transform:uppercase; letter-spacing:.1em; font-weight:800; }
.seccion-detalle-reclamo dd { margin:4px 0 0; line-height:1.55; overflow-wrap:anywhere; }
.trazabilidad-reclamo { display:flex; flex-wrap:wrap; gap:8px; padding:14px; border:1px solid var(--borde); border-radius:14px; background:var(--superficie-secundaria); }
.trazabilidad-reclamo span { display:inline-flex; align-items:center; gap:6px; font-size:10px; color:var(--texto-secundario); }
.trazabilidad-reclamo svg { width:14px; height:14px; }
.campo-estado-reclamo { display:flex; align-items:center; gap:8px; margin-right:auto; }
.campo-estado-reclamo span { font-size:10px; font-weight:800; }

@media (max-width:900px) {
    .fila-red-personalizacion { grid-template-columns:44px minmax(0,1fr) auto; }
    .fila-red-personalizacion .campo-formulario { grid-column:2/4; }
    .resumen-reclamos-admin { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .barra-reclamos-admin { align-items:stretch; flex-wrap:wrap; }
    .buscador-reclamos-admin { flex-basis:100%; }
}
@media (max-width:700px) {
    .pie-login-legal { left:8px; right:8px; bottom:7px; max-width:none; overflow-x:auto; scrollbar-width:none; }
    .pie-login-legal::-webkit-scrollbar { display:none; }
    .enlaces-legales-login,.redes-sociales-login { flex:0 0 auto; }
    .contenido-modal-libro { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:18px; }
    .presentacion-libro-reclamaciones dl,.seccion-detalle-reclamo dl { grid-template-columns:1fr; }
    .presentacion-libro-reclamaciones dl .ancho,.seccion-detalle-reclamo dl .ancho { grid-column:auto; }
    .selector-tipo-reclamo { grid-template-columns:1fr; }
    .grupo-libro-reclamaciones { padding:14px; }
    .fila-red-personalizacion { grid-template-columns:40px minmax(0,1fr) auto; padding:10px; }
    .resumen-reclamos-admin { grid-template-columns:1fr 1fr; }
    .tabla-reclamos-contenedor { overflow-x:auto; }
    .tabla-reclamos-admin { min-width:720px; }
    .pie-fijo-modal .campo-estado-reclamo { width:100%; justify-content:space-between; }
}
.cabecera-hoja-reclamacion-publica{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--texto-secundario);font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:850}.cabecera-hoja-reclamacion-publica strong{color:var(--texto)}
.respuesta-proveedor-reclamo{padding:14px 20px 16px;border-top:1px solid var(--borde);background:var(--superficie)}.respuesta-proveedor-reclamo>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.respuesta-proveedor-reclamo>div small{max-width:560px;color:var(--texto-secundario);line-height:1.45}.respuesta-proveedor-reclamo textarea{resize:vertical;min-height:92px}
@media(max-width:700px){.respuesta-proveedor-reclamo>div{align-items:stretch;flex-direction:column}.respuesta-proveedor-reclamo>div .boton{width:100%}}
.pagina-constancia-reclamo{margin:0;background:#f1f0ed;color:#111;font-family:Arial,sans-serif}.hoja-constancia-reclamo{width:min(900px,calc(100vw - 32px));margin:32px auto 90px;padding:42px;border:1px solid #d9d7d1;border-radius:20px;background:#fff;box-shadow:0 20px 70px rgba(0,0,0,.08)}.cabecera-constancia-reclamo{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:20px;border-bottom:2px solid #111}.cabecera-constancia-reclamo h1{margin:4px 0 0;font-family:Georgia,serif;font-size:38px}.cabecera-constancia-reclamo>div:last-child{text-align:right;display:flex;flex-direction:column;gap:5px}.cabecera-constancia-reclamo>div:last-child strong{font-family:monospace;font-size:15px}.cabecera-constancia-reclamo>div:last-child span{color:#666;font-size:11px}.proveedor-constancia-reclamo{padding:16px 0;display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #ddd}.proveedor-constancia-reclamo div{display:flex;flex-direction:column;gap:4px}.proveedor-constancia-reclamo span,.proveedor-constancia-reclamo p{margin:0;color:#666;font-size:11px}.bloque-constancia-reclamo{padding:20px 0;border-bottom:1px solid #ddd}.bloque-constancia-reclamo h2{margin:0 0 14px;font-size:15px}.bloque-constancia-reclamo h3{margin:16px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.bloque-constancia-reclamo p{margin:0;color:#333;line-height:1.65}.bloque-constancia-reclamo dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.bloque-constancia-reclamo dl .ancho{grid-column:1/-1}.bloque-constancia-reclamo dt{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:700}.bloque-constancia-reclamo dd{margin:4px 0 0;line-height:1.5;overflow-wrap:anywhere}.tipo-constancia-reclamo{padding:10px 12px;border-radius:10px;background:#f5f5f3;font-size:11px}.firma-constancia-reclamo{margin-top:18px!important;padding:12px;border:1px dashed #bbb;border-radius:10px;display:flex;flex-direction:column;gap:4px;font-size:10px}.sin-respuesta-constancia{color:#777!important;font-style:italic}.pie-constancia-reclamo{padding-top:18px;color:#666;font-size:9px;line-height:1.5}.pie-constancia-reclamo p{margin:4px 0}.acciones-constancia-reclamo{position:fixed;right:20px;bottom:20px}.acciones-constancia-reclamo button{border:0;border-radius:12px;background:#050505;color:#fff;padding:12px 16px;font-weight:800;cursor:pointer}@media(max-width:700px){.hoja-constancia-reclamo{width:calc(100vw - 16px);margin:8px auto 80px;padding:20px;border-radius:14px}.cabecera-constancia-reclamo,.proveedor-constancia-reclamo{flex-direction:column}.cabecera-constancia-reclamo>div:last-child{text-align:left}.bloque-constancia-reclamo dl{grid-template-columns:1fr}.bloque-constancia-reclamo dl .ancho{grid-column:auto}}@media print{.pagina-constancia-reclamo{background:#fff}.hoja-constancia-reclamo{width:auto;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}.acciones-constancia-reclamo{display:none}.cabecera-constancia-reclamo h1{font-size:28px}@page{margin:14mm}}
.acciones-confirmacion-reclamo{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.enlaces-legales-login .enlace-libro-login{display:inline-flex;align-items:center;gap:4px;font-weight:800;color:#343434}.enlaces-legales-login .enlace-libro-login svg{width:12px;height:12px}
.codigo-libro-reclamaciones{display:block;margin:-4px 0 10px;color:var(--texto-secundario);font-size:8px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}

/* ===== Quijotext 3.6.0 · La Cátedra ===== */
.contenido-catedra{padding-bottom:110px}.cabecera-catedra{margin-bottom:30px}.cabecera-catedra>div:first-child{max-width:820px}.cabecera-catedra h1{font-family:var(--fuente-titulos-quijotext);font-size:clamp(46px,5vw,72px)}.acciones-cabecera-catedra{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pestanas-catedra,.pestanas-interiores-catedra,.subpestanas-catedra{display:flex;align-items:center;gap:4px;width:max-content;max-width:100%;padding:4px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie-secundaria);overflow-x:auto;scrollbar-width:none}.pestanas-catedra::-webkit-scrollbar,.pestanas-interiores-catedra::-webkit-scrollbar,.subpestanas-catedra::-webkit-scrollbar{display:none}.pestanas-catedra{margin:0 0 24px}.pestanas-catedra a,.pestanas-interiores-catedra button,.subpestanas-catedra button{min-height:40px;padding:0 13px;border:0;border-radius:11px;background:transparent;color:var(--texto-secundario);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font:inherit;font-size:11px;font-weight:850;text-decoration:none;cursor:pointer}.pestanas-catedra a.activo,.pestanas-interiores-catedra button.activo,.subpestanas-catedra button.activo{background:var(--superficie);color:var(--texto);box-shadow:0 5px 18px rgba(0,0,0,.06)}.pestanas-catedra b,.pestanas-interiores-catedra b{min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:color-mix(in srgb,var(--texto) 8%,var(--superficie));display:grid;place-items:center;font-size:8px}.panel-listado-catedra,.evaluaciones-catedra{display:grid;gap:18px}.barra-listado-catedra{display:flex;align-items:center;justify-content:space-between;gap:12px}.barra-listado-catedra>label{height:48px;max-width:720px;flex:1;display:flex;align-items:center;gap:9px;padding:0 14px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie)}.barra-listado-catedra>label svg{width:16px}.barra-listado-catedra input{width:100%;border:0;outline:0;background:transparent;color:var(--texto);font:inherit}.rejilla-entidades-catedra{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:14px}.rejilla-entidades-catedra>article,.lista-entidades-catedra>article,.lista-alumnos-catedra>article{border:1px solid var(--borde);border-radius:20px;background:var(--superficie)}.rejilla-entidades-catedra>article{min-height:250px;padding:21px;display:flex;flex-direction:column;align-items:flex-start}.rejilla-entidades-catedra h2,.lista-entidades-catedra h2{margin:6px 0 7px;font-family:var(--fuente-titulos-quijotext);font-size:23px}.rejilla-entidades-catedra p,.lista-entidades-catedra p{margin:0;color:var(--texto-secundario);line-height:1.55}.rejilla-entidades-catedra .metricas-entidad-catedra{margin-top:auto;padding-top:18px}.rejilla-entidades-catedra>.estado-vacio-catedra{grid-column:1/-1}.lista-entidades-catedra,.lista-alumnos-catedra{display:grid;gap:10px}.lista-entidades-catedra>article{min-height:100px;padding:15px 16px;display:grid;grid-template-columns:48px minmax(260px,1fr) auto auto;align-items:center;gap:14px}.icono-entidad-catedra,.icono-material-catedra{width:46px;height:46px;border-radius:13px;background:var(--superficie-secundaria);display:grid;place-items:center;flex:0 0 auto}.icono-entidad-catedra svg,.icono-material-catedra svg{width:19px}.lista-entidades-catedra h2{font-size:19px}.lista-entidades-catedra p{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.metricas-entidad-catedra{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.metricas-entidad-catedra>span{padding:7px 9px;border:1px solid var(--borde);border-radius:10px;color:var(--texto-secundario);font-size:9px;white-space:nowrap}.metricas-entidad-catedra b{color:var(--texto);font-size:12px}.metricas-entidad-catedra .pendiente{border-color:color-mix(in srgb,var(--verde-pro) 48%,var(--borde));background:color-mix(in srgb,var(--verde-pro) 9%,var(--superficie))}.estado-vacio-catedra{min-height:260px;padding:30px;border:1px dashed var(--borde);border-radius:20px;color:var(--texto-secundario);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px}.estado-vacio-catedra svg{width:31px;height:31px}.estado-vacio-catedra strong{color:var(--texto);font-family:var(--fuente-titulos-quijotext);font-size:20px}.estado-vacio-catedra[hidden]{display:none!important}
.catedra-taller-cabecera{display:grid;gap:18px;margin-bottom:18px}.volver-catedra{width:max-content;display:flex;align-items:center;gap:6px;color:var(--texto-secundario);font-size:11px}.volver-catedra svg{width:15px}.catedra-taller-identidad{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.catedra-taller-identidad>div:first-child{max-width:830px}.catedra-taller-identidad h2{margin:4px 0 8px;font-family:var(--fuente-titulos-quijotext);font-size:clamp(36px,4vw,56px);letter-spacing:-.04em}.catedra-taller-identidad p{margin:0;color:var(--texto-secundario);line-height:1.6}.catedra-avatares{display:flex;align-items:center;padding-right:8px}.avatar-catedra{width:38px;height:38px;margin-left:-8px;padding:2px;border:2px solid var(--superficie);border-radius:50%;background:var(--texto);box-shadow:0 0 0 2px var(--avatar-plan,var(--borde));overflow:hidden;display:grid;place-items:center;cursor:pointer}.avatar-catedra:first-child{margin-left:0}.avatar-catedra img{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar-catedra span{color:var(--superficie);font-weight:900}.catedra-avatares>b{margin-left:7px;font-size:10px}.avisos-catedra{display:grid;gap:8px;margin:0 0 18px}.avisos-catedra article{padding:12px 14px;border:1px solid color-mix(in srgb,var(--verde-pro) 46%,var(--borde));border-radius:14px;background:color-mix(in srgb,var(--verde-pro) 8%,var(--superficie));display:flex;align-items:flex-start;gap:10px}.avisos-catedra svg{width:17px;flex:0 0 17px}.avisos-catedra p{margin:3px 0 0;color:var(--texto-secundario);font-size:11px}.panel-taller-catedra{display:grid;gap:18px}.panel-taller-catedra[hidden]{display:none!important}.cabecera-panel-catedra{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 0 2px;border-bottom:1px solid var(--borde)}.cabecera-panel-catedra h3{margin:3px 0 5px;font-family:var(--fuente-titulos-quijotext);font-size:30px}.cabecera-panel-catedra p{margin:0;color:var(--texto-secundario);line-height:1.55}.cabecera-panel-catedra>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lista-materiales-catedra{display:grid;gap:9px}.lista-materiales-catedra>article{padding:13px 14px;border:1px solid var(--borde);border-radius:15px;display:flex;align-items:center;gap:12px}.lista-materiales-catedra>article>div{min-width:0;display:grid;gap:2px;flex:1}.lista-materiales-catedra small{font-size:8px;letter-spacing:.13em;color:var(--texto-secundario)}.lista-materiales-catedra strong,.lista-materiales-catedra span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lista-materiales-catedra span{color:var(--texto-secundario);font-size:11px}.controles-conversacion-catedra{display:flex;gap:8px;align-items:center}.segmentado-catedra{display:flex;padding:3px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie-secundaria)}.segmentado-catedra button{height:34px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--texto-secundario);font-weight:800;cursor:pointer}.segmentado-catedra button.activo{background:var(--superficie);color:var(--texto);box-shadow:0 3px 10px rgba(0,0,0,.06)}.controles-conversacion-catedra select{height:40px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto);padding:0 10px}.form-comentario-catedra{padding:14px;border:1px solid var(--borde);border-radius:17px;background:var(--superficie-secundaria);display:grid;grid-template-columns:230px minmax(0,1fr);gap:10px}.form-comentario-catedra>label{display:grid;gap:6px}.form-comentario-catedra>label>span{font-size:10px;font-weight:800}.form-comentario-catedra select,.form-comentario-catedra textarea{width:100%;padding:10px 11px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto);font:inherit}.form-comentario-catedra textarea{resize:vertical;min-height:88px}.form-comentario-catedra>div:last-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:10px}.check-catedra{display:flex!important;align-items:center;gap:7px;color:var(--texto-secundario);font-size:10px}.lista-comentarios-catedra{display:grid;gap:10px}.lista-comentarios-catedra[hidden]{display:none!important}.comentario-catedra{padding:15px 16px;border:1px solid var(--borde);border-radius:17px;background:var(--superficie);display:grid;gap:10px;transition:border-color .25s,box-shadow .25s}.comentario-catedra.respuesta{margin-left:38px;border-left:3px solid color-mix(in srgb,var(--texto) 28%,var(--borde))}.comentario-catedra.destacado-temporal{border-color:var(--verde-pro);box-shadow:0 0 0 4px color-mix(in srgb,var(--verde-pro) 18%,transparent)}.cabecera-comentario-catedra{display:flex;align-items:center;gap:9px}.avatar-comentario-catedra,.avatar-participante-catedra{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--texto);color:var(--superficie);display:grid;place-items:center;flex:0 0 auto;font-weight:900}.avatar-comentario-catedra img,.avatar-participante-catedra img{width:100%;height:100%;object-fit:cover}.cabecera-comentario-catedra>div:nth-child(2){min-width:0;display:grid;gap:2px}.cabecera-comentario-catedra small{color:var(--texto-secundario);font-size:9px}.etiqueta-pregunta-autor{margin-left:auto;padding:5px 8px;border-radius:999px;border:1px solid #e2b75c;background:#fff9e8;font-size:8px;font-weight:900;white-space:nowrap}.etiqueta-pregunta-autor.respondida{border-color:#95c5a5;background:#effaf2}.comentario-catedra>p{margin:0;line-height:1.62}.comentario-catedra blockquote{margin:0;padding:9px 12px;border-left:2px solid var(--texto);background:var(--superficie-secundaria);color:var(--texto-secundario);font-size:11px}.comentario-catedra footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.reacciones-catedra{display:flex;gap:5px;flex-wrap:wrap}.reacciones-catedra button{height:30px;padding:0 8px;border:1px solid var(--borde);border-radius:999px;background:var(--superficie);color:var(--texto-secundario);font-size:9px;cursor:pointer}.reacciones-catedra button.activo{border-color:var(--texto);color:var(--texto);background:var(--superficie-secundaria)}.reacciones-catedra b{font-size:8px}.enlace-sutil,.enlace-sutil-peligro{border:0;background:transparent;color:var(--texto-secundario);font:inherit;font-size:9px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.enlace-sutil-peligro{color:#9e332b}.solicitudes-catedra{padding:15px;border:1px solid color-mix(in srgb,var(--verde-pro) 44%,var(--borde));border-radius:16px;background:color-mix(in srgb,var(--verde-pro) 7%,var(--superficie))}.solicitudes-catedra h4{margin:0 0 8px}.solicitudes-catedra article{padding:9px 0;border-top:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;gap:12px}.solicitudes-catedra article>div:first-child{display:grid;gap:2px}.solicitudes-catedra span{color:var(--texto-secundario);font-size:10px}.lista-participantes-catedra{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:9px}.lista-participantes-catedra article{padding:11px;border:1px solid var(--borde);border-radius:14px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px}.lista-participantes-catedra article>div:nth-child(2){display:grid;gap:2px}.lista-participantes-catedra small{color:var(--texto-secundario);font-size:9px}.lista-bitacora-catedra{columns:2 320px;column-gap:12px}.lista-bitacora-catedra article{break-inside:avoid;margin:0 0 12px;padding:15px;border:1px solid var(--borde);border-radius:16px;display:grid;gap:7px}.lista-bitacora-catedra small{color:var(--texto-secundario);font-size:9px}.lista-bitacora-catedra p{margin:0;line-height:1.55}.lista-bitacora-catedra blockquote{margin:0;padding:8px;border-radius:9px;background:var(--superficie-secundaria);font-size:10px;color:var(--texto-secundario)}.tabla-participacion-catedra{display:grid;gap:7px}.tabla-participacion-catedra article{padding:11px 12px;border-bottom:1px solid var(--borde);display:grid;grid-template-columns:minmax(180px,1fr) repeat(5,auto) minmax(130px,auto);align-items:center;gap:10px;font-size:9px}.tabla-participacion-catedra article>strong{font-size:11px}.tabla-participacion-catedra span{color:var(--texto-secundario)}.tabla-participacion-catedra b{color:var(--texto)}.tabla-participacion-catedra small{color:var(--texto-secundario);text-align:right}.acciones-cierre-taller{padding-top:20px;border-top:1px solid var(--borde);display:flex;justify-content:flex-end}.subpestanas-catedra{margin-bottom:4px}.banco-preguntas-catedra{display:grid;gap:8px}.banco-preguntas-catedra>article{padding:12px 14px;border:1px solid var(--borde);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.banco-preguntas-catedra>article>div{display:grid;gap:4px}.banco-preguntas-catedra small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.1em}.banco-preguntas-catedra>article>span{color:var(--texto-secundario);font-size:9px;white-space:nowrap}.lista-alumnos-catedra>article{padding:12px 14px;display:grid;grid-template-columns:40px minmax(180px,1fr) auto auto;align-items:center;gap:13px}.lista-alumnos-catedra>article>div:nth-child(2){display:grid;gap:2px}.lista-alumnos-catedra small{color:var(--texto-secundario);font-size:9px}.nota-catedra{padding:10px 11px;border-radius:11px;background:var(--superficie-secundaria);color:var(--texto-secundario);font-size:10px;line-height:1.45}.borrador-ia-catedra{white-space:pre-wrap;line-height:1.7;font-size:13px}.orquestacion-escribano-admin{margin:0 0 22px}.cabecera-seccion-admin{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}.cabecera-seccion-admin h2{margin:3px 0 5px;font-family:var(--fuente-titulos-quijotext);font-size:30px}.cabecera-seccion-admin p{max-width:780px;margin:0;color:var(--texto-secundario)}.lista-modelos-escribano-admin{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}.tarjeta-modelo-escribano{padding:15px;border:1px solid var(--borde);border-radius:17px;display:grid;gap:10px}.identidad-modelo-escribano{display:flex;align-items:center;gap:10px}.identidad-modelo-escribano>span{width:48px;height:48px;border-radius:13px;background:var(--texto);color:var(--superficie);display:grid;place-items:center;font-size:10px;font-weight:950;letter-spacing:.09em}.identidad-modelo-escribano h3{margin:0}.identidad-modelo-escribano code{color:var(--texto-secundario);font-size:10px}.tarjeta-modelo-escribano>p{margin:0;color:var(--texto-secundario);line-height:1.45}.metadatos-modelo-escribano{display:flex;gap:5px;flex-wrap:wrap}.metadatos-modelo-escribano span{padding:5px 7px;border:1px solid var(--borde);border-radius:9px;font-size:8px;color:var(--texto-secundario)}.metadatos-modelo-escribano b{color:var(--texto)}.acciones-modelo-escribano{display:flex;justify-content:flex-end;gap:5px}.lista-funciones-escribano-admin{display:grid;gap:8px}.fila-funcion-escribano{padding:11px 12px;border:1px solid var(--borde);border-radius:14px;display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(150px,.7fr) 110px 130px 50px auto;align-items:end;gap:8px}.identidad-funcion-escribano{display:grid;gap:3px}.identidad-funcion-escribano small{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:var(--texto-secundario)}.identidad-funcion-escribano span{font-size:9px;color:var(--texto-secundario)}.fila-funcion-escribano>label:not(.interruptor){display:grid;gap:4px}.fila-funcion-escribano>label>span{font-size:8px;font-weight:800}.fila-funcion-escribano select,.fila-funcion-escribano input:not([type="checkbox"]){min-width:0;height:38px;padding:0 8px;border:1px solid var(--borde);border-radius:9px;background:var(--superficie);color:var(--texto)}.config-avanzada-funcion-escribano{grid-column:1/-1;padding:7px 0 0}.config-avanzada-funcion-escribano summary{width:max-content;color:var(--texto-secundario);font-size:9px;cursor:pointer}.config-avanzada-funcion-escribano[open]{display:grid;grid-template-columns:1fr 1fr 180px;gap:9px}.config-avanzada-funcion-escribano[open] summary{grid-column:1/-1}.config-avanzada-funcion-escribano textarea,.config-avanzada-funcion-escribano input{height:auto}.estado-vacio-admin{min-height:170px;border:1px dashed var(--borde);border-radius:16px;display:grid;place-items:center;align-content:center;text-align:center;gap:6px;color:var(--texto-secundario)}.estado-vacio-admin strong{color:var(--texto)}
@media(max-width:1050px){.lista-entidades-catedra>article{grid-template-columns:48px minmax(0,1fr) auto}.lista-entidades-catedra .metricas-entidad-catedra{grid-column:2/4}.tabla-participacion-catedra article{grid-template-columns:minmax(160px,1fr) repeat(3,auto)}.tabla-participacion-catedra span:nth-of-type(n+4),.tabla-participacion-catedra small{display:none}.fila-funcion-escribano{grid-template-columns:minmax(220px,1fr) minmax(150px,.7fr) 100px 120px auto}.fila-funcion-escribano>.interruptor{display:none}}
@media(max-width:760px){.cabecera-catedra,.catedra-taller-identidad,.cabecera-panel-catedra,.barra-listado-catedra{align-items:flex-start;flex-direction:column}.acciones-cabecera-catedra,.acciones-cabecera-catedra .boton{width:100%}.pestanas-catedra,.pestanas-interiores-catedra,.subpestanas-catedra{width:100%;border-radius:13px}.pestanas-catedra a,.pestanas-interiores-catedra button,.subpestanas-catedra button{flex:0 0 auto}.catedra-avatares{width:100%;overflow-x:auto;padding:4px 8px}.lista-entidades-catedra>article{grid-template-columns:42px minmax(0,1fr) 38px;padding:12px}.lista-entidades-catedra>article>.boton{width:36px;padding:0;overflow:hidden;color:transparent}.lista-entidades-catedra>article>.boton:before{content:'→';color:var(--texto)}.lista-entidades-catedra .metricas-entidad-catedra{grid-column:2/4}.form-comentario-catedra{grid-template-columns:1fr}.form-comentario-catedra>div:last-child{grid-column:1;align-items:stretch;flex-direction:column}.form-comentario-catedra .boton{width:100%}.comentario-catedra.respuesta{margin-left:16px}.controles-conversacion-catedra{width:100%;align-items:stretch;flex-direction:column}.lista-participantes-catedra{grid-template-columns:1fr}.lista-bitacora-catedra{columns:1}.tabla-participacion-catedra article{grid-template-columns:1fr repeat(2,auto)}.tabla-participacion-catedra span:nth-of-type(n+3){display:none}.lista-alumnos-catedra>article{grid-template-columns:38px minmax(0,1fr) 36px}.lista-alumnos-catedra .metricas-entidad-catedra{grid-column:2/4}.lista-alumnos-catedra .boton{width:36px;overflow:hidden;padding:0;color:transparent}.cabecera-seccion-admin{align-items:flex-start;flex-direction:column}.fila-funcion-escribano{grid-template-columns:1fr 1fr}.identidad-funcion-escribano{grid-column:1/-1}.fila-funcion-escribano>.interruptor{display:flex}.config-avanzada-funcion-escribano{grid-column:1/-1}.config-avanzada-funcion-escribano[open]{grid-template-columns:1fr}.config-avanzada-funcion-escribano[open] summary{grid-column:1}.lista-modelos-escribano-admin{grid-template-columns:1fr}}

/* Quijotext 3.6.0 · Entrada pública de La Cátedra y controles avanzados */
.pagina-catedra-publica{min-height:100dvh;background:var(--fondo);color:var(--texto)}
.catedra-publica{width:min(1120px,calc(100% - 32px));min-height:100dvh;margin:0 auto;padding:26px 0 34px;display:flex;flex-direction:column;gap:24px}
.cabecera-catedra-publica{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--borde);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.marca-catedra-publica{display:inline-flex;align-items:center;gap:10px;color:var(--texto);text-decoration:none;text-transform:none;letter-spacing:0}.marca-catedra-publica .marca-simbolo{width:35px;height:35px;border-radius:10px;background:var(--texto);color:var(--superficie);display:grid;place-items:center;font-family:Georgia,serif;font-size:21px;font-weight:900}.marca-catedra-publica strong{font-size:14px}
.puerta-catedra-publica{width:min(650px,100%);margin:auto;padding:clamp(24px,5vw,54px);border:1px solid var(--borde);border-radius:26px;background:var(--superficie);box-shadow:0 28px 90px rgba(0,0,0,.06)}
.puerta-catedra-publica h1,.cabecera-contenido-catedra h1{margin:7px 0 12px;font-family:var(--fuente-titulos-quijotext);font-size:clamp(38px,5vw,62px);line-height:.98;letter-spacing:-.045em}.puerta-catedra-publica>p,.cabecera-contenido-catedra p{color:var(--texto-secundario);line-height:1.65}
.form-codigo-catedra,.form-acceso-catedra{display:grid;gap:13px;margin-top:24px}.form-codigo-catedra{grid-template-columns:minmax(0,1fr) auto;align-items:end}.form-codigo-catedra label,.form-acceso-catedra label,.form-evaluacion-publica label{display:grid;gap:6px}.form-codigo-catedra label>span,.form-acceso-catedra label>span,.form-evaluacion-publica label>span{font-size:10px;font-weight:850}.form-codigo-catedra input,.form-acceso-catedra input,.form-evaluacion-publica textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);color:var(--texto);font:inherit}.form-codigo-catedra input{text-transform:uppercase;letter-spacing:.08em;font-weight:850}.form-acceso-catedra>p{margin:0;color:var(--texto-secundario);font-size:10px;line-height:1.5}.form-acceso-catedra>p a{text-decoration:underline}.nota-catedra-publica,.aviso-catedra-publica,.resultado-acceso-catedra{margin-top:18px;padding:12px 13px;border:1px solid var(--borde);border-radius:13px;background:var(--superficie-secundaria);display:flex;align-items:flex-start;gap:9px;color:var(--texto-secundario);font-size:10px;line-height:1.5}.nota-catedra-publica svg,.aviso-catedra-publica svg{width:16px;flex:0 0 16px}.resultado-acceso-catedra[hidden]{display:none!important}
.identidad-cuenta-catedra{padding:12px;border:1px solid var(--borde);border-radius:13px;display:flex;align-items:center;gap:10px}.identidad-cuenta-catedra svg{width:28px;height:28px}.identidad-cuenta-catedra div{display:grid;gap:2px}.identidad-cuenta-catedra span{color:var(--texto-secundario);font-size:10px}
.contenido-catedra-invitada{display:grid;gap:20px}.cabecera-contenido-catedra{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:20px 0 22px;border-bottom:1px solid var(--borde)}.cabecera-contenido-catedra>div{max-width:780px}.estado-acceso-catedra{padding:8px 10px;border:1px solid var(--borde);border-radius:999px;display:inline-flex;align-items:center;gap:7px;font-size:9px;font-weight:850;white-space:nowrap}.estado-acceso-catedra svg{width:14px}.pestanas-publicas-catedra{display:flex;gap:4px;width:max-content;max-width:100%;padding:4px;border:1px solid var(--borde);border-radius:13px;background:var(--superficie-secundaria);overflow-x:auto}.pestanas-publicas-catedra button{height:38px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--texto-secundario);font-weight:850;white-space:nowrap;cursor:pointer}.pestanas-publicas-catedra button.activo{background:var(--superficie);color:var(--texto);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.lista-materiales-catedra-publica{display:grid;gap:9px}.lista-materiales-catedra-publica article{padding:13px 14px;border:1px solid var(--borde);border-radius:15px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px}.lista-materiales-catedra-publica article>svg{width:18px}.lista-materiales-catedra-publica article>div{min-width:0;display:grid;gap:2px}.lista-materiales-catedra-publica small{font-size:8px;letter-spacing:.12em;color:var(--texto-secundario)}.lista-materiales-catedra-publica strong,.lista-materiales-catedra-publica span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lista-materiales-catedra-publica span{color:var(--texto-secundario);font-size:10px}
.form-evaluacion-publica{display:grid;gap:12px}.form-evaluacion-publica fieldset{margin:0;padding:16px;border:1px solid var(--borde);border-radius:17px}.form-evaluacion-publica legend{width:100%;padding:0 0 12px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:9px;font-weight:800}.form-evaluacion-publica legend>span{width:26px;height:26px;border-radius:8px;background:var(--texto);color:var(--superficie);display:grid;place-items:center;font-size:9px}.form-evaluacion-publica legend small{color:var(--texto-secundario);font-size:9px}.opciones-evaluacion-publica{display:grid;gap:7px}.opciones-evaluacion-publica label{grid-template-columns:20px minmax(0,1fr);align-items:start;padding:9px 10px;border:1px solid var(--borde);border-radius:11px;cursor:pointer}.opciones-evaluacion-publica input{margin-top:3px}.form-evaluacion-publica footer{display:flex;justify-content:flex-end}.pie-catedra-publica{margin-top:auto;padding-top:18px;border-top:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--texto-secundario);font-size:9px}.pie-catedra-publica a{color:var(--texto);font-weight:850}
.popover-participante-catedra{position:fixed;z-index:6500;width:min(330px,calc(100vw - 28px));padding:15px;border:1px solid var(--borde);border-radius:17px;background:var(--superficie);box-shadow:0 22px 70px rgba(0,0,0,.18);display:grid;gap:10px}.popover-participante-catedra[hidden]{display:none!important}.popover-participante-catedra header{display:flex;align-items:center;gap:10px}.popover-participante-catedra p{margin:0;color:var(--texto-secundario);font-size:10px;line-height:1.5}.popover-participante-catedra footer{display:flex;justify-content:flex-end}
.acciones-pregunta-catedra,.acciones-rubrica-catedra{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.acciones-pregunta-catedra .boton,.acciones-rubrica-catedra .boton{min-height:31px;padding:0 9px;font-size:8px}.estado-borrador-catedra{color:#8a5a00}.tabla-resultados-catedra{display:grid;gap:7px}.fila-resultado-catedra{padding:11px 12px;border:1px solid var(--borde);border-radius:13px;display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;align-items:center;gap:10px}.fila-resultado-catedra>div{display:grid;gap:2px}.fila-resultado-catedra small{color:var(--texto-secundario);font-size:9px}.fila-resultado-catedra>span{font-size:9px;color:var(--texto-secundario)}.respuestas-intento-catedra{display:grid;gap:9px}.respuesta-intento-catedra{padding:12px;border:1px solid var(--borde);border-radius:13px;display:grid;gap:7px}.respuesta-intento-catedra>p{margin:0;line-height:1.55}.respuesta-intento-catedra blockquote{margin:0;padding:8px 10px;background:var(--superficie-secundaria);border-radius:10px;color:var(--texto-secundario)}.respuesta-intento-catedra footer{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.respuesta-intento-catedra input[type=number]{width:90px;height:36px;padding:0 8px;border:1px solid var(--borde);border-radius:9px;background:var(--superficie);color:var(--texto)}
.editor-items-rubrica{display:grid;gap:8px}.fila-item-rubrica{padding:10px;border:1px solid var(--borde);border-radius:12px;display:grid;grid-template-columns:minmax(140px,1fr) 90px 110px 34px;gap:7px;align-items:end}.fila-item-rubrica label{display:grid;gap:4px}.fila-item-rubrica label span{font-size:8px;font-weight:800}.fila-item-rubrica input{min-width:0;height:38px;padding:0 8px;border:1px solid var(--borde);border-radius:9px;background:var(--superficie);color:var(--texto)}
.avatar-comentario-catedra[data-plan-color],.avatar-participante-catedra[data-plan-color]{box-shadow:0 0 0 2px var(--plan-avatar-color,var(--borde))}
.cierre-publicado-catedra{padding:18px;border:1px solid var(--borde);border-radius:18px;background:var(--superficie-secundaria);display:grid;gap:8px}.cierre-publicado-catedra h3{margin:0;font-family:var(--fuente-titulos-quijotext);font-size:24px}.cierre-publicado-catedra p{margin:0;line-height:1.65}.acciones-aviso-catedra{margin-left:auto;display:flex;align-items:center;gap:5px}.acciones-aviso-catedra .enlace-sutil{white-space:nowrap}
@media(max-width:760px){.catedra-publica{width:min(100% - 24px,1120px);padding-top:14px}.puerta-catedra-publica{padding:22px;border-radius:20px}.form-codigo-catedra{grid-template-columns:1fr}.form-codigo-catedra .boton{width:100%}.cabecera-contenido-catedra{align-items:flex-start;flex-direction:column}.lista-materiales-catedra-publica article{grid-template-columns:32px minmax(0,1fr) 36px}.fila-resultado-catedra{grid-template-columns:minmax(0,1fr) auto}.fila-resultado-catedra>span{grid-column:1}.fila-item-rubrica{grid-template-columns:1fr 1fr}.fila-item-rubrica label:first-child{grid-column:1/-1}.fila-item-rubrica .boton-icono{justify-self:end}.pie-catedra-publica{align-items:flex-start;flex-direction:column}.banco-preguntas-catedra>article{align-items:flex-start;flex-direction:column}.acciones-pregunta-catedra,.acciones-rubrica-catedra{width:100%;justify-content:flex-start}}
.modal-lector-catedra{width:min(980px,calc(100vw - 30px));height:min(860px,calc(100dvh - 30px));position:relative}.cuerpo-lector-catedra{padding:28px clamp(20px,5vw,64px);font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.78;user-select:text}.cuerpo-lector-catedra .lectura-bloque-catedra{max-width:760px;margin:0 auto 14px;scroll-margin:120px}.cuerpo-lector-catedra .lectura-titulo1,.cuerpo-lector-catedra .lectura-titulo2,.cuerpo-lector-catedra .lectura-titulo3{font-weight:800}.cuerpo-lector-catedra .lectura-titulo1{font-size:1.7em}.cuerpo-lector-catedra .lectura-titulo2{font-size:1.4em}.cuerpo-lector-catedra .lectura-titulo3{font-size:1.2em}.cuerpo-lector-catedra pre{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.cuerpo-lector-catedra .destacado-temporal{background:color-mix(in srgb,var(--verde-pro) 16%,transparent);outline:3px solid color-mix(in srgb,var(--verde-pro) 30%,transparent);border-radius:5px}.barra-cita-taller-catedra{position:absolute;right:18px;bottom:18px;z-index:5}.barra-cita-taller-catedra[hidden]{display:none!important}.acciones-material-catedra{display:flex;align-items:center;gap:5px}.sugerencias-menciones-catedra{position:absolute;z-index:8;left:0;right:0;top:100%;margin-top:4px;padding:5px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);box-shadow:0 12px 38px rgba(0,0,0,.12);display:grid}.campo-comentario-catedra{position:relative}.sugerencias-menciones-catedra[hidden]{display:none!important}.sugerencias-menciones-catedra button{padding:8px 9px;border:0;border-radius:8px;background:transparent;color:var(--texto);text-align:left;cursor:pointer}.sugerencias-menciones-catedra button:hover,.sugerencias-menciones-catedra button:focus{background:var(--superficie-secundaria)}.acciones-cierre-ia-catedra{display:flex;gap:6px;margin-right:auto}
@media(max-width:760px){.modal-lector-catedra{width:calc(100vw - 18px);height:calc(100dvh - 18px)}.cuerpo-lector-catedra{padding:22px 16px;font-size:16px}.barra-cita-taller-catedra{left:12px;right:12px;bottom:12px}.barra-cita-taller-catedra .boton{width:100%}}

/* Quijotext 3.6.0 · Rúbricas de La Cátedra dentro de A mi cargo. */
.rubrica-menu-correccion{padding:9px 8px;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde);display:grid;gap:7px}.rubrica-menu-correccion label{display:grid;gap:5px}.rubrica-menu-correccion label>span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:var(--texto-secundario)}.rubrica-menu-correccion select{width:100%;min-height:36px;padding:0 9px;border:1px solid var(--borde);border-radius:9px;background:var(--superficie);color:var(--texto);font:inherit;font-size:11px}.rubrica-menu-correccion>button{border-radius:9px!important}

/* Propietario · ajustes mínimos de un Taller y moderadores. */
.configuracion-taller-catedra{margin:0 0 18px;padding:12px 14px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie-secundaria);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.configuracion-taller-catedra .check-catedra{margin:0;min-width:190px}.configuracion-taller-catedra>button{margin-left:auto}.lista-participantes-catedra [data-rol-miembro-taller]{min-width:118px;height:36px;padding:0 8px;border:1px solid var(--borde);border-radius:10px;background:var(--superficie);color:var(--texto);font:inherit;font-size:11px}@media(max-width:700px){.configuracion-taller-catedra{display:grid;grid-template-columns:1fr}.configuracion-taller-catedra>button{margin-left:0;width:100%}.lista-participantes-catedra [data-rol-miembro-taller]{grid-column:2/-1;width:100%}}

/* Quijotext 3.6.1 · Afinación UX/UI de La Cátedra. */
.catedra-taller-identidad h1{
    margin:4px 0 8px;
    font-family:var(--fuente-titulos-quijotext);
    font-size:clamp(36px,4vw,56px);
    line-height:1.02;
    letter-spacing:-.04em;
}
.titulo-registro-catedra{
    color:inherit;
    text-decoration:none;
    text-decoration-thickness:1px;
    text-underline-offset:4px;
}
.titulo-registro-catedra:hover,.titulo-registro-catedra:focus-visible{text-decoration:underline}
.cabecera-panel-catedra>div:first-child:last-child{display:block}
.acciones-panel-catedra{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
[data-panel-evaluaciones]{display:grid;gap:18px}
[data-panel-evaluaciones][hidden]{display:none!important}

/* Las subpestañas se leen como un segundo nivel, no como una copia del menú principal. */
.subpestanas-catedra{
    width:100%;
    margin:0 0 2px;
    padding:0;
    gap:22px;
    border:0;
    border-bottom:1px solid var(--borde);
    border-radius:0;
    background:transparent;
}
.subpestanas-catedra button{
    min-height:46px;
    padding:0 2px;
    border-radius:0;
    position:relative;
    font-size:10px;
    letter-spacing:.01em;
}
.subpestanas-catedra button.activo{
    background:transparent;
    box-shadow:none;
}
.subpestanas-catedra button.activo:after{
    content:"";
    height:2px;
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    border-radius:999px;
    background:var(--texto);
}

/* Taller · Lecturas en miniaturas. */
.rejilla-lecturas-taller-catedra{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:18px;
    align-items:start;
}
.rejilla-lecturas-taller-catedra>.estado-vacio-catedra{grid-column:1/-1}
.tarjeta-lectura-taller-catedra{min-width:0;display:grid;gap:10px}
.portada-lectura-catedra{
    width:100%;
    aspect-ratio:4/5;
    min-height:0;
    padding:22px 18px;
    overflow:hidden;
    border:1px solid color-mix(in srgb,var(--borde) 82%,var(--texto));
    border-radius:4px 16px 16px 4px;
    background:var(--texto);
    color:var(--superficie);
    box-shadow:9px 13px 24px rgba(0,0,0,.12);
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    transition:transform .2s ease,box-shadow .2s ease;
}
.portada-lectura-catedra:hover,.portada-lectura-catedra:focus-visible{transform:translateY(-3px);box-shadow:12px 17px 28px rgba(0,0,0,.16)}
.portada-lectura-catedra.con-imagen{padding:0;background:var(--superficie-secundaria)}
.portada-lectura-catedra.con-imagen img{width:100%;height:100%;object-fit:cover;display:block}
.portada-lectura-catedra .lomo-portada{left:10px}
.portada-lectura-catedra .titulo-portada{font-family:var(--fuente-titulos-quijotext);font-size:clamp(18px,1.6vw,25px);line-height:1.15}
.portada-lectura-catedra .subtitulo-portada{max-width:92%;margin-top:9px;color:color-mix(in srgb,var(--superficie) 70%,transparent);font-size:10px;line-height:1.4}
.portada-lectura-catedra>small{position:absolute;left:18px;right:18px;bottom:17px;color:color-mix(in srgb,var(--superficie) 58%,transparent);font-size:8px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.simbolo-lectura-catedra{width:58px;height:58px;border:1px solid color-mix(in srgb,var(--superficie) 28%,transparent);border-radius:50%;display:grid;place-items:center}
.simbolo-lectura-catedra svg{width:25px;height:25px}
.cuerpo-tarjeta-lectura-catedra{min-width:0;display:grid;gap:3px;padding:0 2px}
.cuerpo-tarjeta-lectura-catedra>small{color:var(--texto-secundario);font-size:8px;letter-spacing:.12em}
.cuerpo-tarjeta-lectura-catedra>strong{min-width:0}
.cuerpo-tarjeta-lectura-catedra>strong button{max-width:100%;padding:0;border:0;background:transparent;color:var(--texto);font:inherit;font-weight:850;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.cuerpo-tarjeta-lectura-catedra>span{color:var(--texto-secundario);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tarjeta-lectura-taller-catedra>footer{display:flex;align-items:center;gap:6px;padding:0 2px}
.tarjeta-lectura-taller-catedra>footer .boton-icono{width:34px;height:34px}

/* Taller · Conversación. */
.herramientas-conversacion-catedra{display:flex;align-items:center;justify-content:space-between;gap:12px}
.buscador-conversacion-catedra{
    min-width:220px;
    max-width:720px;
    height:46px;
    padding:0 13px;
    border:1px solid var(--borde);
    border-radius:13px;
    background:var(--superficie);
    display:flex;
    align-items:center;
    gap:9px;
    flex:1;
}
.buscador-conversacion-catedra svg{width:16px;height:16px;flex:0 0 auto}
.buscador-conversacion-catedra input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--texto);font:inherit}
.selectores-conversacion-catedra{display:flex;align-items:center;gap:8px}
.selectores-conversacion-catedra select{
    height:46px;
    padding:0 34px 0 11px;
    border:1px solid var(--borde);
    border-radius:13px;
    background-color:var(--superficie);
    color:var(--texto);
    font:inherit;
    font-size:10px;
}
.form-comentario-catedra{
    width:100%;
    padding:16px;
    border-radius:18px;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
}
.cabecera-compositor-catedra{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cabecera-compositor-catedra>div:first-child{display:grid;gap:3px}
.cabecera-compositor-catedra>div:first-child>strong{font-size:13px}
.contexto-comentario-catedra{width:min(320px,42%);margin-left:auto}
.contexto-comentario-catedra[hidden]{display:none!important}
.contexto-comentario-catedra select{height:40px;padding:0 34px 0 10px}
.campo-comentario-catedra{width:100%;min-width:0;position:relative;display:block!important}
.campo-comentario-catedra textarea{width:100%!important;min-height:118px;display:block;resize:vertical}
.respuesta-contexto-catedra{
    padding:11px 12px;
    border:1px solid color-mix(in srgb,var(--texto) 18%,var(--borde));
    border-left:3px solid var(--texto);
    border-radius:12px;
    background:var(--superficie);
    display:grid;
    gap:5px;
}
.respuesta-contexto-catedra[hidden]{display:none!important}
.respuesta-contexto-catedra header{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--texto-secundario);font-size:9px}
.respuesta-contexto-catedra header strong{color:var(--texto)}
.respuesta-contexto-catedra p{margin:0;color:var(--texto-secundario);font-size:11px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fragmento-contexto-catedra{padding:11px 12px;border:1px solid color-mix(in srgb,var(--texto) 18%,var(--borde));border-left:3px solid var(--texto);border-radius:12px;background:var(--superficie);display:grid;gap:7px}
.fragmento-contexto-catedra[hidden]{display:none!important}
.fragmento-contexto-catedra header{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--texto-secundario);font-size:9px}
.fragmento-contexto-catedra header strong{color:var(--texto)}
.fragmento-contexto-catedra blockquote{margin:0;padding:0 2px;border:0;background:transparent;color:var(--texto-secundario);font-family:var(--fuente-titulos-quijotext);font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pie-compositor-catedra{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;grid-column:auto!important}
.bloque-lista-comentarios-catedra{display:grid;gap:12px}
.bloque-lista-comentarios-catedra[hidden]{display:none!important}
.paginacion-conversacion-catedra{min-height:44px;padding-top:2px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--texto-secundario);font-size:9px}
.paginacion-conversacion-catedra button[hidden]{display:none!important}
.lista-comentarios-catedra.cargando{opacity:.58;pointer-events:none}

/* Taller · Configuración fuera del flujo de lectura. */
.configuracion-taller-modal-catedra{display:grid!important;gap:9px}
.opcion-configuracion-catedra{
    min-height:72px;
    padding:12px;
    border:1px solid var(--borde);
    border-radius:14px;
    background:var(--superficie);
    display:grid!important;
    grid-template-columns:20px 40px minmax(0,1fr);
    align-items:center;
    gap:10px;
    cursor:pointer;
    transition:border-color .18s ease,background .18s ease;
}
.opcion-configuracion-catedra:has(input:checked){border-color:color-mix(in srgb,var(--texto) 38%,var(--borde));background:var(--superficie-secundaria)}
.opcion-configuracion-catedra>input{width:16px;height:16px;margin:0}
.opcion-configuracion-catedra>span{width:38px;height:38px;border-radius:11px;background:var(--superficie-secundaria);display:grid;place-items:center}
.opcion-configuracion-catedra>span svg{width:17px;height:17px}
.opcion-configuracion-catedra>div{min-width:0;display:grid;gap:3px}
.opcion-configuracion-catedra small{color:var(--texto-secundario);font-size:9px;line-height:1.45}

/* Evaluaciones · resultados. */
.panel-resultados-evaluacion-catedra{gap:22px}
.cabecera-resultados-evaluacion{padding-top:4px}
.cabecera-resultados-evaluacion>div{width:100%;display:block!important}
.cabecera-resultados-evaluacion h3{font-size:clamp(30px,3vw,40px)}
.resumen-resultados-catedra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.resumen-resultados-catedra>article{min-height:92px;padding:15px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie);display:flex;align-items:center;gap:12px}
.icono-resumen-resultado{width:44px;height:44px;border-radius:13px;background:var(--superficie-secundaria);display:grid;place-items:center;flex:0 0 auto}
.icono-resumen-resultado svg{width:19px;height:19px}
.resumen-resultados-catedra article>div{display:grid;gap:1px}
.resumen-resultados-catedra b{font-family:var(--fuente-titulos-quijotext);font-size:27px;line-height:1}
.resumen-resultados-catedra article>div>span{color:var(--texto-secundario);font-size:9px}
.contenedor-tabla-resultados-catedra{border:1px solid var(--borde);border-radius:18px;background:var(--superficie);overflow:hidden}
.contenedor-tabla-resultados-catedra>header{padding:14px 16px;border-bottom:1px solid var(--borde);background:var(--superficie-secundaria)}
.contenedor-tabla-resultados-catedra>header>div{display:grid;gap:2px}
.contenedor-tabla-resultados-catedra>header span{color:var(--texto-secundario);font-size:9px}
.cabecera-tabla-resultados-catedra{padding:10px 14px;border-bottom:1px solid var(--borde);display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,.55fr) minmax(105px,.4fr) 104px;align-items:center;gap:10px;color:var(--texto-secundario);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.contenedor-tabla-resultados-catedra .tabla-resultados-catedra{gap:0}
.contenedor-tabla-resultados-catedra .fila-resultado-catedra{min-height:70px;padding:12px 14px;border:0;border-bottom:1px solid var(--borde);border-radius:0;grid-template-columns:minmax(180px,1fr) minmax(130px,.55fr) minmax(105px,.4fr) 104px}
.contenedor-tabla-resultados-catedra .fila-resultado-catedra:last-of-type{border-bottom:0}
.estado-intento-catedra{width:max-content;max-width:100%;padding:6px 8px;border:1px solid var(--borde);border-radius:999px;background:var(--superficie-secundaria);display:grid;gap:1px;color:var(--texto)!important;font-size:8px!important;font-weight:800}
.estado-intento-catedra small{font-size:7px!important;font-weight:650}
.nota-intento-catedra{color:var(--texto)!important;font-size:12px!important;font-weight:900}
.contenedor-tabla-resultados-catedra>.tabla-resultados-catedra>.estado-vacio-catedra{margin:14px;min-height:210px}
.bloque-rendimiento-preguntas-catedra{display:grid;gap:14px}

/* Alumno · ficha contextual. */
.correo-alumno-catedra{display:inline-block;margin-top:9px;color:var(--texto-secundario);font-size:10px}
.trayectoria-alumno-catedra{display:grid;gap:26px}
.trayectoria-alumno-catedra>section{display:grid;gap:10px}

/* El Escribano · constructor de preguntas. */
.modal-grande{width:min(1020px,100%)}
.modal-constructor-preguntas-escribano{width:min(1080px,calc(100vw - 40px));height:min(860px,calc(100dvh - 40px));max-height:min(900px,calc(100dvh - 40px));overflow:hidden;display:flex;flex-direction:column}
.modal-constructor-preguntas-escribano>.modal-cabecera p{max-width:760px;margin:6px 0 0;color:var(--texto-secundario);font-size:11px;line-height:1.5}
.modal-constructor-preguntas-escribano>form.constructor-preguntas-escribano{flex:1 1 auto;min-height:0;padding:0!important;overflow:hidden!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto;overscroll-behavior:none}
.constructor-preguntas-cuerpo{min-height:0;padding:20px 24px 24px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.72fr);gap:18px;align-items:start}
.modal-constructor-preguntas-escribano>.constructor-preguntas-escribano>.acciones-modal:last-child{position:static!important;inset:auto!important;z-index:3;min-height:72px;margin:0!important;padding:14px 24px calc(14px + env(safe-area-inset-bottom))!important;border-top:1px solid var(--borde);background:var(--superficie);box-shadow:0 -10px 26px rgba(0,0,0,.045);backdrop-filter:none;display:flex;align-items:center;justify-content:flex-end;gap:10px}
.panel-configuracion-escribano{display:grid;gap:13px}
.identidad-evaluacion-escribano{padding:12px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria);display:flex;align-items:center;gap:10px}
.icono-constructor-escribano{width:42px;height:42px;border-radius:12px;background:var(--texto);color:var(--superficie);display:grid;place-items:center;flex:0 0 auto}
.icono-constructor-escribano svg{width:19px;height:19px}
.identidad-evaluacion-escribano>div{min-width:0;display:grid;gap:2px}
.identidad-evaluacion-escribano small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.1em}
.identidad-evaluacion-escribano strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bloque-constructor-escribano{padding:14px;border:1px solid var(--borde);border-radius:15px;display:grid;gap:12px}
.bloque-constructor-escribano>header{display:grid;grid-template-columns:27px minmax(0,1fr);gap:9px;align-items:start}
.bloque-constructor-escribano>header>span{width:27px;height:27px;border-radius:50%;background:var(--texto);color:var(--superficie);display:grid;place-items:center;font-size:8px;font-weight:900}
.bloque-constructor-escribano>header>div{display:grid;gap:2px}
.bloque-constructor-escribano>header small{color:var(--texto-secundario);font-size:9px;line-height:1.4}
.bloque-constructor-escribano textarea{width:100%;padding:10px 11px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto);font:inherit;resize:vertical}
.control-cantidad-preguntas{display:flex;align-items:center;gap:8px}
.control-cantidad-preguntas>input{width:86px;height:42px;padding:0 10px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto);font:inherit;font-weight:850}
.control-cantidad-preguntas>div{display:flex;gap:5px;flex-wrap:wrap}
.control-cantidad-preguntas button{height:32px;min-width:38px;padding:0 8px;border:1px solid var(--borde);border-radius:9px;background:var(--superficie);color:var(--texto-secundario);font:inherit;font-size:9px;font-weight:800;cursor:pointer}
.control-cantidad-preguntas button:hover,.control-cantidad-preguntas button:focus-visible{border-color:var(--texto);color:var(--texto)}
.opciones-tipo-pregunta-escribano{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.opciones-tipo-pregunta-escribano label{position:relative;min-height:68px;padding:10px;border:1px solid var(--borde);border-radius:12px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;cursor:pointer}
.opciones-tipo-pregunta-escribano label:has(input:checked){border-color:var(--texto);background:var(--superficie-secundaria);box-shadow:inset 0 0 0 1px var(--texto)}
.opciones-tipo-pregunta-escribano label:has(input:focus-visible){outline:2px solid color-mix(in srgb,var(--texto) 45%,transparent);outline-offset:2px}
.opciones-tipo-pregunta-escribano input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}
.opciones-tipo-pregunta-escribano label>span{width:32px;height:32px;border-radius:9px;background:var(--superficie-secundaria);display:grid;place-items:center}
.opciones-tipo-pregunta-escribano label:has(input:checked)>span{background:var(--texto);color:var(--superficie)}
.opciones-tipo-pregunta-escribano svg{width:15px;height:15px}
.opciones-tipo-pregunta-escribano label>div{min-width:0;display:grid;gap:2px}
.opciones-tipo-pregunta-escribano label small{color:var(--texto-secundario);font-size:8px;line-height:1.35}
.segmentado-dificultad-escribano{display:grid;grid-template-columns:repeat(3,1fr);padding:3px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie-secundaria)}
.segmentado-dificultad-escribano label{position:relative;cursor:pointer}
.segmentado-dificultad-escribano input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}
.segmentado-dificultad-escribano span{height:36px;border-radius:8px;display:grid;place-items:center;color:var(--texto-secundario);font-size:9px;font-weight:850}
.segmentado-dificultad-escribano label:has(input:checked) span{background:var(--superficie);color:var(--texto);box-shadow:0 3px 10px rgba(0,0,0,.06)}
.segmentado-dificultad-escribano label:has(input:focus-visible) span{outline:2px solid color-mix(in srgb,var(--texto) 45%,transparent);outline-offset:-2px}
.guia-constructor-escribano{position:sticky;top:0;padding:17px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie-secundaria);display:grid;gap:12px}
.guia-constructor-escribano h3{margin:0;font-family:var(--fuente-titulos-quijotext);font-size:24px}
.guia-constructor-escribano dl{margin:0;display:grid;gap:0}
.guia-constructor-escribano dl>div{padding:8px 0;border-bottom:1px solid var(--borde);display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px}
.guia-constructor-escribano dt{color:var(--texto-secundario);font-size:8px}
.guia-constructor-escribano dd{margin:0;font-size:9px;font-weight:850;text-align:right;overflow-wrap:anywhere}
.nota-constructor-escribano{padding:11px;border-radius:13px;background:var(--superficie);display:flex;gap:9px;align-items:flex-start}
.nota-constructor-escribano>svg{width:18px;height:18px;flex:0 0 auto}
.nota-constructor-escribano>div{display:grid;gap:4px}
.nota-constructor-escribano strong{font-size:10px}
.nota-constructor-escribano p{margin:0;color:var(--texto-secundario);font-size:8px;line-height:1.5}
.cargando-boton-catedra{opacity:.7;pointer-events:none}

@media(max-width:900px){
    .constructor-preguntas-cuerpo{grid-template-columns:1fr}
    .guia-constructor-escribano{position:static}
    .rejilla-lecturas-taller-catedra{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
    .cabecera-tabla-resultados-catedra,.contenedor-tabla-resultados-catedra .fila-resultado-catedra{grid-template-columns:minmax(150px,1fr) minmax(115px,.55fr) minmax(90px,.4fr) 94px}
}
@media(max-width:760px){
    .acciones-panel-catedra{width:100%}
    .acciones-panel-catedra .boton{flex:1}
    .subpestanas-catedra{gap:18px;border-radius:0}
    .subpestanas-catedra button{min-height:42px;padding:0 1px}
    [data-panel-evaluaciones]{gap:14px}
    .rejilla-lecturas-taller-catedra{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 11px}
    .portada-lectura-catedra{padding:16px 12px;border-radius:3px 13px 13px 3px}
    .portada-lectura-catedra>small{left:12px;right:12px;bottom:12px}
    .herramientas-conversacion-catedra{align-items:stretch;flex-direction:column}
    .buscador-conversacion-catedra{width:100%;max-width:none}
    .selectores-conversacion-catedra{width:100%;display:grid;grid-template-columns:1fr 1fr}
    .selectores-conversacion-catedra select{width:100%;min-width:0}
    .cabecera-compositor-catedra{flex-direction:column}
    .contexto-comentario-catedra{width:100%;margin:0}
    .pie-compositor-catedra{align-items:stretch!important;flex-direction:column}
    .pie-compositor-catedra .boton{width:100%}
    .paginacion-conversacion-catedra{align-items:stretch;flex-direction:column}
    .paginacion-conversacion-catedra .boton{width:100%}
    .resumen-resultados-catedra{grid-template-columns:1fr}
    .cabecera-tabla-resultados-catedra{display:none}
    .contenedor-tabla-resultados-catedra .fila-resultado-catedra{grid-template-columns:minmax(0,1fr) auto;padding:13px}
    .contenedor-tabla-resultados-catedra .fila-resultado-catedra>div{grid-column:1/-1}
    .contenedor-tabla-resultados-catedra .fila-resultado-catedra>.estado-intento-catedra{grid-column:1}
    .contenedor-tabla-resultados-catedra .fila-resultado-catedra>.nota-intento-catedra{grid-column:2;grid-row:2;align-self:center;text-align:right}
    .contenedor-tabla-resultados-catedra .fila-resultado-catedra>.boton{grid-column:1/-1;width:100%}
    .modal-constructor-preguntas-escribano{width:calc(100vw - 18px);height:calc(100dvh - 18px);max-height:calc(100dvh - 18px)}
    .constructor-preguntas-cuerpo{padding:16px 18px 20px}
    .modal-constructor-preguntas-escribano>.constructor-preguntas-escribano>.acciones-modal:last-child{padding:12px 18px calc(12px + env(safe-area-inset-bottom))!important}
    .opciones-tipo-pregunta-escribano{grid-template-columns:1fr}
    .control-cantidad-preguntas{align-items:stretch;flex-direction:column}
    .control-cantidad-preguntas>input{width:100%}
    .control-cantidad-preguntas>div{display:grid;grid-template-columns:repeat(4,1fr)}
    .opcion-configuracion-catedra{grid-template-columns:20px 36px minmax(0,1fr);padding:10px}
}
@media(max-width:430px){
    .rejilla-lecturas-taller-catedra{grid-template-columns:minmax(0,1fr)}
    .portada-lectura-catedra{width:min(230px,78vw);justify-self:center}
    .cuerpo-tarjeta-lectura-catedra,.tarjeta-lectura-taller-catedra>footer{width:min(230px,78vw);justify-self:center}
    .selectores-conversacion-catedra{grid-template-columns:1fr}
}
.cargando-boton-catedra{width:13px;height:13px;margin-right:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;vertical-align:-2px;animation:giro-catedra .65s linear infinite}
@keyframes giro-catedra{to{transform:rotate(360deg)}}


/* Quijotext 3.6.9 · verificación explícita de acceso a La Cátedra por código + correo. */
.bloque-verificacion-catedra{
    margin-top:20px;
    padding:18px;
    border:1px solid var(--borde);
    border-radius:16px;
    background:var(--superficie);
}
.bloque-verificacion-catedra.secundario{background:var(--superficie-secundaria)}
.cabecera-verificacion-catedra{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.cabecera-verificacion-catedra>div{display:grid;gap:3px}
.cabecera-verificacion-catedra strong{font-size:14px}
.cabecera-verificacion-catedra span:not(.paso-catedra){font-size:12px;line-height:1.5;color:var(--texto-secundario)}
.paso-catedra{width:26px;height:26px;flex:0 0 26px;border-radius:999px;background:var(--negro);color:var(--blanco);display:grid;place-items:center;font-size:11px;font-weight:800}
html[data-tema="oscuro"] .paso-catedra{background:var(--blanco);color:var(--negro)}
.form-comprobar-catedra{margin-top:0}
.separador-acceso-catedra{height:36px;display:flex;align-items:center;gap:12px;color:var(--texto-secundario);font-size:11px}
.separador-acceso-catedra::before,.separador-acceso-catedra::after{content:"";height:1px;flex:1;background:var(--borde)}
.separador-acceso-catedra span{padding:0 4px}
.resultado-acceso-catedra.pendiente{border-color:color-mix(in srgb,#f0a000 42%,var(--borde));background:color-mix(in srgb,#f0a000 7%,var(--superficie));color:var(--texto)}
@media (max-width:640px){
    .bloque-verificacion-catedra{padding:15px}
}

/* Quijotext 3.6.10 · participantes de La Cátedra */
.lista-participantes-catedra .identidad-miembro-taller-catedra{min-width:0;display:grid;gap:4px}
.lista-participantes-catedra .identidad-miembro-taller-catedra strong{line-height:1.2}
.acciones-miembro-taller-catedra{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.acciones-miembro-taller-catedra .boton-icono{flex:0 0 auto}
.boton-retirar-miembro-catedra{color:#9e332b}
.boton-retirar-miembro-catedra:hover{border-color:color-mix(in srgb,#9e332b 44%,var(--borde));background:color-mix(in srgb,#9e332b 7%,var(--superficie))}
.confirmacion-retirar-participante-catedra{padding:18px 24px 8px;display:grid;gap:9px}
.confirmacion-retirar-participante-catedra p{margin:0;line-height:1.55;color:var(--texto-secundario)}
.confirmacion-retirar-participante-catedra p:first-child{color:var(--texto);font-size:15px}
.popover-participante-catedra header>div:last-child{min-width:0;display:grid;gap:5px}
.popover-participante-catedra header strong{display:block;line-height:1.18}
.popover-participante-catedra header small{display:block;color:var(--texto-secundario);font-size:10px;line-height:1.25;text-transform:capitalize}
.popover-participante-catedra footer{justify-content:flex-start}
@media(max-width:700px){
  .lista-participantes-catedra article{grid-template-columns:38px minmax(0,1fr)}
  .acciones-miembro-taller-catedra{grid-column:2/-1;justify-content:flex-start;width:100%}
  .acciones-miembro-taller-catedra [data-rol-miembro-taller]{grid-column:auto;width:auto;flex:1 1 150px}
}

/* Quijotext 3.6.11 · lectura y conversación pública + gestión compacta de participantes. */
.titulo-material-publico-catedra{
    max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.titulo-material-publico-catedra:hover,.titulo-material-publico-catedra:focus-visible{text-decoration:underline;text-underline-offset:3px}
.pestanas-principales-publicas-catedra{margin-bottom:2px}
.panel-conversacion-publica-catedra{display:grid;gap:18px}
.subpestanas-conversacion-publica{margin-top:0}
.form-comentario-publico-catedra{margin:0}
.form-comentario-publico-catedra .campo-comentario-catedra textarea{width:100%}
.lista-comentarios-publica-catedra{display:grid;gap:12px}

/* Participantes: la tarjeta solo conserva identidad + menú contextual. */
.lista-participantes-catedra article[data-miembro-taller-catedra]{
    min-height:88px;padding:14px 15px;grid-template-columns:42px minmax(0,1fr) 38px;gap:12px;align-items:center;
}
.lista-participantes-catedra article[data-miembro-taller-catedra] .avatar-participante-catedra{width:42px;height:42px}
.lista-participantes-catedra .identidad-miembro-taller-catedra{gap:5px;padding-right:4px}
.lista-participantes-catedra .identidad-miembro-taller-catedra small{line-height:1.35}
.acciones-miembro-taller-catedra{width:auto;justify-content:flex-end;flex-wrap:nowrap}
.boton-menu-miembro-catedra{width:38px;height:38px;border-radius:11px}
.boton-menu-miembro-catedra svg{width:17px;height:17px}

.modal-gestion-participante-catedra>.modal-cabecera p{max-width:440px;margin:5px 0 0;color:var(--texto-secundario);font-size:10px;line-height:1.5}
.gestion-participante-catedra{padding:18px 24px 8px;display:grid;gap:16px}
.identidad-gestion-participante{padding:12px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria);display:flex;align-items:center;gap:11px}
.identidad-gestion-participante>.avatar-participante-catedra{width:42px;height:42px;flex:0 0 42px}
.identidad-gestion-participante>div{min-width:0;display:grid;gap:2px}
.identidad-gestion-participante small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.09em}
.identidad-gestion-participante strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bloque-gestion-participante{display:grid;gap:8px}
.etiqueta-gestion-participante{font-size:9px;font-weight:850;color:var(--texto-secundario)}
.opciones-rol-participante-catedra{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opciones-rol-participante-catedra>button{position:relative;min-height:92px;padding:12px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie);color:var(--texto);font:inherit;text-align:left;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:start;gap:9px;cursor:pointer;transition:border-color .16s ease,background .16s ease}
.opciones-rol-participante-catedra>button>span{width:34px;height:34px;border-radius:10px;background:var(--superficie-secundaria);display:grid;place-items:center}
.opciones-rol-participante-catedra>button>span svg{width:16px;height:16px}
.opciones-rol-participante-catedra>button>div{display:grid;gap:3px}
.opciones-rol-participante-catedra>button strong{font-size:11px}
.opciones-rol-participante-catedra>button small{color:var(--texto-secundario);font-size:8px;line-height:1.4}
.opciones-rol-participante-catedra .marca-rol{width:15px;height:15px;opacity:0;margin-top:3px}
.opciones-rol-participante-catedra>button.activo{border-color:var(--texto);background:var(--superficie-secundaria);box-shadow:inset 0 0 0 1px var(--texto)}
.opciones-rol-participante-catedra>button.activo .marca-rol{opacity:1}
.opciones-rol-participante-catedra>button:disabled{opacity:.58;cursor:wait}
.enlace-estudio-gestion-participante{width:max-content;justify-self:start}
.enlace-estudio-gestion-participante[hidden]{display:none!important}
.zona-peligro-gestion-participante{padding:12px;border:1px solid color-mix(in srgb,#9e332b 26%,var(--borde));border-radius:14px;background:color-mix(in srgb,#9e332b 4%,var(--superficie));display:flex;align-items:center;justify-content:space-between;gap:14px}
.zona-peligro-gestion-participante>div{display:grid;gap:3px}
.zona-peligro-gestion-participante>div strong{font-size:10px}
.zona-peligro-gestion-participante>div small{color:var(--texto-secundario);font-size:8px;line-height:1.4}
.boton-peligro-suave{color:#9e332b;border-color:color-mix(in srgb,#9e332b 28%,var(--borde));background:var(--superficie)}
.boton-peligro-suave:hover{border-color:color-mix(in srgb,#9e332b 55%,var(--borde));background:color-mix(in srgb,#9e332b 8%,var(--superficie))}

@media(max-width:700px){
    .lista-participantes-catedra article[data-miembro-taller-catedra]{grid-template-columns:40px minmax(0,1fr) 38px}
    .acciones-miembro-taller-catedra{grid-column:auto;width:auto;justify-content:flex-end}
    .opciones-rol-participante-catedra{grid-template-columns:1fr}
    .zona-peligro-gestion-participante{align-items:stretch;flex-direction:column}
    .zona-peligro-gestion-participante .boton{width:100%}
}
.tarjeta-material-publico-catedra{cursor:pointer;transition:border-color .16s ease,background .16s ease}
.tarjeta-material-publico-catedra:hover{border-color:color-mix(in srgb,var(--texto) 28%,var(--borde));background:var(--superficie-secundaria)}

/* Quijotext 3.6.12 · componentes compartidos de Conversación y lector editorial. */
.componente-conversacion-catedra{display:grid;gap:18px;width:100%;min-width:0}
.subpestanas-conversacion-catedra{margin-top:0}
.boton-menu-registro{width:38px;height:38px;min-width:38px;padding:0;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto);display:inline-grid;place-items:center;flex:0 0 auto;cursor:pointer;transition:background var(--transicion),border-color var(--transicion),color var(--transicion)}
.boton-menu-registro:hover{background:var(--superficie-secundaria);border-color:color-mix(in srgb,var(--texto) 34%,var(--borde))}
.boton-menu-registro svg{width:17px;height:17px}

/* El lector de La Cátedra utiliza la misma gramática visual de Obra compartida / Previsualización. */
.modal-lector-catedra-envolvente{padding:0}
.modal-lector-catedra-envolvente .modal-fondo{backdrop-filter:none;background:rgba(0,0,0,.55)}
.modal-lector-catedra{
    width:100vw!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    background:#b8b8b8;
    display:flex;
    flex-direction:column;
}
.cabecera-lector-catedra{
    min-height:70px;
    margin:0!important;
    padding:10px clamp(18px,4vw,34px);
    border-bottom:1px solid #d4d4d4;
    background:#fff;
    color:#000;
    align-items:center;
    flex:0 0 auto;
    z-index:8;
}
.identidad-lector-catedra{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px}
.identidad-lector-catedra .sobrelinea,.identidad-lector-catedra h2,.identidad-lector-catedra small{margin:0;line-height:1.18}
.identidad-lector-catedra h2{max-width:min(70vw,760px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit!important;font-size:17px!important;letter-spacing:0!important}
.identidad-lector-catedra small{max-width:min(70vw,760px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666;font-size:10px}
.identidad-lector-catedra small:empty{display:none}
.cabecera-lector-catedra .boton-icono{color:#000;background:#fff;border-color:#d8d8d8}
.cuerpo-lector-catedra{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    padding:30px 20px 74px;
    background:#b8b8b8;
    color:#000;
    font-family:Georgia,"Times New Roman",serif;
    user-select:text;
    overscroll-behavior:contain;
}
.cuerpo-lector-catedra.lector-documento-activo{padding:0 20px 78px}
.cuerpo-lector-catedra .lector-documento-catedra{
    width:100%;
    padding:28px 0 46px;
    gap:28px;
    counter-reset:pagina;
}
.cuerpo-lector-catedra .lector-pagina-catedra{
    width:min(var(--ancho-pagina),calc(100vw - 48px));
    height:auto!important;
    min-height:var(--alto-pagina);
    overflow:visible!important;
    margin:0 auto;
    flex:0 0 auto;
}
.cuerpo-lector-catedra .lector-pagina-catedra [data-lectura-bloque]{scroll-margin-top:96px}
.cuerpo-lector-catedra .lector-pagina-catedra.destacado-temporal,
.cuerpo-lector-catedra [data-lectura-bloque].destacado-temporal{background:color-mix(in srgb,#C7FF2F 18%,transparent);outline:3px solid color-mix(in srgb,#C7FF2F 40%,transparent);border-radius:5px}
.cuerpo-lector-catedra .indice-previsualizacion a{color:#000;text-decoration:none;cursor:pointer}
.cuerpo-lector-catedra .indice-previsualizacion a:hover .titulo-apartado-indice{text-decoration:underline;text-underline-offset:3px}
.cuerpo-lector-catedra .bloque-texto-previsualizado img,
.cuerpo-lector-catedra .tabla-previsualizacion{max-width:100%}
.barra-cita-taller-catedra{position:absolute;right:24px;bottom:22px;z-index:12}
.barra-cita-taller-catedra .boton{box-shadow:0 12px 35px rgba(0,0,0,.24)}

@media(max-width:760px){
    .modal-lector-catedra{width:100vw!important;height:100dvh!important}
    .cabecera-lector-catedra{min-height:62px;padding:9px 12px}
    .identidad-lector-catedra h2{max-width:72vw;font-size:14px!important}
    .identidad-lector-catedra .sobrelinea{font-size:8px}
    .cuerpo-lector-catedra,.cuerpo-lector-catedra.lector-documento-activo{padding:0 10px 76px}
    .cuerpo-lector-catedra .lector-documento-catedra{padding:12px 0 28px;gap:12px}
    .cuerpo-lector-catedra .lector-pagina-catedra{
        width:100%;
        min-height:0;
        padding:clamp(28px,7vw,44px) clamp(22px,7vw,42px)!important;
        box-shadow:0 3px 18px rgba(0,0,0,.16);
    }
    .cuerpo-lector-catedra .portada-impresion h1{font-size:clamp(31px,10vw,48px)}
    .cuerpo-lector-catedra .portada-impresion h2{font-size:clamp(18px,5vw,25px)}
    .cuerpo-lector-catedra .flujo-documento{font-size:16px;line-height:1.72}
    .cuerpo-lector-catedra .flujo-documento h1{font-size:30px}.cuerpo-lector-catedra .flujo-documento h2{font-size:25px}.cuerpo-lector-catedra .flujo-documento h3{font-size:21px}
    .barra-cita-taller-catedra{left:10px;right:10px;bottom:10px}.barra-cita-taller-catedra .boton{width:100%}
}

/* Quijotext 3.6.13 · Conversación de La Cátedra -------------------------------- */
@keyframes comentario-catedra-publicado-neon {
    0% {
        border-color: var(--borde);
        background: var(--superficie);
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--verde-pro, #C7FF2F) 0%, transparent);
    }
    22% {
        border-color: var(--verde-pro, #C7FF2F);
        background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 13%, var(--superficie));
        box-shadow: 0 0 0 5px color-mix(in srgb, var(--verde-pro, #C7FF2F) 28%, transparent), 0 12px 34px color-mix(in srgb, var(--verde-pro, #C7FF2F) 16%, transparent);
    }
    100% {
        border-color: var(--borde);
        background: var(--superficie);
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--verde-pro, #C7FF2F) 0%, transparent);
    }
}
.comentario-catedra.comentario-recien-publicado {
    position: relative;
    z-index: 1;
    animation: comentario-catedra-publicado-neon 2.45s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
    .comentario-catedra.comentario-recien-publicado {
        animation: none;
        border-color: var(--verde-pro, #C7FF2F);
        background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 10%, var(--superficie));
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--verde-pro, #C7FF2F) 20%, transparent);
    }
}

/* Quijotext 3.6.14 · marca global y lectura explícita de notificaciones */
.marca-simbolo.con-logo { overflow: hidden; background: transparent; color: transparent; border-color: transparent; }
.marca-simbolo.con-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.logo-aplicacion { display: block; width: auto; height: auto; object-fit: contain; }
.logo-aplicacion-login { max-width: min(220px, 72%); max-height: 56px; }
.logo-aplicacion-cabecera { max-width: 150px; max-height: 38px; }
.logo-aplicacion-previsualizacion { max-width: 126px; max-height: 34px; flex: 0 0 auto; border-radius: 10px; overflow: hidden; }
.logo-aplicacion-mini { max-width: 92px; max-height: 30px; }
.logo-aplicacion-lector { max-width: 112px; max-height: 34px; flex: 0 0 auto; border-radius: 10px; overflow: hidden; }
.identidad-previsualizacion { min-width: 0; display: flex; align-items: center; gap: 11px; }
.identidad-previsualizacion > div { min-width: 0; display:flex; flex-direction:column; justify-content:center; gap:1px; }
.identidad-previsualizacion > div span,.identidad-previsualizacion > div strong { margin:0; line-height:1.16; }
.marca-previsualizacion-respaldo { width: 34px; height: 34px; flex: 0 0 34px; font-size: 17px; }
.marca-identidad-lector-catedra { min-width: 0; display: flex; align-items: center; gap: 14px; }

.rejilla-marca-personalizacion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr); gap: 28px; align-items: start; }
.vista-previa-logo-app { min-width: 0; }
.vista-previa-logo-app > .sobrelinea { display: block; margin-bottom: 10px; }
.muestras-logo-app { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.muestras-logo-app article { min-height: 150px; padding: 16px; border: 1px solid var(--borde); border-radius: 16px; display: flex; flex-direction: column; gap: 14px; }
.muestras-logo-app article > small { font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.muestras-logo-app article > div { flex: 1; min-height: 80px; display: grid; place-items: center; }
.muestras-logo-app img { display: block; max-width: 88%; max-height: 72px; width: auto; height: auto; object-fit: contain; }
.muestra-logo-clara { background: #fff; color: #111; }
.muestra-logo-oscura { background: #050505; color: #fff; }
.muestra-logo-oscura .marca-simbolo { background: #fff; color: #000; }
.nota-configuracion-marca { padding: 12px 14px; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie-secundaria); color: var(--texto-secundario); display: flex; align-items: flex-start; gap: 9px; font-size: 12px; line-height: 1.55; }
.nota-configuracion-marca svg { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 1px; }
.nota-configuracion-marca p { margin: 0; }
.mini-login-marca .logo-aplicacion-mini { filter: none; }
.correo-builder-marca img { width: auto; height: auto; max-width: 140px; max-height: 34px; flex: 0 1 auto; border-radius: 0; }

.resumen-notificaciones-popup { min-height: 46px; padding: 10px 18px; border-bottom: 1px solid var(--borde); background: var(--superficie-secundaria); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.resumen-notificaciones-popup > span { color: var(--texto-secundario); font-size: 12px; }
.resumen-notificaciones-popup > span strong { color: var(--texto); font-size: 13px; }
.accion-marcar-todas-notificaciones { padding: 4px 0; border: 0; background: transparent; color: var(--texto); font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.accion-marcar-todas-notificaciones:hover { opacity: .65; }
.accion-marcar-todas-notificaciones:disabled { color: var(--texto-secundario); text-decoration: none; cursor: default; opacity: .55; }
.tarjeta-novedad-cuenta,
.tarjeta-novedad-administracion { padding: 0; border-bottom: 1px solid var(--borde); display: flex; align-items: stretch; gap: 4px; color: inherit; text-decoration: none; }
.tarjeta-novedad-cuenta:hover,
.tarjeta-novedad-administracion:hover { background: var(--superficie-secundaria); }
.tarjeta-novedad-cuenta.no-leida,
.tarjeta-novedad-administracion.no-leida { background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 7%, var(--superficie)); }
.tarjeta-novedad-cuenta.leida,
.tarjeta-novedad-administracion.leida { opacity: .72; }
.contenido-novedad-cuenta { min-width: 0; flex: 1 1 auto; padding: 11px 6px 11px 4px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.contenido-novedad-cuenta > svg { width: 14px; height: 14px; color: var(--texto-secundario); }
.check-notificacion-cuenta { width: 32px; height: 32px; flex: 0 0 32px; align-self: center; margin: 0 5px 0 0; padding: 0; border: 1px solid var(--borde); border-radius: 9px; background: var(--superficie); color: var(--texto-secundario); display: inline-grid; place-items: center; cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease; }
.check-notificacion-cuenta:hover:not(:disabled) { border-color: #111; color: #111; transform: translateY(-1px); }
.check-notificacion-cuenta svg { width: 15px; height: 15px; }
.check-notificacion-cuenta.marcada,
.check-notificacion-cuenta:disabled.marcada { border-color: var(--verde-pro, #C7FF2F); background: var(--verde-pro, #C7FF2F); color: #050505; opacity: 1; cursor: default; }
html[data-tema="oscuro"] .check-notificacion-cuenta:hover:not(:disabled) { border-color: #fff; color: #fff; }

@media (max-width: 760px) {
    .rejilla-marca-personalizacion { grid-template-columns: 1fr; }
    .muestras-logo-app { grid-template-columns: 1fr; }
    .logo-aplicacion-login { max-width: min(190px, 70vw); max-height: 50px; }
    .logo-aplicacion-previsualizacion { max-width: 82px; max-height: 30px; }
    .resumen-notificaciones-popup { align-items: flex-start; flex-direction: column; gap: 5px; }
    .contenido-novedad-cuenta { grid-template-columns: 26px minmax(0,1fr) auto; padding-left: 2px; }
    .check-notificacion-cuenta { margin-right: 2px; }
}
/* Ajustes de proporción para logos horizontales en superficies que antes asumían un favicon cuadrado. */
.marca-aplicacion .marca-simbolo.con-logo { width: auto; height: 38px; max-width: 104px; flex: 0 0 auto; border-radius: 10px; }
.marca-aplicacion .marca-simbolo.con-logo img { width: auto; height: 38px; max-width: 104px; }
.marca-pagina-publica img { display: block; width: auto; height: auto; max-width: 150px; max-height: 38px; border-radius: 0; background: transparent; object-fit: contain; }
@media (max-width: 1050px) {
    .marca-aplicacion .marca-simbolo.con-logo { width: 38px; height: 38px; flex-basis: 38px; }
    .marca-aplicacion .marca-simbolo.con-logo img { max-width: 38px; }
}


/* Quijotext 3.6.15 · verificación de correo y reenvío desde el acceso */
.reenvio-verificacion-login {
    margin: -2px 0 14px;
    padding: 11px 12px;
    border: 1px solid color-mix(in srgb, var(--verde-pro, #C7FF2F) 62%, var(--borde));
    border-radius: 12px;
    background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 8%, var(--superficie));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.reenvio-verificacion-login[hidden] { display: none !important; }
.reenvio-verificacion-login > span { min-width: 0; display: flex; align-items: center; gap: 8px; color: var(--texto-secundario); font-size: 11px; line-height: 1.35; }
.reenvio-verificacion-login > span svg { width: 15px; height: 15px; flex: 0 0 15px; color: var(--texto); }
.reenvio-verificacion-login button { flex: 0 0 auto; padding: 0; border: 0; background: transparent; color: var(--texto); font: inherit; font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.reenvio-verificacion-login button:hover { opacity: .65; }
.reenvio-verificacion-login button:disabled { opacity: .45; cursor: wait; }
.interruptor-bloqueado { opacity: .86; }
.interruptor-bloqueado input:disabled + span { cursor: not-allowed; }
@media (max-width: 560px) {
    .reenvio-verificacion-login { align-items: flex-start; flex-direction: column; gap: 7px; }
}


/* Quijotext 3.6.16 · Cátedra, Cerrajero y marca */
@media (min-width: 1051px) {
    .marca-aplicacion { padding-left: 0; padding-right: 0; justify-content: flex-start; gap: 8px; }
    .marca-aplicacion .marca-simbolo.con-logo { width: auto; height: 38px; max-width: 104px; flex: 0 0 auto; border-radius: 10px; overflow: hidden; }
    .marca-aplicacion .marca-simbolo.con-logo img { width: auto; height: 38px; max-width: 104px; border-radius: inherit; object-fit: contain; object-position: left center; }
}
.formulario-modal-llave { flex: 0 1 auto !important; min-height: 0; display: block !important; overflow: visible !important; padding: 0 !important; }
.formulario-modal-llave .cuerpo-formulario-llave { min-height: 0; max-height: calc(100dvh - 250px) !important; overflow-y: auto; overflow-anchor: none; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 22px 24px; }
.formulario-modal-llave > .pie-fijo-modal { position: relative; inset: auto; margin: 0; }
.formulario-modal-catedra { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.formulario-modal-catedra .cuerpo-formulario-modal-catedra { flex: 1 1 auto; min-height: 0; max-height: none; overflow-y: auto; padding: 22px 24px; }
.formulario-modal-catedra > .acciones-modal { flex: 0 0 auto; margin: 0; }
.campo-buscador-catedra { gap: 10px; }
.campo-buscador-catedra-input { display: flex; align-items: center; gap: 10px; padding: 0 14px; min-height: 52px; border: 1px solid var(--borde); border-radius: 14px; background: var(--superficie); }
.campo-buscador-catedra-input svg { width: 17px; height: 17px; color: var(--texto-secundario); flex: 0 0 17px; }
.campo-buscador-catedra-input input { border: 0; background: transparent; min-height: 50px; padding: 0; box-shadow: none; }
.lista-buscador-catedra { display: grid; gap: 8px; max-height: 280px; overflow-y: auto; padding-right: 2px; }
.opcion-buscador-catedra { width: 100%; padding: 12px 14px; border: 1px solid var(--borde); border-radius: 14px; background: var(--superficie); text-align: left; display: flex; flex-direction: column; gap: 4px; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.opcion-buscador-catedra strong { font-size: 15px; line-height: 1.25; }
.opcion-buscador-catedra small { color: var(--texto-secundario); line-height: 1.4; }
.opcion-buscador-catedra:hover,.opcion-buscador-catedra.activa { border-color: #000; background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 12%, var(--superficie)); transform: translateY(-1px); }
.estado-vacio-buscador-catedra { padding: 12px 14px; border: 1px dashed var(--borde); border-radius: 14px; color: var(--texto-secundario); }
html[data-tema="oscuro"] .campo-buscador-catedra-input { background: var(--superficie); }
html[data-tema="oscuro"] .opcion-buscador-catedra:hover,html[data-tema="oscuro"] .opcion-buscador-catedra.activa { border-color: var(--verde-pro, #C7FF2F); background: color-mix(in srgb, var(--verde-pro, #C7FF2F) 10%, var(--superficie)); }
.referencia-bitacora-catedra { margin-bottom: 16px; padding: 13px 15px; border: 1px solid var(--borde); border-left: 3px solid var(--verde-pro, #C7FF2F); border-radius: 12px; background: var(--superficie-secundaria); }
.referencia-bitacora-catedra blockquote { margin: 8px 0 0; color: var(--texto-secundario); font-size: 13px; line-height: 1.55; }
.acciones-cabecera-comentario-catedra { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.menu-comentario-catedra { position: relative; }
.boton-menu-comentario-catedra { width: 34px; height: 34px; }
.menu-acciones-comentario-catedra { position: absolute; z-index: 45; top: calc(100% + 7px); right: 0; min-width: 190px; padding: 6px; border: 1px solid var(--borde); border-radius: 12px; background: var(--superficie); box-shadow: 0 14px 38px color-mix(in srgb, #000 16%, transparent); }
.menu-acciones-comentario-catedra[hidden] { display: none !important; }
.menu-acciones-comentario-catedra button { width: 100%; min-height: 38px; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--texto); display: flex; align-items: center; gap: 9px; text-align: left; cursor: pointer; }
.menu-acciones-comentario-catedra button:hover { background: var(--superficie-secundaria); }
.menu-acciones-comentario-catedra button svg { width: 15px; height: 15px; }
.menu-acciones-comentario-catedra .accion-peligrosa-comentario { color: #b3261e; }
.marca-edicion-comentario { margin-top: 3px; color: var(--texto-secundario); font-size: 10px; font-weight: 600; letter-spacing: .01em; }
.comentario-eliminado-catedra { margin: 9px 0 3px; padding: 12px 14px; border: 1px dashed var(--borde); border-radius: 10px; color: var(--texto-secundario); display: flex; align-items: center; gap: 8px; font-size: 12px; font-style: italic; }
.comentario-eliminado-catedra svg { width: 15px; height: 15px; }
.comentario-catedra.comentario-eliminado { opacity: .78; }
.modal-comentario-dinamico-catedra .modal-contenido { max-height: min(680px, calc(100dvh - 42px)); }
@media (max-width: 760px) {
    .formulario-modal-llave .cuerpo-formulario-llave, .formulario-modal-catedra .cuerpo-formulario-modal-catedra { padding: 18px 16px; }
    .menu-acciones-comentario-catedra { right: -4px; min-width: 176px; }
}


/* Quijotext 3.6.17 · estabilidad de marca, modales y contraste oscuro */
html[data-tema="oscuro"] .menu-acciones-comentario-catedra .accion-peligrosa-comentario { color: #ff8b82; }
html[data-tema="oscuro"] .boton-menu-comentario-catedra { background: var(--superficie); color: var(--texto); border-color: var(--borde); }
html[data-tema="oscuro"] .boton-menu-comentario-catedra:hover { background: var(--superficie-secundaria); border-color: color-mix(in srgb, var(--texto) 32%, var(--borde)); }
.modal-contenido:has(> .formulario-modal-llave) { height: auto !important; }
@media (max-width: 560px) {
    .formulario-modal-llave .cuerpo-formulario-llave { max-height: calc(100dvh - 220px) !important; }
}

/* Quijotext 3.6.19 · diagnóstico operativo de El Escribano */
.estado-sistema-escribano-admin{margin:0 0 18px;padding:16px;border:1px solid var(--borde);border-radius:20px;background:var(--superficie-secundaria)}
.estado-sistema-escribano-admin .cabecera-seccion-admin{align-items:center;margin-bottom:14px}.estado-sistema-escribano-admin .cabecera-seccion-admin h2{font-size:26px}.estado-sistema-escribano-admin .cabecera-seccion-admin p{font-size:11px;line-height:1.5}
.rejilla-estado-escribano{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.tarjeta-estado-escribano{min-width:0;padding:12px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie);display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px}
.indicador-estado-escribano{width:9px;height:9px;border-radius:50%;background:#9f9f9f;box-shadow:0 0 0 4px color-mix(in srgb,#9f9f9f 12%,transparent)}
.tarjeta-estado-escribano.correcto .indicador-estado-escribano{background:var(--verde-pro);box-shadow:0 0 0 4px color-mix(in srgb,var(--verde-pro) 18%,transparent)}
.tarjeta-estado-escribano.atencion .indicador-estado-escribano{background:#f0a44b;box-shadow:0 0 0 4px color-mix(in srgb,#f0a44b 18%,transparent)}
.tarjeta-estado-escribano>div{min-width:0;display:grid;gap:2px}.tarjeta-estado-escribano small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.12em;font-weight:850}.tarjeta-estado-escribano strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tarjeta-estado-escribano [data-texto-estado]{color:var(--texto-secundario);font-size:9px;line-height:1.35}.tarjeta-estado-escribano .boton{white-space:nowrap}
.detalle-prueba-escribano{margin-top:10px;padding:10px 12px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);font-size:10px;line-height:1.5}.detalle-prueba-escribano.correcto{border-color:color-mix(in srgb,var(--verde-pro) 55%,var(--borde));background:color-mix(in srgb,var(--verde-pro) 8%,var(--superficie))}.detalle-prueba-escribano.error{border-color:color-mix(in srgb,#d54c45 55%,var(--borde));background:color-mix(in srgb,#d54c45 7%,var(--superficie))}
@media(max-width:1150px){.rejilla-estado-escribano{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.estado-sistema-escribano-admin{padding:12px}.estado-sistema-escribano-admin .cabecera-seccion-admin{align-items:flex-start}.rejilla-estado-escribano{grid-template-columns:1fr}.tarjeta-estado-escribano{grid-template-columns:10px minmax(0,1fr)}}
.acciones-funcion-escribano{display:flex;align-items:center;justify-content:flex-end;gap:6px}.acciones-funcion-escribano .boton{min-width:auto}
@media(max-width:980px){.acciones-funcion-escribano{grid-column:1/-1;justify-content:flex-end}}

/* ======================================================================
   Quijotext 3.6.22 · lector editorial compartido: índice junto al papel
   Tanto el lector interno como el lector de participantes de La Cátedra
   colocan el botón Índice a la altura del documento para no chocar con
   el botón Comentar. La lectura pública general de obras no se altera.
   ====================================================================== */
#modal-lector-catedra .boton-indice-flotante,
#modal-lector-catedra-publica .boton-indice-flotante {
    width: 42px;
    height: 42px;
    right: max(88px, calc(50% - 10.8cm - 50px));
    bottom: 20px;
    opacity: .76;
    border-color: rgba(0, 0, 0, .22);
    background: rgba(255, 255, 255, .9);
    color: #191919;
    box-shadow: 0 5px 17px rgba(0, 0, 0, .14);
    backdrop-filter: blur(8px);
    z-index: 1466;
}
#modal-lector-catedra .boton-indice-flotante:hover,
#modal-lector-catedra .boton-indice-flotante[aria-expanded="true"],
#modal-lector-catedra-publica .boton-indice-flotante:hover,
#modal-lector-catedra-publica .boton-indice-flotante[aria-expanded="true"] {
    opacity: 1;
    background: #000;
    color: #fff;
}
html[data-tema="oscuro"] #modal-lector-catedra .boton-indice-flotante,
html[data-tema="oscuro"] #modal-lector-catedra-publica .boton-indice-flotante {
    border-color: rgba(255, 255, 255, .24);
    background: rgba(28, 28, 28, .9);
    color: #fff;
}
.modal-lector-catedra .capa-indice-flotante { z-index: 1463; }
.modal-lector-catedra .panel-indice-flotante { z-index: 1465; }
@media (max-width:900px) {
    #modal-lector-catedra .boton-indice-flotante,
    #modal-lector-catedra-publica .boton-indice-flotante {
        right: 92px;
        bottom: max(18px, env(safe-area-inset-bottom));
    }
}


/* Quijotext 3.6.20 · acciones del diagnóstico de IA */
.acciones-diagnostico-escribano {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
@media (max-width: 650px) {
    .acciones-diagnostico-escribano { justify-content: flex-start; }
}

/* ======================================================================
   Quijotext 3.6.23 · La Cátedra: constructores, solicitudes y paginación
   ====================================================================== */
/* Identidad: cualquier logo visible dentro de la app conserva el radio. */
.logo-aplicacion,
.marca-pagina-publica img,
.marca-catedra-publica img,
.marca-aplicacion img,
.identidad-previsualizacion img,
.marca-identidad-lector-catedra img,
.cabecera-login img,
.cabecera-correo img { border-radius: 10px !important; }

/* Paginación común de registros. */
.paginacion-registros-catedra{margin-top:18px;padding:12px 4px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--borde)}
.paginacion-registros-catedra>span{color:var(--texto-secundario);font-size:11px;font-weight:700;text-align:center}
.paginacion-registros-catedra .boton{min-height:38px;padding:8px 12px;gap:6px}.paginacion-registros-catedra .boton.deshabilitado{opacity:.38;pointer-events:none}

/* Solicitudes: pestaña + bandeja unificada. */
.pestanas-catedra .burbuja-solicitudes-catedra{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--verde-pro,#C7FF2F);color:#050505;display:inline-grid;place-items:center;font-size:10px;line-height:1;font-weight:900;box-shadow:0 0 0 3px color-mix(in srgb,var(--verde-pro,#C7FF2F) 18%,transparent)}
.panel-solicitudes-globales-catedra{display:grid;gap:16px}.barra-seleccion-solicitudes-catedra{padding:12px 14px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria);display:flex;align-items:center;justify-content:space-between;gap:14px}.barra-seleccion-solicitudes-catedra>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.seleccion-todas-solicitudes{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800}.seleccion-todas-solicitudes input{width:17px;height:17px}.enlace-sutil-catedra{border:0;background:transparent;color:var(--texto-secundario);font:inherit;font-size:11px;font-weight:750;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:7px}
.lista-solicitudes-globales-catedra{display:grid;gap:10px}.lista-solicitudes-globales-catedra>article{display:grid;grid-template-columns:26px 44px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 16px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie)}.check-solicitud-catedra{display:grid;place-items:center}.check-solicitud-catedra input{width:17px;height:17px}.icono-solicitud-catedra{width:42px;height:42px;border-radius:12px;background:var(--superficie-secundaria);display:grid;place-items:center}.icono-solicitud-catedra svg{width:18px;height:18px}.identidad-solicitud-global{min-width:0;display:grid;gap:2px}.identidad-solicitud-global small{font-size:9px;color:var(--texto-secundario);text-transform:uppercase;letter-spacing:.08em;font-weight:850}.identidad-solicitud-global strong{font-size:15px}.identidad-solicitud-global span,.identidad-solicitud-global time{font-size:10px;color:var(--texto-secundario)}.acciones-solicitud-global{display:flex;gap:7px}

/* Alumnos: filtros, última actividad y relaciones actuales. */
.barra-alumnos-catedra{grid-template-columns:minmax(260px,1fr) auto auto}.contador-filtros-catedra{min-width:18px;height:18px;border-radius:999px;background:var(--verde-pro,#C7FF2F);color:#050505;display:grid;place-items:center;font-size:9px}.lista-alumnos-avanzada-catedra{display:grid;gap:10px}.registro-alumno-catedra{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;gap:14px!important;padding:14px 16px!important}.identidad-registro-alumno-catedra{display:grid;gap:3px;min-width:0}.linea-identidad-alumno{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.etiqueta-tipo-alumno{padding:3px 7px;border:1px solid var(--borde);border-radius:999px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.etiqueta-tipo-alumno.registrado{background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 10%,var(--superficie))}.etiqueta-tipo-alumno.visitante{color:var(--texto-secundario)}.ultima-actividad-alumno{display:flex;align-items:center;gap:5px}.ultima-actividad-alumno svg{width:12px;height:12px}.etiquetas-vinculos-alumno-catedra{margin-top:4px;display:flex;gap:5px;flex-wrap:wrap}.etiquetas-vinculos-alumno-catedra span{max-width:190px;padding:4px 7px;border-radius:999px;background:var(--superficie-secundaria);color:var(--texto-secundario);font-size:9px;font-weight:700;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.etiquetas-vinculos-alumno-catedra svg{width:11px;height:11px;flex:0 0 11px}

/* Resultados reutilizables por fecha. */
.cabecera-resultados-evaluacion{align-items:end}.filtro-fecha-resultados-catedra{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.filtro-fecha-resultados-catedra label{display:grid;gap:5px}.filtro-fecha-resultados-catedra label span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:var(--texto-secundario)}.filtro-fecha-resultados-catedra input{min-height:42px;padding:0 11px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto)}

/* Tarjetas de preguntas: coherencia con los registros compactos de Quijotext. */
.banco-preguntas-registros-catedra{display:grid;gap:12px}.registro-pregunta-catedra{position:relative;padding:15px 16px!important;border:1px solid var(--borde);border-radius:16px;background:var(--superficie);display:grid!important;gap:12px}.cabecera-registro-pregunta-catedra{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.meta-pregunta-catedra{display:flex;gap:6px;flex-wrap:wrap}.meta-pregunta-catedra>span{padding:3px 6px;border-radius:999px;background:var(--superficie-secundaria);color:var(--texto-secundario);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.meta-pregunta-catedra .etiqueta-ia-pregunta{color:var(--texto);display:inline-flex;align-items:center;gap:3px}.etiqueta-ia-pregunta svg{width:10px;height:10px}.cuerpo-registro-pregunta-catedra{display:grid;gap:10px}.cuerpo-registro-pregunta-catedra h4{margin:0;font-size:16px;line-height:1.4}.opciones-resumen-pregunta-catedra{display:grid;gap:6px}.opcion-resumen-pregunta{min-height:38px;padding:8px 11px;border:1px solid var(--borde);border-radius:10px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:11px}.opcion-resumen-pregunta.correcta{border-color:color-mix(in srgb,var(--verde-pro,#C7FF2F) 75%,var(--borde));background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 8%,var(--superficie))}.marca-opcion-resumen{width:18px;height:18px;border:1px solid var(--borde);border-radius:50%;display:grid;place-items:center}.correcta .marca-opcion-resumen{border-color:var(--verde-pro,#C7FF2F);background:var(--verde-pro,#C7FF2F);color:#050505}.marca-opcion-resumen svg{width:11px;height:11px}.opcion-resumen-pregunta small{font-size:8px;color:var(--texto-secundario);font-weight:800}.respuesta-esperada-pregunta-catedra,.fundamento-pregunta-catedra{padding:10px 12px;border-radius:11px;background:var(--superficie-secundaria)}.respuesta-esperada-pregunta-catedra>span{font-size:8px;text-transform:uppercase;font-weight:850;color:var(--texto-secundario)}.respuesta-esperada-pregunta-catedra p,.fundamento-pregunta-catedra{margin:4px 0 0;font-size:11px;line-height:1.55}.pie-registro-pregunta-catedra{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--borde);padding-top:9px}.insight-pregunta{display:flex;align-items:center;gap:6px;color:var(--texto-secundario)}.insight-pregunta svg{width:14px;height:14px}.insight-pregunta strong{font-size:9px}.insight-pregunta small{font-size:8px}.insight-pregunta.insight-alto,.insight-pregunta.insight-medio{color:var(--texto)}.puntaje-pregunta-catedra{font-size:10px;font-weight:850}.menu-registro-catedra{position:relative}.boton-menu-registro{width:34px;height:34px;border:1px solid var(--borde);border-radius:10px;background:var(--superficie);color:var(--texto);display:grid;place-items:center;cursor:pointer}.boton-menu-registro svg{width:17px;height:17px}.menu-acciones-registro-catedra{position:absolute;z-index:80;top:calc(100% + 6px);right:0;min-width:210px;padding:6px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);box-shadow:0 16px 42px color-mix(in srgb,#000 18%,transparent)}.menu-acciones-registro-catedra[hidden]{display:none!important}.menu-acciones-registro-catedra button{width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--texto);display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer;font:inherit;font-size:11px}.menu-acciones-registro-catedra button:hover{background:var(--superficie-secundaria)}.menu-acciones-registro-catedra button svg{width:14px;height:14px}.menu-acciones-registro-catedra .accion-peligrosa-registro{color:#b3261e}

/* Constructor de preguntas tipo Forms. */
.modal-constructor-pregunta-manual{width:min(1040px,calc(100vw - 38px));max-height:min(880px,calc(100dvh - 30px));padding:0;overflow:hidden;display:flex;flex-direction:column}.formulario-constructor-pregunta-catedra{min-height:0;display:flex;flex-direction:column;flex:1}.cuerpo-constructor-pregunta-catedra{padding:20px 24px;display:grid;gap:14px}.bloque-constructor-pregunta-manual{padding:16px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie);display:grid;gap:13px}.encabezado-bloque-pregunta{display:flex;align-items:flex-start;gap:10px}.numero-bloque-pregunta{width:27px;height:27px;border-radius:50%;background:#000;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900;flex:0 0 27px}.encabezado-bloque-pregunta>div{display:grid;gap:2px}.encabezado-bloque-pregunta strong{font-size:14px}.encabezado-bloque-pregunta small{font-size:9px;color:var(--texto-secundario)}.tipos-pregunta-manual{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tipos-pregunta-manual label{position:relative;min-height:92px;padding:11px;border:1px solid var(--borde);border-radius:13px;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:9px;cursor:pointer}.tipos-pregunta-manual label:has(input:checked),.tipos-pregunta-manual label.activo{border-color:#000;box-shadow:inset 0 0 0 1px #000;background:var(--superficie-secundaria)}.tipos-pregunta-manual input{position:absolute!important;width:1px!important;height:1px!important;opacity:0}.icono-tipo-pregunta{width:32px;height:32px;border-radius:9px;background:var(--superficie-secundaria);display:grid;place-items:center}.icono-tipo-pregunta svg{width:15px;height:15px}.tipos-pregunta-manual label>div{display:grid;gap:3px}.tipos-pregunta-manual label strong{font-size:11px;line-height:1.2}.tipos-pregunta-manual label small{font-size:8px;line-height:1.35;color:var(--texto-secundario)}.marca-tipo-pregunta{position:absolute;right:8px;top:8px;width:13px;height:13px;opacity:0}.tipos-pregunta-manual label:has(input:checked) .marca-tipo-pregunta{opacity:1}.campo-enunciado-pregunta textarea{font-size:16px;line-height:1.5}.editor-opciones-pregunta-catedra{display:grid;gap:8px}.fila-opcion-pregunta-catedra{display:grid;grid-template-columns:30px minmax(0,1fr) 34px;align-items:center;gap:8px}.fila-opcion-pregunta-catedra>input[type=text]{min-height:44px;padding:0 12px;border:1px solid var(--borde);border-radius:10px;background:var(--superficie);color:var(--texto)}.selector-correcta-opcion{display:grid;place-items:center;cursor:pointer}.selector-correcta-opcion input{position:absolute!important;width:1px!important;height:1px!important;opacity:0}.selector-correcta-opcion span{width:24px;height:24px;border-radius:50%;border:1px solid var(--borde);display:grid;place-items:center;color:transparent}.selector-correcta-opcion input:checked+span{border-color:var(--verde-pro,#C7FF2F);background:var(--verde-pro,#C7FF2F);color:#050505}.selector-correcta-opcion svg{width:13px;height:13px}.detalles-avanzados-pregunta-catedra{border-top:1px solid var(--borde);padding-top:10px}.detalles-avanzados-pregunta-catedra summary{cursor:pointer;font-size:10px;font-weight:800;color:var(--texto-secundario)}.detalles-avanzados-pregunta-catedra>div{padding-top:12px;display:grid;gap:12px}.pie-constructor-pregunta-catedra{justify-content:space-between}.pie-constructor-pregunta-catedra>div:last-child{display:flex;gap:8px}.estado-constructor-pregunta{display:flex;align-items:center;gap:7px;color:var(--texto-secundario);font-size:9px}.estado-constructor-pregunta svg{width:15px;height:15px}

/* Acceso público: cuenta o visitante. */
.pestanas-acceso-catedra-publica{margin:12px 0;padding:4px;border:1px solid var(--borde,#ddd);border-radius:12px;background:#f5f5f5;display:grid;grid-template-columns:1fr 1fr;gap:4px}.pestanas-acceso-catedra-publica button{min-height:38px;border:0;border-radius:9px;background:transparent;color:#555;font:inherit;font-size:11px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.pestanas-acceso-catedra-publica button.activo{background:#fff;color:#000;box-shadow:0 2px 8px rgba(0,0,0,.08)}.pestanas-acceso-catedra-publica svg{width:14px;height:14px}.panel-acceso-catedra-publica{display:grid;gap:10px}.separador-acceso-catedra.compacto{margin:6px 0}.acceso-google-catedra{min-height:42px;display:flex;justify-content:center}.identidad-cuenta-catedra{padding:10px 12px;border:1px solid #ddd;border-radius:12px;display:flex;align-items:center;gap:9px}.identidad-cuenta-catedra svg{width:20px;height:20px}.identidad-cuenta-catedra>div{display:grid}.identidad-cuenta-catedra span{font-size:10px;color:#666}

@media(max-width:900px){
    .tipos-pregunta-manual{grid-template-columns:repeat(2,minmax(0,1fr))}.registro-alumno-catedra{grid-template-columns:46px minmax(0,1fr)}.registro-alumno-catedra>.metricas-entidad-catedra,.registro-alumno-catedra>.boton{grid-column:2}.lista-solicitudes-globales-catedra>article{grid-template-columns:24px 40px minmax(0,1fr)}.acciones-solicitud-global{grid-column:3}.barra-seleccion-solicitudes-catedra{align-items:flex-start;flex-direction:column}.paginacion-registros-catedra{flex-wrap:wrap;justify-content:center}.paginacion-registros-catedra>span{order:-1;width:100%}.cabecera-resultados-evaluacion{align-items:flex-start}.filtro-fecha-resultados-catedra{width:100%}.barra-alumnos-catedra{grid-template-columns:minmax(0,1fr) auto}.barra-alumnos-catedra>.boton-negro{grid-column:1/-1}.pie-constructor-pregunta-catedra{align-items:flex-start;flex-direction:column}.pie-constructor-pregunta-catedra>div:last-child{width:100%;justify-content:flex-end}
}
@media(max-width:560px){.tipos-pregunta-manual{grid-template-columns:1fr}.cuerpo-constructor-pregunta-catedra{padding:14px}.lista-solicitudes-globales-catedra>article{grid-template-columns:24px minmax(0,1fr)}.icono-solicitud-catedra{display:none}.identidad-solicitud-global,.acciones-solicitud-global{grid-column:2}.acciones-solicitud-global{flex-wrap:wrap}.registro-alumno-catedra{padding:12px!important}.etiquetas-vinculos-alumno-catedra span{max-width:145px}}
.correo-builder-marca img,.muestras-logo-app img,.mini-login-marca img{border-radius:10px!important}
/* Evaluación pública: confirmación final de entrega. */
.resultado-evaluacion-publica{margin-top:16px;padding:16px 18px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie-secundaria);font-size:12px;font-weight:750;line-height:1.55}
.resultado-evaluacion-publica.correcto{border-color:color-mix(in srgb,var(--verde-pro,#C7FF2F) 68%,var(--borde));background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 10%,var(--superficie))}
.resultado-evaluacion-publica.error{border-color:color-mix(in srgb,#d54c45 55%,var(--borde));background:color-mix(in srgb,#d54c45 7%,var(--superficie))}
.resultado-evaluacion-publica[hidden]{display:none!important}

/* ======================================================================
   Quijotext 3.6.24 · acceso público, filtros y modales robustos
   ====================================================================== */
.acciones-barra-alumnos-catedra{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex:0 0 auto;
}
.acciones-barra-alumnos-catedra .boton{white-space:nowrap}

.resultado-acceso-catedra{
    flex-direction:column;
    align-items:flex-start;
}
.volver-entrada-catedra-publica{
    margin-top:4px;
    color:var(--texto);
    font-size:9px;
    font-weight:750;
    text-decoration:underline;
    text-underline-offset:3px;
}
.volver-entrada-catedra-publica:hover{opacity:.72}

.acceso-hibrido-catedra,
.evaluacion-publica-catedra>.form-acceso-catedra,
.evaluacion-publica-catedra>.resultado-acceso-catedra{
    width:min(540px,100%);
    margin-inline:auto;
}
.avisos-catedra-publicos{
    margin:0;
}
.avisos-catedra-publicos article{
    padding:14px 16px;
    box-shadow:0 8px 24px color-mix(in srgb,var(--verde-pro,#C7FF2F) 8%,transparent);
}
.avisos-catedra-publicos article>div{display:grid;gap:3px}
.avisos-catedra-publicos small{
    color:var(--texto-secundario);
    font-size:8px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.avisos-catedra-publicos strong{font-size:13px}

/*
 * Patrón de modal con tres zonas reales: cabecera, cuerpo desplazable y pie.
 * Solo se activa cuando el formulario declara explícitamente un cuerpo
 * .contenido-modal-scroll. Así no se fuerzan modales simples que no lo usan.
 */
.modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll){
    max-height:min(860px,calc(100dvh - 32px));
    padding:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>.modal-cabecera{
    flex:0 0 auto;
    margin:0;
    padding:22px 24px;
    border-bottom:1px solid var(--borde);
    background:var(--superficie);
}
.modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>form{
    flex:1 1 auto;
    min-height:0;
    display:flex!important;
    flex-direction:column;
    padding:0!important;
    overflow:hidden!important;
}
.modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>form>.contenido-modal-scroll{
    flex:1 1 auto;
    min-height:0;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden;
    padding:22px 24px;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
}
.modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>form>:is(.acciones-modal,.acciones-formulario,.pie-fijo-modal):last-child{
    position:static!important;
    inset:auto!important;
    flex:0 0 auto;
    width:auto;
    min-height:68px;
    margin:0!important;
    padding:13px 24px calc(13px + env(safe-area-inset-bottom))!important;
    border-top:1px solid var(--borde);
    background:var(--superficie);
    box-shadow:0 -8px 22px rgba(0,0,0,.045);
    backdrop-filter:none;
}
.formulario-modal-llave{
    flex:1 1 auto!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    padding:0!important;
}
.formulario-modal-llave .cuerpo-formulario-llave{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    padding:22px 24px!important;
}
.formulario-modal-llave>.pie-fijo-modal{
    position:static!important;
    inset:auto!important;
    flex:0 0 auto!important;
    margin:0!important;
}

@media(max-width:760px){
    .barra-alumnos-catedra{align-items:stretch!important}
    .acciones-barra-alumnos-catedra{width:100%;justify-content:flex-end}
    .acciones-barra-alumnos-catedra .boton{flex:1 1 0}
}
@media(max-width:560px){
    .modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll){max-height:calc(100dvh - 20px)}
    .modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>.modal-cabecera{padding:18px}
    .modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>form>.contenido-modal-scroll,
    .formulario-modal-llave .cuerpo-formulario-llave{padding:18px!important}
    .modal-contenido:not(.modal-configuracion):has(> form > .contenido-modal-scroll)>form>:is(.acciones-modal,.acciones-formulario,.pie-fijo-modal):last-child{
        padding:12px 18px calc(12px + env(safe-area-inset-bottom))!important;
    }
}

/* Modales sin formulario: mismo patrón cuando cuerpo y pie son hijos directos. */
.modal-contenido:not(.modal-configuracion):has(> .contenido-modal-scroll):has(> .pie-fijo-modal){
    max-height:min(860px,calc(100dvh - 32px));
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.modal-contenido:not(.modal-configuracion):has(> .contenido-modal-scroll):has(> .pie-fijo-modal)>.contenido-modal-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
}
.modal-contenido:not(.modal-configuracion):has(> .contenido-modal-scroll):has(> .pie-fijo-modal)>.pie-fijo-modal{
    position:static!important;
    inset:auto!important;
    flex:0 0 auto;
    margin:0!important;
}

/* ======================================================================
   Quijotext 3.6.25 · Cursos estructurados y Grupos de preguntas
   ====================================================================== */
/* Curso: reutiliza la geometría de La Cátedra y añade solo la jerarquía necesaria. */
.catedra-curso-cabecera .catedra-taller-identidad h1{margin:4px 0 8px;font-family:var(--fuente-titulos-quijotext);font-size:clamp(36px,4vw,56px);letter-spacing:-.04em}
.progreso-cabecera-curso{min-width:94px;padding:9px 12px;border:1px solid var(--borde);border-radius:13px;background:var(--superficie-secundaria);display:grid;gap:1px;text-align:right}.progreso-cabecera-curso small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.progreso-cabecera-curso strong{font-size:18px}
.avisos-curso-catedra{margin-bottom:18px}.panel-programa-curso{align-content:start}
.lista-unidades-curso-catedra{display:grid;gap:13px}.unidad-programa-catedra{padding:18px;border:1px solid var(--borde);border-radius:19px;background:var(--superficie);display:grid;gap:14px}.unidad-programa-catedra>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.unidad-programa-catedra>header h3{margin:4px 0 5px;font-family:var(--fuente-titulos-quijotext);font-size:24px}.unidad-programa-catedra>header p{margin:0;color:var(--texto-secundario);line-height:1.5}.acciones-cabecera-unidad-catedra{display:flex;align-items:center;gap:6px;flex:0 0 auto}.contenido-unidad-programa-catedra{display:grid;gap:14px}.contenido-unidad-programa-catedra[hidden]{display:none!important}.unidad-programa-catedra.colapsada{gap:0}.enlace-ver-curso-catedra{display:inline-block;margin-top:11px;align-self:flex-start}
.elementos-unidad-curso-catedra,.lista-elementos-participante-catedra{display:grid;gap:8px}.elemento-programa-curso,.lista-elementos-participante-catedra>article{min-height:70px;padding:11px 12px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria);display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px}.elemento-programa-curso>div:nth-child(2),.lista-elementos-participante-catedra>article>div:nth-child(2){min-width:0;display:grid;gap:2px}.elemento-programa-curso small,.lista-elementos-participante-catedra small{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:var(--texto-secundario)}.elemento-programa-curso strong,.lista-elementos-participante-catedra strong{font-size:13px}.elemento-programa-curso span,.lista-elementos-participante-catedra article>div:nth-child(2)>span{color:var(--texto-secundario);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acciones-elemento-programa,.acciones-unidad-curso{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.acciones-unidad-curso{justify-content:flex-start;padding-top:2px}
.resumen-debate-unidad-catedra{padding:11px 13px;border:1px solid color-mix(in srgb,var(--verde-pro,#C7FF2F) 30%,var(--borde));border-radius:14px;background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 5%,var(--superficie));display:flex;align-items:center;gap:10px}.resumen-debate-unidad-catedra>svg{width:18px;height:18px}.resumen-debate-unidad-catedra>div{display:grid;gap:2px}.resumen-debate-unidad-catedra small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.07em}.resumen-debate-unidad-catedra span{color:var(--texto-secundario);font-size:9px}
.navegacion-unidades-participante-catedra{display:grid;gap:8px}.chips-unidades-curso{display:flex;gap:7px;max-width:100%;overflow-x:auto;padding:2px 1px 5px;scrollbar-width:thin}.chips-unidades-curso a{min-height:40px;padding:7px 10px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);color:var(--texto-secundario);display:inline-flex;align-items:center;gap:7px;white-space:nowrap;text-decoration:none;font-size:10px;font-weight:800}.chips-unidades-curso a>span{width:22px;height:22px;border-radius:50%;background:var(--superficie-secundaria);display:grid;place-items:center;font-size:8px}.chips-unidades-curso a.activo{border-color:color-mix(in srgb,var(--texto) 28%,var(--borde));color:var(--texto);box-shadow:0 5px 16px rgba(0,0,0,.05)}.chips-unidades-curso a.activo>span{background:var(--texto);color:var(--superficie)}
.unidad-participante-catedra{padding:22px;border:1px solid var(--borde);border-radius:21px;background:var(--superficie);display:grid;gap:18px}.unidad-participante-catedra>header h2{margin:5px 0 8px;font-family:var(--fuente-titulos-quijotext);font-size:clamp(30px,4vw,44px);letter-spacing:-.035em}.unidad-participante-catedra>header p{max-width:820px;margin:0;color:var(--texto-secundario);line-height:1.65}.debate-unidad-curso-catedra{margin-top:4px;padding-top:6px;display:grid;gap:14px}.lista-comentarios-curso-catedra{display:grid;gap:10px}.comentario-curso-catedra>header{display:flex;align-items:center;gap:9px}.comentario-curso-catedra>header>div:nth-child(2){min-width:0;display:grid;gap:2px}.comentario-curso-catedra>header small{color:var(--texto-secundario);font-size:9px}.comentario-curso-catedra>header>.menu-registro-catedra{margin-left:auto}.contenido-comentario-catedra{line-height:1.62}.acciones-comentario-catedra{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.acciones-comentario-catedra button{min-height:30px;padding:4px 7px;border:0;border-radius:8px;background:transparent;color:var(--texto-secundario);display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.acciones-comentario-catedra button:hover,.acciones-comentario-catedra button.activo{background:var(--superficie-secundaria);color:var(--texto)}.acciones-comentario-catedra svg{width:13px;height:13px}.respuestas-comentario-catedra{display:grid;gap:8px;margin-top:5px}.respuestas-comentario-catedra>.comentario-catedra{margin-left:28px}
.compositor-curso-catedra{padding:13px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie-secundaria);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px}.compositor-curso-catedra label{display:block}.compositor-curso-catedra textarea{width:100%;min-height:82px;padding:10px 11px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);color:var(--texto);font:inherit;resize:vertical}.compositor-curso-catedra .boton{min-height:42px}
.resumen-curso-catedra{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}.resumen-curso-catedra>article{padding:14px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie);display:grid;gap:3px}.resumen-curso-catedra b{font-family:var(--fuente-titulos-quijotext);font-size:24px}.resumen-curso-catedra span{color:var(--texto-secundario);font-size:9px}.lista-progreso-curso-catedra,.lista-certificados-curso-catedra{display:grid;gap:8px}.lista-progreso-curso-catedra>article{padding:12px 14px;border:1px solid var(--borde);border-radius:14px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:center;gap:12px}.lista-progreso-curso-catedra>article>div:first-child{display:grid;gap:2px}.lista-progreso-curso-catedra small{color:var(--texto-secundario);font-size:9px}.barra-progreso-curso{height:8px;border-radius:999px;background:var(--superficie-secundaria);overflow:hidden}.barra-progreso-curso>span{display:block;width:var(--progreso,0%);height:100%;border-radius:inherit;background:var(--verde-pro,#C7FF2F);transition:width .25s ease}.lista-certificados-curso-catedra>article,.tarjeta-certificado-participante{padding:13px 14px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie);display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px}.lista-certificados-curso-catedra>article>svg,.tarjeta-certificado-participante>svg{width:22px;height:22px}.lista-certificados-curso-catedra>article>div,.tarjeta-certificado-participante>div{display:grid;gap:2px}.lista-certificados-curso-catedra small,.tarjeta-certificado-participante span{color:var(--texto-secundario);font-size:9px}.configuracion-curso-catedra{display:grid;gap:16px}.bloque-configuracion-certificado{padding:15px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie-secundaria);display:grid;gap:13px}.evaluacion-unidad-curso-catedra{padding:18px;border:1px solid var(--borde);border-radius:19px;background:var(--superficie);display:grid;gap:14px}.inicio-evaluacion-unidad-catedra{padding:14px;border:1px solid var(--borde);border-radius:14px;background:var(--superficie-secundaria);display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}.inicio-evaluacion-unidad-catedra>svg{width:21px;height:21px}.inicio-evaluacion-unidad-catedra>div{display:grid;gap:3px}.inicio-evaluacion-unidad-catedra span{color:var(--texto-secundario);font-size:10px;line-height:1.45}

/* Banco > Grupos de preguntas: conserva el patrón de registros, filtros y menú de La Cátedra. */
.subpestanas-banco-preguntas{margin:12px 0 16px}.subpestanas-banco-preguntas a{min-height:40px;padding:0 13px;border-radius:11px;color:var(--texto-secundario);display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;font-weight:850;text-decoration:none}.subpestanas-banco-preguntas a.activo{background:var(--superficie);color:var(--texto);box-shadow:0 5px 18px rgba(0,0,0,.06)}
.barra-grupos-preguntas-catedra{display:grid;grid-template-columns:minmax(240px,1fr) repeat(3,minmax(120px,auto)) auto auto;align-items:center;gap:8px}.barra-grupos-preguntas-catedra>label{max-width:none}.barra-grupos-preguntas-catedra>select{height:48px;padding:0 10px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);color:var(--texto);font:inherit;font-size:10px;font-weight:750}.lista-grupos-preguntas-catedra{display:grid;gap:10px}.lista-grupos-preguntas-catedra>article{padding:14px 15px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie);display:grid;grid-template-columns:46px minmax(0,1fr) auto 38px;align-items:center;gap:13px}.identidad-grupo-preguntas{min-width:0;display:grid;gap:3px}.identidad-grupo-preguntas small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:850}.identidad-grupo-preguntas h2{margin:0;font-family:var(--fuente-titulos-quijotext);font-size:19px}.identidad-grupo-preguntas p{margin:0;color:var(--texto-secundario);font-size:10px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.etiquetas-tipos-grupo-preguntas{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}.etiquetas-tipos-grupo-preguntas span{padding:3px 6px;border-radius:999px;background:var(--superficie-secundaria);color:var(--texto-secundario);font-size:8px;font-weight:750}.detalle-grupo-preguntas-catedra{display:grid;gap:16px}.grupo-preguntas-en-evaluacion{padding:15px;border:1px solid var(--borde);border-radius:17px;background:var(--superficie-secundaria);display:grid;gap:11px}.grupo-preguntas-en-evaluacion>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.grupo-preguntas-en-evaluacion h4{margin:3px 0 4px;font-family:var(--fuente-titulos-quijotext);font-size:20px}.grupo-preguntas-en-evaluacion p{margin:0;color:var(--texto-secundario);font-size:10px}.contador-grupo-evaluacion{padding:6px 8px;border:1px solid var(--borde);border-radius:999px;background:var(--superficie);color:var(--texto-secundario);font-size:8px;font-weight:850;white-space:nowrap}.grupo-preguntas-individuales{background:var(--superficie)}

/* Experiencia pública del alumno de Curso. */
.curso-publico-catedra{gap:18px}.cabecera-curso-publico-catedra{align-items:end}.estado-curso-publico{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;gap:2px 8px}.estado-curso-publico .estado-acceso-catedra{grid-row:1/3}.estado-curso-publico>strong{font-size:19px}.estado-curso-publico>small{color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.07em}.panel-curso-publico[hidden]{display:none!important}.debate-unidad-curso-publico{padding-top:2px}.barra-progreso-curso-publico{height:11px}.avisos-curso-publicos{order:0}

/* Certificado verificable: mismo lenguaje sobrio de documentos públicos. */
.pagina-certificado-catedra{min-height:100dvh;background:var(--fondo);color:var(--texto)}.certificado-catedra-publico{width:min(100% - 32px,980px);margin:0 auto;padding:30px 0 60px}.cabecera-certificado-catedra{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.marca-certificado-catedra{display:flex;align-items:center;gap:10px;color:var(--texto);text-decoration:none;font-weight:900}.marca-certificado-catedra img{width:38px;height:38px;object-fit:contain;border-radius:10px}.documento-certificado-catedra{min-height:620px;padding:clamp(30px,6vw,72px);border:1px solid var(--borde);border-radius:24px;background:var(--superficie);box-shadow:0 18px 60px rgba(0,0,0,.06);display:grid;align-content:center;text-align:center;gap:18px}.documento-certificado-catedra .sobrelinea{justify-content:center}.documento-certificado-catedra h1{margin:0;font-family:var(--fuente-titulos-quijotext);font-size:clamp(42px,7vw,72px);letter-spacing:-.045em}.documento-certificado-catedra .nombre-certificado{font-family:var(--fuente-titulos-quijotext);font-size:clamp(30px,5vw,52px)}.documento-certificado-catedra p{max-width:700px;margin:0 auto;color:var(--texto-secundario);font-size:14px;line-height:1.7}.metadatos-certificado-catedra{margin-top:14px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.metadatos-certificado-catedra span{padding:7px 10px;border:1px solid var(--borde);border-radius:999px;color:var(--texto-secundario);font-size:9px}.codigo-certificado-catedra{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:850;letter-spacing:.06em}.acciones-certificado-catedra{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}

@media(max-width:960px){.barra-grupos-preguntas-catedra{grid-template-columns:minmax(0,1fr) repeat(2,minmax(130px,1fr))}.barra-grupos-preguntas-catedra>label{grid-column:1/-1}.barra-grupos-preguntas-catedra>.boton{flex:1}.lista-grupos-preguntas-catedra>article{grid-template-columns:44px minmax(0,1fr) 38px}.lista-grupos-preguntas-catedra>article>.metricas-entidad-catedra{grid-column:2/4}}
@media(max-width:760px){.unidad-programa-catedra>header,.grupo-preguntas-en-evaluacion>header{align-items:flex-start}.elemento-programa-curso,.lista-elementos-participante-catedra>article{grid-template-columns:40px minmax(0,1fr)}.acciones-elemento-programa,.lista-elementos-participante-catedra>article>.boton{grid-column:2;justify-self:start}.acciones-elemento-programa{justify-content:flex-start}.unidad-participante-catedra{padding:16px}.compositor-curso-catedra{grid-template-columns:1fr}.compositor-curso-catedra .boton{width:100%}.lista-progreso-curso-catedra>article{grid-template-columns:1fr auto}.lista-progreso-curso-catedra .barra-progreso-curso{grid-column:1/-1;grid-row:2}.inicio-evaluacion-unidad-catedra{grid-template-columns:34px minmax(0,1fr)}.inicio-evaluacion-unidad-catedra>.boton{grid-column:2;justify-self:start}.barra-grupos-preguntas-catedra{grid-template-columns:1fr 1fr}.barra-grupos-preguntas-catedra>label,.barra-grupos-preguntas-catedra>.boton{grid-column:1/-1}.lista-grupos-preguntas-catedra>article{grid-template-columns:40px minmax(0,1fr) 36px}.cabecera-curso-publico-catedra{align-items:flex-start}.estado-curso-publico{justify-items:start}.lista-certificados-curso-catedra>article,.tarjeta-certificado-participante{grid-template-columns:36px minmax(0,1fr)}.lista-certificados-curso-catedra .boton,.tarjeta-certificado-participante .boton{grid-column:2;justify-self:start}.acciones-certificado-catedra{justify-content:stretch}.acciones-certificado-catedra .boton{flex:1}.documento-certificado-catedra{min-height:520px;padding:30px 20px}}
@media(max-width:520px){.barra-grupos-preguntas-catedra{grid-template-columns:1fr}.barra-grupos-preguntas-catedra>*{grid-column:1!important}.respuestas-comentario-catedra>.comentario-catedra{margin-left:12px}.unidad-programa-catedra{padding:14px}.estado-curso-publico{grid-template-columns:1fr;justify-items:start}.estado-curso-publico .estado-acceso-catedra{grid-row:auto}.cabecera-certificado-catedra{align-items:flex-start;flex-direction:column}}
@media print{.pagina-certificado-catedra{background:#fff}.cabecera-certificado-catedra,.acciones-certificado-catedra,.pie-pagina{display:none!important}.certificado-catedra-publico{width:100%;padding:0}.documento-certificado-catedra{min-height:100vh;border:0;border-radius:0;box-shadow:none}}
/* 3.6.25 · acciones compactas en Grupos usados por una Evaluación */
.acciones-grupo-evaluacion{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto}
@media(max-width:760px){.acciones-grupo-evaluacion{align-self:flex-start}}

/* ===== Quijotext 3.6.27 · Ajustes de experiencia pública de La Cátedra ===== */
.acciones-cabecera-publica-catedra{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
}
.dejar-por-hoy-catedra{
    min-height:32px;
    padding:5px 9px;
    border:1px solid color-mix(in srgb,#b3261e 24%,var(--borde));
    border-radius:10px;
    background:color-mix(in srgb,#b3261e 4%,var(--superficie));
    color:#a02b24;
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:9px;
    font-weight:850;
    letter-spacing:0;
    text-transform:none;
    text-decoration:none;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.dejar-por-hoy-catedra svg{width:13px;height:13px}
.dejar-por-hoy-catedra:hover,.dejar-por-hoy-catedra:focus-visible{
    border-color:color-mix(in srgb,#b3261e 42%,var(--borde));
    background:color-mix(in srgb,#b3261e 8%,var(--superficie));
    color:#8d211b;
}
html[data-tema="oscuro"] .dejar-por-hoy-catedra{color:#ff8b82;border-color:color-mix(in srgb,#ff8b82 28%,var(--borde));background:color-mix(in srgb,#ff8b82 5%,var(--superficie))}

/* Google en La Cátedra replica el mismo patrón del login principal: un único contenedor de 400 px, centrado y sin marcos intermedios. */
.acceso-google.acceso-google-catedra{
    width:min(400px,100%)!important;
    min-height:44px;
    margin-inline:auto;
    overflow:hidden;
    border-radius:10px;
    display:flex!important;
    justify-content:center!important;
}
.acceso-google.acceso-google-catedra>[data-boton-google-catedra],
.acceso-google.acceso-google-catedra>[data-boton-google-catedra]>div,
.acceso-google.acceso-google-catedra>[data-boton-google-catedra] iframe{
    width:100%!important;
    max-width:none!important;
}

/* Curso/Taller participante: se reutiliza el lenguaje de miniaturas de Lecturas. */
.rejilla-materiales-participante-catedra{width:100%}
.tarjeta-material-participante-catedra .titulo-tarjeta-material-catedra{
    max-width:100%;
    color:var(--texto);
    font:inherit;
    font-weight:850;
    text-align:left;
    text-decoration:none;
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tarjeta-material-participante-catedra>footer a.boton-icono{display:grid;place-items:center;text-decoration:none}

@media(max-width:620px){
    .cabecera-catedra-publica{align-items:flex-start}
    .acciones-cabecera-publica-catedra{gap:8px;flex-wrap:wrap}
    .acciones-cabecera-publica-catedra>span:first-child{display:none}
}

/* Tooltips breves para reacciones iconográficas de los debates del Curso. */
.acciones-comentario-catedra button[data-tooltip-accion]{position:relative}
.acciones-comentario-catedra button[data-tooltip-accion]::after{
    content:attr(data-tooltip-accion);
    width:max-content;
    max-width:180px;
    padding:6px 8px;
    border-radius:7px;
    background:#050505;
    color:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.18);
    position:absolute;
    left:50%;
    bottom:calc(100% + 7px);
    z-index:45;
    transform:translate(-50%,4px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    font-size:9px;
    font-weight:750;
    line-height:1.2;
    white-space:nowrap;
    transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
.acciones-comentario-catedra button[data-tooltip-accion]:hover::after,
.acciones-comentario-catedra button[data-tooltip-accion]:focus-visible::after{
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
}

/* Quijotext 3.6.29 · progreso persistente, Evaluaciones en concentración, conversación viva y Honores. */
.estado-completado-material-catedra{
    min-height:27px;
    margin-left:5px;
    padding:5px 9px;
    border:1px solid color-mix(in srgb,var(--verde-pro,#C7FF2F) 76%,#111);
    border-radius:999px;
    background:var(--verde-pro,#C7FF2F);
    color:#050505;
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:8px;
    font-weight:900;
    line-height:1;
    letter-spacing:.055em;
    text-transform:uppercase;
    white-space:nowrap;
}
.estado-completado-material-catedra svg{width:12px;height:12px;stroke-width:2.4}
.tarjeta-material-participante-catedra.completado>footer{column-gap:9px}

/* El diálogo de Evaluación toma el foco visual sin abandonar la Unidad. */
.modal-evaluacion-concentracion-catedra .contenido-evaluacion-concentracion-catedra{
    width:min(1000px,calc(100vw - 34px));
    height:min(880px,calc(100dvh - 34px));
    max-width:none;
    max-height:none;
    padding:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border-radius:20px;
}
.cabecera-evaluacion-concentracion-catedra{
    flex:0 0 auto;
    padding:18px 20px;
    border-bottom:1px solid var(--borde);
    background:var(--superficie);
}
.cabecera-evaluacion-concentracion-catedra>div{min-width:0}
.cabecera-evaluacion-concentracion-catedra h2{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cuerpo-evaluacion-concentracion-catedra{
    flex:1 1 auto;
    min-height:0;
    padding:22px;
    overflow:auto;
    overscroll-behavior:contain;
    background:color-mix(in srgb,var(--superficie-secundaria) 45%,var(--superficie));
}
.cuerpo-evaluacion-concentracion-catedra>.evaluacion-unidad-curso-catedra{
    width:min(100%,820px);
    margin:0 auto;
    border:0;
    border-radius:16px;
    box-shadow:0 14px 42px color-mix(in srgb,#000 8%,transparent);
}
.cargando-evaluacion-catedra{
    min-height:260px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:10px;
    color:var(--texto-secundario);
    font-size:11px;
    font-weight:750;
}
.cargando-evaluacion-catedra svg{width:22px;height:22px;animation:giro-catedra .9s linear infinite}
@keyframes giro-catedra{to{transform:rotate(360deg)}}

/* Presencia efímera de escritura: informativa, no invasiva. */
.indicador-escritura-catedra{
    min-height:20px;
    margin:-3px 2px 0;
    color:var(--texto-secundario);
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-size:9px;
    font-weight:700;
}
.indicador-escritura-catedra[hidden]{display:none!important}
.puntos-escritura-catedra{height:12px;display:inline-flex;align-items:center;gap:3px}
.puntos-escritura-catedra i{
    width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.35;
    animation:latido-escritura-catedra 1.15s ease-in-out infinite;
}
.puntos-escritura-catedra i:nth-child(2){animation-delay:.14s}.puntos-escritura-catedra i:nth-child(3){animation-delay:.28s}
@keyframes latido-escritura-catedra{0%,60%,100%{transform:translateY(0);opacity:.3}30%{transform:translateY(-3px);opacity:1}}

/* Configuración del certificado: usa el mismo bloque de formulario, con una vista clara de la firma vigente. */
.cabecera-configuracion-certificado-catedra{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.cabecera-configuracion-certificado-catedra h4{margin:4px 0 5px;font-family:var(--fuente-titulos-quijotext);font-size:21px}
.cabecera-configuracion-certificado-catedra p{max-width:620px;margin:0;color:var(--texto-secundario);font-size:10px;line-height:1.55}
.campos-configuracion-certificado-catedra{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.campo-estatico-certificado-catedra{
    min-height:48px;padding:10px 12px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);
    display:grid;align-content:center;gap:2px
}
.campo-estatico-certificado-catedra strong{font-size:12px}.campo-estatico-certificado-catedra small{color:var(--texto-secundario);font-size:9px}
.firma-actual-configuracion-certificado{
    padding:11px;border:1px solid var(--borde);border-radius:13px;background:var(--superficie);
    display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px
}
.firma-actual-configuracion-certificado img{width:96px;height:64px;padding:5px;border:1px solid var(--borde);border-radius:10px;background:#fff;object-fit:contain}
.firma-actual-configuracion-certificado>div{min-width:0;display:grid;gap:3px}
.firma-actual-configuracion-certificado span,.firma-actual-configuracion-certificado label{color:var(--texto-secundario);font-size:9px;line-height:1.45}
.firma-actual-configuracion-certificado label{margin-top:3px;display:flex;align-items:center;gap:6px;cursor:pointer}

/* Documento compartido por la vista de alumno y por el repositorio Honores. */
.envoltura-documento-certificado-catedra{
    width:100%;
    position:relative;
    overflow:hidden;
    border-radius:18px;
    background:var(--superficie-secundaria);
}
.envoltura-documento-certificado-catedra .documento-certificado-catedra{
    width:100%;
    min-height:0;
    aspect-ratio:1.414/1;
    padding:clamp(24px,4.3vw,58px);
    border:1px solid var(--borde);
    border-radius:18px;
    background:#fff;
    color:#080808;
    box-shadow:none;
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto auto;
    align-content:stretch;
    text-align:left;
    gap:clamp(12px,2vw,24px);
}
.cabecera-documento-certificado-catedra{display:flex;align-items:center;gap:12px;padding-bottom:13px;border-bottom:1px solid #dedede}
.marca-documento-certificado-catedra{width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#050505;color:#fff;display:grid;place-items:center;font-family:Georgia,'Times New Roman',serif;font-size:24px;font-weight:800;line-height:1;overflow:hidden}.marca-documento-certificado-catedra.con-logo{width:auto;min-width:38px;max-width:126px;flex:0 1 auto;border-radius:0;background:transparent;color:inherit;overflow:visible}.marca-documento-certificado-catedra img{display:block;max-width:126px;max-height:38px;width:auto;height:auto;object-fit:contain}.marca-documento-certificado-catedra b{font:inherit}
.cabecera-documento-certificado-catedra>div{display:grid;gap:2px}
.cabecera-documento-certificado-catedra small{font-size:8px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#555}
.cabecera-documento-certificado-catedra strong{font-family:Georgia,'Times New Roman',serif;font-size:16px}
.cuerpo-documento-certificado-catedra{align-self:center;text-align:center;display:grid;justify-items:center;gap:8px}
.cuerpo-documento-certificado-catedra .sobrelinea{justify-content:center;color:#555}
.cuerpo-documento-certificado-catedra h2{max-width:90%;margin:3px 0 2px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,4vw,48px);line-height:1.04;letter-spacing:-.025em}
.cuerpo-documento-certificado-catedra h3{max-width:90%;margin:5px 0 0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(21px,3vw,34px);line-height:1.08}
.cuerpo-documento-certificado-catedra p{max-width:680px;margin:0;color:#444;font-size:clamp(10px,1.25vw,14px);line-height:1.5}
.cuerpo-documento-certificado-catedra .horas-documento-certificado-catedra{margin-top:4px}
.firma-documento-certificado-catedra{justify-self:center;min-width:190px;text-align:center;display:grid;justify-items:center;gap:2px}
.trazo-firma-certificado{width:190px;height:64px;border-bottom:1px solid #bbb;display:grid;place-items:end center}
.trazo-firma-certificado img{max-width:180px;max-height:60px;object-fit:contain}
.trazo-firma-certificado span{width:100%;height:1px}
.firma-documento-certificado-catedra strong{margin-top:5px;font-family:Georgia,'Times New Roman',serif;font-size:13px}
.firma-documento-certificado-catedra small{font-size:7px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#666}
.pie-documento-certificado-catedra{padding-top:11px;border-top:1px solid #dedede;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;color:#555;font-size:7.5px;line-height:1.35}
.pie-documento-certificado-catedra strong{max-width:65%;color:#222;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7.5px;letter-spacing:.02em}
.certificado-preview-bloqueado .documento-certificado-catedra{filter:blur(2.4px);opacity:.62;user-select:none;pointer-events:none;transform:scale(1.006)}
.velo-certificado-catedra{
    position:absolute;inset:0;z-index:3;display:grid;place-items:center;align-content:center;gap:8px;
    background:color-mix(in srgb,var(--superficie) 24%,transparent);color:var(--texto);text-align:center
}
.velo-certificado-catedra svg{width:24px;height:24px}.velo-certificado-catedra span{padding:6px 9px;border-radius:999px;background:var(--superficie);border:1px solid var(--borde);font-size:9px;font-weight:850;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.acciones-certificado-curso-publico{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}

/* PRO usa el catálogo de tooltips del Superadministrador; el CSS solo resuelve su presentación. */
.bloqueo-certificado-plan{position:relative;display:inline-flex;outline:none}
.bloqueo-certificado-plan .boton:disabled,.bloqueo-certificado-plan .boton[aria-disabled="true"]{opacity:.78;cursor:not-allowed}
.bloqueo-certificado-plan em{margin-left:4px;padding:3px 5px;border-radius:5px;background:var(--verde-pro,#C7FF2F);color:#050505;font-size:7px;font-style:normal;font-weight:950;letter-spacing:.08em}
/* Los bloqueos públicos usan el mismo lenguaje visual del tooltip Pro global,
   montado en body para evitar recortes por contenedores o controles inactivos. */
.tooltip-contextual-estatico{min-height:0;padding:22px 18px 17px;grid-template-columns:1fr;gap:0}
.tooltip-contextual-estatico>div{padding-top:3px}.tooltip-contextual-estatico strong{font-size:18px;margin-bottom:7px}.tooltip-contextual-estatico p{font-size:11px}

/* Honores: página independiente, sobria y centrada en validar antes que en navegar. */
.pagina-certificados-catedra{background:var(--fondo);color:var(--texto)}
.honores-catedra-publico{width:min(1120px,calc(100% - 32px));min-height:100dvh;margin:0 auto;padding:24px 0 42px;display:grid;align-content:start;gap:26px}
.cabecera-honores-catedra{display:flex;align-items:center;justify-content:space-between;gap:15px}
.presentacion-honores-catedra{max-width:780px;padding:44px 0 12px;display:grid;gap:11px}
.presentacion-honores-catedra h1{margin:0;font-family:var(--fuente-titulos-quijotext);font-size:clamp(52px,8vw,88px);line-height:.96;letter-spacing:-.055em}
.presentacion-honores-catedra>p{max-width:690px;margin:0;color:var(--texto-secundario);font-size:13px;line-height:1.65}
.buscador-honores-catedra{width:min(760px,100%);margin-top:13px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px}
.buscador-honores-catedra label{display:grid;gap:6px}.buscador-honores-catedra label>span{font-size:9px;font-weight:850}
.buscador-honores-catedra label>div{min-height:50px;padding:0 13px;border:1px solid var(--borde);border-radius:13px;background:var(--superficie);display:flex;align-items:center;gap:9px}
.buscador-honores-catedra svg{width:16px;height:16px;color:var(--texto-secundario)}
.buscador-honores-catedra input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--texto);font:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.035em}
.resultado-honores-catedra{padding:22px;border:1px solid var(--borde);border-radius:21px;background:var(--superficie);display:grid;gap:18px}
.resultado-honores-invalido{grid-template-columns:38px minmax(0,1fr);align-items:start}.resultado-honores-invalido>svg{width:25px;height:25px}
.resultado-honores-invalido h2,.resultado-honores-valido h2{margin:4px 0 5px;font-family:var(--fuente-titulos-quijotext);font-size:25px}.resultado-honores-catedra p{margin:0;color:var(--texto-secundario);font-size:10px;line-height:1.55}.resultado-honores-invalido code{display:inline-block;margin-top:10px;padding:6px 8px;border-radius:8px;background:var(--superficie-secundaria);font-size:10px}
.estado-certificado-verificado{padding:5px 8px;border-radius:999px;background:var(--verde-pro,#C7FF2F);color:#050505;display:inline-flex;align-items:center;gap:5px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.estado-certificado-verificado svg{width:12px;height:12px}
.acciones-honores-catedra{display:flex;justify-content:flex-end;align-items:center;gap:9px;flex-wrap:wrap}
.pie-honores-catedra{padding-top:20px;border-top:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--texto-secundario);font-size:9px}.pie-honores-catedra a{color:var(--texto);font-weight:800;text-decoration:none}

@media(max-width:760px){
    .modal-evaluacion-concentracion-catedra .contenido-evaluacion-concentracion-catedra{width:calc(100vw - 14px);height:calc(100dvh - 14px);border-radius:16px}
    .cabecera-evaluacion-concentracion-catedra{padding:15px}.cuerpo-evaluacion-concentracion-catedra{padding:12px}
    .campos-configuracion-certificado-catedra{grid-template-columns:1fr}.cabecera-configuracion-certificado-catedra{align-items:stretch;flex-direction:column}
    .envoltura-documento-certificado-catedra{overflow-x:auto}.envoltura-documento-certificado-catedra .documento-certificado-catedra{width:720px;max-width:none;aspect-ratio:1.414/1;padding:28px}
    .certificado-preview-bloqueado .documento-certificado-catedra{transform:none}.acciones-certificado-curso-publico{justify-content:stretch}.acciones-certificado-curso-publico>.boton,.acciones-certificado-curso-publico>.bloqueo-certificado-plan{width:100%}.bloqueo-certificado-plan>.boton{width:100%}
    .honores-catedra-publico{width:min(100% - 22px,1120px);padding-top:14px}.cabecera-honores-catedra{align-items:flex-start}.presentacion-honores-catedra{padding-top:26px}.buscador-honores-catedra{grid-template-columns:1fr}.buscador-honores-catedra .boton{width:100%}
    .resultado-honores-catedra{padding:15px}.acciones-honores-catedra{justify-content:stretch}.acciones-honores-catedra>.boton,.acciones-honores-catedra>.bloqueo-certificado-plan{width:100%}.acciones-honores-catedra .boton{width:100%}.pie-honores-catedra{align-items:flex-start;flex-direction:column}
}

@media print{
    .pagina-certificados-catedra .cabecera-honores-catedra,.pagina-certificados-catedra .presentacion-honores-catedra,.pagina-certificados-catedra .resultado-honores-valido>header,.pagina-certificados-catedra .acciones-honores-catedra,.pagina-certificados-catedra .pie-honores-catedra,.pagina-certificados-catedra .pie-pagina{display:none!important}
    .pagina-certificados-catedra .honores-catedra-publico,.pagina-certificados-catedra .resultado-honores-catedra{width:100%;margin:0;padding:0;border:0;background:#fff}
    .pagina-certificados-catedra .envoltura-documento-certificado-catedra{overflow:visible;border-radius:0}
    .pagina-certificados-catedra .envoltura-documento-certificado-catedra .documento-certificado-catedra{width:100%;min-height:100vh;aspect-ratio:auto;border:0;border-radius:0}
}

/* ======================================================================
   Quijotext 3.6.30 · Evaluaciones: Banco maestro, orden, reglas e intentos
   ====================================================================== */
/* Una sola zona de controles evita que el acordeón, el arrastre y el menú
   compitan visualmente. */
.controles-pregunta-catedra{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.asa-pregunta-catedra{cursor:grab;touch-action:none;color:var(--texto-secundario)}
.asa-pregunta-catedra:active{cursor:grabbing}
.contenido-colapsable-pregunta-catedra{max-height:1800px;overflow:hidden;opacity:1;transition:max-height .34s cubic-bezier(.2,.8,.2,1),opacity .22s ease,margin .34s ease}
.registro-pregunta-catedra.pregunta-colapsada .contenido-colapsable-pregunta-catedra{max-height:0;opacity:0;pointer-events:none}
.registro-pregunta-catedra.pregunta-colapsada{gap:0}
.registro-pregunta-catedra.pregunta-colapsada .cabecera-registro-pregunta-catedra{align-items:center}
.registro-pregunta-catedra.arrastrando{opacity:.48;transform:scale(.992);box-shadow:0 14px 34px color-mix(in srgb,#000 12%,transparent)}
[data-lista-orden-preguntas].ordenando-preguntas{outline:1px dashed color-mix(in srgb,var(--verde-pro,#C7FF2F) 72%,var(--borde));outline-offset:5px;border-radius:14px}
[data-lista-orden-preguntas].guardando-orden-preguntas{cursor:progress}
[data-lista-orden-preguntas].orden-preguntas-guardado{animation:confirmar-orden-preguntas .8s ease}
@keyframes confirmar-orden-preguntas{0%,100%{filter:none}35%{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--verde-pro,#C7FF2F) 52%,transparent))}}
.registro-retirandose-catedra{opacity:0!important;transform:translateY(-5px) scale(.99)!important;transition:opacity .2s ease,transform .2s ease}
.grupo-sin-preguntas-catedra{opacity:.7}
.menu-agregar-preguntas-evaluacion .menu-acciones-registro-catedra{min-width:250px}
.menu-acciones-registro-catedra a{min-height:38px;padding:8px 10px;border-radius:8px;color:var(--texto);display:flex;align-items:center;gap:8px;text-decoration:none;font-size:11px}
.menu-acciones-registro-catedra a:hover{background:var(--superficie-secundaria)}
.menu-acciones-registro-catedra a svg{width:14px;height:14px}

/* Configuración de la Evaluación: reglas primero, contenido después. */
.configuracion-evaluacion-catedra{padding:18px;border:1px solid var(--borde);border-radius:18px;background:var(--superficie);display:grid;gap:16px}
.rejilla-configuracion-evaluacion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.rejilla-configuracion-evaluacion .campo-mensaje-evaluacion{grid-column:1/-1}
.campo-con-sufijo{min-height:46px;border:1px solid var(--borde);border-radius:11px;background:var(--superficie);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden}
.campo-con-sufijo input{min-width:0;border:0!important;border-radius:0!important;background:transparent!important}
.campo-con-sufijo small{padding:0 12px;color:var(--texto-secundario);font-size:9px;font-weight:800}
.tarjeta-interruptor-evaluacion{grid-column:1/-1;padding:13px 14px;border:1px solid var(--borde);border-radius:13px;background:var(--superficie-secundaria)}
.bloque-puntaje-evaluacion{margin:0;padding:14px;border:1px solid var(--borde);border-radius:15px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.bloque-puntaje-evaluacion legend{padding:0 6px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.075em;color:var(--texto-secundario)}
.opcion-puntaje-evaluacion{position:relative;padding:12px;border:1px solid var(--borde);border-radius:12px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;cursor:pointer;background:var(--superficie)}
.opcion-puntaje-evaluacion:has(input:checked){border-color:#111;box-shadow:inset 0 0 0 1px #111}
.opcion-puntaje-evaluacion input{margin-top:2px}
.opcion-puntaje-evaluacion>span{display:grid;gap:3px}.opcion-puntaje-evaluacion strong{font-size:11px}.opcion-puntaje-evaluacion small{font-size:9px;line-height:1.45;color:var(--texto-secundario)}
.puntaje-total-evaluacion{grid-column:1/-1;width:min(260px,100%)}.puntaje-total-evaluacion[hidden]{display:none!important}
.acciones-configuracion-evaluacion{padding-top:13px;border-top:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;gap:12px}
.estado-guardado-evaluacion{font-size:9px;color:var(--texto-secundario)}.estado-guardado-evaluacion.correcto{color:#496300}.estado-guardado-evaluacion.error{color:#a12924}
.separador-configuracion-evaluacion{margin-top:22px}
.opciones-creacion-evaluacion{padding:14px;border:1px solid var(--borde);border-radius:15px;background:var(--superficie-secundaria);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.opciones-creacion-evaluacion[hidden]{display:none!important}
.opciones-creacion-evaluacion>.sobrelinea{margin-bottom:-2px}.opciones-creacion-evaluacion>.campo-completo{grid-column:1/-1}
.bloque-puntaje-creacion{margin:0;padding:13px;border:1px solid var(--borde);border-radius:13px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;background:var(--superficie)}
.bloque-puntaje-creacion legend{padding:0 5px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--texto-secundario)}
.bloque-puntaje-creacion>label:not(.campo-formulario){padding:10px;border:1px solid var(--borde);border-radius:10px;display:flex;align-items:flex-start;gap:7px;font-size:10px;line-height:1.45;cursor:pointer}.bloque-puntaje-creacion>label:not(.campo-formulario):has(input:checked){border-color:#111;box-shadow:inset 0 0 0 1px #111}
.puntaje-total-creacion-evaluacion{grid-column:1/-1;width:min(280px,100%)}.puntaje-total-creacion-evaluacion[hidden]{display:none!important}
.rejilla-opciones-creacion-evaluacion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}

/* Antes de comenzar se presentan las reglas en una lectura de un vistazo. */
.preparacion-evaluacion-catedra{display:grid;gap:13px}
.mensaje-previo-evaluacion-catedra{padding:14px 15px;border-left:3px solid var(--verde-pro,#C7FF2F);border-radius:0 12px 12px 0;background:var(--superficie-secundaria);display:grid;grid-template-columns:20px minmax(0,1fr);gap:9px;align-items:start}
.mensaje-previo-evaluacion-catedra svg{width:17px;height:17px;margin-top:2px}.mensaje-previo-evaluacion-catedra p{margin:0;font-size:11px;line-height:1.6}
.datos-previos-evaluacion-catedra{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.datos-previos-evaluacion-catedra>span{min-height:76px;padding:10px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie-secundaria);display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;align-content:center;column-gap:7px}
.datos-previos-evaluacion-catedra svg{width:16px;height:16px;grid-row:1/3}.datos-previos-evaluacion-catedra strong{font-family:var(--fuente-titulos-quijotext);font-size:18px;line-height:1}.datos-previos-evaluacion-catedra small{margin-top:3px;color:var(--texto-secundario);font-size:8px;text-transform:uppercase;letter-spacing:.055em;font-weight:800}
.aviso-protegido-evaluacion{padding:11px 13px;border:1px solid color-mix(in srgb,#d54c45 30%,var(--borde));border-radius:12px;background:color-mix(in srgb,#d54c45 5%,var(--superficie));display:flex;align-items:center;gap:9px;font-size:10px;line-height:1.5}.aviso-protegido-evaluacion svg{width:17px;height:17px;flex:0 0 17px}
.barra-tiempo-evaluacion-catedra{position:sticky;top:-22px;z-index:4;margin:-4px 0 2px;padding:10px 13px;border:1px solid var(--borde);border-radius:12px;background:color-mix(in srgb,var(--superficie) 94%,transparent);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:12px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.barra-tiempo-evaluacion-catedra>span{display:flex;align-items:center;gap:7px;color:var(--texto-secundario);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.barra-tiempo-evaluacion-catedra svg{width:15px;height:15px}.barra-tiempo-evaluacion-catedra strong{font-variant-numeric:tabular-nums;font-size:18px;letter-spacing:.035em}
.barra-tiempo-evaluacion-catedra.tiempo-critico{border-color:color-mix(in srgb,#d54c45 55%,var(--borde));box-shadow:0 0 0 3px color-mix(in srgb,#d54c45 7%,transparent)}
.barra-tiempo-evaluacion-catedra.tiempo-agotado{background:color-mix(in srgb,#d54c45 6%,var(--superficie));color:#9d2823}

/* Resultados: la lista conserva una sola acción; las excepciones viven dentro del detalle. */
.acciones-intento-catedra{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.acciones-cabecera-detalle-intento-catedra{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.acciones-cabecera-detalle-intento-catedra .boton{min-height:38px}
.acciones-cabecera-detalle-intento-catedra .oportunidad-concedida{background:var(--verde-pro,#C7FF2F);color:#050505;border-color:var(--verde-pro,#C7FF2F);animation:oportunidad-catedra .8s ease}
@keyframes oportunidad-catedra{0%,100%{transform:scale(1)}40%{transform:scale(1.04);box-shadow:0 0 0 6px color-mix(in srgb,var(--verde-pro,#C7FF2F) 20%,transparent)}}

@media(max-width:760px){
    .rejilla-configuracion-evaluacion,.bloque-puntaje-evaluacion,.rejilla-opciones-creacion-evaluacion,.opciones-creacion-evaluacion,.bloque-puntaje-creacion{grid-template-columns:1fr}
    .datos-previos-evaluacion-catedra{grid-template-columns:repeat(2,minmax(0,1fr))}
    .acciones-configuracion-evaluacion{align-items:stretch;flex-direction:column}.acciones-configuracion-evaluacion .boton{width:100%}
    .controles-pregunta-catedra{gap:4px}.controles-pregunta-catedra .boton-menu-registro{width:32px;height:32px}
    .barra-tiempo-evaluacion-catedra{top:-12px}
    .acciones-cabecera-detalle-intento-catedra{gap:6px}.acciones-cabecera-detalle-intento-catedra .boton{padding-inline:10px}
}
@media(max-width:480px){.datos-previos-evaluacion-catedra{grid-template-columns:1fr 1fr}.datos-previos-evaluacion-catedra>span{min-height:66px}.inicio-evaluacion-unidad-catedra>.boton{grid-column:1/-1;width:100%}}

/* ======================================================================
   Quijotext 3.6.31 · Preguntas compactas en acordeón
   ====================================================================== */
.cabecera-registro-pregunta-catedra{align-items:center;min-width:0}
.resumen-cabecera-pregunta-catedra{min-width:0;flex:1;display:flex;align-items:center;gap:10px;overflow:hidden}
.texto-resumen-pregunta-catedra{min-width:80px;flex:1;margin:0;font-size:13px;line-height:1.2;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resumen-cabecera-pregunta-catedra .meta-pregunta-catedra{max-width:46%;flex:0 0 auto;flex-wrap:nowrap;overflow:hidden}
.resumen-cabecera-pregunta-catedra .meta-pregunta-catedra>span{flex:0 0 auto}
.registro-pregunta-catedra.pregunta-colapsada .cabecera-registro-pregunta-catedra{min-height:34px}

@media(max-width:760px){
    .resumen-cabecera-pregunta-catedra .meta-pregunta-catedra{display:none}
    .texto-resumen-pregunta-catedra{font-size:12px}
}

/* Quijotext 3.6.33 · confirmación docente y certificación aprobada por el encargado. */
.datos-previos-evaluacion-catedra{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.aviso-confirmacion-docente-evaluacion{
    padding:11px 12px;border:1px solid color-mix(in srgb,var(--verde-pro,#C7FF2F) 42%,var(--borde));
    border-radius:12px;background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 7%,var(--superficie));
    display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.45;color:var(--texto-secundario)
}
.aviso-confirmacion-docente-evaluacion svg{width:17px;height:17px;flex:0 0 auto;color:var(--texto)}
.aviso-confirmacion-docente-evaluacion strong{color:var(--texto)}

.estado-evaluacion-material-catedra{
    width:max-content;max-width:100%;margin-top:7px;padding:5px 8px;border:1px solid var(--borde);border-radius:999px;
    display:inline-flex;align-items:center;font-size:8px;font-weight:900;letter-spacing:.045em;line-height:1;text-transform:uppercase
}
.estado-evaluacion-aprobada{background:var(--verde-pro,#C7FF2F);border-color:color-mix(in srgb,var(--verde-pro,#C7FF2F) 70%,#111);color:#050505}
.estado-evaluacion-desaprobada{background:color-mix(in srgb,#b3261e 8%,var(--superficie));border-color:color-mix(in srgb,#b3261e 32%,var(--borde));color:#8d211b}
.estado-evaluacion-en_revision{background:var(--superficie-secundaria);color:var(--texto-secundario)}
html[data-tema="oscuro"] .estado-evaluacion-desaprobada{color:#ff9a92}

.resumen-revision-intento-catedra{
    padding:10px 12px;border:1px solid var(--borde);border-radius:12px;background:var(--superficie-secundaria);
    display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--texto-secundario);font-size:9px
}
.estado-revision-evaluacion{padding:6px 9px;border:1px solid var(--borde);border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.estado-revision-aprobada{background:var(--verde-pro,#C7FF2F);border-color:color-mix(in srgb,var(--verde-pro,#C7FF2F) 70%,#111);color:#050505}
.estado-revision-desaprobada{background:color-mix(in srgb,#b3261e 8%,var(--superficie));border-color:color-mix(in srgb,#b3261e 32%,var(--borde));color:#8d211b}
.estado-revision-en_revision{background:var(--superficie);color:var(--texto-secundario)}
.respuesta-intento-catedra.respuesta-confirmada{background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 3%,var(--superficie))}
.selector-correccion-respuesta{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--borde);border-radius:10px;background:var(--superficie-secundaria);gap:3px}
.opcion-correccion-respuesta{min-height:30px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--texto-secundario);display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:8px;font-weight:850;cursor:pointer}
.opcion-correccion-respuesta svg{width:12px;height:12px}
.opcion-correccion-respuesta.seleccionada{background:var(--verde-pro,#C7FF2F);color:#050505;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.opcion-correccion-respuesta.opcion-incorrecta.seleccionada{background:color-mix(in srgb,#b3261e 12%,var(--superficie));color:#8d211b;box-shadow:none}
.opcion-correccion-respuesta:disabled{cursor:default;opacity:1}
.puntaje-confirmacion-respuesta{font-size:9px;color:var(--texto-secundario);white-space:nowrap}
.sugerencia-ia-revision{margin:0;color:var(--texto-secundario);font-size:9px;line-height:1.5}
.estado-intento-aprobada{background:var(--verde-pro,#C7FF2F);border-color:color-mix(in srgb,var(--verde-pro,#C7FF2F) 70%,#111);color:#050505!important}
.estado-intento-desaprobada{background:color-mix(in srgb,#b3261e 8%,var(--superficie-secundaria));border-color:color-mix(in srgb,#b3261e 30%,var(--borde));color:#8d211b!important}

.lista-aprobacion-certificados-catedra>article{grid-template-columns:minmax(180px,1fr) auto}
.estado-certificacion-aprobada-catedra{padding:7px 10px;border:1px solid color-mix(in srgb,var(--verde-pro,#C7FF2F) 70%,#111);border-radius:999px;background:var(--verde-pro,#C7FF2F);color:#050505;display:inline-flex;align-items:center;gap:5px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.estado-certificacion-aprobada-catedra svg{width:13px;height:13px}
.aviso-certificado-pendiente-aprobacion{padding:14px 16px;border:1px solid color-mix(in srgb,var(--verde-pro,#C7FF2F) 48%,var(--borde));border-radius:14px;background:color-mix(in srgb,var(--verde-pro,#C7FF2F) 8%,var(--superficie));display:flex;align-items:flex-start;gap:11px}
.aviso-certificado-pendiente-aprobacion svg{width:20px;height:20px;flex:0 0 auto}
.aviso-certificado-pendiente-aprobacion>div{display:grid;gap:3px}.aviso-certificado-pendiente-aprobacion strong{font-size:12px}.aviso-certificado-pendiente-aprobacion span{font-size:10px;color:var(--texto-secundario);line-height:1.45}

@media(max-width:620px){
    .selector-correccion-respuesta{width:100%;display:grid;grid-template-columns:1fr 1fr}
    .opcion-correccion-respuesta{justify-content:center}
    .lista-aprobacion-certificados-catedra>article{grid-template-columns:1fr}
}

/* ======================================================================
   Quijotext 3.6.34 · Jerarquía visual en materiales y preguntas
   ====================================================================== */
/* El estado de una Evaluación pertenece a la miniatura, no al bloque textual inferior. */
.tarjeta-material-participante-catedra{position:relative}
.tarjeta-material-participante-catedra>.estado-evaluacion-material-tarjeta-catedra{
    position:absolute;top:10px;right:10px;z-index:4;margin:0;max-width:calc(100% - 20px);
    padding:4px 6px;font-size:7px;line-height:1;letter-spacing:.045em;box-shadow:0 2px 8px rgba(0,0,0,.08);
    pointer-events:none
}

/* La cabecera del acordeón reserva la fila completa al enunciado.
   Los metadatos pasan al contenido expandido para no competir con la pregunta. */
.resumen-cabecera-pregunta-catedra{gap:0}
.texto-resumen-pregunta-catedra{
    min-width:0;font-size:11px;line-height:1.25;font-weight:780;letter-spacing:-.005em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.meta-pregunta-contenido-catedra{
    margin:0 0 10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:none;overflow:visible
}
.contenido-colapsable-pregunta-catedra>.meta-pregunta-contenido-catedra+ .cuerpo-registro-pregunta-catedra{padding-top:0}

@media(max-width:760px){
    .texto-resumen-pregunta-catedra{font-size:10.5px}
    .meta-pregunta-contenido-catedra{display:flex}
}
/* Quijotext 3.6.39 · una sola llave lateral de navegación
   Una reserva propia puede tardar unos milisegundos en liberarse del servidor.
   Si el autor ya eligió otra capa, ocultamos solo esa marca lateral residual;
   el bloqueo real y los indicadores remotos permanecen intactos. */
.bloque-editor.bloque-reservado-propio.reserva-propia-sin-llave-estructura {
    box-shadow: none !important;
}


/* Quijotext 3.6.40 · aprovechamiento vertical de figuras en impresión */
.pagina-previsualizacion .flujo-documento > figure.figura-ajustada-paginacion {
    margin-top: 12px;
    margin-bottom: 12px;
}
.pagina-previsualizacion .flujo-documento > figure.figura-ajustada-paginacion > img {
    max-width: 100%;
    object-fit: contain;
}
@media print {
    body.pagina-previsualizacion .flujo-documento > figure,
    body.pagina-previsualizacion .flujo-documento > figure.figura-ajustada-paginacion {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}
