:root{
  --bg:#0b1220;--bg2:#111a2e;--card:#16213a;--card2:#1c2a49;--line:#26365a;--text:#eaf0ff;--mute:#93a3c7;
  --gold:#fbbf24;--green:#22c55e;--red:#ef4444;--blue:#60a5fa;--r:14px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}
body{min-height:100vh;background:radial-gradient(1200px 600px at 10% -10%,#1b2b55 0%,transparent 60%),var(--bg)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0}
.wrap{max-width:1280px;margin:0 auto;padding:14px 16px 60px}

/* header */
.top{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:rgba(11,18,32,.85);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
.brand h1{font-size:clamp(16px,2.4vw,24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand small{display:block;color:var(--mute);font-size:12px}
.nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.logo{width:44px;height:44px;border-radius:12px;object-fit:contain;background:#fff1;flex:none}
.logo.ph{display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#334a85,#1c2a49);color:var(--gold)}
.logo.lg{width:96px;height:96px;border-radius:20px;font-size:32px}

/* buttons / form */
.btn{border:1px solid var(--line);background:var(--card);padding:8px 14px;border-radius:10px;cursor:pointer;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:hover{background:var(--card2)}
.btn.pri{background:var(--gold);color:#1a1300;border-color:var(--gold)}
.btn.pri:hover{filter:brightness(1.07)}
.btn.good{background:#14532d;border-color:#166534}
.btn.warn{background:#7f1d1d;border-color:#991b1b}
.btn.sm{padding:5px 10px;font-size:13px}
.btn[disabled]{opacity:.5;pointer-events:none}
input,select,textarea{background:#0e1830;border:1px solid var(--line);border-radius:10px;padding:8px 10px;width:100%;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:-1px}
input[type=checkbox]{width:auto}
label.f{display:block;font-size:12px;color:var(--mute);margin-bottom:10px}
label.f>*:not(span){margin-top:4px;color:var(--text)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.row>*{flex:1 1 140px}
.row>.btn{flex:0 0 auto}
.panel{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:14px 0}
.panel h2{font-size:18px;margin-bottom:10px}
.panel h3{font-size:15px;margin:6px 0 8px}
.muted{color:var(--mute)}
.empty{padding:28px;text-align:center;color:var(--mute);border:1px dashed var(--line);border-radius:var(--r)}

/* chips & tabs */
.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:thin}
.chip{border:1px solid var(--line);background:var(--card);padding:6px 14px;border-radius:999px;cursor:pointer;font-size:14px;white-space:nowrap;flex:none}
.chip.on{background:var(--gold);color:#1a1300;border-color:var(--gold);font-weight:700}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:8px 0 14px;overflow-x:auto}
.tab{padding:10px 16px;cursor:pointer;border-bottom:3px solid transparent;color:var(--mute);font-weight:600;white-space:nowrap}
.tab.on{color:var(--text);border-color:var(--gold)}

/* leaderboard: always ONE line, leader on the left */
.sec-title{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:18px 0 8px;font-weight:700}
.lb{display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}
.lb-card{flex:1 0 150px;min-width:150px;background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:16px;padding:12px 14px;position:relative;overflow:hidden}
.lb-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--tc,#666)}
.lb-card.first{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 6px 24px #fbbf2430;background:linear-gradient(180deg,#3a3010,#1f2338)}
.lb-rank{font-size:12px;font-weight:800;color:var(--mute)}
.lb-card.first .lb-rank{color:var(--gold)}
.lb-name{font-weight:700;font-size:16px;margin:2px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-pts{font-size:30px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.lb-pts small{font-size:12px;color:var(--mute);font-weight:600;margin-left:4px}
.lb-rec{font-size:12px;color:var(--mute);margin-top:6px}

/* matches */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.day{font-weight:700;margin:18px 0 8px;color:var(--gold)}
.mc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.mc.live{border-color:var(--red);box-shadow:0 0 0 1px var(--red) inset}
.mc-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--mute);margin-bottom:8px}
.mc-meta b{color:var(--text)}
.pill{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:#26365a;letter-spacing:.04em}
.pill.live{background:var(--red);color:#fff;animation:pulse 1.4s infinite}
.pill.final{background:#14532d}
.pill.semi{background:#4c1d95}.pill.finalstage{background:#92400e;color:#fff}
.pill.def{background:#7f1d1d}
@keyframes pulse{50%{opacity:.55}}
.vs{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.tm{font-weight:600;min-width:0;overflow-wrap:anywhere}
.tm.r{text-align:right}
.tm.win{color:var(--gold)}
.tm.tbd{color:var(--mute);font-weight:400;font-style:italic;font-size:13px}
.tm .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:baseline}
.sc{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center;min-width:76px;white-space:nowrap}
.sc.v{color:var(--mute);font-size:13px;font-weight:600}

/* bracket */
.bk{display:flex;gap:26px;overflow-x:auto;padding:8px 4px 16px;align-items:stretch}
.bk-col{display:flex;flex-direction:column;gap:8px;min-width:230px;flex:none}
.bk-ms{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:12px}
.bk-col h4{margin:0 0 4px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:center}
.bk-m{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;position:relative}
.bk-m.live{border-color:var(--red)}
.bk-t{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;font-size:14px}
.bk-t+.bk-t{border-top:1px solid var(--line)}
.bk-t.win{background:#3a3010;font-weight:700}
.bk-t.tbd{color:var(--mute);font-style:italic;font-size:12px}
.bk-t b{font-variant-numeric:tabular-nums}
.bk-info{font-size:11px;color:var(--mute);padding:5px 10px;background:#0e1830}
.bk-title{font-weight:700;margin:16px 0 4px}

/* events */
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ev{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px}
.ev:hover{background:var(--card2)}
.ev h3{font-size:18px}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#14532d;font-weight:700}
.badge.done{background:#374151}

/* manage */
.mrow{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(0,3fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.mrow .teams{display:grid;grid-template-columns:1fr 64px 18px 64px 1fr;gap:6px;align-items:center;text-align:center}
.mrow .teams span:first-child{text-align:right}.mrow .teams span:last-child{text-align:left}
.mrow .teams input{text-align:center;font-weight:700;padding:6px}
.acts{display:flex;gap:6px;flex-wrap:wrap}
.sc-table{width:100%;border-collapse:collapse;font-size:13px}
.sc-table th,.sc-table td{padding:4px 6px;text-align:left}
.sc-table th{color:var(--mute);font-weight:600}
.sc-table input{width:72px;padding:5px 6px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111827;border:1px solid var(--line);padding:10px 18px;border-radius:12px;z-index:99;box-shadow:0 8px 30px #0008}
.toast.err{background:#7f1d1d;border-color:#ef4444}
.modal-bg{position:fixed;inset:0;background:#000a;display:grid;place-items:center;z-index:60;padding:16px}
.modal{background:var(--bg2);border:1px solid var(--line);border-radius:18px;padding:22px;width:min(380px,100%)}

/* TV */
body.tv{overflow:hidden;cursor:none;--tvs:.7}
.tv-wrap{height:100vh;display:flex;flex-direction:column;padding:calc(1.4vw * var(--tvs)) calc(1.8vw * var(--tvs));gap:calc(1.2vw * var(--tvs))}
.tv-head{display:flex;align-items:center;gap:calc(1.4vw * var(--tvs))}
.tv-head .logo{width:calc(5.4vw * var(--tvs));height:calc(5.4vw * var(--tvs));min-width:40px;min-height:40px;border-radius:calc(1.2vw * var(--tvs))}
.tv-head h1{font-size:calc(3.2vw * var(--tvs));flex:1;line-height:1.05}
.tv-head small{display:block;font-size:calc(1.3vw * var(--tvs));color:var(--mute);font-weight:500}
.tv-clock{font-size:calc(3vw * var(--tvs));font-weight:800;font-variant-numeric:tabular-nums}
.tv .lb{overflow:hidden;gap:calc(.8vw * var(--tvs));padding:0}
.tv .lb-card{flex:1 1 0;min-width:0;padding:calc(1vw * var(--tvs)) calc(1.2vw * var(--tvs));border-radius:calc(1.2vw * var(--tvs))}
.tv .lb-name{font-size:calc(1.7vw * var(--tvs))}.tv .lb-pts{font-size:calc(3.6vw * var(--tvs))}.tv .lb-rank{font-size:calc(1.1vw * var(--tvs))}.tv .lb-rec{font-size:calc(1.05vw * var(--tvs))}
.tv-cols{flex:1;min-height:0;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:calc(1.2vw * var(--tvs))}
.tv-col{background:#0e1830aa;border:1px solid var(--line);border-radius:calc(1.2vw * var(--tvs));padding:calc(1vw * var(--tvs)) calc(1.2vw * var(--tvs));overflow:hidden;display:flex;flex-direction:column;gap:calc(.7vw * var(--tvs));min-height:0}
.tv-col h2{font-size:calc(1.4vw * var(--tvs));letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.tv .mc{padding:calc(.8vw * var(--tvs)) calc(1vw * var(--tvs));border-radius:calc(1vw * var(--tvs))}
.tv .mc-meta{font-size:calc(1.05vw * var(--tvs));margin-bottom:calc(.4vw * var(--tvs))}
.tv .tm{font-size:calc(1.5vw * var(--tvs))}.tv .sc{font-size:calc(2vw * var(--tvs));min-width:calc(5vw * var(--tvs))}.tv .sc.v{font-size:calc(1.1vw * var(--tvs))}.tv .pill{font-size:calc(.9vw * var(--tvs))}
.tv .bk-col{min-width:calc(16vw * var(--tvs))}.tv .bk-t{font-size:calc(1.3vw * var(--tvs));padding:calc(.6vw * var(--tvs)) calc(.8vw * var(--tvs))}.tv .bk-col h4{font-size:calc(1vw * var(--tvs))}.tv .bk-info{font-size:calc(.9vw * var(--tvs))}
.tv .bk{overflow:hidden;flex:1}
.tv-scene-title{font-size:calc(2.2vw * var(--tvs));font-weight:800}

.tv-page{margin-left:auto;font-size:calc(1vw * var(--tvs));color:var(--mute);letter-spacing:.1em}
.tv .per{font-size:calc(1vw * var(--tvs));margin-top:calc(.4vw * var(--tvs))}
.tv-col h2{display:flex;align-items:center}
/* responsive */
@media (max-width:760px){
  .mrow{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .lb-card{flex-basis:132px;min-width:132px}
  .logo{width:38px;height:38px}
  .top{padding:10px 12px}
  .wrap{padding:10px 12px 60px}
  .nav .btn span.lbl{display:none}
}
@media (max-width:900px) and (orientation:portrait){
  .tv-cols{grid-template-columns:1fr}
}

.per{font-size:12px;color:var(--mute);text-align:center;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.pgrid{display:grid;gap:4px 6px;align-items:center}
.pgrid input{padding:5px 4px;text-align:center;font-weight:700;width:100%}
.pgrid .ph{text-align:center;font-size:11px}.pgrid .pn{font-size:14px;overflow:hidden;text-overflow:ellipsis}
.ptot{font-size:16px}
.tv .mc{flex:none}
