/* REMATCH portal — shared styles. Tokens mirror dashboard.html exactly. */
:root{
  --bg:#0E1015;--panel:#171A22;--panel2:#1E222C;--line:#2A2F3B;
  --ink:#EDEFF3;--mute:#828B9E;
  --win:#4FBF7B;--err:#E2564B;--ball:#D8E63C;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--bg);color:var(--ink);
  font:400 14px Inter,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}

/* ---- wordmark ---- */
.wordmark{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:30px;letter-spacing:.14em;text-transform:uppercase;
}
.wordmark .dot{color:var(--ball)}

/* ---- buttons / inputs ---- */
.btn{
  width:100%;padding:13px 16px;border:0;border-radius:10px;
  background:var(--ball);color:#0E1015;cursor:pointer;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:17px;letter-spacing:.06em;text-transform:uppercase;
}
.btn:disabled{opacity:.55;cursor:default}
.field{
  width:100%;padding:12px 14px;margin-top:6px;
  background:var(--panel2);border:1px solid var(--line);border-radius:10px;
  color:var(--ink);font:400 15px Inter,sans-serif;
}
.field:focus{outline:none;border-color:var(--ball)}
label{display:block;font-size:12px;color:var(--mute);margin-top:14px;
  letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.err{color:var(--err);font-size:13px;min-height:18px;margin-top:12px}

/* ---- login page ---- */
.login-wrap{min-height:100dvh;display:flex;align-items:center;
  justify-content:center;padding:24px}
.login-card{
  width:100%;max-width:360px;background:var(--panel);
  border:1px solid var(--line);border-radius:16px;padding:26px 24px 28px;
}
.login-card .wordmark{text-align:center;margin-bottom:4px}
.login-card .sub{text-align:center;color:var(--mute);font-size:13px;
  margin-bottom:22px}

/* ---- app header (matches / match pages) ---- */
.appbar{display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:var(--bg);z-index:5}
.appbar .wordmark{font-size:22px}
.linkbtn{background:none;border:1px solid var(--line);border-radius:8px;
  padding:7px 12px;color:var(--mute);cursor:pointer;font-weight:600;
  font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.linkbtn:hover{color:var(--ink);border-color:var(--mute)}

/* ---- matches list ---- */
.matches-wrap{max-width:560px;margin:0 auto;padding:18px 16px 40px}
.match-card{display:block;text-decoration:none;background:var(--panel);
  border:1px solid var(--line);border-radius:14px;padding:16px 18px;
  margin-bottom:14px;transition:border-color .12s}
.match-card:hover,.match-card:active{border-color:var(--mute)}
.match-card .top{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px}
.match-card .opp{font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:26px;letter-spacing:.02em;line-height:1.05}
.match-card .opp .vs{color:var(--mute);font-size:16px;font-weight:600;
  margin-right:6px}
.badge{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:15px;
  letter-spacing:.06em;padding:3px 11px;border-radius:999px;flex:none}
.badge.W{background:var(--win);color:#0E1015}
.badge.L{background:var(--err);color:#0E1015}
.match-card .meta{margin-top:8px;color:var(--mute);font-size:13px;
  display:flex;flex-wrap:wrap;gap:4px 14px}
.match-card .meta .score{color:var(--ink);font-weight:600}
.empty{text-align:center;color:var(--mute);padding:60px 20px;font-size:15px}
.loading{text-align:center;color:var(--mute);padding:50px 20px}
