:root {
  --bg: #0c1116;
  --card: #111827;
  --muted: #96a1b2;
  --text: #e6edf3;
  --accent: #4f9cf9;
  --danger: #ef4444;
  --border: #1f2937;
}

* { box-sizing: border-box; }
html, body { margin:0; padding:0; background: var(--bg); color: var(--text); font-family: system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, sans-serif; }

header { display:flex; justify-content:space-between; align-items:center; padding: 16px 20px; border-bottom:1px solid var(--border); position: sticky; top:0; background: rgba(12,17,22,.8); backdrop-filter: blur(6px); }
h1 { font-size: 20px; margin:0; }
.header-actions { display:flex; gap:8px; align-items:center; flex-wrap: wrap; }
button, .file-label { background: var(--card); color: var(--text); border:1px solid var(--border); padding:8px 12px; border-radius:10px; cursor:pointer; }
button:hover, .file-label:hover { border-color: var(--accent); }
button.danger { background:#211416; border-color:#3b1e22; color:#ffb4b4; }
.file-label input { display:none; }

.grid { max-width:1100px; margin: 20px auto; display:grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 0 16px; }
.card { background: var(--card); border:1px solid var(--border); border-radius: 16px; padding: 16px; }
.card.wide { grid-column: 1 / -1; }

.points-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; margin-top: 10px; }
.points-grid label { display:flex; gap:8px; align-items:center; justify-content:space-between; background:#0e1623; padding:8px 10px; border:1px solid var(--border); border-radius:12px; }
.points-grid input { width: 80px; }

.row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.row input[type="text"] { flex:1; background:#0e1623; border:1px solid var(--border); padding:8px; border-radius:10px; color: var(--text); }

.event { margin: 12px 0; background:#0e1623; border:1px solid var(--border); border-radius:12px; padding:10px; }
.event-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.placements { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; }
.placements select { width:100%; background:#0d1521; color:var(--text); border:1px solid var(--border); border-radius:10px; padding:8px; }

.lb-row { display:grid; grid-template-columns: 1fr 80px; gap:12px; align-items:center; padding:10px 12px; border-bottom:1px dashed #243044; }
.lb-row .score { text-align:right; font-weight:700; }

.muted { color: var(--muted); }

/* Toggle switch */
.toggle input[type="checkbox"] {
  appearance: none;
  width: 42px;
  height: 24px;
  border-radius: 999px;
  position: relative;
  outline: none;
  cursor: pointer;
  background: rgba(127, 127, 127, 0.35);
  transition: background 0.2s ease;
  vertical-align: middle;
}
.toggle input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: white;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
  transition: transform 0.2s ease;
}
.toggle input[type="checkbox"]:checked {
  background: rgba(40, 160, 80, 0.9);
}
.toggle input[type="checkbox"]:checked::after {
  transform: translateX(18px);
}
.toggle .muted {
  font-size: 0.9rem;
  opacity: 0.75;
}

/* 🔹 Smash panel */
.smash-wins-grid {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:10px;
  margin-top: 10px;
}
.smash-wins-grid .wins-item {
  background:#0e1623;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.smash-wins-grid input[type="number"] {
  width:100%;
  background:#0d1521;
  color:var(--text);
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px;
}
.smash-placements h3 { margin:14px 0 8px; }

/* ---- Teams UI ---- */
.event-toggles { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }

.team-grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
  margin-top:10px;
}
.team-card {
  background:#0e1623;
  border:1px solid var(--border, #1f2937);
  border-radius:12px;
  padding:10px;
}
.team-card-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.team-card input[type="text"] {
  width:100%;
  background:#0d1521;
  border:1px solid var(--border, #1f2937);
  color:var(--text, #e6edf3);
  border-radius:10px;
  padding:8px;
}
.team-members {
  display:grid;
  grid-template-columns: 1fr;
  gap:6px;
  max-height: 180px;
  overflow:auto;
}
.member-row {
  display:flex; align-items:center; gap:8px;
  padding:6px 8px; background:#0b1320; border:1px solid #1b2639; border-radius:8px;
}
.team-winner {
  display:flex; gap:16px; align-items:center; margin-top:12px;
}
.team-winner .small { font-size: 0.85rem; opacity: .85; }
