/* Login /portal aligned with the public landing (landing.css). Presentation only: app.js, authentication and the invitation flow are untouched. */

/* Link back to the public landing. Only visible while the login (or the guardian invitation) is on screen; the authenticated portal keeps its own shell. */
.portal-home{display:none}
body:has(.campus-login) .portal-home,body:has(main.guardian) .portal-home{position:absolute;z-index:20;top:18px;right:20px;display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:5px 14px 5px 5px;border:1px solid #d6e2ee;border-radius:999px;background:#ffffffeb;color:#11385c;font-size:13px;font-weight:650;text-decoration:none;box-shadow:0 6px 18px #0b2a4714;transition:background .15s,box-shadow .15s}
.portal-home:hover{background:#fff;box-shadow:0 8px 22px #0b2a4724}
.portal-home:focus-visible{outline:3px solid #167f83;outline-offset:3px}
.portal-home-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#0d527e;color:#fff;font-size:12px;font-weight:800;letter-spacing:-.5px}
body:has(main.guardian) .portal-home{position:static;margin:16px 16px 0}

/* The demo-access note is not shown on the login (requested by Carlos, 2026-10-05). */
.campus-login .campus-login-local{display:none}

/* Access panel: same light gradient, type scale, buttons and cards as the landing. */
.campus-login .campus-login-access{background:radial-gradient(ellipse 80% 55% at 90% 10%,#e3f0fb 0,transparent 70%),linear-gradient(180deg,#f3f8fd 0%,#fff 100%)}
.campus-login .campus-login-content{max-width:410px}
.campus-login .campus-login-demo{padding:6px 12px;border-color:#cfe6e1;background:#e8f6f4;color:#287268;font-size:12.5px;font-weight:650}
.campus-login .campus-login-demo:before{width:7px;height:7px;background:#167f83}
.campus-login .campus-login-content h1{font-size:clamp(30px,3vw,38px);font-weight:780;letter-spacing:-.035em;line-height:1.1;color:#082a46;margin:20px 0 12px}
.campus-login .campus-login-content header p{font-size:15.5px;color:#3d5368;line-height:1.65}
.campus-login .campus-login-form label{font-size:13px;color:#12263f}
.campus-login .campus-login-form input,.campus-login .campus-login-form select{height:52px;border-color:#c9d8e6;border-radius:12px;font-size:15px;color:#12263f}
.campus-login .campus-login-form input:focus,.campus-login .campus-login-form select:focus{border-color:#167f83;outline:3px solid #167f8326;outline-offset:1px}
.campus-login .campus-login-form .campus-login-submit{min-height:52px;border-radius:12px;background:#0d527e;border-color:#0d527e;font-size:15px;font-weight:650;box-shadow:0 8px 18px rgba(13,82,126,.18)}
.campus-login .campus-login-form .campus-login-submit:hover{background:#0a4267}
.campus-login .campus-login-form .campus-login-submit:focus-visible{outline:3px solid #167f83;outline-offset:3px}
/* Guardian hint: light card with an envelope icon, same border, radius and type scale as the landing cards. */
.campus-login .campus-login-family{position:relative;margin-top:30px;padding:18px 20px 18px 74px;border:1px solid #dbe4ee;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(17,56,92,.06)}
.campus-login .campus-login-family:before{content:'';position:absolute;left:20px;top:18px;width:40px;height:40px;border-radius:12px;background:#e8f6f4 url(/assets/landing/icono-invitacion.svg) center/22px no-repeat}
.campus-login .campus-login-family strong{display:block;color:#11385c;font-size:15px;font-weight:700;letter-spacing:-.01em}
.campus-login .campus-login-family p{margin:4px 0 0;color:#3d5368;font-size:14px;line-height:1.6}
.campus-login [role=status]{color:#5a6f82;font-size:13px}

@media(max-width:880px){
  body:has(.campus-login) .portal-home{top:14px;right:14px}
  .campus-login .campus-login-access{padding-left:clamp(16px,6vw,30px);padding-right:clamp(16px,6vw,30px)}
}
@media(prefers-reduced-motion:reduce){.portal-home{transition:none}}
