/* Frosted member authentication surface. Other dialogs keep their own styling. */
.shade:has(.identity-auth){background:rgba(24,49,40,.18);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.modal:has(.identity-auth){position:relative;background:rgba(241,247,242,.82);-webkit-backdrop-filter:blur(26px) saturate(120%);backdrop-filter:blur(26px) saturate(120%);border:1px solid rgba(255,255,255,.85);border-radius:30px 30px 0 0;box-shadow:0 -8px 40px #173d2d1c,inset 0 1px 1px #fff;padding:14px 26px calc(24px + env(safe-area-inset-bottom));max-height:calc(100dvh - 16px);overflow-y:auto;overscroll-behavior:contain;color:#183d30}
.modal:has(.identity-auth) .handle{width:42px;height:4px;background:#82988d66;margin:0 auto 16px;border-radius:8px}
.modal:has(.identity-auth) .modalhead{display:flex;flex-direction:column;gap:5px;align-items:center;margin:0 0 22px;padding:6px 34px 0}
.modal:has(.identity-auth) .modalhead:before{content:'GGM';font-size:16px;font-weight:400;color:#7a8c82;letter-spacing:.03em}
.modal:has(.identity-auth) .modalhead h2{font-size:28px;line-height:1.3;color:#075c38;font-weight:600}
.modal:has(.identity-auth) .close{position:absolute;right:12px;top:18px;width:44px;height:44px;min-height:44px;border:0;background:transparent;box-shadow:none;color:#74857b}
.modal:has(.identity-auth) .close svg{width:23px;height:23px}
.identity-auth form{gap:14px}
.identity-auth .field>span{font-size:13px;color:#50695c;margin-bottom:6px}
.identity-auth input{border:1px solid #ffffffb8!important;border-radius:15px!important;background:rgba(255,255,255,.58)!important;box-shadow:inset 0 1px 1px #fff7!important;color:#193d2f;min-height:50px;padding:13px 15px}
.identity-auth input:focus{outline:2px solid #427c5a;outline-offset:1px}
.identity-auth .identity-password input{padding-right:72px}
.identity-auth .identity-password>button{font-weight:400;color:#597568;bottom:3px;right:9px}
.identity-auth .identity-forgot{margin-top:-5px}
.identity-auth .identity-text-button{font-weight:400}
.identity-auth form>.btn[type=submit]{background:linear-gradient(120deg,#12614a,#07553c);color:white;border:0;border-radius:15px;min-height:50px;box-shadow:0 4px 12px #0b4b3020;font-size:17px;font-weight:500}
.identity-auth .identity-switch{text-align:center;margin:10px 0 4px;color:#718478;font-size:14px}
.identity-auth .identity-divider{margin:15px 0 16px;font-size:13px;color:#7b8e82;gap:12px}
.identity-auth .identity-divider:before,.identity-auth .identity-divider:after{background:#91a99a55}
.identity-provider-row{display:flex;align-items:center;justify-content:center;gap:26px}
.identity-auth .identity-google-direct,.identity-provider-telegram{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 64px;width:64px;height:64px;min-height:64px;margin:0;padding:0;border:1px solid #ffffffb8;border-radius:50%;background:rgba(255,255,255,.42);box-shadow:inset 0 1px 2px #fff9,0 4px 14px #2547320d}
.identity-auth .identity-google-placeholder{inset:11px;width:40px;height:40px;border:0;border-radius:50%;background:#fff9}
.identity-auth .identity-google-placeholder svg{position:static;width:26px;height:26px;stroke:none}
.identity-auth .identity-google-placeholder>span{position:absolute;width:1px;height:1px;padding:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.identity-auth .identity-google-sdk{inset:11px;width:40px;height:40px}
.identity-provider-telegram .telegram-icon{width:36px;height:36px;flex:none;color:#fff;background:#21a7dc;border-radius:50%;padding:7px;box-sizing:border-box}
.identity-provider-telegram>span:empty{display:none}
.identity-provider-telegram:active{background:#ffffffa6;transform:translateY(1px)}
.identity-provider-telegram:focus-visible{outline:2px solid #427c5a;outline-offset:3px}
.identity-auth .identity-google-error{font-size:13px;text-align:center;line-height:1.45;margin:10px 0 0}
.identity-auth:has(.identity-google-error:not([hidden])) .identity-browser-help{display:block;text-align:center;font-size:12px}
.modal:has(.identity-auth)>.identity-auth-note{font-size:12px;line-height:1.55;text-align:center;color:#647e6f;margin:18px 2px 0}
.identity-auth .identity-legal{font-size:12px;line-height:1.5;color:#647e6f}
@media(min-width:650px){.modal:has(.identity-auth){max-width:440px;border-radius:30px;padding:22px 30px 26px;max-height:calc(100dvh - 40px)}}
@media(max-height:650px){.modal:has(.identity-auth){padding-top:10px}.modal:has(.identity-auth) .modalhead{margin-bottom:12px}.identity-auth form{gap:10px}.identity-auth .identity-divider{margin:8px 0 12px}.modal:has(.identity-auth)>.identity-auth-note{margin-top:12px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.modal:has(.identity-auth){background:#edf3ee}}
.identity-provider-status{margin:10px 0 0;text-align:center;font-size:13px;color:#426e58}
.identity-provider-telegram[aria-busy=true]{opacity:.65;cursor:wait}
.identity-provider-telegram[aria-busy=true]:after{content:'';position:absolute;inset:4px;border:2px solid #427c5a33;border-top-color:#427c5a;border-radius:50%;animation:auth-provider-spin .8s linear infinite}
@keyframes auth-provider-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.identity-provider-telegram[aria-busy=true]:after{animation:none}}

/* Auth mode changes never fade the backdrop or remount provider controls. */
.shade:has(.identity-auth){animation:none;transition:none}
.identity-auth .identity-google-placeholder{background:#fff;border:1px solid #dadce0}
.identity-auth .identity-google-placeholder svg{width:18px;height:18px}
.identity-auth .identity-google-direct,.identity-auth .identity-google-sdk{animation:none;transition:none}

/* Session confirmation shares the login glass but stays centered on all screens. */
.extra-sheet-shade.logout-confirm{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:rgba(24,49,40,.22);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.logout-confirm>section{width:min(calc(100vw - 40px),440px);margin:0;padding:27px 22px 20px;background:rgba(241,247,242,.82);border:1px solid #ffffffcf;border-radius:25px;-webkit-backdrop-filter:blur(26px) saturate(120%);backdrop-filter:blur(26px) saturate(120%);box-shadow:0 16px 48px #173d2d24,inset 0 1px 1px #fff}
.logout-confirm p{text-align:center;font-size:19px;line-height:1.5;font-weight:400;margin:0 0 23px}
.logout-confirm section>div{display:flex;gap:12px}
.logout-confirm button{min-height:48px;border:1px solid #ffffffb8;border-radius:14px;background:#ffffff70;font-weight:400;color:#486456}
.logout-confirm button+button{border:1px solid #ffffffb8;color:#bd3b3b}
.logout-confirm button:active{background:#ffffffb3}
.logout-confirm button:focus-visible{outline:2px solid #608774;outline-offset:2px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.logout-confirm>section{background:#edf3ee}}

/* Isolate the Google-rendered logo from the site's outlined SVG icon rules. */
.identity-auth .identity-google-sdk{display:flex;align-items:center;justify-content:center;transition:opacity 180ms ease}
.identity-auth .identity-google-sdk svg{width:18px;height:18px;fill:initial;stroke:none;stroke-width:0;flex-shrink:0}
.identity-auth .identity-google-placeholder{opacity:1;transition:opacity 180ms ease;pointer-events:none}
.identity-auth .identity-google-direct.google-ready .identity-google-placeholder{display:flex;opacity:0}
@media(prefers-reduced-motion:reduce){.identity-auth .identity-google-sdk,.identity-auth .identity-google-placeholder{transition:none}}

/* Keep the initial G visible; crossfade opacity without removing either layer. */
.identity-auth .identity-google-direct{opacity:1;transition:none}
.identity-auth .identity-google-sdk{border-radius:50%;overflow:hidden;transition:opacity 240ms ease}
.identity-auth .identity-google-placeholder{display:flex;opacity:1;transition:opacity 240ms ease}
.identity-auth .identity-google-direct.google-ready .identity-google-placeholder{display:flex;opacity:0}
.identity-auth .identity-google-direct:has(iframe:focus-visible){outline:2px solid #608774;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.identity-auth .identity-google-sdk,.identity-auth .identity-google-placeholder{transition:none}}
