:root {
  color-scheme: light;
  --navy:#17345f;
  --navy2:#0f2748;
  --teal:#237e7a;
  --green:#2c6b4f;
  --red:#a94b4b;
  --gold:#b48930;
  --ink:#17202b;
  --muted:#657080;
  --line:#d7dde5;
  --panel:#ffffff;
  --bg:#f3f6f9;
  --birdie:#e9f6ee;
  --selected:#e8eef8;
}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}
button{font:inherit;touch-action:manipulation}
.app-shell{max-width:820px;margin:0 auto;padding:0 14px 36px}
.topbar{margin:0 -14px 14px;padding:18px 18px 16px;background:linear-gradient(135deg,var(--navy2),var(--navy));color:#fff;display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
.eyebrow{font-size:.73rem;letter-spacing:.14em;font-weight:800;opacity:.75}
h1{font-size:1.28rem;margin:3px 0 2px;line-height:1.2}
.topbar p{margin:0;font-size:.9rem;opacity:.78}
.save-indicator{font-size:.78rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:6px 9px;white-space:nowrap}
.hole-nav{display:grid;grid-template-columns:54px 1fr 54px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:0 2px 8px rgba(16,36,64,.06)}
.nav-btn{height:48px;border:0;border-radius:12px;background:var(--navy);color:white;font-size:2rem;line-height:1;cursor:pointer}
.nav-btn:disabled{opacity:.35}
.hole-center{text-align:center;display:flex;align-items:baseline;justify-content:center;gap:9px;min-width:0}
.hole-center strong{font-size:2rem;color:var(--navy)}
.hole-label{font-size:.72rem;font-weight:800;color:var(--muted);letter-spacing:.13em}
#holePar{font-weight:700;color:var(--muted)}
.players{display:grid;gap:10px;margin-top:12px}
.player-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px}
.player-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.player-name{font-size:1.05rem;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-stats{font-size:.79rem;color:var(--muted);white-space:nowrap}
.player-stats strong{color:var(--ink)}
.score-buttons{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.score-btn{min-height:46px;border-radius:11px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:800;font-size:1.04rem;cursor:pointer}
.score-btn.selected{background:var(--navy);border-color:var(--navy);color:#fff}
.score-btn.birdie:not(.selected){background:var(--birdie);border-color:#abd6bc;color:var(--green)}
.score-btn.eagle:not(.selected){background:#fff2cf;border-color:#e0c06d;color:#785918}
.score-btn.bogey:not(.selected){color:var(--red)}
.scorecard-wrap{margin-top:16px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
h2{font-size:1rem;margin:0;color:var(--navy)}
.secondary-btn{border:1px solid var(--line);background:white;color:var(--navy);font-weight:700;border-radius:9px;padding:8px 10px;cursor:pointer}
.scorecard{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px}
.hole-chip{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 2px;text-align:center;cursor:pointer;min-width:0}
.hole-chip.active{outline:2px solid var(--navy);background:var(--selected)}
.hole-chip .n{display:block;font-size:.68rem;color:var(--muted);font-weight:800}
.hole-chip .s{display:block;font-size:.86rem;font-weight:900;color:var(--navy);min-height:1em}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.summary-card{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:10px;text-align:center}
.summary-card span{display:block;color:var(--muted);font-size:.72rem;font-weight:700}
.summary-card strong{display:block;margin-top:3px;font-size:1.15rem;color:var(--navy)}
.server-note{font-size:.78rem;color:var(--muted);text-align:center;line-height:1.4;margin:14px 10px 0}
@media (min-width:700px){
  .players{grid-template-columns:1fr 1fr}
  .scorecard{grid-template-columns:repeat(18,minmax(0,1fr))}
}
@media (max-width:420px){
  .score-buttons{grid-template-columns:repeat(4,1fr)}
  .summary{grid-template-columns:repeat(2,1fr)}
  .topbar{align-items:center}
  h1{font-size:1.08rem}
}

.setup-panel{margin-top:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px}
.setup-note{margin:3px 0 0;color:var(--muted);font-size:.78rem}
.setup-form{display:none;gap:9px;margin-top:10px}
.setup-form.open{display:grid;grid-template-columns:1fr 1fr}
.setup-form label{font-size:.75rem;font-weight:800;color:var(--muted)}
.setup-form input{display:block;width:100%;margin-top:4px;padding:11px;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:#fff}
.save-players-btn{grid-column:1/-1;border:0;border-radius:11px;padding:12px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer}
.setup-message{grid-column:1/-1;text-align:center;font-size:.8rem;color:var(--muted);min-height:1.2em}
@media (max-width:420px){.setup-form.open{grid-template-columns:1fr}}
