/* ============================================================
   Vai — Passaggi · Foglio di stile frontend (v0.24.0)
   Consolidato: regole uniche per selettore (niente patch
   sovrapposte), responsive completo, stili del menu generale.
   ============================================================ */

/* ---------- Base e variabili ---------- */
.vai{--pri:#0E8060;--pri-d:#0A5D46;--pri-s:#E3F2EA;--amb:#C9791E;--amb-s:#FBEBD6;
	--ink:#16233A;--mut:#697485;--line:#ECE7DB;--line2:#D3C9B2;--bg:#FBF9F4;
	font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);
	max-width:560px;width:100%;margin:0 auto}
.vai *{box-sizing:border-box}
.vai img:not([class*="leaflet"]){max-width:100%}
.vai h2{font-size:20px;margin:0 0 14px;letter-spacing:-.01em}
.vai h3{font-size:15px;margin:22px 0 10px}

/* ---------- Schede ---------- */
.vai-card{background:#fff;border:1px solid #D6CEBC;border-radius:16px;padding:16px;margin:0 0 16px;
	box-shadow:0 2px 5px rgba(20,33,58,.05),0 12px 24px -14px rgba(20,33,58,.18);
	transition:box-shadow .18s,transform .18s}
.vai-card:hover{box-shadow:0 4px 8px rgba(20,33,58,.06),0 16px 30px -14px rgba(20,33,58,.24);transform:translateY(-1px)}
.vai-card-cta{display:block;text-align:center;background:var(--pri);color:#fff;font-weight:700;font-size:14px;
	padding:12px;border-radius:12px;text-decoration:none;margin-top:14px;box-shadow:0 6px 14px -8px var(--pri)}
.vai-card-cta:hover{background:var(--pri-d);color:#fff}

/* ---------- Griglia e campi ---------- */
.vai-row{display:flex;gap:12px}
.vai-row>*{flex:1;min-width:0}
.vai-field{display:block;margin:0 0 12px}
.vai-field label{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0 0 5px}
.vai-field input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
.vai-field select,.vai-field textarea{width:100%;padding:12px 13px;border:1.5px solid #A9A290;border-radius:12px;
	font:inherit;font-weight:500;color:var(--ink);background:#FFFDF8;-webkit-appearance:none;appearance:none}
.vai-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23697485' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}
.vai-field input:focus,.vai-field select:focus,.vai-field textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px rgba(14,128,96,.18);background:#fff}
.vai-field select:disabled{background-color:var(--bg);color:var(--mut)}
.vai-field input::placeholder,.vai-field textarea::placeholder{color:#9AA0AA}
.vai-field textarea{min-height:100px;resize:vertical;line-height:1.55}
/* controlli nativi: aspetto di sistema (in WebKit appearance:none li renderebbe invisibili) */
.vai-field input[type=checkbox],.vai-field input[type=radio]{width:18px;height:18px;accent-color:var(--pri);margin:0}
.vai-field input[type=range]{width:100%;padding:0;border:0;background:none;height:30px;accent-color:var(--pri);-webkit-appearance:auto;appearance:auto}
.vai-field input[type=file]{width:100%;font:inherit;color:var(--ink)}

/* ---------- Pulsanti e chips ---------- */
.vai-btn{display:inline-block;width:100%;text-align:center;border:0;cursor:pointer;font:inherit;font-weight:700;
	font-size:15px;padding:14px;border-radius:13px;background:var(--pri);color:#fff;text-decoration:none;transition:background .15s}
.vai-btn:hover{background:var(--pri-d)}
.vai-btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.vai-btn.small{width:auto;padding:9px 18px;font-size:14px}
.vai-btn.ghost.small{font-size:13px;padding:8px 12px}
.vai-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.vai-chip{border:1px solid var(--line);background:#fff;color:var(--mut);font-size:13px;font-weight:600;
	padding:8px 14px;border-radius:999px;text-decoration:none;cursor:pointer;transition:all .15s}
.vai-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.vai-geopos{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-wrap:wrap}
.vai-geopos .vai-btn{width:auto}
.vai-geopos small{color:var(--mut);font-size:12.5px;font-weight:600}
.vai-seg{display:flex;gap:8px;margin-bottom:6px}

/* ---------- Scheda passaggio ---------- */
.vai-ride-top{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.vai-av{width:44px;height:44px;border-radius:13px;flex:none;display:grid;place-items:center;font-weight:700;font-size:18px;color:#fff}
img.vai-av{object-fit:cover}
.vai-who{flex:1;min-width:0}
.vai-name{font-weight:700;font-size:15px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.vai-meta{font-size:12.5px;color:var(--mut);margin-top:1px}
.vai-ver{color:var(--pri);font-weight:700;font-size:12px}
.vai-price{flex:none;font-weight:700;font-size:13px;padding:7px 11px;border-radius:10px;white-space:nowrap}
.vai-price.free{background:var(--pri-s);color:var(--pri-d)}
.vai-price.paid{background:var(--amb-s);color:var(--amb)}
.vai-route{display:flex;align-items:center;gap:12px}
.vai-time{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}
.vai-cities{font-weight:600;font-size:14px;overflow-wrap:anywhere}
.vai-cities .ar{color:var(--pri);margin:0 6px}
.vai-sub{font-size:12px;color:var(--mut);margin-top:2px}
.vai-dist{display:inline-block;font-size:11px;font-weight:700;color:var(--pri-d);background:var(--pri-s);padding:3px 8px;border-radius:7px;margin-left:6px}
.vai-tags{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.vai-tag{display:inline-block;font-size:11px;font-weight:700;padding:4px 9px;border-radius:8px;background:#F1EFEA;color:var(--mut)}
.vai-tag.yes{background:var(--pri-s);color:var(--pri-d)}
.vai-tag.paid{background:var(--amb-s);color:var(--amb)}

/* ---------- Avvisi, vuoti, prenota ---------- */
.vai-notice{border-radius:13px;padding:13px 15px;margin:0 0 16px;font-size:14px;font-weight:600}
.vai-notice.ok{background:var(--pri-s);color:var(--pri-d)}
.vai-notice.info{background:#EEF2F7;color:var(--ink)}
.vai-notice.err{background:#FDECEC;color:#B42318}
.vai-empty{text-align:center;color:var(--mut);font-size:14px;padding:30px 16px;border:1.5px dashed var(--line);border-radius:16px;line-height:1.5}
.vai-book{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.vai-book .vai-field{margin:0;width:84px;flex:none}
.vai-legal{font-size:11.5px;color:var(--mut);line-height:1.5;margin-top:12px}

/* ---------- Mappa Leaflet ---------- */
.vai-map{width:100%;height:440px;border-radius:18px;border:1px solid var(--line);overflow:hidden;margin:0 0 14px;z-index:0}
.vai-pin{background:var(--pri);color:#fff;border:2px solid #fff;border-radius:50% 50% 50% 4px;width:34px;height:34px;
	display:grid;place-items:center;font-weight:700;font-size:15px;box-shadow:0 2px 6px rgba(0,0,0,.3);transform:rotate(0)}
.vai-pin.amb{background:var(--amb)}
.vai-pop{font-family:system-ui,sans-serif;min-width:170px}
.vai-pop b{font-size:14px}
.vai-pop .r{font-size:13px;margin:4px 0}
.vai-pop a{color:var(--pri-d);font-weight:700;text-decoration:none}
.vai-pop-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.vai-pop-btn{flex:1;min-width:66px;text-align:center;font-size:12px;font-weight:700;padding:7px 8px;border-radius:9px;
	background:#EEF2F7;color:#16233A;text-decoration:none}
.vai-pop-btn:hover{background:#e2e8f0}
.vai-pop-btn.wa{background:#25D366;color:#fff}
.vai-radius{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.vai-radius input[type=range]{flex:1;accent-color:var(--pri)}
.vai-radius b{font-variant-numeric:tabular-nums}

/* elenco viaggi sotto la mappa */
.vai-map-list{display:flex;flex-direction:column;gap:10px}
.vai-mitem{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1.5px solid var(--line2);border-left:5px solid var(--pri);border-radius:14px;padding:12px 14px 12px 13px;cursor:pointer;box-shadow:0 1px 2px rgba(20,33,58,.06),0 3px 10px rgba(20,33,58,.05);transition:box-shadow .15s,border-color .15s,transform .1s}
.vai-mitem:hover{border-color:var(--pri);box-shadow:0 8px 20px rgba(14,128,96,.18);transform:translateY(-1px)}
.vai-mitem.paid{border-left-color:var(--amb)}
.vai-mav{flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--pri);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.vai-mav.amb{background:#F2A03D}
.vai-mbody{flex:1;min-width:0}
.vai-mroute{font-weight:800;color:var(--ink);overflow-wrap:anywhere}
.vai-mmeta{color:var(--mut);font-size:13px;margin:2px 0 8px}

/* ---------- Etichette Partenza/Arrivo ---------- */
.vai-geo-h{font-weight:800;font-size:15px;color:var(--ink);margin:10px 0 8px;display:flex;align-items:center;gap:9px;letter-spacing:.01em}
.vai-geo-h::before{content:"";width:13px;height:13px;border-radius:50%;flex:none;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.vai-geo-h-a::before{background:var(--pri)}
.vai-geo-h-b::before{background:var(--amb)}
.vai-live-origin,.vai-live-dest{border-left:3px solid var(--line2);padding-left:11px;margin-bottom:6px}
.vai-live-origin{border-left-color:var(--pri)}
.vai-live-dest{border-left-color:var(--amb)}

/* ---------- Profilo community ---------- */
.vai-prof-head{display:flex;gap:16px;align-items:center;margin-bottom:16px}
.vai-prof-av{width:72px;height:72px;border-radius:20px;object-fit:cover;flex:none;background:var(--pri-s);display:grid;place-items:center;font-weight:700;font-size:28px;color:var(--pri-d)}
.vai-prof-name{font-size:20px;font-weight:700;line-height:1.1}
.vai-prof-nick{color:var(--mut);font-size:13px;font-weight:600;margin-top:2px}
.vai-roles{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.vai-role{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--pri-s);color:var(--pri-d)}
.vai-role.pass{background:#EEF2F7;color:var(--ink)}
.vai-avatar-prev{width:72px;height:72px;border-radius:20px;object-fit:cover;display:none;margin-top:8px}
.vai-check{display:flex;gap:16px;flex-wrap:wrap}
.vai-check label{display:flex;align-items:center;gap:7px;font-weight:600;font-size:14px;text-transform:none;letter-spacing:0;color:var(--ink)}
.vai-check input{width:18px;height:18px;accent-color:var(--pri)}

/* ---------- Galleria immagini ---------- */
.vai-gal-drop{border:2px dashed #A9A290;border-radius:14px;padding:22px 16px;text-align:center;color:var(--mut);font-size:13.5px;cursor:pointer;transition:all .15s;background:#FFFDF8}
.vai-gal-drop:hover{border-color:var(--pri)}
.vai-gal-drop.over{border-color:var(--pri);background:var(--pri-s);color:var(--pri-d)}
.vai-gal-drop b{color:var(--pri-d)}
.vai-gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:12px}
.vai-gal-grid:empty{margin:0}
.vai-gal-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.vai-gal-item img{width:100%;height:100%;object-fit:cover;display:block}
.vai-gal-item.up{opacity:.5}
.vai-gal-x{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(20,33,58,.78);color:#fff;font-size:15px;line-height:1;cursor:pointer;display:grid;place-items:center}
.vai-gal-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:14px}
.vai-gal-view img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid var(--line)}

/* ---------- WhatsApp ---------- */
.vai-wa{display:inline-flex;align-items:center;gap:7px;background:#25D366;color:#fff;font-weight:700;font-size:13.5px;padding:10px 15px;border-radius:12px;text-decoration:none}
.vai-wa:hover{background:#1EBE5A;color:#fff}
.vai-wa svg{width:17px;height:17px}

/* ---------- Pagina viaggio (dettaglio) ---------- */
.vai-detail{max-width:560px;margin:0 auto}
.vai-hero{background:linear-gradient(135deg,var(--pri) 0%,var(--pri-d) 100%);color:#fff;border-radius:22px;padding:22px;margin-bottom:16px;box-shadow:0 12px 26px -14px rgba(14,128,96,.6)}
.vai-hero .route{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:800;letter-spacing:-.01em;flex-wrap:wrap;overflow-wrap:anywhere}
.vai-hero .route .ar{opacity:.7}
.vai-hero .when{margin-top:8px;opacity:.9;font-size:14px;font-weight:600}
.vai-hero .pill{display:inline-block;margin-top:14px;background:rgba(255,255,255,.2);padding:7px 13px;border-radius:999px;font-weight:700;font-size:14px}
.vai-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.vai-fact{background:#fff;border:1px solid #D6CEBC;border-radius:15px;padding:14px;display:flex;gap:11px;align-items:center;box-shadow:0 1px 3px rgba(20,33,58,.05)}
.vai-fact svg{width:22px;height:22px;color:var(--pri);flex:none}
.vai-fact .k{font-size:11px;color:#5A6472;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.vai-fact .v{font-size:15px;font-weight:700;line-height:1.2;color:var(--ink)}
.vai-driver{display:flex;gap:13px;align-items:center;background:#fff;border:1px solid #D6CEBC;border-radius:16px;padding:14px;margin-bottom:16px;box-shadow:0 1px 3px rgba(20,33,58,.05)}
.vai-driver img,.vai-driver .ph{width:52px;height:52px;border-radius:15px;object-fit:cover;flex:none}
.vai-driver .ph{display:grid;place-items:center;font-weight:700;font-size:20px;color:#fff}
.vai-bio{color:var(--ink);font-size:14.5px;line-height:1.55;margin:6px 0 0;background:#fff;border:1px solid #D6CEBC;border-radius:14px;padding:13px 15px}
.vai-icons-note{font-size:12px;color:var(--mut);margin-top:14px}

/* ---------- Veicoli ---------- */
.vai-veicolo{gap:10px;margin-bottom:8px;padding:8px;border:1px dashed var(--line2);border-radius:12px;background:#fff}
.vai-veic-view{margin:14px 0}
.vai-veic-h{font-weight:800;color:var(--ink);margin-bottom:8px}
.vai-veic-cards{display:flex;flex-wrap:wrap;gap:8px}
.vai-veic-item{border:1.5px solid var(--line2);border-left:4px solid var(--pri);border-radius:12px;padding:8px 12px;background:#fff;box-shadow:0 1px 3px rgba(20,33,58,.05)}
.vai-veic-item strong{display:block;color:var(--ink)}
.vai-veic-item span{font-size:12px;color:var(--mut)}

/* ---------- Link al profilo utente ---------- */
.vai-userlink{text-decoration:none;color:inherit;cursor:pointer}
.vai-userlink:hover{color:var(--pri);text-decoration:underline}
a.vai-userlink img{display:block}
a.vai-userlink:hover{opacity:.9}

/* ---------- Chat ---------- */
.vai-chat-wrap{max-width:900px;display:grid;grid-template-columns:290px 1fr;gap:14px;align-items:stretch}
.vai-chat-list{border:1px solid var(--line);border-radius:16px;background:#fff;overflow-y:auto;max-height:70vh}
.vai-thread{display:flex;gap:10px;align-items:center;padding:12px 13px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.vai-thread:last-child{border-bottom:0}
.vai-thread:hover{background:var(--bg)}
.vai-thread.active{background:var(--pri-s)}
.vai-thread .vai-av{width:40px;height:40px;border-radius:12px;font-size:16px}
.vai-thread-txt{min-width:0;flex:1}
.vai-thread-txt .vai-name{font-size:14px}
.vai-thread-txt .vai-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vai-badge{display:inline-block;background:var(--pri);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;margin-left:4px}
.vai-chat-main{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:#fff;min-height:60vh;max-height:70vh}
.vai-chat-head{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.vai-chat-head .vai-av{width:38px;height:38px;border-radius:11px;font-size:15px}
.vai-chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.vai-bubble{max-width:78%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.45;position:relative;word-wrap:break-word}
.vai-bubble .t{display:block;font-size:10px;opacity:.6;margin-top:3px;text-align:right}
.vai-bubble.me{align-self:flex-end;background:var(--pri);color:#fff;border-bottom-right-radius:5px}
.vai-bubble.them{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}
.vai-chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);align-items:flex-end}
.vai-chat-input{flex:1;border:1.5px solid #A9A290;border-radius:12px;padding:10px 12px;font:inherit;resize:none;max-height:120px;background:#FFFDF8}
.vai-chat-input:focus{outline:none;border-color:var(--pri)}

/* ---------- Impaginatore + voce narrante ---------- */
.vai-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 0;flex-wrap:wrap}
.vai-pager-info{font-weight:700;color:var(--ink);font-size:13px}
.vai-dis{opacity:.4;cursor:default;pointer-events:none}
.vai-speak.on{background:var(--pri);color:#fff;border-color:var(--pri)}

/* ---------- Pulsante SOS ---------- */
.vai-sos-wrap{text-align:center;padding:8px 0}
.vai-sos-112{background:#fff4f3;border:1.5px solid #e0736a;color:#9d2b20;border-radius:14px;padding:12px 15px;margin-bottom:14px;font-size:14px;line-height:1.5;text-align:left}
.vai-sos-112 a{color:#9d2b20;font-weight:800}
.vai-sos-btn{background:#d7261e;color:#fff;border:none;border-radius:18px;padding:18px 28px;font-size:19px;font-weight:800;cursor:pointer;box-shadow:0 8px 22px rgba(215,38,30,.35);letter-spacing:.01em;transition:transform .1s,background .15s;max-width:100%}
.vai-sos-btn:hover{background:#bf1f18;transform:translateY(-1px)}
.vai-sos-btn:active{transform:translateY(0)}
.vai-sos-btn:disabled{opacity:.55;cursor:default;box-shadow:none}
.vai-sos-msg{margin-top:14px;font-weight:700}
.vai-sos-msg.ok{color:var(--pri)}
.vai-sos-msg.err{color:#b32d2e}

/* ---------- Login [vai_login] ---------- */
.vai-login{max-width:420px;margin:0 auto}
.vai-login-head{text-align:center;margin-bottom:10px}
.vai-login-logo{margin-bottom:8px}
.vai-login-logo img{width:170px;max-width:72%;height:auto}
.vai-login-head h3{margin:8px 0 2px;font-size:22px}
.vai-login-head .vai-sub{margin:0;color:var(--mut);font-size:14px}
.vai-login-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 14px;font-size:14px;flex-wrap:wrap}
.vai-remember{display:inline-flex;align-items:center;gap:7px;color:var(--mut);margin:0}
.vai-remember input{accent-color:var(--pri)}
.vai-login-forgot{color:var(--pri);text-decoration:none;font-weight:600}
.vai-login-forgot:hover{text-decoration:underline}
.vai-login-btn{width:100%;font-size:16px;padding:14px}
.vai-login-foot{text-align:center;margin:16px 0 0;color:var(--mut);font-size:14px}
.vai-login-foot a{color:var(--pri);font-weight:800;text-decoration:none}
.vai-login-foot a:hover{text-decoration:underline}
.vai-login-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}

/* ---------- Elenco utenti [vai_utenti] ---------- */
.vai-users-filters{margin-bottom:8px}
.vai-users-count{margin-top:10px;font-weight:700;color:var(--ink)}
.vai-users-radius-lbl{margin-top:4px}
.vai-users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:6px}
.vai-ucard{background:#fff;border:1.5px solid var(--line2);border-radius:16px;padding:16px 14px;text-align:center;box-shadow:0 1px 3px rgba(20,33,58,.06),0 4px 14px rgba(20,33,58,.04);display:flex;flex-direction:column;align-items:center;gap:6px;transition:box-shadow .15s,transform .1s}
.vai-ucard:hover{box-shadow:0 8px 20px rgba(14,128,96,.14);transform:translateY(-2px)}
.vai-ucard-av{display:inline-block;text-decoration:none}
.vai-ucard-av img.vai-av,.vai-ucard-av .vai-av{width:74px;height:74px;border-radius:50%;font-size:27px;object-fit:cover}
.vai-ucard-name{font-weight:800;color:var(--ink);line-height:1.2}
.vai-ucard-name a{color:inherit;text-decoration:none}
.vai-ucard-name a:hover{color:var(--pri)}
.vai-ucard-roles{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}
.vai-ucard-meta{font-size:13px;color:var(--mut)}
.vai-ucard-btn{margin-top:8px}
.vai-users-empty{margin-top:16px;color:var(--mut);text-align:center}

/* ---------- Adesione Comuni [vai_adesione] ---------- */
.vai-adesione{max-width:640px;margin:0 auto}
.vai-ade-summary .vai-sub{margin:0 0 12px}
.vai-ade-block{margin:12px 0;padding:12px 14px;background:#fbfaf6;border:1px solid var(--line2);border-radius:12px}
.vai-ade-block strong{color:var(--ink)}
.vai-ade-block p{margin:6px 0 0;font-size:14px;color:var(--ink)}
.vai-ade-block ul{margin:8px 0 0;padding-left:18px;font-size:14px;color:var(--ink)}
.vai-ade-block li{margin:4px 0}
.vai-fascia-importo{font-weight:800;color:var(--pri);font-size:17px;margin:2px 0 14px;min-height:22px}
.vai-ade-consensi{margin:8px 0 4px}
.vai-check-row{display:flex;gap:9px;align-items:flex-start;margin:10px 0;font-size:14px;color:var(--ink);line-height:1.4}
.vai-check-row input{margin-top:3px;flex:none;accent-color:var(--pri)}
.vai-ade-btn{width:100%;font-size:16px;padding:14px;margin-top:8px}

/* ---------- Biglietto / ticket ---------- */
.vai-ticket-wrap{max-width:520px;margin:0 auto}
.vai-ticket{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 12px 30px -14px rgba(20,33,58,.25)}
.vai-ticket-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:linear-gradient(135deg,var(--pri) 0%,var(--pri-d) 100%);color:#fff;padding:18px 20px}
.vai-ticket-brand{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1}
.vai-ticket-sub{font-size:12px;opacity:.9;margin-top:3px}
.vai-ticket-status{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:rgba(255,255,255,.22);padding:6px 11px;border-radius:999px;white-space:nowrap}
.vai-ticket-status.s-confirmed{background:#fff;color:var(--pri-d)}
.vai-ticket-status.s-declined{background:rgba(0,0,0,.2)}
.vai-ticket-route{font-size:24px;font-weight:800;letter-spacing:-.01em;padding:18px 20px 6px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;overflow-wrap:anywhere}
.vai-ticket-route span{color:var(--pri)}
.vai-ticket-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px 12px;padding:10px 20px 18px}
.vai-ticket-grid>div{min-width:0}
.vai-ticket-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700}
.vai-ticket-grid b{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.vai-ticket-foot{display:flex;align-items:center;gap:18px;padding:18px 20px;border-top:2px dashed var(--line);background:var(--bg);position:relative}
.vai-ticket-foot::before,.vai-ticket-foot::after{content:"";position:absolute;top:-11px;width:22px;height:22px;border-radius:50%;background:var(--bg,#FBF9F4);border:1px solid var(--line)}
.vai-ticket-foot::before{left:-11px}
.vai-ticket-foot::after{right:-11px}
.vai-qr{width:104px;height:104px;flex:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px;display:grid;place-items:center}
.vai-qr svg{width:100%;height:100%;display:block}
.vai-ticket-code span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700}
.vai-ticket-code b{font-size:22px;font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.vai-ticket-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;justify-content:center}
@media print{
	body *{visibility:hidden!important}
	.vai-ticket-wrap,.vai-ticket-wrap *{visibility:visible!important}
	.vai-ticket-wrap{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:16px}
	.vai-ticket{box-shadow:none;border:1px solid #ccc}
	.vai-ticket-actions{display:none!important}
}

/* ---------- Radar delle partenze ---------- */
.vai-radar{max-width:720px}
.vr-map{height:340px}
.vr-controls{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:12px}
.vr-row-top{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.vai-btn.ghost{background:#fff;color:var(--pri-d);border:1px solid var(--line)}
.vai-btn.ghost:hover{border-color:var(--pri)}
.vai-btn.ghost.is-off{color:var(--mut)}
.vai-flexlbl label{display:flex;justify-content:space-between;align-items:baseline}
.vr-km{font-weight:700;color:var(--pri-d);text-transform:none;letter-spacing:0;font-size:13px}
/* Passi ben distinti: PARTENZA (verde) e ARRIVO (ambra) */
.vr-box{border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:12px}
.vr-box.vr-dep{border-color:#bfdccb;background:#F3FAF5;border-left:4px solid var(--pri)}
.vr-box.vr-arr{border-color:#ecd9bd;background:#FDF7EC;border-left:4px solid var(--amb)}
.vr-bh{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}
.vr-dep .vr-bh{color:var(--pri-d)}
.vr-arr .vr-bh{color:#9a5c12}
.vr-dot{width:12px;height:12px;border-radius:50%;background:var(--pri);box-shadow:0 0 0 3px var(--pri-s);flex:none}
.vr-flag{font-size:14px;line-height:1;flex:none}
.vr-fac{font-weight:600;letter-spacing:0;text-transform:none;color:var(--mut)}
#vr-arr-clear{margin-top:10px}
.vr-geo{margin-top:2px}
.vr-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--mut)}
.vr-leg{display:inline-flex;align-items:center;gap:6px}
.vr-leg.dep i{width:11px;height:11px;border-radius:50% 50% 50% 3px;background:#14532d;display:inline-block}
.vr-leg.trip i{width:11px;height:11px;border-radius:50% 50% 50% 3px;background:var(--pri);display:inline-block}
.vai-pin-arr{background:var(--amb);font-size:15px}
.vr-from{color:var(--pri-d)}
.vr-to{color:#9a5c12}
.vr-geo summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--pri-d);padding:6px 0}
.vr-status{margin-top:10px;font-size:13px;color:var(--mut);background:var(--pri-s);border-radius:9px;padding:8px 11px}
.vr-head{display:flex;align-items:center;gap:8px;margin:18px 0 8px}
.vr-count{min-width:22px;text-align:center;background:var(--pri-s);color:var(--pri-d);font-size:12.5px;font-weight:700;border-radius:999px;padding:3px 8px}
.vr-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.vr-card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;text-decoration:none;color:var(--ink);transition:transform .12s ease,border-color .12s ease}
.vr-card:hover{transform:translateY(-2px);border-color:var(--pri)}
.vr-route{font-weight:700;font-size:14.5px;margin-bottom:4px}
.vr-arrow{color:var(--pri)}

/* Password visibili con Mostra/Nascondi, e avviso sui modi di accesso */
.vai-pass{position:relative}
.vai-pass .vai-pass-in{padding-right:96px}
.vai-pass-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:1px solid var(--line);background:#fff;color:var(--pri-d);font-size:12px;font-weight:700;border-radius:8px;padding:6px 10px;cursor:pointer}
.vai-pass-eye:hover{border-color:var(--pri)}
.vai-login-hint{background:var(--pri-s);border:1px solid #cfe4d6;color:var(--pri-d);border-radius:10px;padding:9px 12px;font-size:13px;margin-bottom:12px;text-align:center}
.vai-login-hint b{font-weight:700}

/* ---------- Disponibilità LIVE (grafica app) ---------- */
.vl-app{--vl-green:#1f7a54;--vl-green-d:#16603f;--vl-ink:#173a29;--vl-mut:#7d8a82;--vl-line:#e0e6e1;
  max-width:480px;margin:0 auto;border:1px solid #dfe4e0;border-radius:18px;overflow:hidden;
  background:#f2f5f2;color:var(--vl-ink)}
.vl-map{height:320px;width:100%;background:#e8efe6;z-index:0}
.vl-panel{background:#fff;border-radius:18px 18px 0 0;margin-top:-16px;position:relative;padding:14px 16px 18px;z-index:1}
.vl-pane{animation:vlIn .2s ease}
@keyframes vlIn{from{opacity:.4}to{opacity:1}}
.vl-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px}
.vl-h{font-weight:600;font-size:15px;color:var(--vl-ink)}
.vl-sub{font-size:12.5px;color:var(--vl-mut);margin-top:2px}
.vl-label{font-size:12px;color:var(--vl-mut);margin:10px 0 6px;display:block}
.vl-flex{display:flex;align-items:center;justify-content:space-between}
.vl-km{font-size:13px;font-weight:600;color:var(--vl-green-d)}
.vl-win{font-size:12.5px;color:#2a4a3b;margin:6px 0 4px}
.vl-switch{width:46px;height:26px;border:0;border-radius:20px;background:#c9d2cc;position:relative;cursor:pointer;transition:background .2s;flex:0 0 auto;padding:0}
.vl-switch[aria-checked="true"]{background:var(--vl-green)}
.vl-switch span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s}
.vl-switch[aria-checked="true"] span{left:23px}
.vl-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:2px}
.vl-chip{border:1px solid #d5ddd7;background:#fff;color:#2a4a3b;border-radius:16px;padding:6px 12px;font-size:12.5px;cursor:pointer}
.vl-chip.is-sel{background:#e7f2eb;border-color:var(--vl-green);color:var(--vl-green-d);font-weight:600}
.vl-chips.is-lock .vl-chip{opacity:.55;pointer-events:none}
.vl-select,.vl-input{width:100%;box-sizing:border-box;border:1px solid #d5ddd7;border-radius:10px;background:#fff;color:var(--vl-ink);font-size:14px;padding:9px 10px}
.vl-select.is-lock,.vl-range.is-lock{opacity:.55;pointer-events:none}
.vl-field{margin-top:8px}
.vl-range{width:100%;accent-color:var(--vl-green);margin:2px 0 4px;height:30px}
.vl-status{font-size:12px;color:var(--vl-mut);margin:10px 0 12px;display:flex;align-items:center;gap:6px}
.vl-dot{width:10px;height:10px;border-radius:50%;background:var(--vl-green);display:inline-block;animation:vaiPulse 1.6s ease-out infinite;flex:0 0 auto}
.vl-btn{display:inline-block;width:100%;text-align:center;border:0;background:var(--vl-green);color:#fff;font-size:15px;font-weight:600;padding:12px;border-radius:12px;cursor:pointer;text-decoration:none;box-sizing:border-box}
.vl-btn.is-stop{background:#a33}
.vl-btn:hover{filter:brightness(.97)}
.vl-btn[disabled]{opacity:.6}
.vl-requests{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.vl-card{border:1px solid var(--vl-line);border-radius:12px;padding:11px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#fff;animation:vlIn .3s ease}
.vl-av{width:38px;height:38px;border-radius:50%;background:#e7f2eb;color:var(--vl-green-d);display:flex;align-items:center;justify-content:center;font-weight:600;flex:0 0 auto}
.vl-grow{flex:1;min-width:0}
.vl-name{font-size:13.5px;font-weight:600;color:var(--vl-ink)}
.vl-meta{font-size:12px;color:var(--vl-mut)}
.vl-mini{border:0;color:#fff;font-size:12.5px;padding:7px 11px;border-radius:9px;cursor:pointer;text-decoration:none;white-space:nowrap}
.vl-mini.ok{background:var(--vl-green)}
.vl-mini[disabled]{opacity:.6}
.vl-mini.ghost{background:#fff;color:var(--vl-green-d);border:1px solid #cfe0d5}
.vl-mini.wa{background:#128c4a}
.vl-mini.sent{background:#eef2ef;color:#4c5b52;border:1px solid var(--vl-line);cursor:default}
.vl-mini.okst{background:#e7f2eb;color:var(--vl-green-d);border:1px solid var(--vl-green);font-weight:700}
.vl-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto;align-items:center}
.vl-badge-ok{display:inline-block;background:#e7f2eb;color:var(--vl-green-d);border:1px solid var(--vl-green);font-size:12px;font-weight:700;border-radius:999px;padding:5px 10px;white-space:nowrap}
.vai-pop-btn.vl-pop-sent{background:#eef2ef;color:#4c5b52;cursor:default}
.vai-pop-btn.vl-pop-okst{background:#e7f2eb;color:#16603f;font-weight:700;text-decoration:none}
/* Riepilogo "Disponibili ora": schede semplici sotto la mappa */
.vl-avail{margin-top:18px;border-top:1px solid var(--vl-line);padding-top:14px}
.vl-count{display:inline-block;min-width:20px;box-sizing:border-box;text-align:center;background:#e7f2eb;color:var(--vl-green-d);font-size:12px;font-weight:600;border-radius:999px;padding:2px 7px;margin-left:7px;vertical-align:1px}
.vl-list{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.vl-pilot{border:1px solid var(--vl-line);border-radius:14px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:9px;animation:vlIn .3s ease}
.vl-prow{display:flex;gap:10px;align-items:center}
.vl-ptags{display:flex;gap:6px;flex-wrap:wrap}
.vl-tag{display:inline-block;font-size:11.5px;font-weight:600;color:var(--vl-green-d);background:#eef5f0;border:1px solid #d8e6dc;border-radius:999px;padding:3px 9px}
.vl-pilot .vl-mini{width:100%;text-align:center;padding:9px;margin-top:auto}
.vl-pager{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:2px}
.vl-pgi{font-size:12.5px;font-weight:600;color:var(--vl-mut)}
.vl-mini.vl-dis{opacity:.45;cursor:default}
.vl-geo{margin:0 0 12px}
.vl-geo summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--vl-mut);padding:4px 0 8px}
.vl-app .vai-geo .vai-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vl-app .vai-geo .vai-field{margin:0 0 8px}
.vl-app .vai-geo label{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--vl-mut);margin-bottom:4px}
.vl-app .vai-geo select{width:100%;padding:10px;border:1px solid var(--vl-line);border-radius:10px;background:#fff;font-size:14px}
.vl-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.vl-acts .vl-mini{flex:1;min-width:110px;text-align:center}
.vl-mini.wa{background:#128c4a;color:#fff;border-color:#128c4a}
.vl-login{margin:0 12px 14px}
.vl-login-box{border:1px solid var(--vl-line);border-radius:12px;padding:14px;text-align:center;background:#fafcfa}
.vl-login-box .vl-btn{margin-top:10px;width:auto;padding:10px 22px}

/* pin del pilota live (mappa) */
.vai-pin-live{background:#1f7a54;color:#fff}
.vai-pin-me{background:#14532d;font-size:12px;letter-spacing:.02em;box-shadow:0 0 0 2px rgba(20,83,45,.25)}
.vai-live-wait-pin{animation:vaiPulse 1.6s ease-out infinite}
@keyframes vaiPulse{0%{box-shadow:0 0 0 0 rgba(31,122,84,.55)}70%{box-shadow:0 0 0 16px rgba(31,122,84,0)}100%{box-shadow:0 0 0 0 rgba(31,122,84,0)}}

/* ---------- Accesso con Google / social ---------- */
.vai-google{margin:16px 0 4px;text-align:center}
.vai-google .g_id_signin{display:flex;justify-content:center}
.vai-or{display:flex;align-items:center;gap:12px;margin:0 0 14px;color:#8a938c;font-size:13px}
.vai-or::before,.vai-or::after{content:"";flex:1;height:1px;background:#e0e6e1}
.vai-social{display:flex;align-items:center;justify-content:center;gap:9px;max-width:320px;margin:8px auto 0;padding:10px 14px;border-radius:22px;font-size:14.5px;font-weight:600;text-decoration:none;border:1px solid transparent}
.vai-social .ic{width:20px;height:20px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:0 0 auto}
.vai-fb{background:#1877f2;color:#fff}
.vai-fb .ic{color:#1877f2}
.vai-tt{background:#000;color:#fff}
.vai-tt .ic{color:#000}
.vai-social:hover{filter:brightness(.94);color:#fff}

/* ---------- Monitor di sistema ---------- */
.vm-app{max-width:860px;margin:0 auto}
.vm-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.vm-title{font-size:19px;font-weight:800;color:#173a29;display:flex;align-items:center;gap:8px}
.vm-livedot{width:10px;height:10px;border-radius:50%;background:#1f7a54;display:inline-block;animation:vaiPulse 1.6s ease-out infinite}
.vm-upd{font-size:12px;color:#6b7a70}
.vm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.vm-stat{background:#fff;border:1px solid #dfe6e1;border-radius:13px;padding:13px;text-align:center}
.vm-stat b{display:block;font-size:23px;color:#16603f}
.vm-stat span{font-size:11px;color:#6b7a70;text-transform:uppercase;letter-spacing:.05em}
.vm-cols{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}
.vm-col{background:#fff;border:1px solid #dfe6e1;border-radius:13px;padding:13px;min-height:200px}
.vm-h{font-weight:700;font-size:13.5px;color:#173a29;margin-bottom:9px}
.vm-mut{color:#8a938c;font-size:11.5px;font-weight:400}
.vm-list{display:flex;flex-direction:column;gap:7px;max-height:420px;overflow:auto}
.vm-row{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid #eef1ee;border-radius:9px;font-size:12.5px;color:#173a29;background:#fbfdfb}
.vm-av{width:26px;height:26px;border-radius:50%;background:#e7f2eb;color:#16603f;font-weight:800;font-size:11.5px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.vm-ic{flex:0 0 auto;font-size:14px}
.vm-grow{flex:1;min-width:0}

/* ============================================================
   [vai_menu] — Menu generale dei servizi
   ============================================================ */
.vai-menu{max-width:860px}
.vai-mn-group{margin:0 0 22px}
.vai-mn-h{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);
	margin:0 0 10px;display:flex;align-items:center;gap:10px}
.vai-mn-h::after{content:"";flex:1;height:1px;background:var(--line)}
.vai-mn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.vai-mn-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #D6CEBC;border-radius:14px;
	padding:12px 14px;text-decoration:none;color:var(--ink);min-height:64px;
	box-shadow:0 1px 3px rgba(20,33,58,.05),0 8px 18px -12px rgba(20,33,58,.16);
	transition:box-shadow .15s,transform .12s,border-color .15s}
.vai-mn-item:hover{border-color:var(--pri);box-shadow:0 6px 16px rgba(14,128,96,.16);transform:translateY(-1px);color:var(--ink)}
.vai-mn-item:focus-visible{outline:3px solid rgba(14,128,96,.4);outline-offset:2px}
.vai-mn-item:hover .vai-mn-ar{transform:translateX(3px);color:var(--pri)}
.vai-mn-ic{width:42px;height:42px;flex:none;border-radius:12px;background:var(--pri-s);color:var(--pri-d);
	display:grid;place-items:center}
.vai-mn-ic svg{width:22px;height:22px}
.vai-mn-tx{flex:1;min-width:0}
.vai-mn-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:800;font-size:14.5px;line-height:1.25}
.vai-mn-d{display:block;font-size:12.5px;color:var(--mut);line-height:1.4;margin-top:2px}
.vai-mn-ar{flex:none;color:var(--line2);font-weight:800;font-size:16px;transition:transform .15s,color .15s}
.vai-mn-badge{display:inline-block;min-width:19px;text-align:center;background:var(--pri);color:#fff;
	font-size:11px;font-weight:800;border-radius:999px;padding:2px 6px;line-height:1.3}
.vai-mn-lock{font-size:12px;line-height:1;opacity:.85}
.vai-mn-live{width:9px;height:9px;border-radius:50%;background:#1f7a54;display:inline-block;flex:none;
	animation:vaiPulse 1.6s ease-out infinite}
.vai-mn-item.is-here{border-color:var(--pri);background:var(--pri-s)}
.vai-mn-item.is-here .vai-mn-ic{background:var(--pri);color:#fff}
.vai-mn-item.is-here .vai-mn-ar{color:var(--pri)}
/* variante compatta: solo icona e titolo, schede più fitte */
.vai-menu.compact .vai-mn-grid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px}
.vai-menu.compact .vai-mn-item{min-height:52px;padding:10px 12px;gap:10px}
.vai-menu.compact .vai-mn-ic{width:34px;height:34px;border-radius:10px}
.vai-menu.compact .vai-mn-ic svg{width:18px;height:18px}
.vai-menu.compact .vai-mn-t{font-size:13.5px}
.vai-menu.compact .vai-mn-ar{display:none}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:640px){
	.vai-row{flex-direction:column;gap:0}
	/* niente zoom automatico su iOS quando si tocca un campo */
	.vai-field input:not([type=checkbox]):not([type=radio]):not([type=range]),
	.vai-field select,.vai-field textarea,.vai-chat-input,.vl-select,.vl-input{font-size:16px}
	.vai-map{height:380px;height:min(380px,60vh)}
	.vai-facts{grid-template-columns:1fr}
	.vai-hero{padding:18px}
	.vai-hero .route{font-size:19px}
	.vai-chat-wrap{grid-template-columns:1fr}
	.vai-chat-list{max-height:210px}
	.vai-chat-main{min-height:60vh}
	.vai-bubble{max-width:86%}
	.vai-pager .vai-btn{flex:1}
	.vai-prof-head{gap:12px}
	.vm-stats{grid-template-columns:repeat(2,1fr)}
	.vm-cols{grid-template-columns:1fr}
	.vai-menu .vai-mn-grid{grid-template-columns:1fr}
	.vai-menu.compact .vai-mn-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:480px){
	.vai h2{font-size:18px}
	.vai-map{height:330px;height:min(330px,55vh)}
	.vl-map{height:260px}
	.vai-ticket-route{font-size:20px;padding:16px 16px 6px}
	.vai-ticket-top,.vai-ticket-grid{padding-left:16px;padding-right:16px}
	.vai-ticket-grid{grid-template-columns:1fr 1fr}
	.vai-sos-btn{width:100%;padding:16px 18px;font-size:17px}
	.vai-users-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
	.vai-menu.compact .vai-mn-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:400px){
	.vai-ride-top{gap:9px}
	.vai-av{width:40px;height:40px;font-size:16px}
	.vai-book{align-items:stretch}
	.vai-book .vai-field{width:100%}
	.vai-ticket-foot{flex-direction:column;text-align:center;gap:12px}
	.vai-ticket-code b{font-size:19px}
	.vai-geopos .vai-btn{width:100%}
	.vai-menu.compact .vai-mn-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
	.vai-live-wait-pin,.vl-dot,.vl-card,.vl-pilot,.vl-pane,.vm-livedot,.vai-mn-live{animation:none}
	.vai-card,.vai-card:hover,.vai-mitem,.vai-ucard,.vai-mn-item{transition:none;transform:none}
}

/* ---------- Griglie adattive e paginazione elegante grigia ---------- */
.vai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;align-items:stretch}
.vai-grid>.vai-card{margin:0;height:100%;box-sizing:border-box}
.vai-map-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.vai-map-list>*{margin:0}
.vai-map-list .vai-pager,.vai-grid .vai-pager{grid-column:1/-1}
.vai-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:16px 0}
.vai-pager .vai-btn,.vai-pager .vai-dis{background:#f2f0ea!important;color:#4b5563!important;border:1px solid #d9d4c6!important;border-radius:10px;font-weight:600}
.vai-pager .vai-btn:hover{background:#e7e3d8!important;color:#1f2937!important;border-color:#c9c3b2!important}
.vai-pager .vai-dis{opacity:.5}
.vai-pager-info{color:#6b7280;background:#f2f0ea;border:1px solid #d9d4c6;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600}
.vl-pager .vl-mini{background:#f2f0ea;color:#4b5563;border-color:#d9d4c6}
.vl-pgi{color:#6b7280;background:#f2f0ea;border:1px solid #d9d4c6;border-radius:999px;padding:5px 12px}
@media (max-width:640px){.vai-grid,.vai-map-list{grid-template-columns:1fr}}

/* Evento: barre ad alto contrasto */
.vai-evt-btnbar{display:block;width:100%;box-sizing:border-box;background:var(--pri);color:#fff;font-weight:800;letter-spacing:.05em;text-align:center;padding:13px 16px;border-radius:14px;font-size:16px;text-transform:uppercase}
summary.vai-evt-btnbar{cursor:pointer;list-style:none}
summary.vai-evt-btnbar::-webkit-details-marker{display:none}
summary.vai-evt-btnbar:hover,.vai-evt-btnbar:hover{background:var(--pri-d)}
.vai-evt-title{background:var(--pri);color:#fff;padding:16px 18px;border-radius:16px;text-align:center;font-size:26px;line-height:1.25;margin:0 0 12px}

/* Evento a tutta pagina */
.vai-evt{max-width:none;width:100%}
.vai-evt .vai-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}

/* Sala riunioni: proporzioni corrette a prova di tema */
.vai-jwrap{position:relative;width:100%;padding-top:62%;min-height:520px;border-radius:16px;overflow:hidden;background:#111}
.vai-jframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0!important;display:block}
@media (max-width:640px){.vai-jwrap{padding-top:150%;min-height:70vh}}

/* Opzioni di adesione a schede */
.vai-adeopt{display:block;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:8px 0;font-weight:400;background:#fff}
.vai-adeopt ul{margin:6px 0 0 20px;padding:0}
.vai-adeopt li{margin:3px 0}
.vai-adeopt:has(input:checked){border-color:var(--pri);background:#F3FAF5}

/* Adesione: schede affiancate */
.vai-adegrid{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:900px){.vai-adegrid{grid-template-columns:1fr 1fr}}
.vai-adegrid .vai-adeopt{margin:0;height:100%;box-sizing:border-box}
.vai-adesione{max-width:none}

/* Adesione: campi per opzione */
.vai-ade-form .only-o1,.vai-ade-form .only-o2{display:none}
.vai-ade-form.o1 .only-o1{display:block}
.vai-ade-form.o2 .only-o2{display:block}
