
:root{
  --bg:#050b16;
  --bg2:#09111f;
  --rail:#08101c;
  --panel:#0d1726;
  --panel2:#101d31;
  --panel3:#0a1321;
  --line:#1a2940;
  --line2:#2d4770;
  --text:#eef4ff;
  --muted:#8da3c7;
  --blue:#5da2ff;
  --blue2:#2f74d8;
  --blue3:#8ec0ff;
  --green:#1ea672;
  --red:#c65469;
  --yellow:#b88e38;
  --gray:#62738c;
  --shadow:0 24px 70px rgba(0,0,0,.42);
  --radius:24px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,sans-serif;
  color:var(--text);
  background:
    radial-gradient(900px 540px at 100% -10%, rgba(93,162,255,.14), transparent 42%),
    radial-gradient(700px 420px at -10% 110%, rgba(40,84,170,.18), transparent 40%),
    linear-gradient(180deg,var(--bg) 0%, var(--bg2) 100%);
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed; inset:0; pointer-events:none;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.012) 0 1px, transparent 1px 140px),
    repeating-linear-gradient(180deg, rgba(255,255,255,.01) 0 1px, transparent 1px 140px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.05));
}
.app{min-height:100vh;display:grid;grid-template-columns:280px 1fr}
.sidebar{
  position:sticky;top:0;height:100vh;padding:14px;
  border-right:1px solid var(--line);
  background:rgba(7,12,20,.92);
  backdrop-filter:blur(12px);
}
.brand-card,.db-card,.nav button,.hero,.league-card,.stat-card,.panel,.match-card,.empty-box,.player-card,.team-column,.club{
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.brand-card{
  padding:18px;border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
}
.eyebrow,.hero-topline{
  color:var(--blue3);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
}
.brand-title{
  margin-top:6px;
  font-size:34px;
  line-height:.95;
  font-weight:900;
  letter-spacing:-.05em;
}
.brand-title span{color:var(--blue)}
.brand-copy{
  margin:12px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}
.brand-bars,.hero-bars{
  margin-top:18px;
  display:grid;
  gap:12px;
}
.brand-bars{grid-template-columns:repeat(4,1fr)}
.hero-bars{grid-template-columns:repeat(5,1fr)}
.brand-bars span,.hero-bars span{
  height:10px;border-radius:999px;
  background:linear-gradient(90deg, var(--blue), var(--blue2));
}
.db-card{
  margin-top:14px;
  padding:14px 16px;
  border-radius:22px;
  background:rgba(255,255,255,.02);
}
.status-pill,.league-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;
  border:1px solid var(--line2);
  background:#101a2b;
  font-size:12px;font-weight:800;
}
.status-pill::before,.league-pill::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 10px rgba(93,162,255,.8);
}
.status-copy{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}
.nav{display:grid;gap:10px;margin-top:14px}
.nav button{
  background:#0f1726;color:var(--text);
  text-align:left;border-radius:20px;padding:14px 16px;cursor:pointer;
  transition:.16s ease;
}
.nav button:hover{background:#122035;border-color:var(--line2)}
.nav button.active{background:linear-gradient(180deg, rgba(93,162,255,.12), rgba(93,162,255,.05));border-color:var(--line2)}
.nav strong{display:block;font-size:14px}
.nav span{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
.content{padding:20px}
.page{max-width:1560px}
.view.hidden{display:none}
.hero,.panel,.match-card,.stat-card{background:linear-gradient(180deg, var(--panel), var(--panel3));border-radius:28px}
.hero{
  padding:28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)),
    radial-gradient(500px 220px at 100% 0%, rgba(93,162,255,.08), transparent 70%),
    linear-gradient(180deg, var(--panel), var(--panel3));
}
.hero h1{
  margin:8px 0 0;
  font-size:52px;
  line-height:1.02;
  letter-spacing:-.05em;
}
.hero h1 span{color:var(--blue)}
.hero p{
  margin:14px 0 0;
  max-width:980px;
  color:var(--muted);
  font-size:15px;
  line-height:1.7;
}
.section-head{
  margin-top:22px;
  display:flex;justify-content:space-between;gap:16px;align-items:end;flex-wrap:wrap;
}
.section-head h2{
  margin:0;
  font-size:30px;
  letter-spacing:-.04em;
}
.section-head p{margin:6px 0 0;color:var(--muted);font-size:14px}
.league-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.league-card{
  background:linear-gradient(180deg, #0f1828, #0b1320);
  border-radius:24px;
  padding:18px;
  text-align:left;
  cursor:pointer;
  min-height:154px;
  transition:.16s ease;
}
.league-card:hover{transform:translateY(-3px);border-color:var(--line2);background:linear-gradient(180deg, #122035, #0e1726)}
.league-card small{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid var(--line2);
  background:#121b2d;
  color:#d7e5ff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.league-card strong{
  display:block;
  margin-top:28px;
  font-size:26px;
  letter-spacing:-.03em;
}
.league-card span{
  display:block;
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
}
.stats-grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.stat-card{padding:20px}
.stat-card label{
  display:block;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
}
.stat-number{
  margin-top:10px;
  font-size:42px;
  font-weight:900;
  letter-spacing:-.04em;
}
.toolbar{
  display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;
}
.ghost-btn,.primary-btn,.secondary-btn,.danger-btn{
  border:none;border-radius:16px;padding:13px 16px;font:inherit;font-weight:800;cursor:pointer;
}
.ghost-btn{background:#101928;color:var(--text);border:1px solid var(--line)}
.primary-btn{background:linear-gradient(180deg, var(--blue), var(--blue2));color:#eef6ff}
.secondary-btn{background:#162235;color:var(--text);border:1px solid var(--line2)}
.danger-btn{background:#2a161a;color:#ffd9df;border:1px solid rgba(180,77,94,.28)}
.compose-grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:16px;
}
.panel,.match-card{padding:20px}
.panel-head h3{
  margin:0;
  font-size:24px;
  letter-spacing:-.03em;
}
.panel-head p{
  margin:8px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
label{
  display:block;
  margin-bottom:8px;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
}
textarea,input,select{
  width:100%;
  border-radius:16px;
  border:1px solid var(--line);
  background:#09111c;
  color:var(--text);
  font:inherit;
  outline:none;
}
textarea{padding:14px;min-height:340px;resize:vertical}
input,select{padding:14px}
textarea:focus,input:focus,select:focus{border-color:var(--line2);box-shadow:0 0 0 4px rgba(93,162,255,.10)}
.notes{min-height:130px}
.fields{display:grid;gap:12px;margin-top:14px}
.fields-2{grid-template-columns:1fr 1fr}
.fields-3{grid-template-columns:1fr 1fr 1fr}
.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.board-panel{margin-top:16px}
.board-root,.matches-root{margin-top:14px}
.empty-box{
  padding:30px;
  border-radius:24px;
  text-align:center;
  color:var(--muted);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
}
.parse-errors{
  margin-top:14px;
  padding:14px 16px;
  border-radius:18px;
  background:#231f14;
  border:1px solid #403620;
  color:#ffe9b7;
}
.parse-errors.hidden{display:none}
.parse-errors ul{margin:10px 0 0;padding-left:18px}
.match-board{
  border:1px solid var(--line);
  border-radius:24px;
  padding:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
}
.match-header{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:16px;
  align-items:center;
  margin-bottom:16px;
}
.club{
  border-radius:20px;
  padding:16px;
  background:#0c1421;
}
.club-name{
  font-size:22px;
  font-weight:900;
  letter-spacing:-.03em;
}
.club-score{
  margin-top:6px;
  font-size:34px;
  font-weight:900;
  color:var(--blue);
}
.versus{
  font-size:14px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.2em;
  font-weight:800;
}
.teams-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.team-column{
  padding:10px;
  border-radius:22px;
  background:#0c1421;
}
.player-card{
  padding:16px;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  margin-bottom:12px;
}
.player-card:last-child{margin-bottom:0}
.player-top{
  display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;
}
.player-no{
  color:#cfe1ff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.player-name{
  margin-top:6px;
  font-size:22px;
  font-weight:900;
  letter-spacing:-.03em;
}
.player-meta{
  margin-top:6px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
.odds-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.badge-row,.filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;
  font-size:12px;font-weight:800;border:1px solid transparent;
}
.badge::before{content:"";width:7px;height:7px;border-radius:50%}
.badge.planned,.badge.canceled{background:#182131;border-color:#2c3a50;color:#dbe5f5}
.badge.planned::before,.badge.canceled::before{background:var(--gray)}
.badge.live{background:#231f14;border-color:#403620;color:#ffe9b7}
.badge.live::before{background:var(--yellow)}
.badge.finished,.badge.won{background:#13231d;border-color:#244437;color:#d8fff0}
.badge.finished::before,.badge.won::before{background:var(--green)}
.badge.lost{background:#26161a;border-color:#4b242d;color:#ffd9df}
.badge.lost::before{background:var(--red)}
.badge.returned{background:#231f14;border-color:#403620;color:#ffe9b7}
.badge.returned::before{background:var(--yellow)}
.line-chip{
  margin-top:12px;
  padding:12px 14px;
  border-radius:16px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  font-weight:800;
  border:1px solid transparent;
}
.line-chip.canceled{background:#182131;border-color:#2c3a50;color:#dbe5f5}
.line-chip.won{background:#13231d;border-color:#244437;color:#d8fff0}
.line-chip.lost{background:#26161a;border-color:#4b242d;color:#ffd9df}
.line-chip.returned{background:#231f14;border-color:#403620;color:#ffe9b7}
.match-top{
  display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;
}
.match-title{
  font-size:30px;
  font-weight:900;
  letter-spacing:-.04em;
}
.match-title span{color:var(--blue3)}
.match-sub{
  margin-top:8px;
  color:var(--muted);
  font-size:14px;
}
.match-score{
  font-size:40px;
  font-weight:900;
  letter-spacing:-.05em;
}
.pick-over{color:#d8fff0}
.pick-under{color:#ffe9b7}
.toast{
  position:fixed;right:18px;bottom:18px;max-width:360px;
  padding:14px 16px;border-radius:16px;
  background:#151f31;border:1px solid var(--line2);
  box-shadow:var(--shadow);display:none;z-index:9999;
}
@media (max-width:1500px){
  .league-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .odds-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1180px){
  .app{grid-template-columns:1fr}
  .sidebar{position:relative;height:auto}
  .compose-grid,.teams-columns,.stats-grid,.fields-2,.fields-3,.match-header{grid-template-columns:1fr}
  .hero h1{font-size:38px}
  .league-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .content{padding:14px}
  .league-grid,.stats-grid,.odds-grid,.teams-columns{grid-template-columns:1fr}
  .hero h1{font-size:32px}
}

.badge.prematch{background:#14233a;border-color:#2d4770;color:#d8e8ff}
.badge.prematch::before{background:var(--blue)}
.line-chip.prematch{background:#14233a;border-color:#2d4770;color:#d8e8ff}

.badge.finished{background:#13231d;border-color:#244437;color:#d8fff0}
.badge.finished::before{background:var(--green)}
.line-chip.finished{background:#13231d;border-color:#244437;color:#d8fff0}

.fields-4{grid-template-columns:1fr 1fr 1fr 1fr}
@media (max-width:1180px){.fields-4{grid-template-columns:1fr}}
