@keyframes slideDownFade{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}:root{--bg-primary:#0a0b10;--bg-secondary:#12131a;--bg-tertiary:#1b1c26;--border-color:#242636;--accent-color:#3b82f6;--accent-glow:#3b82f633;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--color-purchased:#b3ecff;--color-purchased-hover:#b3ecffb3;--color-purchased-stroke:#0284c7;--color-available-green:#f3ffe6;--color-available-green-hover:#f3ffe6d9;--color-available-green-stroke:#166534;--color-available-pink:#ffe6f9;--color-available-pink-hover:#ffe6f9d9;--color-available-pink-stroke:#9d174d;--color-available-yellow:#ffff7f;--color-available-yellow-hover:#ffff7fd9;--color-available-yellow-stroke:#a16207;--sans-font:"Outfit", "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--sans-font);-webkit-font-smoothing:antialiased;width:100vw;height:100vh;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex}.app-container{flex:1;height:calc(100vh - 70px);display:flex;position:relative;overflow:hidden}.dashboard-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;height:70px;padding:0 24px;display:flex}.header-title-container h1{letter-spacing:-.5px;background:linear-gradient(135deg,#f3f4f6,#3b82f6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.header-title-container p{color:var(--text-muted);margin-top:2px;font-size:12px}.stats-container{gap:16px;display:flex}.stat-card{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;justify-content:center;min-width:110px;padding:8px 16px;transition:all .2s;display:flex}.stat-card:hover{border-color:var(--accent-color);box-shadow:0 4px 12px #3b82f61a}.stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:10px}.stat-value{color:var(--text-primary);margin-top:2px;font-size:18px;font-weight:700}.stat-value.purchased{color:#38bdf8}.stat-value.available{color:#4ade80}.sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:5;flex-direction:column;width:380px;height:100%;transition:width .3s cubic-bezier(.4,0,.2,1),border-color .3s;display:flex;overflow:hidden}.sidebar.collapsed{border-right-color:#0000;width:0}.sidebar-content{flex-direction:column;width:380px;height:100%;display:flex;overflow-y:auto}.sidebar-toggle-btn{background-color:var(--bg-secondary);border:1px solid var(--border-color);width:20px;height:60px;color:var(--text-secondary);cursor:pointer;z-index:12;border-left:none;border-radius:0 8px 8px 0;justify-content:center;align-items:center;transition:left .3s cubic-bezier(.4,0,.2,1),background-color .2s,color .2s;display:flex;position:absolute;top:50%;left:380px;transform:translateY(-50%);box-shadow:4px 0 10px #0000004d}.sidebar-toggle-btn.collapsed{left:0}.sidebar-toggle-btn:hover{background-color:var(--accent-color);color:#fff;border-color:var(--accent-color)}.sidebar-section{border-bottom:1px solid var(--border-color);padding:20px}.sidebar-section h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:12px;font-size:14px;font-weight:600}.search-container{align-items:center;display:flex;position:relative}.search-input{background-color:var(--bg-tertiary);border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 16px 10px 40px;font-size:14px;transition:all .2s}.search-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.filter-group{flex-direction:column;gap:10px;display:flex}.filter-btn{background-color:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;color:var(--text-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.filter-btn:hover{background-color:var(--bg-secondary);border-color:var(--text-muted)}.filter-btn.active{border-color:var(--accent-color);background-color:var(--accent-glow)}.color-indicator{border-radius:3px;width:12px;height:12px;margin-right:8px;display:inline-block}.color-indicator.purchased{background-color:var(--color-purchased);border:1px solid var(--color-purchased-stroke)}.color-indicator.avail-green{background-color:var(--color-available-green);border:1px solid var(--color-available-green-stroke)}.color-indicator.avail-pink{background-color:var(--color-available-pink);border:1px solid var(--color-available-pink-stroke)}.color-indicator.avail-yellow{background-color:var(--color-available-yellow);border:1px solid var(--color-available-yellow-stroke)}.inspector-panel{flex-direction:column;gap:16px;display:flex}.inspector-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.inspector-header{justify-content:space-between;align-items:center;display:flex}.inspector-title{color:var(--text-primary);font-size:20px;font-weight:700}.badge{text-transform:uppercase;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.badge.purchased{color:#38bdf8;background-color:#0ea5e926;border:1px solid #0ea5e94d}.badge.available{color:#4ade80;background-color:#22c55e26;border:1px solid #22c55e4d}.inspector-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.info-item{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:10px}.info-label{text-transform:uppercase;color:var(--text-muted);font-size:10px}.info-value{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:600}.zoom-to-btn{background-color:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:10px;padding:10px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.zoom-to-btn:hover{background-color:#2563eb;box-shadow:0 4px 12px #3b82f64d}.map-viewer-container{cursor:grab;background-color:#1e1e24;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.map-viewer-container:active{cursor:grabbing}.map-canvas{transform-origin:0 0;will-change:transform;background-color:#fff;width:2592px;height:3456px;position:absolute;top:0;left:0;box-shadow:0 10px 40px #0009}.map-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);z-index:10;background-color:#12131ad9;border-radius:8px;flex-direction:column;gap:4px;padding:6px;display:flex;position:absolute;bottom:24px;right:24px;box-shadow:0 10px 15px -3px #00000080}.control-btn{width:36px;height:36px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:16px;font-weight:600;transition:all .2s;display:flex}.control-btn:hover{background-color:var(--bg-tertiary);color:var(--accent-color)}.plot-tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);pointer-events:none;z-index:100;background-color:#12131aeb;border-radius:8px;min-width:140px;padding:10px 14px;font-size:12px;transition:opacity .15s ease-out;position:absolute;box-shadow:0 10px 15px -3px #0006}.tooltip-title{border-bottom:1px solid var(--border-color);justify-content:space-between;margin-bottom:4px;padding-bottom:2px;font-size:14px;font-weight:700;display:flex}.tooltip-row{justify-content:space-between;margin-top:3px;display:flex}.tooltip-label{color:var(--text-secondary);margin-right:8px}.tooltip-val{color:var(--text-primary);font-weight:600}.plot-shape{transition:all .15s;pointer-events:none!important}.plot-shape.status-purchased{fill-opacity:.8;stroke:var(--color-purchased-stroke);fill:var(--color-purchased)!important}.plot-shape.status-purchased:hover,.plot-shape.status-purchased.hovered{fill-opacity:.95;stroke:#0284c7;fill:var(--color-purchased-hover)!important;stroke-width:3.5px!important}.plot-shape.status-available.bookable:hover,.plot-shape.status-available.bookable.hovered{fill:#f59e0b26!important;stroke:#f59e0b!important;stroke-width:3.5px!important}.plot-shape.status-available.not-bookable{cursor:default!important}.plot-shape.status-available.not-bookable:hover,.plot-shape.status-available.not-bookable.hovered{stroke-width:1.5px!important}.plot-shape.selected.bookable{filter:drop-shadow(0 0 6px #f59e0b80);stroke:#f59e0b!important;stroke-width:4px!important}.plot-text{transition:fill .15s,transform .15s;font-weight:700!important}.plot-text.bookable{font-weight:700!important}.plot-text.bookable:hover,.plot-text.bookable.hovered{fill:#f59e0b!important;font-size:24px!important;font-weight:900!important}.plot-text.not-bookable{cursor:default!important;pointer-events:none!important}.plot-text.selected.bookable{fill:#ef4444!important;font-size:26px!important;font-weight:900!important}.plot-text.bookable.status-purchased{fill:#38bdf8!important;font-weight:900!important}.plot-text.bookable.status-available{fill:#000!important;font-weight:700!important}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background-color:#0a0b10b3;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.booking-modal{background-color:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;width:480px;max-width:90%;max-height:92vh;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0000000d,0 10px 10px -5px #0000000a}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header-teal{color:#fff;background-color:#0d9488;padding:20px 24px}.modal-header-tag{letter-spacing:.8px;text-transform:uppercase;color:#ffffffb3;font-size:10px;font-weight:700}.modal-header-title{letter-spacing:-.5px;margin-top:4px;font-size:24px;font-weight:700}.modal-progress-container{background-color:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:24px 32px 12px;display:flex;position:relative}.progress-step-wrapper{z-index:2;flex-direction:column;align-items:center;width:90px;display:flex}.progress-circle{color:#475569;background-color:#fff;border:2px solid #cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;transition:all .25s;display:flex}.progress-circle.active{color:#fff;background-color:#0d9488;border-color:#0d9488}.progress-label{letter-spacing:.5px;color:#64748b;text-align:center;margin-top:6px;font-size:9px;font-weight:700}.progress-label.active{color:#0d9488}.progress-line-connector{z-index:1;background-color:#cbd5e1;flex:1;height:2px;margin-top:-16px;transition:all .25s}.progress-line-connector.active{background-color:#0d9488}.booking-form{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:#0f172a;font-size:12px;font-weight:600}.required-star{color:#ef4444}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.booking-form input[type=text],.booking-form input[type=email],.booking-form textarea{color:#0f172a;width:100%;font-size:13px;font-family:var(--sans-font);background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:10px 14px;transition:all .2s}.booking-form input[type=text]:focus,.booking-form input[type=email]:focus,.booking-form textarea:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 2px #0d948833}.booking-form textarea{resize:none}.booking-form .input-error{border-color:#ef4444!important}.error-text{color:#ef4444;margin-top:2px;font-size:11px}.radio-group-container{gap:24px;padding:4px 0;display:flex}.radio-label{cursor:pointer;color:#475569;align-items:center;gap:8px;font-size:13px;display:flex}.radio-label input[type=radio]{accent-color:#0d9488;width:16px;height:16px}.modal-actions-container{border-top:1px solid #e2e8f0;justify-content:flex-end;gap:12px;margin-top:12px;padding-top:16px;display:flex}.btn-cancel{color:#475569;cursor:pointer;background:0 0;border:1px solid #cbd5e1;border-radius:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .2s}.btn-cancel:hover{color:#0f172a;border-color:#64748b}.btn-next{color:#fff;cursor:pointer;background-color:#0d9488;border:none;border-radius:8px;padding:10px 22px;font-size:13px;font-weight:600;transition:all .2s}.btn-next:hover{background-color:#0f766e;box-shadow:0 4px 12px #0d94884d}.confirmation-summary-box{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:12px;padding:16px;display:flex}.summary-section h5{text-transform:uppercase;color:#0d9488;letter-spacing:.5px;margin-bottom:8px;font-size:11px}.summary-row{justify-content:space-between;margin-bottom:4px;font-size:12px;display:flex}.sum-label{color:#475569}.sum-val{color:#0f172a;font-weight:600}.plot-shape.status-pending{fill-opacity:.85;stroke:#d97706;fill:#fbbf24!important}.plot-shape.status-pending:hover,.plot-shape.status-pending.hovered{fill-opacity:.95;stroke:#b45309;fill:#fbbf24b3!important;stroke-width:3.5px!important}.plot-text.bookable.status-pending{fill:#f59e0b!important;font-weight:900!important}.badge.pending{color:#f59e0b;background-color:#f59e0b26;border:1px solid #f59e0b4d}.tooltip-val.pending{color:#f59e0b}.admin-bookings-table-container::-webkit-scrollbar{width:6px;height:6px}.admin-bookings-table-container::-webkit-scrollbar-track{background:#12131a}.admin-bookings-table-container::-webkit-scrollbar-thumb{background:#242636;border-radius:3px}.admin-bookings-table-container::-webkit-scrollbar-thumb:hover{background:#3b82f6}
