:root{color-scheme:light;--cyan:#00aeef;--cyan-deep:#007fae;--ink:#111b1f;--muted:#68777e;--line:#d8e1e5;--surface:#f4f7f8;--night:#07161b;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html{min-width:320px;background:var(--night)}
body{min-width:320px;margin:0;background:var(--night);color:var(--ink);font-size:16px;-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button{border:0}
svg{display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
[hidden]{display:none!important}

.portal-shell[data-page=login]>main.login-shell{width:100%;max-width:none;padding:0}.login-shell{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(440px,.84fr);min-height:100svh}
.login-visual{position:relative;display:flex;min-width:0;min-height:100svh;flex-direction:column;justify-content:space-between;overflow:hidden;padding:clamp(30px,4vw,58px);isolation:isolate;background:#0b2028 url("assets/nvt-network-sequence.jpg") center/cover no-repeat;color:#fff}
.visual-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(3,19,25,.93) 0%,rgba(3,20,27,.73) 42%,rgba(3,24,31,.32) 75%,rgba(3,22,28,.54) 100%),linear-gradient(0deg,rgba(2,17,22,.92) 0%,transparent 58%)}
.login-visual::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 18% 20%,rgba(0,174,239,.25),transparent 32%),linear-gradient(115deg,transparent 52%,rgba(0,174,239,.08) 52.2%,transparent 52.5%)}
.login-visual::after{content:"";position:absolute;z-index:1;top:0;right:0;width:5px;height:100%;background:linear-gradient(180deg,var(--cyan),#007ca8 66%,transparent)}
.route-graphic{position:absolute;z-index:-1;inset:0;width:100%;height:100%;opacity:.62}.route-graphic path{fill:none;stroke:#25c2f7;stroke-dasharray:10 16;stroke-width:2}.route-graphic circle{fill:#b9efff;stroke:#00aeef;stroke-width:3;filter:drop-shadow(0 0 9px #00aeef)}
.visual-brand{display:flex;align-items:center;gap:16px}.brand-plate{display:grid;place-items:center;padding:11px 16px 10px;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 10px 32px rgba(0,0,0,.17)}.brand-plate img{display:block;width:176px;height:auto}.portal-label{padding-left:16px;border-left:1px solid rgba(255,255,255,.35);color:#dce7ea;font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.visual-copy{max-width:710px;margin:auto 0 8vh}.visual-kicker{display:flex;align-items:center;gap:10px;margin:0 0 20px;color:#9ee6ff;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.visual-kicker span{width:34px;height:2px;background:var(--cyan)}.visual-copy h1{max-width:690px;margin:0;color:#fff;font-size:clamp(42px,5.1vw,76px);font-weight:760;letter-spacing:-.055em;line-height:.98;text-wrap:balance}.visual-description{max-width:610px;margin:26px 0 0;color:#d3e0e4;font-size:clamp(16px,1.25vw,20px);line-height:1.65}
.portal-capabilities{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 0;padding:0;list-style:none}.portal-capabilities li{display:flex;align-items:center;gap:9px;min-height:42px;padding:9px 13px;border:1px solid rgba(177,224,238,.25);border-radius:10px;background:rgba(5,29,37,.6);color:#e3f1f4;font-size:12px;font-weight:700;backdrop-filter:blur(8px)}.portal-capabilities svg{width:18px;height:18px;color:#4ed0ff}
.visual-meta{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#a9bdc4;font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase}.visual-meta span:first-child{display:flex;align-items:center;gap:9px}.visual-meta i{width:8px;height:8px;border:2px solid #6be0a2;border-radius:50%;box-shadow:0 0 0 4px rgba(107,224,162,.12)}

.login-pane{display:flex;min-width:0;min-height:100svh;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,76px);background:linear-gradient(155deg,#fbfcfc 0%,#edf3f5 100%)}
.mobile-brand{display:none}.login-card{width:100%;max-width:480px;margin:auto}.intro{margin-bottom:32px}.eyebrow{margin:0 0 12px;color:var(--cyan-deep);font-size:11px;font-weight:850;letter-spacing:.16em}.intro h2{margin:0;color:#122229;font-size:clamp(34px,3.2vw,48px);font-weight:760;letter-spacing:-.045em;line-height:1.08}.intro>p:last-child{max-width:420px;margin:14px 0 0;color:var(--muted);font-size:15px;line-height:1.6}
form{margin-top:28px}.field{margin-bottom:20px}.field label{display:block;margin:0 0 9px;color:#28383f;font-size:13px;font-weight:750}.input-shell{position:relative}.input-shell>svg{position:absolute;z-index:1;top:50%;left:17px;width:20px;height:20px;transform:translateY(-50%);color:#84939a}.input-shell input{width:100%;min-height:58px;padding:15px 52px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.9);color:var(--ink);font-size:15px;line-height:1.4;box-shadow:0 4px 14px rgba(28,57,70,.035);transition:border-color .16s,box-shadow .16s,background .16s}.input-shell input::placeholder{color:#8b979c;opacity:1}.input-shell input:hover{border-color:#adbbc1;background:#fff}.input-shell input:focus{border-color:#079fd5;background:#fff;outline:none;box-shadow:0 0 0 4px rgba(0,174,239,.14),0 8px 24px rgba(20,70,90,.07)}
.password-field input{padding-right:60px}.password-toggle{position:absolute;right:7px;top:7px;display:grid;width:44px;height:44px;place-items:center;border-radius:9px;background:transparent;color:#67777e;cursor:pointer}.password-toggle svg{width:21px;height:21px}.eye-slash{display:none}.password-toggle[aria-pressed="true"] .eye-slash{display:block}.password-toggle:hover{background:#eef5f7;color:#14262e}
button:focus-visible,a:focus-visible{outline:3px solid #007fae;outline-offset:3px}.submit-button{display:flex;width:100%;min-height:58px;align-items:center;justify-content:space-between;margin-top:8px;padding:0 20px 0 23px;border-radius:12px;background:linear-gradient(110deg,#00aeef,#21bff5);color:#062735;font-weight:800;box-shadow:0 12px 30px rgba(0,174,239,.22);cursor:pointer;transition:transform .16s,box-shadow .16s,filter .16s}.submit-button svg{width:22px;height:22px;transition:transform .16s}.submit-button:hover{filter:saturate(1.1) brightness(1.03);box-shadow:0 15px 34px rgba(0,174,239,.29);transform:translateY(-1px)}.submit-button:hover svg{transform:translateX(3px)}.submit-button:active{transform:translateY(0)}.submit-button:disabled{cursor:wait;filter:grayscale(.2);opacity:.7}
.preview-access{margin:0 0 28px;padding:0 0 28px;border-bottom:1px solid #dce5e8}.preview-link{display:flex;width:100%;min-height:64px;align-items:center;gap:13px;padding:10px 14px;border:1px solid #c8e8f3;border-radius:12px;background:#f2fbfe;color:#156a87;text-align:left;cursor:pointer}.preview-link:hover{border-color:#9ed9eb;background:#e9f8fd}.preview-icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:9px;background:#d9f3fb;color:#087ba2;font-size:18px;font-weight:700}.preview-link>span:last-child{display:grid;gap:3px}.preview-link strong{font-size:13px}.preview-link small{color:#6c8189;font-size:11px;font-weight:550}.preview-link:disabled{cursor:wait;opacity:.65}.preview-access>p{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}.backoffice-preview{display:flex;min-height:42px;align-items:center;justify-content:center;margin-top:8px;color:#087ba2;font-size:13px;font-weight:700;text-decoration:none}.backoffice-preview:hover{text-decoration:underline}
.help{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:25px;color:var(--muted);font-size:12px}.help span{color:#43545b;font-weight:700}.help p{margin:0}.status{margin:16px 0 0;padding:12px 14px;border:1px solid #b9dfed;border-radius:10px;background:#edf9fd;color:#185169;font-size:13px;line-height:1.55}.caps-lock{margin:8px 0 0;color:#8a5b00;font-size:12px}
.login-footer{display:flex;width:100%;max-width:480px;align-items:center;justify-content:space-between;gap:16px;margin:42px auto 0;color:#7d898e;font-size:11px}.secure-note{display:flex;align-items:center;gap:7px}.secure-note svg{width:14px;height:14px;color:#2180a0}

@media(max-width:1080px){.login-shell{grid-template-columns:minmax(0,1fr) minmax(410px,.9fr)}.login-visual{padding:36px}.visual-copy h1{font-size:48px}.portal-capabilities{gap:7px}.portal-capabilities li{padding:8px 10px}}
@media(min-width:861px) and (max-width:1150px){.portal-label{display:none}}
@media(max-width:860px){.login-shell{display:block;background:var(--surface)}.login-visual{min-height:340px;padding:28px 30px;background-position:center 55%}.login-visual::after{top:auto;bottom:0;width:100%;height:4px}.brand-plate img{width:145px}.portal-label{font-size:10px}.visual-copy{margin:auto 0 10px}.visual-copy h1{max-width:560px;font-size:40px;line-height:1.04}.visual-description{max-width:540px;margin-top:16px;font-size:15px}.portal-capabilities{margin-top:18px}.visual-meta{display:none}.route-graphic{opacity:.38}.login-pane{min-height:auto;padding:48px 28px 32px}.login-card,.login-footer{max-width:560px}.login-footer{margin-top:36px}}
@media(max-width:650px){.login-visual{min-height:225px;padding:22px 20px;background-position:57% center}.visual-brand{gap:10px}.brand-plate{padding:8px 11px;border-radius:9px}.brand-plate img{width:118px}.portal-label{padding-left:10px;font-size:9px;letter-spacing:.09em}.visual-copy{margin:auto 0 0}.visual-kicker{margin-bottom:10px;font-size:9px}.visual-kicker span{width:22px}.visual-copy h1{max-width:350px;font-size:30px;line-height:1.04}.visual-description,.portal-capabilities{display:none}.login-pane{padding:34px 20px max(24px,env(safe-area-inset-bottom))}.intro{margin-bottom:26px}.intro h2{font-size:34px}.intro>p:last-child{font-size:14px}.preview-access{margin-bottom:24px;padding-bottom:24px}.input-shell input,.submit-button{min-height:56px}.help{display:block;text-align:center}.help p{margin-top:3px}.login-footer{margin-top:34px;flex-wrap:wrap}.secure-note{margin-left:auto}}
@media(max-width:360px){.login-visual{padding-inline:16px}.portal-label{display:none}.login-pane{padding-inline:16px}.intro h2{font-size:31px}.login-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
