
    :root {

      --primary-color: #0ea5e9;

      --bg-dark: #0f172a;

      --panel-bg: rgba(30, 41, 59, 0.7);

      --glass-border: rgba(255, 255, 255, 0.08);

      --text-main: #f8fafc;

      --text-muted: #94a3b8;

      

      --status-available: #10b981;

      --status-sold: #ef4444;

      --status-locked: #f59e0b;

    }



    * {

      box-sizing: border-box;

      margin: 0;

      padding: 0;

      font-family: 'Inter', sans-serif;

    }



    body {

      background-color: var(--bg-dark);

      color: var(--text-main);

      height: 100vh;

      overflow: hidden;

      display: flex;

    }



    /* Main Layout */

    #sidebar {

      width: 380px;

      height: 100%;

      background: var(--panel-bg);

      backdrop-filter: blur(16px);

      -webkit-backdrop-filter: blur(16px);

      border-right: 1px solid var(--glass-border);

      display: none;

      flex-direction: column;

      z-index: 1000;

      transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    }



    #map-container {

      flex: 1;

      height: 100%;

      position: relative;

    }



    #map {

      width: 100%;

      height: 100%;

      background-color: #0b0f19;

    }



    /* Sidebar Content */

    .sidebar-header {

      padding: 24px;

      border-bottom: 1px solid var(--glass-border);

    }



    .sidebar-header h1 {

      font-size: 20px;

      font-weight: 700;

      background: linear-gradient(to right, #38bdf8, #0ea5e9);

      -webkit-background-clip: text;

      -webkit-text-fill-color: transparent;

      margin-bottom: 6px;

    }



    .sidebar-header p {

      font-size: 13px;

      color: var(--text-muted);

    }



    .search-box {

      margin-top: 16px;

      position: relative;

    }



    .search-box input {

      width: 100%;

      padding: 12px 16px 12px 40px;

      background: rgba(15, 23, 42, 0.6);

      border: 1px solid var(--glass-border);

      border-radius: 8px;

      color: var(--text-main);

      font-size: 14px;

      outline: none;

      transition: all 0.2s;

    }



    .search-box input:focus {

      border-color: var(--primary-color);

      box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.2);

    }



    .search-box svg {

      position: absolute;

      left: 14px;

      top: 50%;

      transform: translateY(-50%);

      width: 18px;

      height: 18px;

      fill: var(--text-muted);

    }



    /* Filters */

    .filter-section {

      padding: 16px 24px;

      border-bottom: 1px solid var(--glass-border);

    }



    .filter-label {

      font-size: 11px;

      text-transform: uppercase;

      letter-spacing: 0.05em;

      color: var(--text-muted);

      margin-bottom: 10px;

      font-weight: 600;

    }



    .filter-buttons {

      display: grid;

      grid-template-columns: repeat(3, 1fr);

      gap: 8px;

    }



    .filter-btn {

      padding: 8px 12px;

      background: rgba(51, 65, 85, 0.4);

      border: 1px solid var(--glass-border);

      border-radius: 6px;

      color: var(--text-main);

      font-size: 12px;

      font-weight: 500;

      cursor: pointer;

      transition: all 0.2s;

      text-align: center;

    }



    .filter-btn:hover {

      background: rgba(51, 65, 85, 0.7);

    }



    .filter-btn.active {

      background: var(--primary-color);

      border-color: var(--primary-color);

    }



    /* Lot List */

    .lot-list {

      flex: 1;

      overflow-y: auto;

      padding: 16px 24px;

    }



    .lot-list::-webkit-scrollbar {

      width: 6px;

    }

    .lot-list::-webkit-scrollbar-thumb {

      background: rgba(255, 255, 255, 0.1);

      border-radius: 3px;

    }



    .lot-item {

      padding: 12px 16px;

      background: rgba(30, 41, 59, 0.4);

      border: 1px solid var(--glass-border);

      border-radius: 8px;

      margin-bottom: 10px;

      cursor: pointer;

      transition: all 0.2s;

      display: flex;

      justify-content: space-between;

      align-items: center;

    }



    .lot-item:hover {

      background: rgba(30, 41, 59, 0.8);

      border-color: rgba(14, 165, 233, 0.4);

      transform: translateY(-1px);

    }



    .lot-item-info h3 {

      font-size: 14px;

      font-weight: 600;

      color: var(--text-main);

      margin-bottom: 2px;

    }



    .lot-item-info p {

      font-size: 12px;

      color: var(--text-muted);

    }



    .badge {

      padding: 4px 8px;

      border-radius: 4px;

      font-size: 10px;

      font-weight: 600;

      text-transform: uppercase;

      letter-spacing: 0.02em;

    }



    .badge-available {

      background: rgba(16, 185, 129, 0.15);

      color: var(--status-available);

    }



    .badge-sold {

      background: rgba(239, 68, 68, 0.15);

      color: var(--status-sold);

    }



    /* Custom Leaflet Marker Styling */

    .leaflet-tile,
    .leaflet-tile-container {
      image-rendering: -webkit-optimize-contrast !important;
      image-rendering: crisp-edges !important;
      image-rendering: pixelated !important;
    }

    .custom-marker {

      background: transparent;

      border: none;

    }



    .marker-dot {

      width: 24px;

      height: 24px;

      display: flex;

      align-items: center;

      justify-content: center;

      color: white;

      font-size: 8px;

      font-weight: 700;

      box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2), 0 4px 6px rgba(0, 0, 0, 0.3);

      transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);

    }

    /* Marker Shapes */
    .shape-circle {
      border-radius: 50%;
    }
    
    .shape-square {
      border-radius: 6px;
    }
    
    .shape-pin {
      border-radius: 50% 50% 50% 0;
      transform: rotate(-45deg);
    }
    
    .shape-pin span {
      transform: rotate(45deg);
      display: inline-block;
    }

    /* Marker Colors */
    .color-green { background-color: var(--status-available) !important; }
    .color-red { background-color: var(--status-sold) !important; }
    .color-orange { background-color: var(--status-locked) !important; }
    .color-blue { background-color: #0ea5e9 !important; }
    .color-purple { background-color: #8b5cf6 !important; }

    .marker-dot:hover {

      transform: scale(1.3);

      box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.4), 0 6px 12px rgba(0, 0, 0, 0.4);

      z-index: 1000 !important;

    }
    
    .marker-dot.shape-pin:hover {
      transform: rotate(-45deg) scale(1.3) !important;
    }

    /* Highlight Animation */
    .marker-dot.highlighted {
      transform: scale(1.6) !important;
      box-shadow: 0 0 20px #38bdf8, 0 0 0 6px rgba(56, 189, 248, 0.4) !important;
      z-index: 99999 !important;
      border: 2px solid #ffffff !important;
      animation: pulse-highlight 1.2s infinite alternate ease-in-out;
    }
    
    .marker-dot.shape-pin.highlighted {
      transform: rotate(-45deg) scale(1.6) !important;
    }

    @keyframes pulse-highlight {
      0% {
        transform: scale(1.4) !important;
        box-shadow: 0 0 12px #38bdf8, 0 0 0 4px rgba(56, 189, 248, 0.3) !important;
      }
      100% {
        transform: scale(1.8) !important;
        box-shadow: 0 0 28px #38bdf8, 0 0 0 10px rgba(56, 189, 248, 0.6) !important;
      }
    }




    /* Leaflet Popup Customization */

    .leaflet-popup-content-wrapper {

      background: rgba(15, 23, 42, 0.95) !important;

      backdrop-filter: blur(10px);

      border: 1px solid var(--glass-border);

      color: var(--text-main) !important;

      border-radius: 12px !important;

      padding: 0 !important;

      overflow: hidden;

      box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5) !important;

    }



    .leaflet-popup-content {

      margin: 0 !important;

      width: 280px !important;

    }



    .leaflet-popup-tip {

      background: rgba(15, 23, 42, 0.95) !important;

      border: 1px solid var(--glass-border);

    }



    .popup-card {

      display: flex;

      flex-direction: column;

    }



    .popup-header {

      padding: 16px;

      background: linear-gradient(135deg, rgba(30, 41, 59, 0.6), rgba(15, 23, 42, 0.8));

      border-bottom: 1px solid var(--glass-border);

      display: flex;

      justify-content: space-between;

      align-items: center;

    }



    .popup-title {

      font-size: 16px;

      font-weight: 700;

      color: var(--text-main);

    }



    .popup-body {

      padding: 16px;

    }



    .popup-row {

      display: flex;

      justify-content: space-between;

      margin-bottom: 8px;

      font-size: 13px;

    }



    .popup-label {

      color: var(--text-muted);

    }



    .popup-value {

      font-weight: 600;

      color: var(--text-main);

    }



    .popup-price {

      color: #38bdf8;

      font-size: 15px;

      font-weight: 700;

    }



    .popup-actions {

      padding: 12px 16px 16px;

      display: flex;

      gap: 8px;

    }



    .popup-btn {

      flex: 1;

      padding: 8px 12px;

      border-radius: 6px;

      font-size: 12px;

      font-weight: 600;

      text-align: center;

      cursor: pointer;

      text-decoration: none;

      transition: all 0.2s;

    }



    .popup-btn-primary {

      background: var(--primary-color);

      color: white;

      border: none;

    }



    .popup-btn-primary:hover {

      background: #0284c7;

    }



    .popup-btn-secondary {

      background: rgba(255, 255, 255, 0.08);

      color: var(--text-main);

      border: 1px solid var(--glass-border);

    }



    .popup-btn-secondary:hover {

      background: rgba(255, 255, 255, 0.15);

    }



    /* Loading state */

    .loading-overlay {

      position: absolute;

      top: 0;

      left: 0;

      width: 100%;

      height: 100%;

      background: var(--bg-dark);

      display: flex;

      flex-direction: column;

      align-items: center;

      justify-content: center;

      z-index: 9999;

      transition: opacity 0.4s ease;

    }



    .spinner {

      width: 48px;

      height: 48px;

      border: 3px solid rgba(14, 165, 233, 0.2);

      border-radius: 50%;

      border-top-color: var(--primary-color);

      animation: spin 1s ease-in-out infinite;

      margin-bottom: 16px;

    }



    @keyframes spin {

      to { transform: rotate(360deg); }

    }

    /* Editor Toolbar Styles */
    #editor-toolbar {
      position: absolute;
      top: 20px;
      right: 20px;
      z-index: 1000;
      background: rgba(30, 41, 59, 0.75);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 12px;
      padding: 14px 20px;
      box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
      display: none;
      flex-direction: column;
      gap: 10px;
      color: #f8fafc;
      width: 280px;
      transition: all 0.3s ease;
    }

    .toolbar-title {
      font-size: 14px;
      font-weight: 700;
      color: #38bdf8;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
      padding-bottom: 8px;
    }

    .toolbar-actions {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .toolbar-btn {
      padding: 8px 12px;
      border-radius: 6px;
      border: 1px solid rgba(255, 255, 255, 0.15);
      background: rgba(15, 23, 42, 0.5);
      color: #f8fafc;
      font-size: 13px;
      font-weight: 500;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      transition: all 0.2s ease;
    }

    .toolbar-btn:hover {
      background: rgba(255, 255, 255, 0.1);
      border-color: rgba(255, 255, 255, 0.3);
    }

    .toolbar-btn.primary {
      background: #0ea5e9;
      border-color: #0ea5e9;
      color: #ffffff;
      font-weight: 600;
    }

    .toolbar-btn.primary:hover {
      background: #0284c7;
      border-color: #0284c7;
    }

    .toolbar-btn.active-edit {
      background: #ef4444;
      border-color: #ef4444;
      color: #ffffff;
    }

    /* Modal Styles */
    .modal-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(15, 23, 42, 0.8);
      backdrop-filter: blur(8px);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 9999;
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    .modal-overlay.show {
      display: flex;
      opacity: 1;
    }

    .modal-container {
      background: #1e293b;
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 16px;
      width: 600px;
      max-width: 90%;
      padding: 24px;
      box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5);
      display: flex;
      flex-direction: column;
      gap: 16px;
      transform: scale(0.95);
      transition: transform 0.3s ease;
    }

    .modal-overlay.show .modal-container {
      transform: scale(1);
    }

    .modal-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
      padding-bottom: 12px;
    }

    .modal-header h2 {
      font-size: 18px;
      font-weight: 700;
      color: #38bdf8;
    }

    .modal-close-btn {
      background: transparent;
      border: none;
      color: #94a3b8;
      font-size: 20px;
      cursor: pointer;
    }

    .modal-close-btn:hover {
      color: #f8fafc;
    }

    .modal-body p {
      font-size: 13px;
      color: #94a3b8;
      margin-bottom: 12px;
      line-height: 1.5;
    }

    .json-textarea {
      width: 100%;
      height: 250px;
      background: #0f172a;
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 8px;
      color: #38bdf8;
      font-family: 'Courier New', Courier, monospace;
      font-size: 12px;
      padding: 12px;
      resize: none;
      outline: none;
    }

    .modal-footer {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
    }

    /* Form Styles */
    .form-group {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .form-label {
      font-size: 11px;
      font-weight: 600;
      color: #94a3b8;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }
    .form-input {
      background: #0f172a;
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 6px;
      padding: 8px 12px;
      color: #f8fafc;
      font-size: 13px;
      outline: none;
      transition: all 0.2s ease;
    }
    .form-input:focus {
      border-color: #0ea5e9;
      box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.2);
    }

    /* Floating Search Styles */
    .floating-search-container {
      position: absolute;
      top: 16px;
      left: 16px;
      z-index: 1100;
      width: 320px;
      font-family: 'Inter', sans-serif;
    }
    .floating-search-bar {
      display: flex;
      align-items: center;
      background: rgba(15, 23, 42, 0.9);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 12px;
      padding: 8px 12px;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    }
    .floating-search-bar .search-icon {
      width: 16px;
      height: 16px;
      fill: #94a3b8;
      margin-right: 8px;
      flex-shrink: 0;
    }
    .floating-search-bar input {
      flex: 1;
      background: transparent;
      border: none;
      color: #f8fafc;
      font-size: 13px;
      font-weight: 500;
      outline: none;
    }
    .floating-search-bar input::placeholder {
      color: #64748b;
    }
    .dropdown-trigger-btn {
      background: transparent;
      border: none;
      color: #94a3b8;
      cursor: pointer;
      padding: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      outline: none;
      transition: transform 0.2s, color 0.2s;
    }
    .dropdown-trigger-btn:hover {
      color: #f8fafc;
    }
    .dropdown-trigger-btn.open {
      transform: rotate(180deg);
    }
    .dropdown-trigger-btn .arrow-icon {
      width: 18px;
      height: 18px;
      fill: currentColor;
    }
    .floating-search-dropdown {
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      width: 100%;
      max-height: 280px;
      overflow-y: auto;
      background: rgba(15, 23, 42, 0.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 12px;
      box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);
      display: none;
      padding: 6px;
      box-sizing: border-box;
    }
    .floating-search-dropdown.show {
      display: block;
    }
    .dropdown-item {
      padding: 8px 12px;
      border-radius: 8px;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      transition: background-color 0.2s;
      margin-bottom: 2px;
    }
    .dropdown-item:last-child {
      margin-bottom: 0;
    }
    .dropdown-item:hover {
      background: rgba(255, 255, 255, 0.08);
    }
    .dropdown-item-code {
      font-weight: 600;
      font-size: 13px;
      color: #f8fafc;
    }
    .dropdown-item-info {
      font-size: 11px;
      color: #94a3b8;
      text-align: right;
    }
    .dropdown-item-status {
      display: inline-block;
      padding: 2px 6px;
      border-radius: 4px;
      font-size: 9px;
      font-weight: 700;
      text-transform: uppercase;
      margin-left: 8px;
    }
    .status-available {
      background: rgba(34, 197, 94, 0.15);
      color: #4ade80;
    }
    .status-sold {
      background: rgba(239, 68, 68, 0.15);
      color: #f87171;
    }
    .status-locked {
      background: rgba(245, 158, 11, 0.15);
      color: #fbbf24;
    }

    /* From Uiverse.io by satyamchaudharydev */
    .form button {
      border: none;
      background: none;
      color: #8b8ba7;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      outline: none;
      transition: color 0.3s ease;
    }
    
    .form button:hover {
      color: #1e293b;
    }

    /* styling of whole input container */
    .form {
      --timing: 0.3s;
      --width-of-input: 100%;
      --height-of-input: 42px;
      --border-height: 2px;
      --input-bg: #fff;
      --border-color: #169f72;
      --border-radius: 30px;
      --after-border-radius: 4px;
      position: relative;
      width: var(--width-of-input);
      height: var(--height-of-input);
      display: flex;
      align-items: center;
      padding-inline: 1em;
      border-radius: var(--border-radius);
      transition: border-radius 0.5s ease, box-shadow 0.3s ease;
      background: var(--input-bg,#fff);
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
      border: 1px solid rgba(0, 0, 0, 0.08);
      box-sizing: border-box;
    }

    /* styling of Input */
    .input {
      font-size: 0.85rem;
      background-color: transparent;
      width: 100%;
      height: 100%;
      padding-inline: 0.5em;
      border: none;
      color: #1e293b;
      font-weight: 600;
      font-family: 'Inter', sans-serif;
    }
    .input::placeholder {
      color: #94a3b8;
      font-weight: 500;
    }

    /* styling of animated border */
    .form:before {
      content: "";
      position: absolute;
      background: var(--border-color);
      transform: scaleX(0);
      transform-origin: center;
      width: 100%;
      height: var(--border-height);
      left: 0;
      bottom: 0;
      border-radius: 1px;
      transition: transform var(--timing) ease;
    }

    /* Hover on Input */
    .form:focus-within {
      border-radius: var(--after-border-radius);
      box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);
    }

    .input:focus {
      outline: none;
    }

    /* here is code of animated border */
    .form:focus-within:before {
      transform: scale(1);
    }

    /* styling of close button */
    .reset {
      border: none;
      background: none;
      opacity: 0;
      visibility: hidden;
      margin-right: 4px;
      transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    /* close button shown when typing */
    .input:not(:placeholder-shown) ~ .reset {
      opacity: 1;
      visibility: visible;
    }

    /* sizing svg icons */
    .form svg {
      width: 17px;
    }
    
    .form .dropdown-trigger-btn {
      border: none;
      background: none;
      color: #8b8ba7;
      cursor: pointer;
      padding: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      outline: none;
      transition: transform 0.3s ease, color 0.3s ease;
      margin-left: 2px;
    }
    .form .dropdown-trigger-btn:hover {
      color: #1e293b;
    }
    .form .dropdown-trigger-btn svg {
      width: 20px;
      height: 20px;
      fill: currentColor;
    }

    .map-center-btn {
      position: absolute;
      top: 90px;
      right: 10px;
      z-index: 1000;
      background: white;
      border: 1px solid rgba(0,0,0,0.2);
      border-radius: 4px;
      width: 30px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      box-shadow: 0 1px 5px rgba(0,0,0,0.4);
      transition: background-color 0.2s, box-shadow 0.2s;
    }
    .map-center-btn:hover {
      background-color: #f4f4f4;
      box-shadow: 0 1px 8px rgba(0,0,0,0.5);
    }
    .map-center-btn svg {
      width: 18px;
      height: 18px;
      fill: #333333;
    }

