/* Login motion ported from ExamSys: entrance, atmosphere, logo and input micro-interactions. */
.auth-page[data-login-motion] { --login-ease: cubic-bezier(.16,1,.3,1); --login-standard: cubic-bezier(.2,0,0,1); }
.auth-page[data-login-motion] .auth-shell { animation: ipc-login-enter 520ms var(--login-ease) backwards; }
.auth-page[data-login-motion] .auth-content { grid-template-columns: minmax(0,1fr); }
.auth-page[data-login-motion] :is(.auth-card,.auth-form,.auth-field) { min-width: 0; max-width: 100%; }
.auth-page[data-login-motion] .auth-form > .auth-field { display: block; }
.auth-page[data-login-motion] .auth-brand-panel::before,.auth-page[data-login-motion] .auth-brand-panel::after,
.auth-page[data-login-motion] .auth-logo-medallion::before,.auth-page[data-login-motion] .auth-logo-medallion::after { content: none; animation: none; }
.auth-page[data-login-motion] .auth-brand-identity { animation: none; }
.auth-page[data-login-motion] .auth-ambient { filter: none; will-change: auto; }
.auth-page[data-login-motion] .auth-ambient--navy { background: radial-gradient(circle,rgba(18,59,90,.06),rgba(18,59,90,.04) 48%,transparent 72%); animation: ipc-login-ambient-one 1050ms var(--login-ease) 40ms backwards; }
.auth-page[data-login-motion] .auth-ambient--teal { background: radial-gradient(circle,rgba(11,145,136,.055),rgba(11,145,136,.035) 48%,transparent 72%); animation: ipc-login-ambient-two 1150ms var(--login-ease) 90ms backwards; }
.auth-brand-atmosphere { position: absolute; inset: -12px; overflow: hidden; pointer-events: none; contain: paint; transition: opacity 240ms ease; }
.auth-brand-grid { position: absolute; inset: 0; opacity: .055; background-image: linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(to bottom,black,transparent 82%); }
.auth-brand-light { position: absolute; width: 520px; height: 520px; border-radius: 50%; }
.auth-brand-light--teal { bottom: -180px; left: -165px; opacity: .7; background: radial-gradient(circle,rgba(30,193,176,.22),rgba(20,157,148,.09) 42%,transparent 70%); animation: ipc-login-light-drift 22s ease-in-out infinite; }
.auth-brand-light--gold { top: -195px; right: -215px; opacity: .55; background: radial-gradient(circle,rgba(210,171,98,.14),rgba(51,115,147,.08) 42%,transparent 70%); animation: ipc-login-light-drift 26s ease-in-out -9s infinite reverse; }
.auth-brand-rings { position: absolute; width: 390px; height: 390px; right: -235px; bottom: -235px; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.025),0 0 0 96px rgba(255,255,255,.018); }
.auth-page[data-login-motion] .auth-logo-medallion { padding: 0; border: 0; background: transparent; box-shadow: none; overflow: visible; will-change: auto; animation: ipc-login-logo-arrive 720ms var(--login-ease) 60ms backwards; }
.auth-logo-halo,.auth-logo-orbit,.auth-logo-surface { position: absolute; border-radius: 50%; pointer-events: none; }
.auth-logo-surface { inset: 0; z-index: 1; padding: 25px; border: 9px solid rgba(255,255,255,.38); background: #fff; box-shadow: 0 16px 38px rgba(3,20,34,.28),inset 0 0 0 1px rgba(8,127,120,.13); display: grid; place-items: center; overflow: hidden; transition: translate 260ms var(--login-ease); animation: ipc-login-logo-settle 680ms var(--login-ease) 100ms backwards; }
.auth-logo-halo { inset: -32px; opacity: .3; background: radial-gradient(circle,rgba(61,215,202,.44) 0,rgba(61,215,202,.15) 38%,transparent 70%); animation: ipc-login-halo 8s ease-in-out infinite; }
.auth-logo-orbit { inset: -11px; z-index: 0; padding: 1px; opacity: .72; background: conic-gradient(from 28deg,transparent 0 13%,rgba(255,205,112,.9) 22%,transparent 33%,rgba(100,216,206,.86) 53%,transparent 68%,rgba(255,255,255,.42) 82%,transparent 94%); -webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: ipc-login-orbit 24s linear infinite; }
.auth-logo-glint { position: absolute; z-index: 2; width: 34%; inset-block: -24%; inset-inline-start: -40%; opacity: 0; background: linear-gradient(90deg,transparent,rgba(41,190,179,.18),rgba(255,198,91,.38),rgba(255,255,255,.74),transparent); transform: translate3d(-520%,0,0) skewX(-16deg); animation: ipc-login-glint 650ms var(--login-standard) 340ms backwards; }
.auth-page[data-login-motion] .auth-brand-identity > :is(p,h1,strong) { animation: ipc-login-copy 460ms var(--login-ease) backwards; }
.auth-page[data-login-motion] .auth-brand-identity > p { animation-delay: 430ms; }
.auth-page[data-login-motion] .auth-brand-identity > h1 { animation-delay: 480ms; }
.auth-page[data-login-motion] .auth-brand-identity > strong { animation-delay: 530ms; }
.auth-page[data-login-motion] .auth-form-heading { animation: ipc-login-enter 300ms var(--login-ease) 60ms backwards; }
.auth-page[data-login-motion] :is(.auth-field,.auth-session-policy,.auth-submit) { animation: ipc-login-enter 300ms var(--login-ease) backwards; }
.auth-page[data-login-motion] .auth-field:nth-of-type(1) { animation-delay: 90ms; }
.auth-page[data-login-motion] .auth-field:nth-of-type(2) { animation-delay: 130ms; }
.auth-page[data-login-motion] .auth-session-policy { animation-delay: 200ms; }
.auth-page[data-login-motion] .auth-submit { animation-delay: 230ms; transition: transform 110ms ease,background-color 160ms ease; }
.auth-page[data-login-motion] .auth-submit:active:not(:disabled) { transform: scale(.985); }
.auth-page[data-login-motion] .auth-submit:disabled { opacity: 1; cursor: wait; }
.auth-page[data-login-motion] .auth-alert { animation: ipc-login-feedback 160ms ease backwards; }
.auth-password-icon { position: relative; display: grid; place-items: center; width: 18px; height: 18px; }
.auth-page[data-login-motion] .auth-password-icon > .icon { position: absolute; width: 18px; height: 18px; animation: none; transition: opacity 150ms ease; }
.auth-password-icon > .icon:last-child,.is-visible .auth-password-icon > .icon:first-child { opacity: 0; }
.is-visible .auth-password-icon > .icon:last-child { opacity: 1; }
.auth-page[data-login-motion] .auth-input-shell > button.is-visible::after { content: none; }
.auth-page[data-login-motion] .auth-input-shell > .icon { transition: color 160ms ease; }
.auth-page[data-login-motion] .auth-input-shell:focus-within > .icon { color: var(--teal-700); }
.auth-page[data-login-motion] .auth-input-shell > button:focus-visible { outline: 2px solid var(--teal-700); outline-offset: -4px; }
.auth-page-footer { flex-wrap: wrap; justify-content: center; column-gap: 20px; row-gap: 4px; }
.auth-page-footer > span { display: inline-flex; align-items: center; gap: 6px; }
.auth-motion-toggle { min-height: 36px; padding: 6px 10px; border: 1px solid #d2e0e4; border-radius: 7px; color: #526d7b; background: rgba(255,255,255,.65); display: inline-flex; align-items: center; justify-content: center; gap: 6px; font: inherit; font-size: 10px; cursor: pointer; transition: background-color 150ms ease,color 150ms ease; }
.auth-motion-toggle[hidden],.auth-motion-toggle [hidden] { display: none; }
.auth-motion-toggle > span:not([hidden]) { display: inline-flex; align-items: center; }
.auth-motion-toggle:hover:not(:disabled) { color: var(--teal-700); background: #fff; }
.auth-motion-toggle:focus-visible { outline: 2px solid var(--teal-700); outline-offset: 3px; }
.auth-motion-toggle:disabled { cursor: default; }
.auth-page[data-login-motion]:is([data-input-active="true"],[data-login-phase="submitting"]) .auth-brand-atmosphere { opacity: .55; }
.auth-page[data-login-motion]:is([data-input-active="true"],[data-login-phase="submitting"],[data-motion-running="false"]) :is(.auth-logo-orbit,.auth-logo-halo,.auth-brand-light) { animation-play-state: paused; }
.auth-page[data-login-motion][data-page-hidden="true"] *,.auth-page[data-login-motion][data-page-hidden="true"] *::before,.auth-page[data-login-motion][data-page-hidden="true"] *::after { animation-play-state: paused; }
.auth-page[data-login-motion][data-entered="true"] :is(.auth-shell,.auth-logo-medallion,.auth-logo-surface,.auth-logo-glint,.auth-ambient,.auth-brand-identity > p,.auth-brand-identity > h1,.auth-brand-identity > strong,.auth-form-heading,.auth-field,.auth-session-policy,.auth-submit,.auth-card > footer,.auth-page-footer) { animation: none; }

@keyframes ipc-login-enter { from { opacity: 0; transform: translateY(8px); } }
@keyframes ipc-login-copy { from { opacity: 0; transform: translateY(10px); } }
@keyframes ipc-login-logo-arrive { from { opacity: 0; transform: translateY(11px); } }
@keyframes ipc-login-logo-settle { from { opacity: .2; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
@keyframes ipc-login-glint { 0% { opacity: 0; transform: translate3d(0,0,0) skewX(-16deg); } 34% { opacity: .8; } 100% { opacity: 0; transform: translate3d(-520%,0,0) skewX(-16deg); } }
@keyframes ipc-login-ambient-one { from { opacity: 0; transform: translate3d(34px,-24px,0) scale(.82); } }
@keyframes ipc-login-ambient-two { from { opacity: 0; transform: translate3d(-28px,22px,0) scale(.84); } }
@keyframes ipc-login-light-drift { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(30px,-22px,0) scale(1.07); } }
@keyframes ipc-login-orbit { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@keyframes ipc-login-halo { 0%,100% { opacity: .28; transform: scale(1); } 50% { opacity: .43; transform: scale(1.055); } }
@keyframes ipc-login-feedback { from { opacity: 0; } }
@media (hover: hover) and (pointer: fine) {
    .auth-page[data-login-motion][data-motion="full"] .auth-logo-medallion:hover .auth-logo-surface { translate: 0 -2px; }
}
@media (min-width: 721px) and (max-width: 820px) {
    .auth-page[data-login-motion] { padding: 20px; }
    .auth-page[data-login-motion] .auth-shell { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .auth-page[data-login-motion] :is(.auth-content,.auth-brand-panel) { padding-inline: 24px; }
}
@media (max-width: 720px) {
    .auth-page[data-login-motion] .auth-shell { animation-duration: 350ms; }
    .auth-page[data-login-motion] .auth-logo-medallion { animation-duration: 460ms; }
    .auth-logo-surface { padding: 10px; border-width: 5px; animation-duration: 400ms; }
    .auth-logo-orbit { inset: -7px; animation-duration: 30s; }
    .auth-logo-halo { inset: -18px; animation: none; opacity: .25; }
    .auth-logo-glint { animation-duration: 400ms; animation-delay: 200ms; }
    .auth-page[data-login-motion] .auth-brand-identity > :is(p,h1,strong) { animation-duration: 280ms; animation-delay: 160ms; }
    .auth-brand-light { width: 300px; height: 300px; }
    .auth-brand-light--teal { bottom: -180px; left: -95px; opacity: .5; }
    .auth-brand-light--gold { animation: none; top: -130px; right: -150px; opacity: .3; }
    .auth-brand-rings { width: 220px; height: 220px; right: -150px; bottom: -180px; }
    .auth-motion-toggle { min-height: 44px; }
    .auth-page[data-login-motion] .auth-input-shell input { font-size: 16px; }
    .auth-page[data-login-motion] .auth-input-shell input::placeholder { font-size: 12px; }
}
.auth-page[data-login-motion][data-motion="reduced"],.auth-page[data-login-motion][data-motion="reduced"] *,.auth-page[data-login-motion][data-motion="reduced"] *::before,.auth-page[data-login-motion][data-motion="reduced"] *::after { animation: none !important; transition: none !important; }
.auth-page[data-login-motion][data-motion="reduced"] .auth-logo-glint { display: none; }
.auth-page[data-login-motion][data-motion="reduced"] .auth-logo-surface { translate: none; }
@media (prefers-reduced-motion: reduce) {
    .auth-page[data-login-motion],.auth-page[data-login-motion] *,.auth-page[data-login-motion] *::before,.auth-page[data-login-motion] *::after { animation: none !important; transition: none !important; }
    .auth-page[data-login-motion] .auth-logo-glint { display: none; }
    .auth-brand-atmosphere { transform: none !important; }
}
