:root{
  --bg:#050d18;
  --card:#0a1a2b;
  --card2:#08151f;
  --line:#1d3448;
  --text:#eef5fb;
  --muted:#93a7bd;
  --lime:#9fe24b;
  --cyan:#28d3ea;
  --gold:#fcbf3b;
  --purple:#b071f5;
  --red:#ff5f5f;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#04080f;color:var(--text);font-family:"Barlow Condensed",system-ui,sans-serif}
body{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:22px 16px 96px}

#stage{width:100%;max-width:1920px;display:flex;justify-content:center}
.board{
  width:1920px;height:1080px;flex:0 0 auto;
  transform-origin:top center;
  padding:20px 26px 22px;
  display:grid;grid-template-rows:100px 96px 236px 1fr 248px;gap:18px;
  background:
    radial-gradient(900px 320px at 6% -6%, rgba(120,190,255,.20), transparent 60%),
    radial-gradient(900px 320px at 94% -6%, rgba(120,190,255,.20), transparent 60%),
    radial-gradient(1300px 600px at 50% 34%, rgba(60,150,90,.16), transparent 70%),
    linear-gradient(#071322 0%, #061020 45%, #040b14 100%);
  border-radius:10px;overflow:hidden;position:relative;
}
.board::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(1100px 420px at 50% 46%, rgba(255,255,255,.05), transparent 70%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 2px, transparent 2px 4px);
}

/* ---------- header ---------- */
.head{position:relative;display:flex;align-items:center;justify-content:center;gap:20px;padding:2px 0 0}
.flood{position:absolute;top:-40px;width:420px;height:200px;filter:blur(18px);opacity:.55}
.flood-l{left:-90px;background:radial-gradient(closest-side at 30% 20%, rgba(186,222,255,.85), rgba(140,190,255,.25) 45%, transparent 75%)}
.flood-r{right:-90px;background:radial-gradient(closest-side at 70% 20%, rgba(186,222,255,.85), rgba(140,190,255,.25) 45%, transparent 75%)}
.crest{filter:drop-shadow(0 0 18px rgba(159,226,75,.55));display:grid;place-items:center}
.titles{text-align:center}
h1{font-family:Anton,Impact,sans-serif;font-size:53px;line-height:1;letter-spacing:1.5px;text-transform:uppercase;
   text-shadow:0 2px 0 #04080f, 0 0 26px rgba(120,180,255,.28)}
.sub{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:8px}
.sub span{font-family:Teko,sans-serif;font-weight:600;font-size:28px;letter-spacing:7px;color:var(--lime);line-height:1}
.sub i{display:block;width:70px;height:3px;background:var(--lime);opacity:.85}

/* ---------- cards ---------- */
.card{background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);border:2px solid var(--line);border-radius:14px;position:relative}
.card.lime{border-color:rgba(159,226,75,.75);box-shadow:0 0 22px rgba(159,226,75,.10) inset}
.card.cyan{border-color:rgba(40,211,234,.75);box-shadow:0 0 22px rgba(40,211,234,.10) inset}
.card.gold{border-color:rgba(252,191,59,.8);box-shadow:0 0 22px rgba(252,191,59,.10) inset}
.card.purple{border-color:rgba(176,113,245,.8);box-shadow:0 0 22px rgba(176,113,245,.10) inset}
.card h2{font-family:Teko,sans-serif;font-weight:600;font-size:31px;letter-spacing:4px;text-align:center;line-height:1;padding:8px 0 4px}
.card.lime h2{color:var(--lime)} .card.cyan h2{color:var(--cyan)}
.card h3{font-family:Teko,sans-serif;font-weight:600;font-size:23px;letter-spacing:2.2px;text-align:center;line-height:1.05;padding:8px 8px 4px}
.card.lime h3{color:var(--lime)} .card.cyan h3{color:var(--cyan)}
.card.gold h3{color:var(--gold)} .card.purple h3{color:var(--purple)}

/* ---------- kpi row ---------- */
.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.kpi{display:flex;align-items:center;gap:16px;padding:0 20px}
.kpi .ico{width:60px;height:60px;flex:0 0 60px}
.kpi .ico svg{width:60px;height:60px}
.kpi.lime .ico{color:var(--lime)} .kpi.cyan .ico{color:var(--cyan)}
.kpi.gold .ico{color:var(--gold)} .kpi.purple .ico{color:var(--purple)}
.kpitext{flex:1;text-align:center;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi .label{font-family:Teko,sans-serif;font-weight:500;font-size:23px;letter-spacing:2.6px;color:#dce8f4;line-height:1}
.kpi .value{font-family:Anton,sans-serif;font-size:52px;line-height:1;letter-spacing:.5px}
.kpi .value.name{font-size:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .sublabel{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:20px;letter-spacing:1.6px;color:#c7d6e5;line-height:1}
.kpi.lime .value{color:var(--lime)} .kpi.cyan .value{color:var(--cyan)}
.kpi.gold .value{color:var(--gold)} .kpi.purple .value{color:var(--purple)}

/* ---------- middle ---------- */
.midrow{display:grid;grid-template-columns:1fr 1.18fr;gap:18px}
.latest{overflow:hidden;display:flex;flex-direction:column}
.latest::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(420px 200px at 50% 120%, rgba(159,226,75,.14), transparent 70%),
    linear-gradient(105deg, rgba(159,226,75,.10) 0 10%, transparent 12% 88%, rgba(159,226,75,.12) 90% 100%);
  border-radius:12px;pointer-events:none;
}
.scoreline{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:8px;position:relative}
.team{font-family:Anton,sans-serif;font-size:52px;letter-spacing:1px;width:210px;line-height:1;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team.home{text-align:right} .team.away{text-align:left}
.scorebox{font-family:Anton,sans-serif;font-size:58px;line-height:1;color:var(--text);
  min-width:74px;text-align:center;padding:8px 12px 6px;border:3px solid var(--lime);border-radius:10px;
  background:rgba(4,10,16,.65);box-shadow:0 0 18px rgba(159,226,75,.22)}
.dash{font-family:Anton,sans-serif;font-size:34px;color:#9db0c4}
.motm{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:27px;letter-spacing:1.4px;text-align:center;margin-top:14px;position:relative}
.motm b{color:var(--lime);font-weight:700}
.motm .star{color:var(--gold);font-size:26px}
.latestdate{margin-top:auto;padding-bottom:10px;text-align:center;position:relative;font-family:Teko,sans-serif;
  font-size:19px;letter-spacing:3px;color:var(--muted)}

.captains{display:flex;flex-direction:column}
.captains ul{list-style:none;padding:0 22px;display:flex;flex-direction:column;gap:9px;flex:1;justify-content:center}
.captains li{display:grid;grid-template-columns:50px 180px 1fr 104px;align-items:center;gap:14px}
.captains .pos{font-family:Anton,sans-serif;font-size:25px;color:var(--cyan);text-align:center;
  border:2px solid rgba(40,211,234,.7);border-radius:8px;padding:3px 0 1px;background:rgba(4,10,16,.5)}
.captains .cname{font-family:Anton,sans-serif;font-size:28px;letter-spacing:.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.captains .track{display:block;height:19px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.captains .fill{display:block;height:100%;background:linear-gradient(90deg,#28d3ea,#63e6f6);border-radius:3px}
.captains .pts{font-family:Anton,sans-serif;font-size:26px;text-align:right}
.captains .pts small{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:19px;letter-spacing:1px;color:#c9d8e6;margin-left:5px}
.captains .foot{text-align:center;padding:0 0 9px;font-family:Teko,sans-serif;
  font-size:18px;letter-spacing:2.6px;color:var(--muted)}

/* ---------- rankings ---------- */
.rankings{padding-bottom:6px}
.rankings table{width:100%;border-collapse:collapse;table-layout:fixed}
.rankings th{font-family:Teko,sans-serif;font-weight:500;font-size:22px;letter-spacing:2.2px;color:var(--lime);
  padding:4px 0 8px;border-bottom:1px solid rgba(159,226,75,.35);text-align:center}
.rankings th.l{text-align:left;padding-left:38px}
.rankings td{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:26px;line-height:1.15;text-align:center;
  padding:3px 0;border-bottom:1px solid rgba(255,255,255,.055);color:#e8f1f9}
.rankings tr:last-child td{border-bottom:none}
.rankings td.rank{color:var(--lime);font-family:Anton,sans-serif;font-size:24px}
.rankings td.mv{width:56px;font-size:22px}
.rankings td.player{text-align:left;padding-left:38px;font-family:Anton,sans-serif;font-size:27px;letter-spacing:.6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rankings col.crank{width:96px} .rankings col.cmove{width:60px} .rankings col.cplayer{width:250px}
.rankings .up{color:var(--lime)} .rankings .down{color:var(--red)} .rankings .same{color:var(--muted)}
.rankings .streak{letter-spacing:1px;font-size:22px}
.rankings .streak.none{color:var(--muted);font-size:26px}
.rankings .streak.loss{color:var(--red);font-family:Teko,sans-serif;font-size:26px;letter-spacing:1px}
.rankings tr.top td{background:rgba(159,226,75,.045)}

/* ---------- bottom ---------- */
.botrow{display:grid;grid-template-columns:1.02fr 1fr 1fr 1fr 1.12fr 1.16fr;gap:16px}
.mini{overflow:hidden;display:flex;flex-direction:column}
.mini .tag{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:15px;
  letter-spacing:2.2px;color:#b9c9d8;margin-top:3px}
.minibody{flex:1;display:flex;align-items:center;gap:8px;padding:0 12px 10px}
.miniico{flex:0 0 58px;display:grid;place-items:center}
.miniico svg{width:56px;height:62px}
.lime .miniico{color:var(--lime)} .cyan .miniico{color:var(--cyan)}
.gold .miniico{color:var(--gold)} .purple .miniico{color:var(--purple)}
.ranklist{list-style:none;flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.ranklist li{display:grid;grid-template-columns:20px 1fr auto;gap:9px;align-items:baseline;
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:23px;line-height:1.05}
.ranklist .n{color:var(--muted);font-size:20px;text-align:right}
.ranklist .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.6px}
.ranklist .v{font-family:Anton,sans-serif;font-size:22px}

.bars ul{list-style:none;padding:2px 16px 12px;display:flex;flex-direction:column;gap:9px;flex:1;justify-content:center}
.bars li{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:10px;
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:23px}
.bars .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bars .track{display:block;height:17px;background:rgba(255,255,255,.05);border-radius:3px;overflow:hidden}
.bars .fill{display:block;height:100%;background:linear-gradient(90deg,#28d3ea,#6ee9f7);border-radius:3px}
.bars .v{font-family:Anton,sans-serif;font-size:21px;min-width:20px;text-align:right}

.results ul{list-style:none;padding:2px 14px 12px;display:flex;flex-direction:column;gap:9px;flex:1;justify-content:center}
.results li{display:grid;grid-template-columns:56px 1fr 42px;align-items:stretch;gap:10px}
.results .date{font-family:Teko,sans-serif;font-weight:600;font-size:19px;line-height:1;color:#dbe7f2;
  border:1px solid var(--line);border-radius:7px;display:grid;place-content:center;text-align:center;padding:5px 0;background:rgba(255,255,255,.03)}
.results .date span{display:block;font-size:14px;letter-spacing:1.4px;color:var(--muted)}
.results .fix{display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);
  border-radius:7px;background:rgba(255,255,255,.03);font-family:Anton,sans-serif;font-size:21px;letter-spacing:.5px;padding:0 6px;
  white-space:nowrap;overflow:hidden}
.results .fix .sc{color:var(--lime)}
.results .out{display:grid;place-content:center;border-radius:7px;font-family:Anton,sans-serif;font-size:22px;
  border:2px solid var(--lime);color:#08131d;background:var(--lime)}
.results .out.D{border-color:var(--gold);background:var(--gold)}
.results .out.L{border-color:var(--red);background:var(--red);color:#1b0808}

/* ---------- toolbar ---------- */
.toolbar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:10px;align-items:center;justify-content:center;
  padding:12px;background:rgba(4,8,15,.9);border-top:1px solid #14293c;backdrop-filter:blur(6px);z-index:40}
.btn{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:19px;letter-spacing:1px;
  padding:9px 20px;border-radius:8px;border:1px solid #23415a;background:#0d1e2e;color:var(--text);cursor:pointer}
.btn:hover{border-color:var(--cyan)}
.btn.primary{background:var(--lime);border-color:var(--lime);color:#07131d}
.btn.primary:hover{filter:brightness(1.08)}
.saved{font-size:16px;color:var(--muted);letter-spacing:.6px}

/* ---------- panel ---------- */
.panel{position:fixed;inset:0;background:rgba(3,7,12,.78);display:none;z-index:60;padding:26px;overflow:auto}
.panel.open{display:block}
.panelbox{max-width:1080px;margin:0 auto;background:#081522;border:1px solid #1d3448;border-radius:14px;padding:20px 22px 24px}
.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.panelhead h2{font-family:Teko,sans-serif;font-size:32px;letter-spacing:1.6px;color:var(--lime)}
.close{background:none;border:none;color:var(--muted);font-size:30px;cursor:pointer;line-height:1}
.tabs{display:flex;gap:8px;border-bottom:1px solid #1d3448;margin-bottom:16px}
.tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:19px;letter-spacing:.8px;padding:8px 12px}
.tab.active{color:var(--text);border-color:var(--lime)}
.tabpane{display:none} .tabpane.active{display:block}
.hint{font-size:18px;color:#b9cadb;line-height:1.5;margin-bottom:12px}
.hint code,pre{font-family:ui-monospace,Menlo,monospace}
.hint code{background:#0d1f2f;padding:1px 5px;border-radius:4px;font-size:15px;color:#cfe6ff}
pre{background:#061220;border:1px solid #17303f;border-radius:8px;padding:12px;font-size:13px;color:#a9c4da;
  white-space:pre-wrap;line-height:1.6;margin:8px 0 14px}
textarea{width:100%;height:190px;background:#061220;border:1px solid #1d3448;border-radius:8px;color:#dcebf7;
  padding:12px;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.5;resize:vertical}
.panelactions{display:flex;gap:12px;align-items:center;margin-top:12px}
.panelactions.right{justify-content:flex-end}
input[type=file]{color:var(--muted);font-size:15px}
.msg{margin-top:10px;font-size:17px;color:var(--lime);min-height:22px}
.msg.err{color:var(--red)}
.helplist{color:#b9cadb;font-size:18px;line-height:1.7;padding-left:22px;margin-bottom:14px}
.panelbox h3{font-family:Teko,sans-serif;font-size:25px;letter-spacing:1.4px;color:var(--cyan);margin:14px 0 6px}

/* form editor */
.fsec{margin:14px 0 6px;font-family:Teko,sans-serif;font-size:24px;letter-spacing:1.4px;color:var(--lime)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.fgrid label{display:flex;flex-direction:column;gap:3px;font-size:15px;color:#9fb4c8;letter-spacing:.4px}
.fgrid input{background:#061220;border:1px solid #1d3448;border-radius:6px;color:#e6f1fa;padding:7px 9px;
  font-family:"Barlow Condensed",sans-serif;font-size:18px}
.fgrid input:focus{outline:none;border-color:var(--cyan)}
.ptable{width:100%;border-collapse:collapse;margin-top:6px}
.ptable th{font-size:14px;color:#8fa6bb;text-align:left;padding:4px 6px;font-weight:600;letter-spacing:.6px}
.ptable td{padding:3px 4px}
.ptable input{width:100%;background:#061220;border:1px solid #1d3448;border-radius:6px;color:#e6f1fa;padding:6px 8px;
  font-family:"Barlow Condensed",sans-serif;font-size:17px}
.ptable input.nm{min-width:120px}

/* rank cell arrows */
.rankings thead th:nth-child(1){width:124px}
.rankings thead th:nth-child(2){width:260px}
.rankings td.rank i{font-family:system-ui,sans-serif;font-size:17px;font-style:normal;margin-left:8px;vertical-align:2px}

.ranklist .empty,.bars .empty,.results .empty{display:block;grid-template-columns:none;color:#93a7bd;font-size:18px;
  letter-spacing:.4px;text-align:center;line-height:1.3}

.titles h1 {
  margin-bottom: 8px !important;
  line-height: 0.9 !important;
}

.titles .sub {
  margin-top: 8px !important;
  line-height: 1.1 !important;
}

/* PNG-safe Last 3 Results layout */
.results li {
  display: grid !important;
  grid-template-columns: 54px 1fr !important;
  align-items: center !important;
  column-gap: 7px !important;
}

.results .date {
  width: 54px !important;
  min-width: 54px !important;
}

.results .fix {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 5px !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  font-size: 15px !important;
}

.results .fix .sc {
  white-space: nowrap !important;
  text-align: center !important;
}

.results .fix {
  text-overflow: clip !important;
}
/* Final PNG-safe sizing for Last 3 Results */
.results .fix {
  grid-template-columns: 1fr 35px 1fr !important;
  column-gap: 2px !important;
  font-size: 13px !important;
}

.results .fix .sc {
  width: 35px !important;
  font-size: 13px !important;
}
