:root{
  --preds-red:#d0181f;
  --preds-black:#111111;
  --preds-white:#ffffff;
}
*{box-sizing:border-box}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial;
     margin:0;background:#f7f7f7;color:#222}
header{background:var(--preds-black);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:12px}
header img{height:52px}
header h1{font-size:1.4rem;margin:0}
nav a{color:#fff;margin-right:12px;text-decoration:none;font-weight:600}
.container{max-width:1100px;margin:24px auto;padding:0 16px}
.card{background:#fff;border-radius:14px;box-shadow:0 10px 25px rgba(0,0,0,.08);padding:16px;margin-bottom:18px}
.btn{display:inline-block;background:var(--preds-red);color:#fff;padding:8px 12px;border-radius:10px;text-decoration:none;border:none;cursor:pointer;font-weight:600}
.btn.secondary{background:#444}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #eee;text-align:left}
.badge{padding:4px 8px;border-radius:999px;background:var(--preds-red);color:#fff;font-size:.8rem}
.countdown{font-size:1.2rem;font-weight:700}
footer{padding:24px;text-align:center;color:#666}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
input,select,textarea{padding:8px;border:1px solid #ddd;border-radius:10px}
label{font-size:.85rem;color:#444;margin-bottom:4px;display:block}
h2.section{border-left:6px solid var(--preds-red);padding-left:10px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.stat-box{background:#fff;border-radius:14px;padding:16px;text-align:center;border:2px solid var(--preds-black)}
.stat-box h3{margin:0;font-size:1rem;color:#666}
.stat-box .n{font-size:2rem;margin-top:6px;color:var(--preds-red);font-weight:900}
.alert{background:#ffe9ea;border:1px solid #ffb4b8;padding:10px;border-radius:10px}
.login{max-width:420px;margin:60px auto}

.player-photo{width:160px;height:160px;object-fit:cover;border-radius:12px;border:2px solid #111;margin-right:12px}
.flex{display:flex;gap:16px;align-items:flex-start}
/* Opponent logo thumbnails */
.opp-logo{width:32px;height:32px;object-fit:contain;border-radius:6px;border:1px solid #ddd;background:#fff;vertical-align:middle;margin-right:8px}
@media (min-width:640px){ .opp-logo{width:40px;height:40px} }
/* --- Game Tiles --- */
.game-list{display:grid;gap:10px}
.game-tile{display:grid;grid-template-columns:48px 1fr auto 1fr 48px;align-items:center;gap:10px;padding:10px 12px;border:1px solid #ececec;border-radius:10px;background:#fff}
.game-tile .team{display:flex;align-items:center;gap:8px;min-width:0}
.game-tile .team .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.game-tile .logo{width:48px;height:48px;border-radius:8px;border:1px solid #e6e6e6;background:#fff;object-fit:contain}
.game-tile .meta{font-size:.9rem;color:#666}
.game-tile .score{font-weight:700;font-size:1.2rem;text-align:center;min-width:72px}
.game-tile .pill{font-size:.75rem;border:1px solid #ddd;border-radius:999px;padding:2px 8px;color:#555;background:#fafafa}
@media (max-width:640px){
  .game-tile{grid-template-columns:36px 1fr auto 1fr 36px}
  .game-tile .logo{width:36px;height:36px}
}
/* Improve team-name readability on mobile */
@media (max-width:640px){
  .game-tile{grid-template-columns:32px 1fr auto 1fr 32px}
  .game-tile .logo{width:32px;height:32px}
  .game-tile .team{gap:6px}
  .game-tile .team .name{
    white-space:normal;           /* allow wrapping */
    line-height:1.15;
  }
  .game-tile .score{min-width:auto;padding:0 6px}
  .game-tile .meta-line{font-size:.85rem}
}

/* Generic responsive table wrapper */
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
.table-wrap .table{width:100%; border-collapse:collapse}

/* Numeric columns tidy on small screens */
@media (max-width:640px){
  .table td, .table th{padding:8px 6px}
  .td-num{text-align:center; white-space:nowrap}
}
/* === Full-bleed hero that lives inside .container === */
.hero-banner{
  position: relative;
  /* Make it span the full viewport width even inside .container */
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;

  /* Visuals */
  height: 360px;               /* adjust if you want it taller/shorter */
  overflow: hidden;
  margin-top: -24px;           /* cancels the container's top margin so it touches the header */
  margin-bottom: 24px;         /* nice breathing room before “Next Game” */
  border: 0;
}

.hero-banner .hero-img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  filter: brightness(68%);     /* darken for text readability */
}

.hero-banner .hero-text{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  color: #fff;
  text-shadow: 3px 3px 10px rgba(0,0,0,.8);
  padding: 0 12px;
}

.hero-banner .hero-text h1{
  font-size: clamp(1.4rem, 4.2vw, 2.6rem);
  font-weight: 800;
  letter-spacing: .5px;
  margin: 0;
}

/* Mobile height tweaks so it stays punchy without pushing content down */
@media (max-width: 820px){ .hero-banner{ height: 250px } }
@media (max-width: 480px){ .hero-banner{ height: 200px } }