:root{--azul:#073b78;--verde:#0a7a63;--gris:#f3f6f9;--txt:#17202a}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--gris);color:var(--txt)}aside{position:fixed;left:0;top:0;bottom:0;width:260px;background:linear-gradient(180deg,var(--azul),#05284f);color:white;padding:18px}main{margin-left:260px;padding:24px}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.brand img{width:58px;height:58px;object-fit:contain;background:white;border-radius:12px;padding:5px}.brand small{display:block;color:#d7e5f7}nav a{display:block;color:white;text-decoration:none;padding:11px 12px;border-radius:10px;margin:4px 0}nav a:hover{background:rgba(255,255,255,.13)}.top{height:54px;background:white;border-radius:16px;padding:16px 20px;margin-bottom:20px;display:flex;justify-content:space-between;box-shadow:0 4px 20px rgba(0,0,0,.06)}.pill{background:#e8f5f1;color:var(--verde);padding:4px 10px;border-radius:999px;font-size:13px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.card{background:white;border-radius:18px;padding:20px;box-shadow:0 4px 20px rgba(0,0,0,.06);margin-bottom:18px}.card h2,.card h3{margin-top:0}.kpi{font-size:34px;font-weight:bold;color:var(--azul)}table{width:100%;border-collapse:collapse;background:white;border-radius:14px;overflow:hidden}th,td{padding:10px;border-bottom:1px solid #e6ecf2;text-align:left}th{background:#eef4fb;color:#123}input,select,textarea{width:100%;padding:10px;border:1px solid #cfd8e3;border-radius:10px;margin:5px 0 12px}.btn,button{display:inline-block;background:var(--azul);color:white;border:0;border-radius:10px;padding:10px 14px;text-decoration:none;cursor:pointer}.btn.secondary{background:var(--verde)}.btn.light{background:#e8eef5;color:#123}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#073b78,#0a7a63)}.loginbox{width:380px;background:white;border-radius:22px;padding:28px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.25)}.loginbox img{width:90px}.notice{padding:12px;border-radius:10px;background:#fff3cd;color:#664d03}.ok{background:#d1e7dd;color:#0f5132}.danger{background:#f8d7da;color:#842029}@media(max-width:800px){aside{position:static;width:100%}main{margin-left:0}}
@media print{aside,.top,.noprint{display:none}main{margin:0;padding:0}.card{box-shadow:none}.boleta{font-family:Times New Roman,serif}.boleta table{font-size:12px}.boleta th,.boleta td{border:1px solid #333}}
.muted{color:#64748b;font-size:.9rem}.credencial{background:#fff;border-radius:18px;overflow:hidden;border:1px solid #d8e2ec;box-shadow:0 8px 28px rgba(15,23,42,.08);max-width:1100px}.cred-head{background:#153f68;color:white;padding:24px 32px;display:flex;justify-content:space-between;align-items:center}.cred-head h2{margin:0;font-size:28px}.cred-head p{margin:6px 0 0}.cred-head img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:12px;margin-left:12px}.cred-body{display:grid;grid-template-columns:260px 1fr 220px;gap:28px;padding:32px}.foto{width:230px;height:290px;object-fit:cover;border:8px solid #edf2f7;border-radius:18px}.foto.empty{display:flex;align-items:center;justify-content:center;background:#f1f5f9;color:#64748b}.qrbox{border:2px solid #dbe5ef;border-radius:18px;min-height:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-weight:800;color:#153f68;text-align:center;padding:16px}code{background:#eef2f7;padding:6px 8px;border-radius:6px}.danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}
@media(max-width:900px){.cred-body{grid-template-columns:1fr}.cred-head{display:block}.cred-head img{margin-top:12px}}
/* Credencial v1.2 */
.cred-wrap{max-width:1240px;margin:auto}.cred-actions{background:white;border-radius:16px;padding:18px;margin-bottom:22px;box-shadow:0 4px 20px rgba(0,0,0,.06)}.cred-card{background:white;border:1px solid #d8e2ec;border-radius:22px;overflow:hidden;box-shadow:0 12px 35px rgba(15,23,42,.12);margin-bottom:24px}.cred-bar{background:#153f68;color:white;padding:22px 28px;display:flex;align-items:center;justify-content:space-between}.cred-title{font-size:30px;font-weight:900;letter-spacing:.5px}.cred-sub{font-size:16px;margin-top:4px}.cred-logos img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:12px;padding:6px;margin-left:10px}.cred-front-body{display:grid;grid-template-columns:260px 1fr 250px;gap:34px;padding:32px}.cred-photo{width:230px;height:285px;object-fit:cover;border:7px solid #edf2f7;border-radius:18px;background:#f1f5f9}.cred-name{font-size:34px;line-height:1.05;font-weight:900;color:#153f68;margin:0 0 18px}.cred-info p{font-size:18px;margin:10px 0}.cred-badge{display:inline-block;background:#e8f5f1;color:#05634e;border-radius:999px;padding:9px 18px;font-weight:bold;margin-bottom:12px}.cred-qr{text-align:center}.cred-qr img{width:210px;height:210px;border:2px solid #dbe5ef;border-radius:14px;padding:12px}.vigente{display:inline-block;background:#e8f5f1;color:#05634e;border-radius:999px;padding:8px 18px;font-weight:900;margin:16px 0 6px}.cred-foot{border-top:1px solid #d8e2ec;background:#f8fafc;padding:12px 28px;display:flex;justify-content:space-between;font-weight:600}.cred-back-body{padding:34px 48px;min-height:430px;position:relative}.cred-back-body p{font-size:20px;line-height:1.5}.watermark{position:absolute;right:110px;top:150px;width:310px;opacity:.06}.firmas{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:70px;text-align:center}.firma-img{height:85px;object-fit:contain}.firma-line{border-top:2px solid #333;padding-top:10px;font-size:18px}.firma-line b{color:#153f68}.copyrow{display:flex;gap:10px}.copyrow input{margin:0}.small-note{font-size:13px;color:#64748b}@media print{body{background:white}.cred-actions,aside,.top,.noprint{display:none!important}main{margin:0!important;padding:0!important}.cred-card{box-shadow:none;page-break-inside:avoid}.cred-card.back{page-break-before:always}.cred-wrap{max-width:100%}}


/* Boleta tamaño carta v1.6 */
.boleta-page{background:white;border-radius:14px;padding:16px 20px;box-shadow:0 4px 20px rgba(0,0,0,.06);width:8.5in;min-height:10.6in;margin:0 auto 18px;font-size:12.5px;line-height:1.15;position:relative;overflow:hidden}
.boleta-head{display:flex;justify-content:space-between;align-items:flex-start;text-align:center;margin-bottom:2px}.boleta-head img{width:76px;height:76px;object-fit:contain}.boleta-head h2{font-size:16px;margin:0 0 3px}.boleta-head h3{font-size:13px;margin:0 0 3px}.center{text-align:center}.boleta-page p{margin:7px 0}.boleta-page h3{margin:7px 0}.boleta-table{margin-top:6px}.boleta-table th,.boleta-table td{font-size:11px;padding:5px 6px}.boleta-firmas{display:grid;grid-template-columns:1fr 170px;gap:34px;align-items:end;margin-top:14px}.firma-boleta{width:120px;height:70px;object-fit:contain}.sello-boleta{text-align:center}.sello-boleta img{width:86px;height:86px;object-fit:contain;opacity:.95}.sello-line{border-top:2px solid #333;padding-top:5px;margin-top:2px}.foot{position:absolute;left:20px;right:20px;bottom:14px;margin:0!important;font-size:11px}.pill.danger{background:#fff3cd;color:#8a5a00}
@page{size:Letter;margin:8mm}
@media print{html,body{width:216mm;height:279mm;background:white!important;margin:0!important}body{font-size:11px}.boleta-page{box-shadow:none;border-radius:0;width:100%;min-height:0;height:263mm;margin:0;padding:0;font-size:10.2px;line-height:1.08;page-break-after:avoid;page-break-inside:avoid;overflow:hidden}.boleta-head img{width:56px;height:56px}.boleta-head h2{font-size:13px}.boleta-head h3{font-size:11px}.boleta-page p{margin:4px 0}.boleta-page h3{font-size:12px;margin:5px 0}.boleta-table th,.boleta-table td{font-size:8.8px;padding:2.5px 4px}.boleta-firmas{margin-top:8px;grid-template-columns:1fr 150px;gap:28px}.firma-boleta{width:105px;height:58px}.sello-boleta img{width:62px;height:62px}.sello-line{font-size:9px}.foot{font-size:9px;bottom:0;left:0;right:0}.noprint,aside,.top{display:none!important}main{margin:0!important;padding:0!important}}
