body {
    margin: 0px;
}

#map {
    height: 100vh;
    width: 100%;
}

/* Color and Opacity Control Styles */
#map-controls {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background-color: white;
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 300px;
}
.control-group {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: Arial, Helvetica, sans-serif;
}
.control-group.color-group{
    margin-right: 100px;
}
#color-label, #opacity-label {
    font-size: 0.9em;
    white-space: nowrap;
    flex-grow: 1;
}
#color-picker, #opacity-slider {
    flex-grow: 2;
}
#color-value, #opacity-value {
    width: 40px;
    text-align: right;
    font-size: 0.9em;
}

.breadcrumb {
    position: absolute;
    top: 20px;
    left: 60px;
    z-index: 1000;
    /*centering*/
    display: inline-block;
    box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.35);
    overflow: hidden;
    border-radius: 5px;
    /*Lets add the numbers for each link using CSS counters. flag is the name of the counter. to be defined using counter-reset in the parent element of the links*/
    counter-reset: flag;
    text-align: center;
    background: #689976;
    background: linear-gradient(#689976, #ACDACC);
    font-family: Arial, 'Merriweather Sans', verdana;
}

.breadcrumb a {
    text-decoration: none;
    outline: none;
    display: block;
    float: left;
    font-size: 12px;
    line-height: 36px;
    color: white;
    /*need more margin on the left of links to accomodate the numbers*/
    padding: 0 10px 0 60px;
    background: #666;
    background: linear-gradient(#666, #333);
    position: relative;
}
/*since the first link does not have a triangle before it we can reduce the left padding to make it look consistent with other links*/
.breadcrumb a:first-child {
    padding-left: 46px;
    border-radius: 5px 0 0 5px; /*to match with the parent's radius*/
}
.breadcrumb a:first-child:before {
    left: 14px;
}
.breadcrumb a:last-child {
    border-radius: 0 5px 5px 0; /*this was to prevent glitches on hover*/
    padding-right: 20px;
}

/*hover/active styles*/
.breadcrumb a.active, .breadcrumb a:hover{
    background: #333;
    background: linear-gradient(#333, #000);
}
.breadcrumb a.active:after, .breadcrumb a:hover:after {
    background: #333;
    background: linear-gradient(135deg, #333, #000);
}

/*adding the arrows for the breadcrumbs using rotated pseudo elements*/
.breadcrumb a:after {
    content: '';
    position: absolute;
    top: 0; 
    right: -18px; /*half of square's length*/
    /*same dimension as the line-height of .breadcrumb a */
    width: 36px; 
    height: 36px;
    /*as you see the rotated square takes a larger height. which makes it tough to position it properly. So we are going to scale it down so that the diagonals become equal to the line-height of the link. We scale it to 70.7% because if square's: 
    length = 1; diagonal = (1^2 + 1^2)^0.5 = 1.414 (pythagoras theorem)
    if diagonal required = 1; length = 1/1.414 = 0.707*/
    transform: scale(0.707) rotate(45deg);
    /*we need to prevent the arrows from getting buried under the next link*/
    z-index: 1;
    /*background same as links but the gradient will be rotated to compensate with the transform applied*/
    background: #666;
    background: linear-gradient(135deg, #666, #333);
    /*stylish arrow design using box shadow*/
    box-shadow: 
        2px -2px 0 2px rgba(0, 0, 0, 0.4), 
        3px -3px 0 2px rgba(255, 255, 255, 0.1);
    /*
        5px - for rounded arrows and 
        50px - to prevent hover glitches on the border created using shadows*/
    border-radius: 0 5px 0 50px;
}
/*we dont need an arrow after the last link*/
.breadcrumb a:last-child:after {
    content: none;
}
/*we will use the :before element to show numbers*/
.breadcrumb a:before {
    content: counter(flag);
    counter-increment: flag;
    /*some styles now*/
    border-radius: 100%;
    width: 20px;
    height: 20px;
    line-height: 20px;
    margin: 8px 0;
    position: absolute;
    top: 0;
    left: 30px;
    background: #444;
    background: linear-gradient(#444, #222);
    font-weight: bold;
}


.flat a, .flat a:after {
    background: white;
    color: black;
    transition: all 0.5s;
}
.flat a:before {
    background: white;
    box-shadow: 0 0 0 1px #ccc;
}
.flat a:hover, .flat a.active, 
.flat a:hover:after, .flat a.active:after{
    background: #9EEB62;
    cursor: pointer;
}

.leaflet-tooltip-province {
    font-size: 15px;
    font-weight: bold;
    padding: 0px;
    background: none;
    border: none;
    color: aqua;
    text-shadow: 0px 0px 10px black;
    box-shadow: none;
}

.leaflet-tooltip-district {
    background: transparent;
    font-size: 12px;
    border: none;
    color: black;
    font-weight: bold;
    box-shadow:  none;
}

.leaflet-tooltip-locallevel {
    background: transparent;
    border: none;
    color: black;
    font-weight: normal;
    box-shadow:  none;
}

.leaflet-tooltip-ward {
    background: transparent;
    border: none;
    color: black;
    font-weight: normal;
    box-shadow:  none;
}

#downloadButton {
    position: absolute;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
    margin: 10px;
    padding: 10px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

#downloadButton:hover {
    background-color: #0056b3;
    box-shadow: 0 6px 8px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}

#findMeButton {
    position: absolute;
    bottom: 140px;
    right: 20px;
    z-index: 1000;
    margin: 10px;
    padding: 10px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

#findMeButton:hover {
    background-color: #0056b3;
    box-shadow: 0 6px 8px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}

/* Ensure the button is above the map but below other controls */
.leaflet-control-container {
    z-index: 1001;
}

.custom-popup .leaflet-popup-content {
    max-height: 200px;
    overflow-y: auto;
}

#upload-container {
    position: absolute;
    bottom: 80px;
    right: 20px;
    z-index: 1000;
}

#uploadButton {
    margin: 10px;
    padding: 10px 20px;
    background-color: #28a745;
    color: white;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

#uploadButton:hover {
    background-color: #218838;
    box-shadow: 0 6px 8px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}