/* Lex Civil
   Identidad: carpeta de expediente. Cada fallo lleva un lomo con el color de su juzgado
   (J1 verde oscuro, J2 amarillo, J4 rojo, J5 naranja, Cámara azul pizarra) y la Suprema Corte
   un sello bordó. Interfaz en Segoe UI; carátulas y textos jurídicos en Cambria. */
:root {
  --fondo: #eceff2;
  --papel: #ffffff;
  --papel-2: #f6f7f9;
  --tinta: #15202b;
  --tinta-2: #3d4a57;
  --tenue: #65717d;
  --linea: #d5dbe1;
  --linea-suave: #e7ebef;
  --acento: #1d4a63;
  --acento-oscuro: #142f40;
  --acento-claro: #e2edf3;
  --bordo: #7a2335;
  --bordo-claro: #f6e6ea;
  --j1: #1e5a34; --j1-claro: #e1efe5;
  --j2: #e3b200; --j2-claro: #fdf4cf;
  --j4: #b42318; --j4-claro: #fbe4e1;
  --j5: #e26a10; --j5-claro: #fde9d8;
  --camara: #2f4d7a; --camara-claro: #e3e9f3;
  --ok: #24653a; --ok-claro: #e2f1e6;
  --alerta: #8a4b0f; --alerta-claro: #fbefdc;
  --mal: #9b2c2c; --mal-claro: #f8e3e1;
  --marca: #fff0a8; --marca-actual: #ffc94d;
  --foco: #dbe9f6;
  --letra: 18px;
  --interfaz: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --lectura: Cambria, "Cambria Math", Georgia, "Times New Roman", serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-padding-top: 80px; }
body { margin: 0; background: var(--fondo); color: var(--tinta); font: 15px/1.5 var(--interfaz); font-variant-numeric: lining-nums; -webkit-font-smoothing: antialiased; }
a { color: var(--acento); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
h1, h2, h3, h4 { line-height: 1.25; margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button, .boton { cursor: pointer; border: 1px solid var(--linea); background: var(--papel); border-radius: 6px; padding: 7px 14px; display: inline-block; color: var(--tinta); }
button:hover, .boton:hover { border-color: #aab4be; text-decoration: none; }
button:disabled { opacity: .45; cursor: default; }
.primario { background: var(--acento); border-color: var(--acento); color: #fff; }
.primario:hover { background: var(--acento-oscuro); border-color: var(--acento-oscuro); }
.peligro { color: var(--mal); }
.enlace { border: 0; background: none; padding: 0; color: var(--acento); text-align: left; border-radius: 0; }
.enlace:hover { text-decoration: underline; }
.tenue { color: var(--tenue); }
.chico, .nota-chica { font-size: 13px; color: var(--tenue); }
:focus-visible { outline: 3px solid #7fb0d8; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* barra superior */
.barra { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 28px; padding: 0 28px; height: 60px; background: var(--acento-oscuro); color: #fff; border-bottom: 3px solid var(--bordo); }
.marca { display: flex; align-items: center; gap: 12px; color: #fff; }
.marca:hover { text-decoration: none; }
.marca .nombre { display: flex; flex-direction: column; font-size: 11.5px; letter-spacing: .02em; color: #b9cbd8; line-height: 1.15; }
.marca .nombre b { font-family: var(--lectura); font-size: 19px; font-weight: 700; color: #fff; letter-spacing: 0; }
.menu { display: flex; gap: 2px; flex: 1; flex-wrap: wrap; align-self: stretch; }
.menu a { color: #cfdbe4; padding: 0 14px; display: flex; align-items: center; font-weight: 500; border-bottom: 3px solid transparent; margin-bottom: -3px; }
.menu a:hover { color: #fff; text-decoration: none; background: rgba(255,255,255,.05); }
.menu a.activo { color: #fff; border-bottom-color: #fff; }
.cerrar { background: transparent; color: #cfdbe4; border-color: rgba(255,255,255,.3); }
.cerrar:hover { background: rgba(255,255,255,.1); color: #fff; }

main { max-width: 1260px; margin: 0 auto; padding: 28px 28px 80px; }
.cargando, .vacio { color: var(--tenue); padding: 24px 0; }
.vacio.grande { background: var(--papel); border: 1px dashed var(--linea); border-radius: 8px; padding: 28px; }
.error { background: var(--mal-claro); color: var(--mal); padding: 14px 18px; border-radius: 8px; }
.despedida { text-align: center; padding-top: 18vh; }

/* ingreso con PIN */
.pantalla-ingreso { min-height: 100vh; display: grid; place-items: center; background: var(--acento-oscuro); }
.ingreso { width: min(380px, 92vw); background: var(--papel); border-radius: 10px; border-top: 5px solid var(--bordo); padding: 34px 32px 26px; text-align: center; color: var(--acento-oscuro); box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.ingreso h1 { font-size: 13px; font-weight: 500; color: var(--tenue); margin: 12px 0 22px; display: flex; flex-direction: column; gap: 2px; }
.ingreso h1 span { font-family: var(--lectura); font-size: 25px; font-weight: 700; color: var(--tinta); }
.ingreso form { display: flex; flex-direction: column; gap: 10px; text-align: left; }
.ingreso label { font-size: 13.5px; font-weight: 600; color: var(--tinta-2); }
.ingreso input { padding: 11px 14px; font-size: 18px; letter-spacing: .2em; border: 1px solid #b8c2cc; border-radius: 6px; }
.ingreso button { padding: 11px; font-size: 15px; }
.error-ingreso { color: var(--mal); min-height: 1.4em; margin: 0; font-size: 14px; }
.pie-ingreso { font-size: 12.5px; color: var(--tenue); margin: 18px 0 0; }

/* portada */
.portada { padding: 36px 0 22px; }
.portada h1 { font-family: var(--lectura); font-size: 34px; font-weight: 700; margin-bottom: 18px; letter-spacing: -.01em; }
.buscador { display: flex; gap: 8px; max-width: 820px; }
.buscador input { flex: 1; padding: 13px 16px; border: 1px solid #b8c2cc; border-radius: 6px; background: #fff; font-size: 16px; }
.buscador button { padding: 0 24px; border-radius: 6px; }
.ejemplos { color: var(--tenue); font-size: 14px; margin-top: 10px; }
.accesos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin: 30px 0 38px; }
.acceso { background: var(--papel); border: 1px solid var(--linea); border-top: 4px solid var(--acento); border-radius: 6px; padding: 16px 18px; color: var(--tinta); display: flex; flex-direction: column; gap: 6px; }
.acceso:nth-child(4) { border-top-color: var(--bordo); }
.acceso b { font-size: 16px; color: var(--tinta); }
.acceso span { font-size: 14px; color: var(--tenue); }
.acceso:hover { border-color: #aab4be; text-decoration: none; }
.recientes h2 { font-family: var(--lectura); font-size: 22px; margin-bottom: 12px; }

/* búsqueda */
.cabeza-busqueda { margin-bottom: 8px; }
.cabeza-busqueda .buscador { max-width: none; }
.donde { font-size: 14px; margin: 10px 0 4px; }
.filtros { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 0; }
.filtros .fila { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.filtros select { padding: 6px 10px; border: 1px solid var(--linea); border-radius: 6px; background: #fff; max-width: 100%; }
.casilla { display: inline-flex; gap: 8px; align-items: center; font-size: 14px; cursor: pointer; }
.casilla input { accent-color: var(--bordo); width: 16px; height: 16px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { padding: 5px 12px; border-radius: 999px; font-size: 14px; }
.chip.activo { background: var(--acento); border-color: var(--acento); color: #fff; }
.resumen { margin: 20px 0 12px; }

/* tarjeta de fallo: el lomo de color identifica al juzgado */
.tarjeta { position: relative; background: var(--papel); border: 1px solid var(--linea); border-left: 6px solid var(--linea); border-radius: 6px; padding: 16px 22px 18px; margin-bottom: 12px; }
.lomo-j1 { border-left-color: var(--j1); } .lomo-j2 { border-left-color: var(--j2); } .lomo-j4 { border-left-color: var(--j4); }
.lomo-j5 { border-left-color: var(--j5); } .lomo-camara { border-left-color: var(--camara); } .lomo-scjm { border-left-color: var(--bordo); } .lomo-otro { border-left-color: #a7b0b9; }
.tarjeta h3 { font-family: var(--lectura); font-size: 17.5px; font-weight: 700; line-height: 1.3; margin: 7px 0 8px; letter-spacing: .005em; }
.tarjeta h3 a, .fila-apel h3 a, .grupo-notas h3 a { color: var(--tinta); }
.tarjeta h3 a:hover, .fila-apel h3 a:hover, .grupo-notas h3 a:hover { color: var(--acento); text-decoration: none; }
.meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 13px; color: var(--tenue); }
.trib { display: inline-flex; gap: 6px; align-items: center; font-weight: 600; font-size: 12.5px; padding: 2px 9px 2px 3px; border-radius: 4px; background: #eceff2; color: var(--tinta-2); }
.trib b { padding: 0 6px; border-radius: 3px; color: #fff; background: #8a949e; font-size: 12px; }
.trib:not(:has(b)) { padding-left: 9px; }
.trib.j1 { background: var(--j1-claro); color: var(--j1); } .trib.j1 b { background: var(--j1); }
.trib.j2 { background: var(--j2-claro); color: #6b5200; } .trib.j2 b { background: var(--j2); color: #2a2000; }
.trib.j4 { background: var(--j4-claro); color: var(--j4); } .trib.j4 b { background: var(--j4); }
.trib.j5 { background: var(--j5-claro); color: #9a4708; } .trib.j5 b { background: var(--j5); }
.trib.camara { background: var(--camara-claro); color: var(--camara); }
.etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 10px; }
.etq { font-size: 13px; padding: 2px 9px; border-radius: 4px; background: var(--papel-2); color: var(--tinta-2); border: 1px solid var(--linea-suave); }
.etq.objeto { background: var(--acento-claro); border-color: #c6d9e5; color: var(--acento); font-weight: 600; }
.sello-scjm { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; padding: 2px 9px; border-radius: 4px; background: var(--bordo); color: #fff; letter-spacing: .01em; }
.sello-scjm small { font-weight: 500; opacity: .85; }
.insignia { font-size: 12.5px; padding: 2px 9px; border-radius: 4px; background: #eceff2; color: var(--tinta-2); white-space: nowrap; font-weight: 600; }
.insignia.grande { font-size: 14px; padding: 4px 10px; }
.insignia.confirma, .insignia.vigente { background: var(--ok-claro); color: var(--ok); }
.insignia.modifica, .insignia.provisorio { background: var(--alerta-claro); color: var(--alerta); }
.insignia.revoca, .insignia.cambio { background: var(--mal-claro); color: var(--mal); }
.insignia.reunion { background: var(--acento-claro); color: var(--acento); font-weight: 500; }
.insignia.tema { background: var(--j1-claro); color: var(--j1); font-weight: 500; }
.insignia.neutra { font-weight: 500; }
.sumario { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 6px 14px; margin: 0; padding: 10px 0 0; border-top: 1px solid var(--linea-suave); }
.sumario dt { font-size: 13px; color: var(--tenue); font-weight: 600; padding-top: 2px; }
.sumario dd { margin: 0; font-family: var(--lectura); font-size: 15.5px; line-height: 1.45; color: var(--tinta-2); max-width: 78ch; }
.extractos { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.rotulo-extractos { font-size: 13px; color: var(--tenue); font-weight: 600; }
.extracto { display: flex; gap: 14px; justify-content: space-between; align-items: flex-end; padding: 8px 12px; border-left: 3px solid #e2c766; background: #fcfaf3; border-radius: 0 6px 6px 0; color: var(--tinta); font-family: var(--lectura); font-size: 15.5px; line-height: 1.5; }
.extracto:hover { background: #fbf4dc; text-decoration: none; }
.extracto .ir { font-family: var(--interfaz); font-size: 12.5px; color: var(--acento); white-space: nowrap; font-weight: 600; }
mark { background: var(--marca); color: inherit; padding: 0 1px; border-radius: 2px; }
.paginas { display: flex; gap: 14px; align-items: center; justify-content: center; margin: 24px 0; }

/* lector */
.cabecera { margin-bottom: 20px; }
.cabecera.tarjeta { padding: 18px 26px 20px; }
.cabecera h1 { font-family: var(--lectura); font-size: 26px; font-weight: 700; margin: 8px 0 10px; line-height: 1.25; }
.volver { font-size: 14px; display: inline-block; margin-bottom: 8px; }
.sumario-lector .sumario dd { font-size: 16.5px; }
.sumario-lector .nota-chica { margin: 8px 0 0; }
.herramientas { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 14px; }
.tamano { display: inline-flex; gap: 4px; }
.lectura { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; }
.panel { position: sticky; top: 78px; max-height: calc(100vh - 92px); overflow: auto; display: flex; flex-direction: column; gap: 12px; padding-right: 4px; }
.bloque { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 12px 14px; }
.bloque h2 { font-size: 14px; color: var(--tinta); margin-bottom: 8px; font-weight: 700; }
.bloque h3 { font-size: 13px; color: var(--tenue); margin: 12px 0 4px; font-weight: 600; }
.bloque .ancho { width: 100%; margin-bottom: 8px; }
.buscar-en input { width: 100%; padding: 7px 10px; border: 1px solid var(--linea); border-radius: 6px; }
.nav-aciertos { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.nav-aciertos button { padding: 2px 12px; font-size: 18px; line-height: 1.2; }
.nav-aciertos .cuenta { flex: 1; text-align: center; font-size: 14px; color: var(--tenue); }
.indice { margin: 0; padding-left: 20px; }
.indice li { margin: 3px 0; }
.rubros { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 14px; }
.citas { margin: 0; padding-left: 20px; font-size: 14px; }
.citas li { margin: 0 0 8px; }
.citas li.es-scjm::marker { color: var(--bordo); font-weight: 700; }
.citas li.es-scjm .autor { color: var(--bordo); }
.citas .autor { font-weight: 600; }
.citas .obra { font-family: var(--lectura); font-style: italic; color: var(--tinta-2); font-size: 14px; }
.citas .uso { font-size: 12.5px; color: var(--tenue); }
.aviso-scjm { font-size: 13px; color: var(--tenue); margin: 0 0 8px; }
.relacion { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.relacion li { margin: 0 0 8px; }
.rel { font-size: 13px; color: var(--tenue); }
.rel.comprobado, .rel.confirmado, .rel.deducido { color: var(--ok); }
.mis-marcas { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.mis-marcas li { border-left: 4px solid #e8cf5a; padding: 2px 0 2px 8px; margin-bottom: 8px; }
.mis-marcas li.verde { border-color: #7fbf7f; } .mis-marcas li.azul { border-color: #7fa9d6; } .mis-marcas li.rosa { border-color: #e39ab4; }
.mis-marcas .nota { color: var(--tenue); font-size: 13px; }

.texto { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 34px 48px 44px; font-family: var(--lectura); font-size: var(--letra); line-height: 1.65; color: #1b222b; hyphens: manual; }
.texto p { margin: 0 0 .85em; position: relative; border-radius: 3px; transition: background-color .6s; max-width: 74ch; }
.titulo-seccion { font-family: var(--interfaz); font-size: 14px; letter-spacing: .02em; color: var(--acento); font-weight: 700; border-top: 1px solid var(--linea-suave); padding-top: 18px; margin: 28px 0 12px; position: relative; }
.titulo-seccion:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.acierto { background: var(--marca); border-radius: 2px; }
.acierto.actual { background: var(--marca-actual); box-shadow: 0 0 0 2px var(--marca-actual); }
.resalte { cursor: pointer; border-radius: 2px; }
.resalte.amarillo { background: #fff3b0; } .resalte.verde { background: #d9f0d4; } .resalte.azul { background: #dbe8f7; } .resalte.rosa { background: #f9dde7; }
.cita-scjm { background: var(--bordo-claro); box-shadow: inset 0 -2px 0 var(--bordo); }
.sello-texto { font-family: var(--interfaz); font-size: 10.5px; font-weight: 700; color: #fff; background: var(--bordo); border-radius: 3px; padding: 1px 5px; margin-right: 4px; vertical-align: 2px; letter-spacing: .03em; user-select: none; }
.foco { background: var(--foco); box-shadow: 0 0 0 1px #b6cfe6; border-radius: 2px; }
.aqui::before { content: "▶"; position: absolute; left: -30px; top: .1em; color: var(--acento); font-size: 15px; font-family: var(--interfaz); }
.destello { animation: destello 2.2s ease-out; }
@keyframes destello { 0% { background: #ffe58a; } 100% { background: transparent; } }
.seguir { position: fixed; right: 24px; bottom: 24px; background: var(--acento); color: #fff; border: 0; padding: 12px 18px; border-radius: 999px; box-shadow: 0 4px 16px rgba(0,0,0,.2); }

/* barra de selección */
.barra-seleccion { position: absolute; z-index: 40; display: flex; gap: 2px; background: var(--acento-oscuro); border-radius: 8px; padding: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.barra-seleccion button { background: transparent; color: #fff; border: 0; padding: 7px 12px; border-radius: 6px; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
.barra-seleccion button:hover { background: rgba(255,255,255,.14); }
.punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); }
.punto.amarillo { background: #f7dc5b; } .punto.verde { background: #8fd18a; } .punto.azul { background: #8db7e6; } .punto.rosa { background: #ee9fbd; }

dialog { border: 0; border-radius: 10px; padding: 0; width: min(640px, 94vw); box-shadow: 0 20px 60px rgba(0,0,0,.3); }
dialog::backdrop { background: rgba(20,30,40,.45); }
.dialogo { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.dialogo h2 { font-size: 18px; }
.dialogo textarea { width: 100%; border: 1px solid var(--linea); border-radius: 6px; padding: 10px; font-family: var(--lectura); font-size: 16px; }
.dialogo blockquote { margin: 0; padding: 8px 12px; background: #fcfaf3; border-left: 3px solid #e2c766; font-family: var(--lectura); max-height: 160px; overflow: auto; }
.opciones, .colores { display: flex; gap: 16px; flex-wrap: wrap; font-size: 14px; }
.colores label { display: inline-flex; gap: 6px; align-items: center; }
.acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.rotulo { font-size: 13px; color: var(--tenue); font-weight: 600; }
#aviso { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 30px); opacity: 0; background: var(--acento-oscuro); color: #fff; padding: 10px 18px; border-radius: 8px; transition: .25s; pointer-events: none; z-index: 60; }
#aviso.ver { opacity: 1; transform: translate(-50%, 0); }

/* secciones */
.cabeza-seccion { margin-bottom: 18px; }
.cabeza-seccion h1 { font-family: var(--lectura); font-size: 30px; font-weight: 700; margin-bottom: 8px; letter-spacing: -.005em; }
.bajada { color: var(--tinta-2); max-width: 80ch; margin: 0 0 14px; }
.pestanas { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--linea); margin: 16px 0 14px; }
.pestanas a { padding: 9px 14px; color: var(--tenue); font-weight: 500; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.pestanas a:hover { color: var(--tinta); text-decoration: none; }
.pestanas a.activa { color: var(--tinta); border-bottom-color: var(--acento); font-weight: 600; }
.pestanas a.pestana-scjm.activa { border-bottom-color: var(--bordo); color: var(--bordo); }
.pestanas .n { display: inline-block; margin-left: 6px; font-size: 12px; background: #dfe4e9; border-radius: 999px; padding: 0 7px; color: var(--tinta-2); }
.filtro { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.filtro input { width: min(460px, 100%); padding: 8px 12px; border: 1px solid var(--linea); border-radius: 6px; background: #fff; }
.con-indice { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 26px; align-items: start; }
.indice-temas { position: sticky; top: 78px; background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 12px 14px; max-height: calc(100vh - 92px); overflow: auto; }
.indice-temas h2 { font-size: 14px; color: var(--tinta); margin-bottom: 6px; font-weight: 700; }
.indice-temas ul { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.indice-temas li a { display: flex; justify-content: space-between; gap: 8px; padding: 4px 6px; margin: 0 -6px; border-radius: 4px; color: var(--tinta); }
.indice-temas li.elegido a { background: var(--acento-claro); color: var(--acento); font-weight: 600; }
.indice-temas .n { color: var(--tenue); font-size: 12px; }
.grupo { margin-bottom: 28px; }
.grupo > h2 { font-family: var(--lectura); font-size: 21px; font-weight: 700; margin: 0 0 10px; display: flex; gap: 10px; align-items: baseline; }
.grupo > h2 .fecha { font-family: var(--interfaz); font-size: 14px; color: var(--tenue); font-weight: 400; }
.acta-enlace { font-size: 14px; margin: 4px 0 10px; }
.ficha { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; margin-bottom: 10px; overflow: hidden; }
.cabeza-ficha { width: 100%; border: 0; border-radius: 0; text-align: left; padding: 14px 18px; display: grid; gap: 6px; background: transparent; }
.cabeza-ficha:hover { background: #f7f9fa; }
.cabeza-ficha .titulo { font-weight: 700; font-size: 16px; }
.cabeza-ficha .titulo::after { content: "▾"; color: var(--tenue); margin-left: 8px; font-size: 13px; }
.ficha.abierta .cabeza-ficha .titulo::after { content: "▴"; }
.cabeza-ficha .insignias { display: flex; flex-wrap: wrap; gap: 6px; }
.cabeza-ficha .resumen-ficha { color: var(--tinta-2); font-size: 14.5px; }
.ficha.abierta .resumen-ficha { display: none; }
.ficha .detalle { display: none; padding: 0 18px 18px; border-top: 1px solid var(--linea-suave); }
.ficha.abierta .detalle { display: block; }
.ficha.abierta:not(:has(.cabeza-ficha)) { padding: 14px 18px; }
.ficha h3 { font-size: 16px; margin-bottom: 6px; }
.ficha h4 { font-size: 13.5px; color: var(--acento); margin: 16px 0 6px; font-weight: 700; }
.pregunta { font-style: italic; color: var(--tinta-2); margin: 12px 0 0; }
.decision { margin: 0; padding-left: 20px; }
.decision li { margin-bottom: 4px; }
.explicacion .aclaracion { color: var(--tenue); font-size: 13px; }
.ficha blockquote, .grupo-notas blockquote, .cita blockquote { margin: 0; padding: 8px 14px; border-left: 3px solid #c3ccd5; background: var(--papel-2); font-family: var(--lectura); font-size: 16px; }
.jueces { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.juez { border: 1px solid var(--linea); border-top-width: 4px; border-radius: 6px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; }
.juez:nth-child(1) { border-top-color: var(--j1); } .juez:nth-child(2) { border-top-color: var(--j2); } .juez:nth-child(3) { border-top-color: var(--j4); } .juez:nth-child(4) { border-top-color: var(--j5); }
.juez b { font-size: 14px; display: flex; justify-content: space-between; }
.juez .jz { color: var(--tenue); font-weight: 400; font-size: 12px; }
.juez .pos { font-weight: 700; }
.juez .det { color: var(--tinta-2); font-size: 13px; }
.juez.sin { background: #fafbfc; color: var(--tenue); }
.juez.sin .pos { font-weight: 400; }
.juez.acuerdo, .juez.propuso { background: var(--ok-claro); }
.juez.acata { background: var(--alerta-claro); }
.juez.disidencia { background: var(--mal-claro); }
.juez.propia { background: var(--acento-claro); }
.juez.ausente { background: #f2f3f4; color: var(--tenue); }
.relaciones { margin: 0; padding-left: 20px; font-size: 14.5px; }
.tipo-rel { font-weight: 600; }
.nota-alerta { background: var(--alerta-claro); color: #6b3a0b; padding: 10px 14px; border-radius: 6px; font-size: 14px; }
.tabla-scroll { overflow-x: auto; }
.comparativa { border-collapse: separate; border-spacing: 0; width: 100%; background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; overflow: hidden; font-size: 14px; }
.comparativa th { text-align: left; background: #f1f3f5; padding: 10px; font-size: 13.5px; vertical-align: bottom; border-bottom: 3px solid var(--linea); }
.comparativa th:nth-child(2) { border-bottom-color: var(--j1); } .comparativa th:nth-child(3) { border-bottom-color: var(--j2); }
.comparativa th:nth-child(4) { border-bottom-color: var(--j4); } .comparativa th:nth-child(5) { border-bottom-color: var(--j5); }
.comparativa th small { display: block; color: var(--tenue); font-weight: 400; }
.comparativa td { padding: 10px; border-top: 1px solid var(--linea-suave); vertical-align: top; }
.comparativa td:first-child { width: 30%; }
.comparativa td a { color: var(--tinta); font-weight: 600; }
.celda b { font-size: 13px; }
.celda .det { font-size: 12.5px; color: var(--tinta-2); }
.celda.acuerdo, .celda.propuso { background: var(--ok-claro); }
.celda.acata { background: var(--alerta-claro); }
.celda.disidencia { background: var(--mal-claro); }
.celda.propia { background: var(--acento-claro); }
.celda.sin { color: #a0a6ad; }
.acta p { margin: 0 0 .8em; }
.acta .aqui { background: #fffbe8; }

.lista-apel { display: flex; flex-direction: column; gap: 10px; }
.fila-apel { background: var(--papel); border: 1px solid var(--linea); border-left: 6px solid var(--linea); border-radius: 6px; padding: 14px 18px; display: grid; grid-template-columns: minmax(0, 1.4fr) auto minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; }
.fila-apel h3 { font-family: var(--lectura); font-size: 16px; font-weight: 700; margin-top: 4px; }
.fila-apel .flecha { color: var(--tenue); font-size: 20px; }
.fila-apel .lado .insignia { margin-top: 6px; display: inline-block; white-space: normal; }
.fila-apel .motivo { grid-column: 1 / -1; margin: 0; font-size: 13.5px; color: var(--tinta-2); background: var(--papel-2); border-radius: 4px; padding: 6px 10px; }
.como { font-size: 12.5px; color: var(--tenue); margin-top: 4px; }
.como.deducido { color: var(--alerta); }
.pregunta-apel { margin-top: 14px; background: var(--alerta-claro); border: 1px solid #ecd3ae; border-radius: 6px; padding: 14px 16px; }
.pregunta-apel.ok { background: var(--ok-claro); border-color: #c6dfca; }
.pregunta-apel .acciones { margin-top: 10px; }
.lado-a-lado { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.columna .rotulo { margin-bottom: 6px; }
.texto.resol { padding: 18px 22px; font-size: 16.5px; margin-top: 8px; }
.texto.resol p.tocado { background: var(--alerta-claro); padding: 6px 8px; }
.marca-disp { display: block; font-family: var(--interfaz); font-size: 12px; color: var(--alerta); font-weight: 600; }

.cita .cabeza-cita { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; margin-bottom: 8px; font-size: 15px; }
.cita .meta { margin-top: 10px; }
.cita .meta a { color: var(--tinta); font-weight: 600; }

.grupo-notas { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 16px 20px; margin-bottom: 14px; }
.grupo-notas h3 { font-family: var(--lectura); font-size: 17px; font-weight: 700; margin: 6px 0 10px; }
.nota-item { border-left: 4px solid #e8cf5a; padding-left: 12px; margin: 10px 0 14px; }
.nota-item.verde { border-color: #7fbf7f; } .nota-item.azul { border-color: #7fa9d6; } .nota-item.rosa { border-color: #e39ab4; }
.nota-item blockquote { border: 0; padding: 0; background: none; }
.nota-item .nota { margin: 6px 0; }
.acciones-nota { display: flex; gap: 16px; font-size: 14px; align-items: center; }

@media (max-width: 1000px) {
  .accesos { grid-template-columns: 1fr 1fr; }
  .lectura, .con-indice { grid-template-columns: 1fr; }
  .panel, .indice-temas { position: static; max-height: none; }
  .jueces { grid-template-columns: 1fr 1fr; }
  .lado-a-lado { grid-template-columns: 1fr; }
  .fila-apel { grid-template-columns: 1fr; }
  .fila-apel .flecha { display: none; }
}
@media (max-width: 640px) {
  .barra { flex-wrap: wrap; gap: 4px 8px; padding: 8px 12px; height: auto; }
  .marca .nombre b { font-size: 16px; }
  .menu { order: 3; flex: 1 0 100%; flex-wrap: nowrap; overflow-x: auto; }
  .menu a { white-space: nowrap; padding: 8px 10px; font-size: 14px; }
  .cerrar { margin-left: auto; padding: 4px 10px; font-size: 13px; }
  main { padding: 16px 12px 60px; }
  .accesos { grid-template-columns: 1fr; }
  .texto { padding: 18px 18px 26px; }
  .aqui::before { left: -14px; }
  .jueces { grid-template-columns: 1fr; }
  .sumario { grid-template-columns: 1fr; }
  .sumario dt { padding-top: 6px; }
}
@media print {
  .barra, .panel, .herramientas, .volver, .seguir { display: none !important; }
  .lectura { display: block; }
  .texto { border: 0; padding: 0; }
}
.indice li .enlace { display: inline; }
/* Metadatos de voto y evidencia de relaciones, sin sobrecargar las tarjetas. */
.voto-preopinante { display: inline-block; margin-left: .65em; font-weight: 500; }
.evidencia-revision { margin: 1.3rem 0; padding: 1rem 1.3rem; background: #f1f5f7; border-left: 4px solid #24566a; }
.evidencia-revision h2 { font-size: 1.15rem; }
.evidencia-revision blockquote { white-space: pre-wrap; margin: 1rem 0; }
.indice-temas a .n { margin-left: .45rem; }

/* Calculadora local dentro de Liquidaciones. */
.marco-calculadora{width:100%;height:1100px;min-height:80vh;border:1px solid #d4dce1;border-radius:10px;background:white}.calculadora-integrada{margin-top:18px;min-width:0}

@media (max-width: 1200px) { .accesos { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 1000px) { .accesos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .accesos { grid-template-columns: 1fr; } }
.marco-calculadora { border-color: var(--linea); border-radius: 6px; }
