.login-island{--island-tone:#367dcc;position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:min(420px,calc(100vw - 32px));z-index:1600;display:flex;align-items:flex-start;gap:14px;padding:20px;border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--island-tone) 14%,transparent),rgba(255,255,255,.55)),rgba(255,255,255,.48);backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);color:var(--text,#202641);border:1px solid color-mix(in srgb,var(--island-tone) 30%,rgba(255,255,255,.8));box-shadow:0 16px 42px #24324b20,inset 0 1px 0 #ffffffb3,0 0 26px color-mix(in srgb,var(--island-tone) 10%,transparent);animation:islandArrive .48s cubic-bezier(.2,.8,.2,1) both;font-family:inherit;}
.login-island.tone-danger{--island-tone:#ce4b59}.login-island.tone-warning{--island-tone:#a86b13}.login-island.tone-good{--island-tone:#218d60}
.island-symbol{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:16px;background:color-mix(in srgb,var(--island-tone) 16%,transparent);color:var(--island-tone);font-size:24px;}
.island-copy{min-width:0;flex:1}.island-copy strong{font-size:15px;color:var(--island-tone);font-weight:800}.island-copy p{font-size:14px;line-height:1.85;margin:6px 0 12px;overflow-wrap:anywhere}.island-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.island-footer small{color:var(--text2,#566078);font-size:11px}.island-footer button,.island-close{font:inherit;cursor:pointer;border:0;color:var(--island-tone);background:transparent}.island-footer button{font-size:12px;font-weight:700;padding:7px 10px;border-radius:10px;background:color-mix(in srgb,var(--island-tone) 10%,rgba(255,255,255,.4))}.island-close{padding:4px;color:var(--text2,#566078)}.login-island button:hover{background:color-mix(in srgb,var(--island-tone) 18%,rgba(255,255,255,.55))}.login-island button:focus-visible{outline:2px solid var(--island-tone);outline-offset:3px}
.login-island.is-leaving{animation:islandDepart .35s ease-in both;pointer-events:none}
@keyframes islandArrive{from{opacity:0;transform:translateY(30px) scale(.86);border-radius:44px}to{opacity:1;transform:none}}
@keyframes islandDepart{to{opacity:0;transform:translateY(18px) scale(.9);border-radius:44px}}
@media(max-width:480px){.login-island{right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:16px;gap:10px}}
@media(prefers-reduced-motion:reduce){.login-island,.login-island.is-leaving{animation-duration:.01ms}}
