:root{--azul:#12375d;--verde:#0b7d68;--gris:#f2f5f8;--texto:#17212b;--rojo:#a72a2a;--ambar:#a66500}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(135deg,#edf3f8,#fff);color:var(--texto)}
a{color:var(--azul);text-decoration:none}.top{background:var(--azul);color:white;padding:14px 22px;display:flex;justify-content:space-between;align-items:center}.top a{color:white;margin-left:14px}.wrap{max-width:1200px;margin:28px auto;padding:0 16px}.card{background:white;border-radius:18px;padding:22px;box-shadow:0 12px 35px rgba(0,0,0,.08);margin-bottom:20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{margin-bottom:14px}label{display:block;font-weight:700;margin-bottom:6px}input,select{width:100%;padding:12px;border:1px solid #cfd8e3;border-radius:10px;font-size:15px;background:white}.btn{display:inline-block;border:0;background:var(--azul);color:white!important;padding:12px 18px;border-radius:10px;font-weight:700;cursor:pointer}.btn.verde{background:var(--verde)}.btn.gris{background:#53606b}.btn.warning{background:var(--ambar)}.btn.danger{background:var(--rojo)}.btn.mini{padding:8px 10px;border-radius:8px;font-size:13px;margin:2px}.alert{padding:12px;border-radius:10px;background:#fff1f1;color:#8a1f1f;margin-bottom:14px}.ok{padding:12px;border-radius:10px;background:#ecfff7;color:#07543e;margin-bottom:14px}.tabla{width:100%;border-collapse:collapse}.tabla th,.tabla td{border-bottom:1px solid #e5eaf0;padding:10px;text-align:left;vertical-align:middle}.table-wrap{overflow-x:auto}.login{max-width:520px;margin:70px auto}.login-logo{text-align:center}.login-logo img{width:160px;max-height:160px;object-fit:contain}.acciones{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.acciones-tabla{white-space:nowrap}.ayuda{color:#52616f}small{display:block;color:#64748b;margin-top:6px}
.credencial-contenedor{display:grid;gap:22px}.credencial{width:100%;max-width:1060px;min-height:565px;margin:auto;background:white;border-radius:24px;overflow:hidden;border:1px solid #d6dfe8;box-shadow:0 14px 36px rgba(0,0,0,.12);position:relative}.franja{height:88px;background:linear-gradient(90deg,var(--azul),#1a4a78);color:white;display:flex;align-items:center;justify-content:space-between;padding:10px 24px}.franja .titulo{font-size:26px;font-weight:900;letter-spacing:.5px}.subtitulo{font-size:15px;margin-top:4px;opacity:.95}.logos{display:flex;align-items:center;gap:14px}.logos img{height:64px;max-width:106px;object-fit:contain;background:white;border-radius:10px;padding:4px}.contenido{display:grid;grid-template-columns:250px 1fr 245px;gap:28px;padding:26px}.foto{width:240px;height:300px;border-radius:18px;object-fit:cover;border:5px solid #e8eef5;background:#f5f5f5}.datos h1{margin:0;color:var(--azul);font-size:31px;text-transform:uppercase;line-height:1.08}.dato{margin-top:12px;font-size:18px}.dato b{color:var(--azul)}.programa{display:inline-block;margin-top:14px;background:#eaf6f3;color:#07543e;padding:10px 14px;border-radius:999px;font-weight:800}.qrbox{text-align:center}.qrbox img{width:220px;height:220px;background:white;padding:8px;border:1px solid #d6dfe8;border-radius:12px}.qrbox .estado{position:static;display:inline-block;margin:10px auto 8px;background:#eaf6f3;color:#07543e;font-weight:900;padding:8px 16px;border-radius:999px}.qrbox .estado.no-vigente{background:#fff0f0!important;color:#9a1c1c!important}.folio{font-size:13px;color:#52616f;line-height:1.25}.pie{position:absolute;left:0;right:0;bottom:0;background:#f4f7fa;border-top:1px solid #dce4ec;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.sello{font-weight:800;color:var(--verde)}
.reverso{padding-bottom:20px}.leyenda{padding:28px 38px;font-size:18px;line-height:1.55;text-align:justify}.firmas{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:10px 58px 25px}.firma{text-align:center}.firma img{height:75px;max-width:260px;object-fit:contain}.linea{border-top:1px solid #333;margin:0 auto 8px;max-width:320px}.firma b{color:var(--azul)}.marcaagua{position:absolute;right:24px;bottom:32px;opacity:.06;width:330px}.no-vigente{background:#fff0f0!important;color:#9a1c1c!important}
@media(max-width:900px){.grid,.contenido,.firmas{grid-template-columns:1fr}.credencial{min-height:auto}.pie{position:static}.foto{width:100%;height:300px}.qrbox{text-align:left}.franja{height:auto;display:block}.logos{margin-top:10px}.contenido{padding-bottom:12px}.datos h1{font-size:24px}}
@page{size:letter landscape;margin:0}
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  html,body{width:11in;height:8.5in;background:white!important;margin:0!important;padding:0!important}
  .top,.acciones,.no-print{display:none!important}
  .wrap,.credencial-wrap{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
  .card{box-shadow:none!important;padding:0!important;margin:0!important}
  .credencial-contenedor{display:block!important;width:100%!important;margin:0!important;padding:0!important;gap:0!important}
  .credencial{width:10.45in!important;height:7.65in!important;min-height:0!important;max-width:none!important;margin:.22in auto!important;box-shadow:none!important;page-break-after:always!important;break-after:page!important;page-break-inside:avoid!important;break-inside:avoid!important;border-radius:.16in!important;overflow:hidden!important}
  .credencial:last-child{page-break-after:auto!important;break-after:auto!important}
  .franja{height:.78in!important;padding:.08in .22in!important;background:#12375d!important;color:#fff!important}
  .franja .titulo{font-size:22pt!important}.subtitulo{font-size:12pt!important}
  .logos img{height:.54in!important;max-width:.95in!important}
  .contenido{grid-template-columns:2.25in 1fr 2.35in!important;gap:.22in!important;padding:.22in!important}
  .foto{width:2.1in!important;height:2.65in!important;border-width:.04in!important}
  .datos h1{font-size:24pt!important}.dato{font-size:14pt!important;margin-top:.08in!important}.programa{font-size:12pt!important;padding:.07in .12in!important;margin-top:.1in!important}
  .qrbox img{width:2.05in!important;height:2.05in!important;padding:.08in!important}
  .qrbox .estado{font-size:12pt!important;margin:.08in auto .04in!important;padding:.06in .13in!important}
  .folio{font-size:10pt!important}
  .leyenda{padding:.48in .42in .15in!important;font-size:15pt!important;line-height:1.45!important}
  .firmas{padding:.1in .65in .18in!important;gap:.7in!important}
  .firma img{height:.65in!important;max-width:2.25in!important}
  .linea{max-width:3in!important}.firma{font-size:11pt!important}
  .pie{position:absolute!important;bottom:0!important;font-size:10pt!important;padding:.1in .22in!important}
  .marcaagua{width:3.1in!important;right:.35in!important;bottom:.4in!important}
}

/* Selector de vigencia compatible con Safari */
.vigencia-selects{display:grid;grid-template-columns:1.4fr .8fr;gap:10px;align-items:center;background:#f8fafc;border:1px solid #d6e0ea;border-radius:14px;padding:10px}
.vigencia-selects select{border:1px solid #cfd8e3;background:white;border-radius:10px;font-weight:700;color:#17212b}
.vigencia-field small{margin-left:4px}
@media(max-width:620px){.vigencia-selects{grid-template-columns:1fr}}

/* Ajuste fino para impresión en Carta horizontal: una cara por página */
@media print{
  @page{size:letter landscape;margin:0}
  html,body{width:11in!important;height:8.5in!important;overflow:visible!important;background:white!important}
  .credencial{width:9.85in!important;height:6.55in!important;margin:.18in auto!important;border-radius:.14in!important;page-break-after:always!important;break-after:page!important;page-break-inside:avoid!important;break-inside:avoid!important;overflow:hidden!important}
  .franja{height:.72in!important;padding:.07in .20in!important}
  .franja .titulo{font-size:20pt!important}.subtitulo{font-size:11pt!important}.logos img{height:.48in!important;max-width:.88in!important}
  .contenido{grid-template-columns:2.05in 1fr 2.1in!important;gap:.20in!important;padding:.20in!important}
  .foto{width:1.92in!important;height:2.42in!important;border-width:.035in!important}
  .datos h1{font-size:22pt!important}.dato{font-size:12.8pt!important;margin-top:.065in!important}.programa{font-size:11.2pt!important;padding:.055in .10in!important;margin-top:.08in!important}
  .qrbox img{width:1.75in!important;height:1.75in!important;padding:.06in!important}
  .qrbox .estado{font-size:11pt!important;margin:.06in auto .03in!important;padding:.05in .12in!important}.folio{font-size:9.5pt!important}
  .leyenda{padding:.38in .40in .10in!important;font-size:13.6pt!important;line-height:1.38!important}
  .firmas{padding:.06in .55in .12in!important;gap:.55in!important}.firma img{height:.56in!important;max-width:2in!important}.firma{font-size:10pt!important}.linea{max-width:2.7in!important}
  .pie{font-size:9.2pt!important;padding:.08in .20in!important}.marcaagua{width:2.65in!important;right:.35in!important;bottom:.35in!important}
}

.opcional{font-weight:400;color:#65758b;font-size:13px}.dato.correo{font-size:15px;word-break:break-all}.grupo-field{display:block}

/* ===============================
   VALIDACIÓN PÚBLICA OFICIAL V11
   =============================== */
.validacion-body{
    background:linear-gradient(135deg,#eef5f8,#ffffff);
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:#17212b;
}
.validacion-page{
    max-width:1180px;
    margin:28px auto;
    padding:0 18px;
}
.validacion-header{
    background:linear-gradient(120deg,#12375d,#0b7d68);
    color:#fff;
    border-radius:24px 24px 0 0;
    padding:34px 38px;
    display:flex;
    gap:28px;
    align-items:center;
    box-shadow:0 16px 36px rgba(0,0,0,.12);
}
.validacion-logo-box{
    background:#fff;
    border-radius:22px;
    padding:14px;
    width:130px;
    height:130px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}
.validacion-logo-box img{
    max-width:105px;
    max-height:105px;
    object-fit:contain;
}
.validacion-header-text h1{
    margin:0 0 10px;
    font-size:40px;
    line-height:1.1;
    letter-spacing:.3px;
}
.validacion-header-text p{
    margin:0 0 16px;
    font-size:22px;
    opacity:.96;
}
.validacion-header-text span{
    display:inline-block;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(255,255,255,.14);
    padding:9px 26px;
    border-radius:999px;
    font-weight:800;
    font-size:18px;
}
.validacion-barra{
    background:#138366;
    color:#fff;
    padding:18px 38px;
    font-size:20px;
    font-weight:800;
    letter-spacing:.2px;
}
.validacion-card{
    background:#fff;
    border-radius:0 0 24px 24px;
    padding:36px 38px;
    box-shadow:0 16px 36px rgba(0,0,0,.10);
}
.validacion-alerta{
    border-radius:18px;
    padding:22px 26px;
    margin-bottom:28px;
}
.validacion-alerta h2{
    margin:0 0 6px;
    font-size:26px;
}
.validacion-alerta p{
    margin:0;
    font-size:16px;
}
.validacion-alerta.vigente{
    background:#e9fbf4;
    color:#07543e;
    border:1px solid #bfeedd;
}
.validacion-alerta.novigente,
.validacion-alerta.error{
    background:#fff1f1;
    color:#8a1f1f;
    border:1px solid #ffd0d0;
}
.validacion-datos{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:36px;
    align-items:center;
}
.validacion-foto{
    width:250px;
    height:310px;
    object-fit:cover;
    border-radius:20px;
    border:7px solid #eef3f7;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.validacion-info h2{
    color:#12375d;
    font-size:38px;
    margin:0 0 22px;
    line-height:1.1;
}
.validacion-grid-info{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 28px;
    font-size:18px;
}
.validacion-grid-info p{
    margin:0;
    padding:12px 0;
    border-bottom:1px solid #e4ebf1;
}
.validacion-grid-info b{
    color:#12375d;
}
.validacion-footer{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:16px 6px;
    color:#53606b;
    font-size:14px;
}
@media(max-width:760px){
    .validacion-header{display:block;text-align:center;padding:26px 20px}
    .validacion-logo-box{margin:0 auto 18px;width:112px;height:112px}
    .validacion-header-text h1{font-size:28px}
    .validacion-header-text p{font-size:17px}
    .validacion-barra{font-size:16px;padding:16px 20px;text-align:center}
    .validacion-card{padding:24px 20px}
    .validacion-datos{grid-template-columns:1fr;text-align:center}
    .validacion-foto{width:220px;height:270px}
    .validacion-info h2{font-size:28px}
    .validacion-grid-info{grid-template-columns:1fr;text-align:left;font-size:16px}
    .validacion-footer{display:block;text-align:center}
    .validacion-footer span{display:block;margin:6px 0}
}

/* ===============================
   VISTA PÚBLICA PARA WHATSAPP V12
   =============================== */
.publica-body{background:linear-gradient(135deg,#edf3f8,#ffffff);}
.publica-top{max-width:1100px;margin:24px auto 0;padding:18px 22px;background:white;border-radius:18px;box-shadow:0 12px 35px rgba(0,0,0,.08);display:flex;justify-content:space-between;align-items:center;gap:16px}
.publica-top b{color:var(--azul);font-size:20px}.publica-top span{color:#52616f}.publica-wrap{margin-top:18px}
@media(max-width:700px){.publica-top{display:block}.publica-top .btn{margin-top:14px;width:100%;text-align:center}}
@media print{.publica-top{display:none!important}}
