:root{--color-primary: #2196f3;--color-primary-dark: #1976d2;--color-secondary: #ff5722;--color-success: #4caf50;--color-warning: #ff9800;--color-error: #f44336;--text-primary: #333333;--text-secondary: #666666;--text-muted: #999999;--text-inverse: #ffffff;--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-overlay: rgba(0, 0, 0, .5);--border-light: #e0e0e0;--border-medium: #cccccc;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--z-map: 1;--z-controls: 100;--z-panel: 1000;--z-modal: 2000;--z-overlay: 3000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;color:var(--text-primary);background:var(--bg-secondary);overflow-x:hidden}#app{width:100vw;height:100vh;position:relative;overflow:hidden}.loading-state-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay)}.loading-state-overlay.error{background:#000000b3}.loading-state-content{background:var(--bg-primary);padding:var(--space-xl);border-radius:12px;text-align:center;max-width:320px;width:90%}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--space-md)}.loading-message{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-sm)}.loading-error{color:var(--color-error);font-size:var(--text-sm)}@keyframes spin{to{transform:rotate(360deg)}}.layer-controls{position:absolute;top:var(--space-md);left:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);z-index:var(--z-controls)}.layer-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast);box-shadow:0 2px 8px #00000014}.layer-btn:hover{background:var(--bg-secondary)}.layer-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-inverse)}.layer-icon{font-size:var(--text-base)}.language-switcher{position:absolute;top:var(--space-md);right:var(--space-md);display:flex;align-items:center;gap:var(--space-xs);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;padding:4px;z-index:var(--z-controls);box-shadow:0 2px 8px #00000014}.lang-btn{padding:var(--space-xs) var(--space-sm);border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;border-radius:4px;transition:all var(--duration-fast)}.lang-btn.active{background:var(--color-primary);color:var(--text-inverse)}.lang-divider{color:var(--text-muted)}.privacy-indicator{position:fixed;right:var(--space-md);bottom:var(--space-md);width:32px;height:32px;border-radius:50%;background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:var(--z-controls);box-shadow:0 2px 8px #0000001f;transition:all var(--duration-fast)}.privacy-indicator:hover{background:var(--bg-secondary);color:var(--text-secondary)}.privacy-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity var(--duration-normal);pointer-events:none}.privacy-modal.visible{opacity:1;pointer-events:auto}.privacy-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006}.privacy-modal-content{position:relative;background:var(--bg-primary);border-radius:16px 16px 0 0;width:100%;max-width:480px;max-height:70vh;overflow:hidden;display:flex;flex-direction:column;transform:translateY(20px);transition:transform var(--duration-normal)}.privacy-modal.visible .privacy-modal-content{transform:translateY(0)}.privacy-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);flex-shrink:0}.privacy-modal-header h4{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.privacy-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;border-radius:50%}.privacy-modal-body{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-lg);-webkit-overflow-scrolling:touch}.privacy-intro{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-md)}.privacy-section{margin-bottom:var(--space-md)}.privacy-section h5{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.privacy-section ul{margin-left:var(--space-lg);color:var(--text-secondary);font-size:var(--text-sm)}.privacy-section li{margin-bottom:2px}.privacy-negative li{color:#f44336e6}.lead-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-modal);opacity:0;transition:opacity var(--duration-normal)}.lead-modal-backdrop.visible{opacity:1}.lead-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);background:var(--bg-primary);border-radius:12px;width:90%;max-width:440px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;z-index:calc(var(--z-modal) + 1);opacity:0;transition:opacity var(--duration-normal),transform var(--duration-normal);box-shadow:0 20px 60px #0003}.lead-modal.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.lead-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);flex-shrink:0}.lead-modal-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.lead-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:background var(--duration-fast)}.lead-modal-close:hover{background:var(--bg-secondary)}.lead-modal-body{flex:1;overflow-y:auto;padding:var(--space-lg);-webkit-overflow-scrolling:touch}.lead-form{display:flex;flex-direction:column;gap:var(--space-md)}.lead-form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.lead-form-group label{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.lead-form-group input,.lead-form-group textarea{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-light);border-radius:8px;font-size:var(--text-base);color:var(--text-primary);background:var(--bg-primary);transition:border-color var(--duration-fast)}.lead-form-group input:focus,.lead-form-group textarea:focus{outline:none;border-color:var(--color-primary)}.lead-form-group input::placeholder,.lead-form-group textarea::placeholder{color:var(--text-muted)}.lead-form-meta{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-radius:8px;font-size:var(--text-sm);color:var(--text-secondary)}.lead-form-meta p{margin-bottom:var(--space-xs)}.lead-form-meta p:last-child{margin-bottom:0}.lead-submit-btn{padding:var(--space-md);background:var(--color-primary);color:var(--text-inverse);border:none;border-radius:8px;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background var(--duration-fast)}.lead-submit-btn:hover{background:var(--color-primary-dark)}.lead-success{text-align:center;padding:var(--space-xl) var(--space-md)}.lead-success-icon{width:56px;height:56px;border-radius:50%;background:var(--color-success);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);margin:0 auto var(--space-md)}.lead-success h4{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.lead-success p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-lg)}@media (min-width: 768px){.privacy-modal{align-items:center}.privacy-modal-content{border-radius:12px;max-height:80vh;transform:translateY(0) scale(.96)}.privacy-modal.visible .privacy-modal-content{transform:translateY(0) scale(1)}}#map-container{width:100%;height:100%;position:absolute;top:0;left:0;z-index:1}.map-fullscreen{width:100vw;height:100vh;overflow:hidden;position:relative}.selected-point-marker{background:transparent;border:none}.marker-pulse{width:20px;height:20px;border-radius:50%;background:#ff572299;position:relative;animation:pulse-animation 2s ease-out infinite}.marker-pulse:before{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;margin-top:-4px;margin-left:-4px;border-radius:50%;background:#ff5722}.marker-pulse:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;border-radius:50%;border:2px solid #ff5722;animation:pulse-ring 2s ease-out infinite}@keyframes pulse-animation{0%{transform:scale(.8);opacity:1}50%{transform:scale(1);opacity:.8}to{transform:scale(.8);opacity:1}}@keyframes pulse-ring{0%{transform:scale(.5);opacity:1}to{transform:scale(2);opacity:0}}.layer-toggle-control{display:flex;flex-direction:column;gap:2px;background:#fffffff2;border-radius:4px;box-shadow:0 2px 4px #00000026;padding:4px}.layer-toggle-btn{display:block;width:100%;padding:8px 12px;border:none;background:#f5f5f5;color:#666;font-size:13px;cursor:pointer;border-radius:3px;transition:all .2s ease;text-align:center;white-space:nowrap}.layer-toggle-btn:hover{background:#e0e0e0}.layer-toggle-btn.active{background:#2196f3;color:#fff}.layer-toggle-btn.active:hover{background:#1976d2}.locate-control{display:flex;flex-direction:column;gap:2px;background:#fffffff2;border-radius:4px;box-shadow:0 2px 4px #00000026;padding:4px}.locate-btn,.reset-btn{display:block;width:36px;height:36px;padding:0;border:none;background:#fff;font-size:18px;cursor:pointer;border-radius:3px;transition:background .2s ease;text-align:center;line-height:36px}.locate-btn:hover,.reset-btn:hover{background:#f0f0f0}.zoom-control-custom{display:flex;flex-direction:column;gap:2px;background:#fffffff2;border-radius:4px;box-shadow:0 2px 4px #00000026;padding:4px}.zoom-in-btn,.zoom-out-btn{display:block;width:36px;height:36px;padding:0;border:none;background:#fff;color:#333;font-size:20px;font-weight:700;cursor:pointer;border-radius:3px;transition:background .2s ease;text-align:center;line-height:36px}.zoom-in-btn:hover,.zoom-out-btn:hover{background:#f0f0f0}@media (max-width: 768px){.layer-toggle-control{flex-direction:row;padding:2px}.layer-toggle-btn{padding:6px 10px;font-size:12px}.locate-btn,.reset-btn,.zoom-in-btn,.zoom-out-btn{width:32px;height:32px;font-size:16px;line-height:32px}.marker-pulse{width:16px;height:16px}.marker-pulse:before{width:6px;height:6px;margin-top:-3px;margin-left:-3px}.marker-pulse:after{width:16px;height:16px;margin-top:-8px;margin-left:-8px}}.leaflet-control-attribution{font-size:10px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.leaflet-control-attribution{max-width:120px}}.analysis-panel{position:absolute;bottom:0;left:0;right:0;background:var(--bg-primary);border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;z-index:var(--z-panel);transform:translateY(100%);transition:transform var(--duration-normal) ease-out;max-height:70vh;display:flex;flex-direction:column}.analysis-panel.open{transform:translateY(0)}.panel-handle{display:flex;justify-content:center;padding:var(--space-sm) 0;cursor:pointer;-webkit-tap-highlight-color:transparent}.handle-bar{width:36px;height:4px;background:var(--border-medium);border-radius:2px}.panel-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light);flex-shrink:0}.panel-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:background var(--duration-fast)}.close-btn:hover{background:var(--bg-secondary)}.panel-body{flex:1;overflow-y:auto;padding:var(--space-md);-webkit-overflow-scrolling:touch}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;text-align:center}.empty-state .empty-icon{font-size:3rem;margin-bottom:var(--space-md)}.empty-state .empty-text{color:var(--text-secondary);font-size:var(--text-sm)}.loading-state .spinner{width:36px;height:36px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:panel-spin 1s linear infinite;margin-bottom:var(--space-md)}.loading-state .loading-text{color:var(--text-secondary);font-size:var(--text-sm)}@keyframes panel-spin{to{transform:rotate(360deg)}}.result-state{align-items:stretch;text-align:left;min-height:auto}.result-text{font-size:var(--text-sm);line-height:1.7;color:var(--text-primary);white-space:pre-wrap;margin-bottom:var(--space-md)}.result-text br{display:block;content:"";margin-bottom:var(--space-sm)}.book-btn{width:100%;padding:var(--space-md);background:var(--color-secondary);color:var(--text-inverse);border:none;border-radius:8px;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background var(--duration-fast);margin-top:var(--space-md)}.book-btn:hover{background:#e64a19}.error-state .error-icon{font-size:2.5rem;margin-bottom:var(--space-sm)}.error-state .error-text{color:var(--color-error);font-size:var(--text-sm)}.calendly-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-md)}.calendly-modal{background:var(--bg-primary);border-radius:12px;width:100%;max-width:800px;height:85vh;display:flex;flex-direction:column;overflow:hidden}.calendly-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);flex-shrink:0}.calendly-modal .modal-header h3{font-size:var(--text-lg);font-weight:600}.calendly-container{flex:1;overflow:hidden;position:relative}.calendly-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-secondary)}.calendly-container iframe{width:100%;height:100%;border:none}@media (max-width: 767px){.analysis-panel{left:0;right:0;bottom:0;top:auto;width:100%;border-radius:16px 16px 0 0;max-height:75vh}.panel-handle{display:flex}.layer-controls{flex-direction:row;top:auto;bottom:var(--space-md);left:50%;transform:translate(-50%)}.layer-btn .layer-label{display:none}.language-switcher{top:var(--space-md);right:var(--space-md)}.calendly-modal{height:90vh;max-width:100%;border-radius:12px 12px 0 0}.privacy-container{padding:var(--space-lg) var(--space-md)}}@media (min-width: 768px) and (max-width: 1023px){.analysis-panel{position:absolute;top:0;right:0;bottom:0;left:auto;width:320px;border-radius:0;transform:translate(100%);max-height:none;box-shadow:-2px 0 12px #0000001f}.analysis-panel.open{transform:translate(0)}.panel-handle{display:none}.layer-controls{flex-direction:column}.layer-btn .layer-label{display:inline}}@media (min-width: 1024px){.analysis-panel{position:absolute;top:0;right:0;bottom:0;left:auto;width:400px;border-radius:0;transform:translate(100%);max-height:none;box-shadow:-2px 0 12px #0000001f}.analysis-panel.open{transform:translate(0)}.panel-handle{display:none}.layer-controls{flex-direction:column}.layer-btn .layer-label{display:inline}.panel-body{padding:var(--space-lg)}.result-text{font-size:var(--text-base)}}@media (min-width: 1440px){.analysis-panel{width:440px}}@media (hover: none){.layer-btn:hover{background:transparent}.layer-btn.active:hover{background:var(--color-primary)}.book-btn:hover{background:var(--color-secondary)}.close-btn:hover{background:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
