/* =========================================================
   ONLY EVENTS MAPPA
   Ricerca su mappa, marker, cluster e bottom sheet
========================================================= */

.oe-mappa-pagina{
    --oe-map-navy:#142b52;
    --oe-map-navy-2:#1f3b6d;
    --oe-map-ink:#172033;
    --oe-map-muted:#667085;
    --oe-map-gold:#c8a86a;
    --oe-map-gold-2:#ead7aa;
    --oe-map-gold-3:#fff7e6;
    --oe-map-gold-dark:#9b7734;
    --oe-map-glass:rgba(255,255,255,.74);
    --oe-map-border:rgba(255,255,255,.74);
    --oe-map-soft-border:rgba(200,168,106,.18);

    position:relative;
    isolation:isolate;
    background:
        radial-gradient(circle at 8% 0%, rgba(255,247,230,.72), transparent 34%),
        radial-gradient(circle at 92% 100%, rgba(234,215,170,.28), transparent 38%),
        radial-gradient(circle at 70% 6%, rgba(20,43,82,.06), transparent 34%),
        linear-gradient(180deg, #fffaf4 0%, #fbf8f2 48%, #f2eadf 100%);
    min-height:calc(100vh - 120px);
    padding:18px;
}

.oe-mappa-pagina::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:
        linear-gradient(118deg, transparent 0 14%, rgba(255,255,255,.16) 14.2% 18%, transparent 18.2% 100%),
        linear-gradient(44deg, transparent 0 72%, rgba(200,168,106,.08) 72.2% 75%, transparent 75.2% 100%);
}

.oe-mappa-shell{
    position:relative;
    z-index:2;
    max-width:1600px;
    margin:0 auto;
    display:grid;
    grid-template-columns:360px minmax(0, 1fr);
    gap:18px;
    align-items:stretch;
}

.oe-mappa-sidebar,
.oe-mappa-main{
    background:
        radial-gradient(circle at 100% 0%, rgba(200,168,106,.10), transparent 36%),
        linear-gradient(135deg, rgba(255,255,255,.84) 0%, rgba(255,250,244,.66) 100%);
    border:1px solid var(--oe-map-border);
    border-radius:30px;
    box-shadow:
        0 24px 70px rgba(91,64,26,.10),
        inset 0 1px 0 rgba(255,255,255,.86);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
}

.oe-mappa-sidebar{
    position:relative;
    overflow:hidden;
    padding:22px;
    display:grid;
    gap:18px;
    align-content:start;
}

.oe-mappa-sidebar::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:
        linear-gradient(118deg, transparent 0 16%, rgba(255,255,255,.18) 16.2% 21%, transparent 21.2% 100%),
        radial-gradient(circle at 8% 100%, rgba(234,215,170,.16), transparent 42%);
}

.oe-mappa-sidebar > *{
    position:relative;
    z-index:2;
}

.oe-mappa-sidebar__head{
    display:grid;
    gap:10px;
    text-align:center;
}

.oe-mappa-sidebar__eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:max-content;
    margin:0 auto;
    min-height:34px;
    padding:0 14px;
    border-radius:999px;
    background:rgba(255,255,255,.64);
    border:1px solid rgba(200,168,106,.20);
    box-shadow:
        0 10px 22px rgba(91,64,26,.06),
        inset 0 1px 0 rgba(255,255,255,.82);
    font-size:.76rem;
    font-weight:950;
    letter-spacing:.10em;
    text-transform:uppercase;
    color:var(--oe-map-navy);
}

.oe-mappa-sidebar__eyebrow i{
    color:var(--oe-map-gold-dark);
}

.oe-mappa-sidebar__title{
    margin:0;
    font-size:2rem;
    line-height:1.05;
    color:var(--oe-map-navy);
    letter-spacing:-.045em;
    font-weight:1000;
}

.oe-mappa-sidebar__text{
    margin:0;
    color:var(--oe-map-muted);
    line-height:1.55;
    font-weight:750;
}

.oe-mappa-filtri{
    display:grid;
    gap:14px;
}

.oe-mappa-campo{
    display:grid;
    gap:7px;
}

.oe-mappa-campo label{
    font-size:.9rem;
    font-weight:950;
    color:var(--oe-map-ink);
}

.oe-mappa-campo .input{
    width:100%;
}

.oe-mappa-azioni{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
    padding-top:4px;
}

.oe-mappa-azioni .bottone{
    justify-content:center;
    -webkit-tap-highlight-color:transparent;
}

.oe-mappa-stato{
    display:grid;
    gap:10px;
    padding:14px;
    border-radius:20px;
    background:
        radial-gradient(circle at 100% 0%, rgba(200,168,106,.10), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.70) 0%, rgba(255,250,244,.58) 100%);
    border:1px solid rgba(200,168,106,.16);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78);
}

.oe-mappa-stato__riga{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    font-size:.92rem;
}

.oe-mappa-stato__riga strong{
    color:var(--oe-map-ink);
    font-weight:950;
}

.oe-mappa-stato__riga span{
    color:var(--oe-map-muted);
    text-align:right;
    font-weight:800;
}

.oe-mappa-main{
    min-height:calc(100vh - 180px);
    overflow:hidden;
    display:grid;
    grid-template-rows:auto 1fr;
}

.oe-mappa-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid rgba(200,168,106,.16);
    background:
        radial-gradient(circle at 100% 0%, rgba(255,255,255,.56), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.86) 0%, rgba(255,250,244,.68) 100%);
}

.oe-mappa-toolbar__left,
.oe-mappa-toolbar__right{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    min-width:0;
}

.oe-mappa-pill{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:40px;
    max-width:100%;
    padding:0 14px;
    border-radius:999px;
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.92), rgba(255,255,255,0) 48%),
        rgba(255,255,255,.62);
    border:1px solid rgba(200,168,106,.20);
    color:var(--oe-map-navy);
    box-shadow:
        0 10px 22px rgba(91,64,26,.055),
        inset 0 1px 0 rgba(255,255,255,.82);
    font-weight:950;
    font-size:.9rem;
}

.oe-mappa-pill i{
    color:var(--oe-map-gold-dark);
}

.oe-mappa-pill span{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.oe-mappa-pill--soft{
    background:rgba(255,255,255,.58);
    border-color:rgba(20,43,82,.08);
    color:#344054;
}

.oe-mappa-btn{
    appearance:none;
    border:1px solid rgba(200,168,106,.20);
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.92), rgba(255,255,255,0) 48%),
        rgba(255,255,255,.70);
    color:var(--oe-map-navy);
    min-height:40px;
    min-width:42px;
    padding:0 14px;
    border-radius:15px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    cursor:pointer;
    font:inherit;
    font-weight:950;
    box-shadow:
        0 10px 22px rgba(91,64,26,.055),
        inset 0 1px 0 rgba(255,255,255,.82);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
    -webkit-tap-highlight-color:transparent;
}

.oe-mappa-btn:hover{
    transform:translateY(-1px);
    background:#fff;
    box-shadow:
        0 14px 28px rgba(91,64,26,.10),
        inset 0 1px 0 rgba(255,255,255,.90);
    border-color:rgba(200,168,106,.34);
}

.oe-mappa-btn.is-loading i{
    animation:oeMappaSpin .8s linear infinite;
}

.oe-mappa-mapwrap{
    position:relative;
    min-height:640px;
    overflow:hidden;
}

.oe-mappa-canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:640px;
}

.leaflet-container{
    font-family:inherit;
    background:#f4efe7;
}

.oe-marker-icon-host{
    background:transparent !important;
    border:none !important;
}

/* =========================
   MARKER MAPPA
========================= */

.oe-mapmarker{
    position:relative;
    display:grid;
    justify-items:center;
    width:132px;
    min-height:86px;
    pointer-events:none;
    transform:translateZ(0);
}

.oe-mapmarker__pin,
.oe-mapmarker__photo{
    pointer-events:auto;
    cursor:pointer;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease,
        opacity .18s ease,
        filter .18s ease;
}

.oe-mapmarker:hover .oe-mapmarker__pin,
.oe-mapmarker:hover .oe-mapmarker__photo{
    transform:translateY(-2px) scale(1.035);
}

.oe-mapmarker__pin{
    width:54px;
    height:54px;
    border-radius:20px 20px 20px 6px;
    transform:rotate(-45deg);
    display:grid;
    place-items:center;
    border:2px solid rgba(255,255,255,.96);
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.34), rgba(255,255,255,0) 38%),
        linear-gradient(145deg, var(--oe-map-gold-3) 0%, var(--oe-map-gold-2) 48%, var(--oe-map-gold) 100%);
    color:var(--oe-map-navy);
    box-shadow:
        0 14px 34px rgba(91,64,26,.20),
        inset 0 2px 0 rgba(255,255,255,.70),
        inset 0 -4px 10px rgba(124,92,39,.12);
}

.oe-mapmarker__pin i,
.oe-mapmarker__pin strong{
    grid-area:1 / 1;
    transform:rotate(45deg);
}

.oe-mapmarker__pin i{
    font-size:1rem;
    opacity:.96;
    color:var(--oe-map-navy);
}

.oe-mapmarker__pin strong{
    font-size:1.05rem;
    font-weight:1000;
    line-height:1;
    margin-top:1px;
}

/* Cluster: bolla tonda, solo numero */
.oe-mapmarker--cluster .oe-mapmarker__pin{
    width:66px;
    height:66px;
    border-radius:999px;
    transform:none;
    background:
        radial-gradient(circle at 32% 18%, rgba(255,255,255,.52), transparent 30%),
        linear-gradient(180deg, var(--oe-map-gold-3) 0%, var(--oe-map-gold-2) 48%, var(--oe-map-gold) 100%);
    border:3px solid rgba(255,255,255,.96);
    box-shadow:
        0 16px 36px rgba(91,64,26,.22),
        0 0 0 7px rgba(200,168,106,.13),
        0 0 0 11px rgba(255,255,255,.36),
        inset 0 2px 0 rgba(255,255,255,.70),
        inset 0 -5px 12px rgba(124,92,39,.14);
}

.oe-mapmarker--cluster .oe-mapmarker__pin i{
    display:none;
}

.oe-mapmarker--cluster .oe-mapmarker__pin strong{
    transform:none;
    font-size:1.42rem;
    font-weight:1000;
    letter-spacing:-.05em;
    color:var(--oe-map-navy);
    text-shadow:0 1px 0 rgba(255,255,255,.44);
}

.oe-mapmarker--cluster .oe-mapmarker__caption{
    margin-top:7px;
    padding:6px 10px;
    background:rgba(255,255,255,.94);
    border-color:rgba(200,168,106,.18);
    color:var(--oe-map-navy);
    font-size:.68rem;
    box-shadow:
        0 10px 22px rgba(91,64,26,.10),
        inset 0 1px 0 rgba(255,255,255,.92);
}

.oe-mapmarker--location .oe-mapmarker__pin{
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.36), rgba(255,255,255,0) 38%),
        linear-gradient(180deg, #f5dfb4 0%, #d3af68 50%, #b38b43 100%);
}

.oe-mapmarker--mixed .oe-mapmarker__pin{
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.42), rgba(255,255,255,0) 38%),
        linear-gradient(180deg, #fff3cf 0%, #d7bd79 50%, #9f7d39 100%);
}

.oe-mapmarker--premium .oe-mapmarker__pin{
    border-color:#f8e7b8;
    box-shadow:
        0 18px 42px rgba(91,64,26,.25),
        0 0 0 4px rgba(200,168,106,.18),
        inset 0 2px 0 rgba(255,255,255,.72),
        inset 0 -5px 12px rgba(124,92,39,.14);
}

.oe-mapmarker--cluster.oe-mapmarker--premium .oe-mapmarker__pin{
    border-color:#f8e7b8;
    box-shadow:
        0 16px 36px rgba(91,64,26,.24),
        0 0 0 5px rgba(200,168,106,.20),
        0 0 0 10px rgba(255,255,255,.38),
        inset 0 2px 0 rgba(255,255,255,.72),
        inset 0 -5px 12px rgba(124,92,39,.14);
}

.oe-mapmarker__photo{
    position:relative;
    width:70px;
    height:70px;
    border-radius:999px;
    overflow:hidden;
    border:3px solid rgba(255,255,255,.96);
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.92), rgba(255,255,255,0) 46%),
        linear-gradient(180deg, #fffaf4 0%, #efe2d1 100%);
    box-shadow:
        0 15px 32px rgba(91,64,26,.18),
        inset 0 1px 0 rgba(255,255,255,.90);
}

.oe-mapmarker--premium .oe-mapmarker__photo{
    border-color:#f8e7b8;
    box-shadow:
        0 16px 35px rgba(91,64,26,.20),
        0 0 0 3px rgba(200,168,106,.18),
        inset 0 1px 0 rgba(255,255,255,.90);
}

.oe-mapmarker--fallback-profile .oe-mapmarker__photo{
    opacity:.86;
    filter:saturate(.92) contrast(.98);
}

.oe-mapmarker__photo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.oe-mapmarker__photo span{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    color:var(--oe-map-navy);
    font-size:1.65rem;
}

.oe-mapmarker__photo em{
    position:absolute;
    right:-1px;
    bottom:-1px;
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:999px;
    border:2px solid #fff;
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.44), rgba(255,255,255,0) 42%),
        linear-gradient(180deg, var(--oe-map-gold-2), var(--oe-map-gold));
    color:var(--oe-map-navy);
    font-size:.78rem;
    font-style:normal;
    box-shadow:0 5px 12px rgba(91,64,26,.20);
}

.oe-mapmarker__caption{
    max-width:126px;
    margin-top:6px;
    padding:7px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.90);
    border:1px solid rgba(200,168,106,.18);
    box-shadow:
        0 10px 20px rgba(91,64,26,.08),
        inset 0 1px 0 rgba(255,255,255,.86);
    color:var(--oe-map-ink);
    font-size:.69rem;
    font-weight:950;
    line-height:1.1;
    text-align:center;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

/* =========================
   STATI MAPPA
========================= */

.oe-mappa-loader{
    position:absolute;
    top:18px;
    left:50%;
    z-index:700;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:10px;
    min-height:42px;
    padding:0 15px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(200,168,106,.18);
    box-shadow:0 12px 32px rgba(91,64,26,.12);
    color:var(--oe-map-navy);
    font-size:.85rem;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.oe-mappa-loader span{
    width:14px;
    height:14px;
    border-radius:999px;
    border:2px solid rgba(20,43,82,.18);
    border-top-color:var(--oe-map-gold-dark);
    animation:oeMappaSpin .8s linear infinite;
}

.oe-mappa-loader strong{
    font-weight:950;
}

.oe-mappa-empty{
    position:absolute;
    left:50%;
    top:50%;
    z-index:690;
    transform:translate(-50%, -50%);
    width:min(360px, calc(100% - 36px));
    display:grid;
    justify-items:center;
    gap:8px;
    padding:22px;
    border-radius:26px;
    background:rgba(255,255,255,.94);
    border:1px solid rgba(200,168,106,.18);
    box-shadow:0 20px 55px rgba(91,64,26,.14);
    text-align:center;
    color:var(--oe-map-navy);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.oe-mappa-empty i{
    font-size:2rem;
    color:var(--oe-map-gold-dark);
}

.oe-mappa-empty strong{
    font-size:1.05rem;
    font-weight:1000;
}

.oe-mappa-empty span{
    color:var(--oe-map-muted);
    font-size:.9rem;
    font-weight:750;
    line-height:1.4;
}

.oe-mappa-loader[hidden],
.oe-mappa-empty[hidden]{
    display:none !important;
}

/* =========================
   BOTTOM SHEET RISULTATI
========================= */

.oe-mappa-sheet{
    position:absolute;
    left:16px;
    right:16px;
    bottom:16px;
    z-index:720;
    max-width:560px;
    max-height:min(560px, calc(100% - 34px));
    display:grid;
    grid-template-rows:auto auto minmax(0, 1fr);
    border-radius:28px;
    background:
        radial-gradient(circle at 100% 0%, rgba(200,168,106,.10), transparent 38%),
        rgba(255,255,255,.94);
    border:1px solid rgba(255,255,255,.78);
    box-shadow:0 22px 70px rgba(91,64,26,.20);
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(18px) scale(.985);
    transition:opacity .2s ease, transform .2s ease;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.oe-mappa-sheet.is-open{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0) scale(1);
}

.oe-mappa-sheet__handle{
    width:46px;
    height:5px;
    border-radius:999px;
    background:rgba(200,168,106,.38);
    margin:12px auto 4px;
}

.oe-mappa-sheet__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:12px 16px 14px;
    border-bottom:1px solid rgba(200,168,106,.16);
}

.oe-mappa-sheet__head strong{
    display:block;
    color:var(--oe-map-navy);
    font-size:1.02rem;
    font-weight:1000;
    line-height:1.1;
}

.oe-mappa-sheet__head span{
    display:block;
    margin-top:4px;
    color:var(--oe-map-muted);
    font-size:.82rem;
    font-weight:800;
    line-height:1.25;
}

.oe-mappa-sheet__close{
    appearance:none;
    width:38px;
    height:38px;
    border-radius:14px;
    border:1px solid rgba(200,168,106,.20);
    background:rgba(255,255,255,.76);
    color:var(--oe-map-navy);
    display:grid;
    place-items:center;
    cursor:pointer;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
    -webkit-tap-highlight-color:transparent;
}

.oe-mappa-sheet__list{
    display:grid;
    gap:10px;
    padding:14px;
    overflow:auto;
    overscroll-behavior:contain;
}

.oe-sheet-card{
    display:grid;
    grid-template-columns:72px minmax(0, 1fr);
    gap:12px;
    padding:12px;
    border-radius:22px;
    background:
        radial-gradient(circle at 100% 0%, rgba(200,168,106,.08), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.82) 0%, rgba(255,250,244,.64) 100%);
    border:1px solid rgba(200,168,106,.15);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78);
}

.oe-sheet-card__avatar{
    position:relative;
    width:72px;
    height:72px;
    border-radius:999px;
    overflow:hidden;
    border:2px solid #fff;
    background:#f4efe7;
    box-shadow:0 10px 22px rgba(91,64,26,.10);
    text-decoration:none;
}

.oe-sheet-card__avatar.is-premium{
    border-color:#f8e7b8;
    border-width:3px;
    box-shadow:
        0 10px 22px rgba(91,64,26,.12),
        0 0 0 3px rgba(200,168,106,.14);
}

.oe-sheet-card__avatar.is-fallback{
    opacity:.86;
}

.oe-sheet-card__avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.oe-sheet-card__avatar span{
    display:grid;
    width:100%;
    height:100%;
    place-items:center;
    color:var(--oe-map-navy);
    font-size:1.55rem;
}

.oe-sheet-card__body{
    min-width:0;
    display:grid;
    gap:7px;
    align-content:start;
}

.oe-sheet-card__flags{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px;
}

.oe-sheet-card__flags span,
.oe-sheet-card__meta-pill{
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    background:rgba(255,255,255,.74);
    border:1px solid rgba(200,168,106,.15);
    color:#475268;
    font-size:.68rem;
    font-weight:950;
}

.oe-sheet-card__flags .is-premium{
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.66), rgba(255,255,255,0) 44%),
        linear-gradient(180deg, var(--oe-map-gold-3), var(--oe-map-gold-2));
    border-color:rgba(200,168,106,.34);
    color:var(--oe-map-navy);
}

.oe-sheet-card h3{
    margin:0;
    color:var(--oe-map-navy);
    font-size:1rem;
    font-weight:1000;
    line-height:1.16;
}

.oe-sheet-card h3 a{
    color:inherit;
    text-decoration:none;
}

.oe-sheet-card h3 a:hover{
    text-decoration:underline;
}

.oe-sheet-card p{
    margin:0;
    color:var(--oe-map-muted);
    font-size:.8rem;
    font-weight:800;
    line-height:1.35;
}

.oe-sheet-card p i{
    color:var(--oe-map-gold-dark);
    margin-right:4px;
}

.oe-sheet-card__specs{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px;
}

.oe-sheet-card__specs span{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    background:rgba(255,255,255,.66);
    border:1px solid rgba(200,168,106,.16);
    color:var(--oe-map-navy);
    font-size:.68rem;
    font-weight:900;
}

.oe-sheet-card__cta{
    -webkit-tap-highlight-color:transparent;
    position:relative;
    isolation:isolate;
    overflow:hidden;
    width:max-content;
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:2px;
    min-height:32px;
    padding:0 12px;
    border-radius:999px;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.46), rgba(255,255,255,0) 42%),
        linear-gradient(180deg, var(--oe-map-gold-3) 0%, var(--oe-map-gold-2) 54%, var(--oe-map-gold) 100%);
    color:var(--oe-map-navy);
    border:1px solid rgba(255,255,255,.58);
    box-shadow:
        0 12px 24px rgba(200,168,106,.20),
        inset 0 1px 0 rgba(255,255,255,.66);
    text-decoration:none;
    font-size:.78rem;
    font-weight:950;
}

/* =========================
   LEAFLET
========================= */

.leaflet-control-attribution{
    position:absolute !important;
    bottom:8px;
    right:8px;
    background:transparent !important;
    box-shadow:none !important;
    padding:0 !important;
    margin:0 !important;
    font-size:0 !important;
}

.leaflet-control-attribution::before{
    content:"i";
    display:flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:50%;
    background:rgba(20,43,82,.62);
    color:#fff;
    font-size:13px;
    font-weight:700;
    font-family:system-ui, -apple-system, sans-serif;
    cursor:pointer;
    transition:all .2s ease;
}

.leaflet-control-attribution:hover::before{
    background:rgba(20,43,82,.78);
}

.leaflet-control-attribution:hover{
    font-size:11px !important;
    color:#444;
    background:rgba(255,255,255,.95) !important;
    padding:6px 8px !important;
    border-radius:8px;
    box-shadow:0 6px 16px rgba(91,64,26,.12);
}

.leaflet-control-attribution a{
    color:#6b7484 !important;
    text-decoration:none !important;
}

.leaflet-control-attribution a:hover{
    text-decoration:underline !important;
}

.leaflet-control-zoom{
    border:none !important;
    box-shadow:0 12px 28px rgba(91,64,26,.12) !important;
}

.leaflet-control-zoom a{
    border:none !important;
    color:var(--oe-map-navy) !important;
    font-weight:950 !important;
}

@keyframes oeMappaSpin{
    to{
        transform:rotate(360deg);
    }
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1100px){
    .oe-mappa-shell{
        grid-template-columns:1fr;
    }

    .oe-mappa-sidebar{
        order:2;
    }

    .oe-mappa-main{
        order:1;
        min-height:72vh;
    }

    .oe-mappa-mapwrap,
    .oe-mappa-canvas{
        min-height:72vh;
    }
}

@media (max-width: 767px){
    .oe-mappa-pagina{
        padding:8px;
    }

    .oe-mappa-shell{
        gap:10px;
    }

    .oe-mappa-sidebar,
    .oe-mappa-main{
        border-radius:22px;
    }

    .oe-mappa-main{
        min-height:58vh;
    }

    .oe-mappa-mapwrap,
    .oe-mappa-canvas{
        min-height:58vh;
    }

    .oe-mappa-sidebar{
        padding:16px;
        gap:15px;
    }

    .oe-mappa-sidebar__eyebrow{
        min-height:32px;
        padding:0 12px;
        font-size:.66rem;
        letter-spacing:.09em;
    }

    .oe-mappa-sidebar__title{
        font-size:1.55rem;
    }

    .oe-mappa-sidebar__text{
        font-size:.92rem;
    }

    .oe-mappa-azioni{
        grid-template-columns:1fr;
    }

    .oe-mappa-toolbar{
        align-items:stretch;
        padding:10px;
    }

    .oe-mappa-toolbar__left{
        width:100%;
        display:grid;
        grid-template-columns:1fr;
        gap:7px;
    }

    .oe-mappa-toolbar__right{
        position:absolute;
        right:18px;
        top:18px;
        z-index:710;
    }

    .oe-mappa-pill{
        min-height:36px;
        padding:0 11px;
        font-size:.8rem;
    }

    .oe-mappa-btn{
        width:38px;
        min-width:38px;
        height:38px;
        min-height:38px;
        padding:0;
        border-radius:14px;
        box-shadow:0 10px 25px rgba(91,64,26,.12);
    }

    .oe-mapmarker{
        width:112px;
        min-height:78px;
    }

    .oe-mapmarker__pin{
        width:48px;
        height:48px;
        border-radius:18px 18px 18px 6px;
    }

    .oe-mapmarker--cluster .oe-mapmarker__pin{
        width:56px;
        height:56px;
        border-radius:999px;
        transform:none;
    }

    .oe-mapmarker--cluster .oe-mapmarker__pin strong{
        transform:none;
        font-size:1.22rem;
    }

    .oe-mapmarker--cluster .oe-mapmarker__caption{
        margin-top:6px;
        padding:5px 9px;
        font-size:.63rem;
    }

    .oe-mapmarker__photo{
        width:60px;
        height:60px;
    }

    .oe-mapmarker__photo em{
        width:24px;
        height:24px;
        font-size:.68rem;
    }

    .oe-mapmarker__caption{
        max-width:104px;
        padding:6px 9px;
        font-size:.63rem;
    }

    .oe-mappa-loader{
        top:12px;
        min-height:38px;
        font-size:.78rem;
    }

    .oe-mappa-empty{
        width:calc(100% - 28px);
        padding:18px;
        border-radius:22px;
    }

    .oe-mappa-sheet{
        left:0;
        right:0;
        bottom:0;
        max-width:none;
        max-height:58vh;
        border-radius:26px 26px 0 0;
        border-left:none;
        border-right:none;
        border-bottom:none;
    }

    .oe-mappa-sheet__head{
        padding:10px 14px 12px;
    }

    .oe-mappa-sheet__list{
        padding:12px;
        gap:9px;
    }

    .oe-sheet-card{
        grid-template-columns:62px minmax(0, 1fr);
        gap:10px;
        padding:10px;
        border-radius:20px;
    }

    .oe-sheet-card__avatar{
        width:62px;
        height:62px;
    }

    .oe-sheet-card h3{
        font-size:.94rem;
    }

    .oe-sheet-card p{
        font-size:.76rem;
    }

    .oe-sheet-card__flags span,
    .oe-sheet-card__meta-pill,
    .oe-sheet-card__specs span{
        font-size:.64rem;
    }

    .oe-sheet-card__cta{
        min-height:30px;
        padding:0 10px;
        font-size:.74rem;
    }

    .leaflet-control-attribution{
        bottom:7px;
        right:7px;
    }

    .leaflet-control-attribution::before{
        width:22px;
        height:22px;
        font-size:12px;
    }

    .leaflet-control-attribution:hover{
        font-size:9px !important;
        padding:5px 7px !important;
    }
}

@media (prefers-reduced-motion:reduce){
    .oe-mappa-btn,
    .oe-mapmarker__pin,
    .oe-mapmarker__photo,
    .oe-mappa-sheet,
    .oe-sheet-card__cta,
    .leaflet-control-attribution::before{
        transition:none !important;
    }

    .oe-mappa-btn.is-loading i,
    .oe-mappa-loader span{
        animation:none !important;
    }
}

/* =========================================================
   ONLY EVENTS MAPPA - BOTTONI FILTRI / AGGIORNA MAPPA
========================================================= */

.oe-mappa-azioni .bottone{
    -webkit-tap-highlight-color:transparent;
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-height:52px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.58) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.46), rgba(255,255,255,0) 42%),
        linear-gradient(180deg, #fff7e6 0%, #ead7aa 54%, #c8a86a 100%) !important;
    color:#142b52 !important;
    box-shadow:
        0 16px 32px rgba(200,168,106,.22),
        0 7px 16px rgba(91,64,26,.08),
        inset 0 2px 0 rgba(255,255,255,.66),
        inset 0 -4px 10px rgba(124,92,39,.12) !important;
    font-weight:950;
    text-shadow:0 1px 0 rgba(255,255,255,.36);
    transition:
        transform .18s ease,
        box-shadow .22s ease,
        border-color .22s ease,
        filter .22s ease;
}

.oe-mappa-azioni .bottone::before{
    content:"";
    position:absolute;
    inset:1px;
    z-index:0;
    border-radius:inherit;
    pointer-events:none;
    background:
        linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0) 56%),
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.34), rgba(255,255,255,0) 38%);
}

.oe-mappa-azioni .bottone::after{
    content:"";
    position:absolute;
    top:-150%;
    left:-48%;
    z-index:1;
    width:38%;
    height:400%;
    pointer-events:none;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.14),
            rgba(255,255,255,.70),
            rgba(255,255,255,.14),
            transparent
        );
    transform:rotate(24deg);
    animation:oeMappaBottoneShine 4.4s linear infinite;
}

.oe-mappa-azioni .bottone > *,
.oe-mappa-azioni .bottone i,
.oe-mappa-azioni .bottone span{
    position:relative;
    z-index:2;
}

.oe-mappa-azioni .bottone:hover{
    transform:translateY(-2px);
    border-color:rgba(200,168,106,.38) !important;
    filter:saturate(1.03);
    box-shadow:
        0 22px 42px rgba(200,168,106,.28),
        0 10px 22px rgba(91,64,26,.12),
        inset 0 2px 0 rgba(255,255,255,.72),
        inset 0 -4px 12px rgba(124,92,39,.14) !important;
}

.oe-mappa-azioni .bottone:active{
    transform:translateY(1px) scale(.99);
}

.oe-mappa-azioni .bottone.bottone--secondario{
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.92), rgba(255,255,255,0) 48%),
        rgba(255,255,255,.70) !important;
    color:#142b52 !important;
    border:1px solid rgba(200,168,106,.20) !important;
    box-shadow:
        0 10px 22px rgba(91,64,26,.055),
        inset 0 1px 0 rgba(255,255,255,.82) !important;
    text-shadow:none;
}

.oe-mappa-azioni .bottone.bottone--secondario::after{
    display:none !important;
}

.oe-mappa-azioni .bottone.bottone--secondario:hover{
    background:#fff !important;
    border-color:rgba(200,168,106,.34) !important;
    box-shadow:
        0 14px 28px rgba(91,64,26,.10),
        inset 0 1px 0 rgba(255,255,255,.90) !important;
}

@keyframes oeMappaBottoneShine{
    0%{
        transform:translateX(-230%) rotate(24deg);
    }

    100%{
        transform:translateX(560%) rotate(24deg);
    }
}

@media (max-width:767px){
    .oe-mappa-azioni .bottone{
        width:100%;
        min-height:50px;
        border-radius:16px;
    }
}

@media (prefers-reduced-motion:reduce){
    .oe-mappa-azioni .bottone,
    .oe-mappa-azioni .bottone::after{
        animation:none !important;
        transition:none !important;
    }
}