/* Identidad oficial ABCA: azul y verde extraídos del logo suministrado. */
body.abca-ui {
  --abca-ui-primary: #0065ac;
  --abca-ui-primary-hover: #00548f;
  --abca-ui-blue: #0065ac;
  --abca-ui-navy: #173747;
  --abca-ui-gold: #9fbb32;
  --abca-ui-bg: #f5f8fa;
  --abca-ui-ink: #203643;
  --abca-ui-muted: #586e7b;
  --primary: #0065ac; --primary-navy: #173747; --secondary: #9fbb32;
  --navy: #173747; --azul: #173747; --azul2: #0065ac; --ambar: #9fbb32;
  --sidebar-accent: #0065ac;
  --abca-navy: #173747; --abca-navy-dark: #112b3a; --abca-blue: #0065ac;
  --abca-gold: #9fbb32; --abca-surface: #fff; --abca-ink: #203643; --abca-muted: #586e7b;
  --bs-primary: #0065ac; --bs-primary-rgb: 0,101,172;
  --bs-link-color: #0065ac; --bs-link-color-rgb: 0,101,172;
  --bs-link-hover-color: #00548f; --bs-link-hover-color-rgb: 0,84,143;
}
body.abca-ui .btn-primary { background: #0065ac; border-color: #0065ac; }
body.abca-ui .btn-primary:is(:hover,:focus-visible,:active) { background: #00548f; border-color: #00548f; }
body.abca-ui .btn-outline-primary { --bs-btn-color:#0065ac; --bs-btn-border-color:#0065ac; --bs-btn-hover-bg:#0065ac; --bs-btn-hover-border-color:#0065ac; --bs-btn-active-bg:#00548f; --bs-btn-active-border-color:#00548f; }
body.abca-ui .badge-secondary-abca { color:#203643; background:#9fbb32; }
body.abca-ui .abca-brand-logo { display:block; height:auto; object-fit:contain; }
body.abca-ui #sidebar .brand { display:flex; flex-direction:column; align-items:flex-start; gap:0; padding:.75rem 1.25rem; }
body.abca-ui .abca-logo-sidebar { width:180px; max-width:100%; }
body.abca-ui #sidebar .abca-brand-version { font-size:.75rem; padding-left:.2rem; }
body.abca-ui #sidebar .sidebar-link.active { background:#eaf3f9; color:#00548f; }
body.abca-ui #sidebar .sidebar-link.active::before { background:#9fbb32; }
body.abca-ui #sidebar .sidebar-link.active i { color:#0065ac; }
body.abca-ui .avatar-circle { background:#0065ac; }
body.abca-ui .navbar-abca { background:#173747; }
body.abca-ui .navbar-abca .navbar-brand { display:inline-flex; align-items:center; gap:.75rem; }
body.abca-ui .abca-logo-nav { width:110px; background:#fff; padding:3px 7px; border-radius:5px; flex-shrink:0; }
body.abca-ui .abca-logo-public { width:190px; max-width:100%; margin:0 auto 1rem; }
body.abca-ui :is(.login-shell,.auth-shell) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
body.abca-ui :is(.brand-panel,.auth-brand) {
  background:linear-gradient(145deg,#f4f8ed 0%,#f1f7fb 65%,#eaf3f9 100%);
  color:#173747;
  padding:clamp(2rem,5vw,5rem);
  border-right:1px solid #e0e9ee;
}
body.abca-ui :is(.brand-panel,.auth-brand)::before { border-color:rgba(0,101,172,.12); box-shadow:0 -55px 0 rgba(0,101,172,.025),0 -110px 0 rgba(0,101,172,.025); }
body.abca-ui :is(.brand-panel,.auth-brand)::after { border-color:#9fbb32; opacity:.55; }
body.abca-ui :is(.brand-content,.auth-brand-content) { width:min(100%,490px); text-align:left; }
body.abca-ui .abca-logo-auth { width:310px; max-width:90%; margin:0 0 2.5rem; }
body.abca-ui :is(.brand-title,.auth-brand-title) { font-size:clamp(1.875rem,3vw,2.75rem); line-height:1.2; letter-spacing:-.035em; }
body.abca-ui :is(.brand-subtitle,.auth-brand-subtitle) { color:#586e7b; font-size:1.0625rem; margin-top:1rem; max-width:350px; }
body.abca-ui :is(.brand-divider,.auth-brand-divider) { margin:1.75rem 0 2rem; width:52px; background:#9fbb32; }
body.abca-ui :is(.brand-values,.auth-values) { margin:0; max-width:390px; text-align:left; }
body.abca-ui :is(.brand-value,.auth-value) { padding:0 1rem; font-size:.875rem; }
body.abca-ui :is(.brand-value,.auth-value):first-child { padding-left:0; }
body.abca-ui :is(.brand-value + .brand-value,.auth-value + .auth-value) { border-left-color:#ccdbe3; }
body.abca-ui :is(.brand-value,.auth-value) i { color:#0065ac; font-size:1.375rem; }
body.abca-ui :is(.access-panel,.auth-access) { background:#fff; padding:clamp(2rem,5vw,5rem); }
body.abca-ui :is(.access-panel,.auth-access)::before { content:none; }
body.abca-ui :is(.access-content,.auth-content) { width:min(100%,410px); }
body.abca-ui :is(.login-card,.auth-card) { background:transparent; border:0; border-radius:0; box-shadow:none; padding:0; }
body.abca-ui :is(.card-accent,.auth-accent) { display:none; }
body.abca-ui :is(.login-card,.auth-card) h1 { font-size:2rem; margin-bottom:.75rem; }
body.abca-ui :is(.login-intro,.auth-intro) { line-height:1.65; margin-bottom:2rem; }
body.abca-ui.abca-auth .input-group { border:1px solid #9dafbb; border-radius:.625rem; background:#fff; overflow:visible; }
body.abca-ui.abca-auth .input-group:focus-within { border-color:#0065ac; box-shadow:0 0 0 3px rgba(0,101,172,.12); }
body.abca-ui.abca-auth .input-group :is(.form-control,.input-group-text,.password-toggle) { border:0; min-height:3.125rem; background:transparent; }
body.abca-ui.abca-auth .input-group .form-control { min-width:0; }
body.abca-ui.abca-auth .input-group .form-control:focus { box-shadow:none; outline:none; }
body.abca-ui.abca-auth .password-toggle:focus-visible { outline-offset:-5px; }
body.abca-ui.abca-auth :is(.btn-login,.btn-auth) { background:#0065ac; color:#fff; min-height:3.125rem; border:1px solid #0065ac; border-radius:.625rem; box-shadow:none; transform:none; font-weight:600; }
body.abca-ui.abca-auth :is(.btn-login,.btn-auth):is(:hover,:focus-visible) { background:#00548f; border-color:#00548f; box-shadow:none; transform:none; }
body.abca-ui :is(.forgot-link,.auth-link) { color:#0065ac; }
body.abca-ui :is(.secure-note,.auth-secure) { justify-content:flex-start; font-size:.8125rem; }
body.abca-ui :is(.secure-note,.auth-secure) i { color:#0065ac; }
body.abca-ui :is(.login-footer,.auth-footer) { text-align:left; font-size:.75rem; margin-top:2.5rem; }
@media(max-width:991.98px) {
  body.abca-ui :is(.login-shell,.auth-shell) { grid-template-columns:1fr; }
  body.abca-ui :is(.brand-panel,.auth-brand) { min-height:0; padding:1.5rem; border-right:0; border-bottom:1px solid #e0e9ee; }
  body.abca-ui :is(.brand-content,.auth-brand-content) { width:min(100%,410px); }
  body.abca-ui .abca-logo-auth { width:180px; margin:0 0 1rem; }
  body.abca-ui :is(.brand-title,.auth-brand-title) { font-size:1.5rem; }
  body.abca-ui :is(.brand-subtitle,.auth-brand-subtitle) { font-size:.9375rem; margin-top:.5rem; }
  body.abca-ui :is(.brand-divider,.auth-brand-divider,.brand-values,.auth-values) { display:none; }
  body.abca-ui :is(.access-panel,.auth-access) { padding:2rem 1.5rem; }
  body.abca-ui :is(.login-card,.auth-card) h1 { font-size:1.75rem; }
}
@media(max-width:575.98px) { body.abca-ui .navbar-abca .navbar-brand { font-size:.875rem; } body.abca-ui .abca-logo-nav { width:90px; } }
