:root{
  --bg:#f3f3f3;
  --surface:#ffffff;
  --surface-soft:#f6f6f6;
  --text:#1d2940;
  --muted:#5b667a;
  --line:#d6d9df;
  --primary:#273251;
  --primary-2:#3f4a75;
  --accent:#d9dbe6;
  --success:#087443;
  --danger:#b42318;
  --warning:#b54708;
  --shadow:0 16px 34px rgba(16,24,40,.08);
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Segoe UI",Inter,Roboto,Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* Auth */
.auth-body{min-height:100vh;background:linear-gradient(135deg,#0f3049,#17496b 50%,#f3f6f8 50%);display:grid;place-items:center;padding:24px}
.auth-shell{width:min(1040px,100%);display:grid;grid-template-columns:420px 1fr;gap:24px}
.auth-shell.single{grid-template-columns:1fr;max-width:760px}
.auth-card,.auth-panel{background:rgba(255,255,255,.96);border-radius:28px;padding:36px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.6)}
.auth-card.wide{width:100%}
.auth-logo{text-align:center;margin-bottom:12px}
.auth-logo img{height:82px}
.auth-card h1{margin:0 0 8px}
.auth-panel{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(160deg,#ffffff,#eef5f8)}
.auth-panel h2{font-size:36px;margin:0 0 12px;color:var(--primary)}
.muted{color:var(--muted)}

/* Forms */
.form{display:grid;gap:14px}
.form.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
.form label{font-weight:700;font-size:14px;color:#344054}
.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;background:#fff;outline:none}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--primary-2);box-shadow:0 0 0 4px rgba(63,74,117,.12)}
.full-field{grid-column:1/-1}
.filters{display:flex;gap:12px;flex-wrap:wrap}
.filters input{max-width:260px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:11px 16px;font-weight:700;cursor:pointer;background:#eef2f6;color:var(--primary);transition:.2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(16,24,40,.08)}
.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff}
.btn.secondary{background:#fff;color:var(--primary);border:1px solid var(--line)}
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}
.btn.danger{background:#fff1f0;color:var(--danger)}
.btn.full{width:100%}
.btn.small{padding:9px 12px;border-radius:10px;font-size:14px}
.btn.mini{padding:6px 8px;border-radius:8px;font-size:12px}
.inline-link{font-size:13px;font-weight:800;color:var(--primary)}

/* Alerts */
.alert{border-radius:14px;padding:12px 14px;margin:14px 0;font-weight:600}
.alert.success{background:#ecfdf3;color:#067647;border:1px solid #abefc6}
.alert.error{background:#fef3f2;color:#b42318;border:1px solid #fecdca}
.auth-links{display:flex;justify-content:space-between;margin-top:18px;color:var(--primary);font-weight:700}
.link{display:inline-block;margin-top:16px;color:var(--primary);font-weight:700}

/* Header / Navbar */
.topbar.portal-topbar{position:sticky;top:0;z-index:50;background:var(--primary);box-shadow:0 8px 22px rgba(16,24,40,.12)}
.topbar-main{display:grid;grid-template-columns:180px 1fr auto auto;align-items:center;gap:18px;padding:16px 28px 14px}
.portal-brand{display:flex;align-items:center;justify-content:center}
.portal-brand img{height:90px;width:auto;object-fit:contain}
.portal-title{text-align:center;color:#fff;font-size:24px;font-weight:800;letter-spacing:.02em}
.topbar-user-wrap{position:relative;display:flex;justify-content:flex-end}
.user-chip{display:flex;align-items:center;gap:10px;background:transparent;border:0;color:#fff;font:inherit;cursor:pointer;padding:8px 0}
.user-chip-icon{font-size:22px;line-height:1}
.user-chip-name{font-weight:600;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.user-chip-caret{font-size:12px}
.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:10px;display:none}
.user-dropdown.open{display:block}
.user-dropdown-head{padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:8px}
.user-dropdown-head strong{display:block}
.user-dropdown-head small{display:block;color:var(--muted);margin-top:4px;text-transform:capitalize}
.user-dropdown a{display:block;padding:10px;border-radius:10px;font-weight:700;color:var(--text)}
.user-dropdown a:hover{background:#f4f6fb}
.user-dropdown a.logout{color:var(--danger)}
.nav-toggle{display:none;border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:10px;padding:8px 10px;font-size:20px}
.portal-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:14px 28px 16px;background:#f7f7f7;border-top:1px solid rgba(255,255,255,.08)}
.nav-pill{display:flex;align-items:center;justify-content:center;min-height:40px;padding:10px 16px;background:linear-gradient(180deg,#fefefe,#dbdbdb);border:1px solid #bfc4cc;border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.12);font-size:14px;font-weight:700;text-align:center}
.nav-pill:hover{filter:brightness(.98)}

/* General Layout */
.container{width:min(1320px,calc(100% - 32px));margin:0 auto;padding:24px 0 42px}
.section{margin-top:34px}
.section-title{margin-bottom:16px}
.section-title h2,.page-head h1{margin:4px 0 8px;font-size:30px;color:#101828}
.section-title.center{text-align:center}
.cards-grid{display:grid;gap:18px}
.cards-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.cards-grid.support{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.cards-grid.companies{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.cards-grid.general{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.process-card,.support-card,.company-card,.general-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 10px 26px rgba(16,24,40,.04)}
.process-card.featured{min-height:260px;display:flex;flex-direction:column;justify-content:space-between}
.process-logo,.company-logo,.support-card span{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--primary-2));display:grid;place-items:center;color:#fff;font-size:24px;font-weight:900}
.process-card h3,.company-card h3{margin:14px 0 8px}
.process-card p,.company-card p{color:var(--muted)}
.support-card{display:flex;gap:14px;align-items:center;transition:.2s}
.support-card:hover,.general-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.support-card span{width:42px;height:42px;border-radius:14px;font-size:18px}
.general-card{display:grid;gap:8px}
.doc-icon{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;background:#fff7ed;color:#b54708;border-radius:16px;font-weight:900}
.page-head{background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;margin-bottom:22px;box-shadow:0 8px 24px rgba(16,24,40,.04)}
.page-head.split{display:flex;align-items:center;justify-content:space-between;gap:20px}
.breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);margin-bottom:16px;font-size:14px}
.breadcrumb a{color:var(--primary);font-weight:800}

/* Dashboard */
.portal-dashboard{padding-top:24px}
.welcome-section{display:grid;grid-template-columns:1.15fr 1.85fr;align-items:stretch;position:relative;margin-bottom:32px;min-height:360px}
.welcome-panel-left{background:var(--primary);min-height:292px;border-radius:0;display:flex;align-items:center;justify-content:center;padding:38px}
.welcome-emblem-wrap{width:100%;max-width:260px;display:flex;justify-content:center;align-items:center}
.welcome-emblem-wrap img{max-height:180px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.18))}
.welcome-panel-right{display:flex;align-items:center;margin-left:-110px;padding-right:24px}
.welcome-content-card{background:#fff;box-shadow:0 12px 34px rgba(0,0,0,.08);padding:38px 40px;min-height:332px;width:100%;display:flex;flex-direction:column;justify-content:center}
.welcome-content-card h1{font-size:38px;line-height:1.18;margin:0 0 16px;text-align:center;color:#1f2e4d}
.welcome-subtext{max-width:900px;margin:0 auto 10px;text-align:center;font-size:15px;line-height:1.7;color:#4f566c}
.welcome-quote{text-align:center;font-size:17px;line-height:1.6;color:#263659;margin:10px 0 18px}
.welcome-certs{display:flex;gap:22px;justify-content:center;align-items:flex-start;flex-wrap:wrap;margin-top:8px}
.cert-card-dashboard{display:flex;gap:14px;align-items:center;padding:8px 4px}
.cert-logo-wrap{width:110px;height:110px;display:flex;align-items:center;justify-content:center}
.cert-logo-wrap img{max-height:110px;object-fit:contain}
.cert-card-meta{display:grid;gap:6px;max-width:220px}
.cert-card-meta strong{font-size:15px;color:#24314f}
.cert-card-meta small{font-size:13px;color:var(--muted);line-height:1.45}

.section-band{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--primary);color:#fff;padding:14px 22px;margin-bottom:14px}
.section-band h2{margin:0;font-size:24px;font-weight:800}
.section-band-icon{width:40px;height:40px;border:2px solid rgba(255,255,255,.85);border-radius:10px;display:grid;place-items:center;font-size:22px;line-height:1}
.principal-grid-dashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#f3f3f3;border:1px solid #9097ad;border-top:0}
.principal-card-dashboard{padding:16px 26px 24px;background:#f3f3f3;border-right:1px solid #9097ad;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.principal-card-dashboard:last-child{border-right:0}
.principal-card-dashboard h3{font-size:20px;font-weight:700;margin:0;color:#1d2940}
.principal-logo-dashboard{height:110px;display:flex;align-items:center;justify-content:center}
.principal-logo-dashboard img{max-height:78px;max-width:175px;object-fit:contain}
.principal-card-dashboard p{margin:0;line-height:1.7;font-size:15px;color:#2b3040;text-align:justify;text-justify:inter-word;min-height:250px}

.support-dashboard-section{padding:18px 0 0}
.support-banner-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:220px;border:1px solid #9097ad;background:#f7f7f7;padding:30px 28px;text-align:center}
.support-banner-logo img{max-height:66px;object-fit:contain}
.support-banner-card p{margin:0;max-width:720px;font-size:18px;color:#2b3553;line-height:1.6}
.support-banner-card em{font-style:italic}

.mission-dashboard-section{padding-top:10px}
.mision-grid-dashboard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#f5f5f5;border:1px solid #9097ad}
.mision-card-dashboard{padding:24px 18px 22px;background:#f5f5f5;border-right:1px solid #9097ad;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:14px;min-height:256px}
.mision-card-dashboard:last-child{border-right:0}
.mision-logo-dashboard{height:94px;display:flex;align-items:center;justify-content:center}
.mision-logo-dashboard img{max-height:84px;max-width:180px;object-fit:contain}
.mision-card-dashboard h3{margin:0;font-size:18px;color:#1f2a45}
.mision-card-dashboard small{display:block;color:#556176;line-height:1.45}

.general-dashboard-section{margin-top:24px}
.general-grid-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #9097ad;border-left:0;border-top:0}
.general-card-dashboard{background:#f6f6f6;min-height:286px;padding:28px 30px;border-left:1px solid #9097ad;border-top:1px solid #9097ad;display:flex;flex-direction:column;gap:18px;transition:.2s}
.general-card-dashboard:hover{background:#fcfcfc;box-shadow:inset 0 0 0 1px rgba(39,50,81,.06)}
.general-card-head{display:flex;align-items:center;justify-content:flex-start;gap:20px}
.general-card-head h3{margin:0;font-size:21px;color:#1d2940}
.general-card-dashboard p{margin:0;color:#293247;line-height:1.7;max-width:480px}
.general-card-dashboard ul{margin:0;padding-left:18px;line-height:1.8;color:#24314c}
.general-icon{width:70px;height:70px;position:relative;flex:0 0 auto}
.general-icon.policy::before,.general-icon.policy::after,
.general-icon.audit::before,.general-icon.audit::after,
.general-icon.sgi::before,.general-icon.sgi::after,
.general-icon.measurement::before,.general-icon.measurement::after{content:"";position:absolute}
.general-icon.policy::before{left:10px;top:8px;width:40px;height:50px;border:3px solid #283352;border-radius:8px;background:linear-gradient(#fff,#f5f7fb)}
.general-icon.policy::after{left:24px;top:18px;width:24px;height:3px;background:#283352;box-shadow:0 8px 0 #283352,0 16px 0 #283352}
.general-icon.audit::before{left:12px;top:10px;width:34px;height:44px;border:3px solid #283352;border-radius:8px;background:#fff}
.general-icon.audit::after{right:8px;bottom:10px;width:24px;height:24px;border:4px solid #283352;border-radius:50%;box-shadow:-8px -18px 0 -10px #283352}
.general-icon.sgi::before{left:8px;bottom:8px;width:50px;height:40px;border-left:4px solid #283352;border-bottom:4px solid #283352;transform:skewX(-15deg)}
.general-icon.sgi::after{left:20px;top:4px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:18px solid #283352;box-shadow:18px 6px 0 0 #283352,-14px 16px 0 -4px rgba(40,51,82,.25)}
.general-icon.measurement::before{left:10px;bottom:14px;width:52px;height:4px;background:#283352}
.general-icon.measurement::after{left:16px;bottom:18px;width:38px;height:30px;border-left:4px solid #283352;border-bottom:4px solid #283352;transform:skew(-20deg);box-shadow:8px -6px 0 -1px #283352,16px -16px 0 -3px #283352,26px -10px 0 -1px #283352}

/* Existing components */
.accordion-list{display:grid;gap:12px}
.accordion-item{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.accordion-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:0;background:#fff;font:inherit;font-weight:900;color:#1d2939;cursor:pointer}
.accordion-head small{color:var(--muted)}
.accordion-body{display:none;padding:0 20px 20px}
.accordion-item.open .accordion-body{display:block}
.doc-list{display:grid;gap:12px}
.doc-row{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.doc-row h3{margin:0 0 6px}
.doc-row p{margin:0 0 8px;color:var(--muted)}
.doc-row small{color:var(--muted)}
.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.actions.inline{align-items:center}
.actions.inline form{display:inline}
.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:900}
.badge.ok{background:#ecfdf3;color:#067647}
.badge.off{background:#f2f4f7;color:#475467}
.badge.warn{background:#fffaeb;color:#b54708}
.empty{background:#fff;border:1px dashed var(--line);border-radius:18px;padding:22px;color:var(--muted)}
.admin-container .page-head{border-left:6px solid #8f9abf}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.kpi-grid article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 8px 20px rgba(16,24,40,.04)}
.kpi-grid strong{display:block;font-size:34px;color:var(--primary)}
.kpi-grid span{color:var(--muted);font-weight:700}
.admin-menu{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.admin-menu a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-weight:800;color:var(--primary)}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:800px}
th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#475467;background:#f8fafc}
td small{color:var(--muted)}

.viewer-page{height:calc(100vh - 78px);display:flex;flex-direction:column;background:#111827;color:#fff}
.viewer-toolbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid rgba(255,255,255,.12);background:#0b1220}
.secure-label{background:#ecfdf3;color:#067647;padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px}
.pdf-shell{position:relative;flex:1;margin:14px;border-radius:18px;overflow:hidden;background:#1f2937;border:1px solid rgba(255,255,255,.12)}
.pdf-shell iframe{width:100%;height:100%;border:0;background:#fff}
.watermark{position:absolute;z-index:3;inset:0;display:grid;place-items:center;pointer-events:none;color:rgba(18,60,90,.12);font-size:44px;font-weight:900;transform:rotate(-26deg);text-align:center}
.viewer-note{margin:0 18px 14px;color:#d0d5dd;font-size:13px}
.footer{display:flex;justify-content:space-between;gap:12px;padding:22px 32px;color:var(--muted);border-top:1px solid var(--line);background:#fff}

/* Utility */
.mt-18{margin-top:18px}.mt-24{margin-top:24px}.actions.left{justify-content:flex-start}
.split-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.check-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;cursor:pointer;transition:.2s}
.check-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(16,24,40,.06)}
.check-card.is-active{border-color:var(--primary-2);background:#f0f8fc}
.check-card input{width:auto;margin-top:4px;accent-color:var(--primary)}
.check-card span{display:grid;gap:6px}
.check-card strong{color:#1d2939}
.check-card small{color:var(--muted);line-height:1.35}
.check-card em{font-style:normal;color:var(--primary);font-weight:800;font-size:12px}
.form small.muted{display:block;margin-top:6px;font-size:12px}

/* Responsive */
@media (max-width:1180px){
  .principal-grid-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}
  .principal-card-dashboard:nth-child(2n){border-right:0}
  .mision-grid-dashboard{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px){
  .auth-shell{grid-template-columns:1fr}
  .topbar-main{grid-template-columns:120px 1fr auto auto;padding:14px 16px}
  .portal-brand img{height:64px}
  .portal-title{font-size:19px}
  .nav-toggle{display:block}
  .portal-nav{display:none;grid-template-columns:1fr;gap:10px;padding:12px 16px 16px}
  .portal-nav.open{display:grid}
  .container{width:min(100% - 24px,1320px)}
  .welcome-section{grid-template-columns:1fr}
  .welcome-panel-right{margin-left:0;padding-right:0;margin-top:-28px}
  .welcome-panel-left{min-height:220px}
  .welcome-content-card{padding:28px 20px}
  .welcome-content-card h1{font-size:30px}
  .principal-grid-dashboard{grid-template-columns:1fr;border-top:1px solid #9097ad}
  .principal-card-dashboard{border-right:0;border-bottom:1px solid #9097ad}
  .principal-card-dashboard:last-child{border-bottom:0}
  .principal-card-dashboard p{min-height:auto}
  .mision-grid-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}
  .general-grid-dashboard{grid-template-columns:1fr}
  .page-head.split,.doc-row{flex-direction:column;align-items:flex-start}
  .actions{justify-content:flex-start}
  .form.grid-2{grid-template-columns:1fr}
  .kpi-grid,.cards-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .auth-body{padding:12px}
  .auth-card,.auth-panel{padding:24px;border-radius:20px}
  .topbar-main{grid-template-columns:72px 1fr auto;gap:10px}
  .topbar-user-wrap{display:none}
  .portal-title{font-size:16px;line-height:1.25}
  .portal-brand img{height:52px}
  .welcome-content-card h1{font-size:26px}
  .welcome-certs{gap:10px}
  .cert-card-dashboard{flex-direction:column;text-align:center}
  .cert-logo-wrap{width:86px;height:86px}
  .mision-grid-dashboard{grid-template-columns:1fr}
  .general-card-head{flex-direction:column;align-items:flex-start;gap:12px}
  .kpi-grid,.cards-grid.four{grid-template-columns:1fr}
  .footer{flex-direction:column}
  .watermark{font-size:26px}
}
@media (max-width:720px){.split-row{flex-direction:column}.check-grid{grid-template-columns:1fr}}


/* =========================================================
   Ajustes solicitados: index/login, registro, recuperación
   y dashboard más visual
   ========================================================= */
.auth-page{
  min-height:100vh;
  background:#ffffff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 18px;
  color:#1e293f;
}
.auth-modern-shell{
  width:min(920px,100%);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:34px;
}
.auth-wide-shell{width:min(1120px,100%)}
.auth-compact-shell{width:min(980px,100%)}
.auth-brand-panel{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:520px;
  padding:26px 22px;
  position:relative;
}
.auth-main-logo{
  width:min(380px,92%);
  max-height:160px;
  object-fit:contain;
  margin-bottom:34px;
}
.auth-brand-message{
  max-width:440px;
}
.auth-brand-message span{
  display:inline-flex;
  color:#3f4a75;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:12px;
  margin-bottom:8px;
}
.auth-brand-message h1{
  margin:0 0 12px;
  font-size:34px;
  color:#1e293f;
}
.auth-brand-message p{
  margin:0;
  color:#59647a;
  line-height:1.7;
}
.auth-modern-card{
  width:100%;
  max-width:390px;
  background:#fff;
  padding:24px 12px 18px;
}
.auth-modern-card-wide{
  max-width:620px;
}
.auth-title-row{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
}
.auth-title-row img{
  width:76px;
  height:76px;
  object-fit:contain;
}
.auth-title-row h2{
  margin:0;
  font-size:28px;
  color:#1e293f;
}
.auth-card-note{
  margin:0 0 18px;
  color:#5c667a;
  line-height:1.6;
}
.auth-form-modern{
  display:grid;
  gap:12px;
}
.auth-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:18px;
  row-gap:14px;
}
.auth-form-modern label{
  color:#2f374c;
  font-size:14px;
  font-weight:600;
}
.auth-form-modern label span{
  color:#b42318;
}
.auth-form-modern input{
  width:100%;
  min-height:36px;
  border:1.5px solid #2c3548;
  border-radius:0;
  background:#fff;
  padding:8px 12px;
  font:inherit;
  outline:none;
}
.auth-form-modern input:focus{
  border-color:#3f4a75;
  box-shadow:0 0 0 4px rgba(63,74,117,.12);
}
.auth-inline-link{
  margin-top:-4px;
}
.auth-inline-link a,
.auth-bottom-text a{
  color:#1f293f;
  text-decoration:underline;
  font-weight:600;
}
.auth-submit,
.auth-secondary-btn{
  min-height:46px;
  border:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:#1f2b3a;
  color:#fff;
  font-weight:700;
  margin-top:22px;
  cursor:pointer;
  padding:12px 18px;
  transition:.2s;
}
.auth-submit:hover,
.auth-secondary-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(31,43,58,.15);
}
.auth-secondary-btn{
  background:#fff;
  color:#1f2b3a;
  border:1.5px solid #1f2b3a;
}
.auth-bottom-text{
  text-align:center;
  margin:18px 0 0;
  color:#2f374c;
}
.auth-modern-card .alert{
  margin:10px 0 16px;
}

/* Header más cercano al diseño de referencia */
.topbar-main{
  grid-template-columns:220px 1fr auto auto;
  min-height:110px;
}
.portal-brand img{
  height:104px;
}
.portal-title{
  font-size:26px;
  text-transform:uppercase;
}
.user-chip-icon{
  font-size:24px;
}
.user-chip-name{
  font-size:15px;
  font-weight:800;
}
.nav-pill{
  gap:10px;
  font-size:14px;
}
.nav-pill-icon{
  width:28px;
  height:28px;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  background:rgba(39,50,81,.1);
  color:#273251;
  font-weight:900;
  font-size:17px;
}

/* Dashboard: logos y elementos auxiliares más grandes */
.welcome-section{
  min-height:410px;
}
.welcome-panel-left{
  min-height:340px;
}
.welcome-emblem-wrap{
  max-width:360px;
}
.welcome-emblem-wrap img{
  max-height:260px;
}
.welcome-content-card{
  min-height:380px;
}
.welcome-content-card h1{
  font-size:42px;
}
.welcome-subtitle{
  margin:0 0 12px;
  text-align:center;
  color:#273251;
  font-size:21px;
  font-weight:800;
}
.cert-logo-wrap{
  width:150px;
  height:150px;
}
.cert-logo-wrap img{
  max-height:150px;
}
.cert-card-meta strong{
  font-size:17px;
}
.principal-card-dashboard{
  padding:22px 32px 30px;
}
.principal-card-dashboard h3{
  font-size:23px;
}
.principal-logo-dashboard{
  height:155px;
}
.principal-logo-dashboard img{
  max-height:118px;
  max-width:255px;
}
.principal-card-dashboard p{
  font-size:15.5px;
}
.support-banner-logo img{
  max-height:95px;
  max-width:320px;
}
.mision-card-dashboard{
  min-height:330px;
  padding:30px 20px;
}
.mision-logo-dashboard{
  height:150px;
}
.mision-logo-dashboard img{
  max-height:135px;
  max-width:270px;
}
.mision-card-dashboard h3{
  font-size:20px;
}
.general-card-dashboard{
  min-height:315px;
  padding:34px 42px;
}
.general-icon{
  width:92px;
  height:92px;
  transform:scale(1.25);
  margin:10px 20px 10px 6px;
}
.general-card-head h3{
  font-size:23px;
}
.general-card-dashboard p,
.general-card-dashboard li{
  font-size:15.5px;
}

/* Mejor experiencia en pantallas pequeñas */
@media (max-width:980px){
  .auth-modern-shell,
  .auth-wide-shell,
  .auth-compact-shell{
    grid-template-columns:1fr;
    gap:10px;
  }
  .auth-brand-panel{
    min-height:auto;
    padding:18px 10px 4px;
  }
  .auth-main-logo{
    max-height:130px;
    margin-bottom:18px;
  }
  .auth-brand-message{
    display:none;
  }
  .auth-modern-card,
  .auth-modern-card-wide{
    max-width:620px;
    margin:0 auto;
  }
  .topbar-main{
    grid-template-columns:120px 1fr auto auto;
    min-height:92px;
  }
  .portal-brand img{
    height:78px;
  }
  .principal-logo-dashboard img{
    max-width:300px;
  }
}
@media (max-width:620px){
  .auth-page{
    align-items:flex-start;
    padding-top:24px;
  }
  .auth-form-grid{
    grid-template-columns:1fr;
  }
  .auth-title-row{
    justify-content:center;
    text-align:center;
    flex-direction:column;
  }
  .auth-title-row img{
    width:68px;
    height:68px;
  }
  .auth-title-row h2{
    font-size:25px;
  }
  .auth-submit,
  .auth-secondary-btn{
    width:100%;
    margin-top:12px;
  }
  .topbar-main{
    grid-template-columns:78px 1fr auto;
    min-height:80px;
  }
  .portal-brand img{
    height:62px;
  }
  .portal-title{
    font-size:16px;
  }
  .welcome-content-card h1{
    font-size:28px;
  }
  .welcome-subtitle{
    font-size:17px;
  }
  .cert-logo-wrap{
    width:118px;
    height:118px;
  }
  .cert-logo-wrap img{
    max-height:118px;
  }
  .principal-logo-dashboard{
    height:130px;
  }
  .principal-logo-dashboard img{
    max-height:100px;
  }
  .mision-card-dashboard{
    min-height:275px;
  }
  .mision-logo-dashboard{
    height:120px;
  }
  .mision-logo-dashboard img{
    max-height:108px;
  }
  .general-icon{
    transform:scale(1.1);
    margin:6px 0;
  }
}

/* =========================================================
   SGI v3: login limpio, footer institucional, iconos SVG
   y apartados documentales por sección
   ========================================================= */
.nav-svg,.user-chip-svg,.section-band-svg,.portal-back-svg,.portal-section-svg,.portal-upload-svg,.portal-pdf-svg,.general-svg-icon{display:inline-block;vertical-align:middle;flex:0 0 auto}
.nav-svg{width:22px;height:22px;color:#273251}
.user-chip-svg{width:22px;height:22px;color:#fff}
.section-band-svg{width:30px;height:30px;color:#fff}
.general-svg-icon{width:95px;height:95px;color:#273251;margin-right:8px}
.portal-back-svg{width:44px;height:44px;color:#111827}
.portal-section-svg{width:58px;height:58px;color:#202b45}
.portal-upload-svg{width:20px;height:20px;color:#273251}
.portal-pdf-svg{width:28px;height:28px;color:#b42318}

/* Footer igual al estilo compartido */
.footer.portal-footer{background:#273251;color:#fff;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:82px;padding:18px 20px;text-align:center;font-size:14px}
.footer.portal-footer .privacy-link{color:#fff;text-decoration:none;font-weight:500}
.footer.portal-footer .privacy-link:hover{text-decoration:underline}

/* Auth pages: diseño limpio tipo imagen compartida */
.auth-clean-page{min-height:100vh;background:#fff;color:#1f293f;display:flex;flex-direction:column;margin:0}
.auth-clean-main{flex:1;width:min(650px,calc(100% - 32px));margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:44px 0 34px}
.auth-clean-main-wide{width:min(860px,calc(100% - 32px))}
.auth-clean-logo{width:min(370px,92%);max-height:150px;object-fit:contain;margin:0 auto 34px}
.auth-clean-card{width:100%;max-width:360px;margin:0 auto;background:#fff;padding:0 8px 20px}
.auth-register-card{max-width:760px}
.auth-clean-title{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:22px;color:#1f293f}
.auth-clean-title img{width:78px;height:78px;object-fit:contain}
.auth-clean-title h1{margin:0;font-size:29px;line-height:1.1;color:#1f293f}
.auth-clean-title p{margin:8px 0 0;color:#5b667a;line-height:1.55;font-size:14px}
.auth-clean-form{display:grid;gap:12px;width:100%}
.auth-clean-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.auth-clean-form label{font-size:14px;color:#30384c;font-weight:500}
.auth-clean-form label span{color:#b42318}
.auth-clean-form input{width:100%;border:1.5px solid #222b3b;border-radius:0;background:#fff;height:38px;padding:7px 12px;font:inherit;outline:none}
.auth-clean-form input:focus{border-color:#3f4a75;box-shadow:0 0 0 4px rgba(63,74,117,.12)}
.auth-link-left{display:inline-block;justify-self:start;margin-top:-4px;color:#29344a;text-decoration:underline;font-size:13px}
.auth-clean-submit,.auth-clean-secondary{height:46px;border:0;background:#1f2b3a;color:#fff;font-weight:700;margin-top:22px;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:0 18px;cursor:pointer;transition:.2s}
.auth-clean-submit:hover,.auth-clean-secondary:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(31,43,58,.15)}
.auth-clean-secondary{background:#fff;color:#1f2b3a;border:1.5px solid #1f2b3a;text-decoration:none}
.auth-clean-bottom{text-align:center;margin:18px 0 0;color:#2f374c}
.auth-clean-bottom a{color:#1f293f;text-decoration:underline;font-weight:600}
.auth-page-footer{flex:0 0 auto}

/* Header / navegación refinada */
.topbar-main{grid-template-columns:220px 1fr auto auto;min-height:110px}
.portal-brand img{height:104px}.portal-title{font-size:26px;text-transform:uppercase}.user-chip{gap:10px}.user-chip-name{font-size:15px;font-weight:800}.portal-nav{gap:10px}.nav-pill{gap:10px;min-height:46px;font-size:14px}.nav-pill span{display:inline-block}.nav-pill:hover .nav-svg{transform:scale(1.07)}

/* Dashboard refinements */
.welcome-emblem-wrap{max-width:380px}.welcome-emblem-wrap img{max-height:280px}.welcome-content-card h1{font-size:42px}.welcome-subtitle{text-align:center;color:#273251;font-weight:900;font-size:21px;margin:0 0 12px}.cert-logo-wrap{width:150px;height:150px}.cert-logo-wrap img{max-height:150px}.principal-logo-dashboard{height:155px;display:flex;align-items:center;justify-content:center;transition:.2s}.principal-logo-dashboard:hover{transform:translateY(-3px) scale(1.03)}.principal-logo-dashboard img{max-height:118px;max-width:255px}.principal-card-dashboard .btn.small{min-width:90px}.support-banner-logo img{max-height:105px;max-width:340px}.mision-card-dashboard{min-height:330px}.mision-logo-dashboard{height:150px}.mision-logo-dashboard img{max-height:135px;max-width:270px}.general-card-head{gap:24px}.general-icon{display:none}.section-band-icon{width:44px;height:44px;border:2px solid rgba(255,255,255,.9);border-radius:12px;display:grid;place-items:center}

/* Páginas nuevas: Manual, Certificaciones, Lista, Normatividad */
.portal-section-page{padding-top:28px}.portal-section-head{position:relative;text-align:center;min-height:155px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:1px solid #273251;margin-bottom:34px}.portal-section-head .portal-back{position:absolute;left:18%;top:38px;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;transition:.2s}.portal-section-head .portal-back:hover{background:#f0f2f6;transform:translateX(-3px)}.portal-title-card{background:#fff;min-width:320px;padding:28px 46px;box-shadow:0 12px 28px rgba(16,24,40,.07)}.portal-title-card h1{margin:0;color:#111827;font-size:26px}.portal-section-head p{max-width:760px;color:#5b667a;margin:18px auto 8px;font-size:14px}.portal-section-head strong{color:#273251;font-size:15px}.portal-alert{width:min(980px,100%);margin:0 auto 20px}.portal-doc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #9aa1b2;border-top:0;border-left:0;background:#f6f6f6}.portal-doc-grid.norm-grid{grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #9aa1b2}.portal-doc-section{min-height:270px;border-left:1px solid #9aa1b2;border-top:1px solid #9aa1b2;background:#f8f8f8;padding:26px 24px;display:flex;flex-direction:column;gap:18px}.portal-doc-main{text-align:center;display:flex;flex-direction:column;align-items:center;gap:13px}.portal-doc-icon{width:88px;height:88px;display:grid;place-items:center}.portal-doc-logo{height:92px;display:flex;align-items:center;justify-content:center}.portal-doc-logo img{max-height:84px;max-width:180px;object-fit:contain}.portal-doc-main h2{font-size:18px;line-height:1.25;color:#14203a;margin:0}.portal-doc-main p{font-size:14px;line-height:1.55;color:#4c566d;margin:0}.portal-doc-count{display:inline-flex;border:1px solid #ccd1dc;border-radius:999px;padding:5px 10px;color:#273251;font-size:12px;font-weight:800;background:#fff}.portal-documents-list{display:grid;gap:10px;margin-top:auto}.portal-empty-doc{border:1px dashed #c7cbd5;background:#fff;border-radius:12px;padding:12px;text-align:center;color:#667085;font-size:13px}.portal-document-row{background:#fff;border:1px solid #dde1e8;border-radius:14px;padding:12px;display:grid;gap:10px}.portal-document-info{display:flex;gap:10px;align-items:flex-start;text-align:left}.portal-document-info strong{font-size:14px;color:#1d2940}.portal-document-info small,.portal-document-info em{display:block;font-size:12px;color:#667085;margin-top:4px;font-style:normal}.portal-document-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.portal-upload-box{background:#fff;border:1px solid #dde1e8;border-radius:14px;padding:10px}.portal-upload-box summary{cursor:pointer;font-weight:900;color:#273251;display:flex;align-items:center;gap:8px}.portal-upload-form{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}.portal-upload-form label{font-size:12px;font-weight:800;color:#344054}.portal-upload-form input,.portal-upload-form select,.portal-upload-form textarea{width:100%;border:1px solid #c9ced8;border-radius:10px;padding:9px;font:inherit}.portal-upload-form .full-field{grid-column:1/-1}.portal-upload-form button{grid-column:1/-1}.normatividad-page .portal-doc-section{min-height:260px}.normatividad-page .portal-doc-icon{width:78px;height:78px}.normatividad-page .portal-section-svg{width:66px;height:66px}.certificaciones-page .portal-doc-logo{height:118px}.certificaciones-page .portal-doc-logo img{max-height:108px;max-width:210px}

@media (max-width:1180px){.portal-doc-grid,.portal-doc-grid.norm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-section-head .portal-back{left:6%}}
@media (max-width:980px){.portal-doc-grid,.portal-doc-grid.norm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-main{grid-template-columns:120px 1fr auto auto;min-height:92px}.portal-brand img{height:78px}.portal-title{font-size:19px}.portal-nav{display:none}.portal-nav.open{display:grid}.nav-toggle{display:block}.auth-clean-main{justify-content:flex-start;padding-top:36px}.auth-clean-logo{max-height:135px;margin-bottom:22px}}
@media (max-width:640px){.auth-clean-grid,.portal-upload-form{grid-template-columns:1fr}.auth-clean-title{flex-direction:column;text-align:center;gap:10px}.auth-clean-title img{width:70px;height:70px}.auth-clean-title h1{font-size:25px}.auth-clean-submit,.auth-clean-secondary{width:100%;margin-top:10px}.portal-doc-grid,.portal-doc-grid.norm-grid{grid-template-columns:1fr}.portal-title-card{min-width:0;width:100%;padding:22px 24px}.portal-section-head .portal-back{position:static;margin-bottom:12px}.portal-section-head{min-height:auto;padding-bottom:22px}.topbar-main{grid-template-columns:78px 1fr auto;min-height:80px}.portal-brand img{height:62px}.portal-title{font-size:16px}.general-svg-icon{width:76px;height:76px}.footer.portal-footer{font-size:12px}}


/* =========================================================
   Proceso detalle: apartados documentales en cuadrícula
   ========================================================= */
.proceso-detalle-page .process-section-head,
.proceso-apartado-page .process-section-head{
  margin-top:4px;
}
.process-head-actions{
  margin-top:16px;
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.process-apartados-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid #9aa1b2;
}
.process-apartado-card{
  min-height:300px;
  transition:.22s ease;
  position:relative;
}
.process-apartado-card:hover{
  background:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(16,24,40,.08);
  z-index:2;
}
.process-apartado-main-link{
  display:flex;
  flex:1;
  color:inherit;
}
.process-apartado-icon{
  width:104px;
  height:104px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 10px 24px rgba(16,24,40,.06);
  color:#273251;
}
.process-apartado-icon .portal-section-svg{
  width:68px;
  height:68px;
}
.process-card-actions{
  display:flex;
  justify-content:center;
  margin-top:auto;
}
.process-card-actions .btn{
  min-width:92px;
}
.process-empty{
  width:min(900px,100%);
  margin:0 auto;
  text-align:center;
}
.process-apartado-title-card{
  display:grid;
  place-items:center;
  gap:8px;
}
.process-title-icon{
  width:78px;
  height:78px;
  border-radius:22px;
  display:grid;
  place-items:center;
  color:#273251;
  background:#f4f6fb;
}
.process-title-icon .portal-section-svg{
  width:52px;
  height:52px;
}
.warning-text{
  color:#b54708!important;
}
.process-upload-box{
  width:min(1080px,100%);
  margin:0 auto 28px;
  padding:16px 18px;
}
.process-upload-box summary{
  font-size:16px;
}
.process-upload-form{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.file-grid-section{
  margin-top:24px;
}
.process-files-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:18px;
}
.process-file-card{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:22px;
  min-height:300px;
  padding:22px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:16px;
  box-shadow:0 10px 28px rgba(16,24,40,.04);
  transition:.22s ease;
}
.process-file-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 38px rgba(16,24,40,.08);
}
.process-file-icon{
  width:96px;
  height:96px;
  border-radius:28px;
  display:grid;
  place-items:center;
  background:#fff4f3;
  color:#b42318;
}
.process-file-svg{
  width:58px;
  height:58px;
}
.process-file-info{
  display:grid;
  gap:8px;
  width:100%;
}
.process-file-info h2{
  margin:0;
  font-size:18px;
  color:#1d2940;
  line-height:1.25;
}
.process-file-info p{
  margin:0;
  color:#59647a;
  line-height:1.5;
  font-size:14px;
}
.process-file-info small{
  display:block;
  color:#667085;
  font-size:12px;
}
.process-file-actions{
  margin-top:auto;
  display:flex;
  gap:8px;
  justify-content:center;
  flex-wrap:wrap;
}
@media (max-width:1180px){
  .process-apartados-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px){
  .process-apartados-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .process-apartados-grid{grid-template-columns:1fr}
  .process-upload-form{grid-template-columns:1fr}
  .process-upload-form .full-field{grid-column:auto}
  .process-file-card{min-height:260px}
}


/* =========================================================
   Ajustes visuales: procesos de soporte con iconos,
   encabezado de detalle con icono y footer sin espacio blanco
   ========================================================= */
html,
body{
  min-height:100%;
}
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
body > main,
body > main.container{
  flex:1 0 auto;
}
.footer.portal-footer{
  flex-shrink:0;
  margin-top:auto;
}

.procesos-list-page{
  width:min(1120px,calc(100% - 32px));
}
.process-list-head{
  min-height:175px;
}
.process-list-head .portal-title-card{
  min-width:390px;
  display:grid;
  place-items:center;
  gap:8px;
}
.support-process-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin:8px auto 36px;
}
.support-process-card{
  background:#fff;
  border:1px solid #d6d9e3;
  border-radius:18px;
  padding:18px 18px;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:94px;
  box-shadow:0 10px 26px rgba(16,24,40,.04);
  transition:.22s ease;
}
.support-process-card:hover{
  transform:translateY(-3px);
  border-color:#9aa4c2;
  box-shadow:0 18px 38px rgba(16,24,40,.09);
}
.support-process-icon{
  width:58px;
  height:58px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:#f4f6fb;
  color:#273251;
  flex:0 0 auto;
}
.support-process-svg{
  width:34px;
  height:34px;
}
.support-process-card strong{
  display:block;
  color:#152039;
  font-size:16px;
  line-height:1.25;
}
.support-process-card small{
  display:block;
  margin-top:5px;
  color:#667085;
  font-size:12px;
  line-height:1.35;
}
.process-title-card-with-icon{
  display:grid;
  place-items:center;
  gap:9px;
  min-width:360px;
}
.process-title-card-with-icon .process-title-icon,
.process-list-head .process-title-icon{
  width:76px;
  height:76px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:#f4f6fb;
  color:#273251;
  box-shadow:0 10px 24px rgba(16,24,40,.06);
}
.process-title-card-with-icon .portal-section-svg,
.process-list-head .portal-section-svg{
  width:48px;
  height:48px;
}
.proceso-detalle-page .portal-title-card h1{
  margin-top:2px;
}
@media (max-width:980px){
  .support-process-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:620px){
  .procesos-list-page{
    width:min(100% - 24px,1120px);
  }
  .support-process-grid{
    grid-template-columns:1fr;
  }
  .process-list-head .portal-title-card,
  .process-title-card-with-icon{
    min-width:0;
    width:100%;
  }
}


/* =========================================================
   V3: navegación admin, tarjetas sin líneas y soporte 4 cols
   ========================================================= */
html, body{
  min-height:100vh;
}
body{
  display:flex;
  flex-direction:column;
}
body > main,
body > main.container{
  flex:1 0 auto;
}
.footer.portal-footer{
  margin-top:auto;
  flex-shrink:0;
}

/* Menú contextual de administración */
.admin-context-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 22px 12px;
  background:#eef0f5;
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 24px rgba(16,24,40,.06);
  flex-wrap:wrap;
}
.admin-context-nav a,
.admin-context-nav button{
  border:1px solid #cfd4df;
  background:#fff;
  color:#273251;
  border-radius:999px;
  min-height:38px;
  padding:8px 14px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font:inherit;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition:.18s ease;
}
.admin-context-nav a:hover,
.admin-context-nav button:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(16,24,40,.08);
}
.admin-context-svg{
  width:18px;
  height:18px;
}

/* Panel admin más visual */
.admin-dashboard-page{
  width:min(1180px,calc(100% - 32px));
}
.admin-hero{
  background:#fff;
  border:1px solid #d9dde8;
  border-left:6px solid #7e89b0;
  border-radius:24px;
  padding:28px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  box-shadow:0 14px 34px rgba(16,24,40,.06);
  margin-bottom:20px;
}
.admin-hero.compact{
  margin-bottom:18px;
}
.admin-hero h1{
  margin:6px 0 10px;
  font-size:30px;
  color:#111827;
}
.admin-hero p{
  margin:0;
  color:#4c566d;
  line-height:1.6;
}
.admin-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.btn-svg{
  width:18px;
  height:18px;
}
.admin-kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  margin:18px 0;
}
.admin-kpi-grid article{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:20px;
  padding:20px;
  display:flex;
  gap:14px;
  align-items:center;
  min-height:108px;
  box-shadow:0 10px 26px rgba(16,24,40,.04);
}
.admin-kpi-svg{
  width:42px;
  height:42px;
  color:#273251;
  background:#f4f6fb;
  border-radius:14px;
  padding:9px;
  flex:0 0 auto;
}
.admin-kpi-grid strong{
  display:block;
  font-size:30px;
  color:#273251;
  line-height:1;
}
.admin-kpi-grid span{
  display:block;
  color:#667085;
  font-weight:800;
  margin-top:6px;
  font-size:13px;
}
.admin-action-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin:20px 0 22px;
}
.admin-action-card{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:22px;
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:16px;
  min-height:210px;
  box-shadow:0 12px 28px rgba(16,24,40,.045);
  transition:.22s ease;
}
.admin-action-card:hover{
  transform:translateY(-3px);
  border-color:#9aa4c2;
  box-shadow:0 18px 40px rgba(16,24,40,.09);
}
.admin-action-icon{
  width:66px;
  height:66px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:#f4f6fb;
  color:#273251;
}
.admin-action-svg{
  width:38px;
  height:38px;
}
.admin-action-card h2{
  margin:0 0 8px;
  font-size:18px;
}
.admin-action-card p{
  margin:0;
  color:#667085;
  line-height:1.5;
  font-size:14px;
}
.admin-log-panel{
  border-radius:24px;
}

/* Formularios admin de edición con iconos */
.admin-form-panel{
  border-radius:24px;
  margin-bottom:18px;
}
.admin-edit-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-bottom:30px;
}
.admin-edit-card{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:24px;
  padding:22px;
  box-shadow:0 12px 30px rgba(16,24,40,.045);
}
.admin-edit-card-head{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid #eef0f5;
}
.admin-edit-icon{
  width:72px;
  height:72px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:#f4f6fb;
  color:#273251;
  flex:0 0 auto;
}
.admin-edit-svg{
  width:42px;
  height:42px;
}
.admin-uploaded-icon{
  width:52px;
  height:52px;
  object-fit:contain;
}
.admin-edit-card h2{
  margin:0 0 6px;
  font-size:19px;
}
.admin-inline-form{
  gap:10px;
}
.admin-inline-form textarea{
  resize:vertical;
}
.inline-check{
  display:flex!important;
  gap:8px;
  align-items:center;
  color:#667085!important;
  font-weight:700!important;
}
.inline-check input{
  width:auto!important;
}

/* Iconos personalizados públicos */
.support-process-custom-icon,
.process-title-custom-icon,
.process-apartado-custom-icon{
  width:100%;
  height:100%;
  object-fit:contain;
}
.process-title-custom-icon{
  max-width:56px;
  max-height:56px;
}
.support-process-custom-icon{
  max-width:58px;
  max-height:58px;
}
.process-apartado-custom-icon{
  max-width:72px;
  max-height:72px;
}

/* Cuadrículas sin líneas tipo tabla */
.principal-grid-dashboard,
.mision-grid-dashboard,
.general-grid-dashboard,
.portal-doc-grid,
.portal-doc-grid.norm-grid,
.process-apartados-grid{
  border:0!important;
  background:transparent!important;
  gap:18px!important;
}
.principal-card-dashboard,
.mision-card-dashboard,
.general-card-dashboard,
.portal-doc-section,
.process-apartado-card{
  border:1px solid #dde1eb!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(16,24,40,.045)!important;
}
.principal-card-dashboard,
.mision-card-dashboard,
.portal-doc-section,
.general-card-dashboard{
  border-right:1px solid #dde1eb!important;
  border-top:1px solid #dde1eb!important;
}
.general-grid-dashboard{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.portal-doc-grid.norm-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

/* Procesos de soporte: 4 columnas y tarjetas más grandes */
.support-process-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:20px!important;
  margin:18px auto 42px!important;
}
.support-process-card{
  min-height:190px!important;
  padding:26px 22px!important;
  border-radius:24px!important;
  flex-direction:column!important;
  justify-content:center!important;
  text-align:center!important;
  gap:18px!important;
}
.support-process-icon{
  width:86px!important;
  height:86px!important;
  border-radius:26px!important;
}
.support-process-svg{
  width:50px!important;
  height:50px!important;
}
.support-process-card strong{
  font-size:17px!important;
}
.support-process-card small{
  font-size:13px!important;
  line-height:1.45!important;
}

/* Ajustes responsivos */
@media (max-width:1180px){
  .admin-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .support-process-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .portal-doc-grid.norm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px){
  .admin-hero{flex-direction:column;align-items:flex-start}
  .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-edit-grid{grid-template-columns:1fr}
  .support-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:620px){
  .admin-context-nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}
  .admin-context-nav a,
  .admin-context-nav button{white-space:nowrap}
  .admin-kpi-grid,
  .admin-action-grid,
  .support-process-grid,
  .portal-doc-grid.norm-grid,
  .general-grid-dashboard{grid-template-columns:1fr!important}
}


/* =========================================================
   Ajuste puntual: proceso_detalle
   - encabezado con icono a la izquierda y título a la derecha
   - flecha de regreso a listado de procesos
   - grid centrado y mejor alineado
   ========================================================= */
.proceso-detalle-page .process-section-head{
  text-align:center;
}
.proceso-detalle-page .process-section-head .portal-back{
  left:12%;
  top:52px;
}
.process-title-card-row{
  min-width:420px;
  display:grid!important;
  grid-template-columns:92px 1fr;
  align-items:center;
  justify-items:start;
  gap:22px;
  text-align:left;
  padding:28px 42px!important;
}
.process-title-card-row .process-title-icon{
  width:82px;
  height:82px;
  border-radius:24px;
  display:grid;
  place-items:center;
  background:#f4f6fb;
  color:#273251;
  box-shadow:0 10px 24px rgba(16,24,40,.06);
}
.process-title-card-row .portal-section-svg{
  width:54px;
  height:54px;
}
.process-title-card-row .process-title-custom-icon{
  max-width:62px;
  max-height:62px;
  object-fit:contain;
}
.process-title-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.process-title-copy .eyebrow{
  color:#475467;
  letter-spacing:0;
  text-transform:none;
  font-size:14px;
  font-weight:700;
  margin-bottom:8px;
}
.process-title-copy h1{
  margin:0;
  font-size:30px;
  line-height:1.15;
  color:#111827;
}
.process-apartados-grid{
  align-items:stretch;
}
.process-apartado-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:space-between!important;
  text-align:center!important;
  padding:30px 24px!important;
}
.process-apartado-main-link{
  width:100%;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.process-apartado-card .portal-doc-main{
  width:100%;
  min-height:238px;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
  gap:14px!important;
}
.process-apartado-card .portal-doc-main h2{
  width:100%;
  margin:0!important;
  text-align:center!important;
  font-size:18px!important;
  line-height:1.25!important;
}
.process-apartado-card .portal-doc-main p{
  width:min(100%,260px);
  margin:0 auto!important;
  text-align:center!important;
  line-height:1.55!important;
}
.process-apartado-card .portal-doc-count{
  margin:4px auto 0!important;
}
.process-apartado-icon{
  margin:0 auto!important;
  display:grid!important;
  place-items:center!important;
}
.process-apartado-custom-icon{
  display:block;
  margin:auto;
}
.process-card-actions{
  width:100%;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
}
@media (max-width:980px){
  .proceso-detalle-page .process-section-head .portal-back{
    left:4%;
  }
  .process-title-card-row{
    min-width:0;
    width:min(520px,100%);
  }
}
@media (max-width:620px){
  .process-title-card-row{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    padding:24px 24px!important;
  }
  .process-title-copy{
    align-items:center;
    text-align:center;
  }
  .process-title-copy h1{
    font-size:25px;
    text-align:center;
  }
}


/* =========================================================
   Módulo: Iconos auxiliares configurables
   ========================================================= */
.admin-aux-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:18px 0 22px;
}
.admin-aux-tabs a{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:999px;
  padding:10px 16px;
  font-weight:800;
  color:#273251;
  box-shadow:0 8px 18px rgba(16,24,40,.04);
}
.aux-module-panel{
  border-radius:24px;
  margin-bottom:24px;
}
.aux-icons-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.aux-icon-card{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:24px;
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:16px;
  box-shadow:0 10px 26px rgba(16,24,40,.04);
}
.aux-preview{
  width:86px;
  height:86px;
  border-radius:26px;
  background:#f4f6fb;
  color:#273251;
  display:grid;
  place-items:center;
}
.aux-preview-svg{
  width:52px;
  height:52px;
}
.aux-preview-img{
  width:64px;
  height:64px;
  object-fit:contain;
}
.aux-info h3{
  margin:0 0 8px;
  font-size:18px;
  color:#111827;
}
.aux-info p{
  margin:0 0 10px;
  color:#59647a;
  line-height:1.45;
}
.aux-info small{
  color:#667085;
  line-height:1.5;
}
.aux-icon-form{
  margin-top:auto;
  display:grid;
  gap:10px;
}
.aux-icon-form label{
  font-weight:800;
  color:#344054;
  font-size:13px;
}
.aux-icon-form input[type="file"]{
  border:1px solid #d9dde8;
  border-radius:12px;
  padding:10px;
  background:#fff;
}
.aux-custom-icon,
.nav-custom-icon,
.section-band-custom-icon,
.dashboard-aux-custom-icon,
.general-custom-icon,
.aux-section-custom-icon{
  display:block;
  object-fit:contain;
}
.nav-custom-icon{
  width:22px;
  height:22px;
}
.section-band-custom-icon{
  width:32px;
  height:32px;
}
.dashboard-aux-icon{
  width:64px;
  height:64px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid #d9dde8;
  margin:0 auto 12px;
  color:#273251;
  box-shadow:0 10px 22px rgba(16,24,40,.05);
}
.dashboard-aux-svg,
.dashboard-aux-custom-icon{
  width:38px;
  height:38px;
}
.title-with-aux-icon{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.general-custom-icon{
  width:95px;
  height:95px;
}
.aux-section-custom-icon{
  width:68px;
  height:68px;
}
@media (max-width:1180px){
  .aux-icons-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .aux-icons-grid{grid-template-columns:1fr}
}


/* =========================================================
   Ajuste index: quitar iconos marcados, soporte más grande,
   y sección Buzón de quejas / sugerencias
   ========================================================= */
.portal-dashboard .welcome-section{
  grid-template-columns:1fr!important;
  min-height:auto!important;
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
}
.portal-dashboard .welcome-panel-right{
  margin-left:0!important;
  padding-right:0!important;
  width:100%;
}
.portal-dashboard .welcome-content-card{
  width:100%;
  min-height:330px;
  padding:42px 48px;
}
.support-dashboard-section .section-title,
.mission-dashboard-section .section-title{
  margin-bottom:16px;
}
.support-banner-card{
  min-height:260px!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#f7f7f7!important;
}
.support-banner-logo img{
  max-height:135px!important;
  max-width:430px!important;
  width:auto;
  object-fit:contain;
}
.buzon-dashboard-section{
  margin-top:28px;
  margin-bottom:34px;
}
.buzon-card{
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:24px;
  padding:28px 34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  box-shadow:0 14px 34px rgba(16,24,40,.06);
}
.buzon-copy h2{
  margin:6px 0 8px;
  font-size:26px;
  color:#111827;
}
.buzon-copy p{
  margin:0;
  color:#59647a;
  line-height:1.6;
}
.buzon-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.buzon-link{
  min-width:210px;
  min-height:72px;
  border:1px solid #d9dde8;
  border-radius:18px;
  background:#f8fafc;
  color:#273251;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:14px 18px;
  font-weight:900;
  transition:.22s ease;
}
.buzon-link:hover{
  transform:translateY(-2px);
  background:#fff;
  border-color:#9aa4c2;
  box-shadow:0 14px 28px rgba(16,24,40,.08);
}
.buzon-link-svg{
  width:30px;
  height:30px;
  flex:0 0 auto;
}
@media (max-width:980px){
  .buzon-card{
    flex-direction:column;
    align-items:flex-start;
  }
  .buzon-actions{
    width:100%;
    justify-content:flex-start;
  }
}
@media (max-width:620px){
  .portal-dashboard .welcome-content-card{
    padding:28px 22px;
  }
  .support-banner-logo img{
    max-width:280px!important;
    max-height:100px!important;
  }
  .buzon-link{
    width:100%;
    min-width:0;
  }
}


/* =========================================================
   Corrección dashboard:
   conservar bloque azul sin isotipo y dejar buzón como botón único
   ========================================================= */
.portal-dashboard .welcome-section{
  grid-template-columns:1.15fr 1.85fr!important;
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
}
.portal-dashboard .welcome-panel-left-empty{
  background:var(--primary);
  min-height:340px;
}
.portal-dashboard .welcome-panel-right{
  margin-left:-110px!important;
  padding-right:24px!important;
}
.buzon-single-action{
  display:flex;
  justify-content:center;
  margin:28px 0 6px;
}
.buzon-single-btn{
  min-width:280px;
  min-height:48px;
  border-radius:14px;
}
@media (max-width:980px){
  .portal-dashboard .welcome-section{
    grid-template-columns:1fr!important;
  }
  .portal-dashboard .welcome-panel-right{
    margin-left:0!important;
    padding-right:0!important;
    margin-top:-28px;
  }
  .portal-dashboard .welcome-panel-left-empty{
    min-height:220px;
  }
}


/* =========================================================
   Corrección bienvenida: conservar bloque azul amplio como antes,
   únicamente sin el isotipo dentro del bloque.
   ========================================================= */
.portal-dashboard .welcome-section{
  width:100%!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:1.15fr 1.85fr!important;
  align-items:stretch!important;
  position:relative!important;
  margin-left:0!important;
  margin-right:0!important;
  margin-bottom:32px!important;
  min-height:360px!important;
}
.portal-dashboard .welcome-panel-left,
.portal-dashboard .welcome-panel-left-empty{
  background:var(--primary)!important;
  min-height:292px!important;
  display:block!important;
  padding:38px!important;
}
.portal-dashboard .welcome-panel-left-empty::before,
.portal-dashboard .welcome-panel-left-empty::after{
  content:none!important;
  display:none!important;
}
.portal-dashboard .welcome-panel-right{
  display:flex!important;
  align-items:center!important;
  margin-left:-110px!important;
  padding-right:24px!important;
  margin-top:0!important;
  width:auto!important;
}
.portal-dashboard .welcome-content-card{
  background:#fff!important;
  box-shadow:0 12px 34px rgba(0,0,0,.08)!important;
  padding:38px 40px!important;
  min-height:332px!important;
  width:100%!important;
  max-width:none!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
.portal-dashboard .welcome-content-card h1{
  font-size:38px!important;
  line-height:1.18!important;
  margin:0 0 16px!important;
}
.portal-dashboard .welcome-certs{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:22px!important;
  flex-wrap:wrap!important;
}
.portal-dashboard .cert-card-dashboard{
  flex-direction:row!important;
  text-align:left!important;
}
@media (max-width:980px){
  .portal-dashboard .welcome-section{
    grid-template-columns:1fr!important;
  }
  .portal-dashboard .welcome-panel-left,
  .portal-dashboard .welcome-panel-left-empty{
    min-height:220px!important;
  }
  .portal-dashboard .welcome-panel-right{
    margin-left:0!important;
    padding-right:0!important;
    margin-top:-28px!important;
  }
}
@media (max-width:620px){
  .portal-dashboard .welcome-content-card h1{
    font-size:28px!important;
  }
  .portal-dashboard .cert-card-dashboard{
    flex-direction:column!important;
    text-align:center!important;
  }
}


/* =========================================================
   Rediseño corporativo login / registro / recuperación
   ========================================================= */
.auth-corp-page{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 12% 18%, rgba(63,74,117,.20), transparent 34%),
    linear-gradient(135deg,#eef1f6 0%,#ffffff 48%,#f4f6fb 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px 20px;
  color:#16213a;
}
.auth-corp-shell{
  width:min(1120px,100%);
  min-height:660px;
  display:grid;
  grid-template-columns:1.04fr .96fr;
  background:#fff;
  border:1px solid #d9dde8;
  border-radius:32px;
  overflow:hidden;
  box-shadow:0 28px 70px rgba(16,24,40,.14);
}
.auth-corp-shell-wide{
  width:min(1240px,100%);
}
.auth-corp-brand{
  position:relative;
  background:
    linear-gradient(135deg,rgba(39,50,81,.96),rgba(31,43,67,.98)),
    url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07'%3E%3Cpath d='M0 80h160M80 0v160M20 20l120 120M140 20 20 140'/%3E%3C/g%3E%3C/svg%3E");
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px;
}
.auth-corp-brand::after{
  content:"";
  position:absolute;
  inset:auto 36px 36px auto;
  width:130px;
  height:130px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:32px;
  transform:rotate(12deg);
}
.auth-corp-brand-inner{
  width:100%;
  max-width:470px;
  position:relative;
  z-index:1;
}
.auth-corp-logo-main{
  width:min(360px,100%);
  max-height:150px;
  object-fit:contain;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.22));
  margin-bottom:34px;
}
.auth-corp-divider{
  width:86px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#ffffff,#7f8cc8);
  margin-bottom:22px;
}
.auth-corp-kicker{
  display:inline-flex;
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#dfe5ff;
  margin-bottom:10px;
}
.auth-corp-brand h1{
  font-size:42px;
  line-height:1.08;
  margin:0 0 18px;
  color:#fff;
}
.auth-corp-brand p{
  margin:0;
  color:#e1e6f5;
  line-height:1.7;
  font-size:16px;
}
.auth-corp-features{
  display:grid;
  gap:12px;
  margin-top:30px;
}
.auth-corp-features span{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  font-weight:700;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:12px 14px;
  backdrop-filter:blur(6px);
}
.auth-corp-mini-svg{
  width:22px;
  height:22px;
  flex:0 0 auto;
}
.auth-corp-card-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px;
  background:
    linear-gradient(180deg,#ffffff,#f7f8fb);
}
.auth-corp-card{
  width:100%;
  max-width:430px;
  background:#fff;
  border:1px solid #e1e5ee;
  border-radius:28px;
  padding:34px;
  box-shadow:0 18px 44px rgba(16,24,40,.08);
}
.auth-corp-card-wide{
  max-width:680px;
}
.auth-corp-card-head{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:24px;
}
.auth-corp-card-head img{
  width:72px;
  height:72px;
  object-fit:contain;
  border-radius:20px;
  background:#f4f6fb;
  padding:8px;
}
.auth-corp-card-head span{
  display:block;
  color:#667085;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
}
.auth-corp-card-head h2{
  margin:0;
  color:#111827;
  font-size:30px;
  line-height:1.1;
}
.auth-corp-note{
  margin:0 0 20px;
  color:#5b667a;
  line-height:1.6;
}
.auth-corp-form{
  display:grid;
  gap:13px;
}
.auth-corp-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:18px;
  row-gap:14px;
}
.auth-corp-form label{
  color:#344054;
  font-size:14px;
  font-weight:800;
}
.auth-input-icon{
  position:relative;
}
.auth-input-icon input{
  width:100%;
  min-height:48px;
  border:1px solid #ccd2df;
  background:#fff;
  border-radius:14px;
  padding:12px 14px 12px 46px;
  font:inherit;
  color:#111827;
  outline:none;
  transition:.18s ease;
}
.auth-input-icon input:focus{
  border-color:#3f4a75;
  box-shadow:0 0 0 4px rgba(63,74,117,.12);
}
.auth-input-svg{
  position:absolute;
  left:15px;
  top:50%;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  color:#667085;
  pointer-events:none;
}
.auth-corp-links-row{
  display:flex;
  justify-content:flex-end;
  margin-top:-2px;
}
.auth-corp-links-row a,
.auth-corp-bottom a{
  color:#273251;
  font-weight:900;
  text-decoration:none;
}
.auth-corp-links-row a:hover,
.auth-corp-bottom a:hover{
  text-decoration:underline;
}
.auth-corp-submit{
  margin-top:10px;
  min-height:50px;
  border:0;
  border-radius:15px;
  background:linear-gradient(135deg,#273251,#3f4a75);
  color:#fff;
  font-weight:900;
  font-size:15px;
  cursor:pointer;
  transition:.2s ease;
}
.auth-corp-submit:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(39,50,81,.24);
}
.auth-corp-bottom{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:24px;
  color:#667085;
  text-align:center;
  flex-wrap:wrap;
}
.auth-corp-card .alert{
  margin:0 0 18px;
}
.auth-corp-grid .full-field{
  grid-column:1/-1;
}

/* Logo de soporte más grande en dashboard */
.support-dashboard-section .support-banner-logo img{
  max-height:190px!important;
  max-width:560px!important;
  width:auto!important;
}
.support-dashboard-section .support-banner-card{
  min-height:310px!important;
  justify-content:center!important;
}

/* Ajustes responsivos auth corporativo */
@media (max-width:980px){
  .auth-corp-shell,
  .auth-corp-shell-wide{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .auth-corp-brand{
    padding:34px 28px;
  }
  .auth-corp-brand-inner{
    max-width:720px;
  }
  .auth-corp-logo-main{
    max-height:120px;
    margin-bottom:22px;
  }
  .auth-corp-brand h1{
    font-size:32px;
  }
  .auth-corp-features{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .auth-corp-card-wrap{
    padding:32px 24px;
  }
}
@media (max-width:680px){
  .auth-corp-page{
    padding:18px 12px;
  }
  .auth-corp-shell{
    border-radius:22px;
  }
  .auth-corp-brand{
    padding:28px 22px;
  }
  .auth-corp-brand h1{
    font-size:28px;
  }
  .auth-corp-features{
    grid-template-columns:1fr;
  }
  .auth-corp-card{
    padding:26px 20px;
    border-radius:22px;
  }
  .auth-corp-card-head{
    align-items:flex-start;
  }
  .auth-corp-card-head h2{
    font-size:25px;
  }
  .auth-corp-grid{
    grid-template-columns:1fr;
  }
  .auth-corp-grid .full-field{
    grid-column:auto;
  }
  .support-dashboard-section .support-banner-logo img{
    max-height:130px!important;
    max-width:320px!important;
  }
}


/* =========================================================
   Ajustes auth: logo corporativo sobre recuadro blanco
   ========================================================= */
.auth-corp-logo-main{
  background:#fff!important;
  border:1px solid rgba(255,255,255,.75)!important;
  border-radius:24px!important;
  padding:22px 28px!important;
  width:min(370px,100%)!important;
  min-height:126px!important;
  max-height:none!important;
  object-fit:contain!important;
  box-shadow:0 18px 38px rgba(0,0,0,.20)!important;
  margin:0 auto 38px!important;
}
.auth-corp-brand-inner{
  text-align:left;
}
.auth-corp-brand-inner .auth-corp-logo-main{
  display:block;
}
@media (max-width:980px){
  .auth-corp-logo-main{
    width:min(300px,90%)!important;
    min-height:104px!important;
    padding:18px 22px!important;
  }
}

/* =========================================================
   Apartados generales: tarjetas a detalle + grid PDF
   ========================================================= */
.portal-module-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:space-between!important;
  text-align:center!important;
  min-height:320px!important;
  padding:28px 24px!important;
}
.portal-module-link{
  width:100%;
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  color:inherit;
}
.portal-module-card .portal-doc-main{
  width:100%;
  min-height:230px;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
  gap:14px!important;
}
.portal-module-card .portal-doc-main h2{
  margin:0!important;
  text-align:center!important;
  line-height:1.25!important;
}
.portal-module-card .portal-doc-main p{
  max-width:280px;
  margin:0 auto!important;
  text-align:center!important;
  line-height:1.55!important;
}
.portal-module-card .portal-doc-count{
  margin-top:auto!important;
}
.general-apartado-page .process-file-card{
  min-height:310px;
}
.general-apartado-page .process-apartado-title-card .process-title-icon{
  margin-bottom:8px;
}


/* =========================================================
   V9: detalles documentales generales como procesos,
   grid PDF global de 5 columnas y visor PDF fullscreen
   ========================================================= */

/* Encabezados de apartados generales */
.general-apartado-page .process-section-head{
  text-align:center;
}
.general-title-card-row{
  min-width:420px;
  display:grid!important;
  grid-template-columns:92px 1fr;
  align-items:center;
  justify-items:start;
  gap:22px;
  text-align:left;
  padding:28px 42px!important;
}
.general-title-card-row .process-title-icon{
  width:82px;
  height:82px;
  border-radius:24px;
  display:grid;
  place-items:center;
  background:#f4f6fb;
  color:#273251;
  box-shadow:0 10px 24px rgba(16,24,40,.06);
}
.general-title-card-row .portal-section-svg{
  width:54px;
  height:54px;
}

/* Grid global para documentos PDF en apartados de proceso y generales */
.file-grid-section{
  width:min(1280px,calc(100% - 28px));
  margin:24px auto 42px!important;
}
.process-files-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:20px!important;
  align-items:stretch!important;
  justify-content:center!important;
}
.process-file-card{
  min-height:315px!important;
  padding:22px 18px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
  border-radius:24px!important;
}
.process-file-icon{
  margin:0 auto 6px!important;
}
.process-file-info{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  text-align:center!important;
  gap:8px!important;
}
.process-file-info h2,
.process-file-info p,
.process-file-info small{
  text-align:center!important;
}
.process-file-info .badge{
  margin:0 auto!important;
}
.process-file-actions{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-top:auto!important;
}

/* Formularios de carga en apartados detalle */
.process-upload-box{
  width:min(1120px,calc(100% - 32px))!important;
  margin:0 auto 30px!important;
}
.process-upload-form{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

/* Visor PDF realmente a pantalla completa */
.viewer-fullscreen-body{
  margin:0!important;
  overflow:hidden!important;
  background:#111827!important;
  height:100vh!important;
  min-height:100vh!important;
  display:block!important;
}
.viewer-fullscreen-page{
  height:100vh!important;
  width:100vw!important;
  display:flex!important;
  flex-direction:column!important;
  background:#111827!important;
  color:#fff!important;
}
.viewer-fullscreen-toolbar{
  height:58px!important;
  min-height:58px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  padding:8px 16px!important;
  background:#0b1220!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  z-index:10!important;
}
.viewer-fullscreen-title{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  min-width:0!important;
}
.viewer-fullscreen-title strong{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.fullscreen-pdf-shell{
  flex:1 1 auto!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  width:100vw!important;
  height:calc(100vh - 58px)!important;
  background:#1f2937!important;
}
.fullscreen-pdf-shell iframe{
  width:100%!important;
  height:100%!important;
  border:0!important;
  display:block!important;
  background:#fff!important;
}
.fullscreen-watermark{
  font-size:52px!important;
  color:rgba(18,60,90,.10)!important;
}

@media (max-width:1280px){
  .process-files-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
@media (max-width:980px){
  .process-files-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .general-title-card-row{
    min-width:0;
    width:min(520px,100%);
  }
}
@media (max-width:720px){
  .process-files-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .process-upload-form{
    grid-template-columns:1fr!important;
  }
}
@media (max-width:520px){
  .process-files-grid{
    grid-template-columns:1fr!important;
  }
  .general-title-card-row{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    padding:24px!important;
  }
  .general-title-card-row .process-title-copy{
    align-items:center;
    text-align:center;
  }
  .viewer-fullscreen-toolbar{
    height:64px!important;
    min-height:64px!important;
  }
  .fullscreen-pdf-shell{
    height:calc(100vh - 64px)!important;
  }
}


/* =========================================================
   Ajustes V10: política editable, login compacto y SMTP
   ========================================================= */
.auth-corp-logo-main{
  width:min(300px,92%)!important;
  min-height:96px!important;
  max-height:118px!important;
  padding:16px 22px!important;
  border-radius:20px!important;
  margin:0 auto 28px!important;
}
.auth-corp-brand{
  padding:40px!important;
}
.auth-corp-brand h1{
  font-size:38px!important;
}
.auth-corp-features{
  margin-top:24px!important;
}
.politica-page .politica-content{
  max-width:980px;
  margin:0 auto 34px;
  padding:34px 42px;
  line-height:1.75;
  font-size:16px;
}
.politica-content h2,
.politica-content h3,
.politica-content h4{
  color:#1d2940;
  margin-top:24px;
}
.politica-content p{
  margin:0 0 16px;
}
.politica-content ul,
.politica-content ol{
  padding-left:24px;
}
.politica-content a{
  color:#273251;
  font-weight:800;
  text-decoration:underline;
}
.admin-container textarea[name="contenido"]{
  min-height:360px;
  font-family:"Segoe UI",Arial,sans-serif;
  line-height:1.55;
}
@media (max-width:980px){
  .auth-corp-logo-main{
    width:min(260px,90%)!important;
    min-height:88px!important;
    padding:14px 18px!important;
  }
  .auth-corp-brand{
    padding:30px!important;
  }
}


/* =========================================================
   V11: franja azul en Procesos de Soporte y auth más corporativo
   ========================================================= */
.support-dashboard-section .support-section-band{
  width:min(960px,calc(100% - 32px));
  margin:0 auto 0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.support-dashboard-section .support-section-band h2{
  color:#fff!important;
}
.support-dashboard-section .support-banner-card{
  width:min(960px,calc(100% - 32px));
  margin:0 auto!important;
  border:0!important;
  border-radius:0!important;
  min-height:260px!important;
  background:#f7f7f7!important;
  box-shadow:none!important;
}
.support-dashboard-section .support-banner-logo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.support-dashboard-section .support-banner-logo img{
  max-width:420px!important;
  max-height:125px!important;
  width:auto!important;
  object-fit:contain!important;
}

/* Recuadro blanco del logo en login/registro/recuperación: más compacto y elegante */
.auth-corp-logo-main{
  width:min(260px,88%)!important;
  min-height:82px!important;
  max-height:102px!important;
  padding:14px 20px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.98)!important;
  border:1px solid rgba(255,255,255,.85)!important;
  box-shadow:0 16px 32px rgba(0,0,0,.16)!important;
  margin:0 auto 30px!important;
  object-fit:contain!important;
}
.auth-corp-brand-inner{
  max-width:440px!important;
}
.auth-corp-brand{
  padding:42px 44px!important;
}
.auth-corp-divider{
  margin-top:2px!important;
}
.auth-corp-card{
  border-radius:26px!important;
  box-shadow:0 18px 45px rgba(16,24,40,.10)!important;
}
@media (max-width:980px){
  .support-dashboard-section .support-section-band,
  .support-dashboard-section .support-banner-card{
    width:min(100% - 24px,960px);
  }
  .auth-corp-logo-main{
    width:min(230px,86%)!important;
    min-height:74px!important;
    max-height:92px!important;
    padding:12px 16px!important;
  }
}
