    :root {
        --menu-width: 150px;
        --content-width: 600px;
        --content-height: 600px;
        --right-width: 0px;
        --bottom-height: 120px;
        --bottom-mobile-height: 60px;
        --bottom-visible: 0;
        --mobile-bottom-height: 60px;
        --bottom-min: 80px;
        --bottom-max: 400px;
    }

    /* ---- GLOBAL ---- */
    /*html, body {
        height: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden;
        font-family: sans-serif;
    }*/

    #aonline-layout {
        display: flex;
        flex-direction: column;
        height: 100dvh;
        width: 100vw;
        overflow: hidden;
    }

    /* ---- MAIN AREA (MENU + MAP + INFO + WHITE) ---- */
    #aonline-main-block {
        display: flex;
        flex: 1;
        overflow: hidden;
        position: relative;
    }

    /* ---- LEFT MENU ---- */
    #aonline-menu-block {
        background: #333333;
        width: var(--menu-width);
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        color: white;
        padding-top: 10px;
        z-index: 3;
        box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    }

    /* ---- MAP ---- */
    #aonline-map-content-block {
        background: blue;
        flex: 1;
        position: relative;
        overflow: hidden;
        min-width: 50px;
        /*z-index: 1;*/
    }

    #aonline-user-place-menu {
        z-index: 2;
    }

    /* ---- CONTENT PANEL ---- */
    #aonline-content-block {
        width: var(--content-width);
        flex-shrink: 0;
        overflow-y: auto;
        padding: 0;
    }

    /* ---- INFO PANEL ---- */
    #aonline-info-block {
        background: white;
        width: var(--right-width);
        flex-shrink: 0;
        position: relative;
        transition: width 0.3s ease;
        overflow: hidden;
        z-index: 4;
    }

    #aonline-info-block.collapsed {
        width: 10px !important;
        border-left: none;
    }

    /* ---- BOTTOM PANEL ---- */
    #aonline-bottom-block {
        background: #AEAEAE;
        height: var(--bottom-height);
        flex-shrink: 0;
        position: relative;
        border-top: 1px solid #ccc;
        flex-direction: column;
    }

    /* ---- MOBILE MENU ---- */
    #aonline-mobile-front-menu {
        background: black;
        color: white;
        height: var(--mobile-bottom-height);
        display: none;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    #aonline-info-handle {
        display: block;
    }

    #aonline-info-block {
        width: calc(var(--right-width) - 10px);
    }

    #aonline-info-handle {
        width: 10px;
        background-color: darkgray;
        float: left;
        height: 100%;
    }

    .leaflet-top .leaflet-control:first-child {
        margin-top: 50px;
    }

    /* ---- RESPONSIVE ---- */
    @media (max-width: 768px) {
        #aonline-menu-block {
            display: none;
        }

        /* Stack but overlay (not vertical stack) */
        #aonline-main-block {
            display: block;
            position: relative;
            height: calc(100vh - var(--bottom-height) - var(--mobile-bottom-height));
        }

        #aonline-map-content-block, #aonline-content-block, #aonline-info-block {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            width: 100%;
            height: 100%;
        }

        #aonline-mobile-front-menu {
            display: flex;
        }

        /*#aonline-info-handle {
            display: none;
        }*/

        #aonline-user-place-menu {
            display: none;
        }

        .leaflet-top .leaflet-control:first-child {
            margin-top: 10px;
        }
    }

    #aonline-info-handle {
        cursor: ew-resize;
    }