/* Static interface: functional loading and media remain active. */
*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.portal-loading i{animation:airacSpin .8s linear infinite!important}
.actions button:hover,.login-submit:hover,.chat-workspace-gallery a:hover img{transform:none!important}
@media(max-width:740px){dialog{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);overflow:auto}input,textarea,select{font-size:16px!important} .chat-workspace-conversation{min-width:0;min-height:0} .portal-chat-message{overflow-wrap:anywhere} .portal-chat-message img,.portal-chat-message video{max-width:100%;object-fit:contain}}

/* COPAL is the only decorative motion enabled in the portal. */
.copal-future.copal-is-counting .copal-counter-line{animation:copal-charge 1.15s ease-out both!important}
.copal-future.copal-count-complete .copal-number{animation:copal-arrival .75s ease-out both!important}
.copal-future.copal-count-complete .copal-counter-line{animation:copal-line-arrival .75s ease-out both!important}
.copal-total.copal-future::after{animation:copal-logo-watermark 7s ease-in-out infinite!important}
@media(prefers-reduced-motion:reduce){.copal-future.copal-is-counting .copal-counter-line,.copal-future.copal-count-complete .copal-number,.copal-future.copal-count-complete .copal-counter-line,.copal-total.copal-future::after{animation:none!important}}

.future-group-card.group-target-reached .future-group-average{animation:group-target-glow 1.1s ease-out both!important}
@keyframes group-target-glow{0%{text-shadow:0 0 26px #50dfb099;filter:brightness(1.25)}100%{text-shadow:0 0 0 transparent;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.future-group-card.group-target-reached .future-group-average{animation:none!important}}

.operators-active-total{margin-bottom:24px}.operators-active-total.copal-is-counting .copal-counter-line{animation-duration:2.2s!important}.operators-active-total .operators-unavailable{font-size:48px;color:#a7c3db}

/* Slow ambient light outside the login card; only transform is animated. */
body.login-page{isolation:isolate;overflow-x:clip}
body.login-page::before,body.login-page::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;transform-origin:center}
body.login-page::before{background:radial-gradient(ellipse at 12% 25%,#2483b84d,transparent 48%),radial-gradient(ellipse at 85% 78%,#bb183638,transparent 45%);animation:login-ambient-blue 22s ease-in-out infinite alternate!important}
body.login-page::after{background:radial-gradient(ellipse at 85% 15%,#ed24452b,transparent 38%),radial-gradient(ellipse at 22% 90%,#2876a538,transparent 43%);animation:login-ambient-red 28s ease-in-out infinite alternate!important}
.login-page>.login-shell{position:relative;z-index:0}
@keyframes login-ambient-blue{from{transform:translate3d(-2%,-2%,0) scale(1.08)}to{transform:translate3d(3%,3%,0) scale(1.16)}}
@keyframes login-ambient-red{from{transform:translate3d(2%,3%,0) scale(1.1)}to{transform:translate3d(-3%,-2%,0) scale(1.18)}}
@media(max-width:650px){body.login-page::after{display:none}body.login-page::before{animation-duration:30s!important}}
@media(prefers-reduced-motion:reduce){body.login-page::before,body.login-page::after{animation:none!important;transform:none}}

/* Distribution routes replace the ambient-light background on the login page. */
body.login-page::before,body.login-page::after{display:none}
.login-distribution-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.logistics-links{fill:none;stroke:#5594b8;stroke-width:1;opacity:.2}
.logistics-flow{fill:none;stroke:#ee2949;stroke-width:2;stroke-linecap:round;stroke-dasharray:3 160;opacity:.65;animation:login-route-flow 16s linear infinite!important}
.logistics-nodes{fill:#64bde1;opacity:.4}
.logistics-icons{fill:#0b1b2b;stroke:#5695b7;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.42}
@keyframes login-route-flow{to{stroke-dashoffset:-652}}
@media(max-width:650px){.login-distribution-bg{opacity:.7}.logistics-flow{animation-duration:24s!important}}
@media(prefers-reduced-motion:reduce){.logistics-flow{animation:none!important}}

.login-page .password-reveal input{padding-right:56px!important}
.login-page .password-reveal .password-reveal-button{width:44px!important;height:44px;min-height:44px;right:5px;display:flex;align-items:center;justify-content:center;background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important;padding:10px!important;color:#adc9db}
.password-reveal-button svg{width:22px;height:22px;display:block;pointer-events:none}
.password-reveal-button .eye-slash{display:none}.password-reveal-button.is-visible .eye-slash{display:block}
.login-page .password-reveal .password-reveal-button:hover{color:#fff}
.login-page .password-reveal .password-reveal-button:focus-visible{outline:2px solid #72c9f2;outline-offset:1px;border-radius:7px}

button.column-sort{display:inline-flex;align-items:center;gap:7px;background:transparent!important;border:0!important;box-shadow:none!important;color:inherit;font:inherit;font-weight:inherit;padding:4px 0!important;min-height:32px;white-space:nowrap;cursor:pointer}button.column-sort:focus-visible{outline:2px solid #72c9f2;outline-offset:3px}button.column-sort span{color:#72c9f2}
