/* Shared login dialog for protected navigation from any public page. */
body:has(.login-dialog[open]) { overflow: hidden; }
body:has(.login-dialog[open]:not(:modal))::after { content: ""; position: fixed; inset: 0; z-index: 1090; background: #050c16a6; }
.login-dialog {
    position: fixed; inset: 0; z-index: 1100; margin: auto;
    box-sizing: border-box; width: min(480px, calc(100% - 32px));
    max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
    overflow: auto; padding: 36px; text-align: center;
    color-scheme: dark; color: #d3dce6; border: 1px solid #a58c59; border-radius: 12px;
    background: radial-gradient(ellipse at top, #233447, #101e2d 65%, #0b1724);
    box-shadow: 0 24px 80px #0008, inset 0 1px #e8cf8e20;
}
.login-dialog::backdrop { background: #050c16a6; }
.login-crown { display: block; margin: 0 auto 18px; object-fit: contain; }
.login-eyebrow { color: #bfaa7b; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; margin: 0 0 12px; }
.login-dialog h2 { color: #f0e4c9; font: 500 clamp(26px, 5vw, 32px)/1.2 Georgia, serif; margin: 0 0 20px; }
#login-description { font-size: 15px; line-height: 1.7; margin: 0 0 28px; }
.login-button {
    display: flex; align-items: center; justify-content: center; gap: 16px;
    min-height: 52px; padding: 12px 16px; border: 1px solid #bca16a; border-radius: 6px;
    background: linear-gradient(#394344, #283439); color: #f2dfb5; text-decoration: none; font-weight: 600;
}
.login-button:hover { background: #414d4d; color: #fff1d4; border-color: #dfc488; }
.login-button:active { background: #202e36; }
.login-dialog :is(a, button):focus-visible { outline: 2px solid #e7c985; outline-offset: 3px; }
.login-close { position: absolute; top: 10px; right: 12px; width: 40px; height: 40px; padding: 0; background: transparent; border: 0; color: #c9b784; font-size: 28px; border-radius: 5px; }
.login-close:hover, .login-cancel:hover { background: #ffffff0c; color: #f2dfb5; }
.login-cancel { display: block; width: 100%; min-height: 44px; margin-top: 12px; border: 1px solid #a58c5944; border-radius: 6px; background: transparent; color: #bfccd8; }
.login-error { color: #f3d1c9; background: #36242c; border: 1px solid #98615c; border-radius: 4px; padding: 16px; overflow-wrap: anywhere; }
.login-hint { font-size: 12px; line-height: 1.6; color: #a4b1c0; margin: 18px 0 0; }
@media (max-width: 480px) { .login-dialog { padding: 28px 22px; } }
