:root {
  --gold:#FFD700; --gold2:#FFA500; --red:#CE1126; --blue:#003DA5;
  --green:#006847; --dark:#04080F; --dark2:#0d1b2a; --dark3:#1a2a3a;
  --surface:#12233a; --surface2:#1c3350; --border:rgba(255,215,0,0.25);
  --text:#e8f0fe; --text2:#8faac8; --text3:rgba(255,255,255,0.4);
  --r32:#e67e22; --r16:#e74c3c; --qf:#9b59b6; --sf:#FFD700; --final:#FFD700;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--dark);color:var(--text);font-family:'Be Vietnam Pro',sans-serif;font-size:13px;line-height:1.4;}

/* PRINT / Wrapper */
.poster{width:100%;max-width:1240px;min-height:100vh;margin:0 auto;position:relative;
  background:radial-gradient(ellipse at 20% 10%,#1a3050 0%,var(--dark2) 50%,#0a1a2e 100%);
  padding:24px 20px;overflow:hidden;}

/* BG decoration */
.bg-deco{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden;}
.bg-deco svg{width:100%;height:100%;}

/* ======= HEADER ======= */
.header{position:relative;z-index:1;text-align:center;padding-bottom:12px;border-bottom:2px solid var(--border);}
.header-top{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:4px;}
.header h1{font-family:'Bebas Neue',sans-serif;font-size:56px;letter-spacing:5px;
  background:linear-gradient(135deg,#fff 0%,var(--gold) 50%,#fff 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;}
.header .year{font-family:'Bebas Neue',sans-serif;font-size:56px;color:var(--gold);letter-spacing:5px;}
.header .sub{font-size:11px;letter-spacing:3px;color:var(--text2);text-transform:uppercase;margin-bottom:6px;}
.host-badges{display:flex;justify-content:center;gap:16px;margin:6px 0;}
.hbadge{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.15);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600;}
.dates-pill{display:inline-block;background:rgba(255,215,0,0.12);border:1px solid var(--border);
  border-radius:20px;padding:4px 16px;font-size:11px;color:var(--gold);font-weight:600;letter-spacing:1px;}

/* ======= SECTION TITLE ======= */
.sec-title{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:12px;margin:24px 0 16px;}
.sec-badge{font-size:16px;font-weight:800;padding:6px 20px;border-radius:20px;letter-spacing:2px;white-space:nowrap;box-shadow:0 0 15px rgba(255,215,0,0.1);}
.badge-vb{background:rgba(74,144,226,0.2);color:#7eb8ff;border:1px solid rgba(74,144,226,0.4);}
.badge-r32{background:rgba(230,126,34,0.2);color:#f0a060;border:1px solid rgba(230,126,34,0.5);}
.badge-r16{background:rgba(231,76,60,0.2);color:#ff8080;border:1px solid rgba(231,76,60,0.5);}
.badge-qf{background:rgba(155,89,182,0.2);color:#c47eff;border:1px solid rgba(155,89,182,0.5);}
.badge-sf{background:rgba(0,210,211,0.2);color:#00d2d3;border:1px solid rgba(0,210,211,0.5);}
.badge-final{background:rgba(255,215,0,0.3);color:var(--gold);border:1.5px solid var(--gold);}
.sec-line{display:none;}
.sec-info{font-size:10px;color:var(--text3);white-space:nowrap;}

/* ======= GROUPS GRID ======= */
.groups-wrap{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;}
.gcard{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:8px;padding:8px 10px;}
.gcard.host{border-color:rgba(255,215,0,0.45);background:rgba(255,215,0,0.07);}
.glabel{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:1px;margin-bottom:4px;}
.gteam{font-size:13px;color:var(--text);padding:3px 0;display:flex;align-items:center;gap:6px;}
.gteam.host-t{color:var(--gold);font-weight:600;}
.gteam.advance{color:#4ade80;font-weight:600;}
.gdot{width:6px;height:6px;border-radius:50%;background:#4a90e2;flex-shrink:0;}
.gdot.h{background:var(--gold);}
.gdot.advance{background:#4ade80;}

/* ======= SCHEDULE ======= */
.date-navigator {
  position:relative;z-index:1;
  display: flex; justify-content: center; align-items: center; gap: 16px; margin: 16px 0;
}
.nav-btn {
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2);
  color: #fff; padding: 6px 16px; border-radius: 6px; cursor: pointer; font-size: 14px;
  transition: all 0.2s;
}
.nav-btn:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,215,0,0.5); }
.nav-date { font-size: 18px; font-weight: 700; color: var(--gold); min-width: 120px; text-align: center; }

.schedule{position:relative;z-index:1;}
.day-block{margin-bottom:12px;text-align:center;}
.day-label{font-size:11px;font-weight:600;color:#7eb8ff;background:rgba(74,144,226,0.12);
  border-radius:4px;display:inline-block;padding:3px 10px;margin-bottom:4px;}
.matches-grid{display:grid;gap:6px;}

/* Default responsive grid for matches */
.matches-grid { grid-template-columns: repeat(2, 1fr); }
.matches-grid.g1 { grid-template-columns: 1fr; }
.matches-grid.g2 { grid-template-columns: repeat(2, 1fr); }
.matches-grid.g3 { grid-template-columns: repeat(3, 1fr); }
.matches-grid.g4 { grid-template-columns: repeat(4, 1fr); }

/* MATCH CARD */
.mcard{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);
  border-radius:6px;padding:8px 10px;cursor:pointer;transition:all .2s;
  display:flex;flex-direction:column;gap:3px;position:relative;}
.mcard:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.3);transform:translateY(-1px);}
.mcard.r32-c{border-color:rgba(230,126,34,0.3);background:rgba(230,126,34,0.05);}
.mcard.r32-c:hover{background:rgba(230,126,34,0.1);}
.mcard.r16-c{border-color:rgba(231,76,60,0.3);background:rgba(231,76,60,0.05);}
.mcard.qf-c{border-color:rgba(155,89,182,0.35);background:rgba(155,89,182,0.07);}
.mcard.sf-c{border-color:rgba(0,210,211,0.4);background:rgba(0,210,211,0.08);}
.mcard.sf-c:hover{background:rgba(0,210,211,0.12);}
.mcard.final-c{border:1.5px solid var(--gold);background:rgba(255,215,0,0.12);}
.mcard.done{border-color:rgba(100,220,100,0.4);background:rgba(50,150,50,0.08);}

.mtime{font-size:10px;color:#7eb8ff;font-weight:600;text-align:center;}
.mgroup{font-size:10px;color:var(--text2);margin-bottom:2px;text-align:center;}

.m-main { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.m-team { flex: 1; font-size: 14px; font-weight: 700; color: #fff; line-height: 1.2; }
.m-team:first-child { text-align: right; }
.m-team:last-child { text-align: left; }

.m-score-box {
  background: var(--gold); color: #000;
  padding: 4px 12px; border-radius: 4px;
  font-weight: 800; font-size: 12px;
  min-width: 70px; text-align: center;
  box-shadow: 0 2px 8px rgba(255,215,0,0.3);
  white-space: nowrap;
}
.m-vs { font-size: 12px; color: var(--text3); font-weight: 800; min-width: 60px; text-align: center; }

.mnote{font-size:10px;color:rgba(255,200,80,0.65);border-top:1px dashed rgba(255,200,80,0.2);
  padding-top:4px;margin-top:2px;font-style:italic;text-align:center;}
.mextra-info{font-size:10px;font-weight:700;color:#4ade80;margin-top:2px;text-align:center;}

/* SCORE MODAL */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:1000;
  align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal{background:var(--dark3);border:1px solid var(--border);border-radius:12px;
  padding:24px;width:380px;max-width:95vw;box-shadow:0 10px 30px rgba(0,0,0,0.5);}
.modal h3{font-size:18px;font-weight:700;color:var(--gold);margin-bottom:6px;}
.modal .match-label{font-size:13px;color:var(--text);margin-bottom:16px;line-height:1.5;}

.score-grid {
  display: grid;
  grid-template-columns: 1fr 20px 1fr;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
}
.score-header { font-size: 12px; color: var(--text2); text-align: center; grid-column: 1 / -1; margin-bottom: -4px; }
.team-name { font-size: 15px; font-weight: 600; text-align: center; color: var(--text); padding-bottom: 4px; }
.score-input{width:64px;height:48px;font-size:24px;font-weight:700;text-align:center;
  background:rgba(255,255,255,0.08);border:1.5px solid var(--border);border-radius:8px;
  color:var(--gold);outline:none;font-family:'Be Vietnam Pro',sans-serif; justify-self: center;}
.score-input:focus{border-color:var(--gold);background:rgba(255,215,0,0.08);}
.score-dash{font-size:24px;font-weight:700;color:var(--text2); text-align: center;}

/* Extra time and Penalties */
.et-row, .pen-row {
  display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px;
  padding: 12px; border-radius: 8px;
}
.et-row { background: rgba(155,89,182,0.08); border: 1px solid rgba(155,89,182,0.3); }
.pen-row { background: rgba(255,165,0,0.08); border: 1px solid rgba(255,165,0,0.3); }
.row-label { font-size: 12px; font-weight: 600; text-align: center; }
.et-row .row-label { color: #c47eff; }
.pen-row .row-label { color: #ffa040; }
.inputs-wrap { display: flex; align-items: center; justify-content: center; gap: 12px; }

.small-input { width: 52px; height: 40px; font-size: 18px; font-weight: 700; text-align: center;
  background: rgba(255,255,255,0.06); border-radius: 6px; outline: none; font-family: inherit; }
.et-row .small-input { border: 1px solid rgba(155,89,182,0.4); color: #c47eff; }
.pen-row .small-input { border: 1px solid rgba(255,165,0,0.4); color: #ffa040; }
.small-dash { font-size: 18px; font-weight: 700; }
.et-row .small-dash { color: #c47eff; }
.pen-row .small-dash { color: #ffa040; }

.hidden { display: none !important; }

.modal-btns{display:flex;gap:8px;margin-top:16px;}
.btn-save{flex:1;background:var(--gold);color:#000;border:none;border-radius:8px;
  padding:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;}
.btn-save:hover{background:#ffe040;}
.btn-cancel{flex:1;background:rgba(255,255,255,0.08);color:var(--text);border:1px solid rgba(255,255,255,0.2);
  border-radius:8px;padding:12px;font-size:14px;cursor:pointer;font-family:inherit;}
.btn-cancel:hover{background:rgba(255,255,255,0.14);}
.btn-clear{width:100%;background:rgba(231,76,60,0.15);color:#ff8080;border:1px solid rgba(231,76,60,0.4);
  border-radius:8px;padding:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:8px;}
.btn-clear:hover{background:rgba(231,76,60,0.25);}

/* Hide spin buttons */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
input[type=number] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* CHAMPION */
.champion-wrap{position:relative;z-index:1;text-align:center;margin-top:20px;}
.champion-box{display:inline-block;border:2.5px solid var(--gold);border-radius:14px;
  padding:16px 60px;background:rgba(255,215,0,0.07);position:relative;}
.champion-title{font-size:13px;color:var(--gold);font-weight:700;letter-spacing:2px;margin-bottom:8px;}
.champion-team{font-family:'Bebas Neue',sans-serif;font-size:36px;color:var(--gold);
  min-width:280px;min-height:42px;display:flex;align-items:center;justify-content:center;
  border-bottom:2px solid rgba(255,215,0,0.5);padding-bottom:4px;letter-spacing:1px;}
.champion-team.empty{opacity:0.3;font-size:20px;}

/* LEGEND */
.legend{position:relative;z-index:1;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
  margin:10px 0;font-size:11px;}
.leg-item{display:flex;align-items:center;gap:6px;color:var(--text2);}
.leg-dot{width:10px;height:10px;border-radius:3px;}

/* DIVIDER */
.div{height:1px;background:linear-gradient(90deg,transparent,rgba(255,215,0,0.2),transparent);
  margin:10px 0;position:relative;z-index:1;}

/* Responsive Media Queries */
@media (min-width: 1024px) {
  /* Keep 2 columns as primary, but g4/g3 can exist */
}

@media (max-width: 768px) {
  .header h1 { font-size: 42px; }
  .header .year { font-size: 42px; }
  .groups-wrap { grid-template-columns: repeat(2, 1fr); }
  .matches-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 480px) {
  .header h1 { font-size: 32px; }
  .header .year { font-size: 32px; }
  .groups-wrap { grid-template-columns: 1fr; }
  .champion-box { padding: 14px 20px; }
  .champion-team { font-size: 28px; }
}

