:root{--ink:#101416;--muted:#697176;--bg:#f3f5f1;--card:#fff;--line:#e0e4df;--lime:#c8f31d;--red:#e96860;--dark:#151a1c}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif}h1,h2,h3,.logo{font-family:"Space Grotesk",sans-serif}a{color:inherit;text-decoration:none}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 5%;gap:40px;position:sticky;top:0;z-index:900}.logo{font-size:25px;font-weight:700;letter-spacing:-1px}.logo span{color:#8ba800}.topbar nav{display:flex;gap:23px;font-size:13px;font-weight:600;flex:1}.topbar nav a:hover{color:#6e8400}.account{display:flex;align-items:center;gap:12px;font-size:13px}.btn{display:inline-block;background:var(--lime);border:0;border-radius:10px;padding:10px 15px;font-weight:800;cursor:pointer}.btn.dark{background:var(--dark);color:#fff}.btn.ghost{background:#f0f2ef}.container{max-width:1200px;margin:auto;padding:28px 22px 60px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:stretch}.hero h1{font-size:46px;line-height:1.02;letter-spacing:-2px;margin:8px 0 13px}.hero p{color:var(--muted);max-width:550px}.panel,.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.map{height:560px;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#ddd}.search{display:flex;gap:8px;margin-bottom:10px}.search input{flex:1}.input,.select,textarea,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=datetime-local]{width:100%;padding:12px;border:1px solid #dfe3df;border-radius:10px;background:#fbfcfa;font:14px "DM Sans";outline:none}.input:focus,input:focus,textarea:focus{border-color:#a6c900}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.two{grid-template-columns:repeat(2,1fr)}.four{grid-template-columns:repeat(4,1fr)}.park{cursor:pointer;padding:0;overflow:hidden}.park:hover{box-shadow:0 10px 30px #0001;transform:translateY(-2px);transition:.15s}.photo{height:145px;background:linear-gradient(135deg,#293033,#87908d);position:relative}.photo img{width:100%;height:100%;object-fit:cover}.badge{position:absolute;top:10px;left:10px;background:var(--lime);border-radius:8px;padding:5px 8px;font-size:10px;font-weight:800}.parkbody{padding:15px}.meta{font-size:12px;color:var(--muted);margin-top:5px}.price{font-weight:800;margin-top:12px}.price small{font-weight:500;color:var(--muted)}.titleline{display:flex;justify-content:space-between;align-items:center;margin:25px 0 13px}.titleline h2{margin:0;font-size:21px}.stat{padding:18px;background:var(--dark);color:#fff;border-radius:18px}.stat b{font:700 35px "Space Grotesk";color:var(--lime)}.form{max-width:850px;margin:auto}.field{display:grid;gap:6px}.field label{font-size:11px;font-weight:800;color:var(--muted)}.formgrid{display:grid;gap:13px;grid-template-columns:1fr 1fr}.full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.flash{max-width:1160px;margin:12px auto 0;padding:12px 16px;border-radius:10px;font-size:13px}.flash.success{background:#eaf8bf}.flash.error{background:#ffe2df}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.table th{font-size:10px;text-transform:uppercase;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:45px}.modal{display:none;position:fixed;inset:0;background:#0008;z-index:1000;place-items:center;padding:20px}.modal.open{display:grid}.modalbox{background:#fff;border-radius:20px;width:min(550px,100%);padding:22px}.close{float:right;border:0;border-radius:50%;width:32px;height:32px;cursor:pointer}.route{background:var(--dark);color:#fff;border-radius:12px;padding:13px;margin:12px 0;font-size:13px}footer{text-align:center;color:#89908f;font-size:11px;padding:25px;border-top:1px solid var(--line)}@media(max-width:850px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.topbar{gap:15px;padding:0 16px}.topbar nav{display:none}.hero h1{font-size:36px}}@media(max-width:600px){.grid,.two,.four,.formgrid{grid-template-columns:1fr}.container{padding:18px 12px 45px}.map{height:430px}.account span{display:none}}
.formwide{max-width:1050px;margin:auto}.inline-input{display:flex;gap:8px}.inline-input input{flex:1}.smallmap{height:390px}.maptools{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}.parkmini{display:flex;justify-content:space-between;gap:10px}.staticbadge{position:static;display:inline-block;height:max-content}.routebox{width:min(820px,100%)}.route-map{height:360px;margin-top:14px}.routebuttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.routebuttons .btn{text-align:center}.modalbox h2{padding-right:30px}@media(max-width:600px){.inline-input{display:grid}.smallmap,.route-map{height:300px}.routebuttons .btn{flex:1}}
.availability-search{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end;margin:12px 0}.availability-search label{display:block;font-size:10px;font-weight:800;color:var(--muted);margin-bottom:5px}.slot-summary{margin-top:10px;padding:10px 12px;background:#f1f8d9;border-radius:10px;font-size:12px}.availability{font-size:12px;font-weight:800;color:#648000;margin-top:9px}.availability.full{color:#b24b45}.notification-link{position:relative;font-size:18px;display:inline-flex}.notification-count{position:absolute;top:-7px;right:-9px;background:#e96860;color:#fff;border-radius:99px;font-size:9px;min-width:17px;height:17px;display:grid;place-items:center;font-weight:800}.notification-list{display:grid;gap:0}.notification{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.notification:last-child{border-bottom:0}.notification.unread{background:#f7fbdc;border-radius:12px;padding:15px}.notification p{margin:6px 0;font-size:13px}.notification small{color:var(--muted);font-size:10px}.status-pill{display:inline-block;border-radius:99px;padding:5px 9px;background:#eef0ee;font-size:10px;font-weight:800}.status-pill.confirmed,.status-pill.active{background:#eaf8bf}.status-pill.cancelled,.status-pill.inactive{background:#ffe2df}.municipality-hero{display:grid;grid-template-columns:1fr 240px;gap:18px;background:var(--dark);color:#fff;border-radius:24px;padding:28px;margin-bottom:20px}.municipality-hero p{color:#c7ceca;max-width:720px}.municipality-stat{border-radius:18px;background:#202729;padding:20px;display:flex;flex-direction:column;justify-content:center}.municipality-stat span,.municipality-stat small{color:#aeb7b2;font-size:12px}.municipality-stat b{font:700 48px "Space Grotesk";color:var(--lime)}.municipality-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.zone-admin{min-height:230px}.zone-admin-head{display:flex;justify-content:space-between;gap:10px}.zone-admin h3{margin:4px 0}.zone-data{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.zone-data div{background:#f4f6f3;border-radius:12px;padding:10px}.zone-data b,.zone-data span{display:block}.zone-data b{font-size:13px}.zone-data span{font-size:10px;color:var(--muted);margin-top:3px}.zone-icon{font-size:28px}.zone-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.municipal-note{margin-top:18px;background:#eef5d5}.routebox{max-height:90vh;overflow:auto}@media(max-width:850px){.availability-search{grid-template-columns:1fr 1fr}.municipality-hero{grid-template-columns:1fr}.municipality-grid{grid-template-columns:1fr}.zone-card{grid-template-columns:auto 1fr}.zone-card .btn{grid-column:1/-1}.notification{display:block}.notification form{margin-top:10px}}@media(max-width:600px){.availability-search{grid-template-columns:1fr}.zone-data{grid-template-columns:1fr}}
.map-fallback{height:100%;display:grid;place-items:center;text-align:center;padding:30px;color:#66706d;background:#eef0ed;font-size:13px}
.route small{color:#cbd1cd;line-height:1.45}.routebuttons{margin-top:12px}.routebuttons .btn{min-width:130px}.map-fallback{line-height:1.6}
.institutional-booking{display:grid;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line, #e7e9e2)}
.institutional-booking .field{display:grid;gap:6px}
.institutional-booking .formgrid{margin:0}
.institutional-booking input{width:100%}

/* Geolocalización robusta: fallback y controles visibles */
.map-fallback{min-height:180px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;line-height:1.6}
#ownerMap{min-height:300px;position:relative}
#ownerMap .leaflet-container{height:100%;min-height:300px;width:100%;z-index:1}
.leaflet-control-attribution{font-size:9px}

.next-free{margin-top:7px;padding:8px 10px;border-radius:9px;background:#fff4d7;color:#735500;font-size:12px;font-weight:700}
