/* Acceso SABIS. Estilos exclusivos de la página pública de inicio de sesión. */
.sabis-login-page {
    margin:0; min-height:100vh; min-height:100svh; display:flex; flex-direction:column;
    background:var(--sabis-warm,#f5f3ec); color:var(--sabis-deep,#052f31);
    font-family:var(--sabis-font-body);
    -webkit-font-smoothing:antialiased;
    background-image:radial-gradient(ellipse at 50% 40%,#e8f3ed 0,transparent 58%);
}
.sabis-login-page * { box-sizing:border-box; }
.sabis-login-page button,.sabis-login-page input { font:inherit; }
.access-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:30px 48px; }
.access-brand { display:flex; align-items:center; gap:11px; font-size:19px; font-weight:650; letter-spacing:-.7px; }
.access-brand-mark { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:var(--sabis-deep); background:var(--sabis-mint); }
.access-header-caption { font-size:12px; color:var(--sabis-muted); }
.access-main { flex:1; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px 24px 48px; }
.access-card { width:100%; max-width:432px; padding:46px 40px 30px; border:1px solid #ffffff; border-radius:28px; background:#fff; box-shadow:0 2px 5px #052f3103,0 20px 65px #052f3108; }
.access-heading { margin-bottom:32px; }
.access-eyebrow { font-size:10px; font-weight:650; letter-spacing:1.8px; color:var(--sabis-hover); }
.sabis-login-page h1 { font-family:var(--sabis-font-heading); margin:13px 0 12px; font-size:36px; font-weight:600; letter-spacing:-1.5px; line-height:1.15; color:var(--sabis-deep); }
.access-heading p { margin:0; color:var(--sabis-muted); font-size:14px; line-height:1.6; }
.access-form { display:flex; flex-direction:column; gap:21px; }
.access-field label { display:block; margin-bottom:9px; font-size:13px; font-weight:550; }
.access-field input { display:block; width:100%; height:54px; padding:0 16px; border:1px solid #dce4df; border-radius:12px; color:var(--sabis-ink); background:#fbfcfa; outline:none; font-size:16px; transition:border-color .16s,box-shadow .16s,background .16s; }
.access-field input::placeholder { color:#74817e; font-size:14px; }
.access-field input:hover { border-color:#b5c8be; }
.access-field input:focus { border-color:#2b8b7e; background:#fff; box-shadow:0 0 0 4px #54dbc923; }
.access-field input:-webkit-autofill { -webkit-text-fill-color:#102b2d; -webkit-box-shadow:0 0 0 1000px #f1faf5 inset; }
.access-password { position:relative; }
.access-password:has(button:not([hidden])) input { padding-right:86px; }
.access-password button { position:absolute; right:6px; top:5px; min-height:44px; min-width:72px; padding:0 9px; color:var(--sabis-hover); border:0; background:transparent; border-radius:8px; font-size:12px; font-weight:600; cursor:pointer; }
.access-password button:hover { background:#eaf5ef; }
.access-password button[hidden] { display:none; }
.access-submit { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:54px; margin-top:5px; padding:14px 20px; border:0; border-radius:12px; background:var(--sabis-primary); color:#fff; font-weight:550!important; font-size:15px!important; cursor:pointer; transition:background .16s,transform .16s; }
.access-submit svg { color:var(--sabis-mint); }
.access-submit:hover { background:var(--sabis-hover); }
.access-submit:active { transform:scale(.99); }
.sabis-login-page button:focus-visible { outline:3px solid #29998c; outline-offset:3px; }
.access-help { margin-top:28px; padding-top:24px; border-top:1px solid #edf0ed; text-align:center; font-size:12px; line-height:1.6; }
.access-help span { color:var(--sabis-ink); font-weight:550; }
.access-help p { color:var(--sabis-muted); margin:4px 0 0; }
.access-caption { display:flex; align-items:center; justify-content:center; gap:7px; color:var(--sabis-muted); font-size:11px; margin:24px 0 0; }
.access-footer { display:flex; justify-content:space-between; gap:16px; padding:22px 48px; border-top:1px solid #052f310a; color:var(--sabis-muted); font-size:11px; }
.access-footer span:first-child { font-weight:600; }
.access-feedback { padding:13px 14px; border-radius:10px; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.access-feedback--error { color:#8b3131; background:#fff2f0; border:1px solid #f1d5cf; }
.access-feedback--success { color:#17604b; background:#ecf8f1; border:1px solid #cce6d7; }
.access-feedback--warning { color:#73541c; background:#fff7e9; border:1px solid #eadfc5; }
@media(max-width:575.98px) {
    .access-header { padding:22px 24px; }
    .access-header-caption { display:none; }
    .access-main { padding:20px 20px 36px; }
    .access-card { padding:34px 26px 26px; border-radius:24px; }
    .sabis-login-page h1 { font-size:32px; }
    .access-footer { padding:20px 24px; font-size:10px; }
}
@media(max-width:359px) {
    .access-main { padding:12px 12px 28px; }
    .access-card { padding:28px 20px 24px; }
    .access-footer { flex-direction:column; gap:5px; }
}
@media(prefers-reduced-motion:reduce) {
    .sabis-login-page * { transition:none!important; }
}
