:root {
  --emerald-950:#032d22; --emerald-900:#063f2d; --emerald-800:#0b563e;
  --emerald-100:#dff1e9; --gold:#c6a85b; --gold-soft:#f4ead0;
  --ink:#14211d; --muted:#64726c; --surface:#fff; --canvas:#f3f6f4;
  --line:#dbe4df; --danger:#a62828; --shadow:0 16px 40px rgba(3,45,34,.10);
  --radius:22px; --tap:48px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--canvas);color:var(--ink);font-size:17px;line-height:1.5}
button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.skip-link{position:fixed;left:12px;top:-80px;z-index:10000;background:#fff;padding:12px 18px;border-radius:10px;color:var(--emerald-900)}
.skip-link:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header{min-height:76px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;background:var(--emerald-950);color:#fff;border-bottom:1px solid rgba(198,168,91,.5);position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:25px;color:var(--gold)}
.brand h1{margin:0;font-family:Georgia,serif;font-size:1.28rem}.eyebrow{margin:0 0 3px;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:800;color:var(--gold)}
.icon-button{min-width:var(--tap);min-height:var(--tap);border:1px solid rgba(255,255,255,.25);border-radius:14px;background:transparent;color:inherit;font-size:1.25rem}
.primary-nav{display:none;background:#fff;border-bottom:1px solid var(--line);padding:10px;gap:8px;overflow:auto;position:sticky;top:76px;z-index:40}
.primary-nav.is-open{display:flex}.nav-tab{min-height:var(--tap);border:0;border-radius:999px;background:transparent;padding:10px 16px;white-space:nowrap;font-weight:750;color:var(--muted)}
.nav-tab.is-active{background:var(--emerald-900);color:#fff}
main{width:min(1120px,100%);margin:auto;padding:18px 16px 64px}
.hero{background:linear-gradient(135deg,var(--emerald-950),var(--emerald-800));border-radius:var(--radius);padding:28px 22px;color:#fff;box-shadow:var(--shadow);display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.hero h2{margin:0;font-family:Georgia,serif;font-size:2.1rem;line-height:1.05}.hero p:last-child{margin:10px 0 0;color:#d9e8e1}
.admin-entry,.primary-button,.secondary-button,.danger-button,.upload-button{min-height:var(--tap);border-radius:14px;padding:12px 18px;font-weight:800;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center}
.admin-entry{background:var(--gold);color:var(--emerald-950);border:0;white-space:nowrap}
.search-panel{margin:18px 0;background:#fff;padding:16px;border-radius:18px;border:1px solid var(--line)}.search-panel label,.field>span{display:block;font-weight:800;margin-bottom:7px}
.search-control{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:0 14px;background:#fbfcfb}
.search-control input{width:100%;min-height:var(--tap);border:0;background:transparent;outline:0;font-size:1.05rem}
.status-message{min-height:24px;color:var(--emerald-800);font-weight:700}
.view{animation:fadeUp .28s ease}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:24px 2px 12px}.section-heading h3{margin:0;font-size:1.5rem}
.season-chip{background:var(--gold-soft);color:#6d5722;padding:7px 12px;border-radius:999px;font-weight:800}
.leaderboard-list{display:grid;gap:12px}.player-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 24px rgba(3,45,34,.06);transition:transform .25s ease,box-shadow .25s ease}
.player-card:hover{box-shadow:var(--shadow)}.player-card-summary{width:100%;border:0;background:transparent;padding:18px 14px;display:grid;grid-template-columns:48px 1fr auto 26px;gap:10px;align-items:center;text-align:left;min-height:88px}
.rank-badge{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--emerald-100);color:var(--emerald-950);font-weight:900}.rank-badge.medal{font-size:1.35rem;background:var(--gold-soft)}
.player-main{min-width:0}.player-name{display:block;font-size:1.08rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-meta{display:block;color:var(--muted);font-size:.88rem;margin-top:2px}
.points-block{text-align:right}.points-block strong{font-size:1.55rem;line-height:1;color:var(--emerald-900);display:block}.points-block span{font-size:.78rem;color:var(--muted)}
.expand-indicator{font-size:1.3rem;transition:transform .25s}.player-card.is-open .expand-indicator{transform:rotate(180deg)}
.player-details{border-top:1px solid var(--line);padding:16px;background:#fbfcfb}.detail-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.stat-tile{padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line)}.stat-tile span{display:block;color:var(--muted);font-size:.78rem}.stat-tile strong{font-size:1.2rem}
.history-list{display:grid;gap:10px}.history-card{border-left:4px solid var(--gold);background:#fff;border-radius:12px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:6px 12px}.history-card h4{margin:0}.history-card p{margin:0;color:var(--muted);font-size:.9rem}.history-values{text-align:right}
.change{font-weight:900}.change.up{color:#9b4b20}.change.down{color:var(--emerald-800)}.change.same{color:var(--muted)}
.round-tabs{display:flex;gap:8px;overflow:auto;padding:4px 0 12px;scrollbar-width:none}.round-tab{min-height:var(--tap);padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;white-space:nowrap;font-weight:800}.round-tab[aria-selected=true]{background:var(--emerald-900);color:#fff;border-color:var(--emerald-900)}
.round-summary,.chart-card{background:var(--emerald-950);color:#fff;border-radius:18px;padding:18px;margin-bottom:12px}.round-summary strong{font-size:1.45rem}
.round-list,.timeline,.statistics-grid,.admin-list,.score-entry-list{display:grid;gap:10px}.round-row,.timeline-row,.stat-card,.admin-list-item,.score-entry-row{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px}
.round-row{display:grid;grid-template-columns:1fr auto;gap:8px}.round-row h4,.stat-card h4,.admin-list-item h4{margin:0}.metric-line{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--muted);font-size:.9rem}.metric-line strong{color:var(--ink)}
.field{display:block;margin-bottom:14px}.field input,.field select{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:13px;background:#fff;padding:10px 12px}
.chart-card{background:#fff;color:var(--ink);overflow:hidden}.handicap-chart svg{display:block;width:100%;height:auto;min-height:240px}.chart-grid{stroke:#dbe4df;stroke-width:1}.chart-line{fill:none;stroke:var(--gold);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1000;animation:draw 1s ease forwards}.chart-point{fill:var(--emerald-900);stroke:#fff;stroke-width:3}.chart-label{font-size:12px;fill:var(--muted)}
.timeline-row{display:flex;justify-content:space-between;gap:16px}.statistics-grid{grid-template-columns:1fr}.stat-card .stat-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.primary-button{background:var(--emerald-900);color:#fff}.secondary-button{background:#fff;border-color:var(--line);color:var(--ink)}.danger-button{background:var(--danger);color:#fff}.full-width{width:100%}
.admin-dialog{width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;background:#f3f6f4}.admin-dialog::backdrop,.confirm-dialog::backdrop{background:rgba(3,25,19,.72)}
.admin-shell{min-height:100%;display:grid}.admin-sidebar{background:var(--emerald-950);color:#fff;padding:24px}.admin-sidebar h2{margin:0 0 22px}.admin-sidebar nav{display:flex;gap:8px;overflow:auto}
.admin-nav-button{min-height:var(--tap);border:0;border-radius:12px;padding:10px 14px;background:transparent;color:#dbe8e2;font-weight:750;white-space:nowrap}.admin-nav-button.is-active{background:var(--gold);color:var(--emerald-950)}
.danger-text{color:#ffb3b3}.admin-content{padding:18px;min-width:0}.admin-header{display:flex;justify-content:space-between;align-items:center}.admin-header h2{margin:0}.admin-header .icon-button{color:var(--ink);border-color:var(--line)}
.dev-banner{background:var(--gold-soft);border-left:4px solid var(--gold);padding:12px 14px;border-radius:10px;margin:16px 0;font-weight:700}
.admin-panel{animation:fadeUp .2s}.card-form,.danger-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:14px}.card-form h3,.danger-card h3{margin-top:0}
.score-entry-row{display:grid;grid-template-columns:1fr 90px 90px;gap:10px;align-items:end}.score-entry-row .field{margin:0}.score-entry-row strong{align-self:center}
.form-grid{display:grid;gap:12px}.action-grid{display:grid;gap:12px}.upload-button{background:var(--gold);color:var(--emerald-950)}.upload-button input{display:none}.help-text{color:var(--muted)}
.admin-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px}.small-button{min-height:42px;border-radius:11px;padding:8px 12px;border:1px solid var(--line);background:#fff;font-weight:800}.small-button.danger{color:var(--danger)}
.confirm-dialog{width:min(460px,calc(100% - 28px));border:0;border-radius:20px;padding:22px}.confirm-dialog h2{margin-top:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes draw{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@media(min-width:720px){
  .site-header{padding-inline:28px}.icon-button#menuButton{display:none}.primary-nav{display:flex;justify-content:center;top:76px}
  main{padding:30px 24px 80px}.hero{padding:40px}.hero h2{font-size:3rem}.detail-stats{grid-template-columns:repeat(4,1fr)}
  .statistics-grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:repeat(2,1fr)}.action-grid{grid-template-columns:repeat(2,1fr)}
  .admin-shell{grid-template-columns:250px 1fr}.admin-sidebar{position:sticky;top:0;height:100vh}.admin-sidebar nav{display:grid;overflow:visible}.admin-content{padding:28px}
}
@media(min-width:1000px){.statistics-grid{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Podium-first leaderboard */
.leaderboard-first{animation:none}
.leaderboard-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 2px 5px}
.leaderboard-titlebar h2{margin:0;font-family:Georgia,serif;font-size:clamp(1.65rem,4vw,2.35rem);line-height:1}
.leaderboard-heading{margin-top:2px}
.leaderboard-heading h2{margin:0;font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.35rem);line-height:1}
.leaderboard-heading p:last-child{margin:6px 0 0;color:var(--muted);font-size:.86rem}
.leaderboard-podium{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-areas:"second first third";
  align-items:end;
  gap:10px;
  min-height:200px;
  margin:14px 0 12px;
  padding:16px 14px 0;
  overflow:hidden;
  border-radius:24px;
  background:
    radial-gradient(circle at 50% -10%,rgba(198,168,91,.32),transparent 42%),
    linear-gradient(145deg,var(--emerald-950),var(--emerald-800));
  box-shadow:var(--shadow);
}
.podium-player{
  min-width:0;
  display:grid;
  justify-items:center;
  align-content:start;
  gap:3px;
  position:relative;
  padding:48px 9px 14px;
  border:1px solid rgba(255,255,255,.13);
  border-bottom:0;
  border-radius:18px 18px 0 0;
  color:#fff;
  text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.06));
  transform-origin:bottom center;
  animation:podiumRise .38s ease-out both;
}
.podium-position-1{grid-area:first;min-height:178px;border-color:rgba(231,196,99,.62);background:linear-gradient(180deg,rgba(198,168,91,.35),rgba(255,255,255,.08))}
.podium-position-2{grid-area:second;min-height:146px}
.podium-position-3{grid-area:third;min-height:124px}
.podium-place{
  position:absolute;
  top:9px;
  left:10px;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  color:var(--emerald-950);
  background:var(--gold);
  font-weight:900;
  opacity:0;
}
.podium-medal{position:absolute;top:9px;right:10px;font-size:1.5rem}
.podium-player>strong{
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:Georgia,serif;
  font-size:clamp(.94rem,2.1vw,1.32rem);
  position:relative;
  z-index:2;
  opacity:0;
  animation:nameHoverSlam 1.05s cubic-bezier(.12,.82,.2,1.2) both;
}
.podium-position-3>strong{animation-delay:.2s}
.podium-position-2>strong{animation-delay:1.3s}
.podium-position-1>strong{animation-delay:2.4s}
.podium-position-3 .podium-place{animation:positionImpact .42s 1.02s both}
.podium-position-2 .podium-place{animation:positionImpact .42s 2.12s both}
.podium-position-1 .podium-place{animation:positionImpact .42s 3.22s both}
.podium-points{color:#dce9e2;font-size:.72rem}.podium-points b{color:var(--gold);font-size:1.3rem}.podium-player small{color:#c4d7cd;font-size:.64rem}
.compact-search{display:grid;grid-template-columns:auto minmax(220px,420px);align-items:center;gap:14px;margin:12px 0}.compact-search label{margin:0;white-space:nowrap}
@keyframes podiumRise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
@keyframes nameHoverSlam{
  0%{opacity:0;transform:translateY(-105px) scale(.88);filter:blur(3px)}
  18%{opacity:1;transform:translateY(-72px) scale(1.08);filter:none}
  56%{opacity:1;transform:translateY(-72px) scale(1.08)}
  76%{opacity:1;transform:translateY(9px) scale(1.16)}
  88%{transform:translateY(-5px) scale(.98)}
  100%{opacity:1;transform:none}
}
@keyframes positionImpact{0%{opacity:0;transform:scale(3.5);filter:blur(3px)}70%{opacity:1;transform:scale(.82)}100%{opacity:1;transform:scale(1);filter:none}}
@media(max-width:560px){
  .primary-nav{padding-block:7px}
  main{padding-top:8px}
  .leaderboard-heading{margin:4px 2px 8px}
  .leaderboard-heading h3{font-size:2.05rem}
  .leaderboard-heading p:last-child{font-size:.72rem}
  .leaderboard-podium{min-height:164px;gap:5px;margin-top:8px;padding:10px 7px 0;border-radius:19px}
  .podium-player{padding:42px 5px 9px;border-radius:13px 13px 0 0}
  .podium-position-1{min-height:150px}.podium-position-2{min-height:126px}.podium-position-3{min-height:108px}
  .podium-place{top:7px;left:7px;width:25px;height:25px;font-size:.72rem}
  .podium-medal{top:7px;right:6px;font-size:1.15rem}
  .podium-player>strong{font-size:.82rem}
  .podium-points{font-size:.58rem}.podium-points b{display:block;font-size:1.12rem;line-height:1}
  .podium-player small{display:none}
  .leaderboard-round-tabs{margin-top:2px}
  .compact-search{grid-template-columns:1fr;gap:5px}
  .compact-search label{font-size:.75rem}
}

.history-label{
  display:block;
  color:var(--muted);
  font-size:.78rem;
  font-weight:700;
  margin-bottom:2px;
}
.next-handicap-value{
  display:block;
  font-size:1.35rem;
  color:var(--emerald-900);
}

.score-entry-row{
  grid-template-columns:1fr;
}
.score-player{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.score-player span{
  color:var(--muted);
  font-size:.9rem;
}
.calculated-result{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:12px;
  border-radius:12px;
  background:#f7faf8;
  border:1px dashed var(--line);
  color:var(--muted);
}
.calculated-result.is-calculated{
  background:var(--emerald-100);
  border-style:solid;
  color:var(--ink);
}
.calculated-result span{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.next-admin-handicap{
  font-size:1.35rem;
  color:var(--emerald-900);
}
@media(min-width:720px){
  .score-entry-row{
    grid-template-columns:minmax(180px,1fr) 130px 130px;
  }
  .calculated-result{
    grid-column:1/-1;
  }
}

.leaderboard-round-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:2px 0 12px;
  scrollbar-width:none;
  scroll-snap-type:x proximity;
}
.leaderboard-round-tabs::-webkit-scrollbar{display:none}
.leaderboard-round-tab{
  flex:0 0 auto;
  min-height:48px;
  padding:10px 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-weight:800;
  white-space:nowrap;
  scroll-snap-align:start;
}
.leaderboard-round-tab[aria-selected="true"]{
  background:var(--emerald-900);
  border-color:var(--emerald-900);
  color:#fff;
}
.leaderboard-context{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:0 0 12px;
  padding:14px 16px;
  border-radius:16px;
  background:var(--gold-soft);
  color:var(--emerald-950);
}
.leaderboard-context span{
  color:#66582f;
  font-size:.9rem;
}
.player-card-summary{
  grid-template-columns:48px minmax(0,1fr) auto 24px;
}
.player-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px 10px;
  margin-top:7px;
}
.leaderboard-round-line{
  min-width:0;
  color:var(--muted);
  font-size:.82rem;
  white-space:nowrap;
}
.leaderboard-round-line strong{
  color:var(--ink);
}
@media(max-width:420px){
  .player-card-summary{
    grid-template-columns:44px minmax(0,1fr) auto;
    gap:9px;
    padding:16px 12px;
  }
  .expand-indicator{
    display:none;
  }
  .rank-badge{
    width:40px;
    height:40px;
  }
  .points-block strong{
    font-size:1.35rem;
  }
  .player-name{
    font-size:1rem;
  }
  .player-meta{
    grid-template-columns:1fr 1fr;
    gap:3px 8px;
  }
  .leaderboard-round-line{
    font-size:.76rem;
  }
}
@media(min-width:720px){
  .leaderboard-context{
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
  }
}

/* Mobile leaderboard result card: round facts are visible without opening the card. */
@media(max-width:719px){
  .leaderboard-list{
    gap:12px;
  }

  .player-card{
    border-radius:22px;
  }

  .player-card-summary{
    min-height:0;
    padding:18px 14px;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    grid-template-areas:
      "rank name points"
      "rank details points";
    column-gap:12px;
    row-gap:8px;
    align-items:start;
  }

  .rank-badge{
    grid-area:rank;
    align-self:start;
    width:44px;
    height:44px;
  }

  .player-main{
    grid-area:name / name / details / details;
    width:100%;
    min-width:0;
  }

  .player-name{
    font-size:1.05rem;
    line-height:1.2;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    color:var(--ink);
  }

  .player-meta{
    margin-top:10px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 14px;
  }

  .leaderboard-round-line{
    display:grid;
    grid-template-columns:auto auto;
    justify-content:start;
    align-items:baseline;
    gap:5px;
    min-width:0;
    white-space:normal;
    font-size:.9rem;
    line-height:1.25;
  }

  .leaderboard-round-line span{
    color:var(--muted);
  }

  .leaderboard-round-line strong{
    font-size:.95rem;
    color:var(--ink);
  }

  .leaderboard-round-line .change{
    font-size:.95rem;
  }

  .leaderboard-empty{
    grid-column:1/-1;
    display:flex;
    flex-direction:column;
    gap:2px;
  }

  .points-block{
    grid-area:points;
    align-self:center;
    min-width:58px;
    text-align:right;
    padding-left:4px;
  }

  .points-block strong{
    font-size:1.65rem;
    color:var(--emerald-900);
  }

  .points-block span{
    font-size:.78rem;
  }

  .expand-indicator{
    display:none;
  }
}

@media(max-width:390px){
  .player-card-summary{
    grid-template-columns:42px minmax(0,1fr) auto;
    column-gap:10px;
    padding:16px 12px;
  }

  .rank-badge{
    width:40px;
    height:40px;
  }

  .player-meta{
    gap:7px 10px;
  }

  .leaderboard-round-line{
    font-size:.82rem;
  }

  .leaderboard-round-line strong{
    font-size:.88rem;
  }

  .points-block{
    min-width:50px;
  }

  .points-block strong{
    font-size:1.45rem;
  }
}

.brand-link{color:inherit;text-decoration:none}
.brand-title{display:block;font-family:Georgia,serif;font-size:1.28rem;line-height:1.15}


/* Integration with the main Barford Golf Society website */
.global-site-header{
  min-height:0;
  padding:0;
  display:block;
  background:rgba(4,20,15,.94);
  color:inherit;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.global-site-header .header-inner{
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.global-site-header .global-brand{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
.global-site-header .global-brand img{
  width:64px;
  height:64px;
  object-fit:contain;
  background:#fff;
  border-radius:50%;
  padding:3px;
}
.global-site-header .site-nav{
  display:flex;
}
.global-site-header .site-nav a{
  color:#f7fbf8;
}
.global-site-header .site-nav a.active{
  color:var(--gold);
}
.global-site-header .menu-button{
  display:none;
}
.primary-nav{
  top:78px;
}
@media(max-width:850px){
  .global-site-header .menu-button{display:block}
  .global-site-header .site-nav{
    position:absolute;
    top:78px;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:12px 20px 20px;
    background:var(--emerald-950);
  }
  .global-site-header .site-nav.is-open{display:flex}
  .primary-nav{top:72px}
}

.admin-access-note{
  margin:14px 2px 0;
  color:var(--muted);
  font-size:.92rem;
}
.admin-entry{
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}

.admin-guide{max-width:760px}
.admin-guide>p{color:var(--muted);font-size:1.02rem}
.admin-steps{list-style:none;padding:0;margin:22px 0;display:grid;gap:12px;counter-reset:steps}
.admin-steps li{counter-increment:steps;display:grid;grid-template-columns:48px 1fr;gap:4px 14px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px}
.admin-steps li::before{content:counter(steps);grid-row:1/3;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--emerald-950);font-weight:900}
.admin-steps li strong{font-size:1.04rem}
.admin-steps li span{color:var(--muted)}
.admin-help-box{margin:18px 0;padding:16px;border-left:4px solid var(--gold);background:var(--gold-soft);border-radius:12px}
.score-help{padding:12px 14px;background:var(--emerald-100);border-radius:12px}
@media(max-width:600px){.admin-steps li{grid-template-columns:42px 1fr;padding:14px}.admin-steps li::before{width:38px;height:38px}}


/* =========================================================
   Mobile-first professional refinement
   ========================================================= */

:root{
  --mobile-gutter:14px;
  --mobile-radius:18px;
  --mobile-shadow:0 10px 28px rgba(3,45,34,.08);
}

body{
  overflow-x:hidden;
}

main{
  width:100%;
  max-width:1120px;
  padding-left:var(--mobile-gutter);
  padding-right:var(--mobile-gutter);
}

.global-site-header .header-inner{
  width:min(1180px,calc(100% - 28px));
  margin-inline:auto;
}

.primary-nav{
  width:100%;
  max-width:100%;
  padding:10px var(--mobile-gutter);
  gap:8px;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.primary-nav::-webkit-scrollbar{display:none}

.hero{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  padding:24px 18px;
  align-items:flex-start;
  flex-direction:column;
}
.hero::after{
  content:"";
  position:absolute;
  width:160px;
  height:160px;
  right:-50px;
  top:-65px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
}
.hero>div,
.hero>.admin-entry{
  position:relative;
  z-index:1;
}
.hero h2{
  font-size:clamp(2rem,9vw,3rem);
}
.hero p:last-child{
  max-width:36rem;
}
.admin-entry{
  width:100%;
  min-height:54px;
  box-shadow:none;
}

.admin-access-note{
  margin:12px 2px 0;
  padding:12px 14px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--line);
  line-height:1.45;
}

.search-panel{
  margin:14px 0;
  padding:14px;
  border-radius:16px;
  box-shadow:none;
}

.section-heading{
  align-items:flex-start;
  gap:12px;
  margin:22px 2px 12px;
}
.section-heading h3{
  font-size:1.35rem;
  line-height:1.15;
}

.leaderboard-context{
  border-radius:14px;
  padding:13px 14px;
}

.player-card{
  border-radius:18px;
  box-shadow:var(--mobile-shadow);
}
.player-card-summary{
  min-height:0;
}
.player-details{
  padding:14px;
}
.detail-stats{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.stat-tile{
  min-width:0;
}
.stat-tile strong{
  overflow-wrap:anywhere;
}
.history-card{
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 12px;
}
.history-card>div{
  min-width:0;
}
.history-values{
  min-width:76px;
}

.round-row{
  grid-template-columns:1fr;
}
.metric-line{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 12px;
}
.metric-line span{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:8px 10px;
  border-radius:10px;
  background:#f7faf8;
}
.metric-line strong{
  white-space:nowrap;
}

.chart-card{
  padding:14px;
  overflow-x:auto;
}
.handicap-chart{
  min-width:560px;
}

.statistics-grid{
  grid-template-columns:1fr;
}
.stat-card{
  border-radius:18px;
  box-shadow:var(--mobile-shadow);
}
.stat-card .stat-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.admin-dialog{
  width:100vw;
  height:100dvh;
  max-width:100vw;
  max-height:100dvh;
  margin:0;
  border-radius:0;
  overflow:hidden;
}
.admin-shell{
  min-height:100dvh;
  max-height:100dvh;
  display:flex;
  flex-direction:column;
}
.admin-sidebar{
  position:relative;
  height:auto;
  padding:18px 14px 12px;
  flex:0 0 auto;
}
.admin-sidebar h2{
  font-size:1.45rem;
  margin-bottom:14px;
}
.admin-sidebar nav{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-bottom:4px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.admin-sidebar nav::-webkit-scrollbar{display:none}
.admin-nav-button{
  flex:0 0 auto;
  min-height:46px;
  border-radius:12px;
  padding:10px 13px;
}

.admin-content{
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  padding:16px 14px calc(24px + env(safe-area-inset-bottom));
}
.admin-header{
  position:sticky;
  top:0;
  z-index:5;
  margin:-16px -14px 14px;
  padding:14px;
  background:rgba(243,246,244,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.admin-header h2{
  font-size:1.35rem;
}
.admin-header .eyebrow{
  margin-bottom:2px;
}
.admin-header .icon-button{
  flex:0 0 46px;
}
.dev-banner{
  font-size:.92rem;
  line-height:1.45;
  margin:12px 0 16px;
}

.card-form,
.danger-card,
.admin-guide{
  border-radius:16px;
}
.form-grid,
.action-grid{
  grid-template-columns:1fr!important;
}
.field{
  margin-bottom:12px;
}
.field input,
.field select{
  min-height:52px;
  font-size:1rem;
}
.primary-button,
.secondary-button,
.danger-button,
.upload-button{
  width:100%;
  min-height:52px;
}
.score-entry-list{
  gap:12px;
}
.score-entry-row{
  grid-template-columns:1fr;
  padding:14px;
  border-radius:16px;
}
.score-player{
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
}
.calculated-result{
  grid-template-columns:1fr 1fr;
}
.admin-list-item{
  align-items:flex-start;
  flex-direction:column;
}
.admin-list-item .small-button{
  width:100%;
}
.dialog-actions{
  flex-direction:column-reverse;
}
.dialog-actions button{
  width:100%;
}
.confirm-dialog{
  width:min(460px,calc(100% - 24px));
  max-height:calc(100dvh - 24px);
  overflow:auto;
}

.admin-steps li{
  align-items:flex-start;
}
.admin-help-box{
  line-height:1.5;
}

/* Keep the public leaderboard visually compact on phones */
@media(max-width:719px){
  .leaderboard-round-tabs,
  .round-tabs{
    margin-inline:calc(var(--mobile-gutter) * -1);
    padding-inline:var(--mobile-gutter);
  }

  .leaderboard-round-tab,
  .round-tab,
  .nav-tab{
    min-height:46px;
  }

  .player-card-summary{
    grid-template-columns:44px minmax(0,1fr) auto;
    gap:10px;
    padding:16px 12px;
  }

  .player-meta{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px 10px;
  }

  .leaderboard-round-line{
    display:flex;
    flex-direction:column;
    gap:1px;
    font-size:.8rem;
  }

  .leaderboard-round-line strong{
    font-size:.95rem;
  }

  .points-block{
    min-width:54px;
  }

  .points-block strong{
    font-size:1.4rem;
  }

  .playing-list,
  .event-availability{
    padding:16px;
  }
}

/* Very small phones */
@media(max-width:390px){
  :root{--mobile-gutter:10px}

  body{font-size:16px}

  .global-site-header .header-inner{
    width:calc(100% - 20px);
  }

  .hero{
    padding:20px 15px;
    border-radius:18px;
  }

  .hero h2{
    font-size:2rem;
  }

  .section-heading{
    flex-direction:column;
  }

  .season-chip{
    align-self:flex-start;
  }

  .player-card-summary{
    grid-template-columns:40px minmax(0,1fr) auto;
    padding:14px 10px;
  }

  .rank-badge{
    width:38px;
    height:38px;
  }

  .player-name{
    font-size:.98rem;
  }

  .player-meta{
    gap:4px 8px;
  }

  .leaderboard-round-line{
    font-size:.74rem;
  }

  .leaderboard-round-line strong{
    font-size:.9rem;
  }

  .points-block strong{
    font-size:1.25rem;
  }

  .detail-stats,
  .stat-card .stat-card-grid,
  .calculated-result{
    grid-template-columns:1fr;
  }

  .metric-line{
    grid-template-columns:1fr;
  }

  .history-card{
    grid-template-columns:1fr;
  }

  .history-values{
    text-align:left;
  }

  .admin-sidebar{
    padding-inline:10px;
  }

  .admin-content{
    padding-inline:10px;
  }
}

/* Desktop refinements remain clean and aligned */
@media(min-width:720px){
  main{
    padding-left:24px;
    padding-right:24px;
  }

  .hero{
    flex-direction:row;
    align-items:flex-end;
  }

  .admin-entry{
    width:auto;
  }

  .admin-access-note{
    max-width:780px;
  }

  .handicap-chart{
    min-width:0;
  }

  .round-row{
    grid-template-columns:1fr;
  }

  .admin-shell{
    display:grid;
    grid-template-columns:250px 1fr;
  }

  .admin-sidebar{
    height:100dvh;
    position:sticky;
    top:0;
  }

  .admin-sidebar nav{
    display:grid;
    overflow:visible;
  }

  .admin-content{
    padding:28px;
  }

  .admin-header{
    margin:-28px -28px 18px;
    padding:18px 28px;
  }

  .form-grid.two-column{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .action-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .primary-button,
  .secondary-button,
  .danger-button,
  .upload-button{
    width:auto;
  }

  .admin-list-item{
    flex-direction:row;
    align-items:center;
  }

  .admin-list-item .small-button{
    width:auto;
  }

  .dialog-actions{
    flex-direction:row;
  }

  .dialog-actions button{
    width:auto;
  }
}


/* =========================================================
   Mobile admin fix — stacked, simple and touch-friendly
   ========================================================= */
@media (max-width: 719px) {
  .admin-dialog {
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }

  .admin-shell {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
  }

  .admin-sidebar {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 14px 12px 10px !important;
    flex: 0 0 auto !important;
  }

  .admin-sidebar > div {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
  }

  .admin-sidebar .eyebrow {
    margin-bottom: 2px !important;
  }

  .admin-sidebar h2 {
    margin: 0 0 10px !important;
    font-size: 1.25rem !important;
    line-height: 1.15 !important;
  }

  .admin-sidebar nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 0 6px !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .admin-nav-button {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    min-height: 44px !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    scroll-snap-align: start !important;
    font-size: .92rem !important;
  }

  .admin-content {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    width: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 12px calc(28px + env(safe-area-inset-bottom)) !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .admin-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
    margin: 0 -12px 12px !important;
    padding: 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: rgba(243,246,244,.98) !important;
    border-bottom: 1px solid var(--line) !important;
  }

  .admin-header > div {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .admin-header h2 {
    font-size: 1.18rem !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
  }

  .admin-header .icon-button {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .dev-banner {
    margin: 10px 0 14px !important;
    padding: 12px !important;
    font-size: .9rem !important;
    line-height: 1.4 !important;
  }

  .admin-panel,
  .admin-guide,
  .card-form,
  .danger-card {
    width: 100% !important;
    max-width: 100% !important;
  }

  .admin-panel {
    padding-bottom: 8px !important;
  }

  .admin-panel h3,
  .admin-guide h3,
  .card-form h3,
  .danger-card h3 {
    font-size: 1.25rem !important;
    line-height: 1.2 !important;
  }

  .form-grid,
  .form-grid.two-column,
  .action-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .field,
  .card-form .field {
    width: 100% !important;
    margin: 0 0 12px !important;
  }

  .field input,
  .field select,
  .field textarea {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    font-size: 16px !important;
  }

  .score-entry-list {
    display: grid !important;
    gap: 14px !important;
  }

  .score-entry-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 14px !important;
    overflow: visible !important;
  }

  .score-player {
    width: 100% !important;
    min-width: 0 !important;
  }

  .score-player strong {
    font-size: 1.05rem !important;
  }

  .score-player span {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .calculated-result {
    grid-column: 1 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .calculated-result span {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
  }

  .admin-list {
    display: grid !important;
    gap: 10px !important;
  }

  .admin-list-item {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 14px !important;
  }

  .admin-list-item > div {
    min-width: 0 !important;
  }

  .admin-list-item h4,
  .admin-list-item span {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .primary-button,
  .secondary-button,
  .danger-button,
  .upload-button,
  .small-button {
    width: 100% !important;
    min-height: 52px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .admin-steps {
    gap: 10px !important;
  }

  .admin-steps li {
    grid-template-columns: 38px minmax(0,1fr) !important;
    gap: 4px 10px !important;
    padding: 13px !important;
  }

  .admin-steps li::before {
    width: 36px !important;
    height: 36px !important;
  }

  .confirm-dialog {
    width: calc(100% - 20px) !important;
    max-width: none !important;
    max-height: calc(100dvh - 20px) !important;
    padding: 18px !important;
  }

  .dialog-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .dialog-actions button {
    width: 100% !important;
    min-height: 50px !important;
  }
}

/* Extra tightening for narrow phones */
@media (max-width: 390px) {
  .admin-sidebar {
    padding-inline: 10px !important;
  }

  .admin-content {
    padding-inline: 10px !important;
  }

  .admin-header {
    margin-inline: -10px !important;
    padding-inline: 10px !important;
  }

  .admin-nav-button {
    font-size: .86rem !important;
    padding-inline: 12px !important;
  }

  .score-entry-row {
    padding: 12px !important;
  }
}


/* Simple mobile admin — fits fully on phone screens */
@media(max-width:719px){
  .admin-dialog{
    width:100vw!important;
    height:100dvh!important;
    max-width:100vw!important;
    max-height:100dvh!important;
    inset:0!important;
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }

  .admin-shell{
    display:grid!important;
    grid-template-rows:auto 1fr!important;
    width:100%!important;
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  .admin-sidebar{
    padding:10px!important;
    position:static!important;
    height:auto!important;
    min-height:0!important;
  }

  .admin-sidebar>div{
    display:none!important;
  }

  .admin-sidebar nav{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:6px!important;
    width:100%!important;
    overflow:visible!important;
    padding:0!important;
  }

  .admin-nav-button{
    min-width:0!important;
    width:100%!important;
    min-height:44px!important;
    padding:8px 6px!important;
    border-radius:12px!important;
    font-size:.82rem!important;
    white-space:normal!important;
    line-height:1.15!important;
    text-align:center!important;
  }

  .admin-content{
    min-width:0!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:0 10px 90px!important;
  }

  .admin-header{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    margin:0 -10px 10px!important;
    padding:10px!important;
    background:#f3f6f4!important;
  }

  .admin-header .eyebrow,
  .dev-banner{
    display:none!important;
  }

  .admin-header h2{
    font-size:1.1rem!important;
  }

  .admin-card.compact,
  .card-form,
  .danger-card{
    padding:12px!important;
    margin-bottom:10px!important;
    border-radius:14px!important;
  }

  .score-entry-list{
    gap:10px!important;
  }

  .mobile-score-card{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 110px!important;
    gap:10px!important;
    align-items:end!important;
    padding:12px!important;
  }

  .mobile-score-card .score-player{
    min-width:0!important;
    padding:0!important;
    border:0!important;
  }

  .mobile-score-card .score-player strong{
    display:block!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  .mobile-score-card .score-player span{
    font-size:.8rem!important;
  }

  .compact-field{
    margin:0!important;
  }

  .compact-field span{
    font-size:.78rem!important;
  }

  .compact-field input{
    min-height:46px!important;
    padding:8px!important;
    text-align:center!important;
  }

  .mobile-score-card .calculated-result{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    padding:8px!important;
  }

  .mobile-score-card .calculated-result:empty{
    display:none!important;
  }

  .mobile-score-card .calculated-result span{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
  }

  .mobile-save-bar{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:30!important;
    padding:10px!important;
    padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;
    background:rgba(243,246,244,.98)!important;
    border-top:1px solid var(--line)!important;
  }

  .mobile-save-bar .primary-button{
    width:100%!important;
    min-height:52px!important;
  }

  .admin-list-item{
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
  }

  .admin-list-item .small-button{
    width:auto!important;
    min-height:44px!important;
  }
}

@media(max-width:390px){
  .mobile-score-card{
    grid-template-columns:minmax(0,1fr) 96px!important;
  }

  .admin-nav-button{
    font-size:.76rem!important;
  }
}

@supports (content-visibility:auto){
  .player-card,
  .round-row,
  .stat-card{
    content-visibility:auto;
    contain-intrinsic-size:1px 120px;
  }
}

/* Dense real leaderboard: the actual top-three names perform the reveal. */
#main-content{padding-top:8px}
.leaderboard-round-tabs{padding-bottom:7px}
.leaderboard-list{gap:6px}
.player-card{border-radius:13px;overflow:hidden}
.player-card-summary{
  min-height:58px;
  padding:7px 11px;
  grid-template-columns:36px minmax(0,1fr) 62px 18px;
  gap:8px;
}
.rank-badge{width:32px;height:32px;font-size:.76rem}
.rank-badge.medal{font-size:1rem}
.player-name{font-size:.9rem}
.player-meta{display:flex;flex-wrap:wrap;gap:2px 13px;margin-top:2px}
.leaderboard-round-line{font-size:.67rem}
.leaderboard-round-line span{margin-right:3px}
.points-block strong{font-size:1.2rem}
.points-block span{font-size:.62rem}
.expand-indicator{font-size:1rem}
.top-three-row{position:relative;overflow:visible;z-index:3}
.leaderboard-cinematic .top-three-row .player-name{
  opacity:0;
  position:relative;
  z-index:8;
  animation:realNameHoverSlam .82s cubic-bezier(.1,.84,.18,1.22) both;
}
.leaderboard-cinematic .top-position-3 .player-name{animation-delay:1.35s}
.leaderboard-cinematic .top-position-2 .player-name{animation-delay:2.15s}
.leaderboard-cinematic .top-position-1 .player-name{animation-delay:2.95s}
.top-three-row::after{
  content:"";
  position:absolute;
  inset:-3px;
  pointer-events:none;
  border:2px solid transparent;
  border-radius:15px;
  opacity:0;
}
.leaderboard-cinematic .top-position-3::after{animation:realRowImpact .42s 2.02s both}
.leaderboard-cinematic .top-position-2::after{animation:realRowImpact .42s 2.82s both}
.leaderboard-cinematic .top-position-1::after{animation:realRowImpact .48s 3.62s both}
.top-position-1{border-color:#d9bb68;background:linear-gradient(90deg,#fffaf0,#fff)}
@keyframes realNameHoverSlam{
  0%{opacity:0;transform:translateY(-120px) scale(4);filter:blur(3px)}
  22%{opacity:1;transform:translateY(-58px) scale(1.45);filter:none;text-shadow:0 12px 28px rgba(3,45,34,.38)}
  56%{opacity:1;transform:translateY(-58px) scale(1.45);text-shadow:0 12px 28px rgba(3,45,34,.38)}
  74%{opacity:1;transform:translateY(10px) scale(1.7)}
  84%{transform:translateY(-5px) scale(.9)}
  100%{opacity:1;transform:none;text-shadow:none}
}
@keyframes realRowImpact{
  0%{opacity:0;transform:scale(1.03);border-color:transparent}
  40%{opacity:1;transform:scale(1);border-color:var(--gold);box-shadow:0 0 28px rgba(198,168,91,.55)}
  100%{opacity:0;transform:scale(1);border-color:transparent;box-shadow:none}
}
.leaderboard-cinematic .ranking-motion{
  position:relative;
  z-index:2;
  animation:rankingShuffle .82s cubic-bezier(.2,.82,.2,1) var(--move-delay) both;
}
.leaderboard-cinematic .ranking-motion.moved-up{animation-name:rankingShuffleUp}
.leaderboard-cinematic .ranking-motion.moved-down{animation-name:rankingShuffleDown}
.movement-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 5px;border-radius:999px;font-size:.58rem;font-weight:900}
.movement-badge.up{color:#08663d;background:#dff4e8}
.movement-badge.down{color:#9b392d;background:#fbe4df}
.leaderboard-cinematic .movement-badge{opacity:0;animation:movementBadgePop .55s 1.45s cubic-bezier(.12,.85,.2,1.35) forwards}
@keyframes rankingShuffle{
  0%{transform:translateY(var(--move-from));filter:brightness(.9);box-shadow:0 12px 28px rgba(3,45,34,.18)}
  72%{transform:translateY(-3px);filter:brightness(1.04)}
  100%{transform:none;filter:none}
}
@keyframes rankingShuffleUp{
  0%{transform:translateY(var(--move-from));border-color:#78c99f;box-shadow:0 16px 35px rgba(17,133,78,.28)}
  65%{transform:translateY(-7px) scale(1.012);border-color:#2d9b63}
  82%{transform:translateY(3px)}
  100%{transform:none}
}
@keyframes rankingShuffleDown{
  0%{transform:translateY(var(--move-from));border-color:#e3a096;box-shadow:0 15px 32px rgba(166,40,40,.22)}
  65%{transform:translateY(6px) scale(.992);border-color:#c9685b}
  82%{transform:translateY(-2px)}
  100%{transform:none}
}
@keyframes movementBadgePop{0%{opacity:0;transform:scale(2.8) rotate(-9deg)}70%{opacity:1;transform:scale(.84) rotate(2deg)}100%{opacity:1;transform:none}}
.leaderboard-first + .primary-nav{position:static;display:flex;justify-content:center;margin:18px -16px 0;border-top:1px solid var(--line)}
@media(max-width:719px){
  #main-content{padding:6px 8px 64px}
  .leaderboard-titlebar{margin:0 4px 4px}
  .leaderboard-titlebar h2{font-size:1.45rem}
  .leaderboard-titlebar .eyebrow{font-size:.58rem}
  .season-chip{padding:4px 8px;font-size:.7rem}
  .leaderboard-round-tab{min-height:38px;padding:6px 10px;font-size:.72rem}
  .leaderboard-list{gap:5px}
  .player-card{border-radius:11px}
  .player-card-summary{
    min-height:62px!important;
    padding:7px 9px!important;
    grid-template-columns:32px minmax(0,1fr) 52px!important;
    grid-template-areas:"rank name points"!important;
    gap:7px!important;
    align-items:center!important;
  }
  .rank-badge{width:29px!important;height:29px!important;font-size:.68rem!important}
  .player-main{grid-area:name!important}
  .player-name{font-size:.82rem!important}
  .player-meta{display:flex!important;gap:1px 8px!important;margin-top:2px!important}
  .leaderboard-round-line{font-size:.58rem!important}
  .leaderboard-round-line:nth-child(n+3){display:none}
  .points-block{grid-area:points!important}
  .points-block strong{font-size:1.05rem}
  .expand-indicator{display:none}
  .leaderboard-first + .primary-nav{margin-inline:-8px;justify-content:flex-start;overflow-x:auto}
}
@media(prefers-reduced-motion:reduce){
  .top-three-row .player-name,.top-three-row::after,.ranking-motion,.movement-badge{animation:none!important;opacity:1!important;transform:none!important}
}

/* Compositor hints used only during the one-time reveal. */
.leaderboard-cinematic .ranking-motion,.leaderboard-cinematic .top-three-row .player-name{will-change:transform,opacity;backface-visibility:hidden}


/* 2027 season overview and clear member leaderboard */
.season-progress-card{
  margin:18px 0 20px;padding:22px;border:1px solid var(--line);border-radius:20px;
  background:linear-gradient(145deg,#fff,#f5f8f6);box-shadow:0 10px 28px rgba(3,45,34,.07)
}
.season-progress-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}
.season-progress-heading h3{margin:2px 0 0;font-size:clamp(1.2rem,2.2vw,1.65rem);color:var(--emerald-950)}
.season-progress-heading strong{color:var(--emerald-800);white-space:nowrap}
.season-progress-track{height:10px;overflow:hidden;border-radius:999px;background:#dce2df}
.season-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d7ae36,var(--gold));transition:width .5s ease}
.event-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.event-context-card{min-width:0;padding:18px;border-radius:16px;border:1px solid var(--line);background:#fff}
.event-context-card.next-event{background:var(--emerald-950);border-color:var(--emerald-950);color:#fff}
.context-label{display:block;margin-bottom:7px;color:#a77b18;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.next-event .context-label{color:#e5c66f}
.event-context-card h3{margin:0 0 6px;font-size:1.18rem}
.event-context-card p{margin:0;color:var(--muted);line-height:1.45}
.next-event p{color:#d5e3dd}
.event-highlight-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.event-highlight-row span{min-width:94px;padding:8px 10px;border-radius:10px;background:#f1f5f3}
.next-event .event-highlight-row span{background:rgba(255,255,255,.11)}
.event-highlight-row small,.event-highlight-row strong{display:block}
.event-highlight-row small{margin-bottom:2px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}
.next-event .event-highlight-row small{color:#bfd3ca}
.event-highlight-row strong{font-size:.88rem}
.leaderboard-column-headings,.player-card-summary{
  display:grid;grid-template-columns:64px minmax(170px,1fr) repeat(4,minmax(76px,100px)) minmax(70px,90px) 62px 28px;
  gap:10px;align-items:center
}
.leaderboard-column-headings{padding:11px 16px;border-radius:12px 12px 0 0;background:var(--emerald-950);color:#e1bd55;font-size:.72rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.player-card-summary{width:100%;padding:14px 16px;text-align:left}
.player-card{border-radius:0}
.player-card + .player-card{margin-top:0;border-top:0}
.player-card:last-child{border-radius:0 0 14px 14px}
.player-main{min-width:0}
.player-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-meta{display:contents}
.leaderboard-round-line{display:flex;min-width:0;align-items:center}
.leaderboard-round-line span{display:none}
.leaderboard-round-line strong{font-size:1rem;color:var(--ink)}
.leaderboard-empty{grid-column:3/span 4;color:var(--muted)}
.leaderboard-empty span{display:block}
.points-block,.wins-block{text-align:center}
.points-block strong,.wins-block strong{display:block;font-size:1.12rem;color:var(--emerald-900)}
.points-block span,.wins-block span{display:none}
.movement-badge{position:absolute;margin-top:28px}
.compact-search{margin-top:20px}

@media (max-width:900px){
  .leaderboard-column-headings,.player-card-summary{grid-template-columns:52px minmax(145px,1fr) repeat(4,minmax(58px,1fr)) 64px 48px 24px;gap:6px}
  .leaderboard-column-headings,.player-card-summary{padding-left:10px;padding-right:10px}
}
@media (max-width:760px){
  .season-progress-card{padding:16px;margin-inline:-2px}
  .season-progress-heading{align-items:start}
  .season-progress-heading strong{font-size:.85rem}
  .event-context-grid{grid-template-columns:1fr}
  .leaderboard-column-headings{display:none}
  .player-card{margin-bottom:10px!important;border:1px solid var(--line)!important;border-radius:14px!important}
  .player-card-summary{grid-template-columns:42px minmax(0,1fr) auto auto 24px;gap:9px;padding:14px}
  .player-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:4px}
  .leaderboard-round-line{display:block;padding:8px 5px;border-radius:9px;background:#f1f5f3;text-align:center}
  .leaderboard-round-line span{display:block;margin-bottom:3px;color:var(--muted);font-size:.64rem;font-weight:800;text-transform:uppercase}
  .leaderboard-round-line strong{font-size:.88rem}
  .leaderboard-empty{grid-column:1/-1;text-align:left}
  .points-block span,.wins-block span{display:block;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase}
  .points-block strong,.wins-block strong{font-size:1rem}
  .movement-badge{position:static;margin:0;align-self:center}
}
@media (max-width:420px){
  .season-progress-heading{display:block}
  .season-progress-heading strong{display:block;margin-top:6px}
  .event-highlight-row span{flex:1}
  .player-card-summary{grid-template-columns:36px minmax(0,1fr) auto auto 20px;padding:12px 9px}
  .player-meta{gap:4px}
}


/* Clear round-by-round leaderboard summary */
.player-card-summary {
  grid-template-columns:52px minmax(0,1fr) 108px 24px;
  gap:14px;
  padding:16px 18px;
  min-height:104px;
}
.player-main { display:grid; gap:9px; }
.player-name { font-size:1.06rem; line-height:1.2; }
.player-meta {
  display:grid;
  grid-template-columns:repeat(4,minmax(105px,1fr));
  gap:8px;
  margin:0;
}
.leaderboard-round-line {
  display:grid;
  gap:2px;
  padding:8px 10px;
  border-radius:10px;
  background:#f3f7f5;
  white-space:normal;
}
.leaderboard-round-line span {
  color:var(--muted);
  font-size:.7rem;
  font-weight:750;
  line-height:1.15;
}
.leaderboard-round-line strong {
  color:var(--emerald-950);
  font-size:1rem;
  line-height:1.1;
}
.points-block {
  align-self:stretch;
  display:grid;
  align-content:center;
  justify-items:center;
  min-width:0;
  padding:10px 8px;
  border-radius:14px;
  background:var(--gold-soft);
  text-align:center;
}
.points-block strong { font-size:1.65rem; }
.points-block span { max-width:70px; font-size:.68rem; font-weight:800; line-height:1.1; text-transform:uppercase; letter-spacing:.04em; }
.leaderboard-empty { grid-column:1/-1; }

@media(max-width:900px) {
  .player-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:719px) {
  .player-card-summary {
    grid-template-columns:42px minmax(0,1fr) 74px;
    grid-template-areas:"rank name points";
    align-items:start;
    gap:10px;
    padding:14px 12px;
  }
  .rank-badge { grid-area:rank; width:40px; height:40px; }
  .player-main { grid-area:name; width:100%; }
  .player-name { font-size:.98rem; white-space:normal; }
  .player-meta { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin:0; }
  .leaderboard-round-line { padding:7px 8px; }
  .leaderboard-round-line span { font-size:.62rem; }
  .leaderboard-round-line strong { font-size:.9rem; }
  .points-block { grid-area:points; min-width:0; width:74px; padding:9px 5px; }
  .points-block strong { font-size:1.35rem; }
  .points-block span { font-size:.58rem; }
  .expand-indicator { display:none; }
}
@media(max-width:420px) {
  .player-card-summary { grid-template-columns:36px minmax(0,1fr) 64px; gap:8px; padding:12px 9px; }
  .rank-badge { width:34px; height:34px; font-size:.82rem; }
  .rank-badge.medal { font-size:1rem; }
  .player-meta { gap:5px; }
  .leaderboard-round-line { padding:6px; }
  .leaderboard-round-line span { font-size:.58rem; }
  .leaderboard-round-line strong { font-size:.84rem; }
  .points-block { width:64px; }
}


/* Phone-first leaderboard cards — replaces the legacy table presentation */
.leaderboard-column-headings { display:none !important; }
.leaderboard-list { display:grid; gap:12px; }
.player-card {
  border:1px solid #d9e3dd;
  border-radius:18px;
  background:#fff;
  box-shadow:0 6px 18px rgba(3,45,34,.06);
}
.player-card-summary {
  width:100%;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 92px;
  grid-template-areas:"rank player total";
  align-items:start;
  gap:12px;
  padding:14px;
  border:0;
  background:transparent;
  text-align:left;
}
.rank-badge {
  grid-area:rank;
  width:40px;
  height:40px;
  align-self:start;
}
.player-main {
  grid-area:player;
  min-width:0;
  display:grid;
  gap:10px;
}
.player-name {
  display:block;
  color:var(--emerald-950);
  font-size:1.05rem;
  font-weight:900;
  line-height:1.2;
  white-space:normal;
  overflow:visible;
}
.player-meta {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(92px,1fr));
  gap:7px;
  margin:0;
}
.leaderboard-round-line {
  display:grid !important;
  gap:3px;
  min-width:0;
  padding:8px 9px;
  border-radius:10px;
  background:#f1f6f3;
  text-align:left;
}
.leaderboard-round-line span {
  display:block !important;
  margin:0;
  color:#65746d;
  font-size:.67rem;
  font-weight:850;
  line-height:1.15;
  text-transform:none;
}
.leaderboard-round-line strong {
  display:block;
  color:var(--emerald-950);
  font-size:1rem;
  line-height:1.1;
}
.points-block {
  grid-area:total;
  width:92px;
  min-width:0;
  align-self:stretch;
  display:grid;
  place-content:center;
  padding:10px 6px;
  border-radius:14px;
  background:#f6ecd1;
  text-align:center;
}
.points-block strong { display:block; color:var(--emerald-900); font-size:1.65rem; line-height:1; }
.points-block span {
  display:block !important;
  max-width:none;
  margin-top:5px;
  color:#6b5b2e;
  font-size:.61rem;
  font-weight:900;
  line-height:1.1;
  text-transform:uppercase;
}
.expand-indicator { display:none !important; }
.player-details { padding:14px; }

@media(max-width:760px) {
  .leaderboard-context { padding:12px 14px; }
  .player-card-summary {
    grid-template-columns:38px minmax(0,1fr) 70px;
    gap:9px;
    padding:12px 10px;
  }
  .rank-badge { width:34px; height:34px; font-size:.82rem; }
  .rank-badge.medal { font-size:1rem; }
  .player-name { font-size:.96rem; padding-top:2px; }
  .player-meta { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:6px; }
  .leaderboard-round-line { padding:7px; }
  .leaderboard-round-line span { font-size:.61rem; }
  .leaderboard-round-line strong { font-size:.9rem; }
  .points-block { width:70px; min-height:74px; padding:8px 4px; }
  .points-block strong { font-size:1.35rem; }
  .points-block span { font-size:.53rem; }
}
@media(max-width:380px) {
  .player-card-summary { grid-template-columns:32px minmax(0,1fr) 62px; gap:7px; padding:10px 8px; }
  .rank-badge { width:30px; height:30px; }
  .player-meta { gap:5px; }
  .leaderboard-round-line { padding:6px 5px; }
  .leaderboard-round-line span { font-size:.56rem; }
  .leaderboard-round-line strong { font-size:.84rem; }
  .points-block { width:62px; }
}


/* Premier-League-style standings table */
#main-content {
  width:100%;
  max-width:none;
}
.leaderboard-first {
  width:100%;
}
.league-table-panel {
  position:relative;
  isolation:isolate;
  width:100%;
  overflow:hidden;
  border:1px solid rgba(230,194,96,.5);
  border-radius:0 0 28px 28px;
  color:#fff;
  background:
    radial-gradient(circle at 8% 2%,rgba(225,190,114,.25),transparent 24%),
    radial-gradient(circle at 96% 82%,rgba(19,124,85,.48),transparent 34%),
    linear-gradient(145deg,#021f18 0%,#063f2d 55%,#021812 100%);
  box-shadow:0 24px 70px rgba(2,31,24,.3);
}
.league-table-panel::before,.league-table-panel::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:62vw;
  height:62vw;
  border:1px solid rgba(255,255,255,.055);
  transform:rotate(38deg);
}
.league-table-panel::before { top:-43vw; right:-18vw; }
.league-table-panel::after { bottom:-49vw; left:-22vw; border-color:rgba(225,190,114,.09); }
.league-table-content { min-width:0; padding:0 22px 26px; }
.league-table-brand {
  position:relative;
  display:grid;
  grid-template-columns:76px minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  padding:26px 28px 22px;
  text-align:center;
}
.league-table-brand::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:8px;
  width:84px;
  height:2px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,#e1be72,transparent);
}
.league-table-brand img {
  width:76px;
  height:76px;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.38));
}
.league-table-side-title { min-width:0; }
.league-table-side-title span {
  display:block;
  color:#e1be72;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.league-table-side-title h2 {
  margin:3px 0 4px;
  color:#fff;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:clamp(2rem,5vw,4rem);
  font-weight:950;
  line-height:.95;
  letter-spacing:.035em;
  text-transform:uppercase;
  text-shadow:0 5px 22px rgba(0,0,0,.32);
}
.league-table-side-title b {
  display:block;
  color:#b9d8ca;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.league-table-brand small {
  padding:8px 12px;
  border:1px solid rgba(225,190,114,.52);
  border-radius:999px;
  color:#f5d879;
  font-size:.68rem;
  font-weight:900;
  white-space:nowrap;
}
.league-table-head,
.player-card-summary {
  display:grid !important;
  grid-template-columns:52px minmax(190px,1fr) 64px 64px 64px 68px 76px;
  align-items:center;
}
.league-table-head {
  padding:11px 12px;
  border:1px solid rgba(225,190,114,.32);
  border-bottom:0;
  border-radius:12px 12px 0 0;
  background:rgba(0,15,11,.72);
  color:#f5d879;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.league-table-head span:not(:nth-child(2)) { text-align:center; }
.leaderboard-list {
  display:block;
  overflow:hidden;
  border:0;
  border-radius:0;
  border:1px solid rgba(225,190,114,.28);
  border-top:0;
  background:rgba(2,24,18,.58);
  backdrop-filter:blur(10px);
}
.player-card,
.player-card.top-three-row {
  margin:0;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.09);
  border-radius:0;
  background:rgba(255,255,255,.025);
  box-shadow:none;
  overflow:hidden;
}
.player-card:nth-child(even) { background:rgba(255,255,255,.06); }
.player-card:hover { background:rgba(225,190,114,.1); }
.player-card:last-child { border-bottom:0; }
.player-card-summary {
  width:100%;
  min-height:58px;
  padding:8px 12px;
  gap:0;
  border:0;
  background:transparent;
  text-align:left;
}
.rank-badge {
  grid-column:1;
  grid-row:1;
  justify-self:center;
  width:34px;
  height:34px;
  border-radius:50%;
  font-size:.86rem;
}
.rank-badge.medal { font-size:1rem; }
.player-main { display:contents !important; }
.player-name {
  grid-column:2;
  grid-row:1;
  min-width:0;
  padding:0 8px;
  color:#fff;
  font-size:.91rem;
  font-weight:850;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.player-meta { display:contents !important; }
.leaderboard-round-line {
  display:block !important;
  min-width:0;
  padding:0 3px;
  border:0;
  border-radius:0;
  background:transparent;
  text-align:center;
}
.leaderboard-round-line:nth-child(1) { grid-column:3; grid-row:1; }
.leaderboard-round-line:nth-child(2) { grid-column:4; grid-row:1; }
.leaderboard-round-line:nth-child(3) { grid-column:5; grid-row:1; }
.leaderboard-round-line:nth-child(4) { grid-column:6; grid-row:1; }
.leaderboard-round-line span { display:none !important; }
.leaderboard-round-line strong {
  display:block;
  color:#e8f2ed;
  font-size:.91rem;
  font-weight:800;
  line-height:1;
}
.points-block {
  grid-column:7;
  grid-row:1;
  width:auto;
  min-width:0;
  min-height:0;
  align-self:center;
  display:block;
  padding:0;
  border-radius:0;
  background:transparent;
  text-align:center;
}
.points-block strong { color:#f5d879; font-size:1.12rem; font-weight:950; line-height:1; }
.points-block span { display:none !important; }
.expand-indicator,.movement-badge { display:none !important; }
.player-details { border-top:1px solid rgba(225,190,114,.28); color:var(--ink); background:#f7faf8; }
.player-card.is-open { background:rgba(225,190,114,.12); }
.below-league { margin-top:18px; }
.leaderboard-round-tabs { margin-top:18px; }

@media(max-width:620px) {
  #main-content { padding-top:0; padding-inline:0; }
  .leaderboard-first { padding-inline:0; }
  .league-table-panel { border-inline:0; border-radius:0 0 22px 22px; }
  .league-table-brand {
    grid-template-columns:54px minmax(0,1fr) auto;
    gap:9px;
    padding:18px 11px 17px;
  }
  .league-table-brand img { width:54px; height:54px; }
  .league-table-side-title span { font-size:.5rem; letter-spacing:.12em; }
  .league-table-side-title h2 { margin:2px 0; font-size:clamp(1.45rem,7vw,2.2rem); letter-spacing:.015em; }
  .league-table-side-title b { font-size:.54rem; letter-spacing:.06em; }
  .league-table-brand small { padding:5px 7px; font-size:.5rem; }
  .league-table-content { padding:0 7px 15px; }
  .league-table-head,
  .player-card-summary {
    grid-template-columns:34px minmax(98px,1fr) 33px 35px 33px 36px 43px;
  }
  .league-table-head { padding:9px 3px; font-size:.5rem; letter-spacing:0; }
  .player-card-summary { min-height:50px; padding:7px 3px; }
  .rank-badge { width:27px; height:27px; font-size:.68rem; }
  .rank-badge.medal { font-size:.78rem; }
  .player-name { padding:0 4px; font-size:.69rem; letter-spacing:-.01em; }
  .leaderboard-round-line { padding:0 1px; }
  .leaderboard-round-line strong { font-size:.68rem; }
  .points-block strong { font-size:.84rem; }
  .leaderboard-context span { font-size:.78rem; }
  .leaderboard-round-tabs,.leaderboard-context,.below-league,.compact-search,.status-message {
    margin-left:10px;
    margin-right:10px;
  }
}
@media(max-width:380px) {
  .league-table-brand { grid-template-columns:46px minmax(0,1fr) auto; padding-inline:8px; }
  .league-table-brand img { width:46px; height:46px; }
  .league-table-head,
  .player-card-summary {
    grid-template-columns:30px minmax(84px,1fr) 29px 31px 29px 32px 38px;
  }
  .league-table-head { font-size:.46rem; }
  .player-name,.leaderboard-round-line strong { font-size:.63rem; }
}
