@font-face{font-family:Bounded;src:url('assets/bounded.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{
  color-scheme:dark;
  --bg:#0c100f;
  --surface:#141a17;
  --surface-raised:#1a221d;
  --border:#2b372f;
  --text:#edf1e9;
  --muted:#a6b2a7;
  --accent:#d9ff66;
  --lime:#dee54c;
  --heading:Bounded,Manrope,"Segoe UI",Arial,sans-serif;
  --font:Manrope,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--text);font:500 14px/1.5 var(--font)}
button,select,input{font:inherit}
button,a,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}
.frame{width:min(1460px,calc(100% - 88px));margin-inline:auto}
.topbar{position:sticky;top:0;z-index:700;border-bottom:1px solid var(--border);background:#0c100ff2;backdrop-filter:blur(10px)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:63px;gap:22px}
.brand{display:flex;align-items:center;min-height:42px;flex:none}
.brand img{display:block;width:170px;height:auto}
.topnav{display:flex;gap:30px;align-self:stretch}
.nav-button{display:flex;align-items:center;border-bottom:2px solid transparent;padding:2px 1px 0;color:#a6b2a7;font-weight:750}
.nav-button.active{color:#edf1e9;border-color:var(--lime)}
.nav-button:hover{color:#edf1e9}
.text-button:hover{color:var(--accent)}
.topbar :focus-visible{outline-color:var(--lime)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:43px;padding:0 16px;border:1px solid var(--border);border-radius:9px;color:var(--text);background:var(--surface);font-weight:800;white-space:nowrap}
.button:hover{border-color:var(--accent)}
.team-button{background:var(--surface-raised);border-color:#455749;color:var(--text)}
.team-button:hover{border-color:#768776}
.button span{font-size:17px;line-height:1}
.primary{background:var(--accent);border-color:var(--accent);color:#132010}
.primary:hover{background:#edffb0;border-color:#edffb0}
.hero{position:relative;isolation:isolate;overflow:hidden;padding:43px 0 30px;border-bottom:1px solid var(--border)}
.hero-copy{position:relative;z-index:1}
.eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 13px;color:var(--accent);font:650 11px/1.4 var(--heading);letter-spacing:.12em;text-transform:uppercase}
.location-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--accent);display:inline-block}
h1,h2,h3,p{margin-top:0}
h2,h3{font-family:var(--heading)}
h1{font:750 clamp(35px,5.8vw,86px)/1.02 var(--heading);letter-spacing:-.075em;margin:0 0 15px}
h1 em{font-style:normal;color:#cad8c0}
.hero-description{font-size:15px;margin:0;max-width:490px;color:#c0cbc0}
.finder{margin-top:22px;border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface)}
.catalog-filters{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.catalog-filters .club-search{flex:1 1 185px;min-width:0}
.field{min-width:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px;padding:8px 13px;background:var(--surface-raised);border:1px solid #2b372f;border-radius:8px;margin:0}
.field>span{font-size:11px;color:#a6b2a7;font-weight:700}
.field select{min-width:0;width:100%;padding:0 16px 0 0;color:var(--text);background-color:transparent;border:0;font-size:14px;font-weight:800;line-height:1.4}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23a6b2a7' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;background-size:9px 6px;cursor:pointer}
select option{color:var(--text);background:#1a221d}
.chip{display:inline-flex;max-width:100%;border:1px solid #2b372f;border-radius:7px;background:#141a17}
.chip select{width:100%;min-height:32px;max-width:100%;border:0;background-color:transparent;background-position:right 10px center;padding:0 26px 0 10px;color:#d3ddd3;font-size:12px;font-weight:750}
.chip:has(select[data-selected=true]){border-color:#728d4a;background:#243121}
.text-button{padding:5px 6px;background:none;border:0;color:var(--muted);font-size:12px}
.results{margin-top:27px}
.result-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.result-heading h2{margin:0;color:var(--text);font:700 clamp(23px,3vw,35px)/1.2 var(--heading);letter-spacing:-.05em}
.result-heading p{margin:4px 0 0;color:var(--muted);font-size:12px}
.result-actions{display:flex;align-items:center;gap:8px}
.results-grid{--map-height:clamp(410px,49vw,580px);display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,32%);gap:12px;align-items:start}
.clubs-panel{min-width:0}
.list-jump{display:none}
.result-list{display:grid;gap:8px;max-height:calc(var(--map-height) + 80px);overflow:auto;padding-right:4px;scrollbar-color:#455e47 transparent;scrollbar-width:thin}
.club-card{border:1px solid var(--border);border-radius:12px;padding:13px 13px 12px;background:#141a17;scroll-margin:5px}
.club-card:hover,.club-card.selected{border-color:#768776}
.club-card.selected{background:#202b20}
.club-card-top{display:flex;align-items:flex-start;gap:10px}
.club-code{width:41px;height:41px;border-radius:8px;display:grid;place-items:center;flex:none;background:#253025;border:1px solid #354735;color:#d9ff66;font-weight:800;letter-spacing:-.055em;font-size:13px}
.club-card:nth-child(3n+2) .club-code{background:#22322b;border-color:#384d40;color:#a4d4bd}
.club-card:nth-child(3n+3) .club-code{background:#332f22;border-color:#4d4732;color:#ffd082}
.card-heading{display:flex;flex:1;flex-direction:column;min-width:0;gap:2px}
.club-name{align-self:flex-start;max-width:100%;padding:0;text-align:left;border:0;background:none;color:var(--text);font-size:15px;font-weight:800;letter-spacing:-.035em;line-height:1.3}
.club-name:hover{color:var(--accent)}
.address{color:var(--muted);font-size:11px;line-height:1.35;margin:0}
.card-meta{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 0;font-size:11px;color:#c0cbc0}
.card-meta span+span::before{content:"·";margin-right:7px;color:#87978b}
.club-rate{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 9px;margin:9px 0 0;font-size:11px}
.club-rate strong{color:var(--text);font-size:14px}
.club-rate a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.club-rate a:hover{color:var(--accent)}
.club-rate p{flex-basis:100%;margin:0;color:var(--muted);font-size:12px}
.card-booking{display:inline-flex;align-items:center;gap:8px;min-height:29px;margin-top:8px;color:var(--accent);font-size:12px;font-weight:800}
.card-booking:hover{text-decoration:underline;text-underline-offset:3px}
.map-panel{position:relative;border:1px solid var(--border);border-radius:13px;overflow:hidden;background:var(--surface);min-width:0}
#map{height:var(--map-height);isolation:isolate;background-color:#171f19;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:32px 32px}
#map .leaflet-tile-pane{filter:invert(.89) hue-rotate(180deg) saturate(.65) brightness(.86) contrast(1.03)}
.map-overview-label{width:auto!important;height:auto!important;transform-origin:0 0;white-space:nowrap;color:#d8e1d2;font:700 11px/1.1 var(--font);text-shadow:0 1px 3px #08120b,0 0 5px #08120b}
.map-overview-label span{display:block;transform:translate(5px,-50%)}
.map-overview-label.city{font-size:13px;color:#edf1e9}
.leaflet-overview-labels-pane:is([data-zoom="7"],[data-zoom="8"]) .map-overview-label:not(.main-city),.leaflet-overview-labels-pane:is([data-zoom="9"],[data-zoom="10"]) .map-overview-label.town{display:none}
#map.map-tiles-ready .leaflet-overview-pane,#map.map-tiles-ready .leaflet-overview-labels-pane{visibility:hidden}
.map-head{display:flex;align-items:center;justify-content:space-between;min-height:45px;padding:6px 10px 6px 13px;gap:8px}
.map-head>span{display:flex;align-items:center;gap:8px;color:#b6c9b7;font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.map-head .location-dot{width:6px;height:6px}
.map-fit{padding:5px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised);color:var(--text);font-size:11px;font-weight:750;white-space:nowrap}
.map-fit:hover{border-color:#768776}
.map-fit span{margin-left:3px;color:var(--accent)}
.map-canvas{position:relative;border-block:1px solid var(--border)}
.map-legend{margin:0;padding:9px 12px;color:var(--muted);font-size:11px}
.map-error{position:absolute;left:10px;bottom:24px;z-index:450;max-width:calc(100% - 20px);margin:0;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:#101711f5;color:var(--text);font-size:11px;pointer-events:none}
#map .leaflet-control-zoom{border:1px solid #2b372f;box-shadow:none;border-radius:7px;overflow:hidden}
#map .leaflet-control-zoom a{background:var(--surface-raised);color:var(--text);border-color:var(--border);width:28px;height:28px;line-height:28px}
#map .leaflet-control-zoom a.leaflet-disabled{color:var(--muted)}
#map .leaflet-control-zoom a:hover{color:var(--accent)}
#map .leaflet-control-attribution{background:#101711ec;color:#cbd7c8;font:10px/1.4 var(--font)}
#map .leaflet-control-attribution a{color:#e0ede0;text-decoration:underline}
.map-marker-shell{display:flex;justify-content:center;align-items:center;background:none;border:0}
.map-pin{position:relative;display:inline-grid;place-items:center;min-width:28px;min-height:26px;padding:0 7px;border:1px solid #9fb267;border-radius:7px;background:#293920;color:#e6f5d0;font:800 11px var(--font);white-space:nowrap;box-shadow:0 2px 9px #0008}
.map-pin::after{content:"";position:absolute;width:6px;height:6px;background:inherit;border-right:inherit;border-bottom:inherit;bottom:-4px;left:calc(50% - 3px);transform:rotate(45deg)}
.map-marker-shell.active .map-pin,.map-marker-shell:hover .map-pin{border-color:var(--accent);background:var(--accent);color:#132010}
.map-marker-shell.catalog .map-pin{min-width:20px;min-height:20px;padding:0;font-size:10px}
#map .leaflet-popup-content-wrapper,#map .leaflet-popup-tip{background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}
#map .leaflet-popup-content{margin:12px 15px;font:600 12px/1.5 var(--font)}
#map .leaflet-popup-content p{margin:3px 0 8px}
#map .leaflet-popup-close-button{color:var(--muted)}
.map-popup-name{font-size:13px;font-weight:800}
.map-popup-button{padding:0;background:none;border:0;color:var(--accent);font-weight:800}
.ranking{margin-top:34px;padding-top:25px;border-top:1px solid var(--border)}
.ranking-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;list-style:none;padding:0;margin:0}
.ranked-club{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:9px 13px;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.ranked-club:hover{background:var(--surface-raised);border-color:#768776}
.rank-open{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:44px;padding:0;border:0;background:none;color:var(--text);text-align:left}
.rank-open:hover .rank-name{color:var(--accent)}
.rank-number{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--border);border-radius:7px;color:var(--accent);font:700 11px var(--heading)}
.rank-name,.rank-area{display:block}
.rank-name{font-weight:800;line-height:1.25}
.rank-area{margin-top:3px;color:var(--muted);font-size:11px}
.rank-review{display:inline-flex;align-items:center;gap:5px;min-height:44px;white-space:nowrap;color:var(--accent);font-size:11px;font-weight:750}
.rank-review:hover{text-decoration:underline;text-underline-offset:2px}
.rank-review .arrow-icon{scale:.75}
.footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #2b372f;margin:24px 0 0;padding:17px 0 24px;color:#a6b2a7;font-size:11px}
.footer span:first-child{font-weight:800;color:var(--text)}
.empty{display:grid;gap:6px;border:1px dashed #425143;border-radius:10px;padding:20px;color:var(--muted)}
.empty strong{color:var(--text);font-size:16px}
.dialog{border:1px solid #415242;border-radius:17px;background:var(--surface);color:var(--text);padding:0;width:min(610px,calc(100% - 28px));max-height:calc(100% - 30px);box-shadow:0 20px 100px #000a}
.dialog::backdrop{background:#070b08b8;backdrop-filter:blur(3px)}
.dialog-inner{position:relative;padding:24px}
.close-dialog{position:absolute;top:13px;right:13px;display:grid;place-items:center;width:32px;height:32px;border-radius:7px;border:1px solid var(--border);background:#242e25;color:var(--text);font-size:22px;line-height:1}
.close-dialog:hover{color:var(--accent)}
.dialog h2{margin:0 30px 7px 0;font-size:30px;line-height:1.1;letter-spacing:-.06em}
.dialog .eyebrow{padding-right:70px}
.dialog h3{margin:16px 0 7px;font-size:15px}
.dialog-intro,.muted{color:var(--muted)}
.dialog-intro{margin-bottom:13px}
.dialog-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}
.team-dialog{width:min(695px,calc(100% - 28px))}
.team-dialog .eyebrow{margin-bottom:9px}
.players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.small{font-size:11px}
#team-form>.small{margin:9px 0}
.team-results{margin-top:16px}
.team-match{padding:9px;border:1px solid var(--border);border-radius:8px;margin-top:6px}
.team-match-head{display:flex;justify-content:space-between;gap:6px;color:var(--text)}
.team-match p{margin:4px 0;font-size:12px;color:var(--muted)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body:has(dialog[open]){overflow:hidden}
@media(max-width:1050px){
  .frame{width:calc(100% - 54px)}
}
@media(max-width:740px){
  html{scroll-padding-top:108px}
  .frame{width:calc(100% - 30px)}
  .topbar-inner{min-height:61px;gap:10px;flex-wrap:wrap;justify-content:space-between;padding-top:11px}
  .brand{min-height:34px}.brand img{width:137px}
  .topnav{order:3;width:100%;justify-content:center;gap:27px}
  .nav-button{padding:6px 1px 7px;font-size:12px}
  .team-button{min-height:34px;padding:0 9px;font-size:11px;gap:5px}
  .team-button span{font-size:13px}
  .hero{padding:22px 0 17px}
  h1{font-size:clamp(33px,9.2vw,58px);margin-bottom:10px}
  .eyebrow{font-size:10px;margin-bottom:11px}
  .hero-description{font-size:12px}
  .finder{margin-top:10px;padding:9px}
  .catalog-filters{gap:4px}
  .catalog-filters .club-search{flex-basis:100%}
  .field{padding:6px 8px}
  .field select{font-size:12px}
  .chip select{min-height:27px;padding-left:6px;padding-right:17px;background-position:right 5px center;font-size:10px}
  .text-button{font-size:11px}
  .results{margin-top:20px}
  .result-heading{align-items:flex-start;flex-wrap:wrap}
  .result-heading h2{font-size:24px}
  .result-actions{margin-left:auto}
  .results-grid{display:block;--map-height:min(520px,65vh)}
  .list-jump{display:inline-block}
  .clubs-panel{margin-top:20px}
  .clubs-panel h3{margin:0 0 9px;font-size:17px}
  .result-list{max-height:none;overflow:visible;padding-right:0}
  .ranking{margin-top:27px;padding-top:19px}
  .ranking-list{grid-template-columns:minmax(0,1fr);gap:6px}
  .ranked-club{gap:9px;padding-inline:10px}
  .dialog-inner{padding:16px}
  .dialog h2{font-size:24px}
  .dialog-intro{font-size:12px}
  .dialog-links .button{min-height:34px;font-size:11px;padding-inline:8px}
  .team-match-head{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.arrow-icon{position:relative;display:inline-block;flex:none;width:11px;height:11px}
.arrow-icon::before{content:"";position:absolute;top:1px;right:1px;width:6px;height:6px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
.arrow-icon::after{content:"";position:absolute;top:5px;left:0;width:11px;height:1.5px;background:currentColor;transform:rotate(-45deg)}
.map-cluster{display:grid;place-items:center;border:2px solid #141a17;background:var(--accent);color:#132010;border-radius:50%;font:750 12px var(--heading);box-shadow:0 0 0 1px var(--accent),0 3px 15px #000a}
.map-cluster:hover{background:#edffb0}

.club-search input{width:100%;min-width:0;min-height:32px;border:0;border-radius:7px;padding:0 9px;background:transparent;color:var(--text);font-size:12px}
.club-search input::placeholder{color:var(--muted)}
.club-status{color:#ffd082}
.map-marker-shell.unavailable .map-pin{background:#353225;border-color:#907852;color:#ffdbad}

.favorites-filter{align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 9px;color:#d3ddd3;font-size:12px;font-weight:800}
.favorites-filter:hover,.favorites-filter[aria-pressed=true]{border-color:#728d4a;color:var(--accent);background:#243121}
#favorites-count{min-width:17px;border-radius:5px;background:#35452c;color:#e1f3c8;padding:0 4px;font-size:10px;text-align:center}
.card-actions{display:flex;align-items:center;flex:none;gap:4px}
.favorite-toggle{display:grid;place-items:center;flex:none;width:33px;height:33px;padding:0;border:1px solid #3a4c3a;border-radius:7px;background:#1b251c;color:#b4c3ad}
.favorite-toggle:hover,.favorite-toggle[aria-pressed=true]{border-color:#728d4a;color:var(--accent);background:#2b3b24}
.favorite-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.favorite-toggle[aria-pressed=true]{color:var(--accent)}
.favorite-toggle[aria-pressed=true] svg{fill:currentColor}
.club-detail-favorite{position:absolute;top:13px;right:51px}
@media(max-width:740px){.favorites-filter{min-height:29px;padding-inline:7px;font-size:10px}}

.orbital{position:absolute;inset:-138px -5% -190px 30%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 64% 43%,#25362066 0%,transparent 64%)}
.orbital i{position:absolute;border:1px solid #b5f55353;border-radius:50%;width:82%;height:37%;left:8%;top:30%;transform:rotate(-23deg)}
.orbital i:nth-child(2){transform:rotate(-38deg);border-color:#b5f55332}
.orbital i:nth-child(3){transform:rotate(-6deg);border-color:#b5f55338}
.orbital b{position:absolute;width:14px;height:14px;background:#cbe38b;top:40%;left:54%;clip-path:polygon(50% 0,63% 38%,100% 50%,63% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.orbital b:nth-of-type(2){top:27%;left:75%;width:10px;height:10px}
.orbital b:nth-of-type(3){top:55%;left:25%;width:5px;height:5px;border-radius:50%;clip-path:none}
@media(max-width:740px){
  .orbital{inset:-95px -130px -90px 13%}
}
