/* VigVag Map Redesign 1.0 */
.vvm-page{
    max-width:1460px;
    margin:0 auto;
    padding:28px 24px 56px;
}
.vvm-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:18px;
}
.vvm-heading h1{
    margin:6px 0 8px;
    font-size:40px;
    line-height:1.08;
    color:#17191d;
}
.vvm-heading p{
    margin:0;
    color:#6c727c;
    font-size:16px;
}
.vvm-eyebrow{
    color:#9b7b00;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.13em;
}
.vvm-heading-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.vvm-button{
    min-height:46px;
    padding:0 17px;
    border:0;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    text-decoration:none;
    font:inherit;
    font-weight:850;
    cursor:pointer;
    transition:.18s ease;
}
.vvm-button:hover{transform:translateY(-1px)}
.vvm-button-primary{
    background:#ffd21f;
    color:#18191c;
    box-shadow:0 10px 22px rgba(218,173,0,.18);
}
.vvm-button-soft{
    background:#fff;
    color:#272a2f;
    border:1px solid #e1e4e8;
}
.vvm-overview{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}
.vvm-overview-card{
    display:flex;
    align-items:center;
    gap:13px;
    padding:15px 17px;
    border:1px solid #e4e6ea;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(20,24,32,.045);
}
.vvm-overview-card.total{
    background:#171a20;
    color:#fff;
    border-color:#171a20;
}
.vvm-overview-icon{
    width:44px;
    height:44px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:#fff3bd;
    font-size:19px;
}
.vvm-overview-icon.build{background:#def7e7}
.vvm-overview-icon.company{background:#e1edff}
.vvm-overview-icon.all{background:#ffd21f}
.vvm-overview-card b{
    display:block;
    font-size:23px;
    line-height:1;
}
.vvm-overview-card small{
    display:block;
    margin-top:5px;
    color:#737984;
}
.vvm-overview-card.total small{color:#c7cbd2}
.vvm-workspace{
    display:grid;
    grid-template-columns:390px minmax(0,1fr);
    min-height:720px;
    overflow:hidden;
    border:1px solid #dfe2e6;
    border-radius:26px;
    background:#fff;
    box-shadow:0 24px 65px rgba(20,24,32,.10);
}
.vvm-sidebar{
    min-width:0;
    display:flex;
    flex-direction:column;
    border-right:1px solid #e4e6ea;
    background:#fff;
    z-index:4;
}
.vvm-sidebar-top{
    padding:16px 16px 0;
    border-bottom:1px solid #edf0f3;
}
.vvm-search{
    position:relative;
}
.vvm-search>span{
    position:absolute;
    left:15px;
    top:50%;
    transform:translateY(-50%);
    color:#7a808a;
    font-size:20px;
    pointer-events:none;
}
.vvm-search input{
    width:100%;
    height:50px;
    padding:0 45px 0 44px;
    box-sizing:border-box;
    border:1px solid #d9dde2;
    border-radius:15px;
    background:#f7f8fa;
    color:#202329;
    font:inherit;
    outline:0;
}
.vvm-search input:focus{
    border-color:#d5ae10;
    background:#fff;
    box-shadow:0 0 0 4px rgba(255,210,31,.18);
}
.vvm-search button{
    position:absolute;
    top:9px;
    right:9px;
    width:32px;
    height:32px;
    padding:0;
    border:0;
    border-radius:10px;
    background:#e9ecf0;
    color:#555b65;
    font-size:20px;
    cursor:pointer;
}
.vvm-filters{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:13px 0 14px;
    scrollbar-width:none;
}
.vvm-filters::-webkit-scrollbar{display:none}
.vvm-filters button{
    min-height:37px;
    padding:0 11px;
    border:1px solid #e0e3e7;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    white-space:nowrap;
    background:#fff;
    color:#4c525c;
    font:inherit;
    font-size:12px;
    font-weight:850;
    cursor:pointer;
}
.vvm-filters button span{
    min-width:20px;
    height:20px;
    padding:0 5px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:#f0f2f5;
    color:#666c75;
    font-size:10px;
}
.vvm-filters button.active{
    border-color:#1b1e24;
    background:#1b1e24;
    color:#fff;
}
.vvm-filters button.active span{
    background:#ffd21f;
    color:#1c1d20;
}
.vvm-results-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 0 13px;
    border-top:1px solid #eef0f2;
}
.vvm-results-heading b,
.vvm-results-heading span{
    display:block;
}
.vvm-results-heading b{
    color:#202329;
    font-size:15px;
}
.vvm-results-heading span{
    margin-top:3px;
    color:#7b818b;
    font-size:12px;
}
.vvm-fit-button{
    width:38px;
    height:38px;
    padding:0;
    border:1px solid #e0e3e7;
    border-radius:12px;
    background:#fff;
    color:#30343a;
    cursor:pointer;
    font-size:17px;
}
.vvm-results{
    flex:1;
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-color:#d9dde2 transparent;
}
.vvm-result{
    position:relative;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    min-height:78px;
    padding:13px 16px;
    border-bottom:1px solid #eff1f3;
    color:#202329;
    text-decoration:none;
    transition:.16s ease;
}
.vvm-result:before{
    content:"";
    position:absolute;
    left:0;
    top:10px;
    bottom:10px;
    width:3px;
    border-radius:0 3px 3px 0;
    background:transparent;
}
.vvm-result:hover,
.vvm-result.is-selected{
    background:#fffbed;
}
.vvm-result.is-selected:before{
    background:#e7b800;
}
.vvm-result-icon{
    width:48px;
    height:48px;
    border-radius:15px;
    display:grid;
    place-items:center;
    background:#fff1b3;
    font-size:20px;
}
.vvm-result-icon.build{background:#dcf7e5}
.vvm-result-icon.company{background:#dfebff}
.vvm-result-body{min-width:0}
.vvm-result-body b{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#22252a;
    font-size:14px;
}
.vvm-result-type{
    display:flex;
    gap:7px;
    align-items:center;
    margin-top:5px;
    color:#777d87;
    font-size:12px;
}
.vvm-result-type i{
    width:5px;
    height:5px;
    border-radius:50%;
    background:#d2a900;
}
.vvm-result-subtitle{
    display:block;
    margin-top:4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#8a9099;
    font-size:11px;
}
.vvm-result-arrow{
    width:30px;
    height:30px;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:#f2f4f6;
    color:#818792;
    font-style:normal;
}
.vvm-result:hover .vvm-result-arrow,
.vvm-result.is-selected .vvm-result-arrow{
    background:#ffd21f;
    color:#24262a;
}
.vvm-empty{
    padding:46px 25px;
    text-align:center;
    color:#777d87;
}
.vvm-empty-icon{
    width:58px;
    height:58px;
    margin:0 auto 13px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:#f2f4f6;
    font-size:24px;
}
.vvm-empty b{
    display:block;
    margin-bottom:7px;
    color:#22252a;
}
.vvm-empty button{
    margin-top:14px;
    min-height:40px;
    padding:0 14px;
    border:0;
    border-radius:12px;
    background:#ffd21f;
    font-weight:850;
    cursor:pointer;
}
.vvm-sidebar-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px 16px;
    border-top:1px solid #e9ecef;
    background:#fafbfc;
    color:#777d86;
    font-size:12px;
}
.vvm-sidebar-footer a{
    color:#25282d;
    font-weight:850;
}
.vvm-map-panel{
    position:relative;
    min-width:0;
    min-height:720px;
    overflow:hidden;
    background:#dfe9d8;
}
.vvm-map-topbar{
    position:absolute;
    top:14px;
    left:14px;
    right:76px;
    z-index:10;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    pointer-events:none;
}
.vvm-map-legend{
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 13px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:14px;
    background:rgba(255,255,255,.92);
    box-shadow:0 8px 22px rgba(20,24,32,.12);
    backdrop-filter:blur(12px);
    color:#4b515b;
    font-size:11px;
    font-weight:750;
}
.vvm-map-legend span{
    display:flex;
    align-items:center;
    gap:6px;
}
.vvm-map-legend i{
    width:9px;
    height:9px;
    border-radius:50%;
    background:#ffd21f;
}
.vvm-map-legend i.build{background:#54bb75}
.vvm-map-legend i.company{background:#6d9fe8}
.vvm-map-tip{
    padding:9px 12px;
    border-radius:12px;
    background:rgba(27,30,36,.82);
    color:#fff;
    font-size:11px;
    backdrop-filter:blur(8px);
}
.vvm-map,
.vvm-map .vv-native-map,
.vvm-map-panel>.vv-native-map{
    width:100%;
    height:100%;
    min-height:720px;
}
.vvm-map-loading{
    position:absolute;
    left:50%;
    top:50%;
    z-index:12;
    transform:translate(-50%,-50%);
    min-height:44px;
    padding:0 16px;
    border-radius:14px;
    display:flex;
    align-items:center;
    gap:10px;
    background:#1d2026;
    color:#fff;
    box-shadow:0 15px 36px rgba(20,24,32,.25);
    font-size:13px;
}
.vvm-map-loading[hidden]{display:none}
.vvm-spinner{
    width:16px;
    height:16px;
    border:2px solid rgba(255,255,255,.35);
    border-top-color:#ffd21f;
    border-radius:50%;
    animation:vvm-spin .8s linear infinite;
}
@keyframes vvm-spin{to{transform:rotate(360deg)}}
.vvm-map-location-note{
    position:absolute;
    left:50%;
    bottom:20px;
    z-index:11;
    transform:translateX(-50%);
    padding:10px 14px;
    border-radius:999px;
    background:#1d2026;
    color:#fff;
    box-shadow:0 10px 24px rgba(20,24,32,.20);
    font-size:12px;
}
.vvm-map-location-note[hidden]{display:none}

/* Native map refinement */
.vvm-map-panel .vv-native-map{
    background:#dce7d5;
}
.vvm-map-panel .vv-native-map__marker{
    width:42px;
    height:42px;
    border:3px solid #fff;
    border-radius:15px 15px 15px 4px;
    background:#ffd21f;
    box-shadow:0 7px 20px rgba(20,24,32,.24);
    transition:transform .14s ease,filter .14s ease;
}
.vvm-map-panel .vv-native-map__marker:hover{
    filter:brightness(.98);
}
.vvm-map-panel .vv-native-map__marker.build{background:#72d08d}
.vvm-map-panel .vv-native-map__marker.company{background:#8bb5ef}
.vvm-map-panel .vv-native-map__controls{
    top:14px;
    right:14px;
    gap:7px;
}
.vvm-map-panel .vv-native-map__controls button{
    width:43px;
    height:43px;
    border-radius:13px;
    border:1px solid rgba(255,255,255,.82);
    box-shadow:0 8px 22px rgba(20,24,32,.14);
}
.vvm-map-panel .vv-native-map__popup{
    width:270px;
    padding:16px 40px 15px 16px;
    border-radius:18px;
    border:1px solid #e0e3e7;
    box-shadow:0 20px 50px rgba(20,24,32,.22);
}
.vvm-map-panel .vv-native-map__popup b{
    font-size:15px;
    line-height:1.35;
}
.vvm-map-panel .vv-native-map__popup small{
    margin-top:6px;
    color:#777d86;
}
.vvm-map-panel .vv-native-map__popup a{
    margin-top:11px;
    padding:8px 11px;
    border-radius:10px;
    background:#ffd21f;
    color:#25272b;
    text-decoration:none;
}
.vvm-map-panel .vv-native-map__attribution{
    right:7px;
    bottom:6px;
    border-radius:7px;
}
@media(max-width:1100px){
    .vvm-workspace{grid-template-columns:350px minmax(0,1fr)}
}
@media(max-width:900px){
    .vvm-heading{align-items:flex-start;flex-direction:column}
    .vvm-heading-actions{justify-content:flex-start}
    .vvm-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vvm-workspace{
        display:flex;
        flex-direction:column;
    }
    .vvm-map-panel{
        min-height:510px;
        order:1;
    }
    .vvm-map,
    .vvm-map .vv-native-map,
    .vvm-map-panel>.vv-native-map{
        min-height:510px;
    }
    .vvm-sidebar{
        order:2;
        border-right:0;
        border-top:1px solid #e3e6e9;
    }
    .vvm-results{max-height:430px}
}
@media(max-width:640px){
    .vvm-page{padding:16px 12px 38px}
    .vvm-heading h1{font-size:32px}
    .vvm-heading-actions{
        width:100%;
        display:grid;
        grid-template-columns:1fr;
    }
    .vvm-overview{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
    .vvm-overview-card{
        padding:12px;
    }
    .vvm-overview-icon{
        width:38px;
        height:38px;
        border-radius:12px;
    }
    .vvm-overview-card b{font-size:20px}
    .vvm-workspace{border-radius:20px}
    .vvm-map-panel{min-height:440px}
    .vvm-map,
    .vvm-map .vv-native-map,
    .vvm-map-panel>.vv-native-map{
        min-height:440px;
    }
    .vvm-map-legend{display:none}
    .vvm-map-topbar{right:66px}
    .vvm-map-tip{display:none}
    .vvm-sidebar-footer{align-items:flex-start;flex-direction:column}
}
@media(max-width:760px){.vv-map-filter-menu{margin:10px 0;border:1px solid #e1e4e8;border-radius:16px;background:#fff;overflow:hidden}.vv-map-filter-menu summary{list-style:none;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;min-height:52px;padding:0 14px;cursor:pointer}.vv-map-filter-menu summary::-webkit-details-marker{display:none}.vv-map-filter-menu summary span{font-size:12px;color:#777}.vv-map-filter-menu summary b{font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vv-map-filter-menu summary i{font-style:normal}.vv-map-filter-options{display:grid;padding:6px 10px 10px;border-top:1px solid #eceef1}.vv-map-filter-options button{display:flex;justify-content:space-between;align-items:center;min-height:46px;padding:0 10px;border:0;border-radius:12px;background:transparent;font:inherit;text-align:left}.vv-map-filter-options button.active{background:#fff4b8;font-weight:900}.vv-map-filter-options em{font-style:normal;min-width:28px;text-align:center;padding:3px 7px;border-radius:999px;background:#f1f2f4;font-size:12px}.vv-map-toolbar{display:none!important}}
