    :root {
      --primary-color: #0d6efd;
      --secondary-color: #6c757d;
      --success-color: #198754;
      --warning-color: #ffc107;
      --danger-color: #dc3545;
      --navbar-height: 70px;
      --border-radius: 10px;
      --shadow-light: 0 2px 8px rgba(0,0,0,0.1);
      --shadow-medium: 0 4px 16px rgba(0,0,0,0.15);
    }

    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      background: #f8f9fa;
    }

    /* Navbar Styling */
    .navbar {
      background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
      border-bottom: 1px solid #e9ecef;
      box-shadow: var(--shadow-light);
      height: var(--navbar-height);
      backdrop-filter: blur(10px);
    }

    .navbar-brand img {
      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
    }

    /* Button Styling */
    .btn {
      border-radius: var(--border-radius);
      font-weight: 500;
      transition: all 0.3s ease;
      position: relative;
      overflow: hidden;
    }

    .btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
      transition: left 0.5s;
    }

    .btn:hover::before {
      left: 100%;
    }

    .btn-primary {
      background: linear-gradient(135deg, var(--primary-color), #0b5ed7);
      border: none;
      box-shadow: 0 2px 8px rgba(13, 110, 253, 0.3);
    }

    .btn-primary:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(13, 110, 253, 0.4);
    }

    .btn-success {
      background: linear-gradient(135deg, var(--success-color), #157347);
      border: none;
      box-shadow: 0 2px 8px rgba(25, 135, 84, 0.3);
    }

    .btn-outline-primary {
      border: 2px solid var(--primary-color);
      color: var(--primary-color);
      background: rgba(13, 110, 253, 0.05);
    }

    .btn-outline-primary:hover {
      background: var(--primary-color);
      transform: translateY(-1px);
    }

    /* Map Styling */
    #map {
      position: absolute;
      top: var(--navbar-height);
      right: 0;
      bottom: 0;
      left: 0;
      border-radius: 0;
      box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
    }

    /* Quick Access Panel */
    .quick-access {
      position: fixed;
      top: 90px;
      left: 50px;
      z-index: 1000;
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(10px);
      border-radius: var(--border-radius);
      box-shadow: var(--shadow-medium);
      padding: 15px;
      min-width: 200px;
      transition: all 0.3s ease;
    }

    .quick-access.collapsed {
      transform: translateX(-100%);
    }

    .quick-access-toggle {
      position: absolute;
      right: -40px;
      top: 10px;
      background: rgba(255, 255, 255, 0.9);
      border: none;
      border-radius: 0 var(--border-radius) var(--border-radius) 0;
      padding: 8px 12px;
      box-shadow: 2px 0 8px rgba(0,0,0,0.1);
    }

    /* Offcanvas Styling */
    .offcanvas {
      background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
      border: none;
      box-shadow: var(--shadow-medium);
    }

    .offcanvas-header {
      background: linear-gradient(135deg, var(--primary-color), #0b5ed7);
      color: white;
      border-radius: var(--border-radius) var(--border-radius) 0 0;
      margin: -1rem -1rem 1rem -1rem;
      padding: 1rem;
    }

    .offcanvas-title {
      font-weight: 600;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    /* Form Styling */
    .form-control, .form-select {
      border-radius: var(--border-radius);
      border: 2px solid #e9ecef;
      transition: all 0.3s ease;
    }

    .form-control:focus, .form-select:focus {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
    }

    /* Card Styling */
    .config-card {
      background: white;
      border-radius: var(--border-radius);
      box-shadow: var(--shadow-light);
      border: none;
      margin-bottom: 1rem;
      overflow: hidden;
    }

    .config-card-header {
      background: linear-gradient(135deg, #f8f9fa, #e9ecef);
      border-bottom: 1px solid #dee2e6;
      padding: 0.75rem 1rem;
      font-weight: 600;
      color: #495057;
    }

    .config-card-body {
      padding: 1rem;
    }

    /* Region List Styling */
    .region-item {
      background: white;
      border-radius: var(--border-radius);
      box-shadow: var(--shadow-light);
      margin-bottom: 0.5rem;
      padding: 0.75rem;
      border-left: 4px solid var(--primary-color);
      transition: all 0.3s ease;
    }

    .region-item:hover {
      transform: translateX(5px);
      box-shadow: var(--shadow-medium);
    }

    /* Filter Chips */
    .filter-chip {
      display: inline-block;
      background: var(--primary-color);
      color: white;
      padding: 0.25rem 0.75rem;
      border-radius: 20px;
      font-size: 0.85rem;
      margin: 0.25rem;
      transition: all 0.3s ease;
    }

    .filter-chip:hover {
      background: #0b5ed7;
      transform: scale(1.05);
    }

    /* Modal Styling */
    .modal-content {
      border-radius: var(--border-radius);
      border: none;
      box-shadow: var(--shadow-medium);
    }

    .modal-header {
      background: linear-gradient(135deg, var(--primary-color), #0b5ed7);
      color: white;
      border-radius: var(--border-radius) var(--border-radius) 0 0;
    }

    /* Responsive Design */
    @media (max-width: 768px) {
      .quick-access {
        left: 10px;
        min-width: 160px;
      }
      
      .navbar .d-flex {
        gap: 0.5rem !important;
      }
      
      .btn {
        padding: 0.375rem 0.5rem;
      }
    }

    /* Loading Animation */
    .loading {
      position: relative;
    }

    .loading::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 20px;
      height: 20px;
      margin: -10px 0 0 -10px;
      border: 2px solid #f3f3f3;
      border-top: 2px solid var(--primary-color);
      border-radius: 50%;
      animation: spin 1s linear infinite;
    }

    @keyframes spin {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }

    /* Leaflet Custom Styling */
    .leaflet-tile {
      border: none !important;
      image-rendering: auto;
    }

    .leaflet-container {
      background: #f1f3f4;
    }

    .leaflet-popup-content-wrapper {
      border-radius: var(--border-radius);
      box-shadow: var(--shadow-medium);
    }