/* Authentication owns the viewport; workspace controls cannot receive stray clicks. */
#auth-screen {z-index: 8000; isolation: isolate;}
body:not(.logged-in) #sidebar,
body.zc-auth-visible #sidebar,
body.zc-auth-visible #open-settings-btn,
body:not(.logged-in) #open-settings-btn {visibility: hidden !important; pointer-events: none !important;}
.auth-transition {position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; overflow-y: auto; padding: 100px 24px; background: radial-gradient(ellipse at 50% 35%, #ecf7ff, #f9fcff 65%); color: #18394e; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .25s ease, visibility .25s ease; font-family: 'Zentra Geist', Geist, sans-serif; color-scheme: light;}
.auth-transition * {font-family: inherit; box-sizing: border-box;}
.auth-transition.active, html.zc-returning .auth-transition {opacity: 1; visibility: visible; pointer-events: auto;}
.auth-transition:focus {outline: none;}
.auth-transition-brand {position: absolute; top: 30px; left: 40px; width: 174px; height: auto; opacity: .9;}
.auth-transition-content {width: min(420px, 100%); text-align: center;}
.auth-transition.active .auth-transition-content {animation: transition-arrive .45s ease both;}
.auth-transition-symbol {position: relative; display: grid; place-items: center; width: 128px; height: 128px; margin: 0 auto 32px;}
.auth-transition-symbol img {width: 72px; height: 60px; object-fit: contain; animation: transition-breathe 2.5s ease-in-out infinite;}
.auth-transition-ring {position: absolute; inset: 0; border: 1px solid #d6eaf8; border-top: 2px solid #45a9e4; border-radius: 50%; animation: transition-spin 1.8s linear infinite;}
.auth-transition-symbol::before {content: ''; position: absolute; inset: 10px; border: 1px solid #e0eff9; border-radius: 50%;}
.auth-transition-eyebrow {font-size: 10px; color: #5382a0; text-transform: uppercase; letter-spacing: .16em; font-weight: 500; margin: 0 0 14px;}
.auth-transition h1 {font-size: clamp(28px, 4vw, 36px); font-weight: 500; letter-spacing: -1.3px; line-height: 1.2; margin: 0 0 14px; color: #18394e;}
#auth-animation-message {font-size: 14px; line-height: 1.7; color: #658093; margin: 0;}
.auth-transition-track {width: 168px; height: 3px; margin: 30px auto 16px; background: #dfedf7; border-radius: 20px; overflow: hidden;}
.auth-transition-track span {display: block; width: 45%; height: 100%; border-radius: inherit; background: #45a9e4; animation: transition-scan 1.8s ease-in-out infinite;}
.auth-transition-caption {font-size: 11px; color: #7890a1; margin: 0;}
.auth-transition-footer {position: absolute; bottom: 30px; left: 24px; right: 24px; text-align: center; font-size: 10px; letter-spacing: .025em; color: #879cac;}
.auth-transition-check {display: none; width: 42px; height: 42px; fill: none; stroke: #168bc8; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;}
.auth-transition[data-state='welcome'] .auth-transition-check,
.auth-transition[data-state='signedout'] .auth-transition-check {display: block; animation: transition-arrive .35s ease both;}
.auth-transition[data-state='welcome'] .auth-transition-symbol img,
.auth-transition[data-state='signedout'] .auth-transition-symbol img {display: none;}
.auth-transition[data-state='welcome'] .auth-transition-ring,
.auth-transition[data-state='signedout'] .auth-transition-ring {animation: none; border-color: #b9dff5; background: #edf8ff80;}
.auth-transition[data-state='welcome'] .auth-transition-track span,
.auth-transition[data-state='signedout'] .auth-transition-track span {width: 100%; animation: none;}
#auth-animation-details {margin-top: 24px; text-align: left; color: #52748a; font-size: 12px; line-height: 1.7;}
#auth-animation-details[hidden] {display: none;}
#auth-animation-plan-label {font-weight: 600; margin-bottom: 10px;}
#auth-animation-feature-list {padding-left: 18px;}
@keyframes transition-spin {to {transform: rotate(360deg);}}
@keyframes transition-breathe {50% {transform: scale(.94); opacity: .7;}}
@keyframes transition-scan {0% {transform: translateX(-110%);} 100% {transform: translateX(330%);}}
@keyframes transition-arrive {from {opacity: 0; transform: translateY(8px);} to {opacity: 1; transform: translateY(0);}}
@media(max-width:760px) {.auth-transition-brand {top:24px;left:24px;width:156px;}.auth-transition-symbol {width:112px;height:112px;}}
@media(prefers-reduced-motion:reduce) {.auth-transition, .auth-transition * {animation:none !important;transition:none !important;}.auth-transition-track span {width:65%;}}
