    body {
        margin: 0;
        padding: 0;
    }

    #map {
        position: fixed;
		left: 0;
		width: 100%;
        height: 100%;
	    z-index: 9;
    }
    a:hover {
        text-decoration: none;
    }

    .coords-control {
        font-family: Arial, sans-serif;
    }

    .leaflet-left {
        display: flex;
        gap: 10px;
        align-items: flex-end;
        border-radius: 5px;
        padding: 0px 0px;
        width: 100%;
        justify-content: center;
    }

    .leaflet-control-container .leaflet-bottom.leaflet-left {
        transition: all 0.6s;
    }

    .leaflet-left .coords-control {
        display: none;
    }

    .leaflet-control-scale {
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        width: 120px;
        padding: 8px 8px 6px;
        top: 0;
        margin: 0 !important;
        border-radius: 15px;
        border-bottom-right-radius: 0;
        background: rgba(250, 250, 250, 0.5);
        border-bottom-left-radius: 0;
    }

    .leaflet-control-scale-line {
        width: 100% !important;
        padding: 0 !important;
        color: #2E82C0;
        font-size: 12px !important;
        text-align: center;
        background: none;
        border: 1px solid #2E82C0;
        border-top: 0;
        border-bottom-right-radius: 4px;
        border-bottom-left-radius: 4px;
    }

        .leaflet-control-scale-line:nth-child(2) {
            display: none;
        }

        .leaflet-control-scale-line:not(:first-child) {
            margin-top: 0;
        }

    .leaflet-control-minimap {
        border-radius: 5px;
        overflow: hidden;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        border: none !important;
    }

    .leaflet-control-attribution {
        display: none;
    }

    .leaflet-control-minimap-toggle-display {
        font-family: "Font Awesome 6 Free";
        font-weight: 900;
        font-size: 20px;
        color: #464646;
        background: #FAFAFA !important;
        border: none !important;
        border-radius: 6px !important;
        padding: 8px 12px !important;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        cursor: pointer;
        text-decoration: none;
        transition: all 0.6s;
        background-image: linear-gradient(0deg, #EAF6FF, #EAF6FF, #EAF6FF, #E0F2FF, #C6E7FF, #ADDCFF) !important;
    }

        .leaflet-control-minimap-toggle-display.minimized-bottomright::before {
            content: "";
            display: inline-block;
            width: 40px;
            height: 40px;
            background: url(../images/circle-icon-minimap-blue.svg) no-repeat center/contain;
            transition: all 0.6s
        }

        .leaflet-control-minimap-toggle-display::before {
            content: "";
            display: inline-block;
            width: 40px;
            height: 40px;
            background: url(../images/circle-icon-minimap-white.svg) no-repeat center/contain;
            transition: all 0.6s;
        }

        .leaflet-control-minimap-toggle-display.minimized-bottomright:hover,
        .leaflet-control-minimap-toggle-display {
            background-image: linear-gradient(180deg, #F26370, #D8537A, #B74086, #8E539B, #4F81BE, #1BA7DB) !important;
            background-repeat: no-repeat;
            background-size: cover, 60%;
            background-position: center, center;
        }

            .leaflet-control-minimap-toggle-display.minimized-bottomright {
                background-image: linear-gradient(0deg, #EAF6FF, #EAF6FF, #EAF6FF, #E0F2FF, #C6E7FF, #ADDCFF) !important;
            }

                .leaflet-control-minimap-toggle-display.minimized-bottomright:hover::before,
                .leaflet-control-minimap-toggle-display:hover::before {
                    background-image: url(../images/circle-icon-minimap-white.svg);
                }


    .leaflet-control-minimap a, .leaflet-control-minimap {
        min-width: 40px;
        min-height: 40px;
        text-decoration: none;
        border-radius: 20px;
    }

        .leaflet-control-minimap a {
            padding: 0 !important;
            border-radius: 50% !important;
        }

    .leaflet-control-minimap-toggle-display-bottomright {
        bottom: 0;
    }

    .leaflet-draw.leaflet-control {
        display: none;
    }

    .basemaps-wrapper {
        display: flex;
        flex-wrap: wrap;
        gap: 15px;
        margin-top: 5px;
    }

        .basemaps-wrapper .layer-wrapper {
            width: 100%;
        }

            .basemaps-wrapper .layer-wrapper:hover {
                border-radius: 20px;
            }

    .map-container {
        display: flex;
        flex-direction: column;
        gap: 10px;
        cursor: pointer;
        background: #eeeeee;
        border: 2px solid lightgray;
        border-radius: 20px;
    }

        .map-container img {
            width: 100%;
            height: 100px;
            object-fit: cover;
            border-top-right-radius: 19px;
            border-top-left-radius: 19px;
        }

        .map-container span {
            text-align: center;
            margin: 0px 0 10px;
            font-weight: 600;
            font-size: 12px;
            color: rgba(0, 0, 0, 0.6);
        }

        .map-container:hover,
        .map-container.active {
            transform: scale(1.02);
            border-color: #2E82C0;
            background: #E6F0FF;
        }

            .map-container.active span,
            .map-container:hover span {
                color: #2E82C0;
            }

    [data-tooltip] {
        position: relative;
        cursor: pointer;
    }

        [data-tooltip]::after {
            content: attr(data-tooltip);
            position: absolute;
            left: 100%;
            transform: translateY(-50%);
            color: #fff;
            background-color: rgba(0, 0, 0, 0.8);
            padding: 5px 8px;
            border-radius: 4px;
            white-space: nowrap;
            opacity: 0;
            pointer-events: none;
            transition: all 0.6s;
            margin-left: 8px;
            margin-top: 12px;
            font-size: 12px;
            z-index: 1000;
            font-weight: bold;
        }

        [data-tooltip]::before {
            content: '';
            position: absolute;
            left: 100%;
            transform: translateY(-50%);
            border-width: 5px;
            border-style: solid;
            border-color: transparent transparent transparent rgba(0, 0, 0, 0.8);
            opacity: 0;
            pointer-events: none;
            transition: all 0.6s;
            margin-left: 2px;
            margin-top: 14px;
            z-index: 1001;
        }

        [data-tooltip]:hover::after,
        [data-tooltip]:hover::before {
            opacity: 1;
            transform: translateY(-50%) translateX(0);
        }

    .ring-container {
        position: absolute;
        display: flex;
        flex-direction: column;
        align-items: center;
        z-index: 9999;
    }

    .circle-wrap, .ring-wrap {
        position: relative;
        height: 200px;
        width: 200px;
    }

        .circle-wrap.open .tools-wrap {
            transform: scale(1.1) rotate(45deg);
        }

    .ring-wrap {
        background-color: #FAFAFA;
        background-color: rgba(0,0,0,0.5);
        border-radius: 50%;
        opacity: 1;
        transform-origin: 50% 50%;
        transform: scale(1);
        transition: all 0.6s;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
    }

    .tools-wrap {
        background: linear-gradient( to bottom, rgba(154, 216, 255, 1) 0%, rgba(90, 178, 236, 1) 33%, rgba(56, 134, 186, 1) 67%, rgba(22, 68, 97, 1) 100% ) !important;
        border-radius: 50%;
        bottom: 0;
        margin: auto;
        color: white;
        left: 0;
        right: 0;
        top: 0;
        transition: all 0.6s;
        cursor: pointer;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
    }

    .circle-wrap.open .tools-wrap {
        background-color: rgba(0, 0, 0, 0.5) !important;
    }

    .ring-btn {
        border-radius: 50%;
        height: 40px;
        width: 40px;
        margin-left: -20px;
        margin-top: -20px;
        border: none;
        position: absolute;
        text-align: center;
        cursor: pointer;
        transition: all 0.6s;
        background-image: linear-gradient(180deg, #EAF6FF, #EAF6FF, #EAF6FF, #E0F2FF, #C6E7FF, #ADDCFF) !important;
        background-repeat: no-repeat;
        background-size: cover, 60%;
        background-position: center, center;
    }

        .ring-btn:hover {
            transform: scale(1.1) !important;
            background-image: linear-gradient(180deg, #F26370, #D8537A, #B74086, #8E539B, #4F81BE, #1BA7DB) !important;
            background-repeat: no-repeat;
            background-size: cover, 60%;
            background-position: center, center;
        }

        .ring-btn .svg-container {
            background-size: contain;
            background-repeat: no-repeat;
            background-position: center;
            height: 40px;
            width: 40px;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

    #left-toggle-btn, #coordinate-btn, #right-toggle-btn, #tools-btn {
        border-radius: 50%;
        height: 40px;
        width: 40px;
        position: absolute;
        text-align: center;
        cursor: pointer;
        border: none;
        background-image: linear-gradient(180deg, #EAF6FF, #EAF6FF, #EAF6FF, #E0F2FF, #C6E7FF, #ADDCFF) !important;
        background-repeat: no-repeat;
        background-size: cover, 60%;
        background-position: center, center;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        transition: all 0.6s;
    }

    #tools-btn {
        height: 70px;
        width: 70px;
    }

        #tools-btn .svg-container {
            height: 100% !important;
            width: 100% !important;
        }

        #left-toggle-btn:hover,
        #left-toggle-btn.active,
        #tools-btn:hover,
        #tools-btn.active,
        #coordinate-btn:hover,
        #coordinate-btn.active,
        #right-toggle-btn:hover,
        #right-toggle-btn.active {
            /* transform: scale(1.2) !important; */
            background-image: linear-gradient(180deg, #F26370, #D8537A, #B74086, #8E539B, #4F81BE, #1BA7DB) !important;
            background-repeat: no-repeat;
            background-size: cover, 60%;
            background-position: center, center;
        }

            #left-toggle-btn .svg-container,
            #left-toggle-btn.active .svg-container,
            #tools-btn .svg-container,
            #tools-btn.active .svg-container,
            #coordinate-btn .svg-container,
            #coordinate-btn.active .svg-container,
            #right-toggle-btn .svg-container,
            #right-toggle-btn.active .svg-container {
                background-size: contain;
                background-repeat: no-repeat;
                background-position: center;
                border: none;
                height: 40px;
                width: 40px;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
            }

    #forward-btn .svg-container {
        background-image: url(../images/circle-icon-forward-blue.svg);
    }

    #forward-btn:hover .svg-container {
        background-image: url('../images/circle-icon-forward-white.svg');
    }

    #backward-btn .svg-container {
        background-image: url(../images/circle-icon-backward-blue.svg);
    }

    #backward-btn:hover .svg-container {
        background-image: url('../images/circle-icon-backward-white.svg');
    }

    #home-btn .svg-container {
        background-image: url(../images/circle-icon-home-blue.svg);
    }

    #home-btn:hover .svg-container {
        background-image: url('../images/circle-icon-home-white.svg');
    }

    #position-btn .svg-container {
        background-image: url(../images/circle-icon-position-blue.svg);
    }

    #position-btn:hover .svg-container {
        background-image: url('../images/circle-icon-position-white.svg');
    }

    #calculate-road-btn .svg-container {
        background-image: url(../images/circle-icon-road-blue.svg);
    }

    #calculate-road-btn:hover .svg-container {
        background-image: url('../images/circle-icon-road-white.svg');
    }

    #floor-size-btn .svg-container {
        background-image: url(../images/circle-icon-area-blue.svg);
    }

    #floor-size-btn:hover .svg-container {
        background-image: url('../images/circle-icon-area-white.svg');
    }

    #pdf-btn .svg-container {
        background-image: url(../images/circle-icon-pdf-blue.svg);
    }

    #pdf-btn:hover .svg-container {
        background-image: url('../images/circle-icon-pdf-white.svg');
    }

    #left-toggle-btn .svg-container {
        background-image: url(../images/circle-icon-search-blue.svg);
    }

    #left-toggle-btn:hover .svg-container,
    #left-toggle-btn.active .svg-container {
        background-image: url('../images/circle-icon-search-white.svg');
    }

    #coordinate-btn .svg-container {
        background-image: url(../images/circle-icon-earth-blue.svg);
    }

    #coordinate-btn:hover .svg-container,
    #coordinate-btn.active .svg-container {
        background-image: url('../images/circle-icon-earth-white.svg');
    }

    #right-toggle-btn .svg-container {
        background-image: url(../images/circle-icon-layers-blue.svg);
    }

    #right-toggle-btn:hover .svg-container,
    #right-toggle-btn.active .svg-container {
        background-image: url('../images/circle-icon-layers-white.svg');
    }

    #tools-btn .svg-container {
        background-image: url(../images/circle-icon-tools-blue.svg);
    }

    #tools-btn:hover .svg-container,
    #tools-btn.active .svg-container {
        background-image: url('../images/circle-icon-tools-white.svg');
    }

    #left-side-container {
        position: absolute;
        top: 50%;
        left: -400px;
        transform: translateY(-50%);
        width: 400px;
        height: calc(100% - 20px);
        background: #FAFAFA;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        z-index: 7000;
        transition: all 0.6s;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        border-bottom-right-radius: 20px;
        border-top-right-radius: 20px;
        border-left: 0;
        overflow: hidden;
    }

        #left-side-container.open {
            left: 0;
        }

    .toggle-btn-left {
        position: fixed;
        top: 15px;
        left: 10px;
        border: none;
        border-radius: 50%;
        cursor: pointer;
        z-index: 7100;
        height: 40px;
        width: 40px;
        transition: all 0.6s;
    }

    #left-side-container.open + .toggle-btn-left {
        left: 410px;
    }

    #right-side-container {
        position: absolute;
        top: 50%;
        right: -400px;
        transform: translateY(-50%);
        width: 400px;
        height: calc(100% - 20px);
        background: #FAFAFA;
        box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        z-index: 7000;
        transition: all 0.6s;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        border-bottom-left-radius: 20px;
        border-top-left-radius: 20px;
        border-right: 0;
        overflow: hidden;
    }

        #right-side-container.open {
            right: 0;
        }

    .side-content {
        height: 100%;
        padding: 20px;
        font-family: Arial, sans-serif;
    }

    .toggle-btn-right {
        position: fixed;
        top: 15px;
        right: 10px;
        border-radius: 50%;
        height: 40px;
        width: 40px;
        cursor: pointer;
        z-index: 7100;
        transition: all 0.6s;
    }

    #right-side-container.open + .toggle-btn-right {
        right: 410px;
    }

    .nav-left-side-container,
    .nav-right-side-container {
        display: flex;
        background: #FAFAFA;
        margin: 0 15px;
    }
    
    .nav-left-side-container span,
    .nav-right-side-container span {
            border-bottom: 2px solid #ccc;
            flex: 1;
            text-align: center;
            padding: 15px 10px 10px;
            cursor: pointer;
            font-size: 17px;
            font-weight: bold;
            color: rgba(0, 0, 0, 0.6);
        }

        .nav-left-side-container .active,
        .nav-right-side-container .active {
            color: #2E82C0;
            border-color: #2E82C0;
        }

        .nav-left-side-container span:hover,
        .nav-right-side-container span:hover {
            color: #2E82C0;
            transition: all 0.6s;
        }

    .side-content,
    #right-side-container .side-content {
        display: none;
        padding: 15px;
        overflow: auto;
    }

        .side-content.active,
        #right-side-container .side-content.active {
            display: block;
        }

    .search-row {
        position: relative
    }

        .search-row input {
            box-sizing: border-box;
            width: 100%;
            padding-right: 30px;
            border: 1px solid #ced4da;
            color: #495057;
            border-radius: 4px;
            padding: 0.375rem 0.75rem;
            width: 100%;
            vertical-align: top;
            margin: 0px;
            background-color: #fff;
            font: inherit;
            font-size: 1rem;
            height: calc(1.5em + 0.75rem + 2px);
        }

        .search-row i {
            position: absolute;
            top: 12px;
            right: 12px;
            font-size: 15px;
            color: rgba(0, 0, 0, 0.7);
        }

    #tree-layers ul {
        list-style: none;
        padding-left: 20px;
        color: rgba(0, 0, 0, 0.7);
        font-size: 13px;
    }

    #tree-layers > ul {
        padding-left: 0px;
    }

    .node {
        display: flex;
        align-items: center;
        gap: 5px;
        padding-left: 4px;
    }

        .node img {
            width: 24px;
            height: 24px;
            font-size: 24px;
            cursor: pointer;
            transition: all 0.6s;
            border-radius: 6px;
            padding: 1px;
            border: none;
        }

            .node img:not(.folder-icon):hover {
                background: #DAEBF9 !important
            }

        .node .zom-layer-icon {
            margin-left: auto;
        }

    .layer-color {
        width: 20px;
        height: 20px;
        border-radius: 6px;
        display: inline-block;
    }

    .layer-checkbox {
        margin-right: 5px;
    }

    li.active > .node {
        background-color: #e6f0ff;
    }

    li.collapsed > ul {
        display: none;
    }

    #tree-layers ul {
        list-style: none;
        margin: 0;
        padding-left: 20px;
        position: relative;
    }

        #tree-layers ul::before {
            content: '';
            position: absolute;
            top: 0;
            left: 12px;
            width: 1px;
            height: 100%;
            background: #ccc;
        }

    #tree-layers li {
        position: relative;
        padding-left: 20px;
        overflow: auto;
        margin: 5px 0;
    }

        #tree-layers li::before {
            content: '';
            position: absolute;
            top: 18px;
            left: 0;
            width: 15px;
            height: 1px;
            background: #ccc;
        }

    #tree-layers > ul > li::before,
    #tree-layers > ul::before {
        content: none;
    }

    #tree-layers li.collapsed > ul {
        display: none;
    }

    #tree-layers .node {
        display: flex;
        align-items: center;
        gap: 6px;
        cursor: pointer;
        padding: 5px 5px 5px 0;
    }

    #tree-layers .layer-label {
        font-weight: 500;
        font-size: 13px;
    }


    #tree-layers > ul {
        padding-left: 0;
    }

        #tree-layers > ul > li {
            padding-left: 5px;
            border-radius: 4px;
        }

    #tree-layers input[type="checkbox"] {
        appearance: none;
        -webkit-appearance: none;
        width: 16px;
        height: 16px;
        border: 2px solid #666;
        border-radius: 4px;
        position: relative;
        cursor: pointer;
        background-color: white;
        vertical-align: middle;
        transition: all 0.6s;
    }

        #tree-layers input[type="checkbox"].checked-with-svg {
            background-color: #2E82C0;
            border-color: #2E82C0;
            background-image: url('../images/check-mark-icon.svg');
            background-repeat: no-repeat;
            background-position: center;
            background-size: 12px 12px;
        }

        #tree-layers input[type="checkbox"]:hover {
            border-color: #2E82C0;
        }

    #tree-layers li.active {
        background: #E6F0FF;
        border-radius: 6px;
    }

    input[type=checkbox] {
        width: 15px !important;
        height: 15px !important;
        padding: 0 !important;
    }

    .coordinate-wrapper {
        z-index: 99999;
        height: 40px;
        position: absolute;
        bottom: 10px;
        left: 10px;
        transition: all 0.6s;
    }

    #coordinate-btn {
        cursor: pointer;
        z-index: 999;
    }

    #coordinate-panel {
        max-width: 410px;
        height: inherit;
        opacity: 0;
        overflow: hidden;
        display: flex;
        align-items: center;
        padding: 0;
        /* transition: all .6s; */
    }

        #coordinate-panel.open {
            opacity: 1;
            transform: translateX(10px);
            transition: all 0.6s;
            opacity: 1;
            padding: 0 15px 0 10px;
            background: #FAFAFA;
            border-radius: 20px;
            box-shadow: 0px 0 5px 2px rgba(0, 0, 0, 0.2);
        }

    .coord-control {
        display: flex;
        align-items: center;
        gap: 6px;
        font-family: sans-serif;
        font-size: 12px;
        margin-left: 30px;
        color: rgba(0, 0, 0, 0.6) !important;
    }

        .coord-control input,
        .coord-control select {
            font-size: 12px !important;
            height: 22px;
            color: rgba(0, 0, 0, 0.6) !important;
            border: 1px solid rgb(204, 204, 204);
            border-radius: 4px;
            background: transparent !important;
            padding: 2px 2px 2px 4px !important;
            width: 100px !important;
        }

            .coord-control input {
                    height: 16px !important;
            }

    #coordinate-btn.active {
        transform: rotate(180deg);
    }

    #tools-btn.active {
        transform: rotate(180deg);
    }

    #left-toggle-btn.active {
        transform: rotate(-90deg);
    }

    #right-toggle-btn.active {
        animation: rotate-vertical-open 0.6s ease;
    }

    #right-toggle-btn:not(.active) {
        animation: rotate-vertical-close 0.6s ease;
    }

@keyframes rotate-vertical-open {
    0% {
        transform: rotateY(0deg);
    }

    100% {
        transform: rotateY(360deg);
    }
}

@keyframes rotate-vertical-close {
    0% {
        transform: rotateY(0deg);
    }

    100% {
        transform: rotateY(-360deg);
    }
}

input[type=number]::-webkit-inner-spin-button {
  opacity: 1;
}

.coord-control select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  
  background-color: white;
  border: 1px solid #ccc;

  background-image: url('data:image/svg+xml;utf8,<svg fill="%23636363" height="34" viewBox="0 0 24 24" width="34" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>') !important;
  background-repeat: no-repeat !important;
  background-position: right 0px center !important;
  background-size: 18px !important;
}