body { font-family: 'Inter', sans-serif; overflow: hidden; }
#map { height: 100vh; width: 100%; }
.leaflet-popup-content-wrapper { border-radius: 8px; }
.leaflet-popup-content { font-size: 14px; margin: 10px !important; min-width: 240px; }
.custom-marker {
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%; color: white; font-weight: bold; text-align: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3); transition: opacity 0.3s ease;
}
.custom-marker.visited { opacity: 0.6; }
.pac-container {
    z-index: 10002 !important; 
}
.pac-item { padding: 10px; font-size: 14px; border-top: 1px solid #e5e7eb; }
.pac-item:first-child { border-top: none; }
.pac-item-query { font-weight: 600; }

#sidebar {
    transition: transform 0.3s ease-in-out;
    transform: translateX(0);
}
#sidebar.closed {
    transform: translateX(calc(-100% - 2rem));
}
.tab-btn { border-bottom: 2px solid transparent; }
.tab-btn.active { border-bottom-color: #4f46e5; color: #4f46e5; }

#search-widget {
    transition: width 0.3s ease-in-out;
    position: relative;
    width: 2.75rem; /* 44px */
}
#search-widget.active { width: 300px; }
#search-input {
    width: 0; padding-left: 0; padding-right: 0;
    transition: all 0.3s ease-in-out;
}
#search-widget.active #search-input {
    width: 100%;
    padding-left: 0.75rem;
    padding-right: 2.5rem;
}

.modal-form h4, .popup-form h4 { font-size: 1.1rem; font-weight: 600; margin-bottom: 12px; }
.modal-form label, .popup-form label { display: block; font-size: 0.8rem; font-weight: 500; margin-bottom: 4px; color: #4b5563; }
.modal-form input[type="text"], .modal-form input[type="color"], .popup-form input[type="text"], .popup-form input[type="color"] {
    width: 100%; padding: 6px 8px; border: 1px solid #d1d5db; border-radius: 6px; margin-bottom: 10px;
}
.modal-form input[type="color"], .popup-form input[type="color"] { height: 36px; padding: 4px; }
.modal-form .button-group, .popup-form .button-group { display: flex; justify-content: space-between; gap: 8px; }
.modal-form button, .popup-form button { flex: 1; padding: 8px 12px; border: none; border-radius: 6px; color: white; font-weight: 500; cursor: pointer; }
.modal-form .save-btn, .popup-form .save-btn { background-color: #4f46e5; }
.modal-form .cancel-btn, .popup-form .cancel-btn { background-color: #6b7280; }
.popup-display-info { margin-bottom: 12px; }
.popup-display-info b { display: block; margin-bottom: 4px; }

.autocomplete-items {
    position: absolute;
    border: 1px solid #d1d5db;
    border-top: none;
    z-index: 100;
    top: 100%;
    left: 0;
    right: 0;
    max-height: 150px;
    overflow-y: auto;
    background-color: white;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
}
.autocomplete-items div {
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid #e5e7eb;
}
.autocomplete-items div:last-child {
    border-bottom: none;
}
.autocomplete-items div:hover {
    background-color: #f3f4f6;
}
