:root{--color-primary:#2e7d32;--color-background:#f3f4f6;--color-text-primary:#1f2937;--color-border:#d1d5db;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);background-color:var(--color-background);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;letter-spacing:-.01em;cursor:default;-webkit-user-select:none;user-select:none;margin:0}button,input,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6{color:#111827;margin-top:0;margin-bottom:.5em;font-weight:700}p{margin-top:0;line-height:1.5}@keyframes btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn{cursor:pointer;background:var(--btn-bg);width:100%;box-shadow:var(--btn-shadow,none);font-size:1rem;font-weight:600;font-family:var(--font-sans);letter-spacing:-.01em;border:none;border-radius:.75rem;outline:none;justify-content:center;align-items:center;padding:1rem;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn:hover:not(:disabled){background:var(--btn-bg-hover,var(--btn-bg));transform:translateY(-1px)}.btn-primary:hover:not(:disabled){box-shadow:0 6px 12px -2px #16a34a4d}.btn-secondary:hover:not(:disabled),.btn-outline:hover:not(:disabled){border-color:#9ca3af;box-shadow:0 2px 6px #0000000a}.btn-destructive:hover:not(:disabled){box-shadow:0 6px 12px -2px #ef44444d}.btn:active:not(:disabled){background:var(--btn-bg-active,var(--btn-bg));box-shadow:none;transition-duration:50ms;transform:translateY(0)}.btn:focus-visible{box-shadow:var(--btn-shadow,none), 0 0 0 3px #16a34a4d;outline:none}.btn-destructive:focus-visible{box-shadow:var(--btn-shadow,none), 0 0 0 3px #ef44444d}.btn:disabled{cursor:not-allowed;box-shadow:none;transform:none}.btn-modal{outline:none;transition:all .15s}.btn-modal-cancel:hover{filter:brightness(.97)}.btn-modal-cancel:active{filter:brightness(.94)}.btn-modal-cancel:focus-visible{box-shadow:0 0 0 3px #6b72804d}.btn-modal-confirm:hover{opacity:.9;transform:translateY(-.5px)}.btn-modal-confirm:active{opacity:.85;transform:translateY(0)}.btn-modal-confirm:focus-visible{box-shadow:0 0 0 3px #16a34a4d}.btn-modal-confirm-destructive:focus-visible{box-shadow:0 0 0 3px #ef44444d}.input{border:1px solid var(--color-border);width:100%;font-size:1rem;font-family:var(--font-sans);letter-spacing:-.01em;background-color:#f9fafb;border-radius:.5rem;padding:.75rem;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--color-primary);background-color:#fff;outline:none;box-shadow:0 0 0 3px #2e7d3226}.input-error{border-color:#dc2626}.input-error:focus{box-shadow:0 0 0 3px #dc262626}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.mapboxgl-popup-content,.maplibregl-popup-content{box-shadow:none;background:0 0;border-radius:0;margin:0;padding:0}.dark-popup .mapboxgl-popup-tip,.dark-popup .maplibregl-popup-tip{border-top-color:#18181b;border-bottom-color:#18181b}.light-popup .mapboxgl-popup-tip,.light-popup .maplibregl-popup-tip{border-top-color:#fff;border-bottom-color:#fff}