/* The approved logo stays crisp; only its position animates. */
#loading{position:fixed;inset:0;z-index:100;box-sizing:border-box;background:radial-gradient(ellipse at 50% 42%,#23577e 0,#123657 45%,#091e38 100%);color:#fff;display:flex;align-items:center;justify-content:center;padding:32px 24px;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));font-family:'Poppins',sans-serif;text-align:center;overflow:auto;isolation:isolate}
#loading:before{content:'';position:absolute;inset:65% 0 0;z-index:-1;background:repeating-linear-gradient(110deg,transparent 0 8%,#a1d6ed06 8% 13%,transparent 13% 20%);mask-image:linear-gradient(transparent,#000);pointer-events:none}
.loading-content{width:min(540px,100%);margin:auto;display:flex;flex-direction:column;align-items:center;gap:28px}
.loading-logo{display:block;width:100%;height:auto;flex:none;filter:drop-shadow(0 14px 20px #03152d40)}
.loading-details[hidden]{display:none}
.loading-details{display:flex;flex-direction:column;align-items:center;width:min(280px,100%);min-width:0}
#loading-status{min-height:22px;width:100%;margin:14px 0 0;font:500 12px/1.6 'Poppins',sans-serif;color:#a6c4dd;text-wrap:balance}
#loading-retry{margin-top:18px;min-height:44px;padding:10px 28px;border:2px solid #ffc03b;border-radius:12px;background:linear-gradient(#ffac24,#ff8516);color:white;font:600 16px 'Poppins',sans-serif;cursor:pointer}
#loading-retry:focus-visible{outline:2px solid #fff;outline-offset:4px}
#loading-retry[hidden]{display:none}
.loading-failed .loading-logo{animation:none}
@keyframes loader-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(prefers-reduced-motion:no-preference){.loading-logo{animation:loader-float 3.6s ease-in-out infinite}}
@media(max-width:480px){.loading-content{gap:32px}.loading-details{width:min(240px,100%)}}
/* Scale the centred logo down on short screens. */
@media(max-height:480px) and (min-width:520px){
  .loading-content{width:min(340px,calc((100dvh - 120px)*1.4),100%);gap:12px}
  .loading-details{width:min(220px,100%)}
  #loading-status{font-size:10px;min-height:16px;margin-top:8px}
  #loading-retry{margin-top:10px}
}
@media(max-height:520px) and (max-width:519px){.loading-content{width:min(320px,100%);gap:14px}}
#auth-dialog{box-sizing:border-box;width:min(396px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;overflow:auto;border:1px solid #639ac5;border-radius:26px;background:#173f68;box-shadow:0 28px 80px #03172d66;color:#fff;font-family:'Poppins',sans-serif;text-align:center}
.auth-scene{position:relative;height:190px;isolation:isolate;overflow:hidden;border-radius:25px 25px 0 0;background:#2879a8}
.auth-street{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}
.auth-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#173f6830 65%,#173f68);pointer-events:none}
.auth-ball{position:absolute;z-index:1;left:calc(50% - 46px);bottom:8px;width:92px;height:92px;filter:drop-shadow(0 4px 2px #09254322);transform:rotate(-12deg)}
.auth-ball-shadow{position:absolute;z-index:1;left:calc(50% - 42px);bottom:4px;width:84px;height:15px;border-radius:50%;background:#072a466b;filter:blur(3px)}
.auth-body{padding:6px 30px 22px}
#auth-dialog .auth-header{margin:0 0 8px}
#auth-title{margin:0;font:700 29px/1.25 'Poppins',sans-serif;letter-spacing:-.85px}
#auth-close{position:absolute;z-index:3;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #bddbfa45;border-radius:14px;background:#10365bd9;color:white;box-shadow:0 3px 10px #08264233;cursor:pointer}
#auth-close:hover{background:#10365b}
#auth-status{margin:-10px 0 20px;color:#bdd6ee;font:400 13px/1.6 'Poppins',sans-serif;overflow-wrap:anywhere}
#auth-status:empty{display:none}
.auth-actions{width:100%;max-width:334px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
#google-button-slot{display:grid;min-height:52px}
#google-button-slot>*{grid-area:1/1}
.google-button-placeholder{display:flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 14px;border-radius:12px;background:#fff;color:#3c4043;font:400 16px/1.2 Arial,sans-serif;box-shadow:0 3px 0 #afc6db}
.google-button-placeholder img{width:24px;height:24px}
.google-button-placeholder i{width:14px;height:14px;border:2px solid #dce5ec;border-top-color:#4285f4;border-radius:50%;animation:google-button-spin .8s linear infinite}
@keyframes google-button-spin{to{transform:rotate(360deg)}}
#google-button-slot[data-state=loading] #google-sign-in,#google-button-slot[data-state=signing] #google-sign-in{visibility:hidden;pointer-events:none}
#google-button-slot[data-state=ready] .google-button-placeholder{visibility:hidden}
#google-button-slot[data-state=error]{display:none}
#google-button-slot[data-state=signing] .google-button-placeholder img,#google-button-slot[data-state=signing] .google-button-placeholder span{display:none}
#google-button-slot[data-state=signing] .google-button-placeholder i{width:20px;height:20px;border-width:3px}
@media(prefers-reduced-motion:reduce){.google-button-placeholder i{animation:none}}
#google-sign-in{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;border-radius:12px;overflow:hidden}
#google-sign-in:not(:empty){height:52px;background:#fff;box-shadow:0 3px 0 #afc6db,0 5px 12px #06284733}
#google-sign-in>div{zoom:1.3;flex:none}
#google-sign-in:focus-within{outline:2px solid #d7ebff;outline-offset:4px}
.auth-secondary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;margin:0;padding:12px 14px;border:1px solid #6999c1;border-radius:12px;background:linear-gradient(#2a5e8d,#214d77);color:#fff;font:600 15px/1.5 'Poppins',sans-serif;cursor:pointer;box-shadow:0 3px 0 #0b2b4a,inset 0 1px #b5daff18;transition:background .15s,transform .15s}
.auth-secondary svg{width:20px;height:20px;flex:none;color:#c8e3fb}
.auth-secondary:hover{background:linear-gradient(#35709f,#285b87);transform:translateY(-1px)}
.auth-secondary:active{transform:translateY(1px);box-shadow:0 1px 0 #0b2b4a}
#auth-retry{border-color:#fbc55b;background:linear-gradient(#ffaf24,#ff8b17);color:#143b60;font-weight:600}
.auth-secondary[hidden]{display:none}
#auth-dialog button:focus-visible{outline:2px solid #d7ebff;outline-offset:2px}
@media(prefers-reduced-motion:no-preference){#auth-dialog[open]{animation:auth-arrive .3s ease-out}#auth-dialog[open] .auth-ball{animation:auth-juggle 3.2s ease-in-out infinite}#auth-dialog[open] .auth-ball-shadow{animation:auth-shadow 3.2s ease-in-out infinite}}
@keyframes auth-arrive{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes auth-juggle{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-9px) rotate(6deg)}}
@keyframes auth-shadow{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(.8);opacity:.45}}
@media(max-width:360px){.auth-scene{height:164px}.auth-body{padding:8px 22px 20px}#auth-title{font-size:26px}.auth-ball{width:80px;height:80px;left:calc(50% - 40px)}}
@media(max-height:480px) and (min-width:520px){#auth-dialog[open]{display:grid;grid-template-columns:42% 58%;width:min(590px,calc(100% - 32px))}.auth-scene{height:100%;min-height:252px;border-radius:25px 0 0 25px}.auth-street{position:absolute;inset:0;object-position:center}.auth-scene:after{background:linear-gradient(transparent 30%,#173f68b3)}.auth-ball{bottom:46px}.auth-ball-shadow{bottom:42px}.auth-body{align-self:center;padding:44px 24px 28px}#auth-title{font-size:26px}#auth-dialog .auth-header{margin-bottom:8px}#auth-close{top:8px;right:8px;width:40px;height:40px}}




