/* shared theme for all pages (leaderboard / load / commands / veto)
   LAN-party esports look: near-black + orange, condensed display type, animated accents. */
:root{
  --bg:#0a0b0e;--bg2:#0d1016;--card:#12161d;--card2:#101319;
  --line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.06);
  --txt:#e8eaed;--dim:#7d8590;--dim2:#a3aab4;
  --accent:#ff7a1a;--accent2:#ffa15c;              /* orange — the brand */
  --pink:#ff5bb0;--cyan:#4ad8e8;--purple:#4ea3ff;  /* arena / comp / comp-2 pops (purple→blue) */
  --lime:#b6ff2e;                                  /* acid-green pop / selection */
  --gold:#ffd75e;--sil:#cdd7ff;--brz:#e79a63;      /* podium 1/2/3 (kept) */
  --ok:#57d764;--warn:#fbbf24;--crit:#ff5b5b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:14.5px/1.55 'Chakra Petch',ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;
  color:var(--txt);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;
  background:radial-gradient(1200px 520px at 82% -14%,rgba(255,122,26,.10),transparent),var(--bg)}
a{color:var(--accent)}a:hover{color:var(--accent2)}
::selection{background:var(--lime);color:var(--bg)}
::-webkit-scrollbar{height:8px;width:8px}
::-webkit-scrollbar-thumb{background:#2a2f39;border-radius:4px}
::-webkit-scrollbar-track{background:transparent}

/* display type — condensed uppercase headlines, big scoreboard numbers */
h1,h2,h3{font-family:'Anton',Impact,sans-serif;font-weight:400;letter-spacing:.5px;text-transform:uppercase}
.num,.big,.pts,td.pts{font-family:'Teko','Chakra Petch',sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.5px}

/* falling embers (re-themed from sakura petals; glyphs set in app.py PETALS) */
.petal{position:fixed;top:-26px;pointer-events:none;user-select:none;z-index:0;color:var(--accent);
  text-shadow:0 0 8px rgba(255,122,26,.9),0 0 14px rgba(255,122,26,.5);opacity:.8;animation:fall linear infinite}
@keyframes fall{0%{transform:translateY(-12vh) rotate(0)}100%{transform:translateY(112vh) translateX(40px) rotate(320deg)}}
@media(prefers-reduced-motion:reduce){.petal{display:none}}

/* marquee ticker (top, on every page) */
.ticker{position:relative;z-index:2;overflow:hidden;white-space:nowrap;border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,rgba(255,122,26,.10),transparent 40%,rgba(255,122,26,.10));backdrop-filter:blur(4px)}
.ticker .run{display:inline-block;padding:7px 0;animation:pnMarquee 26s linear infinite;will-change:transform}
.ticker span{font-family:'Teko','Chakra Petch',sans-serif;font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--dim2);padding:0 6px}
.ticker b{color:var(--accent);font-weight:500}
.ticker i{color:var(--lime);font-style:normal;padding:0 14px}
@keyframes pnMarquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.wrap{max-width:940px;margin:0 auto;padding:22px 16px 60px;position:relative;z-index:1}
.scroll{overflow-x:auto}
.muted{color:var(--dim)}.ok{color:var(--ok)}.warn{color:var(--warn)}.crit{color:var(--crit)}
footer{margin-top:18px;color:var(--dim);font-size:12px;text-align:center;letter-spacing:.3px}

/* cards boot in (fade-up) — the site's signature reveal, CSS-only */
.card,.tile,.grp{animation:pnBoot .45s ease both}
@keyframes pnBoot{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:none}}

/* shared tab bar */
nav.tabs{display:flex;gap:5px;margin:0 0 20px;padding:5px;background:rgba(255,255,255,.04);
  border:1px solid var(--line);border-radius:12px;width:100%}
nav.tabs a{flex:1;text-align:center;padding:10px 8px;border-radius:8px;text-decoration:none;
  font-family:'Teko','Chakra Petch',sans-serif;font-size:16px;letter-spacing:1px;text-transform:uppercase;
  white-space:nowrap;background:transparent;color:var(--dim2)}
nav.tabs a:hover{color:var(--txt);background:rgba(255,255,255,.05)}
nav.tabs a.on{background:var(--accent);color:var(--bg);font-weight:500;box-shadow:0 0 18px rgba(255,122,26,.5)}

/* glow pulse + button shine-sweep utilities */
.glow{animation:pnGlow 2.4s ease-in-out infinite}
@keyframes pnGlow{0%,100%{text-shadow:0 0 10px rgba(255,122,26,.45)}50%{text-shadow:0 0 18px rgba(255,122,26,.9)}}
.sweep{position:relative;overflow:hidden}
.sweep::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:35%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg)}
.sweep:hover::after{animation:pnSweep .8s ease}
@keyframes pnSweep{0%{left:-40%}100%{left:140%}}

/* ---- PN 3.0 site components (projeto-nerds-3-0.vercel.app) ----
   tint with --tc (e.g. style="--tc:#57d764"); default = accent orange */
.sec{margin:4px 0 26px}
.sec .top{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}
.sec .no{font-family:'Teko','Chakra Petch',sans-serif;font-weight:700;font-size:17px;color:var(--accent);letter-spacing:2px}
.sec .kick{font-size:12px;letter-spacing:3px;color:var(--dim);text-transform:uppercase}
.sec h1{font-size:clamp(34px,6.4vw,74px);line-height:.9;margin:0;color:#fff;letter-spacing:-.5px}
.sec .hl{color:var(--accent)}
.sec .intro{max-width:660px;color:var(--dim2);font-size:15px;line-height:1.6;margin:12px 0 0}
.tcard{background:var(--card2);border:1px solid var(--line);border-top:4px solid var(--tc,var(--accent));border-radius:14px;overflow:hidden}
.sigla{display:grid;place-items:center;width:58px;height:58px;flex:none;border-radius:12px;
  font-family:'Anton',Impact,sans-serif;font-size:24px;color:var(--bg);
  background:var(--tc,var(--accent));box-shadow:0 0 26px -6px var(--tc,var(--accent))}
.sigla.sm{width:34px;height:34px;font-size:15px;border-radius:8px;box-shadow:0 0 16px -4px var(--tc,var(--accent))}
.dot{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--tc,var(--accent));flex:none}
.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;background:rgba(255,255,255,.03);
  border:1px solid var(--line);border-radius:20px;font-family:'Teko','Chakra Petch',sans-serif;
  font-size:16px;letter-spacing:1px;text-transform:uppercase;color:var(--txt)}
.sbar{height:7px;border-radius:20px;background:rgba(255,255,255,.07);overflow:hidden}
.sbar>i{display:block;height:100%;border-radius:20px;background:var(--tc,var(--accent))}

/* ---- per-server veto tabs (veto_tabs.html, included by setup/board/result) ---- */
.srvtabs{display:flex;gap:10px;max-width:740px;margin:0 auto 22px;flex-wrap:wrap}
.stab{flex:1;min-width:200px;display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:11px;
  border:1px solid var(--line);background:var(--card);color:var(--dim2);text-decoration:none;
  font-family:'Teko','Chakra Petch',sans-serif;font-size:19px;letter-spacing:1px;text-transform:uppercase}
.stab small{margin-left:auto;font-size:12px;letter-spacing:.5px;color:var(--dim)}
.stab .sdot{width:9px;height:9px;border-radius:50%;background:var(--dim);flex:0 0 auto}
.stab.st-livre .sdot{background:var(--ok)}
.stab.st-veto .sdot{background:var(--warn);animation:blinkdot 1.2s infinite}
.stab.st-partida .sdot{background:var(--crit)}
@keyframes blinkdot{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.stab.st-veto .sdot{animation:none}}
.stab.on{border-color:var(--accent);color:var(--txt);box-shadow:0 0 0 1px var(--accent),0 0 18px -8px var(--accent)}
.stab:hover{border-color:var(--accent2);color:var(--txt)}
