:root{
    --nsa-blue:#06285a;
    --nsa-blue-2:#0b3c7a;
    --nsa-gold:#d8a221;
    --nsa-gold-2:#f2c14e;
    --nsa-bg:#f5f8fc;
    --nsa-text:#0f2147;
}
*{box-sizing:border-box}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--nsa-bg);color:var(--nsa-text)}
a{text-decoration:none}.text-primary{color:var(--nsa-blue)!important}.bg-primary{background:var(--nsa-blue)!important}.btn-primary{background:var(--nsa-blue);border-color:var(--nsa-blue)}.btn-primary:hover{background:#041d42;border-color:#041d42}.btn-gold{background:linear-gradient(135deg,var(--nsa-gold-2),var(--nsa-gold));border:0;color:#061b3b;font-weight:700}.btn-gold:hover{filter:brightness(.96);color:#061b3b}.gold{color:var(--nsa-gold)}
.public-header{background:linear-gradient(135deg,#041b3d,var(--nsa-blue));color:#fff}.brand-logo{width:74px;height:74px;object-fit:contain}.brand-title{font-family:Georgia,serif;font-weight:700}.brand-lema{color:var(--nsa-gold-2);font-family:Georgia,serif;font-style:italic}.hero{background:linear-gradient(120deg,#fff 0,#fff 55%,#eef4fb 100%);border-bottom:1px solid #dbe5f2}.hero-title{font-family:Georgia,serif;font-weight:700;color:#061f4d}.gold-line{width:75px;height:4px;background:var(--nsa-gold);border-radius:10px}.login-card{background:linear-gradient(145deg,#06285a,#073976);border-radius:22px;color:white;box-shadow:0 18px 45px rgba(5,27,65,.24)}.soft-card{background:#fff;border:1px solid #dbe5f2;border-radius:18px;box-shadow:0 10px 28px rgba(10,42,90,.08)}.phase-card{min-height:170px}.icon-circle{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eff5ff;color:var(--nsa-blue);font-size:1.5rem}.step-num{width:30px;height:30px;border-radius:50%;background:var(--nsa-blue);color:white;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.timeline-dot{width:48px;height:48px;border-radius:50%;background:#fff;border:2px solid var(--nsa-gold);display:inline-flex;align-items:center;justify-content:center;color:var(--nsa-blue);font-size:1.3rem}.footer-public{background:var(--nsa-blue);color:#dce8fa}.footer-public .brand-lema{font-size:.95rem}
.app-layout{min-height:100vh;display:flex}.app-sidebar{width:285px;background:linear-gradient(180deg,#041b3d,#06285a);color:white;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;padding:20px 18px;z-index:1000}.brand-logo-side{width:76px;height:76px;object-fit:contain}.brand-side h5{font-family:Georgia,serif;font-size:1.05rem;margin:8px 0 0}.brand-side small{color:var(--nsa-gold-2);font-family:Georgia,serif;font-style:italic}.sidebar-section{font-size:.78rem;letter-spacing:.08em;color:var(--nsa-gold-2);font-weight:800;margin-top:16px}.app-sidebar .nav-link{color:#eef5ff;border-radius:12px;padding:12px 14px;font-weight:600}.app-sidebar .nav-link i{width:24px}.app-sidebar .nav-link:hover,.app-sidebar .nav-link.active{background:rgba(255,255,255,.10);color:#fff}.app-sidebar .nav-link.active{border-left:4px solid var(--nsa-gold);background:rgba(255,255,255,.13)}.sidebar-help{border:1px solid rgba(255,255,255,.16);border-radius:15px;padding:14px;color:#dfeafe;font-size:.9rem}.sidebar-help i{color:var(--nsa-gold-2);font-size:1.35rem}.app-main{margin-left:285px;min-height:100vh;width:calc(100% - 285px);}.app-topbar{height:78px;background:#fff;border-bottom:1px solid #dde7f3;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:900}.content-wrap{padding:28px}.page-title{font-family:Georgia,serif;font-weight:700;color:#08245a}.stat-card{background:#fff;border:1px solid #dfe8f3;border-radius:18px;padding:18px;box-shadow:0 9px 25px rgba(10,42,90,.06)}.stat-card .stat-icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eff5ff;color:var(--nsa-blue);font-size:1.6rem}.table-card{background:white;border:1px solid #dfe8f3;border-radius:18px;box-shadow:0 9px 25px rgba(10,42,90,.06);overflow:hidden}.table thead th{font-size:.77rem;color:#173b74;background:#f6f9fd;text-transform:uppercase;letter-spacing:.04em}.form-section-title{font-family:Georgia,serif;font-weight:700;color:#08245a}.form-control,.form-select{border-color:#cbd8e8;border-radius:10px}.form-control:focus,.form-select:focus{border-color:var(--nsa-blue-2);box-shadow:0 0 0 .2rem rgba(6,40,90,.12)}.stepper{display:flex;gap:10px;align-items:start;overflow-x:auto}.stepper .step{flex:1;min-width:110px;text-align:center;position:relative}.stepper .circle{width:40px;height:40px;border-radius:50%;border:1px solid #cfdced;display:inline-flex;align-items:center;justify-content:center;background:#fff;font-weight:700;color:#60708c}.stepper .active .circle{background:var(--nsa-blue);color:white;border-color:var(--nsa-blue)}.process-line{height:4px;background:#e5edf7;border-radius:10px;position:relative}.process-line .done{height:4px;background:linear-gradient(90deg,var(--nsa-blue),var(--nsa-gold));border-radius:10px}.status-timeline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.status-step{text-align:center;flex:1}.status-step .big-circle{width:58px;height:58px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eef5ff;border:2px solid #cfdced;color:var(--nsa-blue);font-size:1.4rem}.status-step.done .big-circle{background:var(--nsa-blue);color:var(--nsa-gold-2);border-color:var(--nsa-blue)}.status-step.current .big-circle{background:#fff;border-color:var(--nsa-gold);color:var(--nsa-gold)}.pdf-page{background:white;border:1px solid #cfd7e6;padding:28px;max-width:880px;margin:auto;color:#0f2147}.print-only{display:none}@media print{.no-print,.app-sidebar,.app-topbar,.btn,.alert{display:none!important}.app-main{margin-left:0;width:100%}.content-wrap{padding:0}.pdf-page{border:0;max-width:100%;box-shadow:none}.print-only{display:block}body{background:white}}@media(max-width:992px){.app-sidebar{position:relative;width:100%;height:auto}.app-layout{display:block}.app-main{margin-left:0;width:100%}.app-topbar{position:relative}.status-timeline{flex-direction:column}.public-header .container{flex-direction:column}.brand-logo{width:62px;height:62px}}

/* Ajustes para módulos agregados: credenciales y trabajo global */
@media print {
  .app-sidebar, .topbar, .no-print, .btn, .alert-dismissible .btn-close { display:none !important; }
  .app-main { margin:0 !important; width:100% !important; }
  .content-wrap { padding:0 !important; }
  .soft-card, .table-card, .stat-card { box-shadow:none !important; border:1px solid #d9e2ef !important; }
  body { background:#fff !important; }
  a[href]:after { content:"" !important; }
}
.table-card table td .badge { font-size:.72rem; }

/* v5: ficha, foto y declaración jurada */
.declaracion-box{background:#f8fbff;border:1px solid #d8e3f5;border-radius:14px;padding:14px 16px;color:#0b2b5c}
@media print{
  .page-break-print{break-before:page; page-break-before:always;}
  .no-print, .app-sidebar, .topbar, .btn{display:none!important;}
}

/* v7.6.1: validación visual de ficha de inscripción */
#fichaInscripcionForm .is-invalid,
#fichaInscripcionForm .form-control.is-invalid,
#fichaInscripcionForm .form-select.is-invalid{
  border-color:#dc3545 !important;
  box-shadow:0 0 0 .2rem rgba(220,53,69,.12) !important;
}
#fichaInscripcionForm .nsa-group-invalid{
  border:1px solid #dc3545;
  border-radius:12px;
  padding:10px 12px;
  background:#fff7f8;
}
#fichaInscripcionForm .nsa-group-invalid .form-check-input{
  border-color:#dc3545;
}
#fichaValidationAlert{
  border-left:5px solid #dc3545;
}

/* v7.8.1: declaración jurada más clara y botones seguros */
.declaracion-card{border-left:6px solid var(--nsa-gold);}
.declaracion-icon{width:54px;height:54px;min-width:54px;border-radius:16px;background:linear-gradient(135deg,var(--nsa-blue),var(--nsa-blue-2));color:var(--nsa-gold-2);display:flex;align-items:center;justify-content:center;font-size:1.8rem;box-shadow:0 10px 22px rgba(6,40,90,.18)}
.declaracion-box ul{padding-left:1.2rem}
.declaracion-box li{margin-bottom:.35rem}
.declaracion-check{background:#fff8e6;border:1px solid #f3d58a;border-radius:14px;padding:14px 14px 14px 42px}
.declaracion-check .form-check-input{margin-left:-26px}


/* v7.8.2: estado visual de documentos cargados por postulante */
.docs-resumen-card{border-left:6px solid var(--nsa-blue)}
.docs-progress{height:20px;border-radius:999px;background:#e9f0fa;overflow:hidden}
.docs-progress .progress-bar{background:linear-gradient(90deg,var(--nsa-blue),var(--nsa-gold));font-weight:700;color:#fff}
.doc-row-uploaded{background:#f3fff7}
.doc-row-uploaded td{border-color:#d6f2df!important}
.doc-upload-btn{min-width:112px;font-weight:700;white-space:nowrap}
.doc-row-uploaded .doc-upload-btn{box-shadow:0 6px 14px rgba(25,135,84,.18)}
