:root{--login-radius:10px;--login-border:#e5eaea;--login-focus:#00a587;--login-shadow:0 20px 80px rgba(0,0,0,.08);--login-font:Montserrat,Inter,ui-sans-serif,system-ui,sans-serif}
.client-portal{font-family:var(--login-font);isolation:isolate;overflow:hidden}.portal-grid{animation:portalGridDrift 42s linear infinite;transform:translateZ(0)}
.portal-signal-lines,.portal-particles{position:absolute;inset:0;pointer-events:none;z-index:-1}.portal-signal-lines{opacity:.035;background:linear-gradient(105deg,transparent 20%,rgba(120,240,215,.9) 20.1%,transparent 20.3%,transparent 54%,rgba(120,240,215,.65) 54.1%,transparent 54.3%);transform:translate3d(-3%,0,0);animation:portalSignalDrift 28s ease-in-out infinite alternate}.portal-particles{opacity:.2;background-image:radial-gradient(circle at 14% 24%,rgba(128,255,219,.8) 0 1px,transparent 1.5px),radial-gradient(circle at 74% 68%,rgba(128,255,219,.6) 0 1px,transparent 1.5px),radial-gradient(circle at 86% 20%,rgba(128,255,219,.55) 0 1px,transparent 1.5px);background-size:280px 220px,360px 280px,420px 320px;animation:portalParticlesDrift 34s linear infinite}.portal-brand img{animation:portalLogoShimmer 12s ease-in-out infinite;transform:translateZ(0)}.portal-online i,.portal-status i,.tech-status i,.portal-runtime i{animation:portalLedPulse 3.2s ease-in-out infinite}
.portal-access-panel{border:1px solid var(--login-border);border-radius:var(--login-radius);box-shadow:var(--login-shadow),0 12px 34px rgba(0,35,30,.12);padding:clamp(34px,4.5vw,56px);background:rgba(255,255,255,.98)}.portal-access-heading h2{letter-spacing:-.035em;font-weight:700}.portal-access-help{margin-top:12px;margin-bottom:28px}.portal-form{gap:20px}.portal-login-fields{gap:16px}.portal-form label{font-size:13px;letter-spacing:.025em;color:#31504a}.field-label{display:flex;align-items:center;gap:8px;margin-bottom:8px}.field-label svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:#5d8279}
.portal-form input:not([type=checkbox]){height:50px;min-height:50px;border:1px solid #d6e2df;border-radius:8px;background:#fbfdfc;padding:0 14px;color:var(--ink);font:500 15px var(--login-font);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.portal-form input:not([type=checkbox])::placeholder{color:#9bada9;font-weight:400}.portal-form input:not([type=checkbox]):hover{border-color:#aec9c2}.portal-form input:not([type=checkbox]):focus{border-color:var(--login-focus);box-shadow:0 0 0 3px rgba(0,165,135,.14);outline:none;transform:translateY(-1px)}
.password-wrap{display:block;position:relative}.password-wrap input{width:100%;padding-right:48px!important}.password-toggle{position:absolute!important;right:8px;top:50%;width:36px;min-height:36px!important;height:36px!important;padding:0!important;display:grid;place-items:center;transform:translateY(-50%);border:0!important;background:transparent!important;box-shadow:none!important;color:#6b8982!important;cursor:pointer!important}.password-toggle:hover{color:var(--teal-dark)!important;transform:translateY(-50%)!important}.password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.password-toggle.is-visible{color:var(--teal-dark)!important}
.portal-form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-3px}.remember-option{display:flex!important;align-items:center;gap:8px;font-size:12px!important;color:#6b817c!important;cursor:pointer}.remember-option input{width:16px;height:16px;accent-color:var(--teal);cursor:pointer}.forgot-link{padding:0!important;min-height:auto!important;border:0!important;background:transparent!important;color:var(--teal-dark)!important;font:600 12px var(--login-font)!important;cursor:pointer;box-shadow:none!important}.forgot-link:hover{text-decoration:underline}
.portal-form>button[type=submit]{min-height:52px;border-radius:9px;font:600 14px var(--login-font);letter-spacing:.02em;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.portal-form>button[type=submit]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,89,73,.2)}.portal-form>button[type=submit] b{transition:transform .2s ease}.portal-form>button[type=submit]:hover:not(:disabled) b{transform:translateX(5px)}.portal-form button:focus-visible,.forgot-link:focus-visible{outline:3px solid rgba(0,165,135,.25);outline-offset:3px}
.portal-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:34px}.tech-status{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;min-width:0;padding:10px;border:1px solid rgba(160,225,211,.14);border-radius:8px;background:rgba(3,45,44,.24)}.tech-status i{width:6px;height:6px;border-radius:50%;background:#5ee4ae;box-shadow:0 0 0 3px rgba(94,228,174,.1);grid-row:1/3}.tech-status strong{font-size:9px;letter-spacing:.055em;color:#c9e2dd;white-space:nowrap}.tech-status span{font-size:10px;color:#789c94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-runtime{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;color:#6f9990;font:600 9px var(--login-font);letter-spacing:.05em}.portal-runtime span{display:inline-flex;align-items:center;gap:5px}.portal-runtime i{width:5px;height:5px;border-radius:50%;background:#5ee4ae}.portal-runtime b{color:#a9cdc5;font-weight:600}
.portal-page-footer{gap:12px;letter-spacing:.04em}.portal-page-footer strong{margin-left:auto}.portal-page-footer .footer-right{margin-left:0}
@keyframes portalLedPulse{0%,100%{opacity:.72;box-shadow:0 0 0 2px rgba(94,228,174,.08)}50%{opacity:1;box-shadow:0 0 0 5px rgba(94,228,174,.02)}}@keyframes portalGridDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(18px,12px,0)}}@keyframes portalSignalDrift{from{transform:translate3d(-3%,0,0)}to{transform:translate3d(3%,1%,0)}}@keyframes portalParticlesDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(18px,-12px,0)}}@keyframes portalLogoShimmer{0%,76%,100%{filter:brightness(1)}84%{filter:brightness(1.22)}}
@media (max-width:950px){.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-page-footer strong{margin-left:0}}@media (max-width:600px){.portal-metrics{grid-template-columns:1fr 1fr}.portal-runtime{gap:9px}.portal-form-options{align-items:flex-start;flex-direction:column;gap:10px}.portal-access-panel{padding:30px 22px}.tech-status{padding:9px 8px}.tech-status strong{font-size:8px}}@media (prefers-reduced-motion:reduce){.portal-grid,.portal-signal-lines,.portal-particles,.portal-brand img,.portal-online i,.portal-status i,.tech-status i,.portal-runtime i{animation:none}}

/* Final login polish */
.portal-access-panel{width:min(100%,650px);justify-self:end;background:#f8faf7}
.remember-option{position:relative;flex-direction:row!important;text-transform:none!important;letter-spacing:0!important}
.remember-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.remember-option span{display:inline-flex;align-items:center;gap:8px}
.remember-option span::before{content:"";width:17px;height:17px;display:inline-block;border:1px solid #b8cbc5;border-radius:5px;background:#fdfefd;box-shadow:inset 0 1px 2px rgba(16,37,34,.04);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.remember-option span::after{content:"";position:absolute;left:5px;top:50%;width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;opacity:0;transform:translateY(-65%) rotate(-45deg) scale(.7);transition:opacity .16s ease,transform .16s ease}
.remember-option input:checked+span::before{border-color:var(--teal);background:var(--teal);box-shadow:0 0 0 3px rgba(0,165,135,.1)}.remember-option input:checked+span::after{opacity:1;transform:translateY(-65%) rotate(-45deg) scale(1)}.remember-option input:focus-visible+span::before{outline:3px solid rgba(0,165,135,.2);outline-offset:2px}.remember-option:hover span::before{border-color:var(--teal);transform:translateY(-1px)}
.portal-online i,.portal-status i,.tech-status i,.portal-runtime i{animation-duration:4.5s}.portal-brand img{animation-duration:16s}.portal-grid{animation-duration:56s}.portal-signal-lines{animation-duration:38s}.portal-particles{animation-duration:48s}
@media (max-width:950px){.portal-access-panel{width:100%;justify-self:stretch}}
