:root{color-scheme:light;--login-ink:#182338;--login-muted:#718095;--login-line:#e5e9ef;--login-red:#df2e2f;--login-focus:rgba(237,23,54,.14)}
*{box-sizing:border-box}html{min-width:320px;background:#edf1f5}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--login-ink);font-size:14px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,summary,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #ee4260;outline-offset:4px}[hidden]{display:none!important}.login-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:42px 32px 22px;isolation:isolate;background:linear-gradient(125deg,rgba(249,250,252,.7),rgba(238,241,248,.5))}.login-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.login-glow{position:absolute;display:block;border-radius:50%;filter:blur(74px);opacity:.7}.login-glow-a{width:500px;height:500px;left:-130px;top:-150px;background:#d9dff0}.login-glow-b{width:510px;height:510px;right:-130px;bottom:-220px;background:#f5cdd6}.login-glow-c{width:300px;height:300px;left:38%;bottom:0;background:#dcebe9;opacity:.6}.login-noise{position:absolute;inset:0;background-image:radial-gradient(rgba(81,93,118,.12) .6px,transparent .6px);background-size:5px 5px;opacity:.15}
.login-frame{display:grid;grid-template-columns:1.08fr 1fr;width:min(1160px,100%);min-height:688px;margin:auto;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:30px;background:rgba(255,255,255,.84);box-shadow:0 30px 90px -38px rgba(25,36,57,.38),0 2px 4px rgba(255,255,255,.7) inset;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.login-story{position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0;padding:42px 46px 34px;color:#fff;background:radial-gradient(ellipse at 96% 5%, #30485a4d 0, #2d425200 58%), linear-gradient(145deg, #152436, #0d1c2dc4 75%)}.login-story:after{position:absolute;content:"";width:390px;height:390px;border-radius:50%;left:-230px;bottom:-220px;background:#e51d40;filter:blur(75px);opacity:.25;pointer-events:none}.login-brand{position:relative;z-index:2;display:inline-flex;align-items:center;width:236px;max-width:100%;padding:0;border:0;border-radius:12px;background:transparent;box-shadow:0 7px 24px #08111c26}.login-brand img{display:block;width:100%;height:auto}.login-story-copy{position:relative;z-index:2;margin-top:66px;max-width:390px}.login-eyebrow{display:inline-flex;gap:9px;align-items:center;font-size:10px;letter-spacing:.17em;font-weight:750;color:#acbdcf}.login-eyebrow:before{content:"";width:18px;height:2px;border-radius:2px;background:#fc4563}.login-story h1{margin:20px 0 17px;font-size:clamp(40px,4.2vw,58px);line-height:1.08;letter-spacing:-.055em;font-weight:730}.login-story h1 span{display:block;color:#d7e4ec}.login-story-copy>p{max-width:305px;margin:0;color:#adbdcd;font-size:14px;line-height:1.8}.login-map{position:absolute;inset:0;overflow:hidden;opacity:.44;pointer-events:none}.login-map svg{width:135%;height:105%;position:absolute;left:-12%;top:12%;transform:rotate(-10deg)}.login-map-halo{position:absolute;right:-110px;bottom:35px;width:380px;height:380px;border:1px solid #afc5db14;border-radius:50%;box-shadow:0 0 0 48px #afc5db05,0 0 0 96px #afc5db04}.login-route{position:relative;z-index:2;margin:40px 0 32px;height:100px;display:flex;align-items:center;justify-content:flex-end}.login-location-card{display:flex;align-items:center;gap:13px;position:relative;padding:15px 19px;border:1px solid rgba(208,227,244,.2);border-radius:16px;background:rgba(32,51,72,.78);box-shadow:0 18px 30px #08162540;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.login-location-card:before{position:absolute;content:"";width:84px;height:65px;right:100%;top:50%;border-bottom:2px dashed #ee3c5f;border-left:2px dashed #ee3c5f;border-radius:0 0 0 22px;transform:translateY(-100%);opacity:.65}.login-location-card>span:first-child{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border-radius:13px;background:#e8224530;color:#df2e2f}.login-location-card b{display:block;font-size:12px;font-weight:650}.login-location-card small{display:block;color:#a6bacc;font-size:10px;margin-top:5px}.login-features{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:13px 22px;margin-top:auto;padding-top:19px;border-top:1px solid #d4e6f217}.login-features>span{display:inline-flex;align-items:center;gap:7px;color:#b7c8d8;font-size:10px}.login-features svg{color:#df2e2f;width:15px;height:15px}.login-story-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:25px;color:#768ba2;font-size:9px;letter-spacing:.02em}.login-story-footer>span:last-child{display:flex;align-items:center;gap:6px}.login-story-footer i{width:5px;height:5px;border-radius:50%;background:#65ad9c}
.login-access{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:44px 55px;background:rgba(255,255,255,.88)}.login-access-inner{width:100%;max-width:382px;margin:0 auto}.login-access-kicker{display:flex;align-items:center;gap:7px;margin-bottom:20px;color:#a4aebd;font-size:10px;font-weight:650;letter-spacing:.1em;text-transform:uppercase}.login-access-kicker svg{width:15px;height:15px;color:#d42d49}.login-access h2{margin:0;color:#182338;font-size:31px;line-height:1.2;font-weight:740;letter-spacing:-.045em}.login-access-intro{margin:11px 0 31px;color:var(--login-muted);font-size:13px;line-height:1.6}.login-error{display:flex;align-items:flex-start;gap:10px;margin:-9px 0 22px;padding:13px 14px;border:1px solid #f5ccd5;border-radius:11px;background:#fff3f5;color:#a42340;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.login-error svg{width:17px;height:17px;flex:none;margin-top:1px}.login-error p{margin:0}.login-field{margin-bottom:21px}.login-field>label{display:block;margin-bottom:9px;color:#3d4b61;font-size:11px;font-weight:700}.login-input-wrap{display:flex;align-items:center;position:relative;min-width:0;height:53px;border:1px solid #dfe5ed;border-radius:11px;background:#f8fafc;transition:border-color .18s,box-shadow .18s,background .18s}.login-input-wrap:focus-within{border-color:#ed526d;background:#fff;box-shadow:0 0 0 4px var(--login-focus)}.login-input-wrap>svg{position:absolute;left:15px;width:17px;height:17px;color:#9ba6b8;pointer-events:none}.login-input-wrap input{width:100%;height:100%;min-width:0;border:0;outline:0;border-radius:inherit;background:transparent;padding:0 15px 0 44px;font-size:13px;color:#25344a}.login-input-wrap input::placeholder{color:#a6afbe;font-size:12px}.login-password-wrap input{padding-right:49px}.login-password-toggle{position:absolute;right:5px;display:grid;place-items:center;min-width:40px;height:40px;padding:0;border:0;border-radius:8px;color:#8c99ab;background:transparent}.login-password-toggle:hover{background:#eaf0f5;color:#42536b}.login-password-toggle svg{width:18px;height:18px}.login-input-wrap:has(input[aria-invalid=true]){border-color:#df4562;background:#fff8f9}.login-field-error{color:#b52b49;line-height:1.5;font-size:11px;margin:7px 0 0}.login-caps{display:flex;align-items:center;gap:6px;color:#ac761d;font-size:10px;margin:8px 0 0}.login-caps svg{width:14px;height:14px}.login-form-options{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-1px 0 26px}.login-remember{display:flex;align-items:center;gap:8px;flex:none;line-height:1.5;font-size:11px;color:#68758a;cursor:pointer}.login-remember input{width:15px;height:15px;margin:0;accent-color:var(--login-red)}.login-help{min-width:0;flex:1;margin-left:auto;position:relative;font-size:11px;color:#64748a;text-align:right}.login-help summary{cursor:pointer;list-style:none;text-decoration:underline;text-decoration-color:#c5cdd8;text-underline-offset:4px}.login-help summary::-webkit-details-marker{display:none}.login-help p{margin:10px 0 0;line-height:1.6;font-size:11px;max-width:220px;color:#748196}.login-submit{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:54px;padding:0 15px;border:1px solid var(--login-red);border-radius:11px;background:var(--login-red);color:#fff;font-size:12px;font-weight:700;box-shadow:0 8px 18px -9px #e91d4b85;transition:background .18s,transform .18s,box-shadow .18s}.login-submit:hover:not(:disabled){background:#d71030;border-color:#d71030;box-shadow:0 11px 23px -9px #e91d4b95;transform:translateY(-1px)}.login-submit:disabled{opacity:.78}.login-submit svg{width:17px;height:17px}.login-spinner{width:16px;height:16px;border:2px solid #ffffff50;border-top-color:#fff;border-radius:50%;animation:login-spin .7s linear infinite}.login-submit-status{font-size:11px;text-align:center;line-height:1.6;color:#77859a;margin:12px 0 0}.login-submit-status:empty{display:none}.login-private{display:flex;align-items:center;justify-content:center;gap:7px;margin:25px 0 0;color:#8c98a9;font-size:10px}.login-private svg{width:14px;height:14px;color:#9eacbc}.login-form-footer{border-top:1px solid #edf0f4;margin-top:30px;padding-top:19px;display:flex;justify-content:space-between;align-items:center;gap:16px;color:#a4aebc;font-size:9px}.login-form-footer span:last-child{font-weight:600;letter-spacing:.05em;color:#a2aabb}.login-page-footer{text-align:center;margin:24px 0 0;font-size:10px;line-height:1.6;color:#a0a9b6}.login-icon{display:inline-block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.login-symbols{position:absolute;width:0;height:0;overflow:hidden}.login-noscript{font-size:11px;color:#77859a;line-height:1.6}
@keyframes login-spin{to{transform:rotate(360deg)}}
@media(min-width:1550px){.login-frame{min-height:720px}.login-story-copy{margin-top:80px}.login-route{margin-top:50px;margin-bottom:40px}}
@media(max-width:1050px){.login-frame{grid-template-columns:1fr 1fr}.login-story{padding:35px 30px 30px}.login-access{padding:40px 33px}.login-story h1{font-size:44px}.login-brand{width:215px}.login-story-copy{margin-top:66px}.login-features{gap:13px}.login-story-footer{font-size:8px}}
@media(max-width:760px){.login-page{padding:18px 16px;justify-content:flex-start}.login-frame{grid-template-columns:1fr;min-height:0;border-radius:23px;max-width:490px}.login-story{padding:25px 27px 26px;min-height:233px}.login-brand{width:186px;padding:0;border:0;border-radius:9px;background:transparent}.login-story-copy{margin-top:24px;max-width:none}.login-eyebrow{font-size:8px;letter-spacing:.13em}.login-story h1{font-size:34px;margin:11px 0 9px;letter-spacing:-.045em}.login-story h1 span{display:inline}.login-story-copy>p{font-size:11px;line-height:1.7;max-width:290px}.login-route,.login-features,.login-story-footer{display:none}.login-map svg{top:-20%;left:35%;height:170%;width:110%;opacity:.7}.login-map-halo{right:-220px;bottom:-170px}.login-access{padding:30px 27px}.login-access-kicker{font-size:9px;margin-bottom:12px}.login-access h2{font-size:27px}.login-access-intro{font-size:12px;margin:10px 0 24px}.login-field{margin-bottom:19px}.login-form-options{gap:12px;margin-bottom:23px}.login-private{margin-top:22px}.login-form-footer{margin-top:24px;padding-top:16px}.login-page-footer{margin-top:17px;font-size:9px}}
@media(max-width:370px){.login-page{padding:12px}.login-story{padding:22px}.login-access{padding:27px 22px}.login-story h1{font-size:31px}.login-remember,.login-help{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}.login-submit:hover:not(:disabled){transform:none}}

/* Both panels share one glass palette; only the backdrop is blurred, never the content. */
:root{
 --login-ink:#182b40;
 --login-muted:#40566d;
 --login-subtle:#50657b;
 --login-label:#31485f;
 --login-icon-accent:var(--login-red);
 --login-surface:rgba(255,255,255,.30);
 --login-edge:rgba(255,255,255,.64);
 --login-divider:rgba(53,78,105,.16);
 --login-field-surface:rgba(255,255,255,.38);
 --login-field-focus:rgba(255,255,255,.68);
 --login-field-edge:rgba(75,104,136,.30);
 --login-placeholder:#60758b;
 --login-story-accent:#3a536d;
 --login-card:rgba(255,255,255,.24);
 --login-fallback:rgba(241,246,250,.90);
}
.login-page{background:transparent}
.login-backdrop{background:#e8eef2}
.login-backdrop-map{position:absolute;inset:-30px;background:url('../images/map-preview-normal.png') center/cover no-repeat;filter:blur(2px) saturate(.72);transform:scale(1.06);opacity:.96}
.login-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(237,242,247,.10),rgba(238,242,247,.18));pointer-events:none}
.login-glow{opacity:.12}.login-noise{opacity:.04}
.login-frame{background:transparent;border-color:var(--login-edge);backdrop-filter:none;-webkit-backdrop-filter:none}
.login-story,.login-access{
 position:relative;
 color:var(--login-ink);
 background:var(--login-surface);
 backdrop-filter:blur(20px) saturate(1.18);
 -webkit-backdrop-filter:blur(20px) saturate(1.18);
}
.login-access{border-left:1px solid var(--login-divider)}
.login-story:after{opacity:.06}
.login-story h1{color:var(--login-ink)}
.login-story h1 span{color:var(--login-story-accent)}
.login-story-copy>p,.login-features>span{color:var(--login-muted)}
.login-eyebrow{color:var(--login-label)}
.login-eyebrow:before{background:var(--login-red)}
.login-map{opacity:.20}
.login-map svg g{stroke:var(--login-muted)}
.login-features{border-top-color:var(--login-divider)}
.login-story-footer,.login-location-card small{color:var(--login-subtle)}
.login-story-footer i{background:#2d8574}
.login-location-card{color:var(--login-ink);background:var(--login-card);border-color:var(--login-edge);box-shadow:0 12px 28px -12px #08162530}
.login-location-card>span:first-child{background:rgba(223,46,47,.10);color:var(--login-icon-accent)}
.login-access-kicker{color:var(--login-subtle)}
.login-access-kicker svg,.login-features svg{color:var(--login-icon-accent)}
.login-access h2{color:var(--login-ink)}
.login-field>label{color:var(--login-label)}
.login-input-wrap{background:var(--login-field-surface);border-color:var(--login-field-edge)}
.login-input-wrap:focus-within{background:var(--login-field-focus)}
.login-input-wrap input{color:var(--login-ink)}
.login-input-wrap input::placeholder{color:var(--login-placeholder)}
.login-input-wrap>svg,.login-password-toggle{color:var(--login-subtle)}
.login-remember,.login-help,.login-help p{color:var(--login-muted)}
.login-private,.login-private svg,.login-form-footer,.login-form-footer span:last-child,.login-submit-status,.login-noscript{color:var(--login-subtle)}
.login-form-footer{border-top-color:var(--login-divider)}
.login-page-footer{color:var(--login-muted)}
.login-theme-toggle{position:fixed;right:28px;top:22px;z-index:10;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:14px;background:rgba(255,255,255,.58);color:#42536b;box-shadow:0 4px 20px #1b2e4712;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.login-theme-toggle:hover{background:rgba(255,255,255,.86)}.login-theme-toggle svg{width:20px;height:20px}
/* A white map surface for the light theme, with a bare logo and quiet GPS routes. */
:root:not([data-login-theme=dark]) .login-brand{box-shadow:none}
:root:not([data-login-theme=dark]) .login-story{background:rgba(255,255,255,.98)}
:root:not([data-login-theme=dark]) .login-story:after{opacity:.025}
:root:not([data-login-theme=dark]) .login-map{opacity:1}
:root:not([data-login-theme=dark]) .login-map svg g{stroke:#8296ac;stroke-opacity:.14}
:root:not([data-login-theme=dark]) .login-map svg g+g{stroke-opacity:.18}
:root:not([data-login-theme=dark]) .login-map svg>path{stroke:var(--login-red);stroke-opacity:.30}
:root:not([data-login-theme=dark]) .login-map svg>circle{opacity:.35}
:root:not([data-login-theme=dark]) .login-map-halo{border-color:rgba(223,46,47,.09);box-shadow:0 0 0 48px rgba(223,46,47,.018),0 0 0 96px rgba(223,46,47,.012)}
:root:not([data-login-theme=dark]) .login-location-card{background:rgba(255,255,255,.90)}
:root[data-login-theme=dark]{
 color-scheme:dark;
 --login-ink:#edf4fd;
 --login-muted:#c1d1e4;
 --login-subtle:#afc3db;
 --login-label:#d2deed;
 --login-icon-accent:#ff3038;
 --login-surface:rgba(13,26,44,.42);
 --login-edge:rgba(187,210,237,.26);
 --login-divider:rgba(190,211,239,.16);
 --login-field-surface:rgba(10,23,40,.30);
 --login-field-focus:rgba(19,39,62,.58);
 --login-field-edge:rgba(166,192,224,.37);
 --login-placeholder:#acc0d8;
 --login-story-accent:#cedff2;
 --login-card:rgba(24,45,69,.28);
 --login-fallback:rgba(17,31,50,.93);
 --login-line:#3a4c64;
 --login-focus:rgba(250,79,111,.16);
 background:#0b1625;
}
[data-login-theme=dark] .login-backdrop{background:#0b1625}
[data-login-theme=dark] .login-backdrop-map{filter:invert(1) hue-rotate(180deg) blur(2px) saturate(.5);opacity:.86}
[data-login-theme=dark] .login-backdrop:after{background:linear-gradient(125deg,rgba(6,17,31,.22),rgba(7,18,34,.32))}
[data-login-theme=dark] .login-glow{opacity:.05}
[data-login-theme=dark] .login-frame{box-shadow:0 30px 90px -35px rgba(0,5,15,.65),0 1px 0 rgba(217,232,255,.08) inset}
[data-login-theme=dark] .login-story:after{opacity:.10}
[data-login-theme=dark] .login-story-footer i{background:#6dbea9}
[data-login-theme=dark] .login-location-card>span:first-child{background:rgba(255,48,56,.14)}
[data-login-theme=dark] .login-input-wrap:focus-within{border-color:#ee6681}
[data-login-theme=dark] .login-password-toggle:hover{background:rgba(126,155,191,.17);color:#fff}
[data-login-theme=dark] .login-help summary{text-decoration-color:#7389a5}
[data-login-theme=dark] .login-error{border-color:rgba(242,123,152,.35);background:rgba(137,34,68,.24);color:#ffc3d1}
[data-login-theme=dark] .login-input-wrap:has(input[aria-invalid=true]){border-color:#e77d96;background:rgba(120,37,65,.17)}
[data-login-theme=dark] .login-field-error{color:#ff9eb4}[data-login-theme=dark] .login-caps{color:#f0ca7d}
[data-login-theme=dark] .login-theme-toggle{background:rgba(21,39,62,.62);border-color:rgba(180,204,235,.23);color:#d1e0f2}
[data-login-theme=dark] .login-theme-toggle:hover{background:rgba(37,60,89,.82)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.login-story,.login-access{background:var(--login-fallback)}}
@media(max-width:760px){.login-theme-toggle{right:26px;top:27px;width:39px;height:39px;border-radius:12px}.login-access{border-left:0;border-top:1px solid var(--login-divider)}}
@media(max-width:370px){.login-theme-toggle{right:22px;top:22px}}
