
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ┌─────────────────────────────────────────────────────────────┐
   │  VARIABILI CSS GLOBALI                                      │
   │  FRONTEND: Modifica qui per cambiare colori e dimensioni    │
   │  dell'intera app. --arancio è il colore brand principale.   │
   │  --larghezza-sidebar controlla la sidebar desktop.          │
   │  BACKEND: Se si implementano temi utente, queste variabili  │
   │  possono essere sovrascritte con valori dal database.        │
   └─────────────────────────────────────────────────────────────┘ */
:root {
  --arancio: #FF4400;
  --arancio-scuro: #cc3300;
  --arancio-bagliore: rgba(255,68,0,.3);
  --sfondo: #0a0a0a;
  --superficie: #141414;
  --superficie2: #1e1e1e;
  --testo: #f0f0f0;
  --testo-sbiadito: #888;
  --bordo: #2a2a2a;
  --larghezza-sidebar: 260px;
  --oro: #FFD200;
  --oro-bagliore: rgba(255,210,0,.3);
  --rosso: #e44;
  --verde: #4ade80;
}

/* ── RESET ── */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Barlow',sans-serif;
  background:var(--sfondo);
  color:var(--testo);
}
#app-shell {
  height:100dvh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* ── ANIMAZIONI GLOBALI ── */
@keyframes slideUp { from{transform:translateY(100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes slideDown { from{transform:translateY(-100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes markerPulse { 0%{transform:scale(1);opacity:1} 50%{transform:scale(1.25);opacity:.85} 100%{transform:scale(1);opacity:1} }
@keyframes successPulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.05);opacity:.85} }
/* ── Boost card pulse — solo box-shadow, niente trasformazioni ── */
@keyframes pulse-spark { 0%,100%{box-shadow:0 0 8px rgba(255,107,26,.35)} 50%{box-shadow:0 0 22px rgba(255,107,26,.7)} }
@keyframes pulse-boost { 0%,100%{box-shadow:0 0 8px rgba(160,168,184,.3)} 50%{box-shadow:0 0 22px rgba(160,168,184,.65)} }
@keyframes pulse-top   { 0%,100%{box-shadow:0 0 10px rgba(255,210,0,.4)} 50%{box-shadow:0 0 26px rgba(255,210,0,.8)} }
/* ── Live rec dot blink ── */
@keyframes recBlink { 0%,100%{opacity:1} 50%{opacity:.25} }
/* ── Search bar city-required pulse ── */
@keyframes searchPulse { 0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,0);border-color:rgba(245,158,11,.35)} 50%{box-shadow:0 0 0 5px rgba(245,158,11,.22);border-color:rgba(245,158,11,.85)} }
.search-input-pulse { animation:searchPulse .85s ease-in-out 4 !important; }
/* ── Offline banner slide-down ── */
#bit-offline-banner { animation:slideDown .3s ease; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HEADER — Barra superiore mobile
   FRONTEND: Toggle vista (mappa/lista), navigazione date, menu.
   z-index: 200 (sotto modali e pannelli).
   Su desktop (≥768px) l'header è nascosto — la sidebar lo sostituisce.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
header {
  background:var(--superficie);
  border-bottom:2px solid var(--arancio);
  z-index:200; flex-shrink:0;
  box-shadow:0 2px 20px var(--arancio-bagliore);
}
.bit-header-controls {
  position:relative; height:48px; padding:0 12px;
  display:flex; justify-content:center; align-items:center;
}
.header-view-toggle {
  position:absolute; left:12px;
  display:flex; align-items:center;
  background:var(--superficie2); border:1px solid var(--bordo);
  border-radius:10px; overflow:hidden;
}
.view-toggle-btn {
  background:none; border:none; color:var(--testo-sbiadito); cursor:pointer;
  padding:7px 11px; transition:all .2s;
  display:flex; align-items:center; gap:5px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.75rem; letter-spacing:.5px; text-transform:uppercase;
}
.view-toggle-btn.active { background:var(--arancio); color:#000; }
.view-toggle-btn:not(.active):hover { color:var(--arancio); }
.view-toggle-divider { width:1px; background:var(--bordo); height:30px; }
.header-center { display:flex; align-items:center; gap:6px; }
.date-nav-btn {
  background:none; border:none; color:var(--testo-sbiadito);
  font-size:.85rem; cursor:pointer; padding:6px 8px;
  border-radius:8px; transition:all .2s;
}
.date-nav-btn:hover { color:var(--arancio); background:rgba(255,68,0,.1); }
.date-nav-btn:disabled { opacity:.3; cursor:not-allowed; }
#current-date {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.95rem; color:var(--testo);
  min-width:76px; text-align:center;
}
.hbtn {
  background:none; border:none; color:var(--testo-sbiadito);
  font-size:1.2rem; cursor:pointer; padding:8px; border-radius:8px;
  transition:all .2s; width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
}
.hbtn:hover { color:var(--arancio); background:rgba(255,68,0,.1); }

/* ── Nav drawer overlay (home mobile + pagine) ── */
#bit-nav-overlay{position:fixed;inset:0;z-index:1000;display:none}
#bit-nav-overlay.open{display:block}
#bit-nav-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6);opacity:0;transition:opacity .25s}
#bit-nav-overlay.open #bit-nav-backdrop{opacity:1}
#bit-nav-drawer{position:absolute;top:0;right:0;bottom:0;width:260px;background:#141414;border-left:1px solid #2a2a2a;transform:translateX(100%);transition:transform .25s;display:flex;flex-direction:column;font-size:15px;line-height:1.4}
#bit-nav-overlay.open #bit-nav-drawer{transform:translateX(0)}
.bit-nav-hdr{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;border-bottom:1px solid var(--bordo);flex-shrink:0}
.bit-nav-title{font-family:'Bebas Neue',cursive;font-size:1.1rem;letter-spacing:1px;color:#fff}
.bit-nav-close{background:none;border:none;color:var(--testo-sbiadito);font-size:1.1rem;cursor:pointer;padding:6px 8px;border-radius:6px;line-height:1}
.bit-nav-close:hover{color:#fff}
.bit-nav-links{padding:8px 14px;flex:1;overflow-y:auto}
@media(max-width:767px){
  #bit-nav-drawer{top:0;left:0;right:0;bottom:auto;width:100%;max-height:85vh;border-radius:0 0 24px 24px;border-left:none;border-bottom:1px solid #2a2a2a;transform:translateY(-105%);box-shadow:0 10px 40px rgba(0,0,0,.5);overflow-y:auto;scrollbar-width:none}
  #bit-nav-drawer::-webkit-scrollbar{display:none}
  #bit-nav-overlay.open #bit-nav-drawer{transform:translateY(0)}
  .bit-nav-links{flex:none;overflow-y:visible;padding-bottom:28px}
}
.bit-nav-link { display:flex; align-items:center; gap:13px; padding:13px 11px; font-size:.97rem; color:var(--testo-sbiadito); text-decoration:none; border-bottom:1px solid var(--bordo); cursor:pointer; border-radius:8px; transition:.2s; }
.bit-nav-link:last-child { border-bottom:none; }
.bit-nav-link:hover,.bit-nav-link.active { color:var(--arancio); background:rgba(255,68,0,.08); text-decoration:none; }
.bit-nav-link i { width:20px; text-align:center; color:var(--arancio); font-size:.9rem; flex-shrink:0; }
.bit-nav-link--create { background:var(--arancio)!important; color:#000!important; font-family:'Bebas Neue',cursive; font-size:1.25rem; letter-spacing:.5px; border-radius:10px; margin:6px 14px 2px; padding:12px 16px; border-bottom:none!important; justify-content:center; gap:7px; }
.bit-nav-link--create i { color:#000!important; width:auto; font-size:1.05rem; }
.bit-nav-link--create:hover { background:#e03d00!important; color:#000!important; text-decoration:none; }
.bit-nav-login { padding:14px 16px; border-bottom:1px solid var(--bordo); display:flex; flex-direction:column; gap:7px; }
.bit-nav-login-btn { display:block; padding:10px; border-radius:8px; text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:.5px; font-size:.9rem; text-decoration:none; transition:.15s; }
.bit-nav-login-btn.primary { background:#ff4400; color:#fff; }
.bit-nav-login-btn.primary:hover { background:#e03d00; text-decoration:none; }
.bit-nav-login-btn.secondary { background:rgba(255,255,255,.04); border:1px solid var(--bordo); color:#888; }
.bit-nav-login-btn.secondary:hover { color:#fff; border-color:rgba(255,255,255,.2); text-decoration:none; }

main { flex:1; display:flex; overflow:hidden; position:relative; }

#bps { height:100%; flex-shrink:0; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   AREA CONTENUTI — Mappa, Lista, Home, Cerca
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#content-area { flex:1; position:relative; overflow:hidden; }

#map-view { position:absolute; inset:0; opacity:1; pointer-events:auto; transition:opacity .3s; }
#map-view.hidden-view { opacity:0; pointer-events:none; }
#main-map { height:100%; width:100%; }
/* Viste lista/home/cerca: nascoste di default */
#list-view, #home-view, #search-view {
  position:absolute; inset:0; overflow-y:auto;
  padding:16px; display:none;
}
#list-view.active-view, #home-view.active-view, #search-view.active-view { display:block; }

/* ── BOTTONI SULLA MAPPA ── */
#gps-btn, #map-style-btn {
  position:absolute; right:12px; z-index:400;
  background:var(--superficie); border:2px solid var(--bordo);
  color:var(--testo-sbiadito); height:44px; min-width:148px;
  padding:0 14px; border-radius:12px;
  display:flex; align-items:center; justify-content:center; gap:7px;
  font-size:.85rem; cursor:pointer; transition:all .2s;
  box-shadow:0 4px 15px rgba(0,0,0,.4); white-space:nowrap;
  font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:.5px;
}
#gps-btn { bottom:80px; }
#map-style-btn { bottom:120px; }
#gps-btn:hover, #map-style-btn:hover { border-color:var(--arancio); color:var(--arancio); }
#gps-btn.active { border-color:var(--arancio); color:var(--arancio); background:rgba(255,68,0,.12); }
#map-style-btn.light { border-color:rgba(255,255,255,.25); }
#radius-select {
  position:absolute; bottom:80px; right:170px; z-index:400;
  display:none; background:var(--superficie); border:2px solid var(--bordo);
  color:var(--testo); font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.82rem; padding:9px 12px;
  border-radius:12px; cursor:pointer; -webkit-appearance:none; transition:all .2s;
}
#radius-select.visible { display:block; }
/* Dot GPS sulla mappa */
.gps-dot {
  width:16px; height:16px; border-radius:50%;
  background:var(--arancio); border:3px solid #fff;
  box-shadow:0 0 10px var(--arancio-bagliore);
}

/* ── MAP INIT LOADER ── */
@keyframes bit-spin { to { transform:rotate(360deg); } }
#map-init-loader {
  position:absolute; inset:0; z-index:1000;
  background:#111;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .4s;
}
#map-init-loader i {
  font-size:2.2rem; color:var(--arancio);
  animation:bit-spin 1s linear infinite;
}
#map-init-loader.hidden { opacity:0; pointer-events:none; }

/* ── MAP HINT (nessuna posizione) ── */
#map-hint {
  position:absolute; bottom:160px; left:50%; transform:translateX(-50%);
  z-index:400; background:rgba(0,0,0,.72); color:rgba(255,255,255,.85);
  border:1px solid rgba(255,68,0,.35); border-radius:12px;
  padding:10px 18px; font-family:'Barlow Condensed',sans-serif;
  font-size:.9rem; font-weight:600; letter-spacing:.3px;
  display:none; align-items:center; gap:10px; white-space:nowrap;
  box-shadow:0 4px 15px rgba(0,0,0,.4);
}
#map-hint i { color:var(--arancio); }
#map-hint.visible { display:flex; }

/* ── MAP SEARCH BAR ── */
#map-search-bar {
  position:absolute; top:12px; left:50%; transform:translateX(-50%);
  z-index:400; width:360px; max-width:calc(100% - 100px);
  display:flex; align-items:center; gap:6px;
}
#map-search-radius {
  background:var(--superficie); border:2px solid var(--bordo);
  color:var(--testo); font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.82rem; padding:0 10px; height:44px;
  border-radius:12px; cursor:pointer; -webkit-appearance:none;
  box-shadow:0 4px 15px rgba(0,0,0,.4); flex-shrink:0;
  transition:border-color .2s;
}
#map-search-radius:focus { border-color:var(--arancio); outline:none; }
#map-search-bar input {
  width:100%; background:var(--superficie); border:2px solid var(--bordo);
  color:var(--testo); height:44px; border-radius:12px;
  padding:0 14px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.9rem; letter-spacing:.3px;
  box-shadow:0 4px 15px rgba(0,0,0,.4); outline:none; box-sizing:border-box;
  transition:border-color .2s;
}
#map-search-bar input:focus { border-color:var(--arancio); }
#map-search-bar input::placeholder { color:var(--testo-sbiadito); font-weight:400; }
#map-search-bar .city-ac-dropdown { top:48px; }

/* ── LIST SEARCH BAR ── */
#list-search-wrap {
  display:flex; align-items:center; gap:6px;
  padding:12px 0 14px; box-sizing:border-box;
}
#list-search-wrap input {
  width:100%; background:var(--superficie); border:2px solid var(--bordo);
  color:var(--testo); height:38px; border-radius:12px;
  padding:0 12px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.85rem; letter-spacing:.3px;
  outline:none; box-sizing:border-box; transition:border-color .2s;
}
#list-search-wrap input:focus { border-color:var(--arancio); }
#list-search-wrap input::placeholder { color:var(--testo-sbiadito); font-weight:400; }
body.modal-open #map-search-bar { z-index:1 !important; }

/* ── MAP LOADING SPINNER ── */
#map-loading {
  position:absolute; bottom:12px; left:12px; z-index:1000;
  background:rgba(0,0,0,.55); color:#fff; border-radius:20px;
  padding:5px 10px; font-size:13px; display:flex; align-items:center; gap:6px;
  opacity:0; pointer-events:none; transition:opacity .2s;
}
#map-loading.visible { opacity:1; }

/* ── MARKER MAPPA ── */
.map-marker-pin { position:relative; display:flex; flex-direction:column; align-items:center; }
.map-marker-body {
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.4);
}
.map-marker-tail {
  width:0; height:0;
  border-left:8px solid transparent; border-right:8px solid transparent;
  border-top:10px solid var(--arancio); margin-top:-2px;
}
/* Pulsazioni per marker speciali */
.map-marker-pinned .map-marker-body,
.map-marker-boost-top .map-marker-body { animation:markerPulse .8s infinite; }
.map-marker-boost-boost .map-marker-body,
.map-marker-boost-spark .map-marker-body { animation:markerPulse 1s infinite; }
.map-marker-festival .map-marker-body { animation:markerPulse 1s infinite; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CARD EVENTO — Usata in Lista, Ricerca, Home
   FRONTEND: Un'unica struttura card per tutti i contesti.
   .event-card.pinned = bordo oro (evento in evidenza)
   .event-card.festival = badge festival
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.lista-sezione-hdr {
  font-family:'Bebas Neue',cursive;
  font-size:1.25rem;
  letter-spacing:.06em;
  color:var(--arancio);
  padding:18px 4px 6px;
  margin-bottom:4px;
  border-bottom:2px solid var(--arancio);
  text-transform:uppercase;
}
.lista-sezione-hdr:first-child { padding-top:6px; }
.event-card {
  background:var(--superficie); border:1px solid var(--bordo);
  border-radius:14px; overflow:hidden; margin-bottom:12px;
  cursor:pointer; transition:all .22s; display:flex; position:relative;
}
.event-card:hover {
  border-color:var(--arancio); transform:translateY(-3px);
  box-shadow:0 8px 30px rgba(255,68,0,.2);
}
.event-card.pinned { border-color:gold; box-shadow:0 0 18px rgba(255,215,0,.25); position:relative; }
.event-card.festival { border-color:rgba(126,34,206,.4); }
/* Boost card pulse — animazione solo su box-shadow */
.event-card.boost-spark { border-color:#FF6B1A; animation:pulse-spark 2.2s ease-in-out infinite; }
.event-card.boost-boost { border-color:#A0A8B8; animation:pulse-boost 2.2s ease-in-out infinite; }
.event-card.boost-top   { border-color:#FFD200; animation:pulse-top 2.2s ease-in-out infinite; }
/* Tipo evento badge — colorato come i segnalini mappa */
.ec-tipo-float { position:absolute; top:10px; right:10px; backdrop-filter:blur(6px); font-size:.65rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:4px 10px; border-radius:8px; z-index:2; display:flex; align-items:center; gap:4px; }
.ec-tipo-float.tipo-live     { background:rgba(20,20,20,.75); border:1.5px solid #FF4400; color:#FF4400; }
.ec-tipo-float.tipo-djset    { background:rgba(20,20,20,.75); border:1.5px solid #22c55e; color:#22c55e; }
.ec-tipo-float.tipo-jam      { background:rgba(20,20,20,.75); border:1.5px solid #ec4899; color:#ec4899; }
.ec-tipo-float.tipo-clinic   { background:rgba(20,20,20,.75); border:1.5px solid #3b82f6; color:#3b82f6; }
.ec-tipo-float.tipo-openmic  { background:rgba(20,20,20,.75); border:1.5px solid #f59e0b; color:#f59e0b; }
.ec-tipo-float.tipo-musiclab { background:rgba(20,20,20,.75); border:1.5px solid #06b6d4; color:#06b6d4; }
.ec-tipo-float.tipo-festival { background:rgba(20,20,20,.75); border:1.5px solid #a855f7; color:#a855f7; }
/* Tipo evento inline (ec-meta) — solo mobile, nascosto su desktop */
.ec-tipo-tag { display:inline-flex; align-items:center; gap:3px; font-size:.6rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:2px 7px; border-radius:6px; vertical-align:middle; margin-left:4px; flex-shrink:0; white-space:nowrap; }
.ec-tipo-tag.tipo-live     { background:rgba(255,68,0,.1);   border:1px solid rgba(255,68,0,.4);   color:#FF4400; }
.ec-tipo-tag.tipo-djset    { background:rgba(34,197,94,.1);  border:1px solid rgba(34,197,94,.4);  color:#22c55e; }
.ec-tipo-tag.tipo-jam      { background:rgba(236,72,153,.1); border:1px solid rgba(236,72,153,.4); color:#ec4899; }
.ec-tipo-tag.tipo-clinic   { background:rgba(59,130,246,.1); border:1px solid rgba(59,130,246,.4); color:#3b82f6; }
.ec-tipo-tag.tipo-openmic  { background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.4); color:#f59e0b; }
.ec-tipo-tag.tipo-musiclab { background:rgba(6,182,212,.1);  border:1px solid rgba(6,182,212,.4);  color:#06b6d4; }
.ec-tipo-tag.tipo-festival { background:rgba(168,85,247,.1); border:1px solid rgba(168,85,247,.4); color:#a855f7; }
/* Rec dot lampeggiante per Live */
.rec-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#ff0000; animation:recBlink 1.2s ease-in-out infinite; flex-shrink:0; }
/* Detail view tipo badge — stesse varianti */
.d-tipo-badge.tipo-live     { background:rgba(20,20,20,.75)!important; border:1.5px solid #FF4400!important; color:#FF4400!important; }
.d-tipo-badge.tipo-djset    { background:rgba(20,20,20,.75)!important; border:1.5px solid #22c55e!important; color:#22c55e!important; }
.d-tipo-badge.tipo-jam      { background:rgba(20,20,20,.75)!important; border:1.5px solid #ec4899!important; color:#ec4899!important; }
.d-tipo-badge.tipo-clinic   { background:rgba(20,20,20,.75)!important; border:1.5px solid #3b82f6!important; color:#3b82f6!important; }
.d-tipo-badge.tipo-openmic  { background:rgba(20,20,20,.75)!important; border:1.5px solid #f59e0b!important; color:#f59e0b!important; }
.d-tipo-badge.tipo-musiclab { background:rgba(20,20,20,.75)!important; border:1.5px solid #06b6d4!important; color:#06b6d4!important; }
.d-tipo-badge.tipo-festival { background:rgba(20,20,20,.75)!important; border:1.5px solid #a855f7!important; color:#a855f7!important; }
/* Repertoire pill — stesso stile dei generi */
.ec-rep-pill { display:inline-block; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); color:var(--testo-sbiadito); font-size:.6rem; padding:2px 7px; border-radius:20px; font-weight:600; font-style:italic; }
.ec-img { width:100px; flex-shrink:0; background-size:cover; background-position:center; }
.ec-body { padding:13px 15px; flex:1; }
.ec-title { font-family:'Bebas Neue',cursive; font-size:1.25rem; color:var(--arancio); letter-spacing:1px; line-height:1; margin-bottom:4px; }
.ec-meta { font-size:.8rem; color:var(--testo-sbiadito); line-height:1.5; }
.ec-meta strong { color:var(--testo); }
.ec-tag {
  display:inline-block; background:rgba(255,68,0,.14); color:var(--arancio);
  font-size:.7rem; font-weight:700; padding:2px 8px; border-radius:20px;
  margin-top:5px; text-transform:uppercase; letter-spacing:.4px;
}
.ec-tipo {
  display:inline-block; background:rgba(255,255,255,.07); color:var(--testo-sbiadito);
  font-size:.68rem; font-weight:700; padding:2px 8px; border-radius:20px;
  margin-top:5px; margin-left:4px; text-transform:uppercase;
  letter-spacing:.4px; border:1px solid var(--bordo);
}
.ec-confirms { display:flex; align-items:center; gap:4px; margin-top:7px; flex-wrap:wrap; }
.confirm-badge {
  display:inline-flex; align-items:center; gap:3px; padding:3px 7px;
  border-radius:20px; font-size:.65rem; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; letter-spacing:.4px; text-transform:uppercase; transition:.2s;
}
.confirm-badge.on { background:rgba(255,68,0,.15); border:1px solid var(--arancio); color:var(--arancio); }
.confirm-badge.off { background:rgba(255,255,255,.04); border:1px solid var(--bordo); color:var(--testo-sbiadito); opacity:.45; }
.confirm-badge i { font-size:.6rem; }
@keyframes bit-on-air-blink { 0%,100%{opacity:1} 50%{opacity:.3} }
.badge-on-air {
  display:inline-flex; align-items:center; gap:3px;
  background:rgba(255,68,0,.12); border:1px solid rgba(255,68,0,.35);
  color:#ff5522; font-size:.58rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.6px; padding:2px 6px; border-radius:4px;
  animation:bit-on-air-blink 1.4s ease-in-out infinite;
  white-space:nowrap; vertical-align:middle; margin-left:4px; flex-shrink:0;
}
.badge-on-air::before {
  content:''; width:5px; height:5px; border-radius:50%;
  background:#ff4400; display:inline-block; flex-shrink:0;
}
.ec-full-confirm { display:none; align-items:center; gap:4px; font-size:.65rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:.5px; color:#ffd700; text-transform:uppercase; margin-top:6px; }
.ec-full-confirm.visible { display:flex; }
.ec-pin-badge {
  display:inline-flex; align-items:center; gap:4px;
  background:linear-gradient(135deg,#b8860b,#ffd700); color:#000;
  font-size:.65rem; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; letter-spacing:.5px; text-transform:uppercase;
  padding:3px 8px; border-radius:20px;
}
.ec-genre-pill {
  display:inline-block; font-size:.62rem; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; color:var(--testo-sbiadito); background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12); border-radius:4px;
  padding:2px 7px; margin-top:4px; margin-right:3px; text-transform:uppercase; letter-spacing:.3px;
}
/* Badge crowdfunding argento */
.cf-badge {
  display:inline-flex; align-items:center; gap:3px;
  background:linear-gradient(135deg,rgba(192,208,230,.15),rgba(140,160,185,.08));
  color:#8ca0b8;
  border:1px solid rgba(160,185,215,.45);
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.6rem; letter-spacing:.5px; text-transform:uppercase;
  padding:2px 6px; border-radius:20px; margin-left:4px;
  vertical-align:middle; flex-shrink:0;
  text-shadow:0 0 8px rgba(160,200,255,.2);
}
#pm-pro-badge .cf-badge { font-size:.7rem; letter-spacing:.8px; padding:3px 9px; margin-left:0; margin-right:4px; }

/* Badge pro verificato */
.pro-badge {
  display:inline-flex; align-items:center; gap:3px;
  background:rgba(255,210,0,.12); color:var(--oro);
  border:1px solid rgba(255,210,0,.35);
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.6rem; letter-spacing:.3px; text-transform:lowercase;
  padding:2px 6px; border-radius:20px; margin-left:6px;
  vertical-align:middle; flex-shrink:0;
}
.pro-badge i { font-size:.55rem; }
#pm-pro-badge .pro-badge { font-size:.7rem; letter-spacing:.8px; text-transform:uppercase; padding:3px 9px; margin-left:0; }
#pm-pro-badge .pro-badge i { font-size:.7rem; }
#pm-history-section { margin-bottom:6px; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HOME — Vista iniziale con hero e prossimi eventi
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.home-hero { text-align:center; padding:28px 14px 20px; }
.home-hero-title {
  font-family:'Bebas Neue',cursive; font-size:2.2rem;
  color:var(--arancio); letter-spacing:4px;
  text-shadow:0 0 25px var(--arancio-bagliore);
}
.home-hero-title-link { cursor:pointer; text-decoration:none; }
.home-hero-sub { color:var(--testo-sbiadito); font-size:.88rem; margin-top:6px; line-height:1.5; }
.home-section-title {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.75rem; text-transform:uppercase; letter-spacing:1.5px;
  color:var(--testo-sbiadito); margin-bottom:10px; padding-left:2px;
}
.home-next-events { display:flex; flex-direction:column; gap:9px; margin-bottom:20px; }
.home-event-row {
  background:var(--superficie); border:1px solid var(--bordo);
  border-radius:12px; padding:12px 14px; cursor:pointer;
  transition:all .2s; display:flex; align-items:center; gap:12px;
}
.home-event-row:hover { border-color:var(--arancio); background:rgba(255,68,0,.06); }
.home-ev-date {
  font-family:'Bebas Neue',cursive; font-size:1.1rem;
  color:var(--arancio); letter-spacing:1px; text-align:center;
  min-width:38px; line-height:1;
}
.home-ev-date span {
  display:block; font-size:.65rem; letter-spacing:.5px;
  color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700;
}
.home-ev-info { flex:1; }
.home-ev-band { font-family:'Bebas Neue',cursive; font-size:1.05rem; color:var(--testo); letter-spacing:.5px; }
.home-ev-meta { font-size:.75rem; color:var(--testo-sbiadito); margin-top:1px; }
.home-ev-tag {
  font-size:.68rem; font-family:'Barlow Condensed',sans-serif; font-weight:700;
  color:var(--arancio); text-transform:uppercase; letter-spacing:.5px;
  background:rgba(255,68,0,.12); padding:2px 7px; border-radius:20px; white-space:nowrap;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MODALI — Base comune per tutte le modali a bottom-sheet
   FRONTEND: Tutte le modali usano lo stesso pattern:
   position:fixed, backdrop blur, animazione slideUp.
   Il z-index cresce: detail(500) < add(600) < profile(700) <
   myprofile(750) < history(800) < edit(850) < menu(900) <
   confirm(1000) < welcome(1050) < tooltip(1200)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.modale-base {
  position:fixed; inset:0; display:none;
  align-items:flex-end; justify-content:center;
  backdrop-filter:blur(8px); padding:0;
}
.modale-base.open { display:flex; }
.modale-sfondo-500 { background:rgba(0,0,0,.78); z-index:500; }
.modale-sfondo-600 { background:rgba(0,0,0,.8); z-index:600; align-items:center; }
.modale-sfondo-700 { background:rgba(0,0,0,.78); z-index:700; }
.modale-sfondo-750 { background:rgba(0,0,0,.82); z-index:750; }
.modale-sfondo-800 { background:rgba(0,0,0,.75); z-index:800; backdrop-filter:blur(4px); }
.modale-sfondo-850 { background:rgba(0,0,0,.82); z-index:850; }
.modale-sfondo-900 { background:rgba(0,0,0,.7); z-index:900; backdrop-filter:blur(6px); }
.modale-sfondo-1000 { background:rgba(0,0,0,.85); z-index:1000; align-items:center; }
.modale-sfondo-1050 { background:rgba(0,0,0,.88); z-index:1050; align-items:center; backdrop-filter:blur(10px); padding:20px; }

/* Sheet base per bottom-sheet */
.sheet-base {
  background:var(--superficie); border-radius:24px 24px 0 0;
  width:100%; max-width:600px; max-height:94dvh;
  overflow-y:auto; box-shadow:0 -10px 40px rgba(0,0,0,.6);
  animation:slideUp .3s ease; position:relative;
}
.sheet-centrato {
  background:var(--superficie); border-radius:20px;
  width:100%; max-width:500px; max-height:92dvh;
  overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.6),0 0 40px var(--arancio-bagliore);
  border:1px solid var(--bordo);
}
/* Handle a trascinamento */
.d-handle { width:40px; height:4px; background:#444; border-radius:2px; margin:12px auto 0; }
/* Bottone chiudi generico */
.btn-chiudi-modale {
  position:absolute; top:14px; right:16px;
  background:rgba(0,0,0,.5); border:none; color:#fff;
  width:34px; height:34px; border-radius:50%;
  font-size:1.1rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:.2s; z-index:10;
}
.btn-chiudi-modale:hover { background:var(--arancio); }

/* ── DETAIL MODAL (z-index 500) ── */
.detail-sheet { max-height:92dvh; }
.d-flier { width:100%; aspect-ratio:16/9; background-size:cover; background-position:center; position:relative; }
.d-badge { position:absolute; top:12px; left:12px; background:rgba(0,0,0,.75); color:var(--arancio); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.8px; text-transform:uppercase; padding:5px 10px; border-radius:20px; backdrop-filter:blur(4px); }
.d-info { padding:18px 20px; }
.d-title { font-family:'Bebas Neue',cursive; font-size:2rem; color:var(--arancio); letter-spacing:2px; line-height:1; margin-bottom:10px; text-shadow:0 0 15px var(--arancio-bagliore); }
.d-row { display:flex; align-items:center; gap:8px; font-size:.88rem; color:var(--testo-sbiadito); margin-bottom:6px; }
.d-row i { color:var(--arancio); width:14px; text-align:center; flex-shrink:0; }
.d-desc { font-size:.85rem; color:var(--testo-sbiadito); line-height:1.65; margin:12px 0; padding:0; background:none; border:none; border-radius:0; }
.d-actions { display:flex; gap:10px; margin-top:14px; }
.d-link, .d-nav-btn {
  flex:1; display:flex; align-items:center; justify-content:center; gap:6px;
  padding:12px; border-radius:12px; text-decoration:none;
  font-family:'Bebas Neue',cursive; font-size:1.1rem; letter-spacing:1px;
  transition:all .2s;
}
.d-link { background:var(--arancio); color:#000; }
.d-link:hover { background:var(--arancio-scuro); box-shadow:0 0 20px var(--arancio-bagliore); }
.d-nav-btn { background:var(--superficie2); color:var(--testo); border:2px solid var(--bordo); }
.d-nav-btn:hover { border-color:var(--arancio); color:var(--arancio); }
.d-support-row { margin-top:16px; padding:12px 14px; border:1px solid var(--bordo); border-radius:12px; background:rgba(255,255,255,.03); display:flex; align-items:center; justify-content:space-between; }
.d-support-count { display:flex; align-items:center; gap:6px; font-size:.82rem; color:var(--testo-sbiadito); }
.d-support-count i { color:var(--arancio); }
.d-support-count strong { color:var(--testo); font-size:1rem; }
.d-support-btn {
  display:flex; align-items:center; gap:6px;
  padding:8px 16px; background:rgba(255,68,0,.1); border:1.5px solid var(--arancio);
  color:var(--arancio); border-radius:10px; cursor:pointer;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.82rem; letter-spacing:.5px; text-transform:uppercase; transition:all .2s;
}
.d-support-btn:hover { background:var(--arancio); color:#000; }
.d-support-btn.supported { background:var(--arancio); color:#000; border-color:var(--arancio); cursor:default; }
.d-profiles { padding:0 20px 28px; }
.d-profile-section-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--testo-sbiadito); margin:8px 0; }
/* badge speciali nel dettaglio */
.d-special-badges { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }

/* ── PROFILE MODAL (z-index 700) ── */
.pm-hero { position:relative; padding:28px 20px 20px; }
.pm-avatar-big {
  width:72px; height:72px; border-radius:50%;
  background-size:cover; background-position:center;
  border:3px solid var(--arancio); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background-color:var(--superficie2);
}
.pm-avatar-big i { font-size:1.8rem; color:var(--testo-sbiadito); }
.pm-header-row { display:flex; align-items:center; gap:16px; margin-bottom:12px; }
.pm-name { font-family:'Bebas Neue',cursive; font-size:1.7rem; color:var(--testo); letter-spacing:1px; line-height:1; }
.pm-role-badge {
  display:inline-block; background:rgba(255,68,0,.12);
  border:1px solid var(--arancio); color:var(--arancio);
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.7rem; letter-spacing:.8px; text-transform:uppercase;
  padding:3px 9px; border-radius:20px; margin-top:3px;
}
.pm-alias { font-size:.88rem; color:var(--testo-sbiadito); margin-top:4px; }
.pm-bio { font-size:.88rem; color:var(--testo-sbiadito); line-height:1.6; padding:0 20px 14px; }
.pm-section { padding:0 20px; margin-bottom:18px; }
.pm-section-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.7rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--testo-sbiadito); margin-bottom:8px; }
.pm-ev-row { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.05); cursor:pointer; transition:background .15s; }
.pm-ev-row:last-child { border-bottom:none; }
.pm-ev-row:hover { opacity:.8; }
.pm-ev-date { font-family:'Bebas Neue',cursive; font-size:1rem; color:var(--arancio); letter-spacing:.5px; min-width:48px; line-height:1; text-align:center; }
.pm-ev-date span { display:block; font-family:'Barlow Condensed',sans-serif; font-size:.6rem; font-weight:700; color:var(--testo-sbiadito); letter-spacing:.5px; text-transform:uppercase; line-height:1.2; }
.pm-ev-info { flex:1; min-width:0; }
.pm-ev-name { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.9rem; color:var(--testo); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-ev-meta { font-size:.72rem; color:var(--testo-sbiadito); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-ev-arrow { color:var(--testo-sbiadito); font-size:.75rem; flex-shrink:0; }
.pm-genres { display:flex; flex-wrap:wrap; gap:6px; }
.pm-genre-pill { font-size:.75rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; color:var(--arancio); background:rgba(255,68,0,.1); border:1px solid rgba(255,68,0,.3); border-radius:20px; padding:4px 10px; text-transform:uppercase; }
.pm-socials { display:flex; flex-wrap:wrap; gap:8px; }
.pm-trailer { margin:0 20px 18px; border-radius:12px; overflow:hidden; aspect-ratio:16/9; background:#000; }
.pm-trailer iframe { width:100%; height:100%; border:none; display:block; }
.pm-past-events { display:flex; flex-direction:column; gap:8px; padding-bottom:32px; }
.pb-social-btn { display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:8px; background:rgba(255,255,255,.04); border:1.5px solid var(--bordo); color:var(--testo-sbiadito); text-decoration:none; font-size:.78rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; transition:all .2s; letter-spacing:.3px; }
.pb-social-btn:hover { background:rgba(255,255,255,.09); color:var(--testo); }
.pb-social-btn img { width:14px; height:14px; object-fit:contain; }
.bit-count-btn { cursor:pointer; }
.bit-count-btn:hover { opacity:.85; }

/* ── HISTORY DRAWER (z-index 800) ── */
.hd-sheet { background:var(--superficie); border-radius:20px 20px 0 0; width:100%; max-width:600px; max-height:70dvh; display:flex; flex-direction:column; box-shadow:0 -8px 30px rgba(0,0,0,.5); animation:slideUp .25s ease; }
.hd-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px 12px; border-bottom:1px solid var(--bordo); flex-shrink:0; }
.hd-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--testo-sbiadito); }
.hd-close { background:none; border:none; color:var(--testo-sbiadito); font-size:1.1rem; cursor:pointer; padding:4px 8px; border-radius:6px; transition:.2s; }
.hd-close:hover { color:var(--arancio); }
.hd-list { overflow-y:auto; padding:8px 0 24px; }
.hd-row { display:flex; align-items:baseline; gap:10px; padding:9px 20px; border-bottom:1px solid rgba(255,255,255,.04); cursor:default; transition:opacity .2s; }
.hd-row:last-child { border-bottom:none; }
.hd-row-past { opacity:.5; }
.hd-section-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--testo-sbiadito); padding:10px 20px 6px; background:rgba(255,255,255,.02); border-bottom:1px solid var(--bordo); }
.hd-date { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.78rem; color:var(--testo-sbiadito); white-space:nowrap; min-width:72px; }
.hd-alias { font-size:.75rem; color:var(--arancio); font-family:'Barlow Condensed',sans-serif; font-weight:700; white-space:nowrap; }
.hd-alias-link { cursor:pointer; text-decoration:underline; text-underline-offset:3px; transition:opacity .15s; }
.hd-alias-link:hover { opacity:.7; }
.hd-venue { font-size:.78rem; color:var(--testo); flex:1; }
.hd-city { font-size:.72rem; color:var(--testo-sbiadito); white-space:nowrap; }
.hd-empty { padding:24px 20px; font-size:.82rem; color:var(--testo-sbiadito); text-align:center; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   FORM INPUTS — Usati in Add Panel, Edit Modal, My Profile
   FRONTEND: Stile unificato per tutti i campi.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.f-label {
  display:block; font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.8rem; text-transform:uppercase; letter-spacing:1px;
  color:var(--testo-sbiadito); margin:16px 0 5px;
}
.f-label:first-child { margin-top:0; }
.f-input {
  width:100%; padding:11px 13px; background:var(--superficie2);
  border:2px solid var(--bordo); border-radius:10px;
  color:var(--testo); font-size:.93rem; font-family:'Barlow',sans-serif;
  transition:border-color .2s; -webkit-appearance:none;
}
.f-input:focus { border-color:var(--arancio); outline:none; }
.f-input option { background:var(--superficie2); }
.f-error { font-size:.75rem; color:var(--arancio); font-weight:700; margin-top:3px; display:none; font-family:'Barlow Condensed',sans-serif; letter-spacing:.5px; text-transform:uppercase; }
.f-counter { text-align:right; font-size:.73rem; color:var(--testo-sbiadito); margin-top:2px; }
.f-hint { font-size:.75rem; color:var(--testo-sbiadito); margin-top:6px; line-height:1.5; padding:9px 11px; background:var(--superficie2); border-radius:8px; border-left:3px solid var(--arancio); }
.f-hint strong { color:var(--arancio); }
.f-warn { font-size:.75rem; color:#f5a623; font-weight:700; margin-top:5px; display:none; font-family:'Barlow Condensed',sans-serif; letter-spacing:.3px; padding:7px 10px; background:rgba(245,166,35,.08); border-radius:8px; border:1px solid rgba(245,166,35,.25); }
input[type="datetime-local"]::-webkit-calendar-picker-indicator { filter:invert(1); opacity:.75; cursor:pointer; font-size:1.1rem; }
input[type="date"]::-webkit-calendar-picker-indicator { filter:brightness(0) saturate(100%) invert(41%) sepia(100%) saturate(3000%) hue-rotate(5deg) brightness(100%) contrast(105%); cursor:pointer; font-size:1.1rem; }
.btn-primary { flex:1; padding:13px; background:var(--arancio); color:#000; font-family:'Bebas Neue',cursive; font-size:1.1rem; letter-spacing:1px; border:none; border-radius:12px; cursor:pointer; transition:all .2s; }
.btn-primary:hover { background:var(--arancio-scuro); box-shadow:0 0 20px var(--arancio-bagliore); }
.btn-primary:disabled { opacity:.5; cursor:not-allowed; }
.btn-secondary { padding:13px 18px; background:var(--superficie2); color:var(--testo-sbiadito); font-family:'Bebas Neue',cursive; font-size:1.1rem; letter-spacing:1px; border:2px solid var(--bordo); border-radius:12px; cursor:pointer; transition:all .2s; }
.btn-secondary:hover { border-color:var(--testo-sbiadito); color:var(--testo); }
.form-actions { display:flex; gap:9px; margin-top:22px; }
.info-badge { display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; background:var(--arancio); color:#000; border-radius:50%; font-size:.65rem; margin-left:5px; cursor:help; font-weight:900; vertical-align:middle; position:relative; }
.info-badge:hover::after { content:attr(title); position:fixed; z-index:9999; background:var(--superficie2); color:var(--testo); border:1px solid var(--arancio); border-radius:8px; padding:8px 11px; font-size:.72rem; font-weight:400; box-shadow:0 4px 16px rgba(0,0,0,.5); pointer-events:none; width:190px; white-space:normal; line-height:1.4; text-align:center; left:50%; top:50%; transform:translate(-50%,-50%); }

/* ── Griglia generi (unificata — usata ovunque) ── */
.genre-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:7px; }
.g-btn {
  background:var(--superficie2); border:2px solid var(--bordo);
  color:var(--testo-sbiadito); padding:7px 3px; border-radius:8px;
  text-align:center; font-size:.72rem; cursor:pointer;
  transition:all .2s; font-family:'Barlow',sans-serif;
}
.g-btn.active { background:rgba(255,68,0,.14); border-color:var(--arancio); color:var(--arancio); font-weight:700; }
/* Griglia tipo evento */
.tipo-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:7px; }
.tipo-btn {
  background:var(--superficie2); border:2px solid var(--bordo);
  color:var(--testo-sbiadito); padding:10px 6px; border-radius:10px;
  text-align:center; font-size:.78rem; cursor:pointer; transition:all .2s;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase;
}
.tipo-btn i { display:block; font-size:1.3rem; margin-bottom:5px; color:var(--testo-sbiadito); transition:.2s; }
.tipo-btn.active { background:rgba(255,68,0,.14); border-color:var(--arancio); color:var(--arancio); }
.tipo-btn.active i { color:var(--arancio); }
.tipo-btn.tipo-btn-disabled { opacity:.35; cursor:not-allowed; }
.tipo-btn.tipo-btn-disabled:hover { border-color:var(--bordo); background:var(--superficie2); }
/* Griglia social */
.social-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin-top:7px; }
.social-btn { aspect-ratio:1; background:var(--superficie2); border:2px solid var(--bordo); border-radius:11px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; position:relative; min-height:64px; }
.social-btn img { width:36px; height:36px; opacity:.7; transition:.2s; }
.social-btn.active { border-color:var(--arancio); background:rgba(255,68,0,.12); }
.social-btn.active img { opacity:1; }
.social-btn .sb-del { display:none; position:absolute; top:-7px; right:-7px; width:24px; height:24px; border-radius:50%; background:#c0392b; border:2px solid var(--superficie); color:#fff; font-size:.75rem; cursor:pointer; align-items:center; justify-content:center; transition:transform .15s,background .15s; z-index:5; line-height:1; }
.social-btn.active .sb-del { display:flex; }
.social-btn .sb-del:hover { background:#e74c3c; transform:scale(1.15); }
.mp-social-url-row { display:flex; align-items:center; gap:7px; margin-bottom:6px; }
.mp-social-url-row .social-label { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; color:var(--testo-sbiadito); text-transform:uppercase; letter-spacing:.5px; min-width:76px; display:flex; align-items:center; gap:5px; }
.mp-social-url-row .social-label img { width:14px; height:14px; object-fit:contain; opacity:.7; }

/* ── Add Panel Header ── */
.add-hdr { background:var(--arancio); padding:18px 22px; border-radius:20px 20px 0 0; position:sticky; top:0; z-index:10; }
.add-hdr-top { display:flex; justify-content:space-between; align-items:center; }
.add-hdr h2 { font-family:'Bebas Neue',cursive; font-size:1.7rem; letter-spacing:2px; color:#000; }
.add-close { background:rgba(0,0,0,.2); border:none; color:#000; width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center; transition:.2s; }
.add-close:hover { background:rgba(0,0,0,.4); }
.step-dots { display:flex; gap:5px; margin-top:10px; }
.step-dot { height:4px; border-radius:2px; background:rgba(0,0,0,.3); flex:1; transition:all .3s; }
.step-dot.done { background:#000; }
.step-dot.locked { background:rgba(0,0,0,.15); opacity:.4; }
.add-body { padding:22px; }
.step-section { display:none; }
.step-section.active { display:block; }
/* Login tabs */
.login-tabs { display:flex; background:var(--superficie2); border-radius:10px; overflow:hidden; margin-bottom:20px; }
.login-tab { flex:1; background:none; border:none; color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.82rem; letter-spacing:.5px; text-transform:uppercase; padding:10px; cursor:pointer; transition:.2s; }
.login-tab.active { background:var(--arancio); color:#000; }
/* Avatar upload */
.avatar-upload-row { display:flex; align-items:center; gap:14px; margin-bottom:4px; }
.avatar-circle { width:64px; height:64px; border-radius:50%; background:var(--superficie); border:2px dashed var(--bordo); flex-shrink:0; display:flex; align-items:center; justify-content:center; overflow:hidden; cursor:pointer; transition:border-color .2s; }
.avatar-circle:hover { border-color:var(--arancio); }
.avatar-circle.has-img { border-style:solid; border-color:var(--arancio); }
.avatar-circle img { display:none; width:100%; height:100%; object-fit:cover; }
.avatar-circle.has-img img { display:block; }
.avatar-circle.has-img i { display:none; }
/* Coords preview */
.coords-preview { display:none; font-size:.78rem; color:#4caf50; font-family:'Barlow Condensed',sans-serif; font-weight:700; margin-top:6px; padding:7px 10px; background:rgba(76,175,80,.08); border-radius:8px; border:1px solid rgba(76,175,80,.25); }
.coords-preview.visible { display:block; }
/* Flier preview */
#flierPreview { display:none; width:100%; max-height:180px; object-fit:contain; border-radius:10px; border:2px solid var(--arancio); margin-top:9px; }
/* Profilo benefit box */
.profile-benefit-box { background:rgba(255,68,0,.07); border:1px solid rgba(255,68,0,.25); border-radius:12px; padding:14px 16px; margin-bottom:18px; }
.profile-benefit-box .pb-title { font-family:'Bebas Neue',cursive; font-size:1.1rem; color:var(--arancio); letter-spacing:1px; margin-bottom:6px; }
.profile-benefit-box p { font-size:.78rem; color:var(--testo-sbiadito); line-height:1.6; }
.profile-benefit-box p strong { color:var(--testo); }
/* Success box */
.success-box { text-align:center; padding:36px 20px; overflow:hidden; }
.success-icon { font-size:3.8rem; margin-bottom:14px; animation:successPulse 1s infinite alternate; display:block; }
.success-title { font-family:'Bebas Neue',cursive; font-size:2.8rem; color:var(--arancio); letter-spacing:3px; text-shadow:0 0 20px var(--arancio-bagliore); line-height:1.1; }
.success-event-summary { margin:14px auto 0; background:var(--superficie2); border:1px solid var(--bordo); border-radius:12px; padding:14px 16px; text-align:left; max-width:360px; }
.ses-band { font-family:'Bebas Neue',cursive; font-size:1.3rem; color:var(--arancio); letter-spacing:1px; margin-bottom:6px; }
.ses-row { display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--testo-sbiadito); margin-bottom:4px; }
.ses-row i { color:var(--arancio); width:13px; text-align:center; }

/* ── Edit Event Header ── */
.ee-hdr { background:var(--arancio); padding:16px 20px; border-radius:24px 24px 0 0; display:flex; justify-content:space-between; align-items:center; position:sticky; top:0; z-index:10; }
.ee-hdr h3 { font-family:'Bebas Neue',cursive; font-size:1.5rem; letter-spacing:1.5px; color:#000; }
.ee-close { background:rgba(0,0,0,.2); border:none; color:#000; width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center; transition:.2s; }
.ee-close:hover { background:rgba(0,0,0,.4); }
.ee-body { padding:20px; }

/* ── My Profile tabs ── */
.mp-tabs { display:flex; background:var(--superficie2); border-radius:10px; overflow:hidden; margin:0 20px 16px; }
.mp-tab { flex:1; background:none; border:none; color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.78rem; letter-spacing:.5px; text-transform:uppercase; padding:10px 6px; cursor:pointer; transition:.2s; display:flex; align-items:center; justify-content:center; gap:5px; }
.mp-tab.active { background:var(--arancio); color:#000; }
.mp-tab-content { display:none; padding:0 20px 32px; }
.mp-field-row { display:flex; align-items:center; justify-content:space-between; }
.mp-edit-btn { background:none; border:1px solid rgba(255,68,0,.3); color:var(--arancio); border-radius:6px; padding:2px 8px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.65rem; letter-spacing:.3px; cursor:pointer; transition:.2s; }
.mp-edit-btn:hover { background:rgba(255,68,0,.1); }
.mp-tab-content.active { display:block; }
/* Card mio evento */
.my-ev-card { background:var(--superficie2); border:1px solid var(--bordo); border-radius:12px; overflow:hidden; margin-bottom:10px; transition:border-color .2s; }
.my-ev-card:hover { border-color:rgba(255,68,0,.3); }
.my-ev-card-inner { display:flex; align-items:stretch; }
.my-ev-thumb { width:72px; flex-shrink:0; background-size:cover; background-position:center; min-height:72px; }
.my-ev-body { flex:1; padding:10px 12px; }
.my-ev-band { font-family:'Bebas Neue',cursive; font-size:1rem; color:var(--arancio); letter-spacing:.5px; line-height:1; margin-bottom:3px; }
.my-ev-meta { font-size:.73rem; color:var(--testo-sbiadito); line-height:1.5; }
.my-ev-meta strong { color:var(--testo); }
.my-ev-actions { display:flex; gap:6px; padding:8px 12px; border-top:1px solid var(--bordo); }
.my-ev-btn { display:flex; align-items:center; gap:5px; padding:6px 12px; border-radius:8px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.5px; text-transform:uppercase; cursor:pointer; transition:all .2s; border:none; }
.my-ev-btn.edit { background:rgba(255,68,0,.1); color:var(--arancio); border:1px solid rgba(255,68,0,.3); }
.my-ev-btn.edit:hover { background:rgba(255,68,0,.2); }
.my-ev-btn.del { background:rgba(238,68,68,.08); color:var(--rosso); border:1px solid rgba(238,68,68,.25); }
.my-ev-btn.del:hover { background:rgba(238,68,68,.18); }
.my-ev-empty { text-align:center; padding:36px 20px; color:var(--testo-sbiadito); }
.my-ev-empty i { font-size:2.5rem; color:var(--bordo); display:block; margin-bottom:12px; }
/* Settings form */
.sf-section { margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid var(--bordo); }
.sf-section:last-child { border-bottom:none; }
.sf-section-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--testo-sbiadito); margin-bottom:10px; }

/* ── Welcome Modal ── */
.wm-sheet { background:var(--superficie); border:1px solid rgba(255,68,0,.3); border-radius:22px; width:100%; max-width:400px; padding:32px 26px 26px; box-shadow:0 24px 64px rgba(0,0,0,.7),0 0 40px rgba(255,68,0,.12); text-align:center; animation:slideUp .3s ease; }
.wm-avatar { width:72px; height:72px; border-radius:50%; border:3px solid var(--arancio); margin:0 auto 14px; background-size:cover; background-position:center; background-color:var(--superficie2); display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 5px rgba(255,68,0,.15); }
.wm-avatar i { font-size:1.8rem; color:var(--testo-sbiadito); }
.wm-title { font-family:'Bebas Neue',cursive; font-size:2rem; color:var(--arancio); letter-spacing:2px; line-height:1; margin-bottom:4px; text-shadow:0 0 20px var(--arancio-bagliore); }
.wm-alias { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.85rem; color:var(--testo-sbiadito); letter-spacing:.5px; margin-bottom:6px; }
.wm-badge { display:inline-flex; align-items:center; gap:5px; background:rgba(255,210,0,.12); border:1px solid rgba(255,210,0,.35); color:var(--oro); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.68rem; letter-spacing:.5px; text-transform:lowercase; padding:3px 10px; border-radius:20px; margin-bottom:16px; }
.wm-msg { font-size:.85rem; color:var(--testo-sbiadito); line-height:1.6; margin-bottom:24px; }
.wm-actions { display:flex; flex-direction:column; gap:10px; }
.wm-btn-primary { padding:14px; background:var(--arancio); color:#000; font-family:'Bebas Neue',cursive; font-size:1.3rem; letter-spacing:1px; border:none; border-radius:12px; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; gap:8px; }
.wm-btn-primary:hover { background:var(--arancio-scuro); box-shadow:0 0 20px var(--arancio-bagliore); }
.wm-btn-secondary { padding:13px; background:var(--superficie2); color:var(--testo); font-family:'Bebas Neue',cursive; font-size:1.1rem; letter-spacing:.5px; border:2px solid var(--bordo); border-radius:12px; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; gap:8px; }
.wm-btn-secondary:hover { border-color:var(--arancio); color:var(--arancio); }

/* ── Confirm Dialog ── */
.cd-sheet { background:var(--superficie); border:1px solid var(--bordo); border-radius:20px; width:100%; max-width:380px; padding:28px 24px; box-shadow:0 20px 60px rgba(0,0,0,.6),0 0 30px rgba(238,68,68,.15); text-align:center; }
.cd-icon { font-size:2.8rem; margin-bottom:12px; }
.cd-title { font-family:'Bebas Neue',cursive; font-size:1.6rem; color:var(--testo); letter-spacing:1px; margin-bottom:8px; }
.cd-msg { font-size:.85rem; color:var(--testo-sbiadito); line-height:1.6; margin-bottom:22px; }
.cd-actions { display:flex; gap:10px; }
.cd-cancel { flex:1; padding:12px; background:var(--superficie2); color:var(--testo-sbiadito); font-family:'Bebas Neue',cursive; font-size:1.1rem; letter-spacing:.5px; border:2px solid var(--bordo); border-radius:12px; cursor:pointer; transition:all .2s; }
.cd-cancel:hover { border-color:var(--testo-sbiadito); color:var(--testo); }
.cd-confirm { flex:1; padding:12px; background:#c0392b; color:#fff; font-family:'Bebas Neue',cursive; font-size:1.1rem; letter-spacing:.5px; border:none; border-radius:12px; cursor:pointer; transition:all .2s; }
.cd-confirm:hover { background:#e74c3c; }

/* Blocco utente nel menu mobile */
.m-user-block {
  background:rgba(255,68,0,.06); border:1px solid rgba(255,68,0,.22);
  border-radius:12px; overflow:hidden; margin:8px 14px 10px;
}
.m-user-head { display:flex; align-items:stretch; }
.m-user-head .m-user-row { flex:1; border-radius:0; }
.m-bell-btn { background:none; border:none; color:var(--arancio); cursor:pointer; padding:0 20px; display:flex; align-items:center; justify-content:center; position:relative; transition:background .18s; flex-shrink:0; }
.m-bell-btn:hover { background:rgba(255,68,0,.08); }
.m-bell-btn i { font-size:1.15rem; }
.m-bell-btn .cons-badge { position:absolute; top:14px; right:14px; }
.m-user-row { display:flex; align-items:center; gap:12px; padding:14px 12px; cursor:pointer; transition:background .2s; border-radius:8px; }
.m-user-row:hover { background:rgba(255,68,0,.06); }
.m-user-avatar { width:40px; height:40px; border-radius:50%; background-size:cover; background-position:center; border:2px solid var(--arancio); flex-shrink:0; display:flex; align-items:center; justify-content:center; background-color:var(--superficie2); }
.m-user-avatar i { font-size:.9rem; color:var(--testo-sbiadito); }
.m-user-info { flex:1; }
.m-user-name { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.95rem; color:var(--testo); }
.m-user-alias { font-size:.72rem; color:var(--arancio); margin-top:1px; }
.m-user-actions { display:flex; padding:4px 0 10px; }
.m-user-action { flex:1; background:none; border:none; color:var(--testo-sbiadito); cursor:pointer; padding:8px 4px; display:flex; flex-direction:column; align-items:center; gap:3px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.62rem; letter-spacing:.3px; text-transform:uppercase; transition:.2s; }
.m-user-action:hover { color:var(--arancio); }
.m-user-action i { font-size:.9rem; }
.m-user-action.danger:hover { color:var(--rosso); }

/* Tooltip */
#tooltip { position:fixed; bottom:75px; left:50%; transform:translateX(-50%); background:var(--superficie2); border:2px solid var(--arancio); color:var(--testo); padding:11px 15px; border-radius:10px; font-size:.83rem; max-width:90%; z-index:1200; display:none; box-shadow:0 0 25px var(--arancio-bagliore); text-align:center; line-height:1.5; pointer-events:none; white-space:pre-wrap; }

/* ── Alias autocomplete ── */
.alias-wrap { position:relative; }
.alias-suggestions { position:absolute; top:100%; left:0; right:0; background:var(--superficie2); border:2px solid var(--arancio); border-radius:10px; z-index:200; display:none; max-height:180px; overflow-y:auto; margin-top:2px; box-shadow:0 8px 24px rgba(0,0,0,.5); }
.alias-suggestions.visible { display:block; }
.alias-suggestion-item { display:flex; align-items:center; gap:10px; padding:10px 13px; cursor:pointer; transition:.15s; }
.alias-suggestion-item:hover { background:rgba(255,68,0,.1); }
.asi-avatar { width:32px; height:32px; border-radius:50%; background-size:cover; background-position:center; border:1px solid var(--bordo); flex-shrink:0; }
.asi-name { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.88rem; color:var(--testo); }
.asi-alias { font-size:.72rem; color:var(--arancio); }
.asi-role { font-size:.65rem; color:var(--testo-sbiadito); text-transform:uppercase; letter-spacing:.5px; }

/* ── City autocomplete ── */
.city-ac-wrap { position:relative; }
#city-ac-dropdown { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--superficie2); border:2px solid var(--arancio); border-radius:12px; z-index:650; display:none; max-height:240px; overflow-y:auto; box-shadow:0 8px 28px rgba(0,0,0,.5); }
#city-ac-dropdown.visible { display:block; }
/* Dropdown Nominatim generico — usato da ev-citta e reg-citta */
.city-ac-dropdown { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--superficie2); border:2px solid var(--arancio); border-radius:12px; z-index:650; display:none; max-height:240px; overflow-y:auto; box-shadow:0 8px 28px rgba(0,0,0,.5); }
.city-ac-dropdown.visible { display:block; }
.city-ac-item { padding:10px 14px; cursor:pointer; border-bottom:1px solid rgba(255,255,255,.04); transition:background .15s; }
.city-ac-item:last-child { border-bottom:none; }
.city-ac-item:hover, .city-ac-item.city-ac-focused { background:rgba(255,68,0,.1); }
.city-ac-name { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.9rem; color:var(--testo); }
.city-ac-sub { font-size:.72rem; color:var(--testo-sbiadito); margin-top:2px; }
.city-ac-coords { font-size:.65rem; color:rgba(255,68,0,.6); margin-top:1px; font-family:'Barlow Condensed',sans-serif; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SEARCH — Stili unificati (erano iniettati via JS in v6.4)
   FRONTEND: Tutti gli stili di ricerca sono qui nel CSS.
   Include: barra, filtri dropdown, pill, badge zona, accordion.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.search-bar-wrap { display:flex; align-items:center; gap:10px; background:var(--superficie); border:2px solid var(--bordo); border-radius:14px; padding:11px 15px; margin-bottom:8px; transition:border-color .2s; position:relative; }
.search-bar-wrap:focus-within { border-color:var(--arancio); }
.search-bar-wrap i { color:var(--testo-sbiadito); }
.search-bar-wrap input { background:none; border:none; color:var(--testo); font-size:.97rem; font-family:'Barlow',sans-serif; outline:none; flex:1; }
.search-bar-wrap input::placeholder { color:var(--testo-sbiadito); }
/* AC dropdown cerca */
.search-ac-wrap { position:relative; }
#search-ac-dropdown, #pub-ac-dropdown { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--superficie2); border:2px solid var(--arancio); border-radius:12px; z-index:300; display:none; max-height:280px; overflow-y:auto; box-shadow:0 8px 28px rgba(0,0,0,.5); }
#search-ac-dropdown.visible, #pub-ac-dropdown.visible { display:block; }
.ac-item { display:flex; align-items:center; gap:10px; padding:10px 14px; cursor:pointer; transition:background .15s; border-bottom:1px solid rgba(255,255,255,.04); }
.ac-item:last-child { border-bottom:none; }
.ac-item:hover, .ac-item.ac-focused { background:rgba(255,68,0,.1); }
.ac-avatar { width:36px; height:36px; border-radius:50%; flex-shrink:0; border:2px solid var(--arancio); background-size:cover; background-position:center; display:flex; align-items:center; justify-content:center; background-color:var(--superficie); }
.ac-avatar i { font-size:.85rem; color:var(--testo-sbiadito); }
.ac-info { flex:1; min-width:0; }
.ac-name { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.9rem; color:var(--testo); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ac-name em { color:var(--arancio); font-style:normal; }
.ac-sub { font-size:.7rem; color:var(--testo-sbiadito); margin-top:1px; }
.ac-role-badge { font-size:.6rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--arancio); background:rgba(255,68,0,.12); border:1px solid rgba(255,68,0,.3); border-radius:20px; padding:2px 6px; flex-shrink:0; }
/* Hint @alias */
.search-alias-hint { font-size:.75rem; color:var(--testo-sbiadito); margin-bottom:10px; padding:7px 12px; background:var(--superficie); border-radius:8px; border-left:3px solid var(--arancio); transition:opacity .2s; }
.search-alias-hint.hidden { opacity:0; pointer-events:none; }
/* Pill filtri tipo */
.s-pill { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:20px; border:2px solid var(--bordo); background:var(--superficie2); color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.78rem; letter-spacing:.5px; text-transform:uppercase; cursor:pointer; transition:all .2s; }
.s-pill:hover { border-color:var(--arancio); color:var(--arancio); }
.s-pill.active { background:var(--arancio); border-color:var(--arancio); color:#000; }
/* Search filter bar — precedentemente iniettato via JS (injectSearchCSS) */
.sf-bar { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; align-items:center; }
.sf-drop { position:relative; flex-shrink:0; }
.sf-drop-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border-radius:20px; border:2px solid var(--bordo); background:var(--superficie2); color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.78rem; letter-spacing:.5px; cursor:pointer; transition:all .2s; white-space:nowrap; user-select:none; }
.sf-drop-btn:hover { border-color:var(--arancio); color:var(--arancio); }
.sf-drop-btn.active { background:var(--arancio); border-color:var(--arancio); color:#000; }
.sf-drop-btn.active .sf-chevron { color:#000; }
.sf-chevron { font-size:.6rem; transition:transform .2s; margin-left:1px; }
.sf-menu { position:absolute; top:calc(100% + 6px); left:0; min-width:180px; background:var(--superficie2); border:2px solid var(--arancio); border-radius:12px; z-index:500; box-shadow:0 8px 28px rgba(0,0,0,.5); overflow:hidden; display:none; }
.sf-menu.visible { display:block; }
.sf-menu-item { padding:9px 14px; cursor:pointer; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.82rem; color:var(--testo-sbiadito); transition:background .15s; display:flex; align-items:center; gap:8px; border-bottom:1px solid rgba(255,255,255,.04); }
.sf-menu-item:last-child { border-bottom:none; }
.sf-menu-item:hover { background:rgba(255,68,0,.1); color:var(--testo); }
.sf-menu-item.selected { color:var(--arancio); }
.sf-menu-item.selected::after { content:'✓'; margin-left:auto; font-size:.8rem; }
.sf-genre-pill { display:inline-flex; align-items:center; padding:4px 10px; border-radius:20px; border:1px solid var(--bordo); background:var(--superficie); color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.3px; cursor:pointer; transition:all .15s; white-space:nowrap; }
.sf-genre-pill:hover { border-color:var(--arancio); color:var(--arancio); }
.sf-genre-pill.active { background:var(--arancio); border-color:var(--arancio); color:#000; }
/* Badge zona ricerca */
.search-zone-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:20px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.62rem; letter-spacing:.4px; text-transform:uppercase; margin-left:6px; vertical-align:middle; }
.search-zone-badge i { font-size:.58rem; }
.badge-zona { background:rgba(255,68,0,.12); border:1px solid rgba(255,68,0,.35); color:var(--arancio); }
.badge-intour { background:rgba(59,130,246,.1); border:1px solid rgba(59,130,246,.35); color:#60a5fa; }
.badge-estero { background:rgba(74,222,128,.08); border:1px solid rgba(74,222,128,.3); color:var(--verde); }
.badge-avail { background:rgba(74,222,128,.12); border:1px solid rgba(74,222,128,.4); color:var(--verde); }
.radius-pill { display:inline-flex; align-items:center; padding:6px 13px; border-radius:20px; border:2px solid var(--bordo); background:var(--superficie2); color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.75rem; letter-spacing:.5px; cursor:pointer; transition:all .2s; }
.radius-pill:hover { border-color:var(--arancio); color:var(--arancio); }
.radius-pill.active { background:var(--arancio); border-color:var(--arancio); color:#000; }
#search-gps-btn:hover { border-color:var(--arancio); color:var(--arancio); }
#search-gps-btn.active { background:var(--arancio); border-color:var(--arancio); color:#000; }
.lmc-upgrade-strip { background:linear-gradient(90deg,transparent,rgba(255,210,0,.06),transparent); border-top:1px solid rgba(255,210,0,.2); border-bottom:1px solid rgba(255,210,0,.2); padding:8px 12px; margin:0 -16px; display:flex; align-items:center; justify-content:center; gap:10px; cursor:pointer; transition:opacity .2s; }
.lmc-upgrade-strip:hover { opacity:.8; }
.lmc-upgrade-strip-title { font-family:'Bebas Neue',cursive; font-size:.9rem; letter-spacing:2px; color:var(--oro); }
.lmc-upgrade-strip-sub { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:rgba(255,210,0,.5); }
.lmc-upgrade-strip-arrow { color:rgba(255,210,0,.5); font-size:.75rem; }
/* Toggle risultati profili/eventi */
.search-toggle-bar { display:flex; align-items:center; background:var(--superficie2); border:1px solid var(--bordo); border-radius:10px; overflow:hidden; margin-bottom:12px; flex-shrink:0; }
.search-toggle-btn { flex:1; background:none; border:none; color:var(--testo-sbiadito); cursor:pointer; padding:7px 10px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.75rem; letter-spacing:.5px; text-transform:uppercase; transition:all .2s; display:flex; align-items:center; justify-content:center; gap:5px; }
.search-toggle-btn.active { background:var(--arancio); color:#000; }
.search-toggle-btn:not(.active):hover { color:var(--arancio); }
.search-toggle-divider { width:1px; background:var(--bordo); height:28px; }
.search-section-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--testo-sbiadito); margin:14px 0 8px; padding-left:2px; }
.search-divider { height:1px; background:var(--bordo); margin:16px 0 14px; }
.sr-load-more { display:block; width:100%; margin:10px 0 4px; background:none; border:1px solid var(--bordo); border-radius:8px; padding:9px 12px; color:var(--testo-sbiadito); font-size:.78rem; font-family:'Barlow Condensed',sans-serif; font-weight:600; letter-spacing:.5px; cursor:pointer; text-align:center; transition:background .15s,color .15s; }
.sr-load-more:hover { background:var(--superficie2); color:var(--testo); }
.lista-piu { text-align:center; font-size:.72rem; color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:600; letter-spacing:.5px; padding:6px 0 10px; opacity:.7; }
.spc-disp { display:inline-flex; align-items:center; gap:4px; font-size:.65rem; color:#22c55e; font-weight:600; margin-top:3px; }
.search-hint { text-align:center; padding:40px 20px; color:var(--testo-sbiadito); }
.search-hint i { font-size:2.5rem; color:var(--bordo); margin-bottom:12px; display:block; }
.search-hint p { font-size:.88rem; line-height:1.6; }
.search-hint strong { color:var(--arancio); }
/* Search profile card (risultati) */
.spc-card { background:var(--superficie); border:1px solid var(--bordo); border-radius:14px; overflow:hidden; margin-bottom:10px; cursor:pointer; transition:all .2s; }
.spc-card:hover { border-color:rgba(255,68,0,.3); transform:translateY(-1px); box-shadow:0 4px 16px rgba(0,0,0,.3); }
.spc-header { display:flex; align-items:center; gap:12px; padding:14px 15px 10px; }
.spc-avatar { width:52px; height:52px; border-radius:50%; background-size:cover; background-position:center; flex-shrink:0; border:2px solid var(--arancio); display:flex; align-items:center; justify-content:center; background-color:var(--superficie2); }
.spc-info { flex:1; }
.spc-name { font-family:'Bebas Neue',cursive; font-size:1.2rem; color:var(--testo); letter-spacing:.5px; line-height:1; }
.spc-role { font-size:.68rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--arancio); margin-top:2px; }
.spc-alias { font-size:.72rem; color:var(--testo-sbiadito); margin-top:1px; }
.spc-bio { font-size:.8rem; color:var(--testo-sbiadito); line-height:1.5; padding:0 15px 10px; }
.spc-genres { display:flex; flex-wrap:wrap; gap:4px; padding:0 15px 12px; }
.spc-events { border-top:1px solid var(--bordo); padding:8px 15px 12px; }
.spc-events-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.65rem; text-transform:uppercase; letter-spacing:1.2px; color:var(--testo-sbiadito); margin-bottom:7px; }
.spc-ev-row { display:flex; align-items:center; gap:8px; padding:5px 0; border-bottom:1px solid rgba(255,255,255,.04); font-size:.78rem; }
.spc-ev-row:last-child { border-bottom:none; }
.spc-ev-date { font-family:'Barlow Condensed',sans-serif; font-weight:700; color:var(--arancio); white-space:nowrap; min-width:68px; }
.spc-ev-name { flex:1; color:var(--testo); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.spc-ev-city { color:var(--testo-sbiadito); white-space:nowrap; font-size:.72rem; }
/* LMC headers */
.lmc-title { font-family:'Bebas Neue',cursive; font-size:1rem; letter-spacing:3px; color:var(--oro); display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.lmc-sub { font-family:'Barlow Condensed',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:rgba(255,210,0,.5); white-space:nowrap; }
.lmc-sep { color:rgba(255,210,0,.3); font-size:.8rem; margin:0 2px; }
.lmc-pro-header { background:linear-gradient(90deg,transparent,rgba(255,210,0,.07),transparent); border-top:1px solid rgba(255,210,0,.25); border-bottom:1px solid rgba(255,210,0,.25); padding:8px 16px; margin:0 -16px 14px; display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:nowrap; }
.lmc-reg-header { background:rgba(255,68,0,.05); border-top:1px solid rgba(255,68,0,.2); border-bottom:1px solid rgba(255,68,0,.2); padding:8px 16px; margin:0 -16px 14px; display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:nowrap; }
.lmc-reg-header .lmc-title { color:var(--arancio); font-size:.9rem; letter-spacing:2.5px; }
.lmc-reg-header .lmc-sep { color:rgba(255,68,0,.3); }
.lmc-reg-header .lmc-sub { color:rgba(255,68,0,.5); }
.lmc-reg-header svg path { stroke:var(--arancio)!important; }
/* Input date filtro */
/* Accordion filtri */
.acc-item { background:var(--superficie); border:1px solid var(--bordo); border-radius:12px; overflow:hidden; margin-bottom:6px; }
.acc-head { display:flex; align-items:center; justify-content:space-between; padding:11px 14px; cursor:pointer; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.5px; color:var(--testo-sbiadito); transition:background .2s,color .2s; user-select:none; }
.acc-head:hover { background:rgba(255,68,0,.06); color:var(--arancio); }
.acc-item.open .acc-head { color:var(--arancio); background:rgba(255,68,0,.06); }
.acc-arrow { font-size:.65rem; transition:transform .25s; }
.acc-item.open .acc-arrow { transform:rotate(180deg); }
.acc-body { display:none; padding:10px 14px 12px; border-top:1px solid var(--bordo); }
.acc-item.open .acc-body { display:block; }
.s-pill-sm { padding:5px 11px; font-size:.72rem; }
.s-pill-group { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.s-pill-all { width:100%; padding:7px; border-radius:10px; border:1px dashed var(--bordo); background:none; color:var(--testo-sbiadito); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.5px; cursor:pointer; transition:all .2s; text-align:center; margin-top:4px; }
.s-pill-all:hover { border-color:var(--arancio); color:var(--arancio); }
.s-pill-all.active { border-color:var(--arancio); color:var(--arancio); background:rgba(255,68,0,.07); }
/* GPS lista */
#list-gps-bar { display:flex; align-items:center; gap:6px; margin-bottom:14px; }
#list-gps-btn { display:flex; align-items:center; gap:7px; padding:9px 14px; background:var(--superficie); border:2px solid var(--bordo); color:var(--testo-sbiadito); border-radius:12px; cursor:pointer; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.82rem; letter-spacing:.5px; transition:all .2s; white-space:nowrap; }
#list-gps-btn:hover { border-color:var(--arancio); color:var(--arancio); }
#list-gps-btn.active { border-color:var(--arancio); color:var(--arancio); background:rgba(255,68,0,.12); }
#list-radius-select,#list-radius-search { display:none; background:var(--superficie); border:2px solid var(--bordo); color:var(--testo); font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.82rem; padding:9px 12px; border-radius:12px; cursor:pointer; -webkit-appearance:none; transition:all .2s; }
#list-radius-select.visible,#list-radius-search.visible { display:block; }

/* ── Agenda calendario ── */
.agenda-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-bottom:4px; }
.agenda-day-label { text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.68rem; letter-spacing:.5px; text-transform:uppercase; color:var(--testo-sbiadito); padding:4px 0; }
.agenda-cell { position:relative; aspect-ratio:1; border-radius:8px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; transition:background .15s; border:1px solid transparent; }
.agenda-cell:hover { background:rgba(255,255,255,.06); }
.agenda-cell.today .agenda-day-num { color:var(--arancio); font-weight:700; }
.agenda-cell.today { border-color:rgba(255,68,0,.3); }
.agenda-cell.has-event { background:rgba(255,68,0,.06); }
.agenda-cell.is-avail { background:rgba(74,222,128,.05); }
.agenda-day-num { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.85rem; color:var(--testo); line-height:1; }
.agenda-dots { display:flex; gap:2px; align-items:center; min-height:6px; }
.agenda-dot { width:5px; height:5px; border-radius:50%; display:inline-block; }
.agenda-dot.future { background:var(--arancio); }
.agenda-dot.past { background:rgba(255,255,255,.25); }
.agenda-cell.is-past { opacity:.4; }
.agenda-cell.is-past .agenda-day-num { color:rgba(255,255,255,.3); }
.agenda-cell.is-locked { opacity:.25; cursor:not-allowed; filter:brightness(.5); }
.agenda-cell.is-locked:hover { background:rgba(255,210,0,.04); }
.agenda-dot.avail { background:var(--verde); }
.agenda-dot.boost-spark { background:#FF6B1A; width:7px; height:7px; box-shadow:0 0 4px rgba(255,107,26,.8); }
.agenda-dot.boost-boost { background:#A0A8B8; width:7px; height:7px; box-shadow:0 0 4px rgba(160,168,184,.8); }
.agenda-dot.boost-top { background:var(--oro); width:7px; height:7px; box-shadow:0 0 4px rgba(255,210,0,.9); }

/* ── Amplifica pannello (unificato — era duplicato in v6.4) ── */
.amplifica-panel { margin-top:16px; }
.amplifica-hdr { display:flex; align-items:center; gap:8px; padding:12px 14px; background:rgba(255,68,0,.06); border:1px solid rgba(255,68,0,.2); border-radius:12px; cursor:pointer; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.85rem; color:var(--arancio); letter-spacing:.5px; text-transform:uppercase; transition:.2s; }
.amplifica-hdr:hover { background:rgba(255,68,0,.1); }
.amplifica-body { display:none; padding:14px; }
.amp-tier { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; border:1px solid var(--bordo); margin-bottom:8px; cursor:pointer; transition:all .2s; position:relative; }
.amp-tier:hover { border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.03); }
.amp-tier.spark { border-color:rgba(255,107,26,.3); }
.amp-tier.boost { border-color:rgba(160,168,184,.3); }
.amp-tier.top { border-color:rgba(255,210,0,.3); }
.amp-tier.spark:hover { border-color:#FF6B1A; background:rgba(255,107,26,.06); }
.amp-tier.boost:hover { border-color:#A0A8B8; background:rgba(160,168,184,.06); }
.amp-tier.top:hover { border-color:var(--oro); background:rgba(255,210,0,.06); }
.amp-tier.spark.selected { border-color:#FF6B1A; background:rgba(255,107,26,.1); box-shadow:0 0 0 2px rgba(255,107,26,.3); }
.amp-tier.boost.selected { border-color:#A0A8B8; background:rgba(160,168,184,.1); box-shadow:0 0 0 2px rgba(160,168,184,.3); }
.amp-tier.top.selected { border-color:var(--oro); background:rgba(255,210,0,.1); box-shadow:0 0 0 2px rgba(255,210,0,.3); }
.amp-tier-icon { font-size:1.2rem; width:28px; text-align:center; }
.amp-tier-name { font-family:'Bebas Neue',cursive; font-size:1rem; letter-spacing:1px; color:var(--testo); }
.amp-tier-desc { font-size:.72rem; color:var(--testo-sbiadito); }
.amp-tier-price { margin-left:auto; font-family:'Bebas Neue',cursive; font-size:1rem; color:var(--testo-sbiadito); }
.amp-tier.spark .amp-tier-icon { color:#FF6B1A; }
.amp-tier.boost .amp-tier-icon { color:#A0A8B8; }
.amp-tier.top .amp-tier-icon { color:var(--oro); }
.amp-tier-check { display:none; position:absolute; right:12px; top:50%; transform:translateY(-50%); width:18px; height:18px; border-radius:50%; align-items:center; justify-content:center; font-size:.65rem; }
.amp-tier.spark.selected .amp-tier-check { display:flex; background:#FF6B1A; color:#fff; }
.amp-tier.boost.selected .amp-tier-check { display:flex; background:#A0A8B8; color:#000; }
.amp-tier.top.selected .amp-tier-check { display:flex; background:var(--oro); color:#000; }
.amp-soon { text-align:center; font-size:.78rem; color:var(--testo-sbiadito); margin-top:8px; padding:10px; background:var(--superficie2); border-radius:8px; }
.amp-cta { display:none; margin-top:10px; width:100%; padding:11px; border:none; border-radius:10px; font-family:'Bebas Neue',cursive; font-size:1rem; letter-spacing:1px; cursor:pointer; transition:all .2s; }
.amp-cta.visible { display:block; }
.amp-cta.spark { background:#FF6B1A; color:#fff; }
.amp-cta.boost { background:#A0A8B8; color:#000; }
.amp-cta.top { background:var(--oro); color:#000; }

/* ── Mobile nav bar ── */
.mobile-nav-bar {
  display:flex; justify-content:space-around; align-items:center;
  background:var(--superficie); border-top:1px solid var(--bordo);
  padding:6px 0 env(safe-area-inset-bottom); flex-shrink:0;
}
.mobile-nav-bar button {
  background:none; border:none; color:var(--testo-sbiadito);
  font-size:.68rem; font-family:'Barlow Condensed',sans-serif; font-weight:700;
  text-transform:uppercase; letter-spacing:.5px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:8px 14px; transition:.2s;
}
.mobile-nav-bar button:hover, .mobile-nav-bar button.active { color:var(--arancio); }
.mobile-nav-bar button i { font-size:1.1rem; }
.add-ftr-btn { background:var(--arancio)!important; color:#000!important; border-radius:12px; padding:10px 16px!important; }
.ftr-arrow-btn { font-size:.6rem!important; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   RESPONSIVE
   ≥768px: sidebar desktop, senza header/footer mobile
   <768px: senza sidebar, con header+footer mobile
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(min-width:768px) {
  header { display:none; }
  .mobile-nav-bar { display:none; }
  #app-shell { flex-direction:row; }
  main { flex:1; height:100dvh; }
  .detail-sheet, .profile-sheet { border-radius:20px; max-height:88dvh; }
  #detail-modal { align-items:center; }
  #profile-modal { align-items:center; }
  #bit-nav-overlay { display:none!important; }
  #tooltip { bottom:20px; }
  #gps-btn { bottom:20px; }
  #radius-select { bottom:20px; }
}
@media(max-width:767px) {
  #detail-modal { align-items:flex-end; }
  #pagina-modal { padding:10px; }
  #pagina-modal > div { margin:20px auto; }
}
/* ── Diminuisci z-index Leaflet quando una modale è aperta ── */
body.modal-open .leaflet-pane { z-index:auto !important; }
body.modal-open .leaflet-control { z-index:auto !important; }
body.modal-open .leaflet-top,
body.modal-open .leaflet-bottom { z-index:auto !important; }
body.modal-open #gps-btn,
body.modal-open #map-style-btn,
body.modal-open #radius-select { z-index:1 !important; }
#scroll-top-btn {
  position:fixed; bottom:80px; right:16px; z-index:9999;
  width:44px; height:44px; border-radius:50%;
  background:var(--arancio); color:#fff; border:none; cursor:pointer;
  align-items:center; justify-content:center;
  font-size:1rem; box-shadow:0 3px 14px rgba(255,68,0,.45);
  display:none;
}
#scroll-top-btn.visible { display:flex; }
@media(min-width:768px) { #scroll-top-btn { display:none !important; } }
/* ── Desktop: bottoni mappa sollevati rispetto al default ── */
@media(min-width:768px) {
  #gps-btn       { bottom:88px !important; }
  #map-style-btn { bottom:140px !important; }
  #radius-select { bottom:88px !important; }
}
/* ── Mobile: bottoni vicini tra loro e vicini alla barra footer ── */
@media(max-width:767px) {
  #gps-btn { bottom:88px !important; }
  #map-style-btn { bottom:136px !important; }
  #radius-select { bottom:88px !important; right:170px !important; }
}

/* Tipo badge: float sull'immagine solo desktop, inline in ec-meta solo mobile */
.ec-tipo-tag  { display:none; }
.ec-tipo-float { display:flex; }
@media(max-width:767px) {
  .ec-tipo-tag  { display:inline-flex; }
  .ec-tipo-float { display:none; }
}

/* ════════════════════════════════════════════════════════════════════
   CONSIGLIATI — Drawer + form interessi
   ════════════════════════════════════════════════════════════════════ */

/* z-index layer */
.modale-sfondo-780 { z-index:780; }

/* ── Drawer sheet ── */
.cons-sheet {
  position:fixed; bottom:0; left:0; right:0;
  max-height:88dvh; background:var(--superficie);
  border-radius:20px 20px 0 0; border-top:1px solid var(--bordo);
  display:flex; flex-direction:column; overflow:hidden;
  transform:translateY(100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
}
#consigliati-drawer.open .cons-sheet { transform:translateY(0); }
@media(min-width:768px){
  .cons-sheet { width:540px; max-width:100%; left:50%; right:auto; transform:translateX(-50%) translateY(100%); border-radius:20px 20px 0 0; }
  #consigliati-drawer.open .cons-sheet { transform:translateX(-50%) translateY(0); }
}

.cons-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px 10px; border-bottom:1px solid var(--bordo); flex-shrink:0;
}
.cons-header-titolo {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:1rem; letter-spacing:.5px; text-transform:uppercase; color:var(--testo);
  display:flex; align-items:center;
}
.cons-corpo {
  flex:1; overflow-y:auto; padding:14px 16px 24px;
  overscroll-behavior:contain;
}

/* ── Notifiche nel drawer ── */
.cons-notifiche-block { border-bottom:1px solid var(--bordo); padding-bottom:12px; margin-bottom:8px; }
.cons-notif-hdr { display:flex; align-items:center; justify-content:space-between; padding:0 0 8px; }
.cons-notif-hdr-label { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.5px; color:var(--testo-sbiadito); }
.cons-notif-clear-all { background:none; border:none; color:var(--testo-sbiadito); font-size:.72rem; cursor:pointer; padding:2px 6px; border-radius:4px; transition:color .15s; }
.cons-notif-clear-all:hover { color:var(--arancio); }
.cons-notif-item { display:flex; gap:10px; align-items:flex-start; padding:9px 10px; border-radius:10px; position:relative; transition:background .15s; }
.cons-notif-item + .cons-notif-item { margin-top:4px; }
.cons-notif-item.cons-notif-unread { background:rgba(255,68,0,.06); }
.cons-notif-ico { font-size:1.1rem; flex-shrink:0; padding-top:2px; }
.cons-notif-body { flex:1; min-width:0; }
.cons-notif-title { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.88rem; color:var(--testo); text-transform:uppercase; letter-spacing:.3px; }
.cons-notif-testo { font-size:.78rem; color:var(--testo-sbiadito); margin-top:2px; line-height:1.4; }
.cons-notif-data  { font-size:.68rem; color:var(--testo-sbiadito); margin-top:4px; opacity:.5; }
.cons-notif-dismiss { position:absolute; top:8px; right:8px; background:none; border:none; color:var(--testo-sbiadito); font-size:.75rem; cursor:pointer; width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background .15s, color .15s; flex-shrink:0; }
.cons-notif-dismiss:hover { background:rgba(255,68,0,.15); color:var(--arancio); }

/* ── Stati vuoto / loading ── */
.cons-loading, .cons-vuoto {
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; padding:40px 20px; text-align:center;
  color:var(--testo-sbiadito); gap:10px; font-size:.88rem;
}
.cons-loading i { font-size:1.8rem; color:var(--arancio); }
.cons-vuoto i   { font-size:2.2rem; color:var(--testo-sbiadito); }

/* ── Navigazione citta (pills) ── */
.cons-city-nav {
  display:flex; gap:8px; margin-bottom:14px;
  overflow-x:auto; padding-bottom:2px; scrollbar-width:none;
}
.cons-city-nav::-webkit-scrollbar { display:none; }
.cons-city-pill {
  background:var(--superficie2); border:1px solid var(--bordo);
  color:var(--testo-sbiadito); border-radius:20px; padding:5px 14px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.78rem; letter-spacing:.5px; text-transform:uppercase;
  cursor:pointer; white-space:nowrap; transition:all .18s; flex-shrink:0;
}
.cons-city-pill.active { background:var(--arancio); color:#000; border-color:var(--arancio); }

/* ── Tab band/locale/promotore ── */
.cons-tab-bar {
  display:flex; gap:6px; margin-bottom:12px; overflow-x:auto; scrollbar-width:none;
}
.cons-tab-bar::-webkit-scrollbar { display:none; }
.cons-tab {
  background:var(--superficie2); border:1px solid var(--bordo);
  color:var(--testo-sbiadito); border-radius:8px; padding:5px 12px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.75rem; letter-spacing:.5px; text-transform:uppercase;
  cursor:pointer; white-space:nowrap; transition:all .18s;
  display:flex; align-items:center; gap:5px; flex-shrink:0;
}
.cons-tab.active { background:rgba(255,68,0,.15); border-color:var(--arancio); color:var(--arancio); }
.cons-count {
  background:rgba(255,255,255,.1); color:var(--testo-sbiadito);
  border-radius:10px; padding:0 5px; font-size:.68rem; min-width:16px; text-align:center;
}
.cons-tab.active .cons-count { background:rgba(255,68,0,.2); color:var(--arancio); }

/* ── Card profilo ── */
.cons-city-block  { width:100%; }
.cons-cat-content { display:flex; flex-direction:column; gap:8px; width:100%; }
.cons-profilo-card {
  display:flex; gap:12px; align-items:flex-start;
  background:var(--superficie2); border:1px solid var(--bordo);
  border-radius:12px; padding:12px; cursor:pointer; position:relative;
  transition:border-color .18s, background .18s, opacity .2s;
}
.cons-profilo-card:hover { border-color:rgba(255,68,0,.35); background:rgba(255,68,0,.04); }
/* X button on profile card */
.cons-card-dismiss {
  position:absolute; top:7px; right:7px;
  background:none; border:none; color:var(--testo-sbiadito);
  font-size:.72rem; cursor:pointer; width:22px; height:22px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  transition:background .15s, color .15s; flex-shrink:0; z-index:2;
}
.cons-card-dismiss:hover { background:rgba(255,68,0,.15); color:var(--arancio); }
/* Remove-all row per categoria */
.cons-remove-all-row { display:flex; justify-content:flex-end; padding:4px 0 2px; }
.cons-remove-all-btn {
  background:none; border:none; color:var(--testo-sbiadito);
  font-size:.7rem; cursor:pointer; display:flex; align-items:center; gap:4px;
  padding:3px 6px; border-radius:6px; transition:color .15s, background .15s;
}
.cons-remove-all-btn:hover { color:var(--arancio); background:rgba(255,68,0,.08); }
.cons-card-av {
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  background-color:var(--superficie); border:2px solid var(--bordo);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; color:var(--testo-sbiadito);
  background-size:cover; background-position:center;
}
.cons-card-info { flex:1; min-width:0; }
.cons-card-nome {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.95rem; color:var(--testo); letter-spacing:.3px;
  display:flex; align-items:center; gap:5px; flex-wrap:wrap;
}
.cons-pro-tag {
  background:rgba(255,210,0,.15); border:1px solid #FFD200;
  color:#FFD200; font-size:.58rem; padding:1px 5px;
  border-radius:10px; letter-spacing:.3px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; text-transform:uppercase; display:flex; align-items:center; gap:3px;
}
.cons-card-alias { font-size:.72rem; color:var(--testo-sbiadito); margin-top:1px; }
.cons-card-bio   { font-size:.75rem; color:var(--testo-sbiadito); margin-top:4px; line-height:1.4; }

/* Badge tipo tour */
.cons-tipo-badge {
  display:inline-block; font-size:.6rem; padding:1px 6px;
  border-radius:10px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; letter-spacing:.3px; text-transform:uppercase;
  margin-right:3px;
}
.cons-tipo-badge.zona   { background:rgba(74,222,128,.15); color:#4ade80; border:1px solid rgba(74,222,128,.3); }
.cons-tipo-badge.tour   { background:rgba(255,68,0,.12);   color:var(--arancio); border:1px solid rgba(255,68,0,.25); }
.cons-tipo-badge.estero { background:rgba(100,150,255,.12); color:#78a4ff; border:1px solid rgba(100,150,255,.25); }

/* ── Badge campanella (punto rosso) ── */
.cons-badge {
  position:absolute; top:0; right:0;
  width:8px; height:8px; border-radius:50%;
  background:#ef4444; border:1.5px solid var(--sfondo);
  pointer-events:none;
}

/* ── Form interessi ── */
.cons-form { padding:4px 0; }
.cons-form-section { margin-bottom:18px; }
.cons-form-title {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.85rem; letter-spacing:.5px; text-transform:uppercase;
  color:var(--testo-sbiadito); margin-bottom:10px;
  display:flex; align-items:center; gap:6px;
}
.cons-citta-row { display:flex; gap:6px; align-items:flex-start; margin-bottom:8px; }
.cons-citta-row .f-input { flex:1; }
.cons-citta-clear {
  background:none; border:1px solid var(--bordo); color:var(--testo-sbiadito);
  border-radius:8px; padding:8px 9px; cursor:pointer; font-size:.8rem;
  transition:all .18s; flex-shrink:0; align-items:center; justify-content:center;
}
.cons-citta-clear:hover { color:#ef4444; border-color:#ef4444; }
.cons-tipo-grid { display:flex; flex-direction:column; gap:8px; }
.cons-tipo-label {
  display:flex; align-items:flex-start; gap:9px;
  font-size:.82rem; color:var(--testo); cursor:pointer; line-height:1.3;
}
.cons-tipo-label input[type="checkbox"] { margin-top:2px; accent-color:var(--arancio); flex-shrink:0; }
.cons-tipo-label span { font-weight:600; }
.cons-tipo-label small { display:block; color:var(--testo-sbiadito); font-size:.72rem; }
