/* SGF authentication only: adapt the shared forms without changing their contract. */
.auth-panel{padding-top:28px}
.workspace-brand{padding-top:72px}
.auth-content{margin-bottom:28px}
.auth-heading h2{overflow-wrap:break-word}
.auth-panel input:focus{outline:none;box-shadow:0 0 0 3px #176a9e26}
.password-field input{padding-right:56px}
.label-row label{display:block;font-size:16px;line-height:22px;margin-bottom:8px}
.login-password-group{display:grid;grid-template-columns:minmax(0,1fr);margin-bottom:0}
.login-password-group>label{grid-area:1/1}
.login-password-group>input{grid-area:2/1;padding-right:56px}
.login-password-group>.field-error{grid-area:3/1}
.login-password-group>.caps-lock{grid-area:4/1}
.login-password-group>.sign-in{grid-area:5/1;margin-top:24px}
.login-password-group>.visibility-toggle{grid-area:2/1;position:static;align-self:center;justify-self:end;margin-right:4px}
.visibility-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.visibility-toggle:hover{background:#edf5fb}
.eye-slash{display:none}
.visibility-toggle[aria-pressed=true] .eye-slash{display:block}
.login-recovery-link,.back-to-login{text-align:right;font-size:15px;line-height:1.5;margin:18px 0 0}
.back-to-login span{margin-right:6px}
.caps-lock{color:#775300;font-size:14px;margin:7px 0 0;line-height:1.4}
.form-message{margin:18px 0 0;padding:12px 14px;border:1px solid #f0cbd1;background:#fff7f8;border-radius:6px;color:#842335;font-size:14px;line-height:1.5}
.form-success{border-color:#b4d9c1;background:#f3fbf6;color:#21623b}
.spinner{width:19px;height:19px;border:2px solid #ffffff66;border-top-color:white;border-radius:50%;animation:sgf-spin .7s linear infinite}
@keyframes sgf-spin{to{transform:rotate(360deg)}}
.sign-in:not(:disabled):has(.button-label)::after{content:'→';font-size:24px;font-weight:400}
.sign-in:disabled::after{display:none}
.auth-footer{justify-content:center}
.auth-footer p{margin:0}
@media(min-width:900px) and (max-height:800px){
.hero-panel{padding-top:24px}
.hero-copy{margin-top:32px}
.hero-copy h1{font-size:clamp(38px,3.7vw,60px)}
.hero-copy p{font-size:clamp(17px,1.51vw,24px)}
.workspace-brand{padding-top:16px}
.workspace-brand img{width:160px}
.workspace-brand p{margin-top:16px}
.auth-heading{margin-top:28px}
.auth-heading h2{font-size:32px}
form{margin-top:24px}
.facility-art{margin-top:24px}
}
@media(max-width:899px){
.workspace-brand{padding-top:14px}
.auth-content{margin-bottom:0}
.auth-footer{display:none}
.login-recovery-link,.back-to-login{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
.hero-copy p{max-width:680px}
.facility-art img{object-fit:contain}
/* Fit the illustration to available height rather than its intrinsic width. */
@media(min-width:900px){
.login-layout{min-height:100svh}
.hero-panel{height:100svh;min-height:520px;padding-top:clamp(16px,3vh,34px)}
.wenalytics-logo{width:clamp(210px,min(18.6vw,32vh),360px)}
.hero-copy{margin-top:clamp(18px,4vh,64px);flex-shrink:0}
.hero-copy h1{font-size:clamp(34px,min(3.7vw,6.5vh),72px)}
.hero-copy p{font-size:clamp(16px,min(1.51vw,2.6vh),28px);margin-top:clamp(10px,1.8vh,18px)}
.facility-art{flex:1;min-height:0;width:96%;margin:12px auto 0;display:flex;align-items:flex-end}
.facility-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom;min-height:0}
.features{flex-shrink:0;padding-top:8px}
.features li{font-size:clamp(12px,min(1.02vw,1.8vh),19px);min-height:32px}
.features img{width:clamp(24px,3.4vh,32px);height:clamp(24px,3.4vh,32px);flex-basis:auto}
.copyright{flex-shrink:0;margin:clamp(10px,2vh,20px) 0 clamp(12px,2.5vh,24px);font-size:12px}
.auth-panel{padding-top:clamp(12px,2.5vh,28px);padding-bottom:16px;min-height:100svh}
.auth-content{margin-top:auto;margin-bottom:auto;padding-bottom:12px}
.workspace-brand{padding-top:0}
.workspace-brand img{width:clamp(100px,min(13.7vw,20vh),240px)}
.workspace-brand p{margin-top:clamp(10px,2vh,27px);font-size:11px}
.auth-heading{margin-top:clamp(18px,3.5vh,47px)}
.auth-heading h2{font-size:clamp(28px,min(2.5vw,4.5vh),44px)}
.auth-heading p{font-size:clamp(16px,min(1.15vw,2.1vh),20px)}
form{margin-top:clamp(18px,3vh,36px)}
.field-group{margin-bottom:clamp(14px,2.3vh,24px)}
.field-group input{height:clamp(44px,5.8vh,56px);font-size:16px}
.visibility-toggle{height:40px;top:2px;width:44px}
.sign-in{min-height:clamp(44px,6vh,58px);padding:10px 16px;font-size:18px}
.login-password-group>.sign-in{margin-top:clamp(16px,2.4vh,24px)}
.login-recovery-link,.back-to-login{margin-top:clamp(12px,1.8vh,18px)}
.access-note{margin-top:clamp(12px,1.8vh,18px);font-size:14px}
.auth-footer{margin-top:0;padding-top:12px;font-size:12px}
}
@media(max-width:899px) and (max-height:850px){
.hero-panel{padding:16px 24px}
.wenalytics-logo{width:190px}
.workspace-brand img{width:110px}
.workspace-brand p{margin-top:10px}
.auth-heading{margin-top:20px}
.auth-heading h2{font-size:28px}
form{margin-top:20px}
.field-group{margin-bottom:16px}
.field-group input{height:48px}
.visibility-toggle{height:40px;top:4px}
.sign-in{min-height:48px;padding:10px 16px}
.login-password-group>.sign-in{margin-top:18px}
.login-recovery-link,.back-to-login,.access-note{margin-top:14px}
}
@media(max-width:899px) and (max-height:700px){
.hero-panel{padding:12px 20px}
.wenalytics-logo{width:170px}
.auth-panel{padding:10px 20px 12px;min-height:calc(100svh - 54px)}
.workspace-brand{padding-top:4px}
.workspace-brand img{width:80px}
.workspace-brand p{margin-top:6px;font-size:10px}
.auth-heading{margin-top:14px}
.auth-heading h2{font-size:25px}
.auth-heading p{font-size:15px;margin-top:6px}
form{margin-top:16px}
.field-group{margin-bottom:12px}
.field-group input{height:44px;font-size:16px}
.field-group>label,.label-row label{font-size:14px;margin-bottom:6px}
.visibility-toggle{height:36px;top:4px}
.sign-in{min-height:44px;font-size:18px}
.login-password-group>.sign-in{margin-top:14px}
.login-recovery-link,.back-to-login,.access-note{margin-top:10px}
.access-note{font-size:12px}
.mobile-copyright{font-size:11px;margin-top:10px}
}
/* Large monitors retain the reference proportions rather than fixed pixel caps. */
@media(min-width:2000px) and (min-height:900px){
.hero-panel{padding-top:clamp(34px,3.6vh,70px)}
.wenalytics-logo{width:clamp(360px,18.6vw,720px);margin-left:4.1vw}
.hero-copy{margin:clamp(50px,5.5vh,120px) 4.1vw 0}
.hero-copy h1{font-size:clamp(72px,min(3.7vw,6.5vh),144px)}
.hero-copy p{max-width:41vw;font-size:clamp(28px,min(1.51vw,2.6vh),56px);margin-top:2vh}
.facility-art{max-width:none}
.features{margin-inline:4.1vw}
.features li{font-size:clamp(19px,min(1.02vw,1.8vh),38px);gap:1vw;min-height:4vh}
.features img{width:clamp(32px,3.4vh,64px);height:clamp(32px,3.4vh,64px)}
.copyright{padding-inline:4.1vw;font-size:clamp(14px,.75vw,28px)}
.auth-content{max-width:clamp(460px,24.5vw,940px)}
.workspace-brand img{width:clamp(240px,min(13.7vw,20vh),480px)}
.workspace-brand p{font-size:clamp(12px,.72vw,24px)}
.auth-heading h2{font-size:clamp(44px,min(2.5vw,4.5vh),88px)}
.auth-heading p{font-size:clamp(20px,min(1.15vw,2.1vh),40px)}
.auth-heading{margin-top:4vh}
form{margin-top:3.8vh}
.field-group{margin-bottom:2.5vh}
.field-group>label,.label-row label{font-size:clamp(16px,.96vw,32px);line-height:1.4;margin-bottom:1vh}
.field-group input{height:clamp(56px,5.8vh,112px);font-size:clamp(17px,1.02vw,34px);padding-inline:1vw}
.password-field input,.login-password-group>input{padding-right:clamp(56px,3.5vw,120px)}
.visibility-toggle{width:clamp(44px,2.7vw,90px);height:clamp(40px,4.3vh,86px);top:.7vh}
.visibility-toggle svg{width:clamp(22px,1.3vw,44px);height:clamp(22px,1.3vw,44px)}
.sign-in{min-height:clamp(58px,6vh,116px);font-size:clamp(20px,1.2vw,40px)}
.sign-in:not(:disabled):has(.button-label)::after{font-size:clamp(24px,1.45vw,48px)}
.login-password-group>.sign-in{margin-top:2.5vh}
.login-recovery-link,.back-to-login{font-size:clamp(15px,.9vw,30px);margin-top:2vh}
.access-note{font-size:clamp(14px,.85vw,28px);margin-top:2vh}
.auth-footer{font-size:clamp(12px,.75vw,26px)}
}
/* Tablet touch controls; desktop and large-monitor rules remain independent. */
@media(min-width:600px) and (max-width:1199px){
.visibility-toggle{min-width:44px;min-height:44px}
.password-field .visibility-toggle{top:50%;transform:translateY(-50%)}
.login-recovery-link a,.back-to-login a{display:inline-flex;align-items:center;min-height:44px}
}
/* Portrait tablets use a spacious form instead of a narrow desktop side panel. */
@media(min-width:600px) and (max-width:1199px) and (max-aspect-ratio:1/1){
.login-layout{display:block}
.hero-panel{height:auto;min-height:0;padding:22px 32px;border-bottom:1px solid var(--color-divider)}
.wenalytics-logo{width:238px;margin:0;max-width:70%}
.hero-copy,.facility-art,.features,.copyright{display:none}
.auth-panel{min-height:calc(100svh - 85px);border:0;padding:32px 40px;justify-content:center}
.auth-content{max-width:520px;margin:auto;padding:0}
.workspace-brand{padding-top:0}
.workspace-brand img{width:180px}
.workspace-brand p{font-size:12px;margin-top:18px}
.auth-heading{margin-top:32px}
.auth-heading h2{font-size:34px}
.auth-heading p{font-size:18px}
form{margin-top:30px}
.field-group{margin-bottom:24px}
.field-group input{height:56px;font-size:17px}
.sign-in{min-height:56px;font-size:20px}
.login-password-group>.sign-in{margin-top:24px}
.login-recovery-link,.back-to-login{margin-top:14px;font-size:16px}
.access-note{font-size:15px;margin-top:18px}
.auth-footer{display:none}
.mobile-copyright{display:block;text-align:center;font-size:12px;color:var(--color-muted);margin:28px 0 0;line-height:1.5}
}
@media(min-width:600px) and (max-width:1199px) and (max-aspect-ratio:1/1){
.hero-panel{height:86px;justify-content:center}
.auth-panel{min-height:calc(100svh - 86px)}
}
/* Mobile/portrait artwork preview: keep the full scene above the form. */
@media(max-width:899px), (min-width:900px) and (max-width:1199px) and (max-aspect-ratio:1/1){
.sgf-auth-page .hero-panel{height:auto;min-height:0;padding:20px 24px 14px}
.sgf-auth-page .facility-art{display:block;width:100%;max-width:680px;margin:18px auto 0;padding:0;flex:none}
.sgf-auth-page .facility-art img{display:block;width:100%;height:auto;object-fit:contain}
.sgf-auth-page .auth-panel{min-height:0}
.sgf-auth-page .auth-content{margin:0 auto}
.sgf-auth-page .workspace-brand{padding-top:14px}
}
