/* ============================================================
   Avícola González — Intranet
   Hoja de estilos basada en la paleta y tipografía oficiales de
   avicolagonzalez.cl (extraída de producción 18-oct-2026).
   Objetivo: que el portal NO se sienta como otro sistema.
   ============================================================ */

:root{
  --ag-azul:#0B2F6B;
  --ag-azul-medio:#1F4E8C;
  --ag-verde:#2F6B2F;
  --ag-verde-osc:#1F4D2B;
  --ag-verde-claro:#6FA343;
  --ag-amarillo:#FFC52F;
  --ag-dorado:#E9A922;
  --ag-naranja:#E86B23;
  --ag-madera:#7A431E;
  --ag-kraft:#C58A4A;
  --ag-crema:#FFF8EC;
  --ag-beige:#F1E6D0;
  --ag-header:#FFFDF8;
  --ag-blanco:#FFFFFF;
  --ag-texto:#10233E;
  --ag-texto-sec:#5D625C;
  --ag-footer:#183C24;

  --max:1180px;
  --radio:8px;
  --sombra:0 6px 22px rgba(16,35,62,.07);
  --fuente:'Segoe UI',system-ui,-apple-system,sans-serif;
  --fuente-titulo:Georgia,serif;
}

*,*::before,*::after{box-sizing:border-box}

body{
  margin:0;
  font-family:var(--fuente);
  color:var(--ag-texto);
  background:var(--ag-crema);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}

/* ---------- Header ---------- */
.ag-header{
  background:var(--ag-header);
  position:sticky;top:0;z-index:60;
  box-shadow:0 1px 0 rgba(16,35,62,.08);
}
.ag-header .hrow{
  display:flex;align-items:center;gap:16px;
  min-height:96px;flex-wrap:nowrap;
}
.hlogo img{height:74px;width:auto;display:block}

.ag-header nav{margin-left:auto;display:flex;gap:18px;align-items:center}
.ag-header nav a{
  font-size:.88rem;font-weight:600;color:var(--ag-texto);
  text-decoration:none;padding:8px 2px;border-bottom:2px solid transparent;
  transition:.18s;
}
.ag-header nav a:hover,
.ag-header nav a[aria-current]{color:var(--ag-verde);border-bottom-color:var(--ag-verde)}

/* divisor con el acceso al portal */
.divisor{
  width:1px;height:26px;background:rgba(16,35,62,.16);
  margin:0 4px;flex:0 0 auto;
}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:12px 20px;border-radius:var(--radio);
  font-weight:700;font-size:.92rem;border:0;cursor:pointer;
  transition:.18s;white-space:nowrap;flex:0 0 auto;
  text-decoration:none;font-family:inherit;
}
.btn-cta{background:var(--ag-amarillo);color:var(--ag-texto)}
.btn-cta:hover{background:var(--ag-dorado)}
.btn-verde{background:var(--ag-verde);color:#fff}
.btn-verde:hover{background:var(--ag-verde-osc)}
.btn-azul{background:var(--ag-azul);color:#fff}
.btn-azul:hover{background:var(--ag-azul-medio)}
.btn-ghost{
  background:transparent;color:var(--ag-azul);
  border:1.5px solid rgba(11,47,107,.25);
}
.btn-ghost:hover{background:rgba(11,47,107,.06);border-color:var(--ag-azul)}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}

/* ============================================================
   LOGIN
   ============================================================ */
.login-page{
  min-height:100vh;
  display:grid;grid-template-columns:1.05fr 1fr;
}

/* Panel izquierdo: marca */
.login-brand{
  background:linear-gradient(160deg,var(--ag-azul) 0%,#123B7A 55%,var(--ag-verde-osc) 100%);
  color:#fff;
  padding:48px 52px;
  display:flex;flex-direction:column;justify-content:space-between;
  position:relative;overflow:hidden;
}
.login-brand::after{
  content:"";position:absolute;right:-90px;bottom:-120px;
  width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,197,47,.22),transparent 68%);
}
.login-brand .marca{position:relative;z-index:2}
.login-brand .marca img{
  height:82px;width:auto;
  background:#fff;border-radius:12px;padding:10px 14px;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.login-brand h1{
  font-family:var(--fuente-titulo);
  font-size:2.1rem;line-height:1.22;margin:34px 0 12px;
  max-width:15ch;position:relative;z-index:2;
}
.login-brand p{
  font-size:1rem;color:rgba(255,255,255,.82);
  max-width:34ch;margin:0;position:relative;z-index:2;
}
.login-brand .pie{
  font-size:.8rem;color:rgba(255,255,255,.55);
  position:relative;z-index:2;letter-spacing:.02em;
}

/* Panel derecho: formulario */
.login-panel{
  background:var(--ag-blanco);
  padding:48px 52px;
  display:flex;flex-direction:column;justify-content:center;
}
.login-panel .volver{
  position:absolute;top:28px;right:32px;
  font-size:.85rem;color:var(--ag-texto-sec);text-decoration:none;
}
.login-panel .volver:hover{color:var(--ag-verde)}

.login-box{max-width:400px;width:100%;margin:0 auto}
.kicker{
  font-size:.74rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ag-verde-claro);
  margin-bottom:10px;
}
.login-box h2{
  font-family:var(--fuente-titulo);
  font-size:1.85rem;color:var(--ag-azul);
  margin:0 0 8px;line-height:1.25;
}
.login-box .sub{
  font-size:.92rem;color:var(--ag-texto-sec);margin:0 0 28px;
}

/* ---------- Campos ---------- */
.campo{margin-bottom:18px}
.campo label{
  display:block;font-size:.82rem;font-weight:700;
  color:var(--ag-texto);margin-bottom:7px;
}
.campo input{
  width:100%;padding:12px 14px;
  border:1.5px solid rgba(16,35,62,.18);
  border-radius:var(--radio);
  font-family:inherit;font-size:.95rem;color:var(--ag-texto);
  background:var(--ag-blanco);
  transition:.18s;
}
.campo input:focus{
  outline:none;border-color:var(--ag-verde);
  box-shadow:0 0 0 3px rgba(47,107,47,.12);
}
.campo input::placeholder{color:#9AA39A}

.login-extra{
  display:flex;align-items:center;justify-content:space-between;
  margin:4px 0 22px;gap:12px;
}
.check{
  display:flex;align-items:center;gap:8px;
  font-size:.85rem;color:var(--ag-texto-sec);cursor:pointer;
}
.check input{accent-color:var(--ag-verde);width:16px;height:16px;cursor:pointer}
.login-extra a{
  font-size:.85rem;color:var(--ag-azul);text-decoration:none;font-weight:600;
}
.login-extra a:hover{text-decoration:underline}

/* ---------- Aviso / alerta ---------- */
.aviso{
  display:flex;gap:11px;align-items:flex-start;
  padding:13px 15px;border-radius:var(--radio);
  font-size:.87rem;margin-bottom:20px;
  border-left:4px solid;
}
.aviso-info{background:rgba(11,47,107,.06);border-color:var(--ag-azul);color:#123B7A}
.aviso-ok{background:rgba(47,107,47,.08);border-color:var(--ag-verde);color:var(--ag-verde-osc)}
.aviso-alerta{background:rgba(232,107,35,.09);border-color:var(--ag-naranja);color:#8a3d10}
.aviso-error{background:rgba(180,40,40,.08);border-color:#B42828;color:#8a1414}

/* ---------- Footer ---------- */
.ag-footer{
  background:var(--ag-footer);color:#fff;
  padding:46px 0 26px;
}
.ag-footer .grid{
  display:grid;grid-template-columns:1.25fr 1fr 1fr;
  gap:36px;
}
.ag-footer h4{
  margin:0 0 12px;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ag-amarillo);
}
.ag-footer p,.ag-footer li{
  font-size:.87rem;color:#dbe6dc;line-height:1.75;
}
.ag-footer ul{list-style:none;margin:0;padding:0}
.ag-footer a{color:#dbe6dc;text-decoration:none}
.ag-footer a:hover{color:var(--ag-amarillo)}
.ag-footer .legal{
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:32px;padding-top:18px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:.78rem;color:rgba(219,230,220,.7);
}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .login-page{grid-template-columns:1fr}
  .login-brand{padding:32px 28px;min-height:auto}
  .login-brand h1{font-size:1.55rem;margin-top:22px}
  .login-brand .pie{display:none}
  .login-panel{padding:32px 24px 40px;position:relative}
  .login-panel .volver{position:static;display:inline-block;margin-bottom:18px}
  .ag-header .hrow{min-height:66px;gap:10px}
  .hlogo img{height:50px}
  .ag-header nav{display:none}
  .ag-footer .grid{grid-template-columns:1fr;gap:24px}
}
@media (max-width:520px){
  .login-brand{padding:26px 20px}
  .login-panel{padding:26px 20px 36px}
  .login-brand .marca img{height:62px}
}

/* ---------- Créditos del pie ---------- */
.ag-footer .creditos{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.ag-footer .creditos strong{
  color:var(--ag-amarillo);font-weight:700;letter-spacing:.02em;
}
.ag-footer .creditos a{
  color:#fff;text-decoration:none;
  border-bottom:1px solid rgba(255,197,47,.45);
  padding-bottom:1px;transition:.18s;
}
.ag-footer .creditos a:hover{
  color:var(--ag-amarillo);
  border-bottom-color:var(--ag-amarillo);
}
.ag-footer .creditos .ver{
  color:rgba(219,230,220,.45);
  padding-left:10px;margin-left:2px;
  border-left:1px solid rgba(255,255,255,.14);
}

/* ================== Portal autenticado ================== */
.app-body{background:var(--ag-crema);min-height:100vh;display:flex;flex-direction:column}
.app-header{background:var(--ag-header);box-shadow:0 1px 0 rgba(16,35,62,.10);position:sticky;top:0;z-index:60}
.app-bar{display:flex;align-items:center;gap:18px;padding:12px 0;flex-wrap:wrap}
.app-logo img{height:52px;width:auto;display:block}
.app-user{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.92rem;font-weight:600;color:var(--ag-texto)}
.app-user form{margin:0}
.link-salir{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-size:.85rem;
  color:var(--ag-verde);text-decoration:underline;text-underline-offset:3px}
.link-salir:hover{color:var(--ag-verde-osc)}
.perfil-chip{display:flex;align-items:center;gap:10px;margin:0;
  background:#fff;border:1px solid var(--ag-beige);border-radius:999px;padding:6px 8px 6px 16px}
.pc-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ag-texto-sec);font-weight:700}
.perfil-chip strong{color:var(--ag-azul);font-size:.95rem}
.perfil-chip small{color:var(--ag-texto-sec);font-size:.82rem}
.pc-cambiar{background:var(--ag-verde-claro);color:#fff;border:0;border-radius:999px;
  padding:6px 14px;font-size:.78rem;font-weight:700;cursor:pointer;transition:.18s}
.pc-cambiar:hover{background:var(--ag-verde)}
.app-main{flex:1;padding:34px 0 60px}
.app-titulo{font-size:1.9rem;margin:0 0 6px;color:var(--ag-azul);font-family:Georgia,serif}
.app-sub{margin:0 0 24px;color:var(--ag-texto-sec);font-size:.95rem}
.grilla-modulos{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:26px}
.modulo-card{background:#fff;border:1px solid var(--ag-beige);border-radius:12px;padding:22px 20px;
  box-shadow:0 2px 10px rgba(16,35,62,.05);transition:.2s}
.modulo-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(16,35,62,.09)}
.modulo-card.pronta{opacity:.72}
/* ---- Tarjetas apagadas (sin permiso / próximamente) ---- */
.modulo-card.apagada{background:#f3f4f2;border-color:#e4e6e0;border-style:dashed;
  opacity:.72;cursor:not-allowed;filter:grayscale(.45)}
.modulo-card.apagada:hover{transform:none;box-shadow:0 2px 10px rgba(16,35,62,.05)}
.modulo-card.apagada h3{color:#7c8489}
.modulo-card.apagada p{color:#9aa0a4}
.modulo-card.apagada .mc-icono{filter:grayscale(1);opacity:.6}
.mc-estado-off{color:#7c8489;background:#eceee9;border-color:#dcdfd7}
.mc-icono{font-size:1.7rem;line-height:1;margin-bottom:10px}
.modulo-card h3{margin:0 0 6px;font-size:1.06rem;color:var(--ag-azul)}
.modulo-card p{margin:0 0 14px;font-size:.88rem;color:var(--ag-texto-sec);line-height:1.45}
.mc-estado{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--ag-dorado);background:var(--ag-crema);
  border:1px solid var(--ag-beige);border-radius:999px;padding:3px 10px}

/* ---- Selector de perfil ---- */
.lista-perfiles{display:flex;flex-direction:column;gap:10px}
.tarjeta-perfil{display:flex;align-items:center;gap:12px;position:relative;
  border:1.5px solid var(--ag-beige);border-radius:10px;padding:14px 16px;cursor:pointer;
  background:#fff;transition:.18s}
.tarjeta-perfil:hover{border-color:var(--ag-verde-claro);background:#fbfdf9}
.tarjeta-perfil.activo{border-color:var(--ag-verde);background:#f4f9f1}
.tarjeta-perfil input[type=radio]{accent-color:var(--ag-verde);width:18px;height:18px;flex:0 0 auto}
.tp-info{display:flex;flex-direction:column;gap:2px}
.tp-info strong{color:var(--ag-azul);font-size:1rem}
.tp-info small{color:var(--ag-texto-sec);font-size:.82rem}
.tp-badge{position:absolute;right:14px;font-size:.68rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:var(--ag-verde);background:var(--ag-verde-claro);
  color:#fff;border-radius:999px;padding:3px 9px}

/* ================== Administración de usuarios ================== */
.miga{display:inline-block;font-size:.82rem;color:var(--ag-verde);text-decoration:none;
  margin-bottom:10px;font-weight:600}
.miga:hover{color:var(--ag-verde-osc);text-decoration:underline}
.barra-titulo{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.btn-plano{background:#fff;color:var(--ag-azul);border:1.5px solid var(--ag-beige);text-align:center}
.btn-plano:hover{background:var(--ag-crema);border-color:var(--ag-verde-claro)}
.btn-peligro{background:#fff;color:#a3291f;border:1.5px solid #f3d2cd}
.btn-peligro:hover{background:#fdf1ef;border-color:#d9554a}
.btn-block{display:block;width:100%}
.btn-mini{display:inline-block;font-size:.76rem;font-weight:700;padding:5px 12px;border-radius:6px;
  background:var(--ag-verde-claro);color:#fff;text-decoration:none;border:0;cursor:pointer;transition:.18s}
.btn-mini:hover{background:var(--ag-verde)}
.btn-mini-peligro{background:#fff;color:#a3291f;border:1px solid #f3d2cd}
.btn-mini-peligro:hover{background:#fdf1ef}

.buscador{display:flex;gap:10px;align-items:center;margin:22px 0 16px;flex-wrap:wrap}
.buscador input{flex:1;min-width:220px;padding:11px 14px;border:1.5px solid var(--ag-beige);
  border-radius:8px;font:inherit;font-size:.92rem;background:#fff}
.buscador input:focus{outline:2px solid var(--ag-verde-claro);outline-offset:1px;border-color:var(--ag-verde-claro)}

.tabla-wrap{background:#fff;border:1px solid var(--ag-beige);border-radius:12px;overflow:auto;
  box-shadow:0 2px 10px rgba(16,35,62,.05);
  /* Altura maxima: la cabecera queda anclada arriba mientras se baja (como el Excel).
     Pedido de Santiago 04-nov-2026. */
  max-height:min(72vh,760px);overflow-y:auto;overflow-x:auto}
.tabla{width:100%;border-collapse:separate;border-spacing:0;font-size:.89rem;
  /* Si las columnas no caben, que scrollee a lo ancho en vez de aplastarlas. */
  min-width:max-content}
.tabla thead th{background:var(--ag-crema);text-align:left;padding:12px 16px;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.06em;color:var(--ag-texto-sec);font-weight:700;
  border-bottom:1px solid var(--ag-beige);white-space:nowrap;
  /* CABECERA ANCLADA: sigue visible al hacer scroll vertical dentro del wrap. */
  position:sticky;top:0;z-index:3;
  /* Ancho minimo: que el texto respire (antes se cortaba).
     El ancho real se ajusta ARRASTRANDO el borde (ver JS: hacerResizable).
     OJO: `resize:horizontal` NO funciona en celdas de tabla; hubo que
     implementarlo con mousedown/mousemove sobre el th. */
  /* NO poner position:relative aqui: pisa el sticky y la cabecera deja de
     anclarse (bug detectado midiendo en Chrome, 04-nov-2026). `sticky` ya
     crea el containing block que necesita el mango absoluto. */
  /* Ancho minimo generoso: con 13 columnas apretadas se veia "todo junto".
     Sube a 132px y el texto deja de pelear. El ancho real se arrastra. */
  min-width:132px;
  box-shadow:inset -1px 0 0 rgba(0,0,0,.05)}
/* Mango de arrastre en el borde derecho de cada cabecera */
.th-grip{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;
  z-index:4;user-select:none}
.th-grip::after{content:'';position:absolute;top:18%;right:2px;width:1px;height:64%;
  background:rgba(11,47,107,.18)}
.th-grip:hover::after,.th-grip.arrastrando::after{background:var(--ag-verde);width:2px}
/* Mientras se arrastra: sin seleccion de texto y cursor de columna */
body.redimensionando{cursor:col-resize;user-select:none}
body.redimensionando .tabla tbody td{pointer-events:none}
.tabla thead th:first-child{min-width:118px}
.tabla thead th.num{text-align:right}
.tabla tbody td{padding:12px 16px;border-bottom:1px solid #f3efe6;vertical-align:middle;
  white-space:nowrap;font-variant-numeric:tabular-nums}
.tabla tbody td.celda-ubic{white-space:normal;min-width:170px}
.tabla tbody td.celda-fecha{font-variant-numeric:tabular-nums}
.tabla tbody tr:last-child td{border-bottom:0}
.tabla tbody tr:hover{background:#fbfdf9}
.fila-inactiva{opacity:.55}
.celda-correo{color:var(--ag-texto-sec);font-size:.85rem}
.celda-fecha{font-size:.8rem;color:var(--ag-texto-sec);white-space:nowrap}
.celda-detalle{font-size:.82rem;color:var(--ag-texto-sec);max-width:340px}
.vacio{text-align:center;padding:34px;color:var(--ag-texto-sec)}
.mas-perfiles{background:var(--ag-crema);border:1px solid var(--ag-beige);border-radius:999px;
  padding:1px 7px;font-size:.72rem;font-weight:700;color:var(--ag-verde)}
.tabla-compacta tbody td{padding:8px 12px;font-size:.82rem}
.cod-accion{background:var(--ag-crema);border:1px solid var(--ag-beige);border-radius:5px;
  padding:2px 7px;font-size:.74rem;color:var(--ag-azul)}

.pastilla{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;border-radius:999px;padding:3px 9px;margin-left:4px}
.pastilla-ok{background:#e7f4e3;color:var(--ag-verde)}
.pastilla-off{background:#f6e6e4;color:#a3291f}
.pastilla-pend{background:var(--ag-crema);color:var(--ag-dorado);border:1px solid var(--ag-beige)}

.nota-pie{margin-top:16px;font-size:.82rem;color:var(--ag-texto-sec)}
.nota-pie a{color:var(--ag-verde);font-weight:600;text-decoration:none;margin-left:6px}
.nota-pie a:hover{text-decoration:underline}

/* ---- Formularios ---- */
.tarjeta-form{background:#fff;border:1px solid var(--ag-beige);border-radius:12px;padding:24px;
  box-shadow:0 2px 10px rgba(16,35,62,.05)}
.titulo-seccion{margin:0 0 16px;font-size:1.02rem;color:var(--ag-azul);
  padding-bottom:10px;border-bottom:1px solid #f3efe6}
.grilla-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.ayuda{display:block;margin-top:5px;font-size:.76rem;color:var(--ag-texto-sec);line-height:1.35}
.acciones-form{display:flex;gap:10px;align-items:center;margin-top:22px;flex-wrap:wrap}
.dos-columnas{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-top:20px;align-items:start}
@media(max-width:900px){.dos-columnas{grid-template-columns:1fr}}
.columna-costado{display:flex;flex-direction:column;gap:20px}

.lista-perfiles-asig{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}
.lista-perfiles-asig li{display:flex;align-items:center;justify-content:space-between;gap:10px;
  border:1px solid var(--ag-beige);border-radius:8px;padding:9px 12px;background:#fcfdf9}
.pa-info{display:flex;flex-direction:column}
.pa-info strong{font-size:.92rem;color:var(--ag-azul)}
.pa-info small{font-size:.78rem;color:var(--ag-texto-sec)}
.form-asignar{border-top:1px solid #f3efe6;padding-top:16px;display:flex;flex-direction:column;gap:12px}

.datos-tecnicos{margin:18px 0 0;padding-top:14px;border-top:1px solid #f3efe6;font-size:.82rem}
.datos-tecnicos div{display:flex;justify-content:space-between;padding:5px 0}
.datos-tecnicos dt{color:var(--ag-texto-sec)}
.datos-tecnicos dd{margin:0;font-weight:600;color:var(--ag-azul)}

.aviso-clave{align-items:flex-start;background:#fffbf0;border-color:var(--ag-amarillo)}
.clave-caja{display:flex;align-items:center;gap:12px;margin:10px 0 8px;flex-wrap:wrap}
.clave-caja code{background:#fff;border:2px dashed var(--ag-dorado);border-radius:8px;
  padding:9px 16px;font-size:1.15rem;font-weight:700;letter-spacing:.14em;
  color:var(--ag-azul);font-family:'Courier New',monospace}
.clave-nota{margin:0;font-size:.82rem;color:var(--ag-texto-sec);line-height:1.45}

/* --- tarjeta de módulo disponible --- */
a.modulo-card{display:block;text-decoration:none;color:inherit}
.modulo-card.activo{border-color:var(--ag-verde-claro);background:#fbfdf9}
.modulo-card.activo:hover{border-color:var(--ag-verde)}
.mc-estado-ok{color:var(--ag-verde);background:#e7f4e3;border-color:#cbe6c3}

/* ================== Perfiles / matriz de permisos ================== */
.pastilla-sistema{background:#eaf0fa;color:var(--ag-azul-medio);border:1px solid #d3e0f4}
.contador{display:inline-block;min-width:26px;text-align:center;font-weight:700;
  background:var(--ag-crema);border:1px solid var(--ag-beige);border-radius:6px;
  padding:2px 8px;font-size:.82rem;color:var(--ag-azul)}
.celda-acciones{white-space:nowrap}
.btn-mini-plano{background:#fff;color:var(--ag-azul);border:1px solid var(--ag-beige)}
.btn-mini-plano:hover{background:var(--ag-crema)}
.cabecera-matriz{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.acciones-matriz{display:flex;gap:8px}

.modulo-bloque{border:1px solid var(--ag-beige);border-radius:10px;margin-bottom:16px;overflow:hidden}
.modulo-cabecera{display:flex;align-items:center;gap:12px;background:var(--ag-crema);
  padding:11px 16px;border-bottom:1px solid var(--ag-beige);flex-wrap:wrap}
.mod-check{display:flex;align-items:center;gap:10px;cursor:pointer;margin:0}
.mod-check input{accent-color:var(--ag-verde);width:17px;height:17px}
.mod-codigo{background:var(--ag-azul);color:#fff;border-radius:5px;padding:3px 9px;
  font-size:.76rem;font-weight:700;letter-spacing:.05em}
.mod-nombre{font-weight:700;color:var(--ag-azul);font-size:.98rem}

.tabla-matriz{width:100%;border-collapse:collapse;font-size:.87rem;background:#fff}
.tabla-matriz thead th{text-align:left;padding:9px 12px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:var(--ag-texto-sec);
  border-bottom:1px solid #f3efe6;background:#fdfcf8}
.tabla-matriz tbody td{padding:8px 12px;border-bottom:1px solid #f7f4ec;vertical-align:middle}
.tabla-matriz tbody tr:last-child td{border-bottom:0}
.tabla-matriz tbody tr:hover{background:#fbfdf9}
.tabla-matriz input[type=checkbox]{accent-color:var(--ag-verde);width:16px;height:16px}
.col-check{width:38px;text-align:center}
.col-codigo{width:150px;white-space:nowrap}
.col-mini{width:80px;text-align:center}
.col-alcance{width:110px}
.cod-funcion{background:var(--ag-crema);border:1px solid var(--ag-beige);border-radius:5px;
  padding:2px 7px;font-size:.76rem;color:var(--ag-azul);white-space:nowrap}
.sel-alcance{padding:4px 8px;border:1px solid var(--ag-beige);border-radius:6px;
  font-size:.8rem;background:#fff;color:var(--ag-texto)}
@media(max-width:760px){
  .tabla-matriz thead .col-mini, .tabla-matriz thead .col-alcance{display:none}
  .tabla-matriz tbody td.col-mini, .tabla-matriz tbody td.col-alcance{display:none}
}

/* ================== Posturas (M1.1) ================== */
.resumen-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;
  background:var(--ag-crema);border:1px solid var(--ag-beige);border-radius:12px;
  padding:16px 18px;margin:18px 0}
.rs-item{display:flex;flex-direction:column;gap:2px}
.rs-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ag-texto-sec);font-weight:700}
.rs-item strong{font-size:1.25rem;color:var(--ag-azul);font-weight:700}

.grilla-lotes{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;margin-top:18px}
.lote-card{background:#fff;border:1px solid var(--ag-beige);border-radius:12px;
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 2px 10px rgba(11,47,107,.04);transition:.15s}
.lote-card:hover{box-shadow:0 6px 22px rgba(11,47,107,.10);transform:translateY(-1px)}
.lc-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  padding:14px 16px;border-bottom:1px solid #f4f0e6;background:#fdfcf8}
.lc-cab h3{margin:0;font-size:.98rem;color:var(--ag-azul);font-weight:700}
.lc-cab small{color:var(--ag-texto-sec);font-size:.76rem}
.lc-cuerpo{padding:12px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.lc-fila{display:flex;justify-content:space-between;gap:10px;font-size:.85rem}
.lc-fila>span:first-child{color:var(--ag-texto-sec)}
.lc-fila>span:last-child{text-align:right;color:var(--ag-texto);font-weight:600}
.lc-pie{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:12px 16px;border-top:1px solid #f4f0e6;background:var(--ag-crema)}
.lc-postura{display:flex;flex-direction:column;line-height:1.1}
.lp-valor{font-size:1.3rem;font-weight:800;color:var(--ag-verde)}
.lp-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ag-texto-sec)}
.pastilla-err{background:#fdecea;color:#a3271c;border:1px solid #f5c6c0}
.pastilla-warn{background:#fff6e0;color:#8a5a00;border:1px solid #f3ddab}
.vacio{text-align:center;color:var(--ag-texto-sec);padding:40px 0}

.modal-fondo{position:fixed;inset:0;background:rgba(11,47,107,.55);display:flex;
  align-items:center;justify-content:center;padding:18px;z-index:60}
.modal-caja{background:#fff;border-radius:14px;max-width:820px;width:100%;
  max-height:88vh;overflow:auto;padding:22px 24px}
.modal-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:8px}
.modal-cab h2{margin:0;font-size:1.15rem;color:var(--ag-azul)}
.modal-cab small{color:var(--ag-texto-sec);font-size:.8rem}
@media(max-width:760px){
  .grilla-lotes{grid-template-columns:1fr}
  .resumen-strip{grid-template-columns:repeat(2,1fr)}
}

/* ================== Cápta diaria ================== */
.grilla-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.grilla-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.campo-ancho{grid-column:span 2}
.tabla-capta{font-size:.82rem}
.tabla-capta th.num,.tabla-capta td.num{text-align:right;white-space:nowrap}
.tabla-capta tbody tr:hover{background:#fbfdf9}
@media(max-width:760px){.campo-ancho{grid-column:span 1}}

/* ================== Servicio de Salud (M2) ================== */
.barra-busqueda{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0}
.barra-busqueda input[type=search]{flex:1;min-width:220px;padding:10px 14px;
  border:1px solid var(--ag-beige);border-radius:8px;font-family:inherit;font-size:.9rem}
.barra-busqueda select{padding:10px 12px;border:1px solid var(--ag-beige);
  border-radius:8px;font-family:inherit;font-size:.88rem;background:#fff}

.lista-puntos{display:flex;flex-direction:column;gap:14px}
.punto-card{background:#fff;border:1px solid var(--ag-beige);border-radius:12px;
  padding:16px 18px;box-shadow:0 2px 10px rgba(11,47,107,.04)}
.pt-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.pt-titulo{display:flex;gap:12px;align-items:flex-start}
.pt-num{flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:var(--ag-azul);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.pt-titulo h3{margin:0 0 2px;font-size:.98rem;color:var(--ag-azul)}
.pt-titulo small{color:var(--ag-texto-sec);font-size:.76rem}
.pt-detalle{margin:10px 0 0;font-size:.87rem;color:var(--ag-texto);line-height:1.45}
.pt-reporte{margin-top:8px;font-size:.83rem;color:var(--ag-texto-sec)}
.pt-reporte summary{cursor:pointer;font-weight:600;color:var(--ag-azul-medio)}
.pt-reporte p{margin:6px 0 0;line-height:1.5}
.pt-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.chip{background:var(--ag-crema);border:1px solid var(--ag-beige);border-radius:20px;
  padding:2px 10px;font-size:.72rem;color:var(--ag-texto-sec)}
.chip-aviso{background:#fff6e0;border-color:#f3ddab;color:#8a5a00}
.pt-docs{margin-top:14px;border-top:1px solid #f4f0e6;padding-top:12px}
.pt-docs h4{margin:0 0 8px;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ag-texto-sec)}
.docs-lista{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.doc-fila{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:#fdfcf8;border:1px solid #f4f0e6;border-radius:8px;padding:8px 12px;font-size:.83rem}
.doc-nombre{flex:1;min-width:160px;font-weight:600;color:var(--ag-texto);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-meta{color:var(--ag-texto-sec);font-size:.74rem}
.doc-subir{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.doc-subir input[type=file]{font-size:.8rem}
.pt-pie{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;
  padding-top:12px;border-top:1px solid #f4f0e6;font-size:.82rem}
.pt-pie label{color:var(--ag-texto-sec);font-weight:600}
.sel-estado{padding:6px 10px;border:1px solid var(--ag-beige);border-radius:7px;
  font-family:inherit;font-size:.82rem;background:#fff}

/* ══════════ PESTAÑAS M1 (réplica del prototipo, paleta nueva) ══════════ */
.tabs-bar{background:var(--ag-azul);position:sticky;top:0;z-index:48;box-shadow:0 2px 10px rgba(11,47,107,.18)}
.tabs-inner{display:flex;gap:2px;overflow-x:auto;padding:0}
.tab-btn{background:transparent;border:none;color:#c9d8ef;padding:12px 18px;
  font-family:inherit;font-size:.86rem;font-weight:600;cursor:pointer;white-space:nowrap;
  border-bottom:3px solid transparent;transition:.15s}
.tab-btn:hover{color:#fff;background:rgba(255,255,255,.08)}
.tab-btn.on{color:#fff;border-bottom-color:var(--ag-amarillo);background:rgba(255,255,255,.12)}
.tab-panel{padding-top:18px}
.hide{display:none !important}

/* tarjetas internas de las pestañas */
.tarjeta{background:var(--ag-blanco);border:1px solid var(--ag-beige);border-radius:14px;
  box-shadow:0 2px 12px rgba(11,47,107,.06);overflow:hidden;margin-bottom:18px}
.tarjeta-cab{border-bottom:1px solid var(--ag-beige);background:var(--ag-header)}
.tarjeta-cab h2{margin:0;padding:14px 18px;font-size:.98rem;color:var(--ag-azul);
  display:flex;align-items:center;gap:9px}
.tarjeta .tag{margin-left:auto;font-size:.72rem;font-weight:600;color:var(--ag-texto-sec);
  background:var(--ag-crema);border:1px solid var(--ag-beige);padding:3px 10px;border-radius:20px}
.subtitulo-cats{font-size:.84rem;font-weight:700;color:var(--ag-azul);
  text-transform:uppercase;letter-spacing:.05em;margin:18px 18px 10px}

/* barra de filtros dentro de tarjeta */
.tarjeta .barra-busqueda{margin:0;padding:13px 18px;border-bottom:1px solid var(--ag-beige)}

/* tabla dentro de tarjeta */
.tarjeta .tabla-wrap{border:none;border-radius:0}
.tarjeta .vacio{padding:34px;text-align:center;color:var(--ag-texto-sec);font-size:.9rem}

/* barra de resumen (KPIs) */
.resumen-strip{display:flex;flex-wrap:wrap;gap:1px;background:var(--ag-beige);margin:18px}
.resumen-strip .rs-item{flex:1;min-width:140px;background:var(--ag-crema);padding:14px 16px}
.resumen-strip .rs-label{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--ag-texto-sec);margin-bottom:4px}
.resumen-strip strong{font-size:1.35rem;color:var(--ag-azul)}

/* gráfico de barras */
.grafico-barras{display:flex;align-items:flex-end;gap:6px;height:180px;padding:0 18px 18px;
  overflow-x:auto}
.barra-dia{flex:1;min-width:26px;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;height:100%;position:relative}
.bd-fill{width:100%;background:linear-gradient(180deg,var(--ag-verde-claro),var(--ag-verde));
  border-radius:6px 6px 0 0;min-height:2px;transition:.3s}
.bd-label{font-size:.62rem;color:var(--ag-texto-sec);margin-top:5px;font-weight:600}

/* mini barra en tablas */
.mini-bar{background:var(--ag-beige);border-radius:20px;height:8px;overflow:hidden;min-width:90px}
.mini-bar > div{background:var(--ag-verde-claro);height:100%;border-radius:20px}

/* toast */
.toast{position:fixed;bottom:22px;right:22px;background:var(--ag-azul);color:#fff;
  padding:13px 20px;border-radius:10px;font-size:.86rem;font-weight:600;
  box-shadow:0 8px 30px rgba(11,47,107,.35);z-index:100;opacity:0;
  transition:.25s;transform:translateY(12px);pointer-events:none}
.toast.on{opacity:1;transform:none}
.toast.err{background:#a3271c}

@media(max-width:640px){
  .tab-btn{padding:11px 13px;font-size:.8rem}
  .resumen-strip .rs-item{min-width:120px}
}

/* ══════════ LANDING INICIO (réplica del prototipo, paleta nueva) ══════════ */
.ini-wrap{max-width:1120px;margin:0 auto;padding:20px}
.ini-hd{background:var(--ag-azul);border-radius:16px 16px 0 0;padding:16px 26px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.ini-brand{display:flex;align-items:center;gap:14px;min-width:0}
.ini-brand img{height:44px;width:auto;display:block;border-radius:6px;background:#fff;padding:3px 6px}
.ini-brand strong{color:#fff;font-size:1rem;display:block;line-height:1.25}
.ini-brand small{color:#a9c2e0;font-size:.75rem;font-weight:400}
.ini-user{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ini-user .perfil-chip{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18)}
.ini-user .perfil-chip .pc-label{color:#a9c2e0}
.ini-user .perfil-chip strong{color:#fff}
.ini-user .perfil-chip small{color:#c9d8ef}
.ini-user .pc-cambiar{color:var(--ag-amarillo);border-color:rgba(255,197,47,.4)}
.ini-nombre{color:#c9d8ef;font-size:.82rem}
.ini-salir{background:rgba(255,255,255,.12);color:#fff;border:none;padding:9px 15px;
  border-radius:9px;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.ini-salir:hover{background:rgba(255,255,255,.22)}

.ini-bd{background:#fff;border-radius:0 0 16px 16px;padding:26px;
  box-shadow:0 10px 34px rgba(11,47,107,.08)}
.ini-bd h2{font-size:1.2rem;font-weight:700;color:var(--ag-azul);margin:0 0 6px}
.ini-sub{color:var(--ag-texto-sec);font-size:.88rem;margin:0 0 24px}

.ini-mod{border:1.5px solid var(--ag-beige);border-radius:16px;margin-bottom:20px;
  overflow:hidden;background:#fdfbf7}
.ini-mod > .ini-mh{display:flex;align-items:center;gap:14px;padding:18px 22px;
  background:linear-gradient(120deg,var(--ag-crema),#fdfbf7);
  border-bottom:1px solid var(--ag-beige);flex-wrap:wrap}
.ini-mod > .ini-mh .ini-n{width:38px;height:38px;border-radius:10px;background:var(--ag-azul);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;
  font-size:1.05rem;flex:0 0 auto}
.ini-mod > .ini-mh .ini-t{flex:1;min-width:160px}
.ini-mod > .ini-mh .ini-t b{font-size:1.03rem;color:var(--ag-azul);display:block}
.ini-mod > .ini-mh .ini-t small{font-size:.78rem;color:var(--ag-texto-sec)}
.ini-tag{font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:4px 10px;
  border-radius:20px;text-transform:uppercase}
.ini-tag.ok{background:#e7f4e3;color:var(--ag-verde)}

.ini-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  gap:12px;padding:16px 22px 20px}
.ini-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;
  border:1.5px solid var(--ag-beige);background:#fff;text-decoration:none;color:inherit;
  transition:.15s}
.ini-item:hover{border-color:var(--ag-verde-claro);box-shadow:0 8px 18px rgba(47,107,47,.12);
  transform:translateY(-2px)}
.ini-ic{font-size:1.4rem;flex:0 0 auto}
.ini-tx{flex:1;min-width:0}
.ini-tx b{font-size:.88rem;font-weight:700;display:block;color:var(--ag-texto)}
.ini-tx small{font-size:.72rem;color:var(--ag-texto-sec)}
.ini-go{font-size:.75rem;color:var(--ag-verde);font-weight:700;flex:0 0 auto}
.ini-item.soon{border-style:dashed;background:#faf9f6;cursor:default;opacity:.85}
.ini-item.soon:hover{transform:none;border-color:var(--ag-beige);box-shadow:none}
.ini-item.soon .ini-tx b{color:#8b8f88}
.ini-chip{font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:3px 8px;
  border-radius:20px;background:var(--ag-crema);color:var(--ag-dorado);
  border:1px solid var(--ag-beige);flex:0 0 auto;text-transform:uppercase}

.ini-mod.solo > .ini-mh{border-bottom:none}
.ini-desc{padding:0 22px 20px;font-size:.84rem;color:var(--ag-texto-sec);line-height:1.55}
.ini-desc a{color:var(--ag-verde);font-weight:700;text-decoration:none;margin-left:4px}
.ini-desc a:hover{text-decoration:underline}
.ini-sin{color:var(--ag-dorado);font-weight:600}

/* módulo extra (usuarios) — se distingue del resto */
.ini-mod.extra{border-color:#d8e3f2;background:#fafcff}
.ini-mod.extra > .ini-mh{background:linear-gradient(120deg,#eef4fc,#fafcff);
  border-bottom-color:#d8e3f2}
.ini-mod.extra > .ini-mh .ini-n{background:var(--ag-azul-medio)}

.ini-pie{text-align:center;padding:16px 10px 4px;font-size:.75rem;color:var(--ag-texto-sec)}
.ini-pie a{color:var(--ag-verde);text-decoration:none}
.ini-pie .ver{color:#a8ada6;margin-left:6px}

@media(max-width:640px){
  .ini-wrap{padding:12px}
  .ini-bd{padding:18px}
  .ini-items{grid-template-columns:1fr;gap:10px;padding:14px 16px 18px}
  .ini-mod > .ini-mh{padding:16px}
  .ini-bd h2{font-size:1.08rem}
  .ini-user{gap:8px}
  .ini-nombre{display:none}
}

/* ══════════ botón volver al inicio (header de módulos) ══════════ */
.btn-inicio{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);
  padding:7px 13px;border-radius:9px;font-family:inherit;font-size:.78rem;font-weight:600;
  text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;
  transition:.15s;flex:0 0 auto}
.btn-inicio:hover{background:rgba(255,255,255,.26);border-color:rgba(255,255,255,.4)}

/* ══════════ gap contra tabla Hy-Line ══════════ */
.gap{font-weight:700;font-size:.78rem;white-space:nowrap}
.gap-ok{color:#1f7a3d}
.gap-bajo{color:#c0392b}

/* ══════════ TABLERO (hoja "Resumen" del Excel) ══════════ */
.tabla-tablero{font-size:.76rem}
.tabla-tablero th,.tabla-tablero td{padding:6px 9px;white-space:nowrap}
.tabla-tablero .tb-sem{position:sticky;left:0;background:#fff;font-weight:600;
  font-size:.74rem;color:#0B2F6B;z-index:1}
.tabla-tablero th.tb-sem{background:#f3f6fa;z-index:2}
.tabla-tablero .tb-lote{text-align:center;font-size:.72rem;letter-spacing:.2px}
.tabla-tablero .tb-num{text-align:right;font-variant-numeric:tabular-nums}
.tabla-tablero .tb-vacio{text-align:center;color:#c4ccd6}
.tabla-tablero .tb-opt{background:#FFF8EC;color:#7a5a00}
.tabla-tablero tbody tr:hover{background:#f7fafc}

/* ══════════ GRAFICAS SVG del tablero ══════════ */
.graf-wrap{background:#fff;border:1px solid #e6ecf3;border-radius:12px;padding:10px 12px 6px;margin-bottom:6px}
.graf-svg{width:100%;height:auto;display:block}
.gc-txt{font-family:inherit;font-size:10px;fill:#8b98a8}
.gc-tit{font-family:inherit;font-size:10.5px;fill:#8b98a8;font-weight:600}
.gc-val{font-family:inherit;font-size:11px;font-weight:700}
.gc-lote{font-family:inherit;font-size:10px;fill:#54626f}
.lg{display:flex;flex-wrap:wrap;gap:10px 16px;padding:8px 4px 6px;border-top:1px solid #f0f4f8;margin-top:6px}
.lg-item{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;color:#43505c;font-weight:600}
.lg-item i{width:16px;height:3px;border-radius:2px;display:inline-block}
.tb-det{margin-top:8px}
.tb-det summary{cursor:pointer;font-weight:700;font-size:.82rem;color:#0B2F6B;
  padding:9px 12px;background:#f3f6fa;border-radius:9px;list-style:none}
.tb-det summary::-webkit-details-marker{display:none}
.tb-det summary::before{content:"▸ ";display:inline-block;transition:.15s}
.tb-det[open] summary::before{content:"▾ "}
.tb-det[open] summary{margin-bottom:10px}
.gc-etq{font-family:inherit;font-size:8.6px;font-weight:800;letter-spacing:.2px;
  paint-order:stroke;stroke:#fff;stroke-width:2.6px;stroke-linejoin:round}

/* tooltip de punto en el grafico de lineas */
.graf-svg .tt{opacity:0;transition:opacity .12s}
.graf-svg .tt-lote{font-family:inherit;font-size:9.5px;font-weight:800}
.graf-svg .tt-val{font-family:inherit;font-size:11px;font-weight:700}
.graf-svg .tt-sub{font-family:inherit;font-size:9px}
.graf-svg .pt:hover .tt{opacity:1}
.graf-svg .pt:hover circle:nth-child(2){stroke-width:3.4}

/* ══════════ M2 · KPI cards + filtros (estilo prototipo) ══════════ */
.kpis-pdc{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:11px;margin-bottom:10px}
.kpi-pdc{border:1.5px solid #d0dcea;border-radius:13px;padding:13px 15px;background:#fbfdff}
.kpi-pdc .n{font-size:25px;font-weight:700;line-height:1.1;color:#0B2F6B}
.kpi-pdc .l{font-size:11px;color:#5a7a9a;text-transform:uppercase;letter-spacing:.5px;margin-top:3px;font-weight:700}
.kpi-pdc.c .n{color:#2F6B2F} .kpi-pdc.p .n{color:#8a5a00}
.kpi-pdc.x .n{color:#a3271c} .kpi-pdc.d .n{color:#0B6B8A}
.kpi-pdc.a .n{color:#0B2F6B}
.barra-pdc{height:9px;background:#e8eef6;border-radius:20px;overflow:hidden;margin-top:8px}
.barra-pdc > i{display:block;height:100%;border-radius:20px;
  background:linear-gradient(90deg,#0B2F6B,#2F6B2F);transition:width .4s}
.kpi-costo{font-size:.82rem;color:#5a7a9a;margin:0 0 18px}
.kpi-costo strong{color:#0B2F6B}

.filtros-pdc{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}
.filtros-pdc .f-btn{border:1.5px solid #d0dcea;background:#fff;padding:8px 13px;border-radius:9px;
  font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer;color:#5a7a9a;transition:.15s}
.filtros-pdc .f-btn:hover{border-color:#0B2F6B;color:#0B2F6B}
.filtros-pdc .f-btn.on{background:#0B2F6B;color:#fff;border-color:#0B2F6B}

/* ══════════ M2 · tarjeta acordeón ══════════ */
.pdc-punto{border:1.5px solid #d0dcea;border-radius:14px;margin-bottom:12px;
  background:#fbfdff;overflow:hidden;transition:.15s}
.pdc-punto:hover{border-color:#b9cfe4}
.pdc-punto.abierto{border-color:#0B2F6B;box-shadow:0 4px 16px rgba(11,47,107,.09)}
.pdc-cab{display:flex;gap:13px;padding:15px 17px;cursor:pointer;align-items:flex-start;
  width:100%;border:none;background:none;text-align:left;font-family:inherit}
.pdc-num{width:37px;height:37px;flex:0 0 auto;border-radius:10px;background:#0B2F6B;color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
.pdc-info{flex:1;min-width:0;display:block}
.pdc-info b{font-size:.92rem;display:block;margin-bottom:3px;color:#1a2a3a}
.pdc-det{font-size:.79rem;color:#5a7a9a;line-height:1.45;display:block;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pdc-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:0 0 auto}
.pdc-tag{font-size:.64rem;font-weight:800;letter-spacing:.4px;padding:4px 9px;border-radius:20px;
  text-transform:uppercase;white-space:nowrap}
.pdc-tag.ok{background:#e6f6ec;color:#1f8a4c}
.pdc-tag.proc{background:#fdf5e2;color:#b8860b}
.pdc-tag.pend{background:#eef1f5;color:#8a94a6}
.pdc-tag.tipo{background:#e8f4fd;color:#0077b6}
.pdc-doc{font-size:.7rem;font-weight:800;color:#0077b6;background:#e8f4fd;padding:4px 9px;border-radius:20px;white-space:nowrap}
.pdc-chev{color:#8a94a6;font-size:.8rem;transition:.2s;display:inline-block}
.pdc-punto.abierto .pdc-chev{transform:rotate(90deg)}

.pdc-cuerpo{display:none;padding:2px 18px 16px;border-top:1px solid #eef2f7}
.pdc-punto.abierto .pdc-cuerpo{display:block}
.pdc-campo{margin-top:13px}
.pdc-campo .lbl{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;
  color:#8a94a6;margin-bottom:5px}
.pdc-campo .val{font-size:.83rem;color:#31404e;line-height:1.5}
.pdc-campo .val.destacado{background:#FFF8EC;border-left:3px solid #FFC52F;
  padding:9px 12px;border-radius:0 8px 8px 0}
.pdc-tags{display:flex;gap:6px;flex-wrap:wrap}
.pdc-estado{display:flex;gap:9px;align-items:center;flex-wrap:wrap;
  margin-top:14px;padding-top:13px;border-top:1px dashed #d0dcea}
.pdc-estado select{padding:7px 10px;border:1.5px solid #d0dcea;border-radius:9px;
  font-family:inherit;font-size:.79rem;background:#fff}

/* ══════════ M3 · barra de participación ══════════ */
.bar-part{position:relative;display:flex;align-items:center;gap:7px}
.bar-part > i{display:block;height:8px;border-radius:20px;min-width:2px;
  background:linear-gradient(90deg,#0B2F6B,#2F6B2F)}
.bar-part > b{font-size:.68rem;color:#5a7a9a;font-weight:700;white-space:nowrap}
.campo-ayuda{display:block;font-size:.68rem;color:#8a94a6;margin-top:4px;line-height:1.35}

/* ================== Color/Blanco + consumo estimado (04-nov-2026) ================== */
.pastilla-blanco{background:#eef4fb;color:var(--ag-azul);border:1px solid #d3e0f4}
.pastilla-color{background:#fdf3e0;color:#8a5a00;border:1px solid #f3ddab}
/* El consumo estimado se marca distinto para no confundirlo con el real. */
.est-aprox{color:var(--ag-texto-sec);font-style:italic}

/* ================== Formulario de lote: regla del codigo (04-nov-2026) ================== */
.ayuda{display:block;margin-top:4px;font-size:.72rem;color:var(--ag-texto-sec);line-height:1.35}
.ayuda b{color:var(--ag-azul)}
.ayuda.aviso-discrepancia{color:#8a5a00;font-weight:600}
.error-campo{display:block;margin-top:4px;font-size:.74rem;color:#a3271c;font-weight:600;
  line-height:1.35;min-height:0}
.error-campo:empty{display:none}
input.inp-error{border-color:#a3271c !important;background:#fff6f5}
input.inp-error:focus{outline:2px solid #e8b4ae;outline-offset:1px}

/* ================== Registro Diario en 2 columnas (04-nov-2026) ================== */
/* Pedido de Santiago: izquierda la produccion por categoria, derecha la
   operativa (mortalidad + consumo + peso + observacion). En pantallas chicas
   se apila en una sola columna. */
.registro-2col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);
  gap:0;padding:0 18px}
.registro-2col > div{padding:14px 0}
.registro-2col .col-produccion{padding-right:22px;border-right:1px solid var(--ag-beige)}
.registro-2col .col-operativa{padding-left:22px}
@media(max-width:900px){
  .registro-2col{grid-template-columns:1fr}
  .registro-2col .col-produccion{padding-right:0;border-right:0;
    border-bottom:1px solid var(--ag-beige);padding-bottom:18px}
  .registro-2col .col-operativa{padding-left:0;padding-top:18px}
}
.subtitulo-cats{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ag-texto-sec);font-weight:700;margin:0 0 12px}
.total-dia{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;margin-top:14px;padding:12px 16px;background:var(--ag-crema);
  border:1px solid var(--ag-beige);border-radius:10px}
.total-dia .et{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ag-texto-sec);font-weight:700}
.total-dia strong{font-size:1.35rem;color:var(--ag-azul);font-variant-numeric:tabular-nums}
.bloque-peso{margin-top:16px;padding:14px 16px;background:#fbfdf9;
  border:1px dashed var(--ag-beige);border-radius:10px}
.bloque-peso h4{margin:0 0 10px;font-size:.78rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--ag-verde);font-weight:700}
.bloque-peso .campo{margin-bottom:0}

/* ================== Reporte multi-lote (04-nov-2026) ================== */
/* Total del rango dividido en Blanco / Color, con barra proporcional. */
.split-tipo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 18px 14px}
@media(max-width:700px){.split-tipo{grid-template-columns:1fr}}
.st-caja{display:flex;flex-direction:column;gap:2px;padding:14px 16px;
  border-radius:10px;border:1px solid var(--ag-beige);background:#fff}
.st-caja .st-et{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;
  font-weight:700;color:var(--ag-texto-sec)}
.st-caja strong{font-size:1.5rem;font-variant-numeric:tabular-nums;line-height:1.15}
.st-caja .st-pct{font-size:.76rem;color:var(--ag-texto-sec)}
.st-blanco{background:#f7fafd;border-color:#d3e0f4}
.st-blanco strong{color:var(--ag-azul)}
.st-color{background:#fdf9f2;border-color:#f3ddab}
.st-color strong{color:#8a5a00}

.barra-tipo{display:flex;height:12px;border-radius:999px;overflow:hidden;
  margin:0 18px 6px;background:var(--ag-crema);border:1px solid var(--ag-beige)}
.barra-tipo .bt-blanco{background:var(--ag-azul-medio)}
.barra-tipo .bt-color{background:var(--ag-dorado)}

.resumen-total{background:var(--ag-crema);border:1px solid var(--ag-beige);
  border-radius:10px;margin:0 18px 16px}
.tarjeta.sec-lote{margin:0 18px 16px;border:1px solid var(--ag-beige)}
.tarjeta.sec-lote .tarjeta-cab{align-items:center;gap:10px}
.sec-tot{font-size:.86rem;color:var(--ag-texto-sec);white-space:nowrap}
.sec-tot strong{font-size:1.05rem;color:var(--ag-azul);font-variant-numeric:tabular-nums}
.ver-detalle{cursor:pointer;font-size:.8rem;font-weight:700;color:var(--ag-verde);
  padding:6px 18px 10px;display:block;user-select:none}
.ver-detalle:hover{text-decoration:underline}
.sel-multi{min-width:210px;max-width:260px}
.sel-multi option{padding:3px 6px}

/* ============ Ubicaciones del lote (varias a la vez) ============ */
/* Moncho 04-nov-2026: un lote puede estar repartido en 2 galpones/filas. */
.campo-ancho{grid-column:1/-1}
.lista-ubic{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px;min-height:26px}
.ubic-linea{display:inline-flex;align-items:center;gap:6px}
.ubic-linea .chip{white-space:normal}
.btn-quitar{border:1px solid var(--ag-beige);background:#fff;color:#B03A2E;
  width:22px;height:22px;border-radius:6px;cursor:pointer;font-size:.72rem;
  line-height:1;display:inline-flex;align-items:center;justify-content:center}
.btn-quitar:hover{background:#fdecea;border-color:#f0b8b1}
.fila-agregar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fila-agregar select,.fila-agregar input{min-width:130px}
.fila-agregar input{flex:1;max-width:220px}
.vacio-mini{font-size:.8rem;color:var(--ag-texto-sec);font-style:italic}
.chip-sin{background:#f4f4f2;color:#8a8a84;font-style:italic}
.celda-ubic .chip{white-space:normal;display:inline-block;margin:1px 2px 1px 0}
