/* GDM 1.0.0.0010 — faithful, accessible implementation of the owner's approved reference.
   Stage preserves reference ratio 1704:923. The approved lab photograph is NEVER stretched. */
:root{--navy:#061d2e;--gold:#edb773;--cyan:#05c4d6;--ink:#052236}
*{box-sizing:border-box}html{min-height:100%;background:#071c2d}body{margin:0;font-family:Arial,"Segoe UI",sans-serif;color:#fff;background:#071c2d}
.login-page{min-height:100svh;display:flex;justify-content:center;align-items:center;overflow-x:hidden}
.login-screen{position:relative;width:min(100%,184.615svh);aspect-ratio:1704/923;flex:none;isolation:isolate;container-type:inline-size;overflow:hidden;background:#08263a;box-shadow:0 0 80px #0003}
.scene{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:linear-gradient(90deg,#d8e8f1 0%,#c9e0ed 25%,#236b86 45%,#05334a 69%,#062538 100%)}
.scene::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 40% 58% at 12% 10%,#f1f7f9cf,transparent),radial-gradient(ellipse 41% 40% at 18% 62%,#cde8f1ad,transparent),linear-gradient(90deg,#b9d9eac9 0%,#bbdce9aa 28%,transparent 42%,transparent 100%);z-index:1}
.scene-image{position:absolute;left:25.5282%;top:0;height:100%;width:auto;max-width:none;object-fit:contain;object-position:left top;display:block}
.scene::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,transparent 67%,#0522347a 74%,#05283a 100%);z-index:2}
.hero{position:absolute;inset:0;pointer-events:none}
.hero-inner{position:absolute;inset:0}
.brand-left{position:absolute;left:5.63%;top:4.66%;width:21.84%;color:#05141d}
.brand img,.auth-brand img{width:100%;height:auto;display:block;object-fit:contain}
.brand-left p{position:absolute;left:0.6%;top:80%;font-size:0.66cqw;font-weight:700;letter-spacing:.16em;color:#0b293c;margin:0;white-space:nowrap}
.hero-copy{position:absolute;left:5.70%;top:22.67%;width:29%;color:#032237}
.accent-rule{display:block;width:5.5cqw;height:.15cqw;min-height:1px;background:var(--gold)}
.hero-copy .accent-rule{margin-bottom:1.24cqw}
.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:4.1cqw;font-weight:700;line-height:1.015;letter-spacing:-.032em;margin:0 0 1.33cqw;color:#08283d}
.hero h2{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:1.56cqw;line-height:1.18;margin:0 0 .92cqw;color:#07283d;max-width:29cqw}
.description{font-size:.91cqw;line-height:1.4;margin:0;max-width:28.8cqw;color:#12364c;font-weight:400}
.feature-grid{position:absolute;top:69.5%;left:5.3%;width:38.4%;height:17.2%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.52cqw;pointer-events:auto}
.feature{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;gap:.55cqw;padding:.95cqw .4cqw 1.35cqw;border-radius:.82cqw;border:1px solid rgba(136,226,249,.68);background:linear-gradient(155deg,#09425adc,#031b2ae8);color:#fff;font-size:.85cqw;font-weight:650;line-height:1.17;box-shadow:0 .7cqw 1.7cqw #08243d4a;backdrop-filter:blur(5px);position:relative}
.feature::after{content:"";position:absolute;bottom:.22cqw;width:72%;height:1px;background:#00b8c53b}
.feature-icon{height:3.35cqw;width:3.35cqw;margin-bottom:.05cqw;color:#09d5e0;flex:0 0 auto;filter:drop-shadow(0 3px 6px #0244554f)}
.feature-icon.gold{color:#ebae65}
.auth-zone{position:absolute;left:67.66%;top:9.86%;width:26.95%;height:79.63%;pointer-events:auto}
.auth-card{position:absolute;inset:0;padding:0;border:1px solid #a6e1efb8;border-radius:1.3cqw;background:linear-gradient(135deg,rgba(4,28,45,.90),rgba(5,41,61,.88) 70%,rgba(4,30,46,.93));box-shadow:0 1cqw 2.8cqw #00192a3f,inset 0 1px #ddf5ff38;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.languages{position:absolute;top:4.8%;right:7.9%;height:6.9%;display:flex;align-items:stretch}
.languages a{min-width:4.5cqw;padding:0 1.25cqw;display:grid;place-items:center;color:#fff;text-decoration:none;font-size:1.02cqw;line-height:1;font-weight:600;border:1px solid #45758c;background:#082538e6}
.languages a:first-child{border-radius:.66cqw 0 0 .66cqw}.languages a:last-child{border-radius:0 .66cqw .66cqw 0}
.languages a.selected{background:linear-gradient(135deg,#05cad6,#0297b7);border-color:#05cada}
.auth-brand{position:absolute;top:16.3%;left:10.6%;width:74.7%}
.auth-brand img{display:block;height:auto;object-fit:contain}
.auth-brand span{display:block;color:#d6eafa;font-size:.66cqw;letter-spacing:.18em;font-weight:650;position:absolute;top:80%;left:.8%;white-space:nowrap}
.auth-card h2{position:absolute;left:10.6%;top:32.2%;margin:0;font-family:Georgia,"Times New Roman",serif;color:#fff;font-size:2.05cqw;line-height:1.12;font-weight:700}
.auth-card>.accent-rule.small{position:absolute;top:40%;left:10.7%;width:3.5cqw;height:.13cqw}
.auth-intro{position:absolute;top:43.4%;left:10.65%;width:81%;margin:0;font-size:.92cqw;line-height:1.4;color:#e8f4fa}
.auth-card form{position:absolute;left:10.5%;right:9.6%;top:52.6%;display:flex;flex-direction:column;gap:.73cqw}
.input-wrap{width:100%;height:3.25cqw;position:relative;flex:none}
.input-wrap .input-icon{position:absolute;left:.96cqw;top:50%;transform:translateY(-50%);width:1.6cqw;height:1.6cqw;color:#fff;pointer-events:none}
.input-wrap input{width:100%;height:100%;display:block;border-radius:.5cqw;border:1px solid #79a7ba72;background:rgba(7,40,58,.83);color:#fff;box-shadow:inset 0 1px #ffffff16;outline:none;padding:0 2.6cqw 0 3.77cqw;font-size:1cqw;font-family:inherit}
.input-wrap input::placeholder{color:#becbd7;opacity:1}
.input-wrap input:focus{border-color:#37dcf1;box-shadow:0 0 0 3px #00d5f538}
.password-wrap button{position:absolute;right:.45cqw;top:0;width:3cqw;height:100%;display:grid;place-items:center;border:0;background:transparent;color:#eefaff;cursor:pointer}
.password-wrap button svg{width:1.6cqw;height:1.6cqw}
.submit{margin-top:.06cqw;height:3.3cqw;width:100%;border:0;border-radius:.45cqw;background:linear-gradient(105deg,#05c7dc,#048eaa);color:#fff;font-size:1.06cqw;font-weight:700;cursor:pointer;box-shadow:0 .55cqw 1cqw #002d3d22}
.submit:hover{filter:brightness(1.1)}.submit span{font-size:1.4cqw;padding-left:.5cqw;vertical-align:-.06cqw}
.privacy{position:absolute;top:80.4%;left:10.5%;right:9.6%;border-top:1px solid #b3d0dc53;padding-top:1.15cqw;display:flex;gap:1.0cqw;align-items:flex-start}
.privacy-icon{width:2.22cqw;height:2.22cqw;color:var(--gold);flex:none}.privacy p{margin:0;color:#dbe9f2;font-size:.76cqw;line-height:1.35}
.copyright{position:absolute;bottom:3.7%;left:0;width:100%;text-align:center;color:#b9d0dd;font-size:.74cqw}
.form-error{position:absolute;z-index:5;left:10%;right:9%;top:48%;padding:.55cqw;background:#6c1b3feb;border:1px solid #e9a0a9;border-radius:.4cqw;font-size:.85cqw}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.languages a:focus-visible,.submit:focus-visible,.password-wrap button:focus-visible{outline:3px solid #f4c77b;outline-offset:3px}
/* Leave the existing dashboard appearance and behavior intact. */
.dashboard-body{color:#132b3b;background:#f2f6f9;min-height:100vh}.dashboard-shell{max-width:1350px;margin:auto;padding:30px}.dash-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d5e1e9;padding-bottom:20px}.dash-header img{height:auto;width:235px}.dash-logout{border:1px solid #bbcdd7;border-radius:9px;background:#fff;padding:11px 19px;cursor:pointer}.dash-welcome{padding:80px 0}.dash-welcome h1{font-family:Georgia,serif;font-size:42px}.dash-warning{max-width:660px;padding:20px;background:#e6f2f5;border-left:4px solid #008e9d;line-height:1.6}.eyebrow{font-size:12px;letter-spacing:.16em;color:#177d8a}
/* On portrait and narrow screens use a flowing layout: no distortion, no horizontal scroll. */
@media(max-width:900px){
.login-page{display:block}.login-screen{width:100%;max-width:none;min-height:100svh;height:auto;aspect-ratio:auto;display:flex;flex-direction:column;container-type:normal;overflow:hidden}
.scene{inset:0}.scene-image{left:19%;top:0;height:640px;width:auto;opacity:.77}.scene::before{background:linear-gradient(180deg,#072a3ebd,#061f32a3 55%,#061f32eb)}.scene::after{background:linear-gradient(0deg,#061d2d 4%,transparent 86%)}
.hero,.hero-inner,.hero-copy,.brand-left,.feature-grid,.auth-zone,.auth-card{position:relative;inset:auto;top:auto;left:auto;right:auto;bottom:auto;width:auto;height:auto}
.hero{pointer-events:auto}.hero-inner{padding:26px 22px 0}.brand-left{width:235px;margin:0 0 66px}.brand-left p{position:absolute;top:70%;left:.8%;font-size:8px;letter-spacing:.12em;color:#fff}.brand-left img{filter:brightness(0) invert(1)}
.hero-copy{width:100%;color:#fff}.hero-copy .accent-rule{height:2px;width:62px;margin:0 0 18px}.hero h1{font-size:clamp(41px,9vw,69px);line-height:1.02;color:#fff;margin:0 0 18px}.hero h2{font-size:clamp(22px,4.7vw,32px);max-width:600px;color:#fff;margin:0 0 15px}.description{font-size:15px;line-height:1.45;color:#f0fbff;max-width:620px}
.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:auto;width:100%;max-width:700px;margin:25px 0 0;gap:9px}.feature{min-height:120px;gap:8px;padding:16px 6px 13px;font-size:12px;border-radius:12px}.feature-icon{width:36px;height:36px}.feature::after{bottom:3px}
.auth-zone{width:100%;height:auto;margin:30px auto 0;padding:0 22px 36px;max-width:640px}.auth-card{padding:27px 24px 28px;border-radius:18px}.languages,.auth-brand,.auth-card h2,.auth-card>.accent-rule.small,.auth-intro,.auth-card form,.privacy,.copyright,.form-error{position:static;top:auto;left:auto;right:auto;bottom:auto;width:auto}
.languages{height:43px;justify-content:flex-end;margin-bottom:21px}.languages a{font-size:14px;min-width:55px;padding:0 11px}.languages a:first-child{border-radius:8px 0 0 8px}.languages a:last-child{border-radius:0 8px 8px 0}
.auth-brand{width:min(100%,330px);margin:0 0 29px}.auth-brand span{position:absolute;top:72%;font-size:8px;letter-spacing:.12em}
.auth-card h2{font-size:32px;margin:0 0 12px}.auth-card>.accent-rule.small{width:51px;height:2px;margin-bottom:15px}.auth-intro{font-size:14px;margin:0 0 23px;line-height:1.45}
.auth-card form{display:flex;gap:13px}.input-wrap{height:54px}.input-wrap .input-icon{left:14px;width:22px;height:22px}.input-wrap input{border-radius:9px;padding:0 50px 0 50px;font-size:16px}.password-wrap button{right:5px;width:48px}.password-wrap button svg{width:22px;height:22px}
.submit{border-radius:9px;height:55px;font-size:16px;margin-top:1px}.submit span{font-size:22px;padding-left:6px}.privacy{margin-top:22px;padding-top:20px;gap:12px}.privacy-icon{width:34px;height:34px}.privacy p{font-size:12px;line-height:1.4}.copyright{display:block;margin-top:18px;font-size:11px}
.form-error{font-size:13px;padding:10px;margin-bottom:8px}
}
@media(max-width:520px){.hero-inner{padding:24px 17px 0}.brand-left{width:215px;margin-bottom:70px}.hero h1{font-size:clamp(39px,10.2vw,52px)}.hero h2{font-size:23px}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.feature{min-height:109px}.auth-zone{padding:0 13px 22px;margin-top:22px}.brand-left img{filter:none}.auth-card{padding:20px 20px 22px}.scene-image{left:2%;height:680px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
