/* GeneraAudit2 — estilos. Paleta tomada del logo. */
:root {
  --noche: #0A1F4E;
  --azul: #1565E0;
  --azul-osc: #0F4FB8;
  --cian: #0FB0E3;
  --turquesa: #0B7F74;
  --fondo: #F3F6FB;
  --superficie: #FFFFFF;
  --linea: #D9E1EC;
  --linea-fuerte: #B9C4D4;
  --texto: #142033;
  --suave: #4A5568;
  --radio: 8px;
  --foco: 0 0 0 3px rgba(21, 101, 224, .35);

  /* Resultados */
  --c-bg: #DDF1EC;  --c-fg: #0B5E55;
  --ncm-bg: #8F1D14; --ncm-fg: #FFFFFF;
  --ncme-bg: #FCE7D2; --ncme-fg: #8A3A08;
  --obs-bg: #F1EDDC; --obs-fg: #5C4A00;
  --om-bg: #E3EAF8; --om-fg: #1E3A8A;
  --pend-bg: #EDF0F4; --pend-fg: #4A5568;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--texto);
  background: var(--fondo);
}
h1, h2, h3 { font-family: "Outfit", "Segoe UI", system-ui, sans-serif; color: var(--noche); line-height: 1.2; margin: 0; }
h1 { font-size: 1.9rem; font-weight: 700; letter-spacing: -.01em; }
h2 { font-size: 1.2rem; font-weight: 700; }
h3 { font-size: 1.02rem; font-weight: 600; }
p { margin: 0; }
a { color: var(--azul-osc); }
a:hover { color: var(--noche); }
:focus-visible { outline: none; box-shadow: var(--foco); border-radius: 4px; }
[hidden] { display: none !important; }
img { max-width: 100%; height: auto; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- estructura */
.app { display: flex; flex-wrap: wrap; min-height: 100vh; }
.lateral {
  flex: 1 1 240px; max-width: 100%;
  background: var(--superficie);
  border-right: 1px solid var(--linea);
  padding: 20px 16px;
  display: flex; flex-direction: column; gap: 4px;
}
.lateral .marca { display: block; padding: 4px 6px 18px; }
.lateral .marca img { width: 100%; max-width: 200px; height: auto; display: block; }
.lateral nav { display: flex; flex-direction: column; gap: 2px; }
.lateral nav a {
  display: flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 0 12px; border-radius: 6px;
  color: var(--texto); text-decoration: none; font-weight: 600; font-size: .95rem;
}
.lateral nav a svg { flex: none; color: var(--suave); }
.lateral nav a:hover { background: var(--fondo); }
.lateral nav a[aria-current="page"] { background: var(--noche); color: #fff; }
.lateral nav a[aria-current="page"] svg { color: var(--cian); }
.lateral .pie { margin-top: auto; padding: 16px 8px 0; font-size: .85rem; color: var(--suave); }

.contenido { flex: 999 1 600px; min-width: 0; padding: 32px clamp(16px, 4vw, 44px) 56px; }
.contenedor { max-width: 1180px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }

@media (max-width: 860px) {
  .lateral { border-right: 0; border-bottom: 1px solid var(--linea); padding: 12px; }
  .lateral .marca img { max-width: 150px; }
  .lateral nav { flex-direction: row; flex-wrap: wrap; }
  .lateral .pie { display: none; }
}

/* ---------- encabezado de página */
.cabecera { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: flex-end; }
.cabecera .textos { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cabecera .bajada { color: var(--suave); }
.codigo { font-family: "Outfit", sans-serif; font-weight: 600; color: var(--azul-osc); font-size: .9rem; letter-spacing: .02em; }
.volver { font-weight: 600; text-decoration: none; font-size: .92rem; }
.acciones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ---------- botones */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 18px; border-radius: 6px;
  font: inherit; font-weight: 700; font-size: .95rem; text-decoration: none;
  border: 1px solid var(--linea-fuerte); background: var(--superficie); color: var(--texto);
  cursor: pointer;
}
.btn:hover { border-color: var(--azul); color: var(--azul-osc); }
.btn-primario { background: var(--azul); border-color: var(--azul); color: #fff; }
.btn-primario:hover { background: var(--azul-osc); border-color: var(--azul-osc); color: #fff; }
.btn-texto { border-color: transparent; background: transparent; color: var(--azul-osc); padding: 0 10px; }
.btn-texto:hover { background: var(--fondo); border-color: transparent; }
.btn-peligro { color: #9B1C1C; }
.btn-ancho { width: 100%; }

/* ---------- tarjetas y paneles */
.panel { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); padding: 24px; }
.panel > * + * { margin-top: 16px; }
.panel-titulo { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: baseline; }

.filtros { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; padding: 16px; }
.filtros > * + * { margin-top: 0; }
.filtros .campo { flex: 1 1 170px; }
.filtros .campo.amplio { flex: 2 1 260px; }

.cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.cifra { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); padding: 16px 18px; text-decoration: none; color: inherit; }
.cifra:hover { border-color: var(--azul); }
.cifra .n { display: block; font-family: "Outfit", sans-serif; font-size: 2rem; font-weight: 700; color: var(--noche); line-height: 1.1; }
.cifra .t { color: var(--suave); font-size: .92rem; font-weight: 600; }

/* ---------- formularios */
.campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.campo { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: .88rem; color: #2D3748; min-width: 0; }
.campo.ancho { grid-column: 1 / -1; }
.campo small { font-weight: 400; color: var(--suave); }
input[type=text], input[type=search], input[type=email], input[type=tel], input[type=number], input[type=date], select, textarea {
  width: 100%; min-height: 44px; padding: 8px 12px;
  border: 1px solid var(--linea-fuerte); border-radius: 6px;
  font: inherit; font-weight: 400; font-size: 1rem; color: var(--texto); background: #fff;
}
textarea { resize: vertical; min-height: 72px; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--azul); box-shadow: var(--foco); }
input[type=checkbox], input[type=radio] { width: 18px; height: 18px; accent-color: var(--azul); margin: 0; flex: none; }
.check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 500; font-size: .95rem; cursor: pointer; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend { font-weight: 600; font-size: .88rem; color: #2D3748; padding: 0 0 8px; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.chip span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px;
  border: 1px solid var(--linea-fuerte); border-radius: 6px; font-weight: 600; font-size: .92rem; background: #fff;
}
.chip input:checked + span { background: var(--noche); border-color: var(--noche); color: #fff; }
.chip input:focus-visible + span { box-shadow: var(--foco); }

.pasos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; counter-reset: paso; }
.pasos a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px;
  border-radius: 999px; background: var(--superficie); border: 1px solid var(--linea);
  text-decoration: none; color: var(--texto); font-weight: 600; font-size: .9rem; counter-increment: paso;
}
.pasos a::before { content: counter(paso); font-family: "Outfit", sans-serif; color: var(--azul-osc); }

.seccion-num { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--noche); color: #fff; font-size: .9rem; margin-right: 10px; vertical-align: middle; }

/* lista de requisitos seleccionables */
.req-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 8px; }
.req-opcion {
  display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 14px;
  border: 1px solid var(--linea); border-radius: 6px; cursor: pointer; background: #fff;
}
.req-opcion:has(input:checked) { background: #EEF4FD; border-color: #9DBDF0; }
.req-opcion .cl { font-family: "Outfit", sans-serif; font-weight: 600; width: 46px; flex: none; color: var(--noche); }
.req-opcion .ti { flex: 1; font-size: .95rem; }
.req-opcion .np { font-size: .82rem; color: var(--suave); white-space: nowrap; }

/* ---------- tablas */
.tabla-caja { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); overflow-x: auto; }
table.tabla { width: 100%; min-width: 820px; border-collapse: collapse; font-size: .95rem; }
.tabla th {
  text-align: left; padding: 12px 16px; font-size: .82rem; font-weight: 700; color: var(--suave);
  background: #F8FAFD; border-bottom: 1px solid var(--linea);
}
.tabla td { padding: 14px 16px; border-bottom: 1px solid #EDF1F6; vertical-align: middle; }
.tabla tr:last-child td { border-bottom: 0; }
.tabla .sub { font-size: .85rem; color: var(--suave); }
.tabla .der { text-align: right; white-space: nowrap; }
.nowrap { white-space: nowrap; }

/* ---------- etiquetas de estado y resultado */
.etq { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; white-space: nowrap; background: var(--pend-bg); color: var(--pend-fg); }
.etq.r-c, .etq.e-cerrada { background: var(--c-bg); color: var(--c-fg); }
.etq.r-ncm { background: var(--ncm-bg); color: var(--ncm-fg); }
.etq.r-ncme, .etq.e-informe_borrador { background: var(--ncme-bg); color: var(--ncme-fg); }
.etq.r-obs { background: var(--obs-bg); color: var(--obs-fg); }
.etq.r-om, .etq.e-planificada { background: var(--om-bg); color: var(--om-fg); }
.etq.e-en_ejecucion, .etq.en-curso { background: #D6F0FA; color: #075E7E; }

/* ---------- ejecución */
.ejecucion { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.ejecucion > aside { flex: 1 1 300px; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; }
.ejecucion > section { flex: 999 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 860px) { .ejecucion > aside { position: static; max-height: none; } }

.lista-req { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); padding: 10px; display: flex; flex-direction: column; gap: 2px; }
.lista-req h2 { font-size: .95rem; padding: 6px 8px 8px; }
.lista-req a {
  display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 6px 10px; border-radius: 6px;
  text-decoration: none; color: var(--texto); border: 1px solid transparent;
}
.lista-req a:hover { background: var(--fondo); }
.lista-req a[aria-current="step"] { border-color: var(--azul); background: #EEF4FD; }
.lista-req .cl { font-family: "Outfit", sans-serif; font-weight: 600; width: 42px; flex: none; color: var(--noche); font-size: .92rem; }
.lista-req .ti { flex: 1; font-size: .9rem; line-height: 1.3; }

.avance { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); padding: 14px 18px; }
.barra { flex: 1 1 220px; height: 10px; border-radius: 999px; background: #E3E9F2; overflow: hidden; }
.barra > span { display: block; height: 100%; background: linear-gradient(90deg, var(--azul), var(--cian)); }
.avance .txt { font-size: .92rem; color: var(--suave); }

.requisito { background: var(--noche); color: #E6ECF7; border-radius: var(--radio); padding: 22px 24px; display: flex; flex-direction: column; gap: 8px; }
.requisito h2 { color: #fff; font-size: 1.35rem; }
.requisito .codigo { color: var(--cian); }
.requisito .nota { font-size: .85rem; color: #AFC0DC; }

.pregunta { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.pregunta .enc { display: flex; gap: 12px; align-items: baseline; }
.pregunta .num { font-family: "Outfit", sans-serif; font-weight: 700; color: var(--azul-osc); flex: none; }
.pregunta .enc h3 { flex: 1; }
.resultados { display: flex; flex-wrap: wrap; gap: 6px; }
.resultados .chip span { border-radius: 999px; padding: 0 14px; font-size: .88rem; }
.resultados .chip input:checked + span.r-c { background: var(--c-bg); color: var(--c-fg); border-color: var(--c-fg); }
.resultados .chip input:checked + span.r-ncm { background: var(--ncm-bg); color: var(--ncm-fg); border-color: var(--ncm-bg); }
.resultados .chip input:checked + span.r-ncme { background: var(--ncme-bg); color: var(--ncme-fg); border-color: var(--ncme-fg); }
.resultados .chip input:checked + span.r-obs { background: var(--obs-bg); color: var(--obs-fg); border-color: var(--obs-fg); }
.resultados .chip input:checked + span.r-om { background: var(--om-bg); color: var(--om-fg); border-color: var(--om-fg); }
.hallazgo { background: #FFFAF3; border: 1px solid #F0D9BC; border-radius: 6px; padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.barra-guardar {
  position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end;
  background: rgba(243, 246, 251, .94); backdrop-filter: blur(4px); padding: 12px 0; border-top: 1px solid var(--linea);
}
.agregar { border: 1px dashed var(--linea-fuerte); border-radius: var(--radio); padding: 16px; background: transparent; }
.agregar summary { cursor: pointer; font-weight: 700; color: var(--azul-osc); min-height: 32px; display: flex; align-items: center; }
.agregar[open] summary { margin-bottom: 12px; }

.hallazgos-lista { list-style: none; margin: 0; padding: 0; }
.hallazgos-lista li { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid #EDF1F6; }
.hallazgos-lista .etq { width: 110px; text-align: center; }
.hallazgos-lista .cl { font-family: "Outfit", sans-serif; font-weight: 600; width: 50px; }
.hallazgos-lista .tx { flex: 1 1 260px; font-size: .95rem; }

/* ---------- informe */
.informe { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.informe > .opciones { flex: 1 1 320px; display: flex; flex-direction: column; gap: 16px; }
.informe > .vista { flex: 999 1 480px; min-width: 0; }
.hoja {
  background: #fff; max-width: 700px; margin: 0 auto; padding: 48px 52px;
  box-shadow: 0 1px 2px rgba(10, 31, 78, .08), 0 8px 24px rgba(10, 31, 78, .08);
  font-family: Calibri, "Carlito", "Source Sans 3", sans-serif; font-size: .95rem;
  display: flex; flex-direction: column; gap: 14px;
}
.hoja .logo { width: 200px; align-self: center; }
.hoja h2 { font-size: 1.05rem; border-bottom: 2px solid var(--azul); padding-bottom: 4px; margin-top: 8px; }
.hoja table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.hoja td, .hoja th { border: 1px solid var(--linea-fuerte); padding: 6px 8px; text-align: left; vertical-align: top; }
.hoja th { background: #EEF3FB; }
.hoja .marcador { background: #FFF1B8; padding: 0 3px; }
.versiones { list-style: none; margin: 0; padding: 0; }
.versiones li { padding: 12px 0; border-top: 1px solid #EDF1F6; display: flex; flex-direction: column; gap: 2px; }
.versiones .fila { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.versiones .arch { font-weight: 700; font-size: .92rem; word-break: break-all; }
.versiones .meta { font-size: .85rem; color: var(--suave); }

/* ---------- normas */
.pestanas { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--linea); }
.pestanas a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; margin-bottom: -1px;
  text-decoration: none; font-weight: 700; color: var(--suave); border-bottom: 3px solid transparent;
}
.pestanas a[aria-current="page"] { color: var(--noche); border-bottom-color: var(--azul); }
.acordeon { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); overflow: hidden; }
.acordeon details { border-bottom: 1px solid #EDF1F6; }
.acordeon details:last-child { border-bottom: 0; }
.acordeon summary { display: flex; align-items: center; gap: 14px; min-height: 54px; padding: 8px 18px; cursor: pointer; list-style: none; }
.acordeon summary::-webkit-details-marker { display: none; }
.acordeon summary::after { content: "▸"; color: var(--suave); margin-left: 4px; }
.acordeon details[open] > summary { background: #EEF4FD; }
.acordeon details[open] > summary::after { content: "▾"; }
.acordeon .cl { font-family: "Outfit", sans-serif; font-weight: 600; width: 52px; flex: none; color: var(--noche); }
.acordeon .ti { flex: 1; font-weight: 600; }
.acordeon .np { font-size: .85rem; color: var(--suave); white-space: nowrap; }
.acordeon .cuerpo { padding: 16px 18px 20px 18px; background: #FAFBFD; display: flex; flex-direction: column; gap: 12px; }
.preg-banco { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; background: #fff; border: 1px solid var(--linea); border-radius: 6px; padding: 12px; }
.preg-banco .campo { flex: 1 1 320px; }
.preg-banco select { width: auto; }

/* ---------- avisos */
.aviso { display: flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 6px; background: #DDF1EC; color: #0B5E55; font-weight: 600; border: 1px solid #A9DCCF; }
.vacio { text-align: center; padding: 48px 24px; color: var(--suave); display: flex; flex-direction: column; align-items: center; gap: 14px; }
.vacio img { width: 120px; opacity: .9; }

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
@media print { .lateral, .barra-guardar, .acciones { display: none; } }

/* v0.2 seguridad */
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef4fd,#f8fbff)}
.auth-card{width:min(100%,440px);background:#fff;border:1px solid var(--linea);border-radius:14px;padding:32px;box-shadow:0 18px 50px rgba(10,31,78,.12);display:flex;flex-direction:column;gap:18px}
.auth-logo{width:230px;align-self:center}.auth-form{display:flex;flex-direction:column;gap:14px}
input[type=password]{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--linea-fuerte);border-radius:6px;font:inherit}
.error-msg{padding:12px 14px;border-radius:7px;background:#fde8e7;color:#8f1d14;border:1px solid #f3b8b4}
.usuario-box{margin-top:auto;border-top:1px solid var(--linea);padding:16px 8px 0;display:flex;flex-direction:column;gap:2px}.usuario-box span{font-size:.82rem;color:var(--suave)}.usuario-box form{margin-top:4px}.usuario-box .btn{justify-content:flex-start;padding-left:0}

/* v0.2.1 - Formularios alineados y responsive */
.campos {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
}
.campos > .campo { min-width: 0; }
.campos > .campo input,
.campos > .campo select,
.campos > .campo textarea { width: 100%; }

/* Select de cliente existente */
.cliente-existente-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.cliente-existente-grid .campo { width:100%; }
#bloque-existente select { min-height:46px; }

/* Norma/alcance siempre dos columnas iguales en escritorio */
#sec-norma > .campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Equipo: cuatro columnas y modalidad inicia nueva fila */
#sec-equipo > .campos { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1100px) {
  .campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #sec-equipo > .campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .req-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .contenido { padding:20px 12px 40px; }
  .contenedor { gap:16px; }
  .panel { padding:16px; }
  h1 { font-size:1.55rem; }

  .campos,
  #sec-norma > .campos,
  #sec-equipo > .campos,
  .req-grid { grid-template-columns:1fr; }

  .campo.ancho { grid-column:auto; }
  .panel-titulo { align-items:flex-start; }
  .panel-titulo .chips { width:100%; }
  #sec-cliente .panel-titulo .chip { flex:1 1 140px; }
  #sec-cliente .panel-titulo .chip span { width:100%; justify-content:center; }

  .pasos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pasos a { width:100%; padding:0 10px; font-size:.82rem; }

  .req-opcion { align-items:flex-start; display:grid; grid-template-columns:22px 44px minmax(0,1fr) auto; padding:12px; }
  .req-opcion .cl { width:auto; }
  .req-opcion .np { align-self:center; }

  .barra-guardar { display:grid; grid-template-columns:1fr; padding:10px 0; }
  .barra-guardar .btn { width:100%; }
  .acciones { width:100%; }
  form.panel > .acciones { display:grid; grid-template-columns:1fr; }
  form.panel > .acciones .btn { width:100%; }

  input[type=text], input[type=search], input[type=email], input[type=tel],
  input[type=number], input[type=date], input[type=password], select, textarea {
    font-size:16px; /* evita zoom automático en iOS */
  }
}

@media (max-width: 420px) {
  .pasos { grid-template-columns:1fr; }
  .req-opcion { grid-template-columns:22px 42px minmax(0,1fr); }
  .req-opcion .np { grid-column:3; }
  .chips .chip { flex:1 1 100%; }
  .chips .chip span { width:100%; justify-content:center; }
}

/* v0.2.2 - Mobile UX: cabecera compacta y autenticación robusta */
.lateral-cab { display:block; }
.menu-movil { display:none; }

@media (max-width: 860px) {
  .app { display:block; min-height:100vh; }
  .lateral {
    position:sticky; top:0; z-index:50; width:100%; max-width:none; min-height:0;
    padding:8px 12px; border-right:0; border-bottom:1px solid var(--linea);
    box-shadow:0 2px 10px rgba(10,31,78,.06); gap:0;
  }
  .lateral-cab { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; }
  .lateral .marca { padding:0; display:flex; align-items:center; }
  .lateral .marca img { width:auto; max-width:150px; max-height:54px; object-fit:contain; }
  .menu-movil {
    display:inline-flex; width:44px; height:44px; flex:none; border:1px solid var(--linea); border-radius:8px;
    background:#fff; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer;
  }
  .menu-movil span { width:20px; height:2px; background:var(--noche); border-radius:2px; transition:.18s ease; }
  .menu-movil[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-movil[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-movil[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .lateral nav, .lateral .usuario-box { display:none; }
  .lateral.menu-abierto nav { display:flex; flex-direction:column; flex-wrap:nowrap; padding:8px 0 4px; }
  .lateral.menu-abierto .usuario-box { display:flex; margin-top:6px; padding:12px 8px 6px; }
  .lateral nav a { width:100%; min-height:46px; }
  .contenido { width:100%; padding:20px 12px 40px; }
}

@media (max-width: 520px) {
  .lateral { padding:6px 10px; }
  .lateral-cab { min-height:54px; }
  .lateral .marca img { max-width:132px; max-height:48px; }
  .menu-movil { width:42px; height:42px; }
}

/* Login: también queda definido en CSS global; login.ejs incluye CSS crítico como respaldo. */
.auth-body { min-height:100vh; min-height:100dvh; }
.auth-card .captcha-box { padding:13px 14px; border:1px solid var(--linea); border-radius:8px; background:var(--fondo); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.auth-card .captcha-box span { color:var(--suave); }
.auth-card .captcha-box strong { color:var(--noche); font-size:1.05rem; white-space:nowrap; }
@media (max-width:520px) {
  .auth-body { place-items:start center; padding:24px 16px; }
  .auth-card { margin-top:max(12px, env(safe-area-inset-top)); padding:24px 20px; }
  .auth-logo { width:min(210px,75%); }
}

/* v0.3.0 - alineación global y configuración documental */
.campo { justify-content:flex-start; }
.campo > input,.campo > select,.campo > textarea { box-sizing:border-box; }
.campo > input,.campo > select { min-height:44px; height:44px; }
.campo > textarea { min-height:76px; resize:vertical; }
.config-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.config-form h2 { margin-top:22px; }
.doc-preview { max-width:760px; min-height:520px; margin:28px auto 8px; background:#fff; border:1px solid var(--linea); box-shadow:0 8px 24px rgba(10,31,78,.08); padding:36px 42px; color:#111; font-family:Arial,sans-serif; font-size:14px; }
.doc-head { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; min-height:90px; }
.doc-head.pos-derecha .doc-logo { grid-column:2; grid-row:1; text-align:right; }.doc-head.pos-derecha .entidad{grid-column:1;grid-row:1}
.doc-head.pos-centro { grid-template-columns:1fr; }.doc-head.pos-centro .doc-logo{text-align:center}.doc-head.pos-centro .entidad{margin-top:8px}
.doc-logo img { height:auto; max-height:90px; object-fit:contain; }.doc-logo span{display:inline-block;border:2px dashed #cbd5e1;padding:22px;color:#64748b}
.entidad.align-izquierda,.doc-title.align-izquierda{text-align:left}.entidad.align-centro,.doc-title.align-centro{text-align:center}.entidad.align-derecha,.doc-title.align-derecha{text-align:right}
.doc-title { padding:8px 0; font-size:16px; }.doc-title b{font-size:18px}.doc-preview hr{border:0;border-top:1px solid #777}.doc-preview p{margin:9px 0}
@media(max-width:1100px){.config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.config-grid{grid-template-columns:1fr}.doc-preview{padding:22px 18px;min-height:420px}.doc-head{grid-template-columns:1fr}.doc-head .doc-logo,.doc-head .entidad{grid-column:1!important;grid-row:auto!important}.doc-head.pos-derecha .doc-logo{text-align:right}}
/* v0.3.1 - encabezado institucional de informes */
.preview-report-header{display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);gap:18px;align-items:center;min-height:86px;margin-bottom:8px}
.preview-report-logo img{display:block;max-height:78px;object-fit:contain}
.preview-report-logo.pos-izquierda img{margin-right:auto}.preview-report-logo.pos-centro img{margin-inline:auto}.preview-report-logo.pos-derecha img{margin-left:auto}
.preview-report-entity{font-size:.78rem;line-height:1.25}.preview-report-rule{border-top:1px solid #7d8794;margin:8px 0 12px}
.align-izquierda{text-align:left}.align-centro{text-align:center}.align-derecha{text-align:right}
@media(max-width:640px){.preview-report-header{grid-template-columns:38% 62%;gap:8px;min-height:60px}.preview-report-entity{font-size:.62rem}.preview-report-logo img{max-height:55px}.hoja{padding:18px!important}}

/* v0.3.2 - carátula de informe ajustada a formato de referencia */
.caratula-datos{margin-top:8px;font-size:.9rem;line-height:1.25}
.caratula-fila{display:grid;grid-template-columns:minmax(190px,34%) 1fr;gap:8px;padding:4px 2px;align-items:start}
.caratula-fila.separador{border-bottom:1px solid #777;padding-bottom:7px;margin-bottom:4px}
.caratula-fila.bloque{margin-top:10px}
.caratula-bloque{display:grid;grid-template-columns:minmax(190px,34%) 1fr;gap:8px;padding:5px 2px}
.marca-linea{display:flex;gap:8px;align-items:flex-start;border-bottom:1px solid #999;padding-bottom:3px}
.marca-linea .check{font-weight:800;color:#007f8c;font-size:1.05rem;line-height:1}
.hoja .preview-report-header{min-height:76px;align-items:center}
.hoja .preview-report-entity{font-size:.72rem;line-height:1.15}
.hoja .preview-report-entity strong{font-size:.84rem}
.hoja .preview-report-rule{margin:5px 0}
@media(max-width:680px){.caratula-fila,.caratula-bloque{grid-template-columns:1fr;gap:2px}.caratula-fila.bloque{margin-top:7px}}

/* v0.3.4: ubicación territorial dependiente */
.ubicaciones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%}
.campos>.ubicaciones.ancho{grid-column:1/-1}
@media(max-width:900px){.ubicaciones{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.ubicaciones{grid-template-columns:1fr}}

/* v0.3.6: selección múltiple de normas y tipos */
.opciones-verticales{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--linea,#cbd5e1);border-radius:8px;background:#fff;min-height:44px}
.opcion-linea{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:8px;margin:0;min-height:28px}
.opcion-linea input{width:17px;height:17px;margin:0}.campo-label{display:block;font-weight:600;margin-bottom:6px}

/* v0.4.0 operación de auditorías */
.req-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.req-edit{display:grid;grid-template-columns:20px 55px 1fr auto;gap:8px;align-items:center;border:1px solid var(--linea);border-radius:8px;padding:10px;background:#fff}.alerta-quitar{padding:12px;border:1px solid #f1c98b;background:#fff8ed;border-radius:8px}.rapidas-panel{border:1px solid var(--linea);border-radius:10px;background:#f8fbff;padding:10px 12px;margin-bottom:14px}.rapidas-panel summary{font-weight:700;cursor:pointer}.rapidas-wrap{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-top:10px}.rapidas-lista{display:flex;flex-wrap:wrap;gap:8px;align-content:start}.rapidas-lista>input{width:100%;height:40px}.rapida{max-width:260px;text-align:left;border:1px solid #bfd0e8;background:#fff;border-radius:8px;padding:9px;cursor:grab;display:flex;flex-direction:column;gap:3px}.rapida span{font-size:.88rem}.rapida small{color:var(--suave)}.rapida-nueva{display:flex;flex-direction:column;gap:8px}.drop-activo{outline:3px solid #1f6feb!important;background:#eef6ff!important}.cal-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.agenda{display:flex;flex-direction:column}.evento{display:grid;grid-template-columns:150px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--linea)}.evento div{display:flex;flex-direction:column}.toast-recordatorio{position:fixed;right:20px;bottom:20px;z-index:9999;max-width:380px;padding:16px 18px;border-radius:10px;background:#08265c;color:white;box-shadow:0 10px 30px #0004}.form-stack{display:flex;flex-direction:column;gap:14px}
@media(max-width:900px){.req-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-layout,.rapidas-wrap{grid-template-columns:1fr}}
@media(max-width:600px){.req-edit-grid{grid-template-columns:1fr}.evento{grid-template-columns:1fr}.rapida{max-width:none;width:100%}}

/* v0.4.1 — respuestas rápidas maestras por norma */
.ejecucion{display:grid;grid-template-columns:minmax(245px,300px) minmax(0,1fr) minmax(230px,285px);gap:20px;align-items:start}
.ejecucion>aside{min-width:0}
.ejecucion>section{min-width:0;display:flex;flex-direction:column;gap:16px}
.req-norma{display:block;margin-top:3px;color:var(--suave);font-size:.72rem;font-weight:500}
.rapidas-lateral{position:relative!important;top:auto!important;max-height:none!important;overflow:visible!important}
.rapidas-sticky{position:sticky;top:16px;border:1px solid var(--linea);border-radius:10px;background:#f8fbff;padding:12px;box-shadow:0 4px 18px #0b2d5c0d}
.rapidas-cab{display:flex;flex-direction:column;gap:2px;margin-bottom:9px}.rapidas-cab small{color:var(--suave)}
.rapidas-sticky>input{width:100%;height:38px;margin-bottom:9px}
.rapidas-scroll{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 235px);min-height:180px;overflow-y:auto;padding-right:4px}
.rapida-lateral-item{max-width:none;width:100%;flex:0 0 auto}.rapida-lateral-item span{line-height:1.35}.rapidas-ayuda{font-size:.76rem;color:var(--suave);margin:9px 0 0}
.respuestas-maestras{margin-top:22px}.rapidas-admin{display:flex;flex-direction:column;gap:10px}.rapida-admin{display:grid;grid-template-columns:1fr 2fr 1fr 1.4fr auto auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--linea);border-radius:9px;background:#fff}.rapida-admin .acciones{display:flex;gap:6px}.agregar-respuesta{margin-top:12px;border-top:1px solid var(--linea);padding-top:10px}.agregar-respuesta summary{cursor:pointer;font-weight:700;color:#0b51b7}
@media(max-width:1180px){.ejecucion{grid-template-columns:250px minmax(0,1fr)}.rapidas-lateral{grid-column:2}.rapidas-sticky{position:static}.rapidas-scroll{max-height:320px}.rapida-admin{grid-template-columns:1fr 2fr 1fr 1fr}.rapida-admin .acciones{grid-column:span 2}}
@media(max-width:860px){.ejecucion{display:flex;flex-direction:column}.ejecucion>aside,.ejecucion>section{width:100%}.rapidas-lateral{order:2}.rapidas-sticky{position:static}.rapidas-scroll{max-height:280px}.rapida-admin{grid-template-columns:1fr}.rapida-admin .acciones{grid-column:auto}}
\n\n/* v0.4.2 — lectura visual multinorma + aprovechamiento de ancho */\n.contenedor:has(.ejecucion){max-width:1480px;width:100%;gap:16px}\n.contenedor:has(.ejecucion) .cabecera{margin-bottom:0}\n.contenedor:has(.ejecucion) .avance{margin-top:0}\n.ejecucion{grid-template-columns:minmax(230px,270px) minmax(540px,1fr) minmax(245px,285px);gap:14px}\n.ejecucion .lista-req{padding:7px;max-height:calc(100vh - 180px);overflow-y:auto;position:sticky;top:12px}\n.ejecucion .lista-req a{border-left:5px solid var(--item-color);padding:8px 8px;background:var(--item-soft);margin:1px 0}\n.ejecucion .lista-req a:hover{background:var(--item-bg)}\n.ejecucion .lista-req a[aria-current="step"]{border-color:var(--item-color);background:var(--item-bg);box-shadow:inset 0 0 0 1px var(--item-color)}\n.ejecucion .lista-req a[aria-current="step"] .cl{color:var(--item-color)}\n.ejecucion .req-norma{color:var(--item-color);font-weight:700;font-size:.68rem}\n.ejecucion .requisito{background:linear-gradient(110deg,var(--norma-color),#08265c 72%);padding:16px 20px;border-left:6px solid var(--norma-color)}\n.ejecucion .requisito .codigo{display:inline-flex;width:max-content;background:#fff;color:var(--norma-color);border-radius:999px;padding:3px 9px;font-weight:700}\n.ejecucion .pregunta-norma{border-left:6px solid var(--norma-color);padding:15px 16px;gap:10px}\n.ejecucion .pregunta-norma .num{color:var(--norma-color)}\n.ejecucion #form-respuestas{gap:11px!important}\n.ejecucion .rapidas-sticky{top:12px;padding:10px;background:var(--norma-soft);border-top:5px solid var(--norma-color)}\n.ejecucion .norma-badge{display:inline-flex;width:max-content;padding:3px 8px;border-radius:999px;background:var(--norma-bg);color:var(--norma-color)!important;font-weight:700}\n.ejecucion .rapida-norma{border-left:5px solid var(--item-color);background:#fff;padding:8px 9px}\n.ejecucion .rapida-norma:hover{background:var(--item-bg);border-color:var(--item-color)}\n.ejecucion .rapidas-scroll{max-height:calc(100vh - 250px)}\n@media(min-width:1500px){.contenido{padding-left:24px;padding-right:24px}.contenedor:has(.ejecucion){max-width:1540px}.ejecucion{grid-template-columns:260px minmax(0,1fr) 280px}}\n@media(max-width:1180px){.ejecucion{grid-template-columns:230px minmax(0,1fr)}.rapidas-lateral{grid-column:2}.rapidas-sticky{position:static}}\n
/* ===== v0.4.3: ejecución multinorma + MiGestión ===== */
.contenedor:has(.ejecucion){max-width:none;margin:0;width:100%}
.contenido:has(.ejecucion){padding-left:clamp(10px,1.2vw,20px);padding-right:clamp(10px,1.2vw,20px)}
.ejecucion{display:grid;grid-template-columns:minmax(245px,20%) minmax(520px,1fr) minmax(245px,20%);gap:12px;width:100%;align-items:start}
.ejecucion>aside{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;min-width:0}
.ejecucion>section{min-width:0;display:flex;flex-direction:column;gap:12px}
.lista-req-agrupada{padding:8px;gap:8px}.lista-req-agrupada>h2{padding:4px 6px}
.grupo-norma{border:1px solid color-mix(in srgb,var(--item-color) 30%,#d9e1ec);border-left:5px solid var(--item-color);border-radius:8px;background:var(--item-soft);overflow:hidden}
.grupo-norma-titulo{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;padding:8px 9px;background:var(--item-bg);color:var(--item-color)}
.grupo-norma-titulo small{font-size:.72rem;color:var(--suave)}.punto-norma{width:9px;height:9px;border-radius:50%;background:var(--item-color)}
.lista-req .grupo-norma a{border-radius:0;border:0;border-top:1px solid rgba(20,32,51,.06);padding:7px 8px;min-height:44px;background:#fff}
.lista-req .grupo-norma a:hover{background:var(--item-soft)}.lista-req .grupo-norma a[aria-current="step"]{box-shadow:inset 4px 0 0 var(--item-color);background:var(--item-bg)}
.lista-req .grupo-norma .cl{color:var(--item-color);width:38px}.lista-req .grupo-norma .ti{font-size:.84rem}.lista-req .grupo-norma .etq{font-size:.7rem;padding:2px 7px}
.requisito{border-left:7px solid var(--norma-color);background:linear-gradient(110deg,var(--noche),color-mix(in srgb,var(--noche) 82%,var(--norma-color)))}
.pregunta-norma{border-left:5px solid var(--norma-color)}.pregunta-norma .num{color:var(--norma-color)}
.rapidas-sticky{border-top:5px solid var(--norma-color)}.norma-badge{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--norma-bg);color:var(--norma-color);font-weight:700}
.rapida-norma{border-left:5px solid var(--item-color)!important;background:var(--item-bg)!important;max-width:none;width:100%}
.rapidas-scroll{max-height:calc(100vh - 260px);overflow:auto;padding-right:3px}.rapidas-sticky{background:#fff;border-radius:8px;padding:10px;border-left:1px solid var(--linea);border-right:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.nav-grupo{margin:0}.nav-grupo summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:6px;font-weight:600;cursor:pointer;list-style:none}.nav-grupo summary::-webkit-details-marker{display:none}.nav-grupo summary::after{content:'›';margin-left:auto;transition:.15s}.nav-grupo[open] summary::after{transform:rotate(90deg)}.nav-grupo summary:hover{background:var(--fondo)}.nav-sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px 28px}.lateral nav .nav-sub a{min-height:36px;font-size:.9rem;padding-left:12px}
.gestion-tabs{display:flex;gap:6px;border-bottom:1px solid var(--linea)}.gestion-tabs a{padding:9px 14px;text-decoration:none;font-weight:700;border-bottom:3px solid transparent}.gestion-tabs a.activo{color:var(--azul-osc);border-color:var(--azul)}
.calendario-panel{padding:14px}.cal-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.cal-toolbar h2{min-width:240px;text-align:center;text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--linea);border-top:1px solid var(--linea)}.cal-dias{border:0}.cal-dias b{text-align:center;padding:7px;color:var(--suave);font-size:.82rem}.cal-dia{min-height:118px;padding:6px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);background:#fff;overflow:hidden}.cal-dia.fuera{background:#f7f9fc;color:#9aa5b5}.cal-num{font-weight:700;font-size:.82rem}.cal-evento{display:block;margin-top:4px;padding:4px 6px;border-radius:5px;background:#edf4ff;color:#163d78;font-size:.75rem;line-height:1.15;text-decoration:none;overflow:hidden}.cal-evento.auditoria{background:#dff5f0;color:#075e55;border-left:3px solid #0b8f7d}.cal-evento small{display:block;opacity:.8}.prioridad-alta{background:#fde9e7;color:#8f1d14}.prioridad-baja{background:#f1f3f6;color:#4a5568}
.postits{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.postit{min-height:190px;padding:18px;border-radius:5px;box-shadow:0 7px 18px #1420331a;transform:rotate(-.3deg);display:flex;flex-direction:column;gap:10px}.postit:nth-child(even){transform:rotate(.4deg)}.postit-amarillo{background:#fff3a8}.postit-azul{background:#ddecff}.postit-verde{background:#dff4df}.postit-rosado{background:#ffe1eb}.postit-top{display:flex;justify-content:space-between}.postit p{white-space:pre-wrap;flex:1}.postit small{color:#52606d}.postit .btn{align-self:flex-start}
@media(max-width:1180px){.ejecucion{grid-template-columns:minmax(220px,26%) 1fr}.rapidas-lateral{grid-column:1/-1;position:static!important;max-height:none!important}.rapidas-scroll{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;max-height:300px}}
@media(max-width:760px){.ejecucion{grid-template-columns:1fr}.ejecucion>aside{position:static;max-height:none}.cal-grid{min-width:760px}.calendario-panel{overflow:auto}.cal-dia{min-height:100px}.nav-sub{margin-left:10px}}

/* v0.4.4 — calendario operativo de ancho completo */
.contenedor:has(.calendario-full){max-width:none;width:100%;gap:14px}.contenido:has(.calendario-full){padding-left:18px;padding-right:18px}.calendario-full{padding:14px;width:100%}.cal-cab{align-items:center}.cal-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.cal-toolbar .cal-nav{display:flex;gap:7px}.cal-toolbar .cal-vistas{display:flex;justify-content:flex-end;gap:5px}.cal-vistas .btn{min-height:36px;padding:0 13px}.cal-vistas .activo{background:var(--noche);color:#fff;border-color:var(--noche)}.cal-evento{width:100%;border:0;cursor:pointer;text-align:left;font-family:inherit}.semana-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));min-height:610px;border:1px solid var(--linea)}.semana-dia{padding:8px;border-right:1px solid var(--linea)}.semana-dia:last-child{border:0}.semana-dia header{display:flex;justify-content:space-between;padding:7px;border-bottom:1px solid var(--linea);text-transform:capitalize}.dia-agenda{max-width:1100px;margin:auto}.hora{display:grid;grid-template-columns:80px 1fr;min-height:64px;border-top:1px solid var(--linea)}.hora time{padding:8px;color:var(--suave)}.hora>div{padding:4px;border-left:1px solid var(--linea)}.anio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mini-mes{min-height:130px;padding:18px;border:1px solid var(--linea);border-radius:8px;text-decoration:none;background:#fff;display:flex;flex-direction:column;justify-content:space-between;text-transform:capitalize}.mini-mes:hover{border-color:var(--azul);box-shadow:0 5px 18px #14203312}.mini-mes span{color:var(--suave)}.modal-cal{border:0;padding:0;border-radius:12px;width:min(820px,calc(100vw - 28px));max-height:92vh;box-shadow:0 24px 80px #071a3c55}.modal-cal::backdrop{background:#071a3c99;backdrop-filter:blur(2px)}.modal-card{margin:0;background:#fff}.modal-card>header{padding:18px 22px;border-bottom:1px solid var(--linea);display:flex;justify-content:space-between;align-items:center}.modal-x{border:0;background:transparent;font-size:28px;cursor:pointer}.modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:14px;max-height:65vh;overflow:auto}.modal-body .campos{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-resumen{color:var(--azul-osc);font-weight:700}.modal-recordatorios{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-card>footer{padding:14px 22px;border-top:1px solid var(--linea);display:grid;grid-template-columns:auto auto 1fr auto auto;gap:8px}.modal-card fieldset{border:1px solid var(--linea);border-radius:8px;padding:10px}.modal-card fieldset .check{margin-right:12px}.cal-dia{min-height:126px}
@media(max-width:1000px){.cal-toolbar{grid-template-columns:1fr}.cal-toolbar h2{order:-1}.cal-toolbar .cal-nav,.cal-toolbar .cal-vistas{justify-content:center}.semana-grid{overflow:auto}.anio-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.contenido:has(.calendario-full){padding:14px 8px}.anio-grid{grid-template-columns:1fr}.modal-body .campos,.modal-recordatorios{grid-template-columns:1fr}.modal-card>footer{display:flex;flex-wrap:wrap}.cal-vistas{overflow:auto}.cal-toolbar h2{min-width:0}.calendario-full{overflow:auto}}

/* v0.4.5 — ancho consistente en todos los módulos + YoAuditor responsive */
@media (min-width: 861px) {
  .lateral { flex: 0 0 220px; width:220px; }
  .contenido { flex:1 1 auto; width:calc(100% - 220px); padding-left:18px; padding-right:18px; }
  .contenedor { max-width:none; width:100%; margin:0; gap:20px; }
  .lateral .marca img { width:100%; max-width:190px; max-height:150px; object-fit:contain; margin:auto; }
}
/* El calendario ya era full-width; el resto ahora usa exactamente la misma caja útil. */
.contenedor:has(.ejecucion),
.contenedor:has(.calendario-full) { max-width:none; width:100%; }

@media (max-width: 860px) {
  html, body { width:100%; max-width:100%; overflow-x:hidden; }
  .app { width:100%; }
  .contenido { min-width:0; max-width:100%; padding:14px 10px 34px; }
  .contenedor { width:100%; max-width:none; margin:0; gap:16px; }
  .lateral .marca img { max-width:170px; max-height:58px; }
  .cabecera { align-items:stretch; }
  .cabecera .acciones { width:100%; }
  .cabecera .acciones .btn { flex:1 1 auto; }
  .cifras { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filtros { grid-template-columns:1fr !important; }
  .tabla-caja { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .tabla { min-width:780px; }
  .pestanas { width:100%; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; }
  .acordeon { width:100%; }
}
@media (max-width: 520px) {
  .lateral .marca img { max-width:145px; max-height:52px; }
  .cifras { grid-template-columns:1fr 1fr; gap:8px; }
  h1 { font-size:1.55rem; }
}
/* v0.4.6 — calendario con criticidad sólida */
.cal-evento{font-weight:600;border-left:5px solid currentColor!important;box-shadow:0 1px 2px #00000012}.cal-evento .cal-ico{font-size:.72rem;margin-right:4px}.prioridad-urgente{background:#c62828!important;color:#fff!important}.prioridad-alta{background:#ef6c00!important;color:#fff!important}.prioridad-normal{background:#2e7d32!important;color:#fff!important}.prioridad-baja{background:#6b7280!important;color:#fff!important}.prioridad-informativa{background:#1565c0!important;color:#fff!important}
/* todas las pantallas principales usan el mismo ancho útil que Calendario */
.contenedor{max-width:none!important;width:100%!important;margin:0!important}.contenido{padding-left:18px!important;padding-right:18px!important}.cabecera,.panel,.avance,.gestion-tabs{width:100%}
@media(max-width:760px){.contenido{padding:12px 8px 30px!important}.marca img{max-height:78px;width:auto}.auth-logo{width:min(280px,92%)!important}.cal-evento{font-size:.72rem}}
.config-prioridades{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px}.prioridad-config{border:1px solid var(--linea);border-radius:8px;padding:10px}.muestra-prioridad{display:block;color:#fff;font-weight:700;border-radius:6px;padding:8px 10px;margin-bottom:8px}@media(max-width:900px){.config-prioridades{grid-template-columns:1fr 1fr}}@media(max-width:520px){.config-prioridades{grid-template-columns:1fr}}
.usuarios-compartir{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:1px solid var(--linea);border-radius:8px;padding:10px;max-height:190px;overflow:auto}.usuarios-compartir small{display:block;color:var(--suave)}.bitacora-auditoria{margin-top:14px}.bitacora-auditoria summary{cursor:pointer}.bitacora-lista{margin-top:12px;display:grid;gap:7px}.bitacora-item{display:grid;grid-template-columns:150px 180px 180px 1fr;gap:8px;padding:8px;border-bottom:1px solid var(--linea);align-items:start}.bitacora-item p{margin:0}.bitacora-item time{color:var(--suave)}@media(max-width:800px){.usuarios-compartir{grid-template-columns:1fr}.bitacora-item{grid-template-columns:1fr;gap:2px}}
.enrol-form{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:end}.enrol-qr{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:22px;padding-top:20px;border-top:1px solid var(--linea)}.enrol-qr img{width:min(320px,100%);background:#fff;padding:8px}.enrol-qr code{display:block;word-break:break-all}.enrol-activar{max-width:760px}.enrol-activar .btn{margin-right:8px}@media(max-width:650px){.enrol-form{grid-template-columns:1fr}.enrol-qr{flex-direction:column;align-items:flex-start}}
.cal-evento[class*="prioridad-"]{background:var(--event-color)!important;color:#fff!important}


/* v0.4.8 — edición de auditoría agrupada visualmente por norma */
.req-edit-normas{display:flex;flex-direction:column;gap:16px}
.req-edit-grupo{border:1px solid color-mix(in srgb,var(--item-color) 35%,#d8e1ee);border-top:5px solid var(--item-color);border-radius:12px;background:var(--item-soft);overflow:hidden}
.req-edit-grupo-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:11px 14px;background:var(--item-bg);border-bottom:1px solid color-mix(in srgb,var(--item-color) 25%,#d8e1ee);color:#10254b}
.req-edit-grupo-head .punto-norma{width:11px;height:11px;border-radius:50%;background:var(--item-color)}
.req-edit-grupo-head div{display:flex;align-items:baseline;gap:10px;min-width:0}
.req-edit-grupo-head strong{color:var(--item-color);font-size:1rem}
.req-edit-grupo-head small{color:#52657f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.req-edit-grupo-head>span:last-child{font-size:.78rem;font-weight:700;color:var(--item-color)}
.req-edit-grupo .req-edit-grid{padding:10px;gap:8px}
.req-edit-grupo .req-edit{border-left:5px solid var(--item-color);background:#fff}
.req-edit-grupo .req-edit:has(input:checked){background:var(--item-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--item-color) 55%,transparent)}
.req-edit-grupo .req-edit strong{color:var(--item-color)}
@media(max-width:700px){.req-edit-grupo-head{grid-template-columns:auto 1fr}.req-edit-grupo-head>span:last-child{grid-column:2}.req-edit-grupo-head div{display:block}.req-edit-grupo-head small{display:block;margin-top:2px}}
.usuarios-permisos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.usuario-permiso{border:1px solid var(--linea);border-radius:10px;padding:12px;background:#fff}.permiso-config{margin-top:10px;padding-top:10px;border-top:1px solid var(--linea)}.permiso-modos{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}.permiso-requisitos{margin-top:10px;max-height:330px;overflow:auto;display:grid;gap:8px}.permiso-norma{border-left:4px solid var(--norma-c);background:var(--norma-bg);padding:8px 10px;border-radius:6px}.permiso-norma>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:6px}.permiso-norma label{font-size:12px;background:#fff;padding:6px;border-radius:5px}.permiso-requisitos[hidden],.permiso-config[hidden]{display:none!important}@media(max-width:900px){.usuarios-permisos{grid-template-columns:1fr}.permiso-norma>div{grid-template-columns:1fr}}
