/* ============================================================
   LP THE CEO · LEADERBOARD — arena HUD
   Un solo tema oscuro, a propósito: esto se mira como se mira un
   marcador, no como se lee un informe.
   Marca LP: negro #000, verde #00D97E, degradado oro
   #F9E79A → #E2B95A → #C8901F → #A06E12.
   ============================================================ */
:root{
  --bg:#08080a;
  --bg-2:#0e0e11;
  --surface:#141418;
  --surface-2:#1c1c22;
  --line:#26262e;
  --line-2:#35353f;
  --brand:#C8901F;
  --brand-deep:#5a3f08;
  --brand-glow:#F9E79A;
  --brand-ink:#E2B95A;
  --ink:#f6f2e8;
  --ink-2:#c3bcac;
  --muted:#857e6f;
  --vs:#00D97E;
  --good:#00D97E;
  --bad:#e0564f;
  --display:'Chakra Petch',system-ui,sans-serif;
  --body:'Exo 2',system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;
  padding:0 clamp(16px,3vw,40px);padding-block:0 48px;min-height:100vh;
  background-image:
    radial-gradient(ellipse 70% 45% at 50% -8%, rgba(200,144,31,.40), transparent 70%),
    repeating-linear-gradient(0deg, rgba(249,231,154,.035) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(249,231,154,.035) 0 1px, transparent 1px 48px);
  background-attachment:fixed;
}
a{color:var(--brand-glow)}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brand-glow);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.lbl{font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- login ---------- */
#login{min-height:100vh;display:grid;place-items:center;padding-block:40px;position:relative;isolation:isolate;margin:0 calc(-1 * clamp(16px,3vw,40px));padding-inline:clamp(16px,3vw,40px);overflow:hidden}
#bgfx{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
#login .login-card{z-index:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(249,231,154,.15);transition:transform .2s ease-out;will-change:transform}
#login .login-card::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--brand-glow),transparent);animation:sweep 3.2s linear infinite}
@keyframes sweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.login-card h1{animation:glowtxt 2.6s ease-in-out infinite}
@keyframes glowtxt{0%,100%{text-shadow:0 0 12px rgba(249,231,154,.35)}50%{text-shadow:0 0 28px rgba(249,231,154,.8),0 0 60px rgba(200,144,31,.6)}}
.login-card{width:min(460px,100%);text-align:center;position:relative;padding:40px 32px 32px;
  background:linear-gradient(180deg,rgba(200,144,31,.24),rgba(20,20,24,.92) 42%);
  border:1px solid var(--line-2);clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px)}
.login-card img{width:86px;height:86px;border-radius:20px;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 40px rgba(249,231,154,.4)}
.login-card h1{font-family:var(--display);font-size:clamp(22px,4.4vw,30px);letter-spacing:.06em;margin:18px 0 4px;text-wrap:balance;
  background:linear-gradient(90deg,#F9E79A,#C8901F 60%,#F9E79A);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-card p{color:var(--ink-2);margin:0 0 26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;border:1px solid var(--line-2);
  background:var(--surface-2);font-family:var(--display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:13px;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px);background:#26262d}
.btn:disabled{opacity:.5;cursor:default;transform:none}
.btn-discord{background:#5865F2;border-color:#7d87ff;color:#fff;width:100%}
.btn-discord:hover{background:#4752c4}
.btn-gold{background:linear-gradient(135deg,#F9E79A,#C8901F);border-color:#E2B95A;color:#1a1200;font-weight:700}
.btn-gold:hover{background:linear-gradient(135deg,#fff0b8,#d89f2a)}
.btn-ghost{background:transparent;color:var(--ink-2)}
.btn-sm{padding:8px 14px;font-size:12px}
.login-note{margin-top:18px;font-size:12px;color:var(--muted)}
.login-err{margin-top:16px;font-size:12.5px;color:#ffb3ae;border:1px solid rgba(224,86,79,.4);background:rgba(224,86,79,.12);padding:10px 12px;text-align:left}

/* ---------- top bar ---------- */
.top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-block:18px 10px}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:52px;height:52px;border-radius:13px;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 28px rgba(249,231,154,.3)}
.brand h1{font-family:var(--display);font-size:clamp(20px,3vw,34px);letter-spacing:.08em;margin:0;line-height:1;
  background:linear-gradient(90deg,#fff,var(--brand-ink));-webkit-background-clip:text;background-clip:text;color:transparent}
.brand small{display:block;margin-top:5px;font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--brand-glow);text-transform:uppercase}
.live{display:inline-flex;align-items:center;gap:6px;margin-left:12px;font-size:10px;letter-spacing:.18em;color:var(--good);font-family:var(--display)}
.live i{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 10px var(--good);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sel{position:relative}
.sel select{appearance:none;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-2);padding:10px 36px 10px 14px;
  font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.04em;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.sel::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:2px solid var(--brand-glow);border-bottom:2px solid var(--brand-glow);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--line-2);background:var(--surface);font-size:12px;border-radius:999px}
.pill img,.pill .av{width:26px;height:26px;border-radius:50%;background:var(--brand);display:grid;place-items:center;font-family:var(--display);font-size:11px;color:#1a1200;font-weight:700;object-fit:cover}
.pill b{font-weight:600}
.pill button{background:none;border:0;color:var(--muted);padding:0 4px;font-size:12px}
.pill button:hover{color:var(--ink)}

/* ---------- KPI strip ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-block:10px 22px}
.kpi{background:var(--surface);padding:12px 16px}
.kpi .v{font-family:var(--display);font-size:24px;font-weight:700;margin-top:4px;line-height:1.1}
.kpi .v.gl{color:var(--brand-ink);text-shadow:0 0 18px rgba(249,231,154,.45)}
.kpi .v.gr{color:var(--good);text-shadow:0 0 18px rgba(0,217,126,.35)}
.kpi .d{font-size:11px;color:var(--muted);margin-top:2px}

/* ---------- section titles ---------- */
.sec{display:flex;align-items:baseline;gap:14px;margin:26px 0 12px}
.sec h2{font-family:var(--display);font-size:16px;letter-spacing:.16em;text-transform:uppercase;margin:0}
.sec span{color:var(--muted);font-size:12px}
.sec::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent)}

/* ---------- arena (podio) ---------- */
.arena{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:stretch}
.vs{align-self:center;font-family:var(--display);font-weight:700;font-style:italic;font-size:26px;color:var(--vs);
  text-shadow:0 0 14px rgba(0,217,126,.7);transform:skewX(-12deg);padding:0 2px;user-select:none}
.team{--tc:#888;min-width:0;position:relative;padding:1px;background:linear-gradient(160deg,var(--tc) 0%,var(--line) 45%,var(--line) 100%);
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);transition:transform .3s}
.team:hover{transform:translateY(-2px)}
.team-in{height:100%;background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 14%,var(--surface)),var(--surface) 38%);
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);padding:16px 14px 14px;display:flex;flex-direction:column;gap:10px}
.team.leader{background:linear-gradient(160deg,#F9E79A 0%,var(--tc) 35%,var(--line) 80%);box-shadow:0 0 34px color-mix(in srgb,var(--tc) 40%,transparent)}
.team.me{outline:1px dashed var(--good);outline-offset:3px}
.team-head{text-align:center;position:relative}
.rank{position:absolute;left:0;top:-4px;font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.1em;padding:3px 8px;background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink-2)}
.leader .rank{background:#F9E79A;color:#2b1a00;border-color:#F9E79A}
.team-av{width:58px;height:58px;border-radius:50%;margin:2px auto 8px;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:20px;
  background:linear-gradient(140deg,color-mix(in srgb,var(--tc) 55%,#000),color-mix(in srgb,var(--tc) 15%,#000));border:1px solid color-mix(in srgb,var(--tc) 60%,transparent);object-fit:cover}
.team-name{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin:0;text-wrap:balance;overflow-wrap:anywhere}
.team-cash-l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--tc) 70%,#fff);font-family:var(--display);margin-top:8px}
.team-cash{font-family:var(--display);font-size:clamp(24px,2.3vw,34px);font-weight:700;line-height:1.05;color:color-mix(in srgb,var(--tc) 55%,#fff);
  text-shadow:0 0 22px color-mix(in srgb,var(--tc) 70%,transparent)}
.team-meta{display:flex;justify-content:center;gap:14px;font-size:11px;color:var(--muted);margin-top:4px;flex-wrap:wrap}
.team-meta b{color:var(--ink-2);font-weight:600}
.medal{font-size:20px}
.meter{height:5px;background:var(--surface-2);position:relative;overflow:hidden}
.meter i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 60%,#000),var(--tc));transition:width .9s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 10px var(--tc)}

/* ---------- paneles ---------- */
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.panel{background:var(--surface);border:1px solid var(--line);padding:14px 16px 14px;position:relative;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.panel::before{content:"";position:absolute;left:0;top:0;width:60px;height:2px;background:linear-gradient(90deg,var(--brand-glow),transparent)}
.panel h3{font-family:var(--display);font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin:0}
.panel .sub{font-size:12px;color:var(--muted);margin:2px 0 10px}
.panel svg{width:100%;height:auto;display:block;overflow:visible}
.panel svg text{font-family:var(--body);fill:var(--ink-2);font-size:11px}
.panel svg .grid{stroke:var(--line);stroke-width:1}
.panel svg .lab{font-family:var(--display);font-size:11px;fill:var(--ink);font-weight:600}
.panel svg .val{font-family:var(--display);font-size:11px;fill:var(--ink-2)}
.panel svg .race rect{transition:width .9s cubic-bezier(.2,.8,.2,1)}
.panel svg .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 4px currentColor)}

/* ---------- carrera de cash ---------- */
.race{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.race-row{display:grid;grid-template-columns:18px minmax(0,1fr) minmax(70px,1.1fr) auto;align-items:center;gap:10px}
.race-row.me .race-name{color:var(--good)}
.race-n{font-family:var(--display);font-size:11px;color:var(--muted);text-align:right}
.race-name{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.race-name b{font-family:var(--display);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--good)}
.race-bar{height:8px;background:var(--surface-2);position:relative;overflow:hidden}
.race-bar i{position:absolute;left:0;top:0;bottom:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.race-amt{font-family:var(--display);font-weight:700;font-size:12.5px;white-space:nowrap}

/* ---------- formulario ---------- */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:4px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-family:var(--display);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.inp{background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink);padding:10px 12px;font:inherit;width:100%;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.inp::placeholder{color:var(--muted)}
textarea.inp{resize:vertical;min-height:64px}
.drop{border:1px dashed var(--line-2);background:var(--surface-2);padding:14px;text-align:center;color:var(--ink-2);font-size:12.5px;cursor:pointer}
.drop.on{border-color:var(--good);color:var(--good)}
.drop b{display:block;font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;font-size:11px;color:var(--brand-ink);margin-bottom:4px}
.thumb{max-height:120px;max-width:100%;margin-top:10px;border:1px solid var(--line-2)}
.mine{display:flex;flex-direction:column;gap:0;margin-top:6px}
.mine-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
.mine-row:last-child{border-bottom:0}
.mine-row .amt{font-family:var(--display);font-weight:700;margin-left:auto;white-space:nowrap}
.tag{font-family:var(--display);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}
.tag.ok{color:var(--good);border-color:rgba(0,217,126,.45);background:rgba(0,217,126,.10)}
.tag.no{color:var(--bad);border-color:rgba(224,86,79,.45);background:rgba(224,86,79,.10)}
.tag.wait{color:var(--brand-ink);border-color:rgba(226,185,90,.45);background:rgba(226,185,90,.10)}

/* ---------- leaderboard ---------- */
.board{background:var(--surface);border:1px solid var(--line);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.board-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(90deg,var(--brand-deep),var(--surface))}
.board-h h3{font-family:var(--display);font-size:14px;letter-spacing:.14em;text-transform:uppercase;margin:0}
.board-h span{font-size:11px;color:var(--brand-ink);letter-spacing:.1em;font-family:var(--display)}
.board table{width:100%;border-collapse:collapse}
.board th{font-family:var(--display);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);font-weight:600}
.board td{padding:0 12px;height:46px;border-bottom:1px solid var(--line);vertical-align:middle}
.board tr:last-child td{border-bottom:0}
.board tr.me{background:rgba(0,217,126,.07)}
.board td.rk{width:46px;font-family:var(--display);font-weight:700;color:var(--muted)}
.board tr.p1 td.rk{color:#F9E79A}.board tr.p2 td.rk{color:#d5d5e0}.board tr.p3 td.rk{color:#d9905b}
.board .who{display:flex;align-items:center;gap:10px;min-width:0}
.board .who .av{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--display);font-size:11px;font-weight:700;background:var(--surface-2);border:1px solid var(--line-2);object-fit:cover}
.board .who .nm{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.board .who .tm{display:block;font-size:11px;color:var(--muted)}
.board td.mt{width:30%}
.board .bar{height:6px;background:var(--surface-2);position:relative}
.board .bar i{position:absolute;left:0;top:0;bottom:0;transition:width .9s cubic-bezier(.2,.8,.2,1);background:linear-gradient(90deg,#A06E12,#F9E79A)}
.board td.cash{text-align:right;font-family:var(--display);font-weight:700;font-size:14px;white-space:nowrap}
.board td.ct{text-align:right;color:var(--ink-2);white-space:nowrap}
.empty{padding:26px 16px;text-align:center;color:var(--muted);font-size:13px}

/* ---------- moderación ---------- */
.mod-row{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mod-row:last-child{border-bottom:0}
.mod-row img.ev{width:64px;height:48px;object-fit:cover;border:1px solid var(--line-2);cursor:zoom-in;background:var(--surface-2)}
.mod-row .who{font-weight:600}
.mod-row .sp{margin-left:auto;display:flex;gap:8px}
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:70;display:grid;place-items:center;padding:24px}
#lightbox img{max-width:min(1100px,94vw);max-height:88vh;border:1px solid var(--line-2)}

/* ---------- toast ---------- */
#toasts{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 36px))}
.toast{background:#0f0e12;border:1px solid var(--line-2);border-left:3px solid var(--vs);padding:10px 12px;font-size:13px;animation:tin .35s ease-out;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.toast.bad{border-left-color:var(--bad)}
.toast b{color:var(--brand-glow)}
@keyframes tin{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.foot{margin-top:28px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

@media (max-width:1180px){
  .arena{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
  .vs{display:none}
}
@media (max-width:520px){
  .top{padding-block:14px 6px}
  .brand img{width:42px;height:42px}
  .top-right{margin-left:0;width:100%}
  .kpi .v{font-size:20px}
}
