.booking-hero{padding:4rem 1rem 2rem;background-color:#f8f9fa;text-align:center}.booking-hero h1{font-size:2.2rem;color:#1c1c1c;margin-bottom:.5rem}.booking-hero p{color:#666;max-width:600px;margin:0 auto}.map-section{padding:2rem 1rem 4rem;max-width:1200px;margin:0 auto}.map-layout{display:flex;gap:24px;align-items:flex-start}.map-container{flex:1;position:relative;background:#e9ecef;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #00000014;min-height:400px}.base-map{display:block;width:100%;height:auto;object-fit:cover}.map-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.map-overlay .plot{pointer-events:visibleFill;fill:#00a9871a;stroke:#fff6;stroke-width:3;transition:all .25s ease;cursor:pointer}.map-overlay .plot:hover{fill:#00a98766;stroke:#fff}.map-overlay .plot.active{fill:#fc06;stroke:#fc0;stroke-width:4}.map-overlay .plot.taken{fill:#e74c3c4d;stroke:#e74c3c80;cursor:not-allowed}.details-panel{width:380px;background:#fff;border:1px solid #eee;border-radius:12px;padding:24px;box-shadow:0 4px 24px #0000000f;position:sticky;top:80px}.panel-empty h2,.panel-empty h3{color:#757575;font-size:1.4rem;text-align:center;margin-top:40px}.panel-empty p{color:#6b7280;text-align:center}.panel-content.hidden{display:none}.panel-content h2{font-size:1.8rem;margin:0 0 10px;color:#111}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:600;margin-bottom:20px}.status-badge.available{background:#e6f6ee;color:#00a987}.status-badge.booked{background:#fdf2f2;color:#e74c3c}.info-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.info-item{display:flex;justify-content:space-between;border-bottom:1px dashed #eee;padding-bottom:12px}.info-item .lbl{color:#666}.info-item .val{font-weight:600;color:#222;text-align:right;max-width:60%}.panel-actions{display:flex;flex-direction:column;gap:12px}.btn-book{padding:14px;font-size:1.05rem;border-radius:8px}.btn-book[disabled]{background:#ccc;cursor:not-allowed;opacity:.7}@media(max-width:980px){.map-layout{flex-direction:column}.details-panel{width:100%;position:static}}.booking-tab .icon-label{color:#00785f}.panel-empty h2.panel-empty__title{font-size:1.17em;margin:1em 0}
