html,body{
    margin:0;
    height:100%;
    font-family:Arial,Helvetica,sans-serif;
}

body{
    display:flex;
}

#sidebar{

    width:220px;
    background:white;
    padding:20px;
    box-shadow:0 0 10px rgba(0,0,0,.2);
    z-index:1000;
    overflow:auto;

}

#sidebar h2{
    margin-top:0;
}

#map{

    flex:1;

}
#legend{
    margin-top:15px;
    font-size:14px;
}

.legend-item{
    display:flex;
    align-items:center;
    margin:6px 0;
}

.legend-color{
    width:18px;
    height:18px;
    margin-right:10px;
    border:1px solid #555;
}

.leaflet-popup-content{

    margin:12px;

}

.popup{

    min-width:240px;

}

.popup h2{

    margin-top:0;
    margin-bottom:12px;
    font-size:18px;
    text-align:center;

}

.popup table{

    width:100%;
    border-collapse:collapse;

}

.popup td{

    padding:5px 0;
    border-bottom:1px solid #ececec;

}

.popup td:first-child{

    color:#666;
    width:45%;

}

.leaflet-popup-content{
    margin:0;
}

.popup-card{

    width:300px;
    overflow:hidden;
    border-radius:10px;
    font-size:14px;

}

.popup-header{

    background:#1f4e79;
    color:white;
    font-size:18px;
    font-weight:bold;
    text-align:center;
    padding:12px;

}

.popup-body{

    padding:12px;

}

.popup-row{

    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    padding:8px 0;

    border-bottom:1px solid #eeeeee;

}

.popup-row:last-child{

    border-bottom:none;

}

.popup-label{

    font-weight:bold;
    color:#555;
    margin-right:12px;

}

.popup-row span:last-child{

    text-align:right;

}

details {
    margin-bottom: 12px;
}

details details {
    margin-left: 12px;
    margin-top: 8px;
}

summary {
    cursor: pointer;
    margin-bottom: 6px;
    font-weight: 600;
}

label {
    display: block;
    margin: 4px 0;
}

.legend-box{

    position:absolute;

    bottom:20px;

    right:20px;

    z-index:1000;

    background:white;

    padding:12px;

    border-radius:8px;

    box-shadow:0 2px 10px rgba(0,0,0,0.25);

    min-width:180px;

    font-size:14px;

}

.legend-box h4{

    margin:0 0 8px 0;

}

.legend-item{

    display:flex;

    align-items:center;

    margin-bottom:5px;

}

.legend-color{

    width:18px;

    height:18px;

    margin-right:8px;

    border:1px solid #666;

}

.label-turistico{

    background: rgba(255,255,255,0.85);
    border: 1px solid #2196F3;
    border-radius: 4px;
    color: #0D47A1;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 5px;
    box-shadow: none;

}