
:root{
  --card:rgba(17,24,39,.94);
  --card2:rgba(31,41,55,.82);
  --text:#f8fafc;
  --muted:#cbd5e1;
  --border:rgba(255,255,255,.12);
  --accent:#22c55e;
  --accentText:#052e16;
  --shadow:0 12px 32px rgba(0,0,0,.35);
  --team:#38bdf8;
  --solo:#f59e0b;
  --soloBg:rgba(245,158,11,.10);
  --soloBorder:rgba(245,158,11,.26);
  --teamBg:rgba(56,189,248,.10);
  --teamBorder:rgba(56,189,248,.22);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:linear-gradient(180deg,#0b1222 0%,#111827 100%);
  color:var(--text);
}
.app{
  width:min(920px,100%);
  margin:0 auto;
  padding:max(16px, env(safe-area-inset-top)) 14px max(28px, env(safe-area-inset-bottom));
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:16px;
  margin-bottom:14px;
}
.hidden{display:none!important}
h1,h2,h3,h4,p{margin:0}
.hero p,.hint,.welcome-copy{color:var(--muted)}
.welcome-copy{line-height:1.45;margin-top:10px;font-size:14px}
.mt-12{margin-top:12px}
.team-solo-grid{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:12px;
  margin-top:14px;
}
.team-box,.solo-box,.select-box,.bonus-box,.stake-box{
  background:var(--card2);
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px;
}
.team-head,.solo-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.pill{
  display:inline-block;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}
.pill.team{background:rgba(56,189,248,.18); color:#bae6fd;}
.pill.solo{background:rgba(245,158,11,.18); color:#fde68a;}
.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.field{margin-top:12px}
.field.tight{margin-top:0}
.field label{display:block;font-weight:700;margin-bottom:6px}
input,select{
  width:100%;
  border-radius:12px;
  border:1px solid var(--border);
  background:#0f172a;
  color:var(--text);
  padding:12px 14px;
  font-size:16px;
  min-height:48px;
}
.select-box{margin-top:14px}
.select-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
}
.points-area{
  display:grid;
  grid-template-columns:1.2fr .9fr;
  gap:12px;
  margin-top:14px;
  align-items:start;
}
.points-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.points-mini-card{
  background:#0f172a;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
}
.points-mini-card label{
  display:block;
  font-size:13px;
  font-weight:700;
  margin-bottom:6px;
}
.action-row{display:flex;gap:10px;flex-wrap:wrap}
.primary-action,.secondary{
  border-radius:14px;
  padding:14px 18px;
  font-size:18px;
  font-weight:800;
  border:0;
  cursor:pointer;
}
.primary-action{background:var(--accent);color:var(--accentText);flex:1}
.secondary{background:#334155;color:#f8fafc}
.sticky-score{
  position:sticky;
  top:max(8px, env(safe-area-inset-top));
  z-index:10;
  backdrop-filter:blur(10px);
}
.sticky-score .label{display:block;color:var(--muted);font-size:13px;margin-bottom:4px}
.sticky-score .main{display:block;font-size:18px;font-weight:800;line-height:1.3}
.sticky-score .small{display:block;color:var(--muted);font-size:13px;margin-top:4px}
.hole-line{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
  margin-bottom:12px;
}
.hole-line .big{font-size:22px;font-weight:800}
.hole-line .meta{color:var(--muted);font-size:14px}
.entry-one-row{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
  margin-top:12px;
}
.compact-player{
  background:var(--card2);
  border:1px solid var(--border);
  border-radius:12px;
  padding:8px;
  min-width:0;
}
.compact-player.solo{
  background:var(--soloBg);
  border-color:var(--soloBorder);
  box-shadow:inset 0 0 0 1px rgba(245,158,11,.08);
}
.compact-player h4{
  font-size:13px;
  margin-bottom:6px;
  line-height:1.2;
}
.tagline{
  font-size:11px;
  color:var(--muted);
  margin-bottom:4px;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.compact-player.solo .tagline{color:#fde68a}
.compact-score-wrap label{
  display:block;
  font-weight:700;
  font-size:11px;
  margin-bottom:4px;
}
.compact-score-wrap input{
  width:100%;
  border-radius:10px;
  border:1px solid var(--border);
  background:#111827;
  color:var(--text);
  padding:10px 10px;
  font-size:18px;
  font-weight:800;
  min-height:42px;
  text-align:center;
}
.compact-player.solo .compact-score-wrap input{
  border-color:var(--soloBorder);
  color:#fde68a;
}
.compact-checks{
  margin-top:8px;
  display:grid;
  gap:5px;
  font-size:11px;
  line-height:1.2;
}
.check-row{
  display:flex;
  align-items:center;
  gap:6px;
}
.check-row input{
  width:15px;
  height:15px;
  min-height:auto;
  padding:0;
  margin:0;
  flex:0 0 15px;
}
.check-row.is-disabled{opacity:.45}
.check-row input:disabled{cursor:not-allowed}
.ntp-box .ntp-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.panel{
  background:var(--card2);
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
}
.badge{
  display:inline-block;
  background:#0f172a;
  border:1px solid var(--border);
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  color:#bfdbfe;
}
.average-box{
  margin-top:12px;
  background:var(--teamBg);
  border:1px solid var(--teamBorder);
  border-radius:14px;
  padding:12px;
}
.avg-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
  align-items:start;
}
.avg-cell{
  background:#0f172a;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
}
.avg-cell.solo{
  background:var(--soloBg);
  border-color:var(--soloBorder);
}
.avg-title{
  color:var(--muted);
  font-size:12px;
  margin-bottom:6px;
}
.avg-value{
  font-size:20px;
  font-weight:800;
}
.avg-value.team{color:#bae6fd}
.avg-value.solo{color:#fde68a}
.results-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.results-list{display:grid;gap:10px}
.result-card{
  background:var(--card2);
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
}
.result-top{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  align-items:center;
  line-height:1.35;
  font-size:13px;
}
.result-actions{
  margin-top:8px;
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:space-between;
}
.mini-btn{
  border-radius:999px;
  padding:8px 10px;
  font-size:12px;
  font-weight:800;
  background:#334155;
  color:#f8fafc;
  border:0;
  cursor:pointer;
}
.info-box{
  margin-top:10px;
  border:1px solid rgba(56,189,248,.25);
  border-radius:12px;
  background:rgba(14,116,144,.10);
  padding:10px 12px;
  color:var(--text);
}
.info-box pre{
  white-space:pre-wrap;
  margin:0;
  font:inherit;
  color:var(--muted);
}
.export-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.export-actions .secondary{
  flex:1;
  min-width:180px;
}
@media (max-width:820px){
  .team-solo-grid,.points-area{grid-template-columns:1fr}
  .two-col,.select-grid{grid-template-columns:1fr}
  .points-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .entry-one-row{grid-template-columns:1fr 1fr 1fr}
  .avg-grid{grid-template-columns:1fr 1fr 1fr}
}
