@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@700&family=Public+Sans:wght@400;500;600;700;800&display=swap');
[data-password-change-form] .validation-summary-valid{display:none}
.password-requirements{padding:12px 14px;border:1px solid #dbe2eb;border-radius:9px;background:#fff;font-size:13px;color:#526174}.password-requirements ul{list-style:none;margin:8px 0 0;padding:0}.password-requirements li{margin:5px 0;padding-left:22px;position:relative}.password-requirements li::before{content:'○';position:absolute;left:0}.password-requirements li.is-met::before{content:'✓'}.password-requirements .is-met,.password-match.is-met{color:#12633a}.password-match{color:#ad3232;font-size:12px}.password-match:empty{display:none}.form-field small{font-size:12px;line-height:1.5;color:#526174}
:root{--navy-950:#06101d;--navy-900:#0a1728;--blue:#2675e8;--ink:#122033;--muted:#667387;--line:#dbe2eb}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font-family:"Public Sans","Segoe UI",sans-serif;color:var(--ink)}.auth-body{background:var(--navy-950)}
.auth-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(560px,.9fr);min-height:100vh;overflow:hidden}.auth-brand{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100vh;padding:clamp(32px,5vw,74px);color:#fff;overflow:hidden;background:radial-gradient(circle at 68% 38%,rgba(36,100,164,.23),transparent 32%),linear-gradient(145deg,#06101d 0%,#0a192b 58%,#0c2137 100%)}
.auth-brand:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:62px 62px;mask-image:linear-gradient(to bottom right,#000,transparent 78%)}.auth-brand:after{content:"";position:absolute;right:-13rem;bottom:-15rem;width:40rem;height:40rem;border:1px solid rgba(93,157,219,.14);border-radius:50%;box-shadow:0 0 0 5rem rgba(75,137,199,.025),0 0 0 11rem rgba(75,137,199,.02);z-index:-1}
.route-grid{position:absolute;inset:0;z-index:-1;opacity:.5}.route-grid svg{width:100%;height:100%}.route{fill:none;stroke:#558bbd;stroke-width:1.1;stroke-dasharray:5 11}.route--two{opacity:.47}.route--three{opacity:.32}.route-nodes circle{fill:#7db9ef;filter:drop-shadow(0 0 9px #55a7ec);animation:nodePulse 4s ease-in-out infinite}
.brand-mark{display:inline-flex;align-items:center;gap:13px;color:#fff}.brand-mark__icon{width:44px;height:44px;flex-shrink:0}.brand-mark__word{font:700 22px/1 "Manrope",sans-serif;letter-spacing:-.7px}.brand-mark__word span{color:#57aef8}
.auth-brand__top{position:relative;z-index:2}.auth-brand__copy{margin:auto 0;max-width:670px;padding:70px 0}.eyebrow{display:block;margin-bottom:20px;color:#7db9ef;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.auth-brand h1{margin:0;max-width:650px;font:600 clamp(45px,5vw,74px)/1.08 "Public Sans",sans-serif;letter-spacing:-.055em}.auth-brand__copy>p{margin:27px 0 38px;color:#a9b8c9;font-size:clamp(16px,1.5vw,20px)}.signal-row{display:flex;align-items:center;gap:7px;color:#6e8ba8;font-size:9px;font-weight:700;letter-spacing:.15em}.signal-row span{width:5px;height:5px;border-radius:50%;background:#4ca8f5;box-shadow:0 0 9px #4ca8f5}.signal-row span:nth-child(2){opacity:.6}.signal-row span:nth-child(3){opacity:.3}.signal-row i{font-style:normal;margin-left:8px}.auth-brand__note{margin:0;color:#6f8298;font-size:12px}
.auth-panel{display:flex;position:relative;flex-direction:column;min-height:100vh;padding:28px clamp(28px,5vw,76px) 22px;background:linear-gradient(145deg,#f8fafc,#f2f5f8);box-shadow:-24px 0 80px rgba(0,0,0,.2)}.auth-panel__toolbar{display:flex;justify-content:flex-end;min-height:42px}.language-selector .btn{display:flex;align-items:center;gap:8px;color:#526174;font-size:12px;font-weight:700;text-decoration:none;letter-spacing:.08em}.language-selector svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}.language-selector .dropdown-menu{border:1px solid #e2e7ee;border-radius:12px;padding:7px}.language-selector .dropdown-item{border-radius:8px;font-size:13px;padding:8px 12px}.auth-panel__content{display:flex;flex:1;align-items:center;justify-content:center;padding:30px 0}.auth-card{width:100%;max-width:456px;animation:cardEnter .55s cubic-bezier(.22,.8,.3,1) both}.mobile-brand{display:none;margin-bottom:34px}.mobile-brand .brand-mark{color:var(--ink)}
.auth-card__header{margin-bottom:32px}.eyebrow--dark{margin-bottom:13px;color:#2675e8}.auth-card h2{margin:0 0 12px;font:700 clamp(29px,3vw,38px)/1.18 "Public Sans",sans-serif;letter-spacing:-.045em;color:#0e1d2f}.auth-card p{color:var(--muted);line-height:1.65}.auth-card__header p{margin:0;font-size:15px}.auth-form{display:grid;gap:20px}.form-field{display:grid;gap:8px}.label-row{display:flex;align-items:center;justify-content:space-between}.form-label{margin:0;color:#27364a;font-size:13px;font-weight:700}.label-row a,.back-link{color:#2369cc;font-size:13px;font-weight:600;text-decoration:none}.label-row a:hover,.back-link:hover{text-decoration:underline}
.input-shell{position:relative;display:flex;align-items:center}.input-shell>svg{position:absolute;left:17px;width:20px;height:20px;z-index:1;fill:none;stroke:#7c8999;stroke-width:1.6;pointer-events:none}.input-shell .form-control{height:54px;padding:0 50px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.92);color:#142235;font-size:15px;box-shadow:0 2px 6px rgba(16,39,66,.025);transition:border-color .2s,box-shadow .2s,background .2s}.input-shell .form-control::placeholder{color:#9aa5b3}.input-shell .form-control:focus{border-color:#4b8fe8;background:#fff;box-shadow:0 0 0 4px rgba(38,117,232,.11)}.password-toggle{position:absolute;right:9px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:8px;color:#718095;background:transparent}.password-toggle:hover,.password-toggle:focus-visible{background:#edf3fa;color:#245fae}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}
.remember-check{display:flex;align-items:center;gap:9px;min-height:24px}.remember-check .form-check-input{width:18px;height:18px;margin:0;border-color:#b9c4d1}.remember-check .form-check-input:checked{background-color:#2675e8;border-color:#2675e8}.remember-check label{color:#526174;font-size:13px}.sign-in-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;border:0;border-radius:11px;color:#fff;background:linear-gradient(135deg,#2778e9,#1764cf);font-size:14px;font-weight:700;box-shadow:0 12px 28px rgba(30,103,202,.22);transition:transform .2s,box-shadow .2s,filter .2s}.sign-in-button:hover,.sign-in-button:focus-visible{color:#fff;background:linear-gradient(135deg,#2d7fed,#145abd);transform:translateY(-1px);box-shadow:0 16px 32px rgba(30,103,202,.3)}.sign-in-button:disabled{transform:none;filter:saturate(.7);opacity:.82}.button-arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .2s}.sign-in-button:hover .button-arrow{transform:translateX(3px)}.button-loader{display:none}.is-loading .button-loader{display:inline-block}.is-loading .button-arrow{display:none}
.validation-summary:empty,.field-validation:empty{display:none}.validation-summary{padding:12px 14px;border:1px solid #f0c5c5;border-radius:9px;color:#9f3030;background:#fff3f3;font-size:13px}.validation-summary ul{margin:0;padding-left:18px}.field-validation{color:#ad3232;font-size:12px}.security-note{display:flex;align-items:flex-start;gap:9px;margin:28px 0 0!important;color:#8590a0!important;font-size:11px!important;line-height:1.5!important}.security-note svg{flex:0 0 auto;width:17px;height:17px;fill:none;stroke:#7e8c9e;stroke-width:1.5}.auth-footer{display:flex;justify-content:space-between;color:#98a2af;font-size:10px;letter-spacing:.025em}.compact-card{max-width:430px}.compact-card .back-link{display:inline-block;margin-bottom:30px}.status-card{text-align:center}.status-card .status-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 24px;border-radius:50%;color:#12633a;background:#dff4e7;font-size:25px;font-weight:700}.status-card p{margin:0 0 28px}.status-card--denied .status-icon{color:#8d5814;background:#fff0d7}
@keyframes cardEnter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes nodePulse{0%,100%{opacity:.45}50%{opacity:1}}@media(max-width:1100px){.auth-shell{grid-template-columns:minmax(330px,.8fr) minmax(520px,1.2fr)}.auth-brand{padding:36px}.auth-brand h1{font-size:44px}.auth-brand__copy>p{font-size:16px}.auth-panel{padding-left:36px;padding-right:36px}}@media(max-width:760px){.auth-shell{display:block;min-height:100vh;background:#f4f7fa}.auth-brand{display:none}.auth-panel{min-height:100vh;padding:20px 24px;box-shadow:none}.auth-panel__toolbar{min-height:36px}.auth-panel__content{align-items:flex-start;padding:12px 0 36px}.auth-card{max-width:480px}.mobile-brand{display:block}.auth-card__header{margin-bottom:28px}.auth-footer{padding-top:18px;border-top:1px solid #e1e6ed}.input-shell .form-control,.sign-in-button{min-height:56px}}@media(max-width:420px){.auth-panel{padding:16px 18px}.auth-panel__toolbar{margin-right:-7px}.auth-card h2{font-size:29px}.auth-footer{gap:12px;flex-direction:column;text-align:center}.mobile-brand{margin-bottom:27px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* A quiet brand image below the sign-in copy; decorative and desktop-only. */
.auth-brand__truck {
    position: absolute;
    inset: 48% -2% -4%;
    z-index: -1;
    pointer-events: none;
    opacity: .18;
    background: url('../images/auth/dynamic-transport-branded-truck.png') center bottom / contain no-repeat;
    mask-image: linear-gradient(to bottom, transparent, #000 38%, #000 76%, transparent);
}
.auth-brand--truck .route-grid { opacity: .25; }
.auth-brand--truck .auth-brand__copy {
    transform: translateY(clamp(-88px, -8vh, -32px));
}
@media (max-width: 760px) {
    .auth-brand__truck { display: none; background-image: none; }
}
