/* ATENEA v170.3 — contraste real + correcciones de navegación/login
   Patch visual no destructivo: se carga al final del layout para pisar estilos lavados. */
:root{
  --at-bg:#071326;
  --at-bg-2:#0b1730;
  --at-panel:#101d34;
  --at-card:#162238;
  --at-card-2:#1d2a42;
  --at-line:rgba(148,163,184,.28);
  --at-line-2:rgba(255,255,255,.14);
  --at-text:#f8fafc;
  --at-text-2:#dbeafe;
  --at-muted:#b6c6dd;
  --at-muted-2:#94a3b8;
  --at-primary:#3166ff;
  --at-primary-2:#6d4cff;
  --at-success:#25d38d;
  --at-warning:#f59e0b;
  --at-danger:#fb7185;
}
html,body{background:linear-gradient(135deg,#071326 0%,#0b1730 45%,#101827 100%) !important;color:var(--at-text) !important;}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(49,102,255,.18),transparent 34%),radial-gradient(circle at 92% 18%,rgba(109,76,255,.14),transparent 30%);z-index:-1;}
.container,.page{background:transparent !important;color:var(--at-text) !important;}
.topbar,.smart-nav-card,.login-panel,.card,.panel,.box,.admin-card,.dash-card,.content-card{
  background:linear-gradient(180deg,rgba(18,29,52,.94),rgba(13,24,43,.94)) !important;
  border:1px solid var(--at-line) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.28) !important;
  color:var(--at-text) !important;
}
.login-hero{box-shadow:0 24px 60px rgba(0,0,0,.34) !important;}
body:has(.login-pro), body.login, body.auth-page{
  background:linear-gradient(135deg,#071326 0%,#0c1d39 50%,#151b38 100%) !important;
}
.login-pro{max-width:1180px !important;}
.login-panel{background:linear-gradient(180deg,#101d34,#0d182b) !important;}
.login-panel h1,.login-panel h2,.login-panel h3,
.login-panel label,.login-panel strong{color:var(--at-text) !important;}
.login-panel p,.login-panel .muted,.brand-note,.small.muted{color:var(--at-muted) !important;}
.login-panel .brand-note{background:rgba(59,130,246,.08) !important;border-color:rgba(96,165,250,.22) !important;color:var(--at-muted) !important;}
.login-panel .role-grid a:not(.active){background:rgba(15,23,42,.72) !important;color:#dbeafe !important;border-color:rgba(148,163,184,.35) !important;}
.login-panel .role-grid a:not(.active):hover{background:rgba(49,102,255,.16) !important;color:#fff !important;border-color:rgba(96,165,250,.5) !important;}
/* fondo celeste/lila legacy: oscurecer sin romper branding */
body,[class*="auth"],[class*="login"]{--panel-bg:#101d34 !important;}
/* Textos generales */
h1,h2,h3,h4,h5,h6,.title,.page-title{color:var(--at-text) !important;letter-spacing:-.02em;}
p,li,td,th,label,span,div{border-color:var(--at-line);}
.muted,.text-muted,.small,.help,.hint,small{color:var(--at-muted) !important;}
a{color:#93c5fd !important;} a:hover{color:#bfdbfe !important;}
/* Botones: especialmente Cerrar sesión ilegible */
.btn,.button,button.btn,.mode-btn.active,.smart-nav-link.active{
  background:linear-gradient(135deg,var(--at-primary),var(--at-primary-2)) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:0 10px 24px rgba(49,102,255,.22) !important;
}
.btn-secondary,.smart-nav-logout .btn-secondary,a.btn-secondary,button.btn-secondary,
a[href$="/logout"],a[href*="/logout"],button[type="submit"].btn-secondary{
  background:rgba(15,23,42,.82) !important;
  color:#f8fafc !important;
  border:1px solid rgba(148,163,184,.42) !important;
  text-shadow:none !important;
  opacity:1 !important;
  box-shadow:none !important;
}
.btn-secondary:hover,.smart-nav-logout .btn-secondary:hover,a[href$="/logout"]:hover,a[href*="/logout"]:hover{
  background:rgba(49,102,255,.22) !important;
  color:#fff !important;
  border-color:rgba(96,165,250,.55) !important;
}
button:disabled,a.disabled,.disabled{opacity:.55 !important;color:#cbd5e1 !important;background:rgba(30,41,59,.55) !important;}
/* Inputs/selects: blanco ilegible -> oscuro legible */
.input,input,select,textarea,.form-control,.form-select{
  background:#eaf1fb !important;
  color:#0f172a !important;
  border:1px solid rgba(148,163,184,.55) !important;
  box-shadow:none !important;
}
.input::placeholder,input::placeholder,textarea::placeholder{color:#64748b !important;opacity:1 !important;}
.input:focus,input:focus,select:focus,textarea:focus,.form-control:focus{
  outline:2px solid rgba(96,165,250,.45) !important;
  border-color:#60a5fa !important;
  box-shadow:0 0 0 4px rgba(59,130,246,.16) !important;
}
option{background:#0f172a !important;color:#f8fafc !important;}
/* Nav superior */
.smart-nav{margin-bottom:16px !important;}
.smart-nav-card{background:linear-gradient(180deg,#101d34,#0b1730) !important;border-color:var(--at-line) !important;}
.smart-nav-link,.smart-nav-badge{
  background:rgba(15,23,42,.72) !important;
  color:#e5f0ff !important;
  border:1px solid rgba(148,163,184,.28) !important;
}
.smart-nav-link.active{color:#fff !important;}
.smart-nav-count{background:#f59e0b !important;color:#111827 !important;border-color:rgba(255,255,255,.35) !important;}
/* Cards y KPIs */
.card.mini,.mini,.kpi,.stat-card{
  background:linear-gradient(180deg,rgba(21,34,58,.98),rgba(13,24,43,.98)) !important;
  border:1px solid var(--at-line) !important;
  color:var(--at-text) !important;
}
.card strong,.kpi strong,.stat-card strong{color:#fff !important;}
/* Tablas */
.table-wrap,table.table,.table{background:rgba(15,23,42,.46) !important;color:var(--at-text) !important;border-color:var(--at-line) !important;}
table thead th,.table thead th{background:#0f172a !important;color:#f8fafc !important;border-bottom:1px solid var(--at-line) !important;}
table tbody td,.table tbody td{color:#e2e8f0 !important;border-color:rgba(148,163,184,.18) !important;}
table tbody tr:hover,.table tbody tr:hover{background:rgba(59,130,246,.08) !important;}
/* Badges */
.badge,.pill{color:#fff !important;border:1px solid rgba(255,255,255,.14) !important;}
.badge.ok,.badge.success,.estado-activa,.active-badge{background:rgba(37,211,141,.18) !important;color:#bbf7d0 !important;border-color:rgba(37,211,141,.3) !important;}
.badge.warn,.warning{background:rgba(245,158,11,.16) !important;color:#fde68a !important;border-color:rgba(245,158,11,.32) !important;}
.badge.danger,.danger{background:rgba(251,113,133,.16) !important;color:#fecdd3 !important;border-color:rgba(251,113,133,.32) !important;}
/* Ficha alumno / transferencia */
.card h3:contains("Asignación académica"){}
form .card .small.muted{color:#c8d7ea !important;}
/* evitar texto blanco sobre fondo blanco en pantallas parciales */
[style*="background:#fff"],[style*="background: #fff"],[style*="background:white"],[style*="background: white"]{
  background:#101d34 !important;color:var(--at-text) !important;
}
/* Mobile */
@media(max-width:820px){
  .topbar,.smart-nav-card,.card{border-radius:18px !important;}
  .smart-nav-meta,.smart-nav-links{gap:8px !important;}
  .btn,.btn-secondary,button,a.btn{min-height:40px;}
}
