/* Detailed mockup revision. All geometry/type changes are login-scoped. */
.portal-login-body {
 --portal-primary:#006d73; --portal-secondary:#009b9e; --portal-ink:#243746; --portal-muted:#64748b;
 --person-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm-9 19v-3c0-3 4-5 9-5s9 2 9 5v3Z'/%3E%3C/svg%3E");
 --lock-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 10V7a6 6 0 0 1 12 0v3h1a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Zm3 0h6V7a3 3 0 0 0-6 0Zm3 3a2 2 0 0 0-1 3.73V20h2v-3.27A2 2 0 0 0 12 13Z'/%3E%3C/svg%3E");
 --eye-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='m2 2 20 20' stroke-width='3'/%3E%3C/svg%3E");
 --eye-open-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
 --arrow-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h17m-7-7 7 7-7 7'/%3E%3C/svg%3E");
 --shield-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 3 5v7c0 5 4 9 9 11 5-2 9-6 9-11V5Zm-1 15-4-4 1.5-1.5L11 13l5-5 1.5 1.5Z'/%3E%3C/svg%3E");
 margin:0; min-width:0; background:#006d73; color:var(--portal-ink); font-family:"Segoe UI",Arial,Helvetica,sans-serif; font-size:15px; line-height:1.4; -webkit-font-smoothing:antialiased; -webkit-text-size-adjust:100%;
}
.portal-login-body *, .portal-login-body *::before, .portal-login-body *::after {box-sizing:border-box}
.portal-login-body .plain-main {min-height:0}
.portal-login-body .plain-footer {display:none}
.portal-login-body .sr-label {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.portal-login-body .login-shell {position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;display:flex}
.portal-login-body .campus-photo {position:absolute;inset:0;z-index:-2;overflow:hidden}
.portal-login-body .campus-backdrop,.portal-login-body .campus-main {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.portal-login-body .campus-main {width:72%;mask-image:linear-gradient(to right,#000 80%,transparent 100%)}
.portal-login-body .campus-photo::after {content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(0,109,115,.2) 66%,rgba(0,125,130,.92) 100%)}
.portal-login-body .login-shell::after {content:"";position:absolute;z-index:1;pointer-events:none;bottom:0;left:0;width:100%;height:clamp(80px,15vh,150px);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath d='M0 20C230 70 400 195 750 125S1260 130 1440 15V180H0Z' fill='%23009b9e' fill-opacity='.8'/%3E%3Cpath d='M0 85C270 65 330 210 680 170S1150 130 1440 65V180H0Z' fill='%2391e0e1' fill-opacity='.92'/%3E%3Cpath d='M0 108C260 110 380 205 760 155S1240 155 1440 105V180H0Z' fill='%233abec4'/%3E%3Cpath d='M0 125C340 240 460 235 940 165S1260 185 1440 122V180H0Z' fill='%2300848b'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat}
.portal-login-body .login-panel {position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-end;width:100%;min-width:0;padding:max(28px,env(safe-area-inset-top)) max(4vw,env(safe-area-inset-right)) max(40px,env(safe-area-inset-bottom)) max(4vw,env(safe-area-inset-left))}
.portal-login-body .login-card {position:relative;width:clamp(420px,39vw,560px);padding:34px;text-align:center;color:var(--portal-ink);background:rgba(255,255,255,.99);border:1px solid rgba(255,255,255,.85);border-radius:24px;box-shadow:0 12px 38px rgba(0,72,77,.13)}
.portal-login-body .login-seal {display:block;width:176px;height:176px;margin:0 auto 18px;object-fit:contain}
.portal-login-body .login-card h1 {margin:0;color:#005259;font-size:36px;font-weight:700;line-height:1.08;letter-spacing:-.035em}
.portal-login-body .login-portal {display:flex;align-items:center;justify-content:center;gap:15px;margin:16px 0 24px;color:#7b8ba3;font-size:16px;font-weight:500;letter-spacing:.16em}
.portal-login-body .login-portal::before,.portal-login-body .login-portal::after {content:"";width:52px;height:1px;background:#cbd5e1}
.portal-login-body .login-form {display:grid;gap:14px;margin:0;text-align:left}
.portal-login-body .login-form label,.portal-login-body .login-field {margin:0}
.portal-login-body .username-field,.portal-login-body .password-field {position:relative;display:block}
.portal-login-body .username-field::before,.portal-login-body .password-field::before {content:"";position:absolute;z-index:1;left:18px;top:50%;transform:translateY(-50%);width:22px;height:22px;background:#78879a;mask:var(--person-icon) center/contain no-repeat;pointer-events:none}
.portal-login-body .password-field::before {mask-image:var(--lock-icon)}
.portal-login-body .login-form input:not([type="checkbox"]):not([type="hidden"]) {width:100%;min-width:0;height:52px;padding:12px 16px 12px 54px;color:var(--portal-ink);background:transparent;border:1px solid #d4dfed;border-radius:12px;font:inherit;font-size:16px;font-weight:400;box-shadow:none;transition:border-color 150ms ease,box-shadow 150ms ease}
.portal-login-body .login-form input::placeholder {color:#7b8ba3;opacity:1}
.portal-login-body .login-form input:focus {outline:0;border-color:var(--portal-secondary);box-shadow:0 0 0 3px rgba(0,155,158,.16)}
.portal-login-body .login-form .password-field input {padding-right:52px}
.portal-login-body .password-toggle {position:absolute;inset:1px 2px 1px auto;display:grid;place-items:center;width:48px;min-height:44px;padding:0;border:0;border-radius:0 11px 11px 0;background:transparent;color:#78879a;cursor:pointer;font:inherit}
.portal-login-body .eye-icon {display:block;width:22px;height:22px;background:currentColor;mask:var(--eye-icon) center/contain no-repeat}
.portal-login-body .password-toggle[aria-pressed="true"] .eye-icon {mask-image:var(--eye-open-icon)}
.portal-login-body .password-toggle:hover {color:var(--portal-primary)}
.portal-login-body .login-form > button[type="submit"] {width:100%;min-height:56px;margin:2px 0 0;padding:12px 16px;color:#fff;background:linear-gradient(110deg,#009b9e,#00585d);border:0;border-radius:13px;font:inherit;font-size:20px;font-weight:600;box-shadow:0 9px 20px rgba(0,155,158,.2);cursor:pointer;transition:box-shadow 150ms ease}
.portal-login-body .login-form > button[type="submit"]::after {content:"";display:inline-block;vertical-align:-.18em;margin-left:10px;width:24px;height:24px;background:currentColor;mask:var(--arrow-icon) center/contain no-repeat}
.portal-login-body .login-form > button[type="submit"]:hover {background:linear-gradient(110deg,#008a8e,#004f54);box-shadow:0 10px 24px rgba(0,109,115,.25)}
.portal-login-body .login-form > button:disabled {opacity:.65;cursor:wait}
.portal-login-body .login-form > button:disabled::after {display:none}
.portal-login-body a {color:var(--portal-primary);text-decoration:underline;text-underline-offset:2px}
.portal-login-body button:focus-visible,.portal-login-body a:focus-visible {outline:3px solid var(--portal-primary);outline-offset:3px}
.portal-login-body .login-options {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;font-size:13px}
.portal-login-body .login-options .remember-label {display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;cursor:pointer}
.portal-login-body .remember-label input {appearance:none;position:relative;width:22px;height:22px;margin:0;border:1px solid #bccbd4;border-radius:4px;background:#fff;flex-shrink:0}
.portal-login-body .remember-label input:checked {border-color:#00888d;background:linear-gradient(135deg,#009b9e,#006d73)}
.portal-login-body .remember-label input:checked::after {content:"";position:absolute;top:3px;left:7px;width:6px;height:11px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}
.portal-login-body .login-secondary-link {margin:0;color:var(--portal-muted);font-size:12px;font-weight:400;text-align:center}
.portal-login-body .login-secondary-link a {font-weight:600}
.portal-login-body .login-message {min-height:0;margin:0;color:#dc2626;font-size:12px;font-weight:600;text-align:center;overflow-wrap:anywhere}
.portal-login-body .login-message:empty,.portal-login-body .login-feedback:empty {display:none}
.portal-login-body .login-feedback .alert {text-align:left;font-size:13px}
.portal-login-body .security-divider {display:flex;align-items:center;gap:16px;margin:24px 8px 10px;color:#78879a}
.portal-login-body .security-divider::before,.portal-login-body .security-divider::after {content:"";height:1px;background:#cbd5e1;flex:1}
.portal-login-body .shield-icon {width:22px;height:25px;background:currentColor;mask:var(--shield-icon) center/contain no-repeat}
.portal-login-body .login-security {margin:0;color:var(--portal-muted);font-size:11px;line-height:1.4}
.portal-login-body .login-campus-detail {display:none}
.portal-login-body input,.portal-login-body button,.portal-login-body a {scroll-margin:16px}
@media(min-width:901px) and (max-height:850px) {
 .portal-login-body .login-panel {padding-top:20px;padding-bottom:26px}
 .portal-login-body .login-card {padding:28px}
 .portal-login-body .login-seal {width:146px;height:146px;margin-bottom:14px}
 .portal-login-body .login-card h1 {font-size:32px}
 .portal-login-body .login-portal {margin:14px 0 20px}
 .portal-login-body .security-divider {margin-top:20px}
}
@media(min-width:901px) and (max-height:740px) {
 .portal-login-body .login-panel {padding-top:14px;padding-bottom:18px}
 .portal-login-body .login-card {padding:24px 28px}
 .portal-login-body .login-seal {width:128px;height:128px;margin-bottom:12px}
 .portal-login-body .login-portal {margin:12px 0 18px}
 .portal-login-body .login-form {gap:12px}
 .portal-login-body .login-form input:not([type="checkbox"]):not([type="hidden"]) {height:48px}
 .portal-login-body .login-form > button[type="submit"] {min-height:52px}
 .portal-login-body .security-divider {margin-top:16px}
}
@media(max-width:900px) {
 .portal-login-body .campus-main {width:100%;height:48%;object-position:center 32%}
 .portal-login-body .campus-backdrop {display:none}
 .portal-login-body .campus-photo {background:#c8eeee}
 .portal-login-body .campus-photo::after {background:linear-gradient(0deg,#009b9e,transparent 30%)}
 .portal-login-body .login-panel {align-items:center;justify-content:center;padding:max(200px,calc(env(safe-area-inset-top) + 170px)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .portal-login-body .login-card {width:min(100%,480px);padding:28px 22px 0;border-radius:25px;box-shadow:0 8px 22px rgba(0,109,115,.08)}
 .portal-login-body .login-seal {position:absolute;left:50%;top:-166px;transform:translateX(-50%);width:154px;height:154px;margin:0}
 .portal-login-body .login-card h1 {font-size:28px;letter-spacing:-.025em}
 .portal-login-body .login-portal {margin:10px 0 18px;font-size:13px;gap:11px}
 .portal-login-body .login-portal::before,.portal-login-body .login-portal::after {width:40px}
 .portal-login-body .login-form {gap:10px}
 .portal-login-body .login-form input:not([type="checkbox"]):not([type="hidden"]) {height:46px;padding-left:46px}
 .portal-login-body .username-field::before,.portal-login-body .password-field::before {left:14px;width:20px;height:20px}
 .portal-login-body .login-form > button[type="submit"] {min-height:48px;font-size:18px;border-radius:12px}
 .portal-login-body .login-options,.portal-login-body .login-options .remember-label {font-size:11px}
 .portal-login-body .remember-label input {width:20px;height:20px}
 .portal-login-body .security-divider {margin:18px 6px 8px;gap:12px}
 .portal-login-body .shield-icon {width:18px;height:22px}
 .portal-login-body .login-security {font-size:10px}
 .portal-login-body .login-campus-detail {display:block;margin:12px -22px 0;height:clamp(130px,20dvh,210px);border-radius:0 0 24px 24px;overflow:hidden}
 .portal-login-body .login-campus-detail img {display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%}
 .portal-login-body .login-shell::after {z-index:3;height:65px}
}
@media(max-width:900px) and (max-height:740px) {
 .portal-login-body .login-panel {padding-top:max(130px,calc(env(safe-area-inset-top) + 110px));padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .portal-login-body .login-seal {width:108px;height:108px;top:-118px}
 .portal-login-body .login-card {padding-top:20px}
 .portal-login-body .login-card h1 {font-size:26px}
 .portal-login-body .login-portal {margin-bottom:14px}
 .portal-login-body .login-campus-detail {height:110px}
 .portal-login-body .security-divider {margin-top:14px}
 .portal-eleave .login-panel {padding-top:max(116px,calc(env(safe-area-inset-top) + 110px))}
 .portal-eleave .login-campus-detail {height:80px}
}
@media(max-width:900px) and (max-height:600px) {
 .portal-login-body .login-panel {padding-top:max(100px,calc(env(safe-area-inset-top) + 88px));padding-right:max(8px,env(safe-area-inset-right));padding-left:max(8px,env(safe-area-inset-left));padding-bottom:max(8px,env(safe-area-inset-bottom))}
 .portal-login-body .login-seal {width:80px;height:80px;top:-88px}
 .portal-login-body .login-card {padding:16px 18px 0}
 .portal-login-body .login-card h1 {font-size:24px}
 .portal-login-body .login-portal {margin:8px 0 12px}
 .portal-login-body .login-form {gap:8px}
 .portal-login-body .login-form input:not([type="checkbox"]):not([type="hidden"]) {height:44px}
 .portal-login-body .login-form > button[type="submit"] {min-height:46px}
 .portal-login-body .login-secondary-link {font-size:10px}
 .portal-login-body .security-divider {margin-top:12px}
 .portal-login-body .login-campus-detail {height:70px;margin:10px -18px 0}
 .portal-login-body .login-shell::after {height:48px}
}
/* Errors, zoom, keyboards and very short viewports may grow the document. */
@media(prefers-reduced-motion:reduce) {.portal-login-body *, .portal-login-body *::before,.portal-login-body *::after {transition:none!important}}

/* Measured against the 1018 x 790 desktop page inside the supplied mockup.
   Reference card: x=562, y=49, w=414; seal=168; fields=52; button=58.
   The photograph/official seal remain the original school assets. Only leaf/sky
   corners from the uploaded mockup are revealed by the decorative canopy. */
.portal-login-body { --ref-unit:clamp(.84px,calc(100dvh / 790),1.32px); }
@media(min-width:901px) {
 .portal-login-body .login-panel {padding:max(18px,env(safe-area-inset-top)) max(4.12vw,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(4.12vw,env(safe-area-inset-left));}
 .portal-login-body .login-card {width:calc(414 * var(--ref-unit));max-width:calc(100vw - 48px);padding:calc(24 * var(--ref-unit)) calc(30 * var(--ref-unit)) calc(35 * var(--ref-unit));border-radius:calc(22 * var(--ref-unit));background:linear-gradient(125deg,rgba(250,253,255,.99),rgba(245,251,253,.99));box-shadow:0 14px 40px rgba(0,101,110,.12);}
 .portal-login-body .login-seal {width:calc(168 * var(--ref-unit));height:calc(168 * var(--ref-unit));margin:0 auto calc(12 * var(--ref-unit));}
 .portal-login-body .login-card h1 {font-family:"Segoe UI",Arial,sans-serif;font-size:calc(36 * var(--ref-unit));font-weight:700;line-height:1.02;letter-spacing:-.025em;color:#004951;}
 .portal-login-body .login-portal {margin:calc(12 * var(--ref-unit)) 0 calc(22 * var(--ref-unit));font-size:calc(18 * var(--ref-unit));line-height:1.4;letter-spacing:.16em;gap:calc(16 * var(--ref-unit));}
 .portal-login-body .login-portal::before,.portal-login-body .login-portal::after {width:calc(50 * var(--ref-unit));}
 .portal-login-body .login-form {gap:calc(14 * var(--ref-unit));}
 .portal-login-body .login-form input:not([type="checkbox"]):not([type="hidden"]) {height:calc(52 * var(--ref-unit));font-size:max(16px,calc(16 * var(--ref-unit)));padding-left:calc(58 * var(--ref-unit));border-color:#d7e3ed;border-radius:calc(12 * var(--ref-unit));background:rgba(255,255,255,.25);}
 .portal-login-body .username-field::before,.portal-login-body .password-field::before {left:calc(20 * var(--ref-unit));width:calc(22 * var(--ref-unit));height:calc(22 * var(--ref-unit));}
 .portal-login-body .login-options {min-height:calc(24 * var(--ref-unit));margin-top:calc(4 * var(--ref-unit));font-size:calc(14 * var(--ref-unit));gap:8px;}
 .portal-login-body .login-options .remember-label {font-size:calc(14 * var(--ref-unit));}
 .portal-login-body .remember-label input {width:calc(24 * var(--ref-unit));height:calc(24 * var(--ref-unit));}
 .portal-login-body .login-form > button[type="submit"] {height:calc(58 * var(--ref-unit));min-height:50px;margin-top:calc(6 * var(--ref-unit));padding:0 12px;font-size:calc(22 * var(--ref-unit));border-radius:calc(13 * var(--ref-unit));background:linear-gradient(105deg,#009da3,#005a60);box-shadow:0 9px 22px rgba(0,155,158,.22);}
 .portal-login-body .login-form > button[type="submit"]::after {width:calc(24 * var(--ref-unit));height:calc(24 * var(--ref-unit));margin-left:calc(10 * var(--ref-unit));}
 .portal-login-body .security-divider {margin:calc(18 * var(--ref-unit)) calc(10 * var(--ref-unit)) calc(10 * var(--ref-unit));gap:calc(16 * var(--ref-unit));}
 .portal-login-body .shield-icon {width:calc(22 * var(--ref-unit));height:calc(24 * var(--ref-unit));}
 .portal-login-body .login-security {font-size:calc(12 * var(--ref-unit));}
 .portal-login-body .login-shell::after {height:calc(140 * var(--ref-unit));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1018 140' preserveAspectRatio='none'%3E%3Cpath d='M0 14C130 52 256 133 436 136S740 88 1018 10V140H0Z' fill='%232ab5b7'/%3E%3Cpath d='M0 59C150 49 272 148 480 151S840 116 1018 54V140H0Z' fill='%2396e2e3'/%3E%3Cpath d='M0 83C176 79 258 164 492 160S802 156 1018 91V140H0Z' fill='%233ec4c8'/%3E%3Cpath d='M0 140C240 148 348 167 540 150S858 139 1018 112V140H0Z' fill='%2300666d'/%3E%3C/svg%3E");}
 .portal-login-body .campus-photo::after {background:linear-gradient(to bottom,transparent 48%,rgba(0,133,141,.22) 66%,rgba(0,134,142,.88) 100%);}
}
/* Actual corner artwork from the reference, clipped in CSS. No buildings or
   form controls from the mockup are substituted for the working page. */
.portal-login-body .campus-canopy {position:absolute;inset:0;pointer-events:none;}
.portal-login-body .campus-canopy::before,.portal-login-body .campus-canopy::after {content:"";position:absolute;top:0;background-image:url("mockup-reference.png");background-repeat:no-repeat;background-size:calc(1447 * var(--ref-unit)) calc(1087 * var(--ref-unit));}
.portal-login-body .campus-canopy::before {left:0;width:calc(180 * var(--ref-unit));height:calc(240 * var(--ref-unit));background-position:calc(-44 * var(--ref-unit)) calc(-185 * var(--ref-unit));mask-image:radial-gradient(ellipse calc(200 * var(--ref-unit)) calc(210 * var(--ref-unit)) at top left,#000 5%,transparent 75%);}
.portal-login-body .campus-canopy::after {right:0;width:calc(220 * var(--ref-unit));height:calc(48 * var(--ref-unit));background-position:calc(-840 * var(--ref-unit)) calc(-185 * var(--ref-unit));mask-image:radial-gradient(ellipse at top right,#000 15%,transparent 88%);}
@media(max-width:900px) {
 .portal-login-body {--ref-unit:1px;}
 .portal-login-body .login-card {background:linear-gradient(125deg,rgba(250,253,255,.99),rgba(245,251,253,.99));}
 .portal-login-body .login-card h1 {font-family:"Segoe UI",Arial,sans-serif;color:#004951;}
 .portal-login-body .login-panel {padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom);}
 .portal-login-body .login-seal {width:144px;height:144px;top:-154px;}
 .portal-login-body .campus-main {mask-image:none;object-position:center 28%;}
 .portal-login-body .campus-canopy::before {width:94px;height:150px;background-size:868px 652px;background-position:-26px -111px;}
 .portal-login-body .campus-canopy::after {width:110px;height:30px;background-size:868px 652px;background-position:-504px -111px;}
 .portal-login-body .login-shell::after {height:74px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 302 80' preserveAspectRatio='none'%3E%3Cpath d='M0 18C65 24 106 102 210 73S276 52 302 30V80H0Z' fill='%232ab5b7'/%3E%3Cpath d='M0 35C60 33 110 99 188 90S262 69 302 42V80H0Z' fill='%2396e2e3'/%3E%3Cpath d='M0 49C65 51 98 104 183 94S273 71 302 58V80H0Z' fill='%233ec4c8'/%3E%3Cpath d='M0 80C160 108 235 100 302 66V80H0Z' fill='%2300666d'/%3E%3C/svg%3E");}
}
@media(max-width:900px) and (max-height:740px) {.portal-login-body .login-seal {width:108px;height:108px;top:-118px;}}
@media(max-width:900px) and (max-height:600px) {.portal-login-body .login-seal {width:80px;height:80px;top:-88px;} .portal-login-body .login-shell::after {height:48px;}}
/* Phone proportions measured from the reference's 302 x 777 display. */
@media(max-width:600px) and (min-height:741px) {
 .portal-login-body {--mobile-top:clamp(160px,20.6dvh,180px);}
 .portal-login-body .login-panel {align-items:flex-start;padding-top:var(--mobile-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);}
 .portal-login-body .login-card {width:100%;max-width:480px;padding:28px 20px 0;border-radius:25px;border:0;}
 .portal-login-body .login-seal {width:144px;height:144px;top:-120px;}
 .portal-login-body .login-card h1 {font-size:27px;line-height:1.05;}
 .portal-login-body .login-portal {margin:8px 0 14px;}
 .portal-login-body .login-form {gap:8px;}
 .portal-login-body .login-form input:not([type="checkbox"]):not([type="hidden"]) {height:44px;}
 .portal-login-body .login-form > button[type="submit"] {height:48px;min-height:48px;padding:10px 12px;}
 .portal-login-body .security-divider {margin-top:12px;}
 .portal-login-body .login-security {font-size:9px;line-height:1.35;letter-spacing:-.015em;}
 .portal-login-body .login-campus-detail {margin:8px -20px 0;height:calc(100dvh - var(--mobile-top) - 372px);min-height:130px;}
 .portal-eleave .login-campus-detail {height:calc(100dvh - var(--mobile-top) - 414px);}
}
