/* ═══════════════════════════════════════════════════════════════════════════
   Sistema Educativo Victoria — instancia de revisión
   ═══════════════════════════════════════════════════════════════════════════

   El marco es aplicación; la hoja es papel. Aquí se leen cotejos largos con
   tablas diacrónicas densas, y esa separación es la que permite que el texto
   mande sobre todo lo demás.

   LOS TRES COLORES TIENEN PROCEDENCIA, NO SON DECORACIÓN
   ─────────────────────────────────────────────────────
   El azul es el de la Cámara; el rojo, el del cortinaje. En un trabajo cuya
   regla rectora es «procedencia documentada», un color con origen vale más
   que uno elegido por convención de interfaz. Y cada uno tiene función fija:

     azul  → navegación, enlaces, acción
     rojo  → SÓLO lo que exige atención doctrinal: reserva, exclusión, marca
     oro   → normativas del canon y anclas litúrgicas

   Así el color informa. En dos pantallas el revisor aprende que el rojo
   significa «aquí hay reserva o exclusión».
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  /* papel */
  --papel:      #F5F5F3;
  --tarjeta:    #FFFFFF;
  --linea:      #E4E3DE;
  --linea-2:    #D3D2CB;

  /* tinta: carbón, no negro puro — menos fatiga en lectura larga */
  --tinta:      #24282C;
  --tinta-2:    #5A6068;
  --tinta-3:    #8A9099;

  /* chasis: barra superior y rail */
  --chasis:     #14181D;
  --chasis-2:   #1C222A;
  --chasis-3:   #2A323C;
  --chasis-tx:  #C9CED6;
  --chasis-tx2: #7E8792;

  /* los tres con procedencia */
  --azul:       #1F3A5F;
  --azul-claro: #3D6491;
  --azul-tenue: #EAEFF6;
  --rojo:       #6B2020;
  --rojo-tenue: #F6EBE9;
  --oro:        #8A6F2E;
  --oro-tenue:  #F7F1E2;
  --verde:      #2E6042;

  --serif: "Source Serif 4","Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:  Inter,"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --mono:  ui-monospace,"Cascadia Mono",Consolas,"Liberation Mono",monospace;

  --rail: 268px;
  --panel: 290px;
  --alto-top: 56px;
}

/* Las tipografías van AUTO-ALOJADAS, nunca por CDN: una petición a un tercero
   le diría a ese tercero que alguien está leyendo esto y desde dónde, y en una
   instancia cuya única defensa real es que ninguna copia sea anónima, eso es
   una fuga. Deje los .woff2 en assets/fuentes/ y descomente este bloque.

@font-face{ font-family:"Source Serif 4"; src:url(/assets/fuentes/source-serif-4.woff2) format("woff2");
            font-weight:400 700; font-display:swap; }
@font-face{ font-family:Inter; src:url(/assets/fuentes/inter.woff2) format("woff2");
            font-weight:400 700; font-display:swap; }
*/

*{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100% }

body{
  margin:0;
  background:var(--papel);
  color:var(--tinta);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
}

a{ color:var(--azul); text-underline-offset:.15em }
a:hover{ color:var(--azul-claro) }

.vic-saltar{
  position:absolute; left:-999px; top:0; z-index:100;
  background:var(--azul); color:#fff; padding:.6rem 1rem;
}
.vic-saltar:focus{ left:0 }

/* ───────────────────────── barra superior ───────────────────────── */

.vic-top{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:1rem;
  height:var(--alto-top);
  padding:0 1rem;
  background:var(--chasis);
  border-bottom:1px solid #000;
}

.vic-burger{
  display:none;
  background:none; border:1px solid var(--chasis-3); color:var(--chasis-tx);
  font-size:1.1rem; line-height:1; padding:.4rem .6rem; border-radius:6px; cursor:pointer;
}

.vic-marca-sitio{ display:flex; align-items:baseline; gap:.5rem; text-decoration:none; flex:none }
.vic-rombo{ color:var(--rojo); font-size:.8rem }
.vic-nombre{
  color:#F2F1EE; font-family:var(--serif); font-size:1.15rem;
  letter-spacing:.02em; font-weight:600;
}
.vic-sub{ color:var(--chasis-tx2); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase }

.vic-buscar{ flex:1; display:flex; justify-content:center; min-width:0 }
.vic-buscar input{
  width:100%; max-width:520px;
  background:var(--chasis-2); border:1px solid var(--chasis-3); border-radius:8px;
  color:#EDEFF2; font:inherit; font-size:.86rem; padding:.42rem .8rem;
  outline:none; transition:border-color .15s;
}
.vic-buscar input::placeholder{ color:var(--chasis-tx2) }
.vic-buscar input:focus{ border-color:var(--azul-claro) }

.vic-yo{ display:flex; align-items:center; gap:.7rem; flex:none; font-size:.78rem }
.vic-yo-enlace{ display:flex; align-items:center; gap:.5rem; text-decoration:none }
.vic-yo-enlace:hover .vic-yo-nombre{ color:#fff }
.vic-yo-nombre{ color:var(--chasis-tx) }
.vic-yo-or{ color:var(--chasis-tx2) }
.vic-form-clave{ display:flex; gap:.4rem; align-items:center; margin-top:.4rem }
.vic-form-clave input{ font-size:.82rem; padding:.35rem .5rem; min-width:11rem }
.vic-form-clave button{ padding:.35rem .7rem; font-size:.8rem }
.vic-salir{
  color:var(--chasis-tx2); text-decoration:none;
  border:1px solid var(--chasis-3); border-radius:6px; padding:.25rem .6rem;
}
.vic-salir:hover{ color:#fff; border-color:var(--chasis-tx2) }

/* ───────────────────────── rejilla de tres columnas ───────────────────────── */

.vic-marco{
  display:grid;
  grid-template-columns:var(--rail) minmax(0,1fr) var(--panel);
  align-items:start;
  min-height:calc(100vh - var(--alto-top));
}
.vic-marco.es-ancho{ grid-template-columns:var(--rail) minmax(0,1fr) }

/* ───────────────────────── rail izquierdo ───────────────────────── */

.vic-rail{
  position:sticky; top:var(--alto-top);
  height:calc(100vh - var(--alto-top));
  overflow-y:auto; overscroll-behavior:contain;
  background:var(--chasis); color:var(--chasis-tx);
  padding:1rem 0 3rem;
  font-size:.83rem;
}
.vic-rail::-webkit-scrollbar{ width:8px }
.vic-rail::-webkit-scrollbar-thumb{ background:var(--chasis-3); border-radius:4px }

.vic-rail-nav{ display:flex; flex-direction:column }
.vic-rail-nav a{
  color:var(--chasis-tx); text-decoration:none;
  padding:.4rem 1.1rem; border-left:2px solid transparent;
}
.vic-rail-nav a:hover{ background:var(--chasis-2); color:#fff }
.vic-rail-nav a.es-activo{ border-left-color:var(--rojo); color:#fff; background:var(--chasis-2) }

.vic-rail-sep{
  display:block; margin:1.2rem 1.1rem .4rem;
  color:var(--chasis-tx2); font-size:.68rem;
  letter-spacing:.14em; text-transform:uppercase;
}

.vic-mod{ border-top:1px solid var(--chasis-2) }
.vic-mod-tit{
  display:flex; justify-content:space-between; align-items:center; gap:.5rem;
  padding:.55rem 1.1rem; color:var(--chasis-tx); text-decoration:none;
}
.vic-mod-tit:hover{ background:var(--chasis-2); color:#fff }
.vic-mod.es-activo > .vic-mod-tit{ color:#fff; font-weight:600 }

.vic-cuenta{
  flex:none; font-size:.7rem; font-variant-numeric:tabular-nums;
  color:var(--chasis-tx2); background:var(--chasis-2);
  border-radius:10px; padding:.05rem .45rem;
}
.vic-cuenta.es-vacio{ color:var(--oro) }

.vic-bloque{
  display:block; margin:.6rem 1.1rem .25rem;
  color:var(--chasis-tx2); font-size:.68rem;
  letter-spacing:.1em; text-transform:uppercase;
}

.vic-u{
  display:flex; gap:.5rem; align-items:baseline;
  padding:.3rem 1.1rem .3rem 1.4rem;
  color:var(--chasis-tx); text-decoration:none;
  border-left:2px solid transparent;
}
.vic-u:hover{ background:var(--chasis-2); color:#fff }
.vic-u.es-activo{ border-left-color:var(--rojo); background:var(--chasis-2); color:#fff }
.vic-u.es-borrador{ color:var(--chasis-tx2) }
.vic-u-id{ flex:none; font-size:.72rem; font-variant-numeric:tabular-nums; opacity:.75 }
.vic-u-tit{
  font-size:.78rem; line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* ───────────────────────── la hoja ───────────────────────── */

.vic-hoja{
  padding:2.6rem clamp(1.2rem,3.5vw,3.2rem) 5rem;
  min-width:0;
  background:var(--papel);
}

.vic-encabezado{ margin-bottom:2rem; padding-bottom:1.2rem; border-bottom:2px solid var(--linea-2) }
.vic-antetitulo{
  margin:0 0 .35rem; color:var(--tinta-3);
  font-size:.75rem; letter-spacing:.13em; text-transform:uppercase;
}
.vic-hoja h1{
  margin:0; font-family:var(--serif); font-weight:600;
  font-size:clamp(1.5rem,3.2vw,2.1rem); line-height:1.22; letter-spacing:-.01em;
}

.vic-hoja h2{
  font-family:var(--serif); font-weight:600;
  font-size:1.32rem; line-height:1.3; margin:2.4rem 0 .8rem;
  scroll-margin-top:calc(var(--alto-top) + 1rem);
}
.vic-hoja h3{
  font-family:var(--serif); font-weight:600;
  font-size:1.09rem; margin:1.8rem 0 .6rem; color:var(--tinta);
  scroll-margin-top:calc(var(--alto-top) + 1rem);
}
.vic-hoja h4{ font-size:.98rem; margin:1.4rem 0 .5rem }

.vic-hoja p, .vic-hoja ul, .vic-hoja ol{ margin:0 0 1rem }
.vic-hoja li{ margin-bottom:.35rem }
.vic-hoja hr{ border:0; border-top:1px solid var(--linea-2); margin:2.2rem 0 }

/* La medida de lectura vale para la PROSA. Las tablas diacrónicas son la
   pieza que se somete a juicio —tres columnas, la tercera con párrafos— y a
   68ch se vuelven ilegibles: se les deja el ancho entero de la hoja. */
.vic-texto > *{ max-width:68ch }
.vic-texto > .tabla-env,
.vic-texto > pre,
.vic-texto > hr{ max-width:100% }

.tabla-env{ overflow-x:auto; margin:1.4rem 0; border:1px solid var(--linea-2); background:var(--tarjeta) }
.vic-hoja table{ border-collapse:collapse; width:100%; font-size:.9rem; line-height:1.55 }
.vic-hoja th, .vic-hoja td{
  border-bottom:1px solid var(--linea);
  padding:.55rem .8rem; text-align:left; vertical-align:top;
}
.vic-hoja thead th{
  background:var(--azul-tenue); color:var(--azul);
  font-size:.76rem; letter-spacing:.06em; text-transform:uppercase;
  border-bottom:2px solid var(--linea-2); position:sticky; top:0;
}
.vic-hoja tbody tr:last-child td{ border-bottom:0 }
.vic-hoja td small{ color:var(--tinta-3) }
.es-inactivo td{ opacity:.5 }

blockquote{
  margin:1.4rem 0; padding:.2rem 0 .2rem 1.2rem;
  border-left:3px solid var(--oro);
  font-family:var(--serif); font-size:1.02rem; color:#33383D;
}
blockquote p:last-child{ margin-bottom:0 }

code{
  font-family:var(--mono); font-size:.86em;
  background:#EDECE7; padding:.1em .35em; border-radius:3px;
}
pre.cod{
  background:var(--chasis); color:#DDE2E8; padding:1rem 1.1rem;
  overflow-x:auto; border-radius:6px; font-size:.82rem; line-height:1.5;
}
pre.cod code{ background:none; padding:0; color:inherit }

a.ref{
  font-variant-numeric:tabular-nums; white-space:nowrap;
  text-decoration:none; border-bottom:1px dotted var(--azul-claro);
}

.vic-entrada{
  font-size:1.06rem; color:#32373C;
  border-left:3px solid var(--azul); padding-left:1.1rem; margin-bottom:2rem;
  max-width:68ch;
}
.vic-entrada p:last-child{ margin-bottom:0 }

.vic-borrador{
  background:var(--oro-tenue); border-left-color:var(--oro);
  padding:1.1rem 1.2rem; max-width:68ch;
}

/* Invitación a juzgar, arriba del texto: quien entra a leer debe saber desde
   el primer momento que se espera de él una objeción, no una lectura pasiva. */
.vic-invita{
  background:var(--azul-tenue); border-left:3px solid var(--azul);
  padding:.75rem 1rem; margin-bottom:1.8rem; font-size:.88rem; max-width:68ch;
}

/* «objetar» junto a cada apartado. Discreto mientras se lee, evidente al
   pasar por encima: el texto manda, pero la objeción nunca queda lejos. */
.vic-h-obj{ position:relative }
.vic-objetar{
  font-family:var(--sans); font-size:.68rem; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase;
  text-decoration:none; color:var(--tinta-3);
  border:1px solid var(--linea-2); border-radius:12px;
  padding:.08em .55em; vertical-align:middle; white-space:nowrap;
  opacity:.45; transition:opacity .15s, color .15s, border-color .15s;
}
.vic-h-obj:hover .vic-objetar,
.vic-objetar:focus{ opacity:1; color:var(--rojo); border-color:var(--rojo) }
@media (hover:none){ .vic-objetar{ opacity:1 } }

/* ── fuentes citadas en el texto ──
   Subrayado tenue, del color de su categoría: la mención se reconoce sin
   romper el renglón. El globo da la ficha de un vistazo; el clic lleva al
   canon. Sin JavaScript: es CSS puro, así que existe aunque los scripts
   fallen — y lo que se somete a revisión no debe depender de un .js. */
.vic-fuente{
  color:inherit; text-decoration:none; cursor:help;
  border-bottom:1px dotted var(--oro);
}
.vic-fuente.cat-n{ border-bottom-color:var(--oro) }
.vic-fuente.cat-e{ border-bottom-color:var(--azul-claro) }
.vic-fuente.cat-c{ border-bottom-color:var(--tinta-3) }
.vic-fuente.cat-x{ border-bottom-color:var(--rojo); text-decoration:line-through;
                   text-decoration-color:rgba(107,32,32,.35) }
.vic-fuente:hover{ border-bottom-style:solid; color:var(--azul) }

.vic-fuente::after{
  content:attr(data-ficha);
  position:absolute; left:0; right:0; bottom:auto;
  margin-top:1.4em;
  z-index:50; pointer-events:none;
  max-width:34rem; width:max-content;
  background:var(--chasis); color:#E9ECF1;
  font-family:var(--sans); font-size:.78rem; font-weight:400;
  font-style:normal; line-height:1.45; letter-spacing:0;
  padding:.5rem .7rem; border-radius:5px;
  box-shadow:0 6px 22px rgba(0,0,0,.22);
  opacity:0; transition:opacity .12s .1s;
}
.vic-fuente:hover::after,
.vic-fuente:focus-visible::after{ opacity:1 }

/* El globo se posiciona respecto al párrafo, no respecto a la palabra: dentro
   de un renglón justificado, anclarlo a la palabra lo saca de la caja. */
.vic-texto p, .vic-texto li, .vic-texto td, .vic-texto blockquote{ position:relative }

@media (hover:none){ .vic-fuente::after{ display:none } }   /* en táctil, el clic ya lleva al canon */

.vic-ayuda{ color:var(--tinta-2); font-size:.88rem; max-width:68ch }
.vic-vacio{ color:var(--tinta-3); font-style:italic; padding:1.5rem 0 }
.vic-resumen{ color:var(--tinta-2); font-size:.88rem }

.vic-flash{
  background:var(--azul-tenue); border-left:3px solid var(--azul);
  padding:.7rem 1rem; margin-bottom:1.5rem; font-size:.9rem;
}
.vic-error{
  background:var(--rojo-tenue); border-left:3px solid var(--rojo);
  padding:.7rem 1rem; margin-bottom:1.2rem; font-size:.9rem; text-align:left;
}

/* ───────────────────────── etiquetas ───────────────────────── */

.vic-etq{
  display:inline-block; font-size:.68rem; font-weight:600;
  letter-spacing:.07em; text-transform:uppercase;
  padding:.1rem .45rem; border-radius:3px;
  background:#E8E7E2; color:var(--tinta-2); text-decoration:none;
  vertical-align:middle;
}
.vic-etq.cat-n{ background:var(--oro-tenue);  color:var(--oro) }
.vic-etq.cat-e{ background:var(--azul-tenue); color:var(--azul) }
.vic-etq.cat-c{ background:#EDECE7;           color:var(--tinta-2) }
.vic-etq.cat-x{ background:var(--rojo-tenue); color:var(--rojo) }

.vic-etq.j-favor { background:#E6F1EA; color:var(--verde) }
.vic-etq.j-contra{ background:var(--rojo-tenue); color:var(--rojo) }
.vic-etq.j-matiz { background:var(--azul-tenue); color:var(--azul) }
.vic-etq.j-aporte{ background:var(--oro-tenue);  color:var(--oro) }

.vic-etq.es-reserva{ background:var(--rojo); color:#fff }

/* ───────────────────────── tarjetas del temario ───────────────────────── */

.vic-bloque-tit{
  font-size:.78rem !important; letter-spacing:.13em; text-transform:uppercase;
  color:var(--tinta-3); font-family:var(--sans) !important; font-weight:600 !important;
  border-bottom:1px solid var(--linea-2); padding-bottom:.4rem;
  margin:2.6rem 0 1rem !important;
}

.vic-rejilla{
  display:grid; gap:.8rem; margin-bottom:1.5rem;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}
.vic-tarjeta{
  display:flex; flex-direction:column; gap:.3rem;
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:6px;
  padding:.85rem 1rem; text-decoration:none; color:var(--tinta);
  transition:border-color .15s, transform .15s;
}
.vic-tarjeta:hover{ border-color:var(--azul); transform:translateY(-1px) }
.vic-tarjeta.es-borrador{ background:#FAF9F6; border-style:dashed }

.vic-t-id{
  font-size:.7rem; font-weight:700; letter-spacing:.09em;
  color:var(--azul); font-variant-numeric:tabular-nums;
}
.vic-t-id em{ font-style:normal; font-weight:500; color:var(--rojo) }
.vic-t-id em.es-pend{ color:var(--oro) }
.vic-t-tit{ font-family:var(--serif); font-size:.99rem; line-height:1.3 }
.vic-t-anc{ font-size:.78rem; color:var(--tinta-3); line-height:1.45 }

.vic-ficha{
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:6px;
  padding:1rem 1.2rem; margin:1rem 0;
  scroll-margin-top:calc(var(--alto-top) + 1rem);
}
.vic-ficha h3{ margin:0 0 .6rem !important }
.vic-ficha p:last-child{ margin-bottom:0 }
.vic-ficha-dl{ display:grid; grid-template-columns:auto 1fr; gap:.15rem .9rem; margin:0 0 .7rem; font-size:.86rem }
.vic-ficha-dl dt{ color:var(--tinta-3); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding-top:.15rem }
.vic-ficha-dl dd{ margin:0 }
.vic-ficha-nota{ font-size:.9rem; color:var(--tinta-2) }
.vic-ficha-razon{ font-size:.9rem; background:var(--rojo-tenue); border-left:3px solid var(--rojo); padding:.6rem .8rem }
.vic-ficha-usos{ font-size:.82rem; color:var(--tinta-2); margin-top:.6rem }
.vic-ficha-usos.es-exclusion{ color:var(--rojo) }
.vic-ficha-usos a{ font-variant-numeric:tabular-nums; margin-right:.25rem }

.vic-paso{
  display:flex; justify-content:space-between; gap:1.5rem;
  margin:3rem 0 0; padding-top:1.2rem; border-top:1px solid var(--linea-2);
  font-size:.85rem;
}
.vic-paso a{ text-decoration:none; max-width:45%; }
.vic-paso a:hover{ text-decoration:underline }

/* ───────────────────────── panel derecho ───────────────────────── */

.vic-panel{
  position:sticky; top:var(--alto-top);
  max-height:calc(100vh - var(--alto-top)); overflow-y:auto; overscroll-behavior:contain;
  padding:2.6rem 1.4rem 3rem 0;
  font-size:.84rem;
}
.vic-p-bloque{
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:6px;
  padding:.9rem 1rem; margin-bottom:.9rem;
}
.vic-p-bloque.es-exclusion{ border-left:3px solid var(--rojo) }
.vic-p-bloque h2{
  margin:0 0 .6rem !important; font-family:var(--sans) !important;
  font-size:.7rem !important; font-weight:700 !important;
  letter-spacing:.12em; text-transform:uppercase; color:var(--tinta-3);
}
.vic-p-ancla{
  margin:0 0 .7rem; padding-left:.8rem; border-left:2px solid var(--oro);
  font-family:var(--serif); font-size:.9rem; color:#33383D;
}
.vic-p-dl{ display:grid; grid-template-columns:auto 1fr; gap:.2rem .8rem; margin:0; font-size:.82rem }
.vic-p-dl dt{ color:var(--tinta-3); font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; padding-top:.15rem }
.vic-p-dl dd{ margin:0 }
.vic-p-dl dd em{ color:var(--oro); font-style:normal; font-size:.75rem }

.vic-p-fuentes{ list-style:none; margin:0; padding:0 }
.vic-p-fuentes li{ margin-bottom:.5rem; line-height:1.4 }
.vic-p-razon{ display:block; color:var(--tinta-2); font-size:.79rem }
.vic-p-nota{ margin:.7rem 0 0 !important; font-size:.78rem; color:var(--tinta-3) }

.vic-p-indice nav{ display:flex; flex-direction:column; gap:.05rem }
.vic-p-indice a{
  text-decoration:none; color:var(--tinta-2); padding:.2rem 0; line-height:1.35;
  border-left:2px solid transparent; padding-left:.5rem;
}
.vic-p-indice a:hover{ color:var(--azul); border-left-color:var(--linea-2) }
.vic-p-indice a.es-activo{ color:var(--azul); border-left-color:var(--azul) }
.vic-p-indice a.n3{ padding-left:1.3rem; font-size:.79rem; color:var(--tinta-3) }

.vic-p-cuenta{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.3rem }
.vic-p-cuenta li{ display:flex; justify-content:space-between; align-items:center }
.vic-p-cuenta b{ font-variant-numeric:tabular-nums }
.vic-p-ir{ display:inline-block; margin-top:.8rem; font-size:.8rem; text-decoration:none; font-weight:600 }
.vic-p-form{ margin-top:.7rem }

/* ───────────────────────── juicio ───────────────────────── */

.vic-juicio{
  margin-top:3.5rem; padding-top:1.5rem; border-top:2px solid var(--linea-2);
  scroll-margin-top:calc(var(--alto-top) + 1rem);
  max-width:78ch;
}
.vic-juicio h2{ margin-top:0 !important }

.vic-juicios{ list-style:none; margin:1.5rem 0; padding:0 }
.vic-j{
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:6px;
  padding:.9rem 1.1rem; margin-bottom:.9rem;
}
.vic-j-cab{
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  font-size:.78rem; color:var(--tinta-3); margin-bottom:.5rem;
}
.vic-j-ancla{ color:var(--azul); text-decoration:none; font-size:.76rem }
.vic-j-texto{ font-size:.95rem; line-height:1.6 }
.vic-j-replica{
  margin:.9rem 0 0 1.2rem; padding:.7rem .9rem;
  background:#FAFAF8; border-left:2px solid var(--linea-2); border-radius:0 4px 4px 0;
}
.vic-firma strong{ color:var(--tinta) }
.vic-firma-or{ color:var(--tinta-3) }

.vic-replicar{ margin-top:.8rem }
.vic-replicar summary{
  cursor:pointer; font-size:.79rem; color:var(--azul);
  list-style:none; display:inline-block;
}
.vic-replicar summary::-webkit-details-marker{ display:none }
.vic-replicar summary::before{ content:"↳ " }
.vic-replicar[open] summary{ margin-bottom:.6rem }

/* ───────────────────────── formularios ───────────────────────── */

.vic-form-juicio{ display:flex; flex-direction:column; gap:.8rem; margin-top:1rem }

.vic-valores{ display:flex; flex-wrap:wrap; gap:.5rem }
.vic-valor{
  display:inline-flex; align-items:center; gap:.4rem; cursor:pointer;
  border:1px solid var(--linea-2); border-radius:20px;
  padding:.3rem .8rem; font-size:.83rem; background:var(--tarjeta);
}
.vic-valor:hover{ border-color:var(--tinta-3) }
.vic-valor:has(input:checked){ border-color:var(--azul); background:var(--azul-tenue); font-weight:600 }
.vic-valor.v-aporte:has(input:checked){ border-color:var(--oro); background:var(--oro-tenue) }
.vic-valor.v-contra:has(input:checked){ border-color:var(--rojo); background:var(--rojo-tenue) }

.vic-campo{ display:flex; flex-direction:column; gap:.25rem; font-size:.82rem; color:var(--tinta-2) }
.vic-campo em{ color:var(--tinta-3); font-size:.78rem }
.vic-check{ display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--tinta-2) }

input[type=text], input[type=email], input[type=password], input[type=search],
select, textarea{
  font:inherit; font-size:.92rem; color:var(--tinta);
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:5px;
  padding:.5rem .7rem; width:100%; outline:none; transition:border-color .15s;
}
input:focus, select:focus, textarea:focus{ border-color:var(--azul) }
textarea{ resize:vertical; line-height:1.55; font-family:var(--sans) }

button, .vic-btn-enlace{
  font:inherit; font-size:.88rem; font-weight:600;
  background:var(--azul); color:#fff; border:0; border-radius:5px;
  padding:.55rem 1.2rem; cursor:pointer; align-self:flex-start;
  text-decoration:none; display:inline-block;
}
button:hover, .vic-btn-enlace:hover{ background:var(--azul-claro); color:#fff }
.vic-btn-sec{ background:none; color:var(--tinta-2); border:1px solid var(--linea-2); font-weight:500 }
.vic-btn-sec:hover{ background:var(--papel); color:var(--tinta) }
.vic-acciones form{ display:flex; gap:.4rem; flex-wrap:wrap }

.vic-enlace-inv{
  background:var(--azul-tenue); border:1px solid var(--azul); border-radius:6px;
  padding:1rem 1.2rem; margin-bottom:1.5rem;
}
.vic-enlace-inv h2{ margin-top:0 !important; font-size:1rem !important }
.vic-enlace-inv input{ font-family:var(--mono); font-size:.78rem }

/* ───────────────────────── búsqueda ───────────────────────── */

.vic-resultados{ list-style:none; margin:1.5rem 0; padding:0 }
.vic-resultados li{ padding:.9rem 0; border-bottom:1px solid var(--linea) }
.vic-r-tit{ display:block; font-family:var(--serif); font-size:1.03rem; text-decoration:none }
.vic-r-tit:hover{ text-decoration:underline }
.vic-r-tipo{ display:block; font-size:.74rem; color:var(--tinta-3); letter-spacing:.05em; text-transform:uppercase; margin-top:.15rem }
.vic-r-frag{ margin:.4rem 0 0; font-size:.87rem; color:var(--tinta-2); line-height:1.55 }
mark{ background:var(--oro-tenue); color:var(--tinta); padding:0 .1em }

/* ───────────────────────── foro ───────────────────────── */

.vic-temas{ list-style:none; margin:1.5rem 0; padding:0 }
.vic-tema{ padding:.85rem 0; border-bottom:1px solid var(--linea) }
.vic-tema-tit{ font-family:var(--serif); font-size:1.05rem; text-decoration:none }
.vic-tema-meta{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-top:.3rem; font-size:.78rem; color:var(--tinta-3) }
.vic-tema-n{ font-variant-numeric:tabular-nums }

.vic-mensajes{ list-style:none; margin:1.5rem 0; padding:0; max-width:78ch }
.vic-msg{
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:6px;
  padding:.9rem 1.1rem; margin-bottom:.9rem;
}

/* ───────────────────────── puerta (acceso, aviso, invitación) ───────────── */

.vic-body-puerta{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:2rem 1rem;
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(31,58,95,.07), transparent 70%),
    var(--papel);
}
.vic-puerta{
  width:100%; max-width:24rem; text-align:center;
  background:var(--tarjeta); border:1px solid var(--linea-2); border-radius:10px;
  padding:2.4rem 2rem;
}
.vic-puerta-ancha{ max-width:38rem; text-align:left }
.vic-puerta-rombo{ color:var(--rojo); margin:0 0 .5rem; font-size:1.1rem }
.vic-puerta h1{ font-family:var(--serif); font-size:1.3rem; font-weight:600; margin:0 0 .4rem }
.vic-puerta-sub{ color:var(--tinta-2); font-size:.84rem; margin:0 0 1.6rem; line-height:1.5 }
.vic-puerta form{ display:flex; flex-direction:column; gap:.2rem; text-align:left }
.vic-puerta label{ font-size:.78rem; color:var(--tinta-2); margin-top:.7rem }
.vic-puerta button{ width:100%; align-self:auto; margin-top:1.2rem; padding:.65rem }
.vic-puerta-nota{ font-size:.79rem; color:var(--tinta-3); margin-top:1.6rem; line-height:1.55 }

.vic-aviso-texto{ font-size:.92rem; line-height:1.65 }
.vic-aviso-texto h2{ font-family:var(--serif); font-size:1.02rem; margin:1.5rem 0 .4rem }
.vic-aviso-texto p{ margin:0 0 .8rem }

/* ───────────────────────── pie ───────────────────────── */

.vic-pie{
  padding:1.6rem clamp(1.2rem,3.5vw,3.2rem);
  background:var(--chasis); color:var(--chasis-tx2);
  font-size:.78rem; line-height:1.6;
}
.vic-pie p{ margin:0 }
.vic-pie strong{ color:var(--chasis-tx) }
.vic-pie-org{ margin-top:.3rem !important; opacity:.75 }

/* ───────────────────────── marca de agua ─────────────────────────
   Compuesta en servidor. No impide copiar —nada puede— pero hace que
   ninguna copia sea anónima. */

#vic-marca{
  position:fixed; inset:0; z-index:30;
  pointer-events:none; overflow:hidden; opacity:.075;
}
#vic-marca span{
  position:absolute; white-space:nowrap;
  font:600 12px/1 var(--sans); letter-spacing:.08em;
  color:var(--rojo); transform:rotate(-30deg); transform-origin:0 0;
}

/* ───────────────────────── responsivo ───────────────────────── */

@media (max-width:1180px){
  .vic-marco{ grid-template-columns:var(--rail) minmax(0,1fr) }
  .vic-panel{
    grid-column:2; position:static; max-height:none;
    padding:0 clamp(1.2rem,3.5vw,3.2rem) 3rem;
  }
  .vic-panel .vic-p-bloque{ display:inline-block; vertical-align:top; width:100%; max-width:32rem }
}

@media (max-width:860px){
  .vic-marco{ grid-template-columns:minmax(0,1fr) }
  .vic-burger{ display:block }
  .vic-sub{ display:none }
  .vic-yo-nombre, .vic-yo-or{ display:none }

  .vic-rail{
    position:fixed; top:var(--alto-top); left:0; z-index:35;
    width:min(86vw,var(--rail)); height:calc(100vh - var(--alto-top));
    transform:translateX(-100%); transition:transform .2s ease;
    box-shadow:0 0 40px rgba(0,0,0,.4);
  }
  .vic-rail.es-abierto{ transform:translateX(0) }
  .vic-panel{ grid-column:1 }
  body.es-bloqueado{ overflow:hidden }
}

@media (max-width:560px){
  body{ font-size:16px }
  .vic-hoja{ padding-top:1.8rem }
  .vic-rejilla{ grid-template-columns:1fr }
  .vic-j-replica{ margin-left:.5rem }
}

/* ───────────────────────── impresión ─────────────────────────
   La marca se REFUERZA al imprimir: es justo cuando la hoja sale del
   navegador y deja de haber ninguna otra constancia. */

@media print{
  .vic-top, .vic-rail, .vic-panel, .vic-juicio, .vic-paso, .vic-pie{ display:none !important }
  .vic-marco{ display:block }
  .vic-hoja{ padding:0 }
  body{ font-size:11pt; background:#fff }
  #vic-marca{ opacity:.18; position:fixed }
  .tabla-env{ overflow:visible }
  a{ color:inherit; text-decoration:none }
}
