/* Standalone sign-in layout; authentication markup and handlers are preserved. */
body.student-login-page {
    margin: 0;
    padding: 24px;
    display: grid;
    place-items: center;
    min-height: 100dvh;
    background: #fcf8f0;
    color: #153750;
    font: 14px/1.7 'Nunito Sans', sans-serif;
}
.student-login-shell { width: min(440px,100%); margin: auto; }
.student-login-card { position: relative; padding: 28px; background: white; border: 1px solid #e5e7e3; border-radius: 20px; overflow: hidden; box-shadow: 0 12px 46px #082e4f06; }
.student-login-main { display:grid; gap:20px; width:100%; min-width:0; }
.student-login-topbar { display:flex; gap:20px; align-items:center; justify-content:space-between; }
.student-login-brand { display:block; flex-shrink:0; }
.student-login-brand img { display:block; width:52px; height:52px; object-fit:contain; }
.student-login-back { display:inline-flex; align-items:center; justify-content:center; gap:5px; color:#7b8d98; text-decoration:none; font-size:10px; border:1px solid #e5e9e9; border-radius:22px; padding:8px 13px; }
.student-login-back:hover { background:#fcf8f0; }
.student-login-kicker { font-size:9px; font-weight:800; letter-spacing:.16em; color:#ab8a38; text-transform:uppercase; }
.student-login-intro h1 { font:900 28px/1.2 'Nunito',sans-serif; letter-spacing:-.035em; color:#082e4f; margin:0; }
.student-login-intro p { margin:0; font-size:13px; font-weight:400; line-height:1.8; color:#768893; max-width:355px; }
.student-login-form { display:grid; gap:16px; }
.student-login-field { display:grid; gap:8px; }
.student-login-field>label { font-size:12px; font-weight:800; color:#38536a; }
.auth-modern-input { display:block; position:relative; width:100%; min-width:0; }
.auth-modern-input input { display:block; min-width:0; width:100%; height:49px; padding:12px 15px 12px 42px; border:1px solid #dbe3e7; border-radius:9px; background:white; color:#153750; font:400 13px/1.5 'Nunito Sans',sans-serif; outline:none; transition:border-color .2s, box-shadow .2s; }
.auth-modern-input input:focus { border-color:#d8b558; box-shadow:0 0 0 3px #ffbc2615; }
.auth-modern-input input::placeholder { color:#a0abb2; }
.auth-modern-input--password input { padding-right:48px; }
.auth-modern-input__icon { position:absolute; top:16px; left:15px; width:17px; height:17px; fill:none; stroke:#8b9ba5; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.auth-modern-password-toggle { position:absolute; top:2px; right:2px; display:grid; place-items:center; width:44px; height:44px; border:0; background:transparent; color:#8b9ba5; border-radius:7px; }
.auth-modern-password-toggle svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; }
.student-login-meta-row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:9px 12px; }
.student-login-remember { display:flex; gap:8px; align-items:center; font-size:10px; line-height:1.6; font-weight:500; color:#748593; }
.student-login-remember input { width:15px; height:15px; accent-color:#082e4f; flex-shrink:0; margin:0; }
.student-login-forgot { border:0; background:none; color:#526e83; font-size:10px; font-weight:700; padding:7px 0; }
.student-login-forgot:hover { text-decoration:underline; }
.auth-submit { min-height:49px; border:0; border-radius:26px; display:flex; gap:12px; justify-content:center; align-items:center; background:#ffbc26; color:#082e4f; font:900 14px/1.5 'Nunito',sans-serif; padding:12px 24px; cursor:pointer; transition:background .2s; }
.auth-submit:hover { background:#ffd266; }
.auth-submit svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.auth-submit:disabled { opacity:.6; cursor:wait; }
.student-login-home-link { text-align:center; }
.student-login-home-link__anchor { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; text-decoration:none; color:#6f8493; }
.student-login-home-link__anchor svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; }
.auth-modern-divider { display:flex; align-items:center; gap:14px; font-size:10px; color:#9ba6ad; margin-top:0; }
.auth-modern-divider::before,.auth-modern-divider::after { content:''; flex:1; height:1px; background:#e9edef; }
.auth-modern-contact-text,.auth-modern-footer { margin:0; display:flex; align-items:center; justify-content:center; gap:7px; font-size:10px; color:#8a99a3; text-align:center; font-weight:500; }
.auth-modern-contact-text svg,.auth-modern-footer svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; flex-shrink:0; }
.auth-modern-footer { font-size:9px; margin-top:-10px; }
.auth-alert { padding:13px 16px; border:1px solid #edcccc; background:#fff6f4; border-radius:10px; color:#a63e32; font-size:12px; line-height:1.7; }
.auth-alert p { margin:0; }
.auth-alert.success { border-color:#d7e5d8; background:#f3f8f1; color:#467348; }
.auth-selection-card { border:1px solid #e4e9ec; background:#fffdf8; border-radius:14px; padding:19px; }
.auth-selection-card__head { display:flex; gap:14px; align-items:center; justify-content:space-between; }
.auth-selection-card__head h3 { font:900 19px/1.3 'Nunito',sans-serif; margin:0 0 8px; }
.auth-selection-card__head p { margin:0; font-size:11px; color:#788b98; }
.auth-selection-list { display:grid; gap:10px; margin-top:15px; }
.auth-selection-item { border:1px solid #e4e9ec; background:white; border-radius:10px; padding:14px; }
.auth-selection-item__head { display:flex; gap:12px; align-items:center; }
.auth-selection-item__avatar { width:39px; height:39px; border-radius:50%; background:#fff4d8; overflow:hidden; display:grid; place-items:center; font-size:12px; font-weight:800; }
.auth-selection-item__avatar img { width:100%; height:100%; object-fit:cover; }
.auth-selection-item__copy { display:grid; gap:3px; }
.auth-selection-item__copy strong { font-size:12px; }
.auth-selection-item__copy span { font-size:10px; color:#7f909b; }
.auth-selection-item__actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; margin-top:12px; }
.auth-selection-item__btn,.auth-inline-btn { display:inline-block; border:1px solid #e3e7e5; background:#fff5df; color:#667b8a; border-radius:18px; padding:7px 12px; text-decoration:none; font-size:10px; }
.auth-inline-btn--danger { background:white; color:#aa5d4d; }
.auth-selection-card--remembered { padding: 0; border: 0; border-radius: 0; background: transparent; }
.auth-selection-card--remembered .auth-selection-card__head h3 { margin: 0; color: #6c7e8a; font: 700 12px/1.5 'Nunito Sans',sans-serif; }
.auth-selection-card--remembered .auth-selection-list { margin-top: 8px; gap: 8px; }
.auth-selection-item--remembered { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 10px; background: #f8fafb; }
.auth-selection-item--remembered .auth-selection-item__head { min-width: 0; gap: 9px; }
.auth-selection-item--remembered .auth-selection-item__avatar { flex: 0 0 32px; width: 32px; height: 32px; }
.auth-selection-item--remembered .auth-selection-item__copy { min-width: 0; gap: 0; overflow-wrap: anywhere; }
.auth-selection-item--remembered .auth-selection-item__copy strong { line-height: 1.4; }
.auth-selection-item--remembered .auth-selection-item__actions { flex-wrap: nowrap; gap: 6px; margin: 0; }
.auth-selection-item--remembered .auth-selection-item__btn { min-height: 36px; padding: 7px 12px; border-color: #e9dcae; border-radius: 7px; color: #082e4f; font: 800 11px/1.5 'Nunito Sans',sans-serif; cursor: pointer; }
.auth-inline-btn--forget { display: grid; place-items: center; width: 32px; height: 36px; padding: 0; border: 0; background: transparent; color: #85949e; font: 400 21px/1 sans-serif; cursor: pointer; }
.auth-inline-btn--forget:hover { background: #fff1ed; color: #a63e32; }
.student-login-page [hidden] { display: none !important; }
.student-login-page :is(a,button):focus-visible { outline: 2px solid #397bb0; outline-offset: 3px; }
.auth-forgot-modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; }
.auth-forgot-modal__backdrop { position:absolute; inset:0; background:#06243e88; backdrop-filter:blur(3px); }
.auth-forgot-modal__dialog { position:relative; z-index:1; width:min(420px,100%); padding:34px; background:white; border:1px solid #e4e9ec; border-radius:22px; box-shadow:0 20px 80px #06243e26; }
.auth-forgot-modal__close { position:absolute; top:10px; right:10px; width:38px; height:38px; border:0; border-radius:50%; background:#fcf8f0; color:#082e4f; font-size:24px; }
.auth-forgot-head h3 { font:900 27px/1.2 'Nunito',sans-serif; margin:8px 0 18px; }
.auth-forgot-head p { font-size:13px; line-height:1.8; color:#708592; }
.auth-forgot-card .auth-submit { width:100%; margin-top:22px; }
.floating-social-links,.back-to-top { display:none!important; }
body.auth-forgot-modal-open { overflow:hidden; }
@media(max-width:900px) {
    body.student-login-page { padding:24px; }
}
@media(max-width:640px) {
    body.student-login-page { padding:16px; }
    .student-login-shell { max-width:440px; }
    .student-login-card { padding:22px; border-radius:18px; min-height:0; }
    .student-login-main { gap:18px; }
    .student-login-intro h1 { font-size:27px; }
    .student-login-brand img { width:48px; height:48px; }
    .student-login-meta-row { gap:6px; }
    .student-login-remember,.student-login-forgot { font-size:10px; }
    .auth-modern-footer { line-height:1.8; font-size:9px; }
}
