
:root{
  --bg:#071B12; --surface:#0D2B1D; --surface2:#123825; --card:#F7F4EA; --card2:#ECE6D4;
  --ink:#071B12; --text:#FAF6E8; --muted:rgba(250,246,232,.66); --muted-dark:#6F766D;
  --gold:#D8B75C; --line:rgba(255,255,255,.13); --red:#E25B55; --green:#71D08A;
  --shadow:0 24px 80px rgba(0,0,0,.28); --radius:28px;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Inter,system-ui,sans-serif;
  color:var(--text);
  background:radial-gradient(circle at 15% -10%,rgba(113,208,138,.25),transparent 34%),radial-gradient(circle at 85% 0%,rgba(216,183,92,.18),transparent 32%),linear-gradient(160deg,#103B28,var(--bg) 55%,#031108);
  min-height:100svh;
}
button,input,select{font:inherit}button{cursor:pointer}
.app{width:min(780px,100%);margin:0 auto;padding:18px 14px calc(98px + env(safe-area-inset-bottom))}
.topbar{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0 18px}
.overline,.section-label{margin:0 0 5px;color:var(--gold);font-size:.72rem;font-weight:950;letter-spacing:.16em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}h1{margin:0;font-size:2.05rem;line-height:.9;letter-spacing:-.06em}h2{font-size:2.2rem;letter-spacing:-.07em;line-height:.95;margin:0 0 16px}
.sync{padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid var(--line);color:var(--muted);font-weight:900;font-size:.82rem}.sync.live{background:rgba(113,208,138,.18);color:#D9FFE4}
.view{display:none;animation:fade .18s ease}.view.active{display:block}@keyframes fade{from{opacity:.45;transform:translateY(8px)}to{opacity:1;transform:none}}
.hero-card,.panel,.leader-card,.score-card,.selector-panel,.chat-list,.chat-compose{
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(22px)
}
.hero-card{padding:22px;margin-bottom:12px;background:linear-gradient(135deg,var(--card),var(--card2));color:var(--ink);display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}
.hero-card .leader-label{color:var(--muted-dark);font-weight:950;font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}
.hero-card .leader-team{font-size:clamp(2.4rem,10vw,4.4rem);line-height:.84;letter-spacing:-.09em;font-weight:950}
.hero-card .leader-players{color:var(--muted-dark);font-weight:850;margin-top:8px}
.hero-card .leader-score{font-size:clamp(4.4rem,18vw,7rem);line-height:.78;letter-spacing:-.09em;color:var(--surface);font-weight:950;text-align:right}
.hero-card .leader-score small{display:block;font-size:.78rem;letter-spacing:0;color:var(--muted-dark);font-weight:950;margin-top:8px}
.panel{background:rgba(255,255,255,.09);padding:16px;margin-bottom:12px}
.panel h3{margin:0 0 12px;font-size:1.05rem}.hint{color:var(--muted);font-weight:800;line-height:1.55}
.live-feed{display:grid;gap:8px}.feed-item{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;padding:11px;border-radius:18px;background:rgba(255,255,255,.075)}.feed-item .icon{color:var(--gold);font-weight:950}.feed-item small{color:var(--muted);font-weight:800}
.leaderboard{display:grid;gap:10px}.leader-card{overflow:hidden;background:rgba(255,255,255,.09)}
.leader-button{width:100%;border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:36px 1fr auto;gap:12px;padding:14px;text-align:left;align-items:center}
.rank{width:36px;height:36px;border-radius:14px;background:rgba(216,183,92,.16);color:var(--gold);display:grid;place-items:center;font-weight:950}.team-title{font-weight:950;font-size:1.08rem;letter-spacing:-.025em}.team-sub{color:var(--muted);font-size:.82rem;font-weight:850}.score-num{text-align:right}.score-num strong{display:block;color:var(--gold);font-size:1.55rem;letter-spacing:-.05em}.score-num small{color:var(--muted);font-weight:900}
.recent{display:flex;gap:5px;margin-top:9px}.mark{width:26px;height:26px;display:grid;place-items:center;font-size:.72rem;font-weight:950;background:rgba(255,255,255,.1);border:2px solid transparent;flex:0 0 auto}.mark.empty{color:rgba(255,255,255,.32)}.mark.par{border-radius:999px}.mark.birdie{border-radius:999px;border-color:var(--red);color:#FFD8D8;background:rgba(226,91,85,.08)}.mark.eagle{border-radius:999px;border:3px double var(--red);color:#FFD8D8}.mark.bogey{border-radius:7px;border-color:rgba(255,255,255,.78)}.mark.double{border-radius:5px;border:3px double rgba(255,255,255,.82)}
.details{display:none;padding:0 14px 16px}.leader-card.open .details{display:block}.holes{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}.hole{min-height:74px;border-radius:16px;background:rgba(255,255,255,.075);display:grid;place-items:center;text-align:center;padding:7px 3px}.hole small{color:var(--muted);font-weight:900;font-size:.65rem}.detail-stats,.podium-grid,.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.detail-stats div,.stat-card,.podium-card,.contest-card{border-radius:18px;background:rgba(255,255,255,.075);padding:12px}.detail-stats span,.stat-card span{display:block;color:var(--muted);font-size:.7rem;font-weight:950;text-transform:uppercase}.detail-stats strong,.stat-card strong{font-size:1.15rem;color:var(--gold)}
.contest-overview{display:grid;gap:10px}.contest-card{border:1px solid var(--line);box-shadow:var(--shadow);background:rgba(255,255,255,.09);display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.contest-card .type{color:var(--gold);font-weight:950;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.contest-card small{color:var(--muted);font-weight:850}.contest-card strong:last-child{font-size:1.2rem;color:var(--gold)}
.page-title{margin:12px 0 16px}.selector-panel{background:rgba(255,255,255,.09);padding:14px;display:grid;grid-template-columns:1fr 110px;gap:12px;margin-bottom:12px}
label{display:grid;gap:7px;color:var(--muted);font-weight:900;font-size:.82rem}input,select{width:100%;border:1px solid var(--line);border-radius:17px;padding:13px 14px;background:rgba(255,255,255,.09);color:var(--text);outline:none}select option{color:#071B12}
.score-card{padding:20px;background:linear-gradient(135deg,var(--card),var(--card2));color:var(--ink);text-align:center}.hole-title{font-size:3.3rem;font-weight:950;letter-spacing:-.08em;line-height:.9}.hole-meta{color:var(--muted-dark);font-weight:850;margin:8px 0 18px}.big-score{font-size:5.6rem;font-weight:950;line-height:.86;letter-spacing:-.09em;color:var(--surface);margin:10px 0}.free-score{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.free-score button,.score-nav button{border:0;border-radius:18px;padding:14px 8px;background:#FFF9E8;color:var(--ink);font-weight:950;font-size:1.1rem}.custom-score{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.custom-score input{background:#FFF9E8;color:var(--ink);text-align:center;font-weight:950}.custom-score button,.primary,.secondary,.danger,.chat-compose button,.admin-form button{border:0;border-radius:18px;padding:14px 12px;font-weight:950}.custom-score button{background:var(--surface);color:var(--text)}.primary,.chat-compose button{background:var(--gold);color:#211805}.secondary,.admin-form button{background:rgba(255,255,255,.12);color:var(--text)}.danger{background:rgba(226,91,85,.18);color:#FFDAD7}.score-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.chat-list{height:52svh;overflow:auto;background:rgba(255,255,255,.09);padding:14px;display:grid;align-content:start;gap:10px;margin-bottom:12px}.message{max-width:88%;padding:12px 14px;border-radius:20px;background:rgba(255,255,255,.1)}.message strong{display:block;color:var(--gold);font-size:.82rem;margin-bottom:4px}.message small{display:block;color:var(--muted);font-weight:800;margin-top:5px}.chat-compose{background:rgba(255,255,255,.09);padding:10px;display:grid;grid-template-columns:90px 1fr auto;gap:8px}
details summary{cursor:pointer;font-weight:950;font-size:1.1rem}.field-block{margin-top:14px}.link-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.link-list a{padding:13px;border-radius:16px;background:rgba(255,255,255,.09);color:var(--text);font-weight:900;text-decoration:none}.team-form,.form-grid{display:grid;gap:11px;margin-top:16px}.player-block{padding:14px;border-radius:22px;background:rgba(255,255,255,.07);display:grid;gap:9px}.admin-list{display:grid;gap:8px;margin-top:12px}.admin-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:12px;border-radius:18px;background:rgba(255,255,255,.075)}.admin-row small{color:var(--muted);font-weight:800}.admin-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}.admin-panel{display:none;gap:8px;margin-top:12px}body.admin .admin-panel{display:flex}.admin-message{color:#FFDAD7;font-weight:900}
.nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:50;width:min(780px,100%);display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(3,17,8,.74);backdrop-filter:blur(24px);border-top:1px solid var(--line)}.tab{border:0;border-radius:18px;background:transparent;color:var(--muted);padding:8px 2px;font-size:.68rem;font-weight:900}.tab span{display:block;font-family:Georgia,serif;font-size:1.2rem;line-height:1;margin-bottom:2px}.tab.active{background:rgba(255,255,255,.1);color:var(--text)}
@media(max-width:540px){.app{padding-left:10px;padding-right:10px}.hero-card{grid-template-columns:1fr}.hero-card .leader-score{text-align:left}.selector-panel,.chat-compose,.admin-form,.custom-score{grid-template-columns:1fr}.holes{grid-template-columns:repeat(6,1fr)}.podium-grid,.stats-grid,.link-list,.detail-stats{grid-template-columns:1fr}.admin-row{grid-template-columns:1fr}.free-score{grid-template-columns:repeat(4,1fr)}}

/* Toppbaren är inte längre sticky, så den täcker inte formulär/knappar vid scroll. */
.view{scroll-margin-top:16px}

/* Lag-PIN / scorelås */
.lock-card{
  display:grid;
  gap:12px;
  padding:16px;
  border-radius:22px;
  background:rgba(255,255,255,.09);
  margin-bottom:12px;
}
.lock-card strong{
  color:var(--gold);
}
.lock-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.lock-form button,
.unlock-actions button{
  border:0;
  border-radius:18px;
  padding:13px 14px;
  font-weight:950;
}
.lock-form button{
  background:var(--gold);
  color:#211805;
}
.unlock-actions{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.unlock-actions button{
  background:rgba(255,255,255,.12);
  color:var(--text);
}
.score-locked-note{
  color:var(--muted);
  font-weight:850;
  line-height:1.45;
}
@media(max-width:540px){
  .lock-form,.unlock-actions{grid-template-columns:1fr}
}

/* Utslagskrav i scramble */
.drive-picker{
  margin-top:14px;
  padding:14px;
  border-radius:22px;
  background:rgba(255,255,255,.10);
  text-align:left;
}
.score-card .drive-picker,
.score-panel .drive-picker,
.hole-panel .drive-picker{
  background:#E9E2CD;
  color:var(--ink, #06140d);
}
.drive-picker h3{
  margin:0 0 10px;
  font-size:1rem;
}
.drive-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.drive-options button{
  border:0;
  border-radius:16px;
  padding:12px 10px;
  background:rgba(255,255,255,.18);
  color:inherit;
  font-weight:950;
}
.score-card .drive-options button,
.score-panel .drive-options button,
.hole-panel .drive-options button{
  background:#FFF9E8;
  color:var(--ink, #06140d);
}
.drive-options button.active{
  background:var(--gold, #d8b75c);
  color:#1f1605;
}
.drive-status{
  margin-top:12px;
  display:grid;
  gap:6px;
}
.drive-status-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  padding:8px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.13);
  font-weight:850;
}
.score-card .drive-status-row,
.score-panel .drive-status-row,
.hole-panel .drive-status-row{
  background:rgba(7,27,18,.08);
}
.drive-status-row.missing{
  background:rgba(226,91,85,.18);
}
.drive-summary{
  margin-top:10px;
  font-size:.85rem;
  font-weight:850;
  opacity:.8;
}
@media(max-width:560px){
  .drive-options{grid-template-columns:1fr}
}

.score-locked-note{color:#10281d!important;font-weight:900}
.lock-card{background:#f6efd9!important;color:#10281d!important}
.lock-card strong{color:#10281d!important}
.lock-card input{background:#fff!important;color:#111!important;border:1px solid #cfcfcf!important}
.lock-card input::placeholder{color:#777!important}
