*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Arial,Helvetica,sans-serif;color:#1c2430}body{overflow:hidden}.map-app{height:100vh;display:grid;grid-template-columns:340px minmax(0,1fr);background:#dce7e8}.map-panel{z-index:500;display:flex;flex-direction:column;min-height:0;background:#fff;padding:16px 17px 10px;box-shadow:0 3px 18px #182a3522}.search-wrap{height:44px;display:flex;align-items:center;gap:9px;border:1px solid #dce2e5;border-radius:24px;padding:0 13px}.search-wrap span{font-size:22px;color:#51616b}.search-wrap input{border:0;outline:0;width:100%;font-size:15px}.panel-heading{padding:18px 4px 13px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#299d92;font-size:11px;font-weight:700;margin:0 0 8px}.panel-heading h1{font-size:23px;line-height:1.12;margin:0 0 7px;font-weight:800}.panel-heading p:last-child{margin:0;color:#66727a;font-size:14px}.view-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#eef2f3;border-radius:12px;padding:4px;gap:3px}.view-button{border:0;border-radius:9px;padding:10px 4px;background:transparent;color:#46545c;font-size:12px;font-weight:700;cursor:pointer}.view-button.active{background:#258e86;color:white;box-shadow:0 2px 6px #102e3022}.filter-area{padding:17px 2px 5px}.filter-area h2{font-size:13px;margin:0 0 9px}.tag-filters{display:flex;flex-wrap:wrap;gap:7px}.tag-filter{display:inline-flex;gap:7px;align-items:center;border:1px solid #d8e0e2;border-radius:999px;padding:6px 10px;font-size:12px;background:white;cursor:pointer}.tag-filter input{accent-color:#258e86;margin:0}.result-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f1;padding:13px 2px 8px;font-size:13px}.text-button{border:0;background:none;color:#278e85;font-weight:700;cursor:pointer}.result-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.result-item{display:flex;gap:10px;align-items:center;padding:9px 6px;border-radius:9px;cursor:pointer}button.result-item{width:100%;border:0;text-align:left;background:transparent;color:inherit;font:inherit}.result-item:hover,.result-item:focus{background:#f1f7f6;outline:0}.list-logo{width:32px;height:32px;border:1px solid #e1e7e9;border-radius:50%;object-fit:contain;padding:3px;background:#fff;flex:none}.list-fallback{display:grid;place-items:center;background:#e8f4f2;color:#247f78;font-size:17px}.result-copy{display:block;flex:1;min-width:0}.result-title-row{display:flex;align-items:center;gap:7px;min-width:0}.result-item strong{font-size:14px;display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-type-badge{display:inline-flex;align-items:center;flex:none;border-radius:999px;padding:3px 7px;font-size:9px;line-height:1.15;font-weight:700;letter-spacing:.01em}.arena-type-badge.type-outdoor{background:#e7f4ed;color:#2d7450}.arena-type-badge.type-hall{background:#e8f0fb;color:#3b6491}.arena-type-badge.type-gym{background:#fff2dd;color:#8a641f}.result-item small{display:block;color:#738087;font-size:11px;margin-top:3px}.club-selected-heading{padding:3px 5px 10px;border-bottom:1px solid #edf0f1;margin-bottom:4px}.back-to-clubs{border:0;background:none;color:#278e85;font-weight:700;font-size:12px;padding:7px 0;cursor:pointer}.selected-club-title{display:flex;align-items:center;gap:9px;padding:5px 0}.selected-club-title strong{display:block;font-size:14px}.selected-club-title small{display:block;color:#738087;font-size:11px;margin-top:3px}.panel-credit{font-size:10px;color:#758188;border-top:1px solid #edf0f1;padding-top:9px;margin:8px 0 0}.map-stage,#map{height:100%;width:100%;min-width:0}.map-stage{position:relative}.leaflet-container{background:#d9e6e3}.panel-toggle{display:none}.custom-marker{width:48px;height:48px;border:3px solid #258e86;border-radius:50%;background:#fff;box-shadow:0 2px 8px #17292c55;display:grid;place-items:center;overflow:hidden}.custom-marker.generic{background:#258e86;color:#fff;font-size:22px}.club-map-icon{width:48px;height:48px;border:3px solid #258e86;border-radius:50%;background:#fff;object-fit:contain;padding:4px;box-shadow:0 2px 8px #17292c55}.leaflet-popup-content-wrapper{border-radius:12px;padding:0;overflow:hidden}.leaflet-popup-content{margin:0;width:300px!important}.popup-card{font-size:14px}.popup-card>img{width:100%;height:150px;object-fit:cover;display:block;background:#eef2f2}.popup-body{padding:14px}.popup-body h3{margin:0 0 4px;font-size:18px}.popup-kicker{font-size:11px;text-transform:uppercase;color:#278e85;font-weight:700;letter-spacing:.07em}.popup-place{color:#647078;font-size:12px;margin:0 0 9px}.popup-body p{line-height:1.45;margin:9px 0}.popup-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.popup-tags span{background:#edf1f2;border-radius:20px;padding:5px 8px;font-size:11px}.popup-clubs{margin:10px 0 0;padding:0;list-style:none}.popup-clubs li{border-top:1px solid #edf0f1;padding:8px 0;display:flex;align-items:center;gap:8px}.popup-clubs img{width:23px;height:23px;object-fit:contain;border-radius:50%}.popup-clubs li span{flex:1;min-width:0}.popup-club-website,.club-website{display:block;color:#258e86;font-size:12px;font-weight:700;text-decoration:none;margin-top:4px}.popup-club-website:hover,.club-website:hover{text-decoration:underline}.popup-actions{display:flex;gap:8px;margin-top:12px}.popup-actions a{flex:1;text-align:center;border-radius:6px;background:#258e86;color:#fff;text-decoration:none;padding:9px;font-size:12px;font-weight:bold}.popup-actions a.secondary{background:#edf3f2;color:#247e77}@media(max-width:760px){body{overflow:hidden}.map-app{grid-template-columns:1fr;grid-template-rows:1fr}.map-stage{grid-row:1;grid-column:1}.map-panel{position:absolute;left:10px;top:10px;bottom:10px;width:min(330px,calc(100vw - 20px));border-radius:14px;transform:translateX(calc(-100% - 18px));transition:transform .22s ease}.map-panel.open{transform:translateX(0)}.panel-toggle{display:block;position:absolute;z-index:450;top:12px;left:12px;border:0;background:white;color:#1c3438;border-radius:10px;width:44px;height:44px;font-size:20px;box-shadow:0 2px 8px #17292c44}.leaflet-popup-content{width:min(300px,calc(100vw - 75px))!important}}

@media(max-width:760px){
  .map-app{height:100vh;height:100dvh}
  .map-panel{top:max(10px,env(safe-area-inset-top));bottom:max(10px,env(safe-area-inset-bottom));width:min(330px,calc(100vw - 76px));padding-top:62px}
  .panel-toggle{z-index:650;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));font-size:25px;line-height:1}
  .leaflet-control-zoom{display:none!important}
}
