@import "tailwindcss"; @custom-variant dark (&:where(.dark, .dark *)); @theme { --color-dark-bg: #1a1a2e; --color-dark-surface: #16213e; --color-dark-border: #0f3460; --color-dark-text: #e0e0e0; --color-dark-muted: #8b8fa3; } @layer base { * { margin: 0; padding: 0; box-sizing: border-box; } html, body, #root { height: 100%; width: 100%; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } } /* Leaflet overrides */ .leaflet-container { width: 100%; height: 100%; z-index: 0; cursor: default !important; } /* Remove grab cursor from interactive layers */ .leaflet-interactive { cursor: default !important; } /* Grabbing only when actually dragging */ .leaflet-container.leaflet-dragging, .leaflet-container:active { cursor: grabbing !important; } /* Tool-specific cursors (applied via JS class toggle) */ .leaflet-container.tool-ruler { cursor: crosshair !important; } .leaflet-container.tool-rx-placement { cursor: crosshair !important; } .leaflet-container.tool-site-placement { cursor: cell !important; } /* Dark mode map tiles (invert brightness slightly) */ .dark .leaflet-tile-pane { filter: brightness(0.8) contrast(1.1) saturate(0.8); } /* Flash animation for batch-updated sites */ @keyframes flash-update { 0%, 100% { background-color: transparent; } 50% { background-color: rgba(59, 130, 246, 0.3); } } .flash-update { animation: flash-update 0.6s ease-in-out; }