.login-card {max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;}
#loginForm[hidden],#recoveryForm[hidden],.recovery-vault-overlay[hidden]{display:none!important;}
/* The key must remain clickable above the existing max-z-index login modal. */
.game-frame.auth-recovery-open > .recovery-vault-overlay{z-index:2147483647;pointer-events:auto!important;visibility:visible!important;}
.game-frame.auth-recovery-open .login-overlay{visibility:hidden!important;}
.game-frame.auth-recovery-open .login-overlay,.game-frame.auth-recovery-open .login-overlay *{pointer-events:none!important;}
#recoveryForm {display:grid;gap:10px;min-width:0;}
#recoveryForm label {display:grid;gap:5px;color:#dce8e9;font-size:14px;}
#recoveryForm input {box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #476267;background:#09191e;color:#f5f1df;border-radius:5px;font:inherit;}
#recoverySubmit{min-height:44px;background:#d7b969;border:1px solid #f8dc8a;color:#172228;font-weight:800;border-radius:5px;}
.recovery-vault-overlay {position:fixed;inset:0;z-index:200000;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-sizing:border-box;background:rgba(2,10,15,.91);font-family:inherit;color:#eef5ed;}
.recovery-vault-card {box-sizing:border-box;width:min(100%,580px);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:clamp(16px,3vw,30px);border:2px solid #c7af70;background:linear-gradient(150deg,#203a40,#0a1a22);box-shadow:0 0 0 4px #07131b,0 18px 70px #0009;border-radius:7px;display:grid;gap:14px;}
.recovery-kicker {color:#e8ca7a;font-size:11px;letter-spacing:.14em;font-weight:bold;}
.recovery-vault-card h2{margin:0;font-size:clamp(22px,2.4vw,30px);line-height:1.15;}
.recovery-vault-card p {margin:0;color:#cedde0;font-size:15px;line-height:1.5;}
.recovery-vault-card label{display:grid;gap:8px;color:#e8cc82;font-size:13px;font-weight:700;}
#recoveryVaultCode {box-sizing:border-box;min-width:0;width:100%;padding:14px 10px;border:1px solid #7c987c;border-radius:4px;background:#08181e;color:#f6e9ba;font:600 clamp(13px,2vw,17px)/1.5 ui-monospace,monospace;min-height:72px;resize:none;overflow-wrap:anywhere;}
.recovery-vault-actions {display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.recovery-vault-card button {box-sizing:border-box;min-height:44px;padding:10px;border:1px solid #829a92;border-radius:4px;background:#243f45;color:#f0eee1;font:inherit;font-size:14px;font-weight:700;cursor:pointer;}
.recovery-vault-card .recovery-continue {background:#d8b769;color:#0c2025;border-color:#efdb97;}
.recovery-vault-card small {color:#a9c1c4;line-height:1.5;font-size:12px;}
.recovery-vault-card output {color:#b4efb7;font-size:13px;line-height:1.4;min-height:18px;}
.recovery-vault-card :focus-visible,#recoveryForm :focus-visible {outline:3px solid #e7cf7b;outline-offset:3px;}
.game-guide-launcher{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;width:100%;box-sizing:border-box;padding:12px 16px;background:#213b41;border:1px solid #b49a60;color:#f0e6c6;border-radius:4px;margin-bottom:12px;cursor:pointer;}
.game-guide-launcher span {font-size:12px;color:#adc9ca;}
@media(max-width:420px){.recovery-vault-actions{grid-template-columns:1fr;}.game-guide-launcher{align-items:flex-start;flex-direction:column;gap:3px;}}
@media(max-height:420px){.recovery-vault-card{gap:9px;padding:14px;}.recovery-vault-card h2{font-size:22px;}.recovery-vault-card p{font-size:13px;}}
@supports not (height:100dvh){.login-card{max-height:calc(100vh - 24px);}}
