/* Shared look for the account pages (account.html, profile.html): same palette as the Game Park home page. */
:root{
  --muted:#aab3e6; --line:rgba(170,180,255,.22); --accent:#ffb020; --ok:#3fd17f; --bad:#ff6b7a; --panel:rgba(14,18,52,.78);
  --field:rgba(6,8,36,.6);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{color:#fff;font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:radial-gradient(120% 80% at 50% -10%,#3b4cc0 0%,#1a2160 45%,#0b0e26 100%) fixed;
  padding:max(20px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom))}
[hidden]{display:none !important}
a{color:#ffd27a}
button{font:inherit;color:inherit;cursor:pointer}
.back{display:inline-block;color:var(--muted);text-decoration:none;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.logo{display:flex;align-items:center;gap:10px}
.logo .mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#ffd166,#ff8a3d 55%,#ff4d8d);
  display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;color:#2b1200;box-shadow:0 5px 0 #a3471d}
.logo b{font-size:24px;font-weight:900;font-style:italic;letter-spacing:.03em}
.logo b span{color:var(--accent)}

.card{background:var(--panel);border:1.5px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 16px 40px rgba(0,0,0,.35)}
h1{font-size:clamp(24px,6vw,30px);font-weight:900}
h2{font-size:18px;font-weight:800}
.sub{color:#d8dcff;font-size:14.5px;line-height:1.5;margin-top:6px}
.field{display:block;margin-top:16px}
.field > span{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.field small{display:block;margin-top:6px;font-size:12.5px;color:var(--muted);line-height:1.4}
input{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--field);color:#fff;font-size:16px;font-family:inherit}
input:focus{outline:none;border-color:#9aa6ff}
input[type=date]{color-scheme:dark;min-height:48px}
select{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--field);color:#fff;font-size:16px;font-family:inherit;color-scheme:dark;min-height:48px}
.field.err select{border-color:var(--bad)}
.field.check .tick{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45;cursor:pointer}
.field.check .tick input{width:20px;height:20px;min-height:0;padding:0;margin-top:1px;flex:none;accent-color:#ffb020}
.field.check .restricted{margin:8px 0 0 30px;font-size:13px;color:var(--muted);line-height:1.45}
.field.check .restricted summary{cursor:pointer;color:#cdd5ff;font-weight:700}
.field.check .restricted p{margin:6px 0 0} .field.check .restricted .geo a{color:inherit}
.field.check.err .tick span{color:var(--bad)}
input[readonly]{opacity:.75}
.field.err input{border-color:var(--bad)}
.field .msg{display:block;margin-top:6px;font-size:13px;color:var(--bad);min-height:0}
.prefix{position:relative}
.prefix::before{content:'@';position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:16px;pointer-events:none}
.prefix input{padding-left:32px}

/* live username status */
.ustatus{display:flex;flex-direction:column;gap:6px;margin-top:7px;font-size:13px;color:var(--muted);min-height:18px}
.ustatus > span:first-child::before{display:inline-block;width:16px;margin-right:4px;text-align:center;font-weight:900}
.ustatus.checking > span:first-child::before{content:'';width:10px;height:10px;margin-right:8px;border:2px solid var(--muted);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-1px}
.ustatus.available,.ustatus.mine{color:var(--ok)} .ustatus.available > span:first-child::before,.ustatus.mine > span:first-child::before{content:'✓'}
.ustatus.taken,.ustatus.invalid,.ustatus.error{color:var(--bad)} .ustatus.taken > span:first-child::before,.ustatus.invalid > span:first-child::before{content:'✕'}
.ustatus .sugg{color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ustatus .sugg button{padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.08);font-size:13px;font-weight:700;color:#fff}
@keyframes spin{to{transform:rotate(360deg)}}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:18px;padding:13px;border-radius:999px;border:0;font-size:16px;font-weight:900;
  letter-spacing:.05em;text-transform:uppercase;color:#3a2200;background:linear-gradient(#ffd166,var(--accent));box-shadow:0 5px 0 #b77400}
.btn.secondary{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid var(--line);box-shadow:none}
.btn.danger{background:linear-gradient(#ff7a86,#e5394d);color:#fff;box-shadow:0 5px 0 #8f1f2c}
.btn.small{width:auto;margin-top:0;padding:9px 16px;font-size:13px;box-shadow:none}
.btn:disabled{opacity:.45;cursor:default}
.btn.busy::after{content:'';width:14px;height:14px;border:2.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
.link{background:none;border:0;color:#ffd27a;text-decoration:underline;font-size:14px;padding:4px}
.link:disabled{color:var(--muted);text-decoration:none;cursor:default}

.alert{margin-top:14px;padding:11px 14px;border-radius:12px;font-size:14px;line-height:1.45;background:rgba(255,107,122,.14);border:1px solid rgba(255,107,122,.5);color:#ffd6db}
.alert.ok{background:rgba(63,209,127,.12);border-color:rgba(63,209,127,.45);color:#d4ffe5}
.alert.dev{background:rgba(255,176,32,.12);border-color:rgba(255,176,32,.5);color:#ffe7b8}
.alert b{letter-spacing:.15em}

.code{font-size:28px;font-weight:800;letter-spacing:.5em;text-align:center;padding-left:calc(14px + .5em)}

#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);opacity:0;transition:.2s;z-index:9;max-width:calc(100vw - 32px);
  background:#14301f;border:1px solid var(--ok);color:#d4ffe5;padding:10px 16px;border-radius:12px;font-size:14px;pointer-events:none}
#toast.bad{background:#2a1530;border-color:#ff6b8b;color:#ffd6de}
#toast.show{opacity:1;transform:translateX(-50%)}
