*{box-sizing:border-box}
[hidden]{display:none!important}
:root{
 color-scheme:light;
 font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,
 "Segoe UI",sans-serif;
 background:#eef2f7;
 color:#142238
}
body{margin:0;min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible{
 outline:3px solid #66a8fc;outline-offset:2px
}
.shell{max-width:1280px;margin:0 auto;padding:0 24px 50px}
.topbar{
 display:flex;justify-content:space-between;align-items:center;
 gap:16px;padding:24px 0;border-bottom:1px solid #d7dfe9
}
.brand{display:flex;gap:13px;align-items:center}
.brand-symbol{
 display:grid;place-items:center;width:42px;height:42px;
 border-radius:13px;background:#142c49;color:white;
 font-size:27px;font-weight:800
}
.brand strong{display:block;font-size:23px;letter-spacing:-.8px}
.brand small{display:block;color:#64738a;font-size:12px}
.session-state{
 font-size:12px;padding:9px 13px;border:1px solid #d2dce8;
 border-radius:999px;background:white
}
.auth-card{
 width:min(100%,480px);margin:65px auto;background:white;
 border:1px solid #dce4ef;border-radius:22px;
 padding:34px;box-shadow:0 12px 40px #1422380d
}
h1{font-size:clamp(26px,4vw,34px);margin:10px 0}
h2{font-size:20px;margin:0}
p{line-height:1.55;color:#607188}
.section-eyebrow{
 color:#356da7;font-size:11px;letter-spacing:.16em;
 font-weight:800
}
.auth-card form{display:grid;gap:11px;margin-top:25px}
label{display:grid;gap:8px;font-size:13px;font-weight:700}
input,select{
 border:1px solid #c6d3e2;border-radius:11px;
 background:white;color:#172338;padding:13px;min-width:0
}
button{
 border:0;border-radius:11px;background:#173552;
 color:white;padding:12px 17px;font-weight:700
}
button:hover{filter:brightness(1.1)}
.button-secondary{
 background:white;color:#173552;border:1px solid #c8d6e5
}
.message{min-height:22px;font-size:13px}
.page-header{
 display:flex;justify-content:space-between;align-items:center;
 flex-wrap:wrap;gap:18px;margin:32px 0
}
.page-header h1{margin:7px 0}
.page-header p{margin:0}
.admin-nav{
 display:flex;gap:8px;border-bottom:1px solid #d7dfe9;
 margin-bottom:26px
}
.admin-nav button{
 border:0;background:transparent;color:#566982;
 border-radius:10px 10px 0 0;padding:13px 22px
}
.admin-nav button.is-active{
 color:#14385b;background:white;
 box-shadow:inset 0 -3px #2078c5
}
.section-title{
 display:flex;justify-content:space-between;
 flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px
}
.section-title p{margin:6px 0 0;font-size:13px}
.metric-grid{
 display:grid;grid-template-columns:
 repeat(auto-fit,minmax(200px,1fr));gap:15px
}
.metric{
 background:white;border:1px solid #dce4ef;border-radius:17px;
 padding:25px 20px;min-height:132px;
 display:flex;flex-direction:column;justify-content:space-between
}
.metric strong{
 font-size:35px;line-height:1.1;
 font-variant-numeric:tabular-nums
}
.metric span{font-size:13px;color:#607188}
.filters{
 display:flex;flex-wrap:wrap;gap:15px;
 background:white;padding:18px;border-radius:15px;
 border:1px solid #dce4ef;margin-bottom:20px
}
.filters label{flex:1 1 220px}
.table-scroll{
 background:white;border:1px solid #dce4ef;
 border-radius:15px;overflow-x:auto
}
table{width:100%;border-collapse:collapse;text-align:left}
th,td{
 padding:15px;border-bottom:1px solid #e6ebf1;
 font-size:13px;vertical-align:middle;overflow-wrap:anywhere
}
th{white-space:nowrap;color:#4a5b72;background:#f9fbfe}
td strong,td small{display:block}
td small{margin-top:5px;color:#607188}
footer{margin-top:40px;font-size:12px;color:#7b8798}
@media(max-width:600px){
 .shell{padding:0 14px 30px}
 .topbar{padding:17px 0}
 .brand strong{font-size:19px}
 .session-state{max-width:125px;text-align:center}
 .auth-card{margin:28px auto;padding:23px}
 .page-header{margin:24px 0}
 .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .metric{padding:16px;min-height:112px}
 .metric strong{font-size:27px}
 table{min-width:620px}
}


/* R04-37AS-4D2 · Login administrativo reforzado */

.login-hint {
  color:#607188;
  font-size:13px;
  line-height:1.6;
}

.password-row {
  display:flex;
  gap:9px;
  align-items:stretch;
  min-width:0;
}

.password-row input {
  flex:1 1 auto;
  width:100%;
  min-width:0;
}

.password-row button {
  flex:0 0 auto;
  padding:11px 13px;
}

.auth-card button[disabled] {
  cursor:wait;
  opacity:.65;
}

.auth-card [aria-busy="true"] {
  cursor:progress;
}

#loginMessage:not(:empty) {
  margin-top:15px;
  line-height:1.5;
}

@media(max-width:600px) {
  .password-row {
    gap:7px;
  }

  .password-row button {
    padding:10px;
  }

  #adminLoginButton {
    width:100%;
  }
}
