/* Golf Challenge - design sobre & moderne, mobile-first */
:root{
  --bg:#f0f4fb;
  --surface:#ffffff;
  --text:#1a1a2e;
  --muted:#6b7490;
  --primary:#1e2d7d;
  --primary-2:#2a5298;
  --accent:#4a86c8;
  --danger:#b3261e;
  --border:#d0daea;
  --radius:14px;
  --shadow:0 2px 12px rgba(30,45,125,.08);
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  font-size:16px;
  line-height:1.45;
}
a{color:var(--primary-2);text-decoration:none}
a:hover{text-decoration:underline}

.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;
  background:linear-gradient(135deg,#1e2d7d 0%,#2a5298 60%,#3b6db8 100%);
  color:#fff;position:sticky;top:0;z-index:10;
  box-shadow:0 2px 8px rgba(30,45,125,.3);
}
.topbar .brand{
  display:flex;align-items:center;gap:10px;color:#fff;
  font-weight:700;font-size:16px;letter-spacing:.2px;text-decoration:none;
}
.topbar .brand img{height:40px;width:auto;object-fit:contain}
.topbar nav a{color:#fff;margin-left:14px;opacity:.85;font-size:14px}
.topbar nav a:hover{opacity:1}

.container{
  max-width:760px;margin:0 auto;padding:16px;
}
.card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;margin-bottom:16px;
  box-shadow:var(--shadow);
}
.form-card{max-width:420px;margin:24px auto}
h1{margin:.2em 0 .6em;font-size:22px;font-weight:600;color:var(--primary)}
.muted{color:var(--muted)}
.small{font-size:13px}
.alert{background:#fdecea;color:var(--danger);padding:10px 12px;border-radius:8px;margin-bottom:10px;font-size:14px}
.hint{font-size:14px;color:var(--muted)}

.day-switch{display:flex;gap:6px;margin:8px 0 16px;flex-wrap:wrap}
.day-switch a{
  flex:1;text-align:center;padding:10px 12px;border:1px solid var(--border);
  border-radius:10px;background:#f5f8ff;color:var(--text);font-size:14px;
}
.day-switch a.active{background:var(--primary);color:#fff;border-color:var(--primary)}

.code-input{
  width:100%;padding:18px;font-size:42px;text-align:center;letter-spacing:18px;
  border:2px solid var(--border);border-radius:12px;background:#f5f8ff;
  font-variant-numeric:tabular-nums;margin-bottom:14px;
}
.code-input:focus{outline:none;border-color:var(--primary)}

.btn{
  display:inline-block;padding:12px 18px;border-radius:10px;border:none;
  font-size:16px;font-weight:600;cursor:pointer;text-align:center;
}
.btn-primary{background:var(--primary);color:#fff;width:100%}
.btn-primary:hover{background:var(--primary-2)}
.btn-ghost{background:transparent;color:var(--primary);border:1px solid var(--border)}

.score-card{padding:14px}
.score-head h1{margin-bottom:2px;font-size:20px}
.score-head p{margin:2px 0}

.totals{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
  margin:10px 0 14px;
}
.totals>div{
  background:var(--primary);color:#fff;border-radius:10px;padding:10px;text-align:center;
}
.totals span{display:block;font-size:11px;opacity:.85;text-transform:uppercase;letter-spacing:.5px}
.totals strong{font-size:22px;font-variant-numeric:tabular-nums}

table.scoreboard{
  width:100%;border-collapse:separate;border-spacing:0;font-size:15px;
  font-variant-numeric:tabular-nums;
}
table.scoreboard th, table.scoreboard td{
  padding:8px 6px;border-bottom:1px solid var(--border);text-align:center;
}
table.scoreboard th{font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
table.scoreboard td.hole{font-weight:700;color:var(--primary)}
table.scoreboard tr.subtotal td{background:#f5f8ff;font-weight:600}
table.scoreboard tr.total td{background:var(--primary);color:#fff;font-weight:700;font-size:16px}
table.scoreboard tr.total td:first-child{border-bottom-left-radius:10px}
table.scoreboard tr.total td:last-child{border-bottom-right-radius:10px}

.stepper{display:flex;align-items:center;justify-content:center;gap:6px}
.stepper button{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--border);
  background:#fff;font-size:20px;line-height:1;cursor:pointer;color:var(--primary);
  font-weight:600;
}
.stepper button:active{background:var(--primary);color:#fff}
.stepper input.strokes{
  width:54px;height:36px;text-align:center;font-size:18px;font-weight:600;
  border:1.5px solid var(--border);border-radius:8px;background:#f5f8ff;
  -moz-appearance:textfield;
}
.stepper input.strokes::-webkit-outer-spin-button,
.stepper input.strokes::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.save-status{
  position:fixed;bottom:16px;left:50%;transform:translate(-50%,30px);
  background:var(--primary);color:#fff;padding:10px 16px;border-radius:24px;
  font-size:14px;opacity:0;transition:all .25s;pointer-events:none;
}
.save-status.show{opacity:1;transform:translate(-50%,0)}
.save-status.error{background:var(--danger)}

.footer-actions{display:flex;gap:8px;margin-top:14px;justify-content:space-between}

table.leaderboard{
  width:100%;border-collapse:separate;border-spacing:0;font-size:15px;
}
table.leaderboard th, table.leaderboard td{
  padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;
}
table.leaderboard th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
table.leaderboard .num{text-align:right;font-variant-numeric:tabular-nums}
table.leaderboard .rank{font-weight:700;color:var(--primary);width:28px}
table.leaderboard .strong{font-weight:700;font-size:16px}
.lb-name{font-weight:600}
.lb-sub{font-size:12px;color:var(--muted)}

.footer{padding:24px;text-align:center;color:var(--muted)}

/* Admin */
.admin-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.admin-nav a{
  padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:8px;
  font-size:14px;color:var(--text);
}
.admin-nav a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.table-admin{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
.table-admin th,.table-admin td{padding:8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
.table-admin input[type=text],.table-admin input[type=number],.table-admin select{
  width:100%;padding:6px;border:1px solid var(--border);border-radius:6px;font-size:14px;
}
.row-actions{display:flex;gap:6px}

@media (max-width:480px){
  .container{padding:10px}
  .card{padding:14px}
  table.scoreboard td, table.scoreboard th{padding:6px 2px;font-size:14px}
  .stepper input.strokes{width:48px}
  .stepper button{width:34px;height:34px}
  table.leaderboard td, table.leaderboard th{padding:8px 4px;font-size:14px}
}

/* ── Departure page ─────────────────────────────────── */
.depart-intro{font-style:italic;color:var(--muted)}
.depart-group{margin-bottom:16px}
.depart-header{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border);
}
.depart-tee{
  background:var(--primary);color:#fff;
  border-radius:8px;padding:3px 10px;font-size:13px;font-weight:700;
}
.depart-time{
  font-size:22px;font-weight:700;color:var(--primary);letter-spacing:.5px;
}
.depart-tbd{font-size:16px;color:var(--muted)}
.depart-grpnum{font-size:13px;color:var(--muted);margin-left:auto}
.depart-team{margin-bottom:10px}
.depart-team-header{
  display:flex;align-items:center;gap:8px;margin-bottom:6px;
}
.depart-team-code{
  background:var(--accent);color:#fff;border-radius:6px;
  padding:2px 8px;font-size:13px;font-weight:700;letter-spacing:1px;
}
.depart-team-nom{font-weight:600;font-size:14px;color:var(--text)}
.depart-player{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:5px 0;border-bottom:1px dashed var(--border);
}
.depart-player:last-child{border-bottom:none}
.tee-dot{
  width:12px;height:12px;border-radius:50%;flex-shrink:0;
}
.tee-dot.yellow{background:#e6c300;border:1px solid #b8960a}
.tee-dot.red   {background:#d93025;border:1px solid #9e2219}
.player-name{font-weight:600;font-size:14px;min-width:130px}
.player-club{font-size:12px;color:var(--muted);flex:1}
.player-code{font-size:13px;color:var(--primary)}
.player-idx{font-size:12px;color:var(--muted);white-space:nowrap}
@media(max-width:480px){
  .player-club{display:none}
  .depart-time{font-size:18px}
}


/* ── Print / PDF ────────────────────────────────────── */
.print-only{display:none}
@media print {
  .topbar, .day-switch, .no-print, footer { display:none !important }
  body{background:#fff;color:#000;font-size:12pt}
  .container{max-width:none;padding:0}
  .card{box-shadow:none;border:none;padding:0;margin:0 0 10px}
  .print-only{display:block;margin-bottom:10px}
  .print-only h2{margin:0;font-size:16pt;color:#1e2d7d}
  .print-only p{margin:2px 0;font-size:10pt;color:#444}
  table.leaderboard{font-size:10pt;width:100%}
  table.leaderboard th{background:#1e2d7d !important;color:#fff !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{size:A4 portrait;margin:14mm}
}

/* Leaderboard : Brut / Net / Stableford empiles verticalement */
.lb-grid{display:grid;grid-template-columns:1fr;gap:24px;margin-top:8px}
.lb-grid-3{grid-template-columns:1fr}
.lb-grid .lb-block h2{margin:0 0 8px;font-size:18px}
.lb-grid .lb-block + .lb-block{padding-top:8px;border-top:1px solid var(--border, #e5e7eb)}
@media print{ .lb-grid, .lb-grid-3{grid-template-columns:1fr;gap:14px} .lb-grid h2{font-size:14px} }

/* Hole picked up (saisie X) */
table.scoreboard tr.pickup input.strokes{color:#a35a00;font-weight:700;text-transform:uppercase}
table.scoreboard tr.pickup{background:#fff7e6}
table.scoreboard .pickup-eq{color:#a35a00}


/* Bouton X (balle ramassee) dans le stepper de saisie joueur */
.stepper .pickup-btn{margin-left:6px;min-width:34px;padding:6px 10px;border:1px solid #d39e00;background:#fff7e6;color:#a35a00;border-radius:6px;font-weight:700;cursor:pointer}
.stepper .pickup-btn:hover{background:#ffe8b3}
.stepper .pickup-btn:active{transform:translateY(1px)}
tr.pickup .pickup-btn{background:#ffd24d;border-color:#a35a00}
