/* ===============================
   FLOAT GROUP
=================================*/
.float-group{
    position:fixed;
    left:50%;
    transform:translateX(-50%);
    bottom:42px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;

    z-index:9999;

    width:max-content;
    max-width:95vw;
}

/* ===============================
   FLOAT ITEM
=================================*/
.float-wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:46px;
}

.float-wrap small{
    margin-top:3px;

    display:block;

    text-align:center;
    line-height:1;

    font-size:10px;
    font-weight:500;

    color:#fff;

    opacity:.9;
    white-space:nowrap;
}

/* ===============================
   FLOAT BUTTON
=================================*/
.float-btn{
    width:48px;
    height:48px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:14px;

    background:rgba(15,15,15,.92);

    border:1px solid rgba(255,255,255,.08);

    color:#fff !important;

    font-size:20px;
    line-height:1;

    text-decoration:none;

    box-shadow:0 4px 12px rgba(0,0,0,.25);

    transition:.2s ease;

    flex-shrink:0;
}

/* icon */
.float-btn i{
    font-size:20px;
    line-height:1;
    color:#fff !important;
}

/* hover */
.float-btn:hover{
    transform:scale(1.05);
}

/* active */
.float-btn:active{
    transform:scale(.96);
}

.float-btn{
    border:none;
    outline:none;
}

button:focus-visible,
a:focus-visible,
input:focus-visible{

    outline:2px solid #00bfff;
    outline-offset:2px;

}

/* ===============================
   STATE
=================================*/
.float-btn.on{

    background:
        linear-gradient(
            180deg,
            rgba(20,20,20,.96),
            rgba(10,10,10,.96)
        );

    border:1px solid rgba(0,255,120,.28);

    box-shadow:
        0 0 0 1px rgba(0,255,120,.08),
        0 4px 12px rgba(0,0,0,.28);

}

.float-btn.off{

    background:
        linear-gradient(
            180deg,
            rgba(20,20,20,.96),
            rgba(10,10,10,.96)
        );

    border:1px solid rgba(255,255,255,.06);

    opacity:.72;
}

.float-group{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding:0 8px;
}

.float-group::-webkit-scrollbar{
    display:none;
}

/* ===============================
   WHOOSH BUTTON
=================================*/
.whosh-floating-single{
    position:fixed;

    left:20px;
    bottom:110px;

    z-index:9998;

    height:44px;
    padding:0 14px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    border-radius:14px;

    background:rgba(20,25,35,.96);

    border:1px solid rgba(255,255,255,.08);

    color:#fff !important;

    font-size:11px;
    font-weight:700;

    text-decoration:none;

    box-shadow:0 4px 12px rgba(0,0,0,.25);

    transition:.2s ease;
}

.whosh-floating-single:hover{
    transform:translateY(-1px);
}

.whosh-floating-single i{
    font-size:14px;
}

/* ===============================
   SETTINGS PANEL
=================================*/
#mapSettingsPanel{
    position:fixed;

    bottom:120px;
    left:15px;

    width:260px;

    background:rgba(40,40,40,.96);

    border-radius:18px;

    color:#fff;

    display:none;

    z-index:3000;

    overflow:hidden;

    box-shadow:0 8px 24px rgba(0,0,0,.35);
}

/* ===============================
   SETTINGS HEADER
=================================*/
.settingsHeader{
    padding:14px 16px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    font-size:16px;
    font-weight:600;

    border-bottom:1px solid rgba(255,255,255,.08);
}

/* ===============================
   SETTINGS TABS
=================================*/
.settingsTabs{
    display:flex;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.tabBtn{
    flex:1;

    padding:10px;

    background:none;
    border:none;

    color:#bbb;

    font-size:13px;

    cursor:pointer;
}

.tabBtn.active{
    color:#ffc107;
    border-bottom:2px solid #ffc107;
}

/* ===============================
   SETTINGS CONTENT
=================================*/
.settingsContent{
    display:none;
    padding:14px;
}

.settingsContent.active{
    display:block;
}

/* ===============================
   MAP GRID
=================================*/
.mapGrid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
}

.mapItem{
    position:relative;

    overflow:hidden;

    border-radius:12px;

    border:2px solid transparent;

    cursor:pointer;

    transition:.2s;
}

.mapItem.active{
    border-color:#ffc107;
}

.mapItem img{
    width:100%;
    height:70px;
    object-fit:cover;
}

.mapItem span{
    position:absolute;

    left:6px;
    bottom:5px;

    font-size:11px;

    background:rgba(0,0,0,.6);

    padding:2px 5px;

    border-radius:6px;
}

/* ===============================
   TOGGLE
=================================*/
.toggleRow{
    display:flex;
    align-items:center;
    gap:8px;

    margin-bottom:10px;

    font-size:13px;
}

/* ===============================
   MOBILE
=================================*/
@media (max-width:768px){

    .float-group{
        bottom:28px;
        gap:5px;
    }

    .float-btn{
        width:44px;
        height:44px;
        font-size:18px;
    }

    .float-btn i{
        font-size:18px;
    }

    .float-wrap{
        min-width:44px;
    }

    .float-wrap small{
        font-size:9px;
    }

    .whosh-floating-single{
        left:12px;
        bottom:135px;

        height:40px;

        padding:0 12px;

        font-size:10px;
    }

    #mapSettingsPanel{
        width:90%;
        left:5%;
        bottom:90px;
    }

}

/* =========================================
   SAFE AREA SYSTEM
========================================= */

:root{

    --float-bottom: 18px;

    --float-height: 64px;

    --loko-gap: 14px;

    --loko-height: 64px;

}

/* =========================================
   FLOAT MENU
========================================= */

.float-group{
    bottom: var(--float-bottom) !important;
    z-index: 9999;
}

/* =========================================
   LOKOMOTIF SLIDER
========================================= */

#lokoCardBox{

    position:fixed;

    left:12px;
    right:12px;

    display:flex;
    gap:10px;

    overflow-x:auto;
    scroll-behavior:smooth;

    bottom:
        calc(
            var(--float-bottom)
            + var(--float-height)
            + var(--loko-gap)
        ) !important;

    z-index:4000;
}

#lokoCardBox::-webkit-scrollbar{
    display:none;
}

/* =========================================
   WHOOSH
========================================= */

.whosh-floating-single{

    bottom:
        calc(
            var(--float-bottom)
            + var(--float-height)
            + var(--loko-height)
            + 28px
        ) !important;

    z-index:3500;
}

/* =========================================
   LEAFLET CONTROL
========================================= */

.leaflet-bottom.leaflet-right{

    right:12px !important;

    bottom:
        calc(
            var(--float-bottom)
            + var(--float-height)
            + var(--loko-height)
            + 110px
        ) !important;

}

/* =========================================
   POPUP SAFE
========================================= */

.leaflet-popup{

    margin-bottom:40px;
}

/* =========================================
   MOBILE
========================================= */

@media (max-width:768px){

    :root{

        --float-bottom: 10px;

        --float-height: 58px;

        --loko-height: 72px;
    }

    .float-group{
        transform:translateX(-50%) scale(.95);
    }

    .whosh-floating-single{

        left:10px;

        bottom:100px;

        padding:0 10px;

        height:38px;

        font-size:10px;
    }

    .leaflet-bottom.leaflet-right{

        right:12px !important;

        bottom:260px !important;

    }

}

/* =========================================
   EXTRA SMALL PHONE
========================================= */

@media (max-width:480px){

    .whosh-floating-single{

        display:flex;

        left:10px;

        bottom:120px;

        height:34px;

        padding:0 8px;

        font-size:9px;

        border-radius:10px;
    }

.leaflet-bottom.leaflet-right{

    right:12px !important;

    bottom:260px !important;

}

}
