:root{--bg-color:#0b0f19;--bg-color-glass:#0b0f19b3;--text-primary:#f0f6fc;--text-secondary:#8b949e;--accent-blue:#0ea5e9;--accent-blue-hover:#38bdf8;--accent-red:#ef4444;--accent-red-hover:#f87171;--glass-border:#ffffff14;--lot-available:#0ea5e959;--lot-available-hover:#38bdf899;--lot-sold:#ef444459;--lot-sold-hover:#f8717199;--lot-stroke:#fff9;--transition-speed:.3s}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);flex-direction:column;width:100vw;height:100vh;font-family:Inter,sans-serif;display:flex;overflow:hidden}#app{flex-direction:column;flex-grow:1;width:100%;height:100%;display:flex;overflow:hidden}.glass-header{background:var(--bg-color-glass);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);z-index:10;justify-content:space-between;align-items:center;width:100%;padding:1rem 2rem;display:flex;position:absolute;top:0;left:0}.logo h1{letter-spacing:-.5px;background:linear-gradient(135deg, #fff, var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:800}.logo span{color:var(--text-secondary);font-weight:300}.controls button{border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-speed);background:#ffffff08;border-radius:8px;margin-right:.5rem;padding:.5rem 1.25rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:500}.controls button:hover{color:var(--text-primary);background:#ffffff1a}.controls button.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue-hover);box-shadow:0 4px 12px #0ea5e94d}.legend{color:var(--text-secondary);gap:1.5rem;font-size:.85rem;font-weight:500;display:flex}.legend-item{align-items:center;gap:.5rem;display:flex}.color-box{border-radius:3px;width:12px;height:12px;display:inline-block}.color-box.available{background:var(--accent-blue)}.color-box.sold{background:var(--accent-red)}.map-container{cursor:grab;background:radial-gradient(circle,#151c2c 0%,#080a10 100%);flex-grow:1;position:relative;overflow:hidden}.map-container:active{cursor:grabbing}.map-wrapper{transform-origin:0 0;-webkit-user-select:none;user-select:none;transition:opacity .4s;position:absolute;top:0;left:0}#base-map-image{border-radius:12px;max-width:none;transition:opacity .5s;display:block;box-shadow:0 20px 50px #00000080}#interactive-overlay{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.lot-polygon{pointer-events:all;fill:var(--lot-available);stroke:var(--lot-stroke);stroke-width:6px;stroke-linejoin:round;stroke-linecap:round;cursor:pointer;vector-effect:non-scaling-stroke;transition:all .25s}.lot-polygon:hover{fill:var(--lot-available-hover);stroke:#fff;stroke-width:8px;filter:drop-shadow(0 0 8px #38bdf8cc)}.lot-polygon.sold{fill:var(--lot-sold);stroke:#fff6}.lot-polygon.sold:hover{fill:var(--lot-sold-hover);stroke:#fffc;filter:drop-shadow(0 0 8px #f87171cc)}.lot-label{fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none;filter:drop-shadow(0 2px 4px #000c);font-family:Outfit,sans-serif;font-size:28px;font-weight:800;transition:all .3s}.sold-stamp-bg{fill:#ef4444;rx:6px;pointer-events:none;filter:drop-shadow(0 4px 8px #00000080)}.sold-stamp-text{fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none;letter-spacing:2px;font-family:Outfit,sans-serif;font-size:24px;font-weight:800}.glass-tooltip{background:var(--bg-color-glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);pointer-events:none;text-align:center;z-index:100;border-radius:12px;min-width:120px;padding:1rem 1.25rem;transition:opacity .2s,transform .1s ease-out;position:absolute;transform:translate(-50%,-120%);box-shadow:0 10px 30px #00000080}.glass-tooltip:after{content:"";border-right:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);background:#0b0f19e6;width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}#tooltip-title{margin-bottom:.5rem;font-family:Outfit,sans-serif;font-size:1.2rem;font-weight:600}.status-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:20px;padding:.25rem .75rem;font-size:.75rem;font-weight:700;display:inline-block}.status-badge.available{color:#38bdf8;background:#0ea5e933;border:1px solid #0ea5e980}.status-badge.sold{color:#f87171;background:#ef444433;border:1px solid #ef444480}.loader-overlay{background:var(--bg-color);z-index:20;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .5s;display:flex;position:absolute;top:0;left:0}#export-modal{-webkit-backdrop-filter:blur(8px);background:#080a10d9}.export-modal-content{background:var(--bg-color-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;flex-direction:column;align-items:center;padding:3rem;display:flex;box-shadow:0 20px 50px #00000080}.spinner{border:3px solid #ffffff1a;border-top-color:var(--accent-blue);border-radius:50%;width:40px;height:40px;margin-bottom:1rem;animation:1s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.export-controls{z-index:100;position:absolute;bottom:2rem;left:2rem}.btn-export{background:var(--bg-color-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;transition:all var(--transition-speed);border-radius:8px;padding:.8rem 1.5rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:600;box-shadow:0 4px 12px #0006}.btn-export:hover{color:#fff;background:#ffffff1a;border-color:#fff}.zoom-controls{background:var(--bg-color-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);z-index:100;border-radius:8px;flex-direction:column;display:flex;position:absolute;bottom:2rem;right:2rem;overflow:hidden;box-shadow:0 4px 12px #0006}.zoom-controls button{border:none;border-bottom:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;transition:background var(--transition-speed);background:0 0;padding:.8rem 1rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:600}.zoom-controls button:last-child{border-bottom:none;font-size:.85rem}.zoom-controls button:hover{color:#fff;background:#ffffff1a}
