:root{
  --brand:#a70f19;
  --brand-dark:#780b12;
  --brand-soft:#fff2f3;
  --ink:#172033;
  --muted:#667085;
  --line:#e5e7ef;
  --page:#f5f7fb;
  --panel:#ffffff;
  --panel-soft:#fbfcfe;
  --shadow:0 14px 34px rgba(14,23,38,.08);
  --shadow-lg:0 24px 60px rgba(14,23,38,.12);
  --radius:24px;
}
*{box-sizing:border-box;font-family:Inter,system-ui,-apple-system,sans-serif}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(174,21,21,.08), transparent 22%),
    radial-gradient(circle at bottom right, rgba(174,21,21,.05), transparent 18%),
    linear-gradient(180deg,#fbfcff 0%,#f5f7fb 100%);
  overflow-x:hidden;
}
a{text-decoration:none;color:#0d5ae5}
a:hover{color:#0a47b1}
img{max-width:100%}
canvas{display:block;max-width:100%}
.btn,.form-control,.form-select,.badge,.alert{border-radius:16px}
.form-control,.form-select{min-height:48px;border-color:var(--line);box-shadow:none}
.form-control:focus,.form-select:focus{border-color:rgba(174,21,21,.42);box-shadow:0 0 0 .25rem rgba(174,21,21,.09)}
.btn{font-weight:700}
.btn-primary,.ga-btn-danger{background:linear-gradient(135deg,var(--brand),var(--brand-dark));border-color:var(--brand);box-shadow:0 10px 24px rgba(174,21,21,.18)}
.btn-primary:hover,.ga-btn-danger:hover{background:linear-gradient(135deg,var(--brand-dark),#760d0d);border-color:var(--brand-dark)}
.btn-outline-danger{color:var(--brand);border-color:rgba(174,21,21,.25)}
.btn-outline-danger:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.table thead th{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--line);white-space:nowrap}
.table>:not(caption)>*>*{padding:1rem .85rem}
.table-hover tbody tr:hover{background:#fcfcfe}
.badge{padding:.6em .76em;font-weight:800;letter-spacing:.03em}
.text-muted{color:var(--muted)!important}

.ga-shell{min-height:100vh}
.ga-sidebar{
  position:fixed;inset:0 auto 0 0;width:292px;z-index:40;
  display:flex;flex-direction:column;gap:18px;padding:18px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-right:1px solid rgba(229,231,239,.96);box-shadow:0 0 0 1px rgba(255,255,255,.4) inset;
}
.ga-brand{display:flex;align-items:center;gap:14px;padding:14px;border-radius:22px;background:linear-gradient(180deg,#fff,#fff6f6);box-shadow:var(--shadow)}
.ga-brand-logo{width:54px;height:54px;object-fit:contain;border-radius:16px;background:#fff;padding:7px;box-shadow:0 8px 18px rgba(174,21,21,.14)}
.ga-brand-title{font-size:1.1rem;font-weight:800;color:var(--brand);line-height:1.1}
.ga-brand-subtitle{font-size:.9rem;color:var(--muted)}
.ga-sidebar-card{padding:16px 18px;border-radius:22px;background:linear-gradient(135deg,#fff5f5,#ffffff);border:1px solid rgba(174,21,21,.12)}
.ga-sidebar-kicker{font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin-bottom:8px}
.ga-sidebar-copy{font-size:.92rem;color:var(--muted);line-height:1.5}
.ga-nav{display:flex;flex-direction:column;gap:8px;overflow:auto;padding-right:2px}
.ga-nav-link{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:18px;color:var(--ink);font-weight:700;transition:.18s ease}
.ga-nav-link:hover{background:#fff;box-shadow:var(--shadow)}
.ga-nav-link.active{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;box-shadow:0 16px 32px rgba(174,21,21,.22)}
.ga-nav-icon{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:#f7f8fb;color:var(--muted);flex:0 0 auto}
.ga-nav-link.active .ga-nav-icon{background:rgba(255,255,255,.16);color:#fff}
.ga-user-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.ga-user-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;font-weight:800;flex:0 0 auto}
.ga-user-avatar-sm{width:40px;height:40px}

.ga-main{min-height:100vh;padding:16px 14px 108px}
.ga-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;background:linear-gradient(180deg,rgba(245,247,251,.96) 70%,rgba(245,247,251,0))}
.ga-topbar-left,.ga-topbar-right{display:flex;align-items:center;gap:14px}
.ga-context-label{font-size:.75rem;letter-spacing:.14em;font-weight:800;text-transform:uppercase;color:var(--brand);margin-bottom:2px}
.ga-context-title{font-size:1.35rem;font-weight:800;letter-spacing:-.03em}
.ga-user-chip{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;border-radius:18px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line)}
.ga-user-chip-text{display:flex;flex-direction:column;line-height:1.15}
.ga-user-chip-text span{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:800}
.ga-content{display:flex;flex-direction:column;gap:22px}

.card-soft,.stat-card,.login-card,.ga-card{background:rgba(255,255,255,.96);border:1px solid rgba(229,231,239,.92);box-shadow:var(--shadow);border-radius:var(--radius)}
.card-soft{padding:1.35rem!important}
.stat-card{padding:1.2rem;background:linear-gradient(180deg,#fff,#fff7f7)}
.stat-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-size:1.25rem}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.display-6{font-size:2.35rem;line-height:1;letter-spacing:-.05em}
.page-tools{display:flex;flex-wrap:wrap;gap:10px}
.chart-shell{position:relative;height:320px;min-height:220px}
.chart-shell.chart-shell-sm{height:220px}
.chart-shell.chart-shell-xs{height:236px}
.table-responsive{overflow:auto}
.list-group-item{border-color:var(--line)}
.status-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.status-online{background:#16a34a;box-shadow:0 0 0 6px rgba(22,163,74,.12)}
.status-offline{background:#b91c1c;box-shadow:0 0 0 6px rgba(185,28,28,.12)}

.ga-mobile-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:45;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid rgba(229,231,239,.9);box-shadow:0 -10px 30px rgba(14,23,38,.08);
}
.ga-mobile-nav-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}
.ga-mobile-nav-scroll::-webkit-scrollbar{display:none}
.ga-mobile-nav-link{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;min-height:52px;min-width:max-content;border-radius:16px;color:var(--muted);font-size:.72rem;font-weight:800;text-align:left;white-space:nowrap;padding:8px 12px;flex:0 0 auto;background:#f7f8fb;border:1px solid rgba(229,231,239,.9)}
.ga-mobile-nav-link i{font-size:1rem;line-height:1}
.ga-mobile-nav-link.active{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;border-color:transparent;box-shadow:0 14px 26px rgba(174,21,21,.18)}

.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top left, rgba(174,21,21,.13), transparent 32%),linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%)}
.login-wrap{width:min(1100px,100%);display:grid;grid-template-columns:1.04fr .96fr;gap:20px}
.login-showcase{position:relative;overflow:hidden;padding:32px;border-radius:30px;background:linear-gradient(135deg,#a71414 0%,#7c1010 100%);color:#fff;box-shadow:0 30px 70px rgba(124,16,16,.28)}
.login-showcase::before{content:'';position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08)}
.login-card{padding:32px;border-radius:30px}
.login-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.14);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.login-metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.login-metric{padding:14px;border-radius:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12)}
.login-metric strong{display:block;font-size:1.15rem}

.qr-card{width:86mm;height:54mm;border-radius:20px;background:linear-gradient(145deg,#ffffff,#fff2f2);border:1px solid rgba(174,21,21,.15);box-shadow:var(--shadow);position:relative;overflow:hidden}
.qr-card::after{content:'';position:absolute;right:-14px;bottom:-14px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,var(--brand),transparent 68%);opacity:.14}
.qr-mini{width:92px;height:92px;background:#fff;padding:5px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.premium-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.person-avatar-box{width:78px;height:78px;border-radius:20px;overflow:hidden;background:#fff;border:1px solid rgba(174,21,21,.16);display:grid;place-items:center;flex:0 0 auto}
.person-avatar-img{width:100%;height:100%;object-fit:cover}
.person-avatar-placeholder{font-size:1.9rem;color:var(--brand)}
.scan-box{border:2px dashed rgba(174,21,21,.24);border-radius:24px;background:#fff;min-height:230px;box-shadow:var(--shadow)}
video{max-width:100%;border-radius:18px;background:#111}

@media (min-width:992px){
  .ga-main{margin-left:292px;padding:20px 22px 30px;max-width:calc(100vw - 292px)}
}
@media (max-width:991.98px){
  .ga-sidebar{display:none}
  .ga-main{padding:12px 12px 106px}
  .ga-topbar{padding-top:4px}
  .ga-topbar-right{display:none}
  .ga-context-label{font-size:.68rem}
  .ga-context-title{font-size:1.16rem}
  .page-tools{width:100%}
  .page-tools .btn{flex:1 1 auto}
}
@media (max-width:767.98px){
  .login-wrap{grid-template-columns:1fr}
  .login-showcase{order:2;padding:24px}
  .login-card{padding:24px}
  .login-metric-grid{grid-template-columns:1fr}
  .chart-shell{height:270px}
  .chart-shell.chart-shell-sm,.chart-shell.chart-shell-xs{height:210px}
  .premium-cards-grid{grid-template-columns:1fr}
  .display-6{font-size:2rem}
  .table>:not(caption)>*>*{padding:.78rem .66rem}
}
@media (max-width:480px){
  .ga-context-title{font-size:1.05rem}
  .ga-user-chip-text{display:none}
  .ga-mobile-nav{padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
  .ga-mobile-nav-link{font-size:.66rem;min-width:max-content;min-height:50px;padding:7px 10px;gap:6px}
  .chart-shell{height:240px}
}
@media print{
  .ga-sidebar,.ga-topbar,.ga-mobile-nav,.btn,.alert,.page-tools,.no-print{display:none!important}
  body{background:#fff}
  .ga-main{margin:0;padding:0;max-width:none}
  .ga-content{gap:0}
  .qr-print-grid{display:grid!important;grid-template-columns:repeat(2,1fr);gap:12px}
}

/* === Carnets 2026: pantalla + impresión plegable === */
.screen-carnets-wrap{display:flex;flex-direction:column;gap:22px}
.screen-carnet-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
.id-card{position:relative;width:100%;min-height:250px;background:#fff;border:1px solid #e9e9e9;border-radius:24px;overflow:hidden;box-shadow:0 18px 35px rgba(0,0,0,.07)}
.id-card-top-band{height:8px;background:linear-gradient(90deg,#ae1515 0%,#d63c3c 50%,#ae1515 100%)}
.id-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 10px;gap:10px}
.brand-logo-card{width:42px;height:42px;object-fit:contain}.brand-logo-back-card{width:54px;height:54px;object-fit:contain}
.brand-title-card{font-size:16px;font-weight:800;color:#ae1515;line-height:1.1}.brand-sub-card{font-size:12px;color:#7c7c7c}
.role-pill{background:#ae1515;color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:7px 10px;white-space:nowrap}
.id-card-body{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:0 18px 14px}.photo-col{display:flex;justify-content:center;align-items:flex-start}
.id-photo{width:94px;height:114px;object-fit:cover;border-radius:16px;border:1px solid #ececec;background:#f7f7f7}.placeholder-photo{display:flex;justify-content:center;align-items:center;font-size:34px;color:#ae1515}
.info-col{min-width:0}.id-name{font-size:18px;font-weight:800;color:#212121;line-height:1.2;margin-bottom:10px}.id-line{font-size:13px;line-height:1.5;margin-bottom:5px;color:#444;word-break:break-word}.id-line span{color:#ae1515;font-weight:700}.id-card-footer{padding:0 18px 18px;font-size:12px;color:#777}
.id-card-back{display:flex;align-items:center;justify-content:center}.id-card-back-inner{width:100%;text-align:center;padding:18px}.qr-holder{display:flex;justify-content:center;align-items:center;margin:14px 0 10px}.qr-box{width:112px;height:112px;padding:8px;background:#fff;border:1px solid #ebebeb;border-radius:18px;display:flex;align-items:center;justify-content:center}.back-code{font-size:14px;font-weight:800;color:#222}.back-small{font-size:12px;color:#777}.legal-note{margin-top:16px;font-size:12px;color:#7a7a7a}
.print-zone{display:none}
@media print{
  html,body{background:#fff!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body *{visibility:hidden!important}
  #print-zone,#print-zone *{visibility:visible!important}
  #print-zone{display:block!important;position:absolute!important;left:0;top:0;width:100%!important;margin:0!important;padding:10mm!important;background:#fff!important}
  .ga-sidebar,.ga-topbar,.ga-mobile-nav,.btn,.alert,.page-tools,.no-print,.screen-carnets-wrap{display:none!important}
  .print-sheet-sidebyside{display:flex;align-items:stretch;justify-content:flex-start;gap:0!important;margin:0 0 8mm 0;page-break-inside:avoid!important;break-inside:avoid!important;width:171.2mm}
  .id-card-print{width:85.6mm;height:54mm;min-width:85.6mm;min-height:54mm;max-width:85.6mm;max-height:54mm;background:#fff!important;border:0.35mm solid #cfcfcf;overflow:hidden;box-shadow:none!important;position:relative;margin:0!important}
  .id-card-print.front{border-top-left-radius:3.5mm!important;border-bottom-left-radius:3.5mm!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:0!important}
  .id-card-print.back{border-top-right-radius:3.5mm!important;border-bottom-right-radius:3.5mm!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left:0!important}
  .fold-line-vertical{width:0;min-width:0;height:54mm;border-left:.25mm dashed #999;margin:0}.print-top-band{height:3.2mm;background:linear-gradient(90deg,#ae1515 0%,#d63c3c 50%,#ae1515 100%)!important}
  .print-header{display:flex;justify-content:space-between;align-items:center;padding:3mm 4mm 2mm;gap:2mm}.print-brand-logo{width:9mm;height:9mm;object-fit:contain}.print-brand-logo-back{width:11mm;height:11mm;object-fit:contain}.print-brand-title{font-size:10pt;font-weight:800;color:#ae1515!important;line-height:1.1}.print-brand-sub{font-size:6.8pt;color:#777!important;line-height:1.1}.print-role-pill{background:#ae1515!important;color:#fff!important;font-size:6.3pt;font-weight:700;border-radius:999px;padding:1.4mm 2.2mm;white-space:nowrap}
  .print-body{display:grid;grid-template-columns:21mm 1fr;gap:3mm;padding:0 4mm 2.5mm}.print-photo-col{display:flex;justify-content:center;align-items:flex-start}.print-photo{width:18mm;height:22mm;object-fit:cover;border-radius:2.4mm;border:.25mm solid #d8d8d8;background:#f5f5f5!important}.print-placeholder{display:flex;justify-content:center;align-items:center;color:#ae1515!important;font-size:13pt}.print-name{font-size:8.8pt;font-weight:800;line-height:1.15;color:#212121!important;margin-bottom:1.6mm}.print-line{font-size:6.6pt;line-height:1.28;margin-bottom:.8mm;color:#333!important;word-break:break-word}.print-line span{color:#ae1515!important;font-weight:700}.print-footer{padding:0 4mm 3mm;font-size:6.2pt;color:#777!important}
  .print-back-wrap{width:100%;height:calc(54mm - 3.2mm);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3mm 4mm;text-align:center}.print-qr-wrap{margin:2.2mm 0 1.5mm;display:flex;justify-content:center;align-items:center}.print-qr-box{width:25mm;height:25mm;padding:1.5mm;border:.25mm solid #dcdcdc;border-radius:2.8mm;background:#fff!important;display:flex;justify-content:center;align-items:center}.print-back-code{font-size:7.8pt;font-weight:800;color:#212121!important;line-height:1.1}.print-back-small{font-size:6.3pt;color:#777!important;line-height:1.1;margin-top:.7mm}.print-legal{margin-top:2mm;font-size:6pt;color:#7a7a7a!important;line-height:1.25}
}


/* ===== Carnets updated final ===== */
.id-meta-grid,.print-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.id-meta-box,.print-meta-box{border:1px solid #ececec;background:#fafafa;border-radius:12px;padding:8px 10px}
.meta-label,.print-meta-label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.3px;font-weight:700}
.meta-value,.print-meta-value{font-size:13px;color:#222;font-weight:700;line-height:1.2;margin-top:2px}
.card-origin-badge,.print-origin-badge{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.card-origin-badge.original,.print-origin-badge.original{background:#ebf7ef;color:#1f7a3f;border:1px solid #cfe9d8}
.card-origin-badge.duplicate,.print-origin-badge.duplicate{background:#fff2e8;color:#b85a10;border:1px solid #f0d2b5}
.back-meta-grid,.print-back-meta-grid{display:grid;gap:4px;margin-top:10px;font-size:12px;color:#666}
.print-zone{display:none}
@media print{
  .print-sheet-sidebyside,.id-card-print,.fold-line-vertical,.print-header,.print-body,.print-back-wrap,.print-qr-wrap,.print-qr-box,.print-photo,.print-info-col,.print-name,.print-line,.print-footer,.print-back-code,.print-back-small,.print-legal,.print-role-pill,.print-brand-title,.print-brand-sub,.print-brand-logo,.print-brand-logo-back{box-sizing:border-box}
  #print-zone{display:block!important;position:absolute!important;left:0;top:0;width:100%!important;margin:0!important;padding:10mm!important;background:#fff!important}
  .print-sheet-sidebyside{display:flex;align-items:stretch;justify-content:flex-start;gap:0!important;margin:0 0 8mm 0;page-break-inside:avoid!important;break-inside:avoid!important;width:171.2mm}
  .id-card-print{width:85.6mm;height:54mm;min-width:85.6mm;min-height:54mm;max-width:85.6mm;max-height:54mm;background:#fff!important;border:0.35mm solid #cfcfcf;overflow:hidden;box-shadow:none!important;position:relative;margin:0!important}
  .id-card-print.front{border-top-left-radius:3.5mm!important;border-bottom-left-radius:3.5mm!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:0!important}
  .id-card-print.back{border-top-right-radius:3.5mm!important;border-bottom-right-radius:3.5mm!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left:0!important}
  .fold-line-vertical{width:0;min-width:0;height:54mm;border-left:0.25mm dashed #999;margin:0}
  .print-top-band{height:3.2mm;background:linear-gradient(90deg,#ae1515 0%,#d63c3c 50%,#ae1515 100%)!important}
  .print-header{display:flex;justify-content:space-between;align-items:center;padding:3mm 4mm 2mm;gap:2mm}
  .print-brand-logo{width:9mm;height:9mm;object-fit:contain}
  .print-brand-logo-back{width:11mm;height:11mm;object-fit:contain}
  .print-brand-title{font-size:10pt;font-weight:800;color:#ae1515!important;line-height:1.1}
  .print-brand-sub{font-size:6.8pt;color:#777!important;line-height:1.1}
  .print-role-pill{background:#ae1515!important;color:#fff!important;font-size:6.3pt;font-weight:700;border-radius:999px;padding:1.4mm 2.2mm;white-space:nowrap}
  .print-body{display:grid;grid-template-columns:21mm 1fr;gap:3mm;padding:0 4mm 2mm}
  .print-photo-col{display:flex;justify-content:center;align-items:flex-start}
  .print-photo{width:18mm;height:22mm;object-fit:cover;border-radius:2.4mm;border:0.25mm solid #d8d8d8;background:#f5f5f5!important}
  .print-placeholder{display:flex;justify-content:center;align-items:center;color:#ae1515!important;font-size:13pt}
  .print-info-col{min-width:0}
  .print-name{font-size:8.2pt;font-weight:800;line-height:1.12;color:#212121!important;margin-bottom:1.2mm}
  .print-line{font-size:6.2pt;line-height:1.2;margin-bottom:.55mm;color:#333!important;word-break:break-word}
  .print-line span{color:#ae1515!important;font-weight:700}
  .print-meta-grid{gap:1.5mm;margin-top:1.5mm}
  .print-meta-box{border:0.2mm solid #e2e2e2;border-radius:2mm;padding:1.2mm 1.6mm;background:#fafafa!important}
  .print-meta-label{font-size:5.5pt;color:#888!important}
  .print-meta-value{font-size:6.4pt;color:#222!important;font-weight:800}
  .print-origin-badge{margin-top:1.3mm;padding:1.1mm 1.8mm;font-size:5.9pt}
  .print-footer{padding:0 4mm 2.4mm;font-size:5.9pt;color:#777!important}
  .print-back-wrap{width:100%;height:calc(54mm - 3.2mm);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3mm 4mm;text-align:center}
  .print-qr-wrap{margin:1.8mm 0 1.2mm;display:flex;justify-content:center;align-items:center}
  .print-qr-box{width:23mm;height:23mm;padding:1.2mm;border:0.25mm solid #dcdcdc;border-radius:2.8mm;background:#fff!important;display:flex;justify-content:center;align-items:center}
  .print-back-code{font-size:7.2pt;font-weight:800;color:#212121!important;line-height:1.05}
  .print-back-small{font-size:5.8pt;color:#777!important;line-height:1.05;margin-top:0.5mm}
  .print-back-meta-grid{display:grid;gap:.5mm;margin-top:1.4mm;font-size:5.7pt;color:#666!important}
  .print-legal{margin-top:1.2mm;font-size:5.5pt;color:#7a7a7a!important;line-height:1.15}
}


/* =========================================
   CARNETS 2026 · DISEÑO TIPO DNI ELECTRÓNICO
========================================= */
.screen-carnets-wrap{display:flex;flex-direction:column;gap:24px}
.screen-carnet-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px}
.dni-card,.dni-card-print{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(103,23,23,.18);border-radius:22px;box-shadow:0 18px 38px rgba(72,17,17,.08)}
.dni-card{min-height:270px}
.dni-front,.dni-back,.dni-card-print.front,.dni-card-print.back{background:
 linear-gradient(135deg,rgba(174,21,21,.10),transparent 26%),
 linear-gradient(220deg,rgba(0,115,170,.08),transparent 28%),
 linear-gradient(180deg,#fffaf5 0%,#fff 42%,#fbfbff 100%)}
.card-theme::before,.card-theme::after{content:"";position:absolute;inset:0;pointer-events:none}
.card-theme::before{background-repeat:no-repeat;background-position:center;background-size:96% auto;opacity:1}
.card-theme.card-theme-back::before{background-position:center 58%;background-size:92% auto;opacity:1}
.card-theme::after{background:
 radial-gradient(circle at 15% 18%,rgba(174,21,21,.10),transparent 18%),
 radial-gradient(circle at 84% 78%,rgba(0,116,180,.10),transparent 18%),
 linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 30%,rgba(255,255,255,.16) 100%)}
.dni-motif-label{position:absolute;right:16px;top:74px;padding:4px 8px;border-radius:999px;border:1px solid rgba(127,25,32,.16);background:rgba(255,255,255,.78);backdrop-filter:blur(3px);font-size:9px;font-weight:800;letter-spacing:.9px;color:rgba(90,18,18,.84);text-transform:uppercase;z-index:2;box-shadow:0 6px 18px rgba(70,20,20,.08)}
.dni-motif-label.back{top:auto;bottom:14px;right:14px;color:rgba(10,91,121,.86)}
.card-theme-nazca::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 180'%3E%3Cg fill='none' stroke='%237f1920' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' opacity='.34'%3E%3Cpath d='M35 120c22-8 30-27 36-52 8 18 18 31 40 39-18 10-30 27-36 50-6-21-17-31-40-37Z'/%3E%3Cpath d='M84 56l29 19M103 40l8 34M117 78l25-6M117 85l18 18'/%3E%3Cpath d='M152 115c14-18 24-23 45-29-18-9-28-16-45-35-6 17-16 27-34 39 17 4 24 10 34 25Z'/%3E%3Cpath d='M188 44c10 7 18 14 27 26M212 44l3 34M208 82l22 9'/%3E%3C/g%3E%3C/svg%3E")}
.card-theme-machupicchu::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 180'%3E%3Cg fill='none' stroke='%230a5b79' stroke-width='2.6' stroke-linejoin='round' opacity='.32'%3E%3Cpath d='M18 132l34-29 24 18 29-31 28 25 37-41 31 32 38-45 42 37'/%3E%3Cpath d='M16 148h286' opacity='.7'/%3E%3Cpath d='M58 148v-16h18v16M87 148v-21h24v21M128 148v-12h15v12M161 148v-19h28v19M202 148v-14h21v14M228 148v-18h26v18'/%3E%3Cpath d='M138 54l20-18 16 14 28-24 22 20'/%3E%3C/g%3E%3C/svg%3E")}
.card-theme-paracas::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 180'%3E%3Cg fill='none' stroke='%237f1920' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round' opacity='.30'%3E%3Cpath d='M58 140c8-25 12-44 12-67 0-13 10-21 23-21 13 0 23 9 23 22 0 14-8 23-18 30l26 14c18 10 29 18 39 34'/%3E%3Cpath d='M92 63l0 57M82 86l24 0M82 101l24 0'/%3E%3Cpath d='M180 48c16 11 28 22 40 39M221 45c1 18 3 36 7 54M207 102c14 3 24 8 36 18'/%3E%3C/g%3E%3C/svg%3E")}
.card-theme-andes::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 180'%3E%3Cg fill='none' stroke='%230a5b79' stroke-width='2.4' stroke-linejoin='round' opacity='.30'%3E%3Cpath d='M10 130l38-32 20 18 25-30 32 36 30-44 40 41 28-34 34 38 28-28'/%3E%3Cpath d='M8 146h304' opacity='.58'/%3E%3Cpath d='M52 126l7-12 10 8M95 113l9-14 10 10M154 99l10-18 12 13M228 100l10-15 9 10'/%3E%3C/g%3E%3C/svg%3E")}
.card-theme-peru::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 180'%3E%3Cg fill='none' stroke='%237f1920' stroke-width='2.4' stroke-linejoin='round' opacity='.28'%3E%3Cpath d='M42 124c14-34 44-58 82-66 40-8 77-2 118 18'/%3E%3Cpath d='M62 139c16-18 39-29 63-31 39-4 74 4 114 25'/%3E%3Cpath d='M86 63c7 7 13 15 18 24M117 57c5 10 9 21 12 31M145 60c1 10 1 21 0 31M174 65c-2 9-4 18-8 27M202 73c-5 7-10 14-17 21'/%3E%3C/g%3E%3C/svg%3E")}
.dni-watermark-map,.dni-watermark-map.alt{position:absolute;inset:auto -6% -12% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(174,21,21,.18),rgba(174,21,21,.03) 42%,transparent 60%);filter:blur(.2px);pointer-events:none}
.dni-watermark-map.alt{left:-7%;right:auto;bottom:-14%;background:radial-gradient(circle at 60% 40%,rgba(0,116,180,.16),rgba(0,116,180,.03) 45%,transparent 62%)}
.dni-watermark-text{position:absolute;left:-8px;right:-8px;top:46%;transform:rotate(-14deg);font-size:20px;letter-spacing:4px;font-weight:800;color:rgba(174,21,21,.10);white-space:nowrap;pointer-events:none}
.dni-watermark-text.back{top:54%;transform:rotate(10deg);color:rgba(0,116,180,.11)}
.dni-rosette{position:absolute;border-radius:50%;pointer-events:none;opacity:.36;background:
 radial-gradient(circle,transparent 0 28%,rgba(174,21,21,.18) 29% 31%,transparent 32% 40%,rgba(0,116,180,.16) 41% 43%,transparent 44% 52%,rgba(174,21,21,.12) 53% 55%,transparent 56%),
 repeating-conic-gradient(from 0deg,rgba(174,21,21,.14) 0 8deg,transparent 8deg 16deg)}
.rosette-left{width:82px;height:82px;left:-12px;top:62px}
.rosette-right{width:72px;height:72px;right:-8px;bottom:16px}
.rosette-center{width:86px;height:86px;right:10px;top:24px}
.dni-header,.dni-print-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px 10px;border-bottom:1px solid rgba(174,21,21,.08)}
.dni-brand-group,.dni-back-brand{display:flex;align-items:flex-start;gap:10px;min-width:0}
.dni-logo,.dni-print-logo{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}
.dni-logo-back,.dni-print-logo-back{width:38px;height:38px;object-fit:contain}
.dni-country,.dni-print-country{font-size:10px;font-weight:800;letter-spacing:.8px;color:#8b1f1f;text-transform:uppercase}
.dni-country.small,.dni-print-country.small{font-size:8px}
.dni-title,.dni-print-title{font-size:16px;font-weight:900;letter-spacing:.2px;color:#7d1111;line-height:1.02}
.dni-title.back-title,.dni-print-title.back-title{font-size:14px}
.dni-subtitle,.dni-print-subtitle{font-size:11px;color:#5f666f;line-height:1.1}
.dni-side-label,.dni-print-side-label{padding:6px 10px;border-radius:999px;background:linear-gradient(135deg,#8f1313,#c12d2d);color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px;white-space:nowrap;box-shadow:0 8px 20px rgba(174,21,21,.18)}
.dni-body,.dni-print-body{display:grid;grid-template-columns:104px 1fr;gap:14px;padding:14px 16px 12px}
.dni-photo-stack,.dni-print-photo-stack{display:flex;flex-direction:column;gap:8px;align-items:center}
.dni-photo-wrap,.dni-print-photo-wrap{width:94px;height:116px;border-radius:16px;padding:4px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(244,236,236,.92));border:1px solid rgba(174,21,21,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.dni-photo,.dni-print-photo{width:100%;height:100%;object-fit:cover;border-radius:12px;background:#f2f2f2}
.dni-photo-placeholder,.dni-print-placeholder{display:flex;align-items:center;justify-content:center;font-size:36px;color:#9c1919}
.dni-condition-pill,.print-origin-badge,.dni-print-condition{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.7px;text-transform:uppercase;border:1px solid transparent}
.dni-condition-pill.is-original,.dni-print-condition.is-original,.print-origin-badge.original{background:rgba(20,131,74,.1);color:#0c7a46;border-color:rgba(20,131,74,.18)}
.dni-condition-pill.is-duplicate,.dni-print-condition.is-duplicate,.print-origin-badge.duplicate{background:rgba(174,21,21,.10);color:#911818;border-color:rgba(174,21,21,.22)}
.dni-data-grid,.dni-print-grid{display:flex;flex-direction:column;gap:9px;min-width:0}
.dni-label,.dni-print-label{font-size:10px;font-weight:800;letter-spacing:.55px;color:#7f1920;text-transform:uppercase;line-height:1.05}
.dni-name,.dni-print-name{font-size:18px;font-weight:900;line-height:1.08;color:#172033;word-break:break-word}
.dni-row,.dni-print-row{display:grid;gap:10px}
.dni-row.two-col,.dni-print-row.two-col{grid-template-columns:1fr 1fr}
.dni-row.three-col,.dni-print-row.three-col{grid-template-columns:repeat(3,1fr)}
.dni-value,.dni-print-value{font-size:13px;font-weight:700;color:#273142;line-height:1.18;word-break:break-word}
.dni-row.compact .dni-value,.dni-print-row.compact .dni-print-value{font-size:12px}
.dni-meta-grid,.print-meta-grid,.id-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.id-meta-box,.print-meta-box{padding:7px 8px;border-radius:12px;background:rgba(255,255,255,.72);border:1px solid rgba(127,25,32,.14)}
.meta-label,.print-meta-label{font-size:9px;font-weight:800;letter-spacing:.5px;color:#7f1920;text-transform:uppercase}
.meta-value,.print-meta-value{font-size:12px;font-weight:700;color:#273142}
.dni-footer-note{padding:0 16px 14px;font-size:11px;color:#626c78}
.dni-back-top,.dni-print-back-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px 8px;border-bottom:1px solid rgba(174,21,21,.08)}
.dni-back-chip,.dni-print-chip{padding:6px 10px;border-radius:999px;background:linear-gradient(135deg,#113b73,#2b78b8);color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px}
.dni-back-main,.dni-print-back-main{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:14px 16px 16px}
.dni-qr-col,.dni-print-qr-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px}
.dni-qr-box,.dni-print-qr-box{width:112px;height:112px;padding:7px;border-radius:18px;background:rgba(255,255,255,.95);border:1px solid rgba(127,25,32,.12);box-shadow:0 8px 20px rgba(27,38,54,.06)}
.dni-qr-code,.dni-print-qr-code{font-size:11px;font-weight:800;color:#1f2a3a;text-align:center;line-height:1.1}
.dni-back-data,.dni-print-back-data{display:flex;flex-direction:column;gap:7px;min-width:0}
.dni-back-name,.dni-print-back-name{font-size:16px;font-weight:900;line-height:1.08;color:#172033}
.dni-back-line,.dni-print-back-line{font-size:12px;color:#394351;line-height:1.22;word-break:break-word}
.back-meta-grid,.print-back-meta-grid{display:grid;gap:4px;font-size:11px;color:#4b5563;margin-top:8px}
.legal-note,.print-legal{font-size:11px;color:#666f79;margin-top:8px}
.print-zone{display:none}

@media print{
  html,body{background:#fff !important;margin:0 !important;padding:0 !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
  body *{visibility:hidden !important}
  #print-zone,#print-zone *{visibility:visible !important}
  #print-zone{display:block !important;position:absolute !important;left:0;top:0;width:100% !important;margin:0 !important;padding:8mm !important;background:#fff !important}
  .no-print,.page-head,.toolbar-card,.screen-carnets-wrap,.sidebar,.topbar,.navbar,.app-sidebar,.app-topbar,footer,header,aside{display:none !important}
  .print-sheet-sidebyside{display:flex;align-items:stretch;justify-content:flex-start;gap:0 !important;margin:0 0 6mm 0;page-break-inside:avoid !important;break-inside:avoid !important;width:171.2mm}
  .dni-card-print{width:85.6mm;height:54mm;min-width:85.6mm;min-height:54mm;max-width:85.6mm;max-height:54mm;background:#fff !important;overflow:hidden;position:relative;margin:0 !important;box-shadow:none !important;border:0.3mm solid rgba(90,18,18,.32)}
  .dni-card-print.front{border-top-left-radius:3.5mm !important;border-bottom-left-radius:3.5mm !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-right:0 !important}
  .dni-card-print.back{border-top-right-radius:3.5mm !important;border-bottom-right-radius:3.5mm !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;border-left:0 !important}
  .fold-line-vertical{width:0;min-width:0;height:54mm;border-left:0.22mm dashed rgba(90,18,18,.55);margin:0}
  .dni-print-header{padding:2.4mm 3mm 1.6mm;gap:1.6mm}
  .dni-print-logo{width:8.6mm;height:8.6mm}.dni-print-logo-back{width:7.4mm;height:7.4mm}
  .dni-print-country{font-size:5.4pt}.dni-print-title{font-size:8.8pt}.dni-print-title.back-title{font-size:8pt}.dni-print-subtitle{font-size:5.5pt}
  .dni-print-side-label,.dni-print-chip{font-size:5.3pt;padding:1.2mm 1.8mm}
  .dni-print-body{grid-template-columns:20mm 1fr;gap:2.5mm;padding:2.2mm 3mm 2.1mm}
  .dni-print-photo-wrap{width:17.8mm;height:22mm;border-radius:2.8mm;padding:.8mm}
  .dni-print-photo{border-radius:2mm}.dni-print-placeholder{font-size:12pt}
  .dni-print-condition{font-size:4.8pt;padding:1.1mm 1.4mm;line-height:1}
  .dni-print-grid{gap:1.5mm}
  .dni-print-label{font-size:4.8pt}.dni-print-name{font-size:8pt}.dni-print-value{font-size:6pt}
  .dni-print-row{gap:1.8mm}.dni-print-row.compact .dni-print-value{font-size:5.6pt}
  .print-meta-grid{gap:1.2mm}.print-meta-box{padding:1.2mm 1.4mm;border-radius:1.8mm}
  .print-meta-label{font-size:4.3pt}.print-meta-value{font-size:5.6pt}
  .print-origin-badge,.dni-print-condition{margin-top:.3mm}
  .dni-print-back-top{padding:2.4mm 3mm 1.5mm;gap:1.6mm}
  .dni-print-back-main{grid-template-columns:21mm 1fr;gap:2.5mm;padding:2.2mm 3mm 2.4mm}
  .dni-print-qr-box{width:18.5mm;height:18.5mm;padding:1mm;border-radius:2.2mm}
  .dni-print-qr-code{font-size:5pt}
  .dni-print-back-name{font-size:7.5pt}.dni-print-back-line{font-size:5.4pt;gap:0}
  .print-legal{font-size:4.9pt;margin-top:1.2mm}
  .dni-watermark-text{font-size:12pt;letter-spacing:2.4px;top:48%;color:rgba(174,21,21,.15)}
  .dni-watermark-text.back{color:rgba(0,116,180,.16)}
  .dni-motif-label{font-size:4.8pt;top:10mm;right:3mm;padding:1mm 1.6mm}
  .dni-motif-label.back{bottom:2mm;right:2mm;top:auto}
  .rosette-left{width:18mm;height:18mm;left:-2mm;top:11mm}
  .rosette-right{width:16mm;height:16mm;right:-2mm;bottom:2mm}
  .rosette-center{width:17mm;height:17mm;right:2mm;top:5mm}
}

@media (max-width: 768px){
  .screen-carnet-pair{grid-template-columns:1fr}
  .dni-body,.dni-back-main{grid-template-columns:92px 1fr;gap:12px}
  .dni-photo-wrap{width:86px;height:106px}
  .dni-name{font-size:16px}
  .dni-row.two-col,.dni-row.three-col{grid-template-columns:1fr}
  .dni-back-main{grid-template-columns:1fr}
  .dni-qr-col{align-items:flex-start}
  .dni-qr-box{width:100px;height:100px}
}


.table-responsive{border-radius:20px}
.table td,.table th{vertical-align:middle}
.compact-form .form-control,.compact-form .form-select{min-height:44px}
.compact-table .table>:not(caption)>*>*{padding:.8rem .75rem}
.page-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}
.pagination-modern{gap:8px;flex-wrap:wrap}
.pagination-modern .page-link{border:none;border-radius:14px;padding:.7rem .95rem;color:var(--ink);box-shadow:var(--shadow);background:#fff}
.pagination-modern .page-item.active .page-link{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff}
.pagination-modern .page-item.disabled .page-link{opacity:.55;pointer-events:none}
.filters-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.filters-grid > *{grid-column:span 12}
.section-note{font-size:.92rem;color:var(--muted)}
.sticky-panel{position:sticky;top:92px}
.toolbar-card{padding:1.25rem;border-radius:24px;background:rgba(255,255,255,.96);border:1px solid rgba(229,231,239,.92);box-shadow:var(--shadow)}
.screen-carnets-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
.screen-carnet-pair{display:grid;gap:14px}
@media (min-width:768px){
  .filters-grid .span-2{grid-column:span 2}
  .filters-grid .span-3{grid-column:span 3}
  .filters-grid .span-4{grid-column:span 4}
  .filters-grid .span-5{grid-column:span 5}
  .filters-grid .span-6{grid-column:span 6}
  .filters-grid .span-8{grid-column:span 8}
  .filters-grid .span-12{grid-column:span 12}
}
@media (max-width:991.98px){
  .sticky-panel{position:static}
  .ga-topbar{padding-bottom:10px}
}


.ga-form-card{border:1px solid rgba(18,24,40,.06);box-shadow:0 20px 45px rgba(15,23,42,.06)}
.ga-live-results{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 20px 40px rgba(15,23,42,.12);max-height:300px;overflow:auto;backdrop-filter:blur(12px)}
.ga-live-option{appearance:none;border:0;background:#fff;border-radius:14px;padding:12px 14px;text-align:left;display:flex;flex-direction:column;gap:2px;transition:transform .18s ease, box-shadow .18s ease, background .18s ease;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}
.ga-live-option strong{font-size:14px;color:#151b2d}
.ga-live-option span{font-size:12px;color:#6b7280}
.ga-live-option:hover{transform:translateY(-1px);background:#f8fafc;box-shadow:inset 0 0 0 1px rgba(167,15,25,.12),0 10px 24px rgba(15,23,42,.08)}
@media (max-width: 767.98px){.ga-live-results{max-height:240px;border-radius:16px}.ga-live-option{padding:11px 12px}}

/* =========================================================
   GAUSS 2026 · IDENTIDAD INSTITUCIONAL RESPONSIVE
   Capa visual solamente. No altera datos, QR, horarios ni lógica.
   Se limita a pantalla para conservar intacta la impresión de carnets.
   ========================================================= */
@media screen {
  body{
    --ga-navy:#101b31;
    --ga-navy-2:#172743;
    --ga-navy-3:#233858;
    --ga-red:#a70f19;
    --ga-gold:#c9a65a;
    --ga-surface:#ffffff;
    --ga-bg:#f3f6fa;
    --ga-border:#e2e8f0;
    --ga-text:#182235;
    --ga-muted:#687386;
    color:var(--ga-text);
    background:
      radial-gradient(circle at 100% 0,rgba(174,21,21,.055),transparent 25%),
      radial-gradient(circle at 0 100%,rgba(16,27,49,.05),transparent 28%),
      var(--ga-bg);
  }

  .ga-sidebar{
    width:286px;
    gap:14px;
    padding:16px;
    background:
      radial-gradient(circle at 10% 0,rgba(174,21,21,.28),transparent 26%),
      linear-gradient(180deg,var(--ga-navy) 0%,#0b1425 100%);
    border-right:1px solid rgba(255,255,255,.06);
    box-shadow:18px 0 50px rgba(10,18,32,.10);
  }
  .ga-brand{
    position:relative;
    padding:13px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:18px;
    background:rgba(255,255,255,.065);
    box-shadow:none;
  }
  .ga-brand-logo{
    width:50px;height:50px;border-radius:14px;padding:6px;background:#fff;
    box-shadow:0 8px 20px rgba(0,0,0,.18);
  }
  .ga-brand-title{color:#fff;font-size:1.04rem;letter-spacing:-.02em}
  .ga-brand-subtitle{color:rgba(255,255,255,.62);font-size:.75rem;line-height:1.25;margin-top:3px}
  .ga-sidebar-card{
    padding:13px 14px;border-radius:16px;
    background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);
  }
  .ga-sidebar-kicker{color:#f5d79a;font-size:.65rem;margin-bottom:5px}
  .ga-sidebar-copy{color:rgba(255,255,255,.58);font-size:.78rem;line-height:1.4}
  .ga-nav{gap:5px;padding:1px 0 4px}
  .ga-nav-link{
    min-height:48px;padding:9px 11px;border-radius:13px;
    color:rgba(255,255,255,.76);font-size:.88rem;font-weight:650;
  }
  .ga-nav-link:hover{color:#fff;background:rgba(255,255,255,.075);box-shadow:none}
  .ga-nav-link.active{
    color:#fff;
    background:linear-gradient(135deg,#bc1c21 0%,#8f1115 100%);
    box-shadow:0 12px 26px rgba(174,21,21,.24);
  }
  .ga-nav-icon{
    width:34px;height:34px;border-radius:10px;
    background:rgba(255,255,255,.07);color:rgba(255,255,255,.72);
  }
  .ga-nav-link.active .ga-nav-icon{background:rgba(255,255,255,.15)}
  .ga-user-card{
    margin-top:auto;padding:11px 12px;border-radius:16px;
    background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08);box-shadow:none;color:#fff;
  }
  .ga-user-card .text-muted{color:rgba(255,255,255,.55)!important}
  .ga-user-avatar{border-radius:12px;background:linear-gradient(135deg,#c62025,#851014)}
  .ga-sidebar>.btn{min-height:43px;border-radius:13px}

  .ga-main{background:transparent}
  .ga-content{width:100%;max-width:1580px;margin:0 auto;gap:20px}
  .ga-topbar{
    margin:-4px -2px 2px;
    padding:10px 12px;
    border:1px solid rgba(226,232,240,.88);
    border-radius:18px;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    box-shadow:0 8px 26px rgba(16,27,49,.045);
  }
  .ga-context-label{color:#9d171b;font-size:.66rem;letter-spacing:.13em}
  .ga-context-title{color:var(--ga-navy);font-size:1.22rem}
  .ga-user-chip{border-radius:14px;box-shadow:none;background:#f8fafc;border-color:#e8edf3}
  .ga-user-chip-text span{font-size:.64rem}

  .card-soft,.stat-card,.login-card,.ga-card,.toolbar-card{
    border-color:rgba(16,27,49,.075);
    border-radius:20px;
    box-shadow:0 10px 30px rgba(16,27,49,.055);
    background:#fff;
  }
  .card-soft{padding:1.25rem!important}
  .stat-card{
    position:relative;overflow:hidden;background:#fff;border-radius:18px;
  }
  .stat-card:after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
    background:linear-gradient(90deg,#ae1515,#c9a65a);
    opacity:.8;
  }
  .stat-icon{width:46px;height:46px;border-radius:13px;background:#fff1f1;color:#a21519}
  .eyebrow{padding:7px 10px;border-radius:9px;font-size:.66rem;letter-spacing:.11em}

  .btn{border-radius:12px;min-height:42px;letter-spacing:-.01em}
  .btn-sm{min-height:34px;border-radius:10px}
  .btn-primary,.ga-btn-danger{
    background:linear-gradient(135deg,#b71b20,#8d1115);
    border-color:#9e1519;
    box-shadow:0 8px 18px rgba(174,21,21,.16);
  }
  .btn-dark{background:var(--ga-navy);border-color:var(--ga-navy)}
  .btn-outline-primary{color:#243b63;border-color:#cad5e4}
  .btn-outline-primary:hover{background:#172743;border-color:#172743;color:#fff}
  .btn-outline-secondary{border-color:#d5dce5;color:#475569}

  .form-control,.form-select,.input-group-text{
    min-height:44px;border-radius:12px;border-color:#dfe5ec;background-color:#fff;
  }
  .input-group>.form-control,.input-group>.form-select{border-radius:0}
  .input-group>:first-child{border-top-left-radius:12px!important;border-bottom-left-radius:12px!important}
  .input-group>:last-child{border-top-right-radius:12px!important;border-bottom-right-radius:12px!important}
  .form-label{font-size:.82rem;font-weight:700;color:#354052;margin-bottom:.42rem}
  .form-control:focus,.form-select:focus{border-color:rgba(174,21,21,.45);box-shadow:0 0 0 .2rem rgba(174,21,21,.075)}

  .table-responsive{border-radius:14px;border:1px solid #edf0f4}
  .table{margin-bottom:0}
  .table thead th{
    background:#f7f9fc;color:#596579;font-size:.68rem;letter-spacing:.075em;
    border-bottom:1px solid #e5eaf0;
  }
  .table>:not(caption)>*>*{padding:.82rem .78rem;border-color:#edf0f4}
  .table tbody tr{transition:background-color .16s ease}
  .table tbody tr:hover{background:#fafbfd}
  .badge{border-radius:8px;padding:.48em .65em}

  .page-summary{padding-top:12px}
  .pagination-modern .page-link{border-radius:10px;box-shadow:none;border:1px solid #e4e9f0}
  .sticky-panel{top:96px}
  .ga-feature-card{background:linear-gradient(145deg,#ffffff 0%,#fbfcff 100%)}

  .login-shell{
    background:
      radial-gradient(circle at 10% 10%,rgba(174,21,21,.13),transparent 28%),
      radial-gradient(circle at 90% 85%,rgba(16,27,49,.12),transparent 30%),
      #f3f6fa;
  }
  .login-wrap{max-width:1080px;gap:0;box-shadow:0 30px 80px rgba(16,27,49,.14);border-radius:28px;overflow:hidden;background:#fff}
  .login-showcase{
    border-radius:0;padding:38px;
    background:radial-gradient(circle at 85% 15%,rgba(201,166,90,.22),transparent 24%),linear-gradient(145deg,#111e35 0%,#172743 55%,#7e1519 130%);
    box-shadow:none;
  }
  .login-card{border:0;border-radius:0;box-shadow:none;padding:42px}
  .login-metric{border-radius:14px;background:rgba(255,255,255,.07)}

  .ga-menu-toggle,.ga-sidebar-close{
    display:grid;place-items:center;border:0;cursor:pointer;
  }
  .ga-menu-toggle{
    width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:#f5f7fa;color:#172743;font-size:1.3rem;
  }
  .ga-sidebar-close{
    margin-left:auto;width:34px;height:34px;flex:0 0 auto;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;
  }

  @media (min-width:992px){
    .ga-main{margin-left:286px;padding:18px 20px 30px;max-width:calc(100vw - 286px)}
  }

  @media (max-width:991.98px){
    .ga-sidebar{
      display:flex!important;width:min(310px,86vw);z-index:70;
      transform:translateX(-104%);transition:transform .24s ease;
      box-shadow:24px 0 60px rgba(4,10,20,.28);
    }
    body.ga-sidebar-open{overflow:hidden}
    body.ga-sidebar-open .ga-sidebar{transform:translateX(0)}
    .ga-sidebar-backdrop{
      display:block!important;position:fixed;inset:0;z-index:65;
      background:rgba(5,12,23,.46);opacity:0;pointer-events:none;transition:opacity .22s ease;
      backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
    }
    body.ga-sidebar-open .ga-sidebar-backdrop{opacity:1;pointer-events:auto}
    .ga-main{padding:10px 10px 100px}
    .ga-topbar{top:8px;margin:0 0 4px;padding:9px 10px;border-radius:16px}
    .ga-topbar-left{min-width:0;flex:1}
    .ga-context-title{font-size:1.06rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68vw}
    .ga-context-label{font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68vw}
    .ga-mobile-nav{padding:8px 9px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);z-index:50}
    .ga-mobile-nav-scroll{gap:6px}
    .ga-mobile-nav-link{min-height:46px;border-radius:12px;padding:7px 10px;background:#f6f8fb;font-size:.68rem}
    .ga-mobile-nav-link.active{background:linear-gradient(135deg,#172743,#101b31);box-shadow:0 8px 20px rgba(16,27,49,.16)}
    .card-soft{padding:1rem!important;border-radius:17px}
    .stat-card{padding:1rem;border-radius:16px}
    .display-6{font-size:2rem}
    .table-responsive{border-radius:12px}
  }

  @media (max-width:767.98px){
    body{font-size:.94rem}
    .ga-content{gap:15px}
    .page-tools{width:100%}
    .page-tools .btn{flex:1 1 auto}
    .form-control,.form-select{min-height:42px}
    .card-soft h1,.card-soft .h4{font-size:1.1rem}
    .login-shell{padding:12px;align-items:stretch}
    .login-wrap{grid-template-columns:1fr;border-radius:22px;align-self:center}
    .login-showcase{padding:24px;min-height:auto}
    .login-showcase .mt-4.pt-2{margin-top:1rem!important}
    .login-showcase .h3{font-size:1.35rem}
    .login-metric-grid{margin-top:18px;grid-template-columns:1fr 1fr 1fr;gap:7px}
    .login-metric{padding:10px 8px}
    .login-metric strong{font-size:.88rem}
    .login-metric .small{font-size:.68rem}
    .login-card{padding:25px 20px}
  }
}

/* =========================================================
   GAUSS · REDISEÑO VISUAL GLOBAL 2026
   Color institucional: #a70f19
   Capa de interfaz únicamente. NO modifica plantillas DNI/carnets
   ni reglas @media print, datos, QR, horarios o procesos.
   ========================================================= */
@media screen {
  body.ga-app{
    --brand:#a70f19;
    --brand-dark:#780b12;
    --brand-soft:#fff1f2;
    --ga-red:#a70f19;
    --ga-burgundy:#4b080d;
    --ga-burgundy-2:#2f080b;
    --ga-bg:#f7f7f9;
    --ga-surface:#ffffff;
    --ga-border:#e7e8ec;
    --ga-text:#20242c;
    --ga-muted:#68707d;
    background:
      radial-gradient(circle at 100% 0,rgba(167,15,25,.055),transparent 24%),
      linear-gradient(180deg,#fbfbfc 0%,#f5f6f8 100%);
  }

  body.ga-app a{color:#8f0d16}
  body.ga-app a:hover{color:#680910}

  body.ga-app .ga-sidebar{
    background:
      radial-gradient(circle at 18% 0,rgba(167,15,25,.62),transparent 27%),
      linear-gradient(180deg,#4b080d 0%,#30080b 62%,#230609 100%);
    border-right:1px solid rgba(255,255,255,.06);
  }
  body.ga-app .ga-brand{background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.11)}
  body.ga-app .ga-brand-title{color:#fff}
  body.ga-app .ga-brand-subtitle{color:rgba(255,255,255,.65)}
  body.ga-app .ga-sidebar-card{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.08)}
  body.ga-app .ga-sidebar-kicker{color:#ffd8dc}
  body.ga-app .ga-sidebar-copy{color:rgba(255,255,255,.68)}
  body.ga-app .ga-nav-link.active{
    background:linear-gradient(135deg,#bd1723 0%,#a70f19 48%,#7a0b12 100%);
    box-shadow:0 12px 26px rgba(20,0,3,.24);
  }
  body.ga-app .ga-user-avatar{background:linear-gradient(135deg,#be1a25,#820c14)}
  body.ga-app .ga-sidebar>.btn.ga-btn-danger{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.14);box-shadow:none}
  body.ga-app .ga-sidebar>.btn.ga-btn-danger:hover{background:#fff;color:#740b12;border-color:#fff}

  body.ga-app .ga-topbar{
    border-color:rgba(35,38,45,.075);
    background:rgba(255,255,255,.91);
    box-shadow:0 8px 24px rgba(25,28,34,.045);
  }
  body.ga-app .ga-context-label{color:#a70f19}
  body.ga-app .ga-context-title{color:#262a31}
  body.ga-app .ga-menu-toggle{background:#fff1f2;color:#a70f19}

  body.ga-app .card-soft,
  body.ga-app .stat-card,
  body.ga-app .ga-card,
  body.ga-app .toolbar-card{
    border-color:#e8e9ed;
    box-shadow:0 8px 25px rgba(28,31,37,.055);
  }
  body.ga-app .stat-card:after{background:linear-gradient(90deg,#a70f19,#d45d65)}
  body.ga-app .stat-icon{background:#fff0f1;color:#a70f19}
  body.ga-app .eyebrow{background:#fff0f1;color:#a70f19}

  body.ga-app .btn-primary,
  body.ga-app .ga-btn-danger{
    background:linear-gradient(135deg,#b81722 0%,#a70f19 55%,#850c14 100%);
    border-color:#a70f19;
    box-shadow:0 8px 18px rgba(167,15,25,.17);
  }
  body.ga-app .btn-primary:hover,
  body.ga-app .ga-btn-danger:hover{background:linear-gradient(135deg,#980d16,#700910);border-color:#780b12}
  body.ga-app .btn-outline-primary{color:#a70f19;border-color:#e1b9bc;background:#fff}
  body.ga-app .btn-outline-primary:hover{background:#a70f19;border-color:#a70f19;color:#fff}
  body.ga-app .btn-outline-danger{color:#a70f19;border-color:#ddb3b7}
  body.ga-app .btn-outline-danger:hover{background:#a70f19;border-color:#a70f19;color:#fff}

  body.ga-app .form-control:focus,
  body.ga-app .form-select:focus{
    border-color:rgba(167,15,25,.48);
    box-shadow:0 0 0 .2rem rgba(167,15,25,.08);
  }
  body.ga-app .form-check-input:checked{background-color:#a70f19;border-color:#a70f19}
  body.ga-app .form-check-input:focus{border-color:#cc777d;box-shadow:0 0 0 .2rem rgba(167,15,25,.09)}

  body.ga-app .table-responsive{border-color:#e8e9ed;background:#fff}
  body.ga-app .table thead th{background:#f8f8fa;color:#626a76}
  body.ga-app .table tbody tr:hover{background:#fff8f8}
  body.ga-app .pagination-modern .page-item.active .page-link{background:#a70f19;border-color:#a70f19;color:#fff}

  body.ga-app .alert-success{background:#f0f8f3;color:#25633d}
  body.ga-app .alert-danger{background:#fff2f3;color:#8b111a}

  body.ga-app .ga-mobile-nav{
    background:rgba(255,255,255,.98);
    border-top-color:#e5e6ea;
    box-shadow:0 -10px 28px rgba(26,29,35,.10);
  }
  body.ga-app .ga-mobile-nav-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(54px,1fr));
    gap:5px;
    width:100%;
  }
  body.ga-app .ga-mobile-nav-link{
    min-width:0;
    min-height:54px;
    padding:6px 3px;
    border:0;
    border-radius:12px;
    background:transparent;
    color:#707784;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    font-size:.61rem;
    line-height:1.05;
    font-weight:750;
    white-space:nowrap;
    cursor:pointer;
  }
  body.ga-app .ga-mobile-nav-link i{font-size:1.18rem}
  body.ga-app .ga-mobile-nav-link.active{
    background:#fff0f1;
    color:#a70f19;
    box-shadow:none;
  }
  body.ga-app .ga-mobile-more{font-family:inherit}

  @media (min-width:992px){
    body.ga-app .ga-sidebar{width:272px;padding:15px}
    body.ga-app .ga-main{margin-left:272px;max-width:calc(100vw - 272px);padding:18px 22px 30px}
    body.ga-app .ga-content{max-width:1560px;gap:20px}
    body.ga-app .ga-topbar{padding:11px 14px}
  }

  @media (max-width:991.98px){
    body.ga-app .ga-main{padding:9px 9px 88px}
    body.ga-app .ga-sidebar{width:min(300px,88vw)}
    body.ga-app .ga-topbar{top:7px;padding:8px 9px}
    body.ga-app .ga-topbar-right{display:none}
    body.ga-app .ga-context-title{max-width:70vw}
    body.ga-app .ga-mobile-nav{padding:6px 7px calc(6px + env(safe-area-inset-bottom))}
    body.ga-app .card-soft{padding:.95rem!important}
    body.ga-app .toolbar-card{padding:1rem}
  }

  @media (max-width:575.98px){
    body.ga-app{font-size:.92rem}
    body.ga-app .ga-main{padding-left:7px;padding-right:7px}
    body.ga-app .ga-content{gap:12px}
    body.ga-app .ga-topbar{border-radius:14px;margin-bottom:0}
    body.ga-app .ga-context-label{font-size:.56rem}
    body.ga-app .ga-context-title{font-size:1rem;max-width:66vw}
    body.ga-app .ga-menu-toggle{width:40px;height:40px}
    body.ga-app .page-tools{display:grid;grid-template-columns:1fr;gap:7px}
    body.ga-app .page-tools .btn{width:100%}
    body.ga-app .btn:not(.btn-sm){min-height:44px}
    body.ga-app .form-control,
    body.ga-app .form-select{font-size:16px;min-height:44px}
    body.ga-app .table>:not(caption)>*>*{padding:.68rem .65rem}
    body.ga-app .stat-card{padding:.9rem}
    body.ga-app .stat-icon{width:42px;height:42px}
    body.ga-app .display-6{font-size:1.8rem}
    body.ga-app .chart-shell{height:260px}
    body.ga-app .chart-shell.chart-shell-sm{height:210px}
  }
}


/* =========================================================
   GAUSS · PALETA BLANCO + ROJO INSTITUCIONAL 2026
   Color principal: #a70f19
   Capa visual de pantalla únicamente. No afecta carnets/impresión.
   ========================================================= */
@media screen {
  body.ga-app{
    --brand:#a70f19;
    --brand-dark:#7b0b12;
    --brand-soft:#f9e7e9;
    --ga-red:#a70f19;
    --ga-red-dark:#7b0b12;
    --ga-red-soft:#f9e7e9;
    --ga-red-faint:#fff7f8;
    --ga-bg:#f7f5f5;
    --ga-surface:#ffffff;
    --ga-border:#ece7e8;
    --ga-text:#25272c;
    --ga-muted:#737278;
    background:
      radial-gradient(circle at 100% 0,rgba(167,15,25,.035),transparent 22%),
      linear-gradient(180deg,#fbfafa 0%,#f6f4f4 100%);
    color:var(--ga-text);
  }

  body.ga-app a{color:#8e0c15}
  body.ga-app a:hover{color:#65080e}

  /* Sidebar blanca: el rojo queda como acento y estado activo */
  body.ga-app .ga-sidebar{
    background:#fff;
    border-right:1px solid #ece7e8;
    box-shadow:12px 0 36px rgba(43,33,35,.055);
  }
  body.ga-app .ga-brand{
    background:linear-gradient(145deg,#ffffff 0%,#fff8f8 100%);
    border:1px solid #f0e4e5;
    box-shadow:0 8px 22px rgba(59,39,42,.055);
  }
  body.ga-app .ga-brand-logo{
    background:#fff;
    box-shadow:0 6px 16px rgba(167,15,25,.10);
  }
  body.ga-app .ga-brand-title{color:#7b0b12}
  body.ga-app .ga-brand-subtitle{color:#777278}

  body.ga-app .ga-sidebar-card{
    background:#fff7f8;
    border:1px solid #f1dcde;
  }
  body.ga-app .ga-sidebar-kicker{color:#a70f19}
  body.ga-app .ga-sidebar-copy{color:#716c70}

  body.ga-app .ga-nav-link{
    color:#45474d;
    background:transparent;
  }
  body.ga-app .ga-nav-link:hover{
    color:#8b0c14;
    background:#fff5f6;
    box-shadow:none;
  }
  body.ga-app .ga-nav-icon{
    background:#f7f4f4;
    color:#777277;
  }
  body.ga-app .ga-nav-link:hover .ga-nav-icon{
    background:#f9e7e9;
    color:#a70f19;
  }
  body.ga-app .ga-nav-link.active{
    color:#fff;
    background:#a70f19;
    box-shadow:0 10px 22px rgba(167,15,25,.17);
  }
  body.ga-app .ga-nav-link.active .ga-nav-icon{
    background:rgba(255,255,255,.18);
    color:#fff;
  }

  body.ga-app .ga-user-card{
    background:#fff;
    border-color:#ece7e8;
    box-shadow:0 7px 20px rgba(44,34,36,.05);
    color:#292a2f;
  }
  body.ga-app .ga-user-card .text-muted{color:#777278!important}
  body.ga-app .ga-user-avatar{background:#a70f19}
  body.ga-app .ga-sidebar>.btn.ga-btn-danger{
    color:#a70f19;
    background:#fff;
    border:1px solid #e4c4c7;
    box-shadow:none;
  }
  body.ga-app .ga-sidebar>.btn.ga-btn-danger:hover{
    color:#fff;
    background:#a70f19;
    border-color:#a70f19;
  }

  body.ga-app .ga-topbar{
    background:rgba(255,255,255,.95);
    border-color:#ece8e9;
    box-shadow:0 7px 22px rgba(45,35,37,.04);
  }
  body.ga-app .ga-context-label{color:#a70f19}
  body.ga-app .ga-context-title{color:#28292e}
  body.ga-app .ga-menu-toggle{
    background:#fff1f2;
    color:#a70f19;
    border:1px solid #f0d8da;
  }
  body.ga-app .ga-sidebar-close{
    background:#fff1f2;
    color:#a70f19;
  }

  body.ga-app .card-soft,
  body.ga-app .stat-card,
  body.ga-app .ga-card,
  body.ga-app .toolbar-card{
    background:#fff;
    border-color:#ebe7e8;
    box-shadow:0 8px 24px rgba(46,36,38,.045);
  }
  body.ga-app .stat-card:after{background:#a70f19;opacity:.9}
  body.ga-app .stat-icon,
  body.ga-app .eyebrow{background:#f9e7e9;color:#a70f19}

  body.ga-app .btn-primary,
  body.ga-app .ga-btn-danger{
    background:#a70f19;
    border-color:#a70f19;
    box-shadow:0 8px 18px rgba(167,15,25,.15);
  }
  body.ga-app .btn-primary:hover,
  body.ga-app .ga-btn-danger:hover{
    background:#7b0b12;
    border-color:#7b0b12;
  }
  body.ga-app .btn-outline-primary,
  body.ga-app .btn-outline-danger{
    color:#a70f19;
    background:#fff;
    border-color:#dfb9bc;
  }
  body.ga-app .btn-outline-primary:hover,
  body.ga-app .btn-outline-danger:hover{
    color:#fff;
    background:#a70f19;
    border-color:#a70f19;
  }
  body.ga-app .btn-dark{background:#34353a;border-color:#34353a}

  body.ga-app .form-control,
  body.ga-app .form-select,
  body.ga-app .input-group-text{
    background:#fff;
    border-color:#e5dfe1;
  }
  body.ga-app .form-control:focus,
  body.ga-app .form-select:focus{
    border-color:#c8686f;
    box-shadow:0 0 0 .2rem rgba(167,15,25,.075);
  }
  body.ga-app .form-check-input:checked{background-color:#a70f19;border-color:#a70f19}

  body.ga-app .table-responsive{background:#fff;border-color:#ebe7e8}
  body.ga-app .table thead th{background:#faf8f8;color:#6c686c}
  body.ga-app .table tbody tr:hover{background:#fff7f8}
  body.ga-app .pagination-modern .page-item.active .page-link{background:#a70f19;border-color:#a70f19}

  body.ga-app .ga-mobile-nav{
    background:rgba(255,255,255,.985);
    border-top-color:#e9e4e5;
    box-shadow:0 -8px 24px rgba(49,37,40,.08);
  }
  body.ga-app .ga-mobile-nav-link{color:#737076;background:transparent}
  body.ga-app .ga-mobile-nav-link.active{
    color:#a70f19;
    background:#f9e7e9;
    box-shadow:none;
  }

  @media (max-width:991.98px){
    body.ga-app .ga-sidebar{box-shadow:20px 0 50px rgba(43,31,34,.18)}
    body.ga-app .ga-sidebar-backdrop{background:rgba(43,31,34,.34)}
  }
}

/* =========================================================
   GAUSS · MOBILE SAFE UI 2026
   Solo interfaz de pantalla. Mantiene intactos carnets/impresión,
   base de datos, horarios, escáner y datos existentes.
   ========================================================= */
@media screen {
  /* Evita que contenido largo fuerce el ancho general de la aplicación. */
  body.ga-app:not(.ga-page-carnets) .ga-main,
  body.ga-app:not(.ga-page-carnets) .ga-content,
  body.ga-app:not(.ga-page-carnets) .card-soft,
  body.ga-app:not(.ga-page-carnets) .ga-card,
  body.ga-app:not(.ga-page-carnets) .toolbar-card,
  body.ga-app:not(.ga-page-carnets) .row > * {
    min-width:0;
  }

  body.ga-app:not(.ga-page-carnets) .table-responsive{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
  }
  body.ga-app:not(.ga-page-carnets) .table td,
  body.ga-app:not(.ga-page-carnets) .table th{
    overflow-wrap:anywhere;
    word-break:normal;
  }
  body.ga-app:not(.ga-page-carnets) .table td .btn{
    white-space:normal;
  }

  /* Buscador liviano inyectado por JS: solo filtra filas ya cargadas. */
  .ga-table-livebar{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 10px;
    padding:9px 10px;
    border:1px solid #ebe7e8;
    border-radius:14px;
    background:#fff;
  }
  .ga-table-livebar .ga-table-live-icon{
    width:36px;height:36px;flex:0 0 36px;
    display:grid;place-items:center;
    border-radius:11px;
    background:#f9e7e9;color:#a70f19;
  }
  .ga-table-livebar .form-control{
    min-height:38px;
    border:0;
    padding:.4rem .2rem;
    background:transparent;
    box-shadow:none!important;
  }
  .ga-table-livebar .ga-table-count{
    flex:0 0 auto;
    font-size:.72rem;
    font-weight:700;
    color:#777278;
    white-space:nowrap;
  }
  .ga-table-empty-filter{
    display:none;
    margin:10px 0 0;
    padding:14px;
    border-radius:13px;
    background:#faf8f8;
    color:#777278;
    text-align:center;
    font-size:.84rem;
  }
  .ga-table-empty-filter.show{display:block}

  /* Indicador discreto del filtro por nombre ya existente. */
  .ga-live-submit-wrap{position:relative}
  .ga-live-submit-wrap .ga-search-status{
    position:absolute;right:10px;top:50%;transform:translateY(-50%);
    display:none;color:#a70f19;font-size:.8rem;pointer-events:none;
  }
  .ga-live-submit-wrap.is-pending .ga-search-status{display:block}
  .ga-live-submit-wrap.is-pending input[name="q"]{padding-right:34px}

  @media (max-width:767.98px){
    /* Menos efectos costosos en móvil y más espacio útil. */
    body.ga-app:not(.ga-page-carnets) .ga-topbar,
    body.ga-app:not(.ga-page-carnets) .ga-sidebar{
      backdrop-filter:none!important;
      -webkit-backdrop-filter:none!important;
    }
    body.ga-app:not(.ga-page-carnets) .card-soft,
    body.ga-app:not(.ga-page-carnets) .ga-card,
    body.ga-app:not(.ga-page-carnets) .toolbar-card,
    body.ga-app:not(.ga-page-carnets) .stat-card{
      box-shadow:0 4px 14px rgba(46,36,38,.045);
    }

    /* Formularios de filtros: una columna cómoda para tocar con el dedo. */
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .ga-content form.row.g-2 > .col-auto,
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .ga-content form.row.g-3 > .col-auto{
      flex:0 0 100%;
      width:100%;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .ga-content form.row.g-2 > .col-auto .btn,
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .ga-content form.row.g-3 > .col-auto .btn,
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .ga-content form.row.g-2 > .col-auto .form-control,
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .ga-content form.row.g-2 > .col-auto .form-select{
      width:100%;
    }
    body.ga-app:not(.ga-page-carnets) .page-summary{
      align-items:stretch;
    }
    body.ga-app:not(.ga-page-carnets) .page-summary > *{
      width:100%;
    }
    body.ga-app:not(.ga-page-carnets) .page-summary form{
      flex:1 1 100%;
    }
    body.ga-app:not(.ga-page-carnets) .page-summary .pagination,
    body.ga-app:not(.ga-page-carnets) .pagination-modern{
      justify-content:center;
    }

    /* Las tablas de gestión se transforman en fichas. Se excluyen Carnets
       y Scanner para no rozar sus flujos especializados. */
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) .table-responsive.ga-card-table{
      overflow:visible;
      border:0;
      background:transparent;
      border-radius:0;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table{
      display:block;
      width:100%;
      background:transparent;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table thead{
      position:absolute!important;
      width:1px!important;height:1px!important;
      padding:0!important;margin:-1px!important;
      overflow:hidden!important;clip:rect(0,0,0,0)!important;
      white-space:nowrap!important;border:0!important;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody{
      display:grid;
      gap:10px;
      width:100%;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody tr{
      display:block;
      width:100%;
      padding:6px 12px;
      border:1px solid #ece7e8;
      border-radius:16px;
      background:#fff;
      box-shadow:0 3px 12px rgba(48,37,39,.035);
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody tr[hidden]{display:none!important}
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td{
      display:grid;
      grid-template-columns:minmax(88px,34%) minmax(0,1fr);
      gap:10px;
      align-items:start;
      width:100%;
      max-width:none;
      min-height:36px;
      padding:9px 0!important;
      border:0;
      border-bottom:1px solid #f0ecec;
      text-align:left!important;
      white-space:normal!important;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td:last-child{border-bottom:0}
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td::before{
      content:attr(data-label);
      min-width:0;
      color:#777278;
      font-size:.66rem;
      font-weight:800;
      letter-spacing:.055em;
      line-height:1.25;
      text-transform:uppercase;
      overflow-wrap:anywhere;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td.ga-table-colspan{
      display:block;
      min-height:0;
      padding:13px 0!important;
      text-align:center!important;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td.ga-table-colspan::before{display:none}
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td .d-flex{
      flex-wrap:wrap;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td .btn{
      margin:2px 2px 2px 0;
      max-width:100%;
    }

    .ga-table-livebar{position:relative;padding:7px 9px;margin-bottom:9px;border-radius:13px}
    .ga-table-livebar .ga-table-count{display:none}
    .ga-table-livebar .form-control{font-size:16px}
  }

  @media (max-width:390px){
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td{
      grid-template-columns:1fr;
      gap:4px;
    }
    body.ga-app:not(.ga-page-carnets):not(.ga-page-scanner) table.ga-responsive-table tbody td::before{
      font-size:.62rem;
    }
  }

  @media (prefers-reduced-motion:reduce){
    body.ga-app *,body.ga-app *::before,body.ga-app *::after{
      scroll-behavior:auto!important;
      transition-duration:.01ms!important;
      animation-duration:.01ms!important;
      animation-iteration-count:1!important;
    }
  }
}
