/* RenovaZ · Registro de Insolvencia — assets/estilos.css
   Identidad visual: azul/marino elegante y sobrio. Todo color sale de las variables de :root. */

:root{
  --marino:#0B2A4A;  --marino-700:#123D68;  --azul:#1E6FA8;  --azul-50:#EAF2F9;
  --bg:#F4F6F9;  --superficie:#FFFFFF;  --borde:#DCE3EC;
  --texto:#1C2733;  --texto-suave:#5B6B7C;  --exito:#1E7D4F;  --alerta:#B7791F;  --peligro:#B3392F;
  --radio:10px;  --sombra:0 1px 3px rgba(16,33,56,.08), 0 8px 24px rgba(16,33,56,.06);

  --gris:#64748B;      --gris-bg:#EEF1F5;
  --azul-bg:#E3EEF9;   --indigo:#3E4C9C;  --indigo-bg:#E7E9F8;
  --verde:#1E7D4F;     --verde-bg:#E4F3EB;
  --slate:#475569;     --slate-bg:#E8EBF0;
  --rojo:#B3392F;      --rojo-bg:#FBE9E7;
  --violeta:#6B3FA0;   --violeta-bg:#F0E8F8;
  --naranja:#B45309;   --naranja-bg:#FCEEDD;

  --sidebar-w:240px;
  --topbar-h:60px;
  --fuente:-apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html,body{ margin:0; padding:0; }
body{
  font-family:var(--fuente);
  background:var(--bg);
  color:var(--texto);
  font-size:15px;
  line-height:1.5;
  -webkit-text-size-adjust:100%;
}

h1,h2,h3,h4{ margin:0 0 .6rem; line-height:1.25; color:var(--marino); font-weight:650; }
h1{ font-size:1.5rem; } h2{ font-size:1.15rem; } h3{ font-size:1rem; }
p{ margin:.35rem 0 .8rem; }
a{ color:var(--azul); }
a:hover{ color:var(--marino-700); }
code{ font-family:Consolas,"Courier New",monospace; font-size:.86em; background:var(--azul-50); color:var(--marino-700); padding:.1rem .3rem; border-radius:4px; }
hr{ border:0; border-top:1px solid var(--borde); margin:1rem 0; }

:focus-visible{ outline:3px solid var(--azul); outline-offset:2px; border-radius:6px; }

/* ---------- Utilidades de texto ---------- */
.texto-suave{ color:var(--texto-suave); }
.texto-exito{ color:var(--exito); }
.texto-error{ color:var(--peligro); }
.texto-aviso{ color:var(--alerta); }
.texto-centro{ text-align:center; }
.texto-derecha{ text-align:right; }
.pequeno{ font-size:.85rem; }
.mono{ font-family:Consolas,"Courier New",monospace; }
.nowrap{ white-space:nowrap; }
.sin-datos{ color:var(--texto-suave); font-style:italic; padding:.6rem 0; }

.salto-contenido{
  position:absolute; left:-9999px; top:0; background:var(--marino); color:#fff;
  padding:.6rem 1rem; z-index:100;
}
.salto-contenido:focus{ left:0; color:#fff; }

/* ---------- Layout general ---------- */
.layout{ min-height:100vh; display:flex; }

.sidebar{
  width:var(--sidebar-w); flex:0 0 var(--sidebar-w);
  background:var(--marino); color:#DCE6F1;
  display:flex; flex-direction:column; position:fixed; inset:0 auto 0 0; z-index:40;
}
.sidebar-marca{ padding:1.15rem 1.1rem 1rem; border-bottom:1px solid rgba(255,255,255,.10); }
.marca-nombre{ display:block; font-size:1.35rem; font-weight:700; letter-spacing:.02em; color:#fff; }
.marca-sub{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:#9FB7CE; margin-top:.15rem; }

.sidebar-nav{ flex:1; padding:.8rem .6rem; overflow-y:auto; }
.sidebar-nav ul{ list-style:none; margin:0; padding:0; }
.nav-enlace{
  display:block; padding:.62rem .75rem; margin:.15rem 0; border-radius:8px;
  color:#D6E1EE; text-decoration:none; font-weight:500; font-size:.94rem;
}
.nav-enlace:hover{ background:var(--marino-700); color:#fff; }
.nav-enlace.activo{ background:var(--azul); color:#fff; }
.nav-separador{ height:1px; background:rgba(255,255,255,.12); margin:.7rem .35rem; }
.nav-salir{ color:#F0C9C4; }
.nav-salir:hover{ background:#7E2A22; color:#fff; }
.sidebar-pie{ padding:.8rem 1.1rem; border-top:1px solid rgba(255,255,255,.10); font-size:.74rem; color:#8FA6BC; }

.principal{ flex:1; min-width:0; margin-left:var(--sidebar-w); display:flex; flex-direction:column; min-height:100vh; }

.topbar{
  height:var(--topbar-h); background:var(--superficie); border-bottom:1px solid var(--borde);
  display:flex; align-items:center; gap:.8rem; padding:0 1.1rem; position:sticky; top:0; z-index:30;
}
.topbar-titulo{ font-size:1.05rem; margin:0; flex:1; min-width:0; }
.topbar-usuario{ display:flex; align-items:center; gap:.6rem; }
.topbar-datos{ display:flex; flex-direction:column; line-height:1.2; }
.topbar-nombre{ font-weight:600; font-size:.9rem; }
.topbar-rol{ font-size:.75rem; color:var(--texto-suave); }
.avatar{
  width:34px; height:34px; border-radius:50%; background:var(--azul-50); color:var(--marino-700);
  display:inline-flex; align-items:center; justify-content:center; font-weight:700;
}
.btn-hamburguesa{
  display:none; background:var(--superficie); border:1px solid var(--borde); border-radius:8px;
  font-size:1.15rem; line-height:1; padding:.35rem .6rem; cursor:pointer; color:var(--marino);
}

.contenido{ flex:1; padding:1.2rem 1.25rem 2rem; max-width:1400px; width:100%; }
.pie{
  border-top:1px solid var(--borde); background:var(--superficie);
  padding:.75rem 1.25rem; display:flex; justify-content:space-between;
  font-size:.78rem; color:var(--texto-suave);
}
.overlay{ position:fixed; inset:0; background:rgba(11,42,74,.45); z-index:35; }

/* ---------- Mensajes flash ---------- */
.flash{
  border-radius:var(--radio); padding:.7rem .9rem; margin:0 0 .9rem;
  border:1px solid var(--borde); background:var(--superficie); font-weight:550;
  border-left-width:5px;
}
.flash-exito{ background:var(--verde-bg); border-color:var(--verde); color:#134F33; }
.flash-error{ background:var(--rojo-bg); border-color:var(--rojo); color:#7C271F; }
.flash-aviso{ background:#FCF4E4; border-color:var(--alerta); color:#6E4A10; }
.flash-info{ background:var(--azul-50); border-color:var(--azul); color:var(--marino-700); }

/* ---------- Tarjetas ---------- */
.tarjeta{
  background:var(--superficie); border:1px solid var(--borde); border-radius:var(--radio);
  box-shadow:var(--sombra); padding:1rem 1.1rem; margin-bottom:1rem;
}
.tarjeta > h2:first-child, .tarjeta > h3:first-child{ margin-top:.1rem; }
.tarjeta-cab{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:space-between; margin-bottom:.7rem; }
.tarjeta-cab h2, .tarjeta-cab h3{ margin:0; }

.grid-tarjetas{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.85rem; margin-bottom:1.1rem; }
.tarjeta-dato{ background:var(--superficie); border:1px solid var(--borde); border-radius:var(--radio); box-shadow:var(--sombra); padding:.85rem .95rem; }
.tarjeta-dato .dato-etiqueta{ display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--texto-suave); }
.tarjeta-dato .dato-valor{ display:block; font-size:1.7rem; font-weight:700; color:var(--marino); line-height:1.15; margin-top:.2rem; }
.tarjeta-dato .dato-pie{ display:block; font-size:.78rem; color:var(--texto-suave); margin-top:.2rem; }
.tarjeta-dato.dato-azul{ border-top:4px solid var(--azul); }
.tarjeta-dato.dato-verde{ border-top:4px solid var(--verde); }
.tarjeta-dato.dato-naranja{ border-top:4px solid var(--naranja); }
.tarjeta-dato.dato-indigo{ border-top:4px solid var(--indigo); }

.dos-columnas{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.tres-columnas{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.cuatro-columnas{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.35rem; justify-content:center;
  font-family:inherit; font-size:.9rem; font-weight:600; line-height:1.2;
  padding:.55rem .95rem; border-radius:8px; border:1px solid transparent;
  cursor:pointer; text-decoration:none; white-space:nowrap;
}
.btn-primario{ background:var(--marino); color:#fff; }
.btn-primario:hover{ background:var(--marino-700); color:#fff; }
.btn-secundario{ background:var(--superficie); color:var(--marino); border-color:var(--borde); }
.btn-secundario:hover{ background:var(--azul-50); color:var(--marino); }
.btn-peligro{ background:var(--peligro); color:#fff; }
.btn-peligro:hover{ background:#8F2C24; color:#fff; }
.btn-azul{ background:var(--azul); color:#fff; }
.btn-azul:hover{ background:var(--marino-700); color:#fff; }
.btn-enlace{ background:none; border:0; color:var(--azul); padding:.15rem .3rem; font-weight:600; cursor:pointer; }
.btn-enlace:hover{ text-decoration:underline; }
.btn-enlace-peligro{ color:var(--peligro); }
.btn-pequeno{ font-size:.8rem; padding:.34rem .6rem; border-radius:7px; }
.btn-bloque{ width:100%; }
.btn[disabled], .btn.deshabilitado{ opacity:.55; cursor:not-allowed; }

.acciones{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.form-inline{ display:inline-flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:0; }
.acciones-fila{ display:flex; gap:.35rem; flex-wrap:wrap; }
.acciones-finales{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:flex-end; }

.barra-fija{
  position:sticky; bottom:0; background:var(--superficie); border:1px solid var(--borde);
  border-radius:var(--radio); box-shadow:var(--sombra); padding:.8rem 1rem; margin-top:1rem;
  display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:flex-end; z-index:20;
}
.barra-fija .crece{ flex:1; }

/* ---------- Formularios y Controles con Iconos (UX BurgerTour Ref) ---------- */
.formulario{ margin:0; }
.campo{ margin-bottom:.85rem; display:flex; flex-direction:column; gap:.25rem; min-width:0; }
.campo label, .etiqueta{ font-weight:600; font-size:.86rem; color:var(--texto); display:flex; align-items:center; gap:4px; }
.campo label .f-req{ color:var(--peligro); font-weight:700; }
.campo .ayuda{ font-size:.78rem; color:var(--texto-suave); }
.campo .error-campo{ font-size:.79rem; color:var(--peligro); font-weight:600; }

.f-control{ position:relative; display:flex; align-items:center; width:100%; }
.f-control .f-ico{
  position:absolute; left:13px; width:18px; height:18px; color:#8898AA;
  pointer-events:none; transition:transform .2s ease, color .2s ease; z-index:2; flex-shrink:0;
}
.f-control input,
.f-control select,
.f-control textarea,
.f-control input[type=text],
.f-control input[type=email],
.f-control input[type=password],
.f-control input[type=number],
.f-control input[type=date],
.f-control input[type=tel],
.f-control input[type=search]{
  font-family:inherit; font-size:.92rem; color:var(--texto);
  background:var(--superficie); border:1.5px solid var(--borde); border-radius:8px;
  padding:.58rem .75rem .58rem 42px !important; width:100%; max-width:100%;
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.f-control textarea{ min-height:88px; resize:vertical; padding-top:.58rem !important; }
.f-control.area{ align-items:flex-start; }
.f-control.area .f-ico{ top:13px; }
.f-control select{ appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:34px !important; }
.f-control.sel::after{
  content:""; position:absolute; right:14px; top:50%; width:7px; height:7px;
  border-right:2px solid var(--texto-suave); border-bottom:2px solid var(--texto-suave);
  transform:translateY(-70%) rotate(45deg); pointer-events:none; transition:border-color .2s ease;
}
.f-control.file input[type=file]{ padding:.4rem .5rem .4rem 42px !important; font-size:.82rem; }
.f-control:hover input, .f-control:hover select, .f-control:hover textarea{ border-color:#BAC9DC; }
.f-control:focus-within input, .f-control:focus-within select, .f-control:focus-within textarea{
  border-color:var(--azul); box-shadow:0 0 0 3px rgba(30,111,168,.14); outline:none;
}
.f-control:focus-within .f-ico{ color:var(--azul); transform:scale(1.12); }
.f-control:focus-within.sel::after{ border-color:var(--azul); }

/* Validación en vivo */
.f-msg{
  font-size:.78rem; line-height:1.35; margin:.2rem 0 0; min-height:0; color:var(--texto-suave);
  display:none; transition:opacity .2s ease, transform .2s ease;
}
.f-msg.visible{ display:block; }
.f-campo.valido .f-control input,
.f-campo.valido .f-control select,
.f-campo.valido .f-control textarea{ border-color:var(--exito); background:#F6FCF8; }
.f-campo.valido .f-control .f-ico{ color:var(--exito); }
.f-campo.valido .f-msg{ color:var(--exito); }

.f-campo.error .f-control input,
.f-campo.error .f-control select,
.f-campo.error .f-control textarea{ border-color:var(--peligro); background:#FDF6F5; }
.f-campo.error .f-control .f-ico{ color:var(--peligro); }
.f-campo.error .f-msg{ color:var(--peligro); font-weight:600; }
.f-campo.error.sacude .f-control{ animation:sacudida .3s ease; }
@keyframes sacudida{0%,100%{transform:translateX(0)}20%{transform:translateX(-4px)}60%{transform:translateX(4px)}}

/* Controles estándar sin icono (tablas repetibles compactas) */
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],
input[type=tel],input[type=search],input[type=file],select,textarea{
  font-family:inherit; font-size:.92rem; color:var(--texto);
  background:var(--superficie); border:1px solid var(--borde); border-radius:8px;
  padding:.5rem .6rem; width:100%; max-width:100%;
}
textarea{ min-height:84px; resize:vertical; }
select[multiple]{ min-height:120px; }
input:focus,select:focus,textarea:focus{ border-color:var(--azul); outline:none; }
input.tiene-error,select.tiene-error,textarea.tiene-error{ border-color:var(--peligro); background:#FDF6F5; }
input[type=checkbox],input[type=radio]{ width:auto; margin:0 .4rem 0 0; vertical-align:middle; cursor:pointer; }

/* Switch / Checkbox elegante estilo BurgerTour */
.campo-check{ display:flex; align-items:flex-start; gap:.4rem; margin:.35rem 0; }
.campo-check label{ font-weight:500; font-size:.9rem; cursor:pointer; }
.campo-check input{ margin-top:.22rem; }

.f-check-switch{
  background:var(--superficie); border:1.5px solid var(--borde); border-radius:10px;
  padding:.65rem .85rem; margin:.2rem 0; display:flex; align-items:center; gap:.7rem;
  transition:all .2s ease; cursor:pointer;
}
.f-check-switch:hover{ border-color:var(--azul); background:#F7FAFD; }
.f-check-switch input[type=checkbox]{
  appearance:none; -webkit-appearance:none; width:20px; height:20px;
  border:2px solid var(--borde); border-radius:5px; margin:0; outline:none;
  background:var(--superficie); cursor:pointer; position:relative; flex-shrink:0;
  transition:all .18s ease;
}
.f-check-switch input[type=checkbox]:checked{
  background:var(--azul); border-color:var(--azul);
}
.f-check-switch input[type=checkbox]:checked::after{
  content:''; position:absolute; left:6px; top:2px; width:5px; height:10px;
  border:solid #fff; border-width:0 2.2px 2.2px 0; transform:rotate(45deg);
}
.f-check-switch.activo, .f-check-switch:has(input:checked){
  border-color:var(--azul); background:var(--azul-50); box-shadow:0 1px 4px rgba(30,111,168,.08);
}
.f-check-switch label{ font-weight:600; font-size:.92rem; color:var(--marino); margin:0; cursor:pointer; flex:1; }

.rejilla-checks{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:.4rem .7rem; }
.rejilla-selectores-activos{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-bottom:.9rem; }
fieldset{ border:1px solid var(--borde); border-radius:var(--radio); padding:.8rem .9rem; margin:0 0 .9rem; }
legend{ font-weight:650; font-size:.88rem; color:var(--marino-700); padding:0 .35rem; }

/* Transición para secciones reveladas condicionalmente */
details.sec[data-seccion-si], [data-mostrar-si]{
  transition:opacity .25s ease, transform .25s ease;
}
details.sec.seccion-destacada{
  border-color:var(--azul); box-shadow:0 0 0 2px rgba(30,111,168,.18), var(--sombra);
}

/* Secciones plegables del formulario largo */
details.sec{ background:var(--superficie); border:1px solid var(--borde); border-radius:var(--radio); box-shadow:var(--sombra); margin-bottom:.9rem; }
details.sec > summary{
  cursor:pointer; list-style:none; padding:.85rem 1rem; font-weight:650; color:var(--marino);
  display:flex; align-items:center; gap:.55rem; border-radius:var(--radio);
}
details.sec > summary::-webkit-details-marker{ display:none; }
details.sec > summary::before{ content:'▸'; color:var(--azul); font-size:1rem; }
details.sec[open] > summary::before{ content:'▾'; }
details.sec[open] > summary{ border-bottom:1px solid var(--borde); border-radius:var(--radio) var(--radio) 0 0; }
details.sec > summary:hover{ background:var(--azul-50); }
.sec-cuerpo{ padding:.95rem 1rem 1rem; }
.sec-nota{ background:var(--azul-50); border-left:4px solid var(--azul); padding:.55rem .7rem; border-radius:6px; font-size:.85rem; color:var(--marino-700); margin-bottom:.9rem; }

/* Filas repetibles */
.rep-tabla{ width:100%; border-collapse:collapse; }
.rep-tabla th{
  text-align:left; font-size:.76rem; text-transform:uppercase; letter-spacing:.04em;
  color:var(--texto-suave); background:var(--azul-50); padding:.45rem .5rem; border-bottom:1px solid var(--borde);
}
.rep-tabla td{ padding:.45rem .5rem; border-bottom:1px solid var(--borde); vertical-align:top; }
.rep-tabla tbody tr:hover{ background:#FAFCFE; }
.rep-fila.eliminada{ display:none; }
.rep-tabla input,.rep-tabla select{ font-size:.86rem; padding:.4rem .5rem; }
.rep-tabla .col-angosta{ width:78px; }
.rep-tabla .col-media{ width:135px; }
.rep-pie{ display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; justify-content:space-between; margin-top:.6rem; }
.rep-total{ font-weight:700; color:var(--marino); }
.sub-bloque{ border:1px dashed var(--borde); border-radius:8px; padding:.7rem .8rem; margin-top:.5rem; background:#FBFCFE; }
.sub-bloque h4{ margin:0 0 .5rem; font-size:.85rem; color:var(--marino-700); text-transform:uppercase; letter-spacing:.04em; }
details.sub-pliegue{ margin-top:.5rem; border:1px solid var(--borde); border-radius:8px; }
details.sub-pliegue > summary{ cursor:pointer; padding:.5rem .7rem; font-weight:600; font-size:.86rem; color:var(--marino-700); }
details.sub-pliegue > summary:hover{ background:var(--azul-50); }
.sub-pliegue-cuerpo{ padding:.7rem .8rem; border-top:1px solid var(--borde); }
.archivo-fila{ margin-top:.45rem; font-size:.82rem; }
.archivo-fila input[type=file]{ font-size:.8rem; padding:.3rem; }
.adjunto-actual{ font-size:.8rem; color:var(--texto-suave); display:block; margin-top:.2rem; }
.adjunto-actual a{ font-weight:600; }

/* ---------- Tablas de datos ---------- */
.tabla-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--borde); border-radius:var(--radio); background:var(--superficie); }
.tabla{ width:100%; border-collapse:collapse; min-width:640px; }
.tabla thead th{
  background:var(--azul-50); color:var(--marino-700); text-align:left; font-size:.78rem;
  text-transform:uppercase; letter-spacing:.05em; padding:.6rem .7rem; border-bottom:1px solid var(--borde); white-space:nowrap;
}
.tabla tbody td{ padding:.6rem .7rem; border-bottom:1px solid var(--borde); vertical-align:middle; }
.tabla tbody tr:hover{ background:#FAFCFE; }
.tabla tbody tr:last-child td{ border-bottom:0; }
.tabla .num{ text-align:right; }
.tabla-datos{ width:100%; border-collapse:collapse; min-width:0; }
.tabla-datos th{
  text-align:left; width:34%; font-weight:600; color:var(--texto-suave); font-size:.84rem;
  padding:.4rem .6rem; border-bottom:1px solid var(--borde); vertical-align:top; background:#FBFCFE;
}
.tabla-datos td{ padding:.4rem .6rem; border-bottom:1px solid var(--borde); vertical-align:top; }
.tabla-datos tr:last-child th, .tabla-datos tr:last-child td{ border-bottom:0; }

/* ---------- Badges ---------- */
.badge{
  display:inline-block; font-size:.75rem; font-weight:650; padding:.18rem .5rem;
  border-radius:999px; border:1px solid transparent; white-space:nowrap; line-height:1.35;
}
.badge-gris{ background:var(--gris-bg); color:var(--gris); border-color:#D5DAE2; }
.badge-azul{ background:var(--azul-bg); color:#155A88; border-color:#C6DDF1; }
.badge-indigo{ background:var(--indigo-bg); color:var(--indigo); border-color:#CFD4F0; }
.badge-verde{ background:var(--verde-bg); color:var(--verde); border-color:#BFE3D0; }
.badge-slate{ background:var(--slate-bg); color:var(--slate); border-color:#D3D9E1; }
.badge-rojo{ background:var(--rojo-bg); color:var(--rojo); border-color:#F0C9C4; }
.badge-violeta{ background:var(--violeta-bg); color:var(--violeta); border-color:#DCCBEF; }
.badge-naranja{ background:var(--naranja-bg); color:var(--naranja); border-color:#F2DCBB; }
.badge-neutro{ background:var(--bg); color:var(--texto-suave); border-color:var(--borde); }

/* ---------- Filtros ---------- */
.filtros{ display:flex; flex-wrap:wrap; gap:.7rem; align-items:flex-end; }
.filtros .campo{ margin-bottom:0; min-width:170px; }
.filtros .campo-busqueda{ flex:1; min-width:230px; }

/* ---------- Paginación ---------- */
.paginacion{ display:flex; flex-wrap:wrap; gap:.3rem; align-items:center; margin-top:.9rem; }
.pag-btn{
  display:inline-block; min-width:34px; text-align:center; padding:.35rem .5rem; border-radius:7px;
  border:1px solid var(--borde); background:var(--superficie); color:var(--marino); text-decoration:none; font-size:.85rem; font-weight:600;
}
.pag-btn:hover{ background:var(--azul-50); }
.pag-activo{ background:var(--marino); color:#fff; border-color:var(--marino); }
.pag-activo:hover{ background:var(--marino-700); color:#fff; }
.pag-off{ opacity:.5; }
.pag-puntos{ color:var(--texto-suave); padding:0 .2rem; }
.paginacion-info{ font-size:.8rem; color:var(--texto-suave); margin:.4rem 0 0; }

/* ---------- Línea de tiempo (actuaciones) ---------- */
.linea-tiempo{ list-style:none; margin:.6rem 0 0; padding:0 0 0 1.1rem; border-left:2px solid var(--azul-50); }
.linea-tiempo li{ position:relative; padding:0 0 .95rem .9rem; }
.linea-tiempo li::before{
  content:''; position:absolute; left:-1.55rem; top:.4rem; width:11px; height:11px; border-radius:50%;
  background:var(--azul); border:2px solid var(--superficie); box-shadow:0 0 0 1px var(--azul);
}
.linea-tiempo .act-titulo{ font-weight:650; color:var(--marino); }
.linea-tiempo .act-meta{ font-size:.78rem; color:var(--texto-suave); }
.linea-tiempo .act-detalle{ margin:.25rem 0 0; white-space:pre-wrap; }
.linea-tiempo .act-prox{ font-size:.82rem; color:var(--alerta); }
.act-interna{ border-left-color:var(--alerta); }
.etiqueta-interna{ font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; background:#FCF4E4; color:var(--alerta); border:1px solid #F2DCBB; border-radius:999px; padding:.05rem .4rem; }

/* ---------- Listas y bloques auxiliares ---------- */
.lista-pasos{ list-style:none; margin:0; padding:0; }
.lista-pasos li{ padding:.35rem 0; border-bottom:1px dashed var(--borde); }
.lista-pasos li:last-child{ border-bottom:0; }
.paso-ok{ color:#134F33; }
.paso-error{ color:var(--peligro); font-weight:600; }
.lista-simple{ list-style:none; margin:0; padding:0; }
.lista-simple li{ padding:.3rem 0; border-bottom:1px solid var(--borde); }
.lista-simple li:last-child{ border-bottom:0; }
.bloque-tecnico{
  background:var(--marino); color:#DCE6F1; border-radius:var(--radio); padding:.8rem 1rem;
  overflow-x:auto; font-size:.82rem; font-family:Consolas,"Courier New",monospace;
}

/* ---------- Páginas centradas (login, registro, avisos) ---------- */
.pagina-simple{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1.5rem 1rem;
  background:linear-gradient(160deg, var(--marino) 0%, var(--marino-700) 45%, var(--azul) 100%);
}
.tarjeta-centrada{
  width:100%; max-width:460px; background:var(--superficie); border-radius:14px;
  box-shadow:0 18px 44px rgba(4,20,38,.35); padding:1.6rem 1.5rem 1.5rem;
}
.tarjeta-centrada h1{ font-size:1.25rem; }
.tarjeta-centrada .marca{ margin-bottom:1rem; }
.marca-centrada{ text-align:center; }
.marca-centrada .marca-nombre{ color:var(--marino); }
.marca-centrada .marca-sub{ color:var(--texto-suave); }
.marca .marca-nombre{ color:var(--marino); }
.marca .marca-sub{ color:var(--texto-suave); }
.tarjeta-centrada .acciones{ justify-content:center; }

.contenedor-instalador{
  width:100%; max-width:960px; background:var(--superficie); border-radius:14px;
  box-shadow:0 18px 44px rgba(4,20,38,.35); padding:1.6rem 1.5rem; max-height:94vh; overflow-y:auto;
}
.contenedor-instalador h1{ font-size:1.3rem; text-align:center; }
.tarjeta-terminos{
  background:var(--azul-50); border:1px solid var(--borde); border-radius:var(--radio);
  padding:.7rem .8rem; max-height:170px; overflow-y:auto; font-size:.84rem; color:var(--texto-suave); margin-bottom:.6rem;
}
.aviso-privacidad{ font-size:.78rem; color:var(--texto-suave); }

.separador-o{ display:flex; align-items:center; gap:.6rem; color:var(--texto-suave); font-size:.8rem; margin:.9rem 0; }
.separador-o::before,.separador-o::after{ content:''; height:1px; background:var(--borde); flex:1; }

/* ---------- Documento imprimible (imprimir.php) ---------- */
body.documento{ background:var(--superficie); }
body.documento .contenido{ padding:1.5rem 1.25rem 2.5rem; }
body.documento .documento-encabezado{ border-bottom:2px solid var(--marino); padding-bottom:.8rem; margin-bottom:1.2rem; }
body.documento h2{ margin-top:1.4rem; border-bottom:1px solid var(--borde); padding-bottom:.25rem; }
body.documento .linea-firmas{ margin-top:2.6rem; display:flex; gap:2.5rem; }
body.documento .linea-firmas > div{ flex:1; border-top:1px solid var(--texto); padding-top:.4rem; font-size:.85rem; color:var(--texto-suave); }
body.documento .tabla{ min-width:0; }

/* ---------- Modales propios ---------- */
.modal-fondo{
  position:fixed; inset:0; background:rgba(11,42,74,.5); display:flex; align-items:center;
  justify-content:center; padding:1rem; z-index:60;
}
.modal-fondo[hidden]{ display:none; }
.modal{
  background:var(--superficie); border-radius:var(--radio); max-width:520px; width:100%;
  box-shadow:0 20px 48px rgba(4,20,38,.4); padding:1.1rem 1.2rem;
}
.modal h3{ margin-top:0; }
.modal .modal-acciones{ display:flex; justify-content:flex-end; gap:.5rem; margin-top:.9rem; }

/* ---------- Impresión ---------- */
@media print{
  :root{ --bg:#FFFFFF; }
  body{ background:#fff; font-size:11.5pt; color:#000; }
  .sidebar,.topbar,.overlay,.pie,.btn,.acciones,.acciones-finales,.barra-fija,.flash,.paginacion,
  .no-imprimir, .salto-contenido, .filtros, .btn-hamburguesa{ display:none !important; }
  .principal{ margin-left:0; }
  .contenido{ padding:0; max-width:none; }
  .tarjeta,.tarjeta-dato,details.sec{ box-shadow:none; border:1px solid #999; break-inside:avoid; }
  details.sec > summary{ border-bottom:1px solid #999; }
  details.sec > summary::before{ content:''; }
  details.sec[open] > summary::before{ content:''; }
  .tabla-scroll{ overflow:visible; border:1px solid #999; }
  .tabla{ min-width:0; }
  .tabla thead th{ background:#EEE !important; color:#000; }
  .tabla-datos th{ background:#F5F5F5 !important; }
  .badge{ border:1px solid #666; background:#F2F2F2 !important; color:#000 !important; }
  a{ color:#000; text-decoration:none; }
  h1,h2,h3{ color:#000; }
  .documento-encabezado{ border-bottom:2px solid #000; margin-bottom:1rem; }
  .linea-firmas{ margin-top:2.4rem; display:flex; gap:2.5rem; }
  .linea-firmas > div{ flex:1; border-top:1px solid #000; padding-top:.35rem; font-size:.85rem; }
}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .cuatro-columnas{ grid-template-columns:repeat(2,1fr); }
  .tres-columnas{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px){
  .btn-hamburguesa{ display:inline-block; }
  .sidebar{
    transform:translateX(-100%); transition:transform .2s ease-in-out;
    box-shadow:0 0 40px rgba(4,20,38,.45); width:265px; flex-basis:265px;
  }
  body.menu-abierto .sidebar{ transform:translateX(0); }
  .principal{ margin-left:0; }
  .topbar-datos{ display:none; }
  .dos-columnas,.tres-columnas,.cuatro-columnas{ grid-template-columns:1fr; }
  .contenido{ padding:1rem .85rem 1.6rem; }
}

@media (max-width:560px){
  .tarjeta-centrada,.contenedor-instalador{ padding:1.1rem .9rem; }
  .topbar{ padding:0 .7rem; gap:.5rem; }
  .topbar-titulo{ font-size:.95rem; }
  .filtros .campo{ min-width:100%; }
  .rep-tabla{ font-size:.85rem; }
  .tabla-datos th{ width:44%; }
}


/* ==========================================================================
   MEJORAS DE DISEÑO v2.0 & EFECTOS INTERACTIVOS — RenovaZ Insolvencias
   (Fondo animado, 8 selectores táctiles tipo Burger Tour, tokens y repulsión)
   ========================================================================== */

/* --- Fondo Interactivo Canvas & Fallback CSS --- */
:root {
  --fondo-tile: 48px;
  --fondo-salto: -384px; /* 8 teselas exactas => sin costura */
  --fondo-op: 0.14;
  --fondo-dur: 42s;
  --azul-punto: #1E6FA8;
  --marino-punto: #0B2A4A;
}

body::before {
  content: "";
  position: fixed;
  z-index: 1;
  pointer-events: none;
  inset: -60%;
  background-image:
    radial-gradient(circle at center, var(--azul-punto) 0 1.2px, transparent 1.8px),
    radial-gradient(circle at center, var(--marino-punto) 0 1.1px, transparent 1.6px);
  background-size: var(--fondo-tile) var(--fondo-tile), var(--fondo-tile) var(--fondo-tile);
  background-position: 0 0, calc(var(--fondo-tile) / 2) calc(var(--fondo-tile) / 2);
  opacity: var(--fondo-op);
  animation: deriva-diagonal-renovaz var(--fondo-dur) linear infinite;
  will-change: transform;
}

@keyframes deriva-diagonal-renovaz {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(var(--fondo-salto), var(--fondo-salto), 0); }
}

html.fondo-canvas body::before { display: none; }
#fondo-renovaz {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: var(--fondo-op);
}

/* El contenido interactivo debe estar por encima del canvas de fondo.
   NOTA: .sidebar se excluye — su regla base (position:fixed; z-index:40) es la que
   garantiza que el drawer quede ENCIMA del overlay del menu (z-index:35) en movil.
   Forzarla a z-index:2 hace que el overlay tape los enlaces y el menu "no funcione". */
.layout, .tarjeta-centrada, .contenedor-instalador, .topbar {
  position: relative;
  z-index: 2;
}

/* --- Botón Discreto Toggle Fondo (Accesibilidad) --- */
.fondo-toggle {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--borde);
  background: rgba(255, 255, 255, 0.85);
  color: var(--texto-suave);
  font: 600 12px/1 var(--fuente);
  letter-spacing: .2px;
  cursor: pointer;
  backdrop-filter: blur(8px);
  box-shadow: 0 2px 6px rgba(11, 42, 74, 0.08);
  transition: all .2s ease;
}
.fondo-toggle:hover {
  background: var(--superficie);
  color: var(--marino);
  border-color: var(--azul);
  transform: translateY(-1px);
}
.fondo-toggle.apagado { opacity: 0.5; }
.fondo-toggle span { color: var(--azul); font-size: 13px; }
/* En páginas con barra de guardado fija (formulario), subir el botón para no tapar los botones Guardar/Cancelar */
.fondo-toggle.rz-toggle-arriba { bottom: 88px; }
@media print { .fondo-toggle { display: none !important; } }

/* --- Revelado Progresivo Seguro (js-motion) --- */
html.js-motion .pre-revelar {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
}
html.js-motion .pre-revelar.revelado {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  html.js-motion .pre-revelar { opacity: 1 !important; transform: none !important; }
}

/* --- Rediseño 8 Selectores Sí/No como Tarjetas Táctiles --- */
.rejilla-selectores-activos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: .85rem;
  margin-bottom: 1.25rem;
}

.rejilla-selectores-activos .campo-check.f-check-switch {
  background: var(--superficie);
  border: 1.5px solid var(--borde);
  border-radius: 12px;
  padding: .9rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  transition: all .22s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: var(--sombra);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.rejilla-selectores-activos .campo-check.f-check-switch:hover {
  border-color: var(--azul);
  box-shadow: 0 4px 12px rgba(30, 111, 168, 0.12);
  transform: translateY(-2px);
}

.rejilla-selectores-activos .campo-check.f-check-switch.seleccionado-si,
.rejilla-selectores-activos .campo-check.f-check-switch:has(input:checked) {
  border-color: var(--azul);
  background: linear-gradient(180deg, #FFFFFF 0%, #EAF2F9 100%);
  box-shadow: 0 0 0 1px var(--azul), 0 4px 14px rgba(30, 111, 168, 0.15);
}

.rejilla-selectores-activos .campo-check.f-check-switch label {
  font-weight: 650;
  font-size: .92rem;
  color: var(--marino);
  margin: 0;
  cursor: pointer;
  line-height: 1.3;
  flex: 1;
}

.rejilla-selectores-activos .campo-check.f-check-switch input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 44px;
  height: 24px;
  border-radius: 999px;
  background: #CBD5E1;
  border: none;
  position: relative;
  cursor: pointer;
  transition: background .25s ease;
  flex-shrink: 0;
}

.rejilla-selectores-activos .campo-check.f-check-switch input[type=checkbox]::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  top: 3px;
  left: 3px;
  background: #FFFFFF;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  transition: transform .25s cubic-bezier(0.4, 0, 0.2, 1);
}

.rejilla-selectores-activos .campo-check.f-check-switch input[type=checkbox]:checked {
  background: var(--azul);
}

.rejilla-selectores-activos .campo-check.f-check-switch input[type=checkbox]:checked::before {
  transform: translateX(20px);
}

.rejilla-selectores-activos .campo-check.f-check-switch input[type=checkbox]:checked::after {
  display: none;
}

/* --- Ripple en Botones --- */
.btn-primario, .btn-azul, .btn {
  position: relative;
  overflow: hidden;
}
.btn-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  transform: scale(0);
  animation: ripple-anim .55s ease-out;
  pointer-events: none;
}
@keyframes ripple-anim {
  to { transform: scale(2.4); opacity: 0; }
}

/* --- Mejoras en Tarjeta de Login y Centrada --- */
.pagina-simple {
  background: radial-gradient(circle at 50% 15%, #123D68 0%, #081F38 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tarjeta-centrada {
  background: var(--superficie);
  border-radius: 14px;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.12);
  transition: transform .2s ease;
}

/* --- Badges de los 16 Estados de Insolvencia --- */
.badge-estado-borrador { background: #F1F5F9; color: #475569; border: 1px solid #CBD5E1; }
.badge-estado-en_revisi_n { background: #FEF3C7; color: #92400E; border: 1px solid #FDE68A; }
.badge-estado-en_tr_mite { background: #DBEAFE; color: #1E40AF; border: 1px solid #BFDBFE; }
.badge-estado-en_audiencia_de_conciliaci_n { background: #EDE9FE; color: #5B21B6; border: 1px solid #DDD6FE; }
.badge-estado-en_negociaci_n { background: #E0E7FF; color: #1E3A8A; border: 1px solid #C7D2FE; }
.badge-estado-en_acuerdo_aprobado { background: #DCFCE7; color: #166534; border: 1px solid #BBF7D0; }
.badge-estado-en_acuerdo_no_aprobado { background: #FEE2E2; color: #991B1B; border: 1px solid #FECACA; }
.badge-estado-archivado { background: #F3F4F6; color: #374151; border: 1px solid #E5E7EB; }
.badge-estado-cerrado { background: #E2E8F0; color: #1E293B; border: 1px solid #CBD5E1; }
.badge-estado-borrado { background: #FEE2E2; color: #991B1B; border: 1px solid #FCA5A5; }
.badge-estado-liquidaci_n_directa { background: #FFEDD5; color: #9A3412; border: 1px solid #FED7AA; }
.badge-estado-cc_radicado_solicitud { background: #E0F2FE; color: #075985; border: 1px solid #BAE6FD; }
.badge-estado-cc_admisi_n { background: #CCFBF1; color: #115E59; border: 1px solid #99F6E4; }
.badge-estado-cc_audiencia { background: #F5D0FE; color: #86198F; border: 1px solid #F0ABFC; }
.badge-estado-cc_acta_de_fracaso { background: #FFE4E6; color: #9F1239; border: 1px solid #FECDD3; }
.badge-estado-auto_apertura_liquidaci_n { background: #FEE2E2; color: #7F1D1D; border: 1px solid #F87171; }

/* ---------------------------------------------------------------------
 * Visor de adjuntos (PDF/imágenes): previsualizar · maximizar · descargar
 * ------------------------------------------------------------------- */
.visor-fondo{
  position:fixed; inset:0; z-index:1000;
  background:rgba(11,42,74,.62);
  display:flex; align-items:center; justify-content:center;
  padding:32px;
  animation:visorEntrada .18s ease-out;
}
@keyframes visorEntrada{ from{opacity:0} to{opacity:1} }
.visor{
  background:var(--superficie,#FFFFFF);
  border:1px solid var(--borde,#DCE3EC);
  border-radius:var(--radio,10px);
  box-shadow:0 24px 64px rgba(11,42,74,.35);
  width:min(960px,100%);
  height:min(680px,100%);
  display:flex; flex-direction:column;
  overflow:hidden;
  transition:width .18s ease-out, height .18s ease-out;
}
.visor-barra{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 14px;
  background:var(--marino,#0B2A4A);
  color:#FFFFFF;
  flex:0 0 auto;
}
.visor-titulo{
  font-weight:600; font-size:.92rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.visor-acciones{ display:flex; gap:8px; flex:0 0 auto; }
.visor-barra .btn{ border-color:rgba(255,255,255,.35); }
.visor-cuerpo{
  flex:1 1 auto; min-height:0;
  overflow:auto; -webkit-overflow-scrolling:touch;
  background:#525659;
  display:flex; align-items:flex-start; justify-content:center;
  padding:14px;
}
.visor-canvas{
  background:#FFFFFF;
  box-shadow:0 2px 14px rgba(0,0,0,.35);
  max-width:100%; height:auto;
}
.visor-pagina{ font-size:.85rem; color:#FFFFFF; white-space:nowrap; }
/* Maximizado: ocupa toda la ventana */
.visor-fondo.visor-maximizado{ padding:0; }
.visor-fondo.visor-maximizado .visor{ width:100%; height:100%; border-radius:0; border:0; }
/* Bloquear scroll de fondo mientras el visor está abierto */
body.visor-abierto{ overflow:hidden; }
@media (prefers-reduced-motion: reduce){
  .visor-fondo{ animation:none; }
  .visor{ transition:none; }
}
@media (max-width:640px){
  .visor-fondo{ padding:0; }
  .visor{ width:100%; height:100%; border-radius:0; }
}

/* ==========================================================================
   RESPONSIVE MÓVIL v3 — corrección de desbordes y toques (auditoría 03/10)
   Diagnóstico medido (390px): scrollW 421–611px en 5 páginas. Causas:
   (a) items de grid sin min-width:0 → no encogen y arrastran tablas anchas;
   (b) .tabla-scroll anidadas en grids no activan su scroll propio;
   (c) celdas envuelven letra a letra cuando la tabla pelea por ancho.
   ========================================================================== */

/* (a) Los items de grid pueden encoger: sin esto, cualquier tabla ancha
       dentro de una tarjeta empuja toda la columna y desborda la página. */
.tarjeta,
.dos-columnas > *,
.tres-columnas > *,
.cuatro-columnas > *{
  min-width: 0;
}

/* (b) El scroll horizontal de tablas vive en su contenedor, nunca en la página.
       Con el contenedor a ancho real, su overflow-x:auto sí se activa.
       A-02/A-05/A-39: se sube el ancho mínimo de lectura para que las tablas
       anchas (vehículos, inmuebles, otros activos, procesos) mantengan casillas
       en horizontal y legibles; se desplazan dentro de su caja, sin apretar. */
.tabla-scroll{
  max-width: 100%;
}
.tabla-scroll > .tabla,
.tabla-scroll > .rep-tabla{
  min-width: 720px; /* ancho de lectura: se desplaza dentro de su caja, la página no se mueve */
}

/* (c) Celdas: envolver palabras completas y partir cadenas largas
       (correos, radicados) solo si no caben; fin del "una letra por línea". */
.tabla th, .tabla td,
.rep-tabla th, .rep-tabla td,
.tabla-datos th, .tabla-datos td{
  overflow-wrap: anywhere;
}

/* (d) Restaurar el contrato off-canvas del sidebar: la capa de efectos v2 lo dejó
       position:relative (en flujo) y en móvil el contenido quedaba con ~125px
       (390-265) y en escritorio sobraba una columna muerta de 265px. */
.sidebar{
  position: fixed;
  inset: 0 auto 0 0;
}

@media (max-width:900px){
  /* Red de seguridad: ninguna página se desplaza lateralmente completa */
  html, body{ overflow-x: hidden; }
}

@media (max-width:640px){
  /* Objetivos de toque cómodos en acciones de fila */
  .acciones-fila .btn{ padding:.48rem .85rem; }
  /* Tablas: caja con borde visible y pista implícita de desplazamiento */
  .tabla-scroll{ -webkit-overflow-scrolling: touch; }
}

/* --------------------------------------------------------------------------
   UX CAMPOS v3.1 — placeholder gris muy suave + ayuda de formato por campo
   -------------------------------------------------------------------------- */
.f-control input::placeholder,
.f-control textarea::placeholder{
  color:#B9C2CE;          /* gris muy suave: legible pero claramente orientativo */
  opacity:1;
  font-weight:400;
}
.f-control input:focus::placeholder,
.f-control textarea:focus::placeholder{
  color:#D6DDE5;          /* al escribir, se desvanece aún más */
}
/* La ayuda indica tipo de dato y formato esperado, sin competir con el valor */
.campo .ayuda{
  display:inline-block;
  margin-top:.32rem;
  font-size:.74rem;
  line-height:1.4;
  color:var(--texto-suave,#5B6B7E);
  background:#F1F5F9;
  border:1px solid #E4EAF1;
  border-radius:5px;
  padding:.14rem .5rem;
}

/* --------------------------------------------------------------------------
   MINIATURAS DE PDF (300x400 -> se muestran a 75x100 junto al nombre)
   -------------------------------------------------------------------------- */
img.rz-mini-pdf{
  display:block;
  margin-top:6px;
  width:75px; height:100px;      /* miniatura clicáble; 300x400 al pasar el mouse */
  object-fit:cover;
  border:1px solid var(--borde,#D7DEE8);
  border-radius:6px;
  background:#fff;
  box-shadow:0 1px 4px rgba(11,42,74,.12);
  cursor:zoom-in;
  transition:width .18s ease, height .18s ease, box-shadow .18s ease;
}
img.rz-mini-pdf:hover{
  width:150px; height:200px;
  box-shadow:0 6px 18px rgba(11,42,74,.28);
  z-index:5; position:relative;
}
/* Vista previa recién generada junto al input (antes de guardar) */
.f-control img.rz-mini-pdf, .campo img.rz-mini-pdf{ margin-top:.45rem; }

/* =========================================================================
 * SISTEMA DE TABULADORES PROGRESIVOS (Inspiración Bubble / RenovaZ original)
 * ========================================================================= */

.rz-tabs-contenedor{
  margin-bottom:1.2rem;
  background:var(--superficie);
  border:1px solid var(--borde);
  border-radius:var(--radio);
  padding:.65rem .8rem;
  box-shadow:var(--sombra);
}

.rz-tabs-cabecera{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.55rem;
  padding-bottom:.45rem;
  border-bottom:1px solid var(--borde);
  gap:.6rem;
  flex-wrap:wrap;
}

.rz-tabs-titulo{
  font-weight:700;
  font-size:.9rem;
  color:var(--marino);
  display:flex;
  align-items:center;
  gap:.4rem;
}

.rz-tabs-progreso{
  font-size:.8rem;
  color:var(--texto-suave);
  background:var(--azul-50);
  padding:.2rem .6rem;
  border-radius:12px;
  font-weight:600;
}

/* Barra de pestañas horizontal con scroll táctil */
.rz-tabs-lista{
  display:flex;
  gap:.35rem;
  overflow-x:auto;
  padding-bottom:.35rem;
  scrollbar-width:thin;
  scrollbar-color:var(--borde) transparent;
}
.rz-tabs-lista::-webkit-scrollbar{ height:4px; }
.rz-tabs-lista::-webkit-scrollbar-thumb{ background:var(--borde); border-radius:4px; }

/* Botón de pestaña individual */
.rz-tab-btn{
  background:var(--bg);
  border:1px solid var(--borde);
  color:var(--texto-suave);
  padding:.55rem .85rem;
  border-radius:8px;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  white-space:nowrap;
  transition:all .18s ease;
  user-select:none;
  position:relative;
}

.rz-tab-btn:hover:not(:disabled){
  background:var(--azul-50);
  border-color:var(--azul);
  color:var(--marino);
}

.rz-tab-btn.activo{
  background:var(--marino);
  color:#fff;
  border-color:var(--marino);
  box-shadow:0 2px 8px rgba(11,42,74,.25);
}

.rz-tab-btn.activo .rz-tab-num{
  background:rgba(255,255,255,.2);
  color:#fff;
}

.rz-tab-btn.completada:not(.activo){
  background:#fff;
  border-color:var(--verde);
  color:var(--marino-700);
}

.rz-tab-btn.completada .rz-tab-num{
  background:var(--verde-bg);
  color:var(--verde);
}

.rz-tab-btn:disabled,
.rz-tab-btn.bloqueada{
  opacity:.48;
  cursor:not-allowed;
  background:var(--bg);
  color:var(--slate);
  border-style:dashed;
}

.rz-tab-btn.bloqueada:hover{
  background:var(--bg);
  border-color:var(--borde);
  color:var(--slate);
}

.rz-tab-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.35rem;
  height:1.35rem;
  border-radius:50%;
  font-size:.74rem;
  background:var(--gris-bg);
  color:var(--texto-suave);
  font-weight:700;
}

.rz-tab-check{
  display:none;
  width:.95rem;
  height:.95rem;
  color:var(--verde);
}

.rz-tab-btn.completada .rz-tab-check{
  display:inline-block;
}

.rz-tab-candado{
  display:inline-block;
  width:.85rem;
  height:.85rem;
  opacity:.7;
}
.rz-tab-btn:not(.bloqueada) .rz-tab-candado{ display:none; }

/* Panel de navegación entre pestañas (pie de cada sección) */
.rz-tabs-nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:1.4rem;
  padding-top:1rem;
  border-top:1px solid var(--borde);
  gap:.6rem;
}

/* Modo tabuladores activo en el formulario: solo la pestaña seleccionada se ve */
.formulario[data-modo-tabs="1"] details.sec:not(.rz-tab-activa){
  display:none !important;
}

.formulario[data-modo-tabs="1"] details.sec.rz-tab-activa{
  display:block !important;
  animation:rzTabFadeIn .22s ease;
}

.formulario[data-modo-tabs="1"] details.sec.rz-tab-activa > summary{
  pointer-events:none; /* en modo tabs no se pliega, se navega por pestañas */
}

@keyframes rzTabFadeIn{
  from{ opacity:0; transform:translateY(4px); }
  to{ opacity:1; transform:translateY(0); }
}

/* Panel resumen reactivo de negociación */
.rz-resumen-negociacion{
  background:linear-gradient(135deg, var(--azul-50) 0%, #fff 100%);
  border:1px solid var(--azul);
  border-radius:var(--radio);
  padding:1rem 1.2rem;
  margin-bottom:1.2rem;
  box-shadow:var(--sombra);
}

.rz-resumen-negociacion h4{
  margin:0 0 .6rem;
  color:var(--marino);
  font-size:.95rem;
  display:flex;
  align-items:center;
  gap:.45rem;
}

.rz-resumen-cifras{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
  gap:.75rem;
}

.rz-cifra-item{
  background:#fff;
  border:1px solid var(--borde);
  border-radius:8px;
  padding:.55rem .75rem;
}

.rz-cifra-label{
  font-size:.75rem;
  color:var(--texto-suave);
  text-transform:uppercase;
  letter-spacing:.4px;
  font-weight:600;
}

.rz-cifra-valor{
  font-size:1.15rem;
  font-weight:700;
  color:var(--marino);
  margin-top:.2rem;
}

.rz-cifra-valor.positivo{ color:var(--verde); }
.rz-cifra-valor.negativo{ color:var(--peligro); }
.rz-cifra-valor.neutro{ color:var(--azul); }

/* ---------- Impresión en modo tabs ---------- */
@media print{
  .rz-tabs-contenedor, .rz-tabs-nav{ display:none !important; }
  .formulario[data-modo-tabs="1"] details.sec:not(.rz-tab-activa):not([hidden]){
    display:block !important;
  }
}
