body{margin:0;padding:0;font-family:Plus Jakarta Sans,sans-serif}.main-page{flex-direction:column;height:100vh;display:flex;position:relative}.theme-toggle{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172abf;border:1px solid #ffffff14;border-radius:18px;justify-self:end;align-items:center;gap:0;width:fit-content;padding:0;display:flex;box-shadow:0 8px 30px #00000040,inset 0 1px #ffffff0f}.theme-btn{color:#cbd5e1;cursor:pointer;background:0 0;border:none;border-radius:14px 0 0 14px;align-items:center;gap:8px;padding:6px 14px;font-size:14px;font-weight:600;transition:all .25s;display:flex}.theme-btn:last-child{border-radius:0 14px 14px 0}.theme-btn:hover{background:#ffffff0f;transform:translateY(-1px)}.theme-btn:last-child.active{color:#facc15;background:linear-gradient(135deg,#f5c9542e,#fbbf2414);box-shadow:0 4px 12px #f5c9542e}.theme-icon{width:18px;height:18px}.theme-btn.active{color:#60a5fa;background:linear-gradient(135deg,#60a5fa2e,#3b82f614);box-shadow:0 4px 12px #60a5fa33}.project-header{z-index:50;-webkit-backdrop-filter:blur(12px);background:#0f172abf;border-bottom:1px solid #ffffff14;grid-template-columns:minmax(120px,1fr) minmax(0,3fr) minmax(120px,1fr);align-items:center;gap:12px;padding:10px 20px;display:grid;position:absolute;top:0;left:0;right:0}.project-detail{flex-direction:column;display:flex}.project-name{letter-spacing:-.3px;background:linear-gradient(135deg,#f5c954,#f5c954);-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-background-clip:text;justify-self:start;font-family:Plus Jakarta Sans,sans-serif;font-size:22px;font-weight:700}.project-address{color:#999;margin-top:5px;font-family:Plus Jakarta Sans,sans-serif;font-size:12px;line-height:16px}.header-spacer{justify-self:end}.header-filters{justify-self:center;align-items:center;gap:8px;width:100%;max-width:720px;display:flex}.status-filters{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.filter-btn{color:#cbd5e1;cursor:pointer;background:#1e293b99;border:1px solid #ffffff1f;border-radius:999px;padding:6px 14px;font-family:Plus Jakarta Sans,sans-serif;font-size:.72rem;font-weight:600;transition:background .2s,border-color .2s,color .2s}.filter-btn:hover{color:#f1f5f9;background:#334155cc}.filter-btn.active{color:#f8fafc;border-color:#0000}.filter-btn-all.active{background:linear-gradient(135deg,#475569,#334155)}.filter-btn-available.active{background:#166534;box-shadow:0 0 10px #22c55e44}.filter-btn-sold.active{background:#991b1b;box-shadow:0 0 10px #ef444444}.filter-btn-hold.active{background:#854d0e;box-shadow:0 0 10px #eab30844}.dropdown-filters{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.filter-select-wrap{align-items:center;gap:6px;display:flex}.filter-select-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-family:Plus Jakarta Sans,sans-serif;font-size:11px;font-weight:600}.filter-select{color:#e2e8f0;cursor:pointer;appearance:none;background:#1e293bd9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border:1px solid #ffffff1f;border-radius:8px;min-width:90px;padding:6px 28px 6px 10px;font-family:Plus Jakarta Sans,sans-serif;font-size:11px;font-weight:600}.filter-select:hover,.filter-select:focus{border-color:#60a5fa80;outline:none}.scene-legend{z-index:50;-webkit-backdrop-filter:blur(12px);background:#0f172a1f;border:1px solid #ffffff1a;border-radius:12px;gap:10px;padding:10px 15px;display:flex;position:absolute;bottom:24px;left:24px;box-shadow:0 8px 24px #00000059}.legend-item{color:#94a3b8;letter-spacing:.2px;align-items:center;gap:8px;font-family:Plus Jakarta Sans,sans-serif;font-size:11px;font-weight:600;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.dot-available{background:#22c55e;box-shadow:0 0 6px #22c55e88}.dot-hold{background:#eab308;box-shadow:0 0 6px #eab30888}.dot-sold{background:#ef4444;box-shadow:0 0 6px #ef444488}.dot-lift{background:#0284c7;box-shadow:0 0 6px #0284c788}.dot-stair{background:#b45309;box-shadow:0 0 6px #b4530988}.dot-amenity{background:#a78bfa;box-shadow:0 0 6px #a78bfa88}.dot-garden{background:#16a34a;box-shadow:0 0 6px #16a34a88}.dot-play{background:#ea580c;box-shadow:0 0 6px #ea580c88}.dot-club-house{background:#7c3aed;box-shadow:0 0 6px #7c3aed88}.dot-gym{background:#dc2626;box-shadow:0 0 6px #dc262688}.dot-library{background:#b45309;box-shadow:0 0 6px #b4530988}.dot-pool{background:#0284c7;box-shadow:0 0 6px #0284c788}.legend-section-title{text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-top:4px;font-family:Plus Jakarta Sans,sans-serif;font-size:.65rem;font-weight:700}.legend-section-title:first-child{margin-top:0}.stats-panel{z-index:50;-webkit-backdrop-filter:blur(12px);background:#0f172a1f;border:1px solid #ffffff1a;border-radius:12px;padding:10px 12px;position:absolute;bottom:24px;right:24px;box-shadow:0 8px 24px #00000059}.stats-panel-title{color:#e2e8f0;letter-spacing:-.2px;border-bottom:1px solid #ffffff14;margin:0 0 12px;padding-bottom:10px;font-family:Plus Jakarta Sans,sans-serif;font-size:.9rem;font-weight:700}.stats-list{gap:20px;display:flex}.stats-row{flex-direction:column;justify-content:space-between;align-items:center;gap:2px;display:flex}.stats-label{color:#94a3b8;align-items:center;font-family:Plus Jakarta Sans,sans-serif;font-size:.78rem;font-weight:500;display:flex}.stats-value{color:#f1f5f9;text-align:right;font-family:Plus Jakarta Sans,sans-serif;font-size:24px;font-weight:700}.stats-available .stats-value{color:#22c55e}.stats-hold .stats-value{color:#eab308}.stats-sold .stats-value{color:#ef4444}canvas{flex:1}.side-panel{-webkit-backdrop-filter:blur(16px)saturate(180%);color:#f8fafc;z-index:100;background:#0f172acc;border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;gap:5px;width:260px;padding:14px;font-family:Plus Jakarta Sans,sans-serif;animation:.4s cubic-bezier(.16,1,.3,1) slideIn;display:flex;position:absolute;top:80px;right:24px;box-shadow:0 25px 50px -12px #00000080}@keyframes slideIn{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.side-panel-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding-bottom:4px;display:flex}.side-panel-header h2{background:linear-gradient(135deg,#f5c954,#f5c954);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;margin:0;font-size:16px;font-weight:700}.close-x-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:4px;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.close-x-btn:hover{color:#f1f5f9;background:#ffffff1a}.details-list{flex-direction:column;gap:14px;display:flex}.property-details-list{--property-detail-row:2.25rem;--property-detail-gap:14px;max-height:calc(5 * var(--property-detail-row) + 4 * var(--property-detail-gap));overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#60a5fa8c #ffffff14;margin-top:3px;margin-right:-2px;padding-right:6px;overflow:hidden auto}.property-details-list::-webkit-scrollbar{width:6px}.property-details-list::-webkit-scrollbar-track{background:#ffffff0f;border-radius:3px}.property-details-list::-webkit-scrollbar-thumb{background:#60a5fa80;border-radius:3px}.property-details-list::-webkit-scrollbar-thumb:hover{background:#60a5fabf}.detail-item{justify-content:space-between;align-items:center;padding:2px 0;display:flex}.detail-item:last-child{border-bottom:none}.detail-label{color:#94a3b8;font-size:12px;font-weight:500}.detail-value{color:#f1f5f9;font-size:12px;font-weight:600}.detail-value.highlighted{color:#f5c954;font-family:monospace;font-size:12px}.status-badge{text-transform:uppercase;border-radius:9999px;align-items:center;padding:4px 10px;font-size:10px;font-weight:600;display:inline-flex;box-shadow:0 0 12px #0003}.status-badge.available{color:#4ade80;background:#22c55e26;border:1px solid #22c55e4d;box-shadow:0 0 10px #22c55e1a}.status-badge.booked{color:#f87171;background:#ef444426;border:1px solid #ef44444d;box-shadow:0 0 10px #ef44441a}.status-badge.held{color:#facc15;background:#eab30826;border:1px solid #eab3084d;box-shadow:0 0 10px #eab3081a}.action-buttons{flex-direction:column;gap:12px;margin-top:8px;display:flex}.btn{cursor:pointer;border:none;border-radius:12px;outline:none;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-icon{width:16px;height:16px}.btn-book{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #ef44444d}.btn-book:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#ef4444);transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.btn-book:active:not(:disabled){transform:translateY(0)}.btn-book.active{color:#ef4444;box-shadow:none;background:#ef44441a;border:1px solid #ef444466}.btn-book.active:hover{background:#ef444433}.btn-hold{color:#fff;background:linear-gradient(135deg,#eab308,#ca8a04);box-shadow:0 4px 12px #eab3084d}.btn-hold:hover:not(:disabled){background:linear-gradient(135deg,#facc15,#eab308);transform:translateY(-2px);box-shadow:0 6px 16px #eab30866}.btn-hold:active:not(:disabled){transform:translateY(0)}.btn-hold.active{color:#eab308;box-shadow:none;background:#eab3081a;border:1px solid #eab30866}.btn-hold.active:hover{background:#eab30833}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-cancel{color:#cbd5e1;background:#ffffff14;border:1px solid #ffffff26;margin-top:4px}.btn-cancel:hover{color:#f8fafc;background:#ffffff26}.toast-notification{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#f8fafc;z-index:1000;background:#0f172ae6;border:1px solid #ffffff26;border-radius:30px;padding:12px 24px;font-family:Plus Jakarta Sans,sans-serif;font-size:.9rem;font-weight:600;animation:.3s cubic-bezier(.16,1,.3,1) toastFadeIn,.3s cubic-bezier(.16,1,.3,1) 2.7s forwards toastFadeOut;position:absolute;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0009}@keyframes toastFadeIn{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@keyframes toastFadeOut{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,20px)}}.toast-content{align-items:center;gap:12px;display:flex}.toast-icon{border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.8rem;font-weight:700;display:flex}.toast-notification.booked .toast-icon{color:#fff;background:#22c55e}.toast-notification.held .toast-icon{color:#fff;background:#eab308}.toast-notification.available .toast-icon{color:#fff;background:#3b82f6}.panel-empty-message{color:#94a3b8;background:#1e293b80;border:1px solid #94a3b833;border-radius:8px;margin:1rem 0;padding:1rem;font-size:.95rem;line-height:1.5}.panel-empty-message strong{color:#e2e8f0}.right-section{justify-self:end;align-items:center;gap:16px;display:flex}.login-btn{color:#0f172a;cursor:pointer;background:linear-gradient(135deg,#f5c954,#fbbf24);border:none;border-radius:10px;padding:8px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:13px;font-weight:700;transition:all .2s;box-shadow:0 4px 12px #f5c9544d}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #f5c95466}.user-profile{position:relative}.user-icon-wrap{cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:8px;padding:5px 8px;transition:all .2s;display:flex}.user-icon-wrap:hover{background:#ffffff1f}.user-icon{color:#60a5fa;width:18px;height:18px}.user-name{color:#f1f5f9;text-transform:capitalize;font-size:10px;font-weight:600}.profile-image{object-fit:cover;border:1px solid #f5c954;border-radius:50%;width:20px;height:20px}.dropdown-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;z-index:100;background:#0f172af2;border:1px solid #ffffff1f;border-radius:12px;min-width:120px;padding:4px;transition:all .2s;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-10px);box-shadow:0 10px 25px #00000080}.user-profile:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.logout-btn{color:#ef4444;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-family:Plus Jakarta Sans,sans-serif;font-size:13px;font-weight:600;transition:all .2s;display:flex}.logout-btn:hover{background:#ef44441a}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.3s modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#0f172acc;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:400px;padding:24px;animation:.3s modalSlideUp;transform:translateY(0);box-shadow:0 25px 50px -12px #00000080}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{color:#f8fafc;margin:0;font-size:20px;font-weight:700}.login-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#94a3b8;font-size:13px;font-weight:600}.form-group input,.form-group select{color:#f1f5f9;box-sizing:border-box;background:#0f172a80;border:1px solid #ffffff1a;border-radius:10px;outline:none;padding:12px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;transition:all .2s}.form-group select option{color:#f1f5f9;background:#1e293b}.form-group input:focus,.form-group select:focus{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa33}.login-error{color:#ef4444;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;padding:10px;font-size:13px}.submit-btn{margin-top:8px;padding:12px;font-size:15px}.display-none-lg{display:none!important}@media screen and (width<=768px){.scene-legend,.stats-list,.header-filters{flex-direction:column}.project-header{grid-template-columns:1fr;gap:10px;padding:12px}.modal-content{width:80%}.display-none-sm{display:none}.display-none-lg{max-width:200px;position:absolute;top:10px;right:10px;gap:6px!important;display:flex!important}.project-name{max-width:200px}}
