.parking-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.parking-intro{background:linear-gradient(135deg,#083f31,#0c7453);color:#fff;border-radius:18px;padding:1.6rem}.parking-intro h1{margin:.25rem 0}.parking-intro p{color:#d8eee6}.parking-kpis{display:flex;gap:1.3rem;margin-top:1rem}.parking-kpis b{display:block;font-size:1.7rem}.parking-search{padding:1.1rem}.parking-search h2{margin-top:0}.parking-search-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.parking-search button{grid-column:1/-1}.parking-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin-top:1rem}.parking-map{height:520px;border-radius:14px;overflow:hidden;position:relative}.parking-map .leaflet-tile{max-width:none!important;width:256px!important;height:256px!important}.parking-list{max-height:520px;overflow:auto}.parking-card{background:#fff;border:1px solid #dfe8e4;border-radius:14px;padding:1rem;margin-bottom:.75rem;transition:.18s}.parking-card:hover{border-color:#67a990;transform:translateY(-1px)}.parking-card header{display:flex;justify-content:space-between;align-items:start;padding:0;background:none}.parking-card h3{margin:.2rem 0}.availability{border-radius:20px;padding:.35rem .6rem;background:#dcfce7;color:#166534;font-weight:750;font-size:.78rem}.availability.low{background:#fef3c7;color:#92400e}.availability.full{background:#fee2e2;color:#991b1b}.parking-meta{display:flex;gap:.8rem;flex-wrap:wrap;color:#607269;font-size:.82rem;margin:.55rem 0}.parking-card button{width:100%}.reserve-modal{position:fixed;inset:0;background:#082b226e;z-index:1400;display:none;place-items:center;padding:1rem}.reserve-modal.open{display:grid}.reserve-dialog{background:#fff;border-radius:18px;width:min(620px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0004}.reserve-head{display:flex;justify-content:space-between;padding:1.2rem 1.4rem;background:#073f30;color:#fff}.reserve-head h2{margin:0}.reserve-head button{background:#ffffff20;padding:.3rem .6rem}.reserve-body{padding:1.3rem}.reserve-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.reserve-grid label:nth-last-child(1){grid-column:1/-1}.reservation-success{background:#e8f7ef;border:1px solid #bde3ce;border-radius:14px;padding:1rem;margin:1rem 0}.reservation-code{font-size:1.3rem;font-weight:800;color:#0c6b4d}.parking-admin{margin-top:1rem;padding:0!important;overflow:hidden}.parking-admin summary{cursor:pointer;padding:1.1rem 1.3rem;background:#eef6f2;font-weight:750;color:#0c6b4d}.parking-admin form{padding:1.2rem}.parking-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.parking-admin-grid .wide{grid-column:1/-1}.parking-location-note{grid-column:1/-1;padding:.7rem;background:#f4f8f6;border-radius:8px}@media(max-width:900px){.parking-hero,.parking-layout{grid-template-columns:1fr}.parking-list{max-height:none}.parking-admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.parking-search-grid,.reserve-grid,.parking-admin-grid{grid-template-columns:1fr}.parking-admin-grid .wide{grid-column:auto}.parking-map{height:380px}}
