.activation-text-button{display:block;margin:11px auto 0;border:0;background:transparent;color:var(--navy);font:600 13px/1.3 inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.activation-text-button:hover{color:#8b6b18}.activation-text-button:focus-visible,.password-toggle:focus-visible,.auth-close:focus-visible{outline:3px solid rgba(201,164,71,.45);outline-offset:3px}.auth-modal-backdrop{z-index:1000}.auth-modal{width:min(470px,100%);position:relative}.auth-modal>p{margin:0 0 18px;color:var(--muted);line-height:1.6}.auth-modal .modal-head{margin-bottom:9px}.auth-modal .modal-head h2{margin:2px 0 0}.auth-close{font:300 29px/1 Georgia,serif;color:var(--navy)}.auth-form{display:grid;gap:15px}.auth-form label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:700}.auth-form input,.auth-form select,.auth-form textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font:500 15px/1.35 inherit;padding:12px 13px;box-sizing:border-box}.auth-form input:focus,.auth-form select:focus,.auth-form textarea:focus{outline:3px solid rgba(201,164,71,.23);border-color:var(--gold)}.auth-form textarea{resize:vertical}.auth-form small{color:var(--muted);font-weight:400}.auth-modal-message{margin:0;padding:12px;border-radius:8px;background:var(--blue);color:var(--navy);font-size:13px;line-height:1.5}.auth-error-text{background:#fdeaea;color:var(--red)}.button.is-loading{cursor:wait;opacity:.78}.button:disabled{cursor:not-allowed;opacity:.68}.auth-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#f8f2e5,#fff 55%,#edf3f8)}.auth-panel{width:min(560px,100%);border:1px solid rgba(18,58,112,.13);border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(18,58,112,.16);overflow:hidden}.auth-brand{display:flex;align-items:center;gap:12px;padding:22px 28px;background:var(--navy);color:#fff;text-decoration:none}.auth-brand strong{font:700 44px/1 Georgia,serif;color:var(--gold)}.auth-brand span{font-size:12px;font-weight:700;line-height:1.15;text-transform:uppercase;letter-spacing:.08em}.auth-content{padding:42px}.auth-content h1{margin:7px 0 10px;color:var(--navy);font-size:38px;line-height:1.08}.auth-content>p{margin:0 0 25px;color:var(--muted);line-height:1.65}.auth-kicker{color:#8b6b18;font-size:11px;font-weight:800;letter-spacing:.15em}.password-wrap{position:relative;display:block}.password-wrap input{padding-right:62px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--navy);font-size:12px;font-weight:800;cursor:pointer}.auth-hint{margin:-7px 0 0;color:var(--muted);font-size:12px}.auth-error{margin:0;padding:11px;border-radius:8px;background:#fdeaea;color:var(--red);font-size:13px}.auth-spinner{width:34px;height:34px;margin:0 auto 16px;border:3px solid #dfe5ec;border-top-color:var(--gold);border-radius:50%;animation:auth-spin .8s linear infinite}.auth-content:has(.auth-spinner){text-align:center}.auth-success{text-align:center}.success-mark{display:grid;place-items:center;width:66px;height:66px;margin:0 auto;border-radius:50%;background:#e4f3e9;color:var(--green);font-size:34px;font-weight:800}.auth-success .button{display:inline-block;margin-top:8px;text-decoration:none}.admin-account-form .relationship-field{margin-top:1px}@keyframes auth-spin{to{transform:rotate(360deg)}}@media(max-width:620px){.auth-page{padding:14px}.auth-content{padding:30px 22px}.auth-content h1{font-size:32px}.auth-brand{padding:18px 22px}.auth-modal{padding:27px 20px}.admin-account-form .field-grid{grid-template-columns:1fr}}

/* Keep the two login roles while presenting only the family portal on the homepage. */
.role-tabs{grid-template-columns:repeat(2,1fr)}
.portal-grid{grid-template-columns:minmax(0,1fr);max-width:520px;margin-inline:auto}
/* Child selector shown when a family account has more than one student. */
.child-select-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.child-select{cursor:pointer}
.child-select.is-selected{border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,164,71,.35)}
.time-grid button[disabled]{opacity:.45;cursor:not-allowed}
