/* BustoBus V22u13c — installazione PWA integrata direttamente nel controllo Leaflet. */
#install-banner{display:none!important}
.pulsante-installa-bustobus{width:48px;height:48px;border-radius:16px;border:1px solid rgba(226,232,240,.96);background:rgba(255,255,255,.94);color:#0f172a;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 28px rgba(15,23,42,.16),0 3px 8px rgba(15,23,42,.08);transition:transform .2s cubic-bezier(.22,1,.36,1),color .2s,background-color .2s,box-shadow .2s,border-color .2s}
.pulsante-installa-bustobus[hidden]{display:none!important}
.pulsante-installa-bustobus:hover{transform:translateY(-2px);box-shadow:0 15px 32px rgba(15,23,42,.18),0 4px 10px rgba(15,23,42,.09)}
.pulsante-installa-bustobus:active{transform:scale(.94)}
.pulsante-installa-bustobus[aria-expanded="true"]{background:#0f172a;color:#fff;border-color:#0f172a}
.pulsante-installa-bustobus svg{width:23px;height:23px;display:block}
.pulsante-installa-bustobus:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}
html[data-install-open="true"] .leaflet-control-posizione{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

.bb-install-overlay{position:fixed;inset:0;z-index:1710;display:grid;align-items:end;justify-items:center;padding:16px 16px max(16px,env(safe-area-inset-bottom));pointer-events:none}
.bb-install-overlay[hidden]{display:none}
.bb-install-overlay.is-open{pointer-events:auto}
.bb-install-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.46);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;transition:opacity .22s ease;cursor:default}
.bb-install-sheet{position:relative;width:min(560px,100%);max-height:min(84vh,720px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:28px;box-shadow:0 30px 90px rgba(15,23,42,.34);transform:translateY(24px) scale(.985);opacity:0;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .22s ease;outline:none}
.bb-install-overlay.is-open .bb-install-backdrop{opacity:1}.bb-install-overlay.is-open .bb-install-sheet{transform:translateY(0) scale(1);opacity:1}
.bb-install-header{display:flex;align-items:flex-start;gap:13px;padding:20px 20px 16px;border-bottom:1px solid #eef2f7;background:linear-gradient(180deg,#fff,#fbfdff)}
.bb-install-header-icon{width:44px;height:44px;flex:0 0 44px;border-radius:15px;display:grid;place-items:center;color:#fff;background:#0f172a;box-shadow:0 10px 24px rgba(15,23,42,.18)}
.bb-install-header-icon svg{width:23px;height:23px}.bb-install-header-copy{min-width:0;flex:1}
.bb-install-header h2{margin:0;font-size:20px;line-height:1.15;letter-spacing:-.025em;color:#0f172a;font-weight:800}.bb-install-header p{margin:5px 0 0;font-size:12px;line-height:1.5;color:#64748b}
.bb-install-close{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:13px;background:#f1f5f9;color:#475569;display:grid;place-items:center;cursor:pointer;transition:transform .16s ease,background-color .16s ease,color .16s ease}.bb-install-close:hover{background:#e2e8f0;color:#0f172a}.bb-install-close:active{transform:scale(.94)}
.bb-install-close:focus-visible,.bb-install-primary:focus-visible{outline:3px solid rgba(225,29,72,.2);outline-offset:2px}.bb-install-close svg{width:18px;height:18px}
.bb-install-body{padding:16px 16px 20px;overflow:auto;background:#f8fafc;overscroll-behavior:contain}.bb-install-hero{display:flex;flex-direction:column;gap:3px;padding:14px 15px;border-radius:18px;background:#fff1f2;border:1px solid #ffe4e6;margin-bottom:12px}.bb-install-hero strong{color:#0f172a;font-size:13px}.bb-install-hero span{color:#475569;font-size:12px;line-height:1.5}
.bb-install-card{background:#fff;border:1px solid #e5eaf1;border-radius:18px;padding:15px;box-shadow:0 3px 12px rgba(15,23,42,.035)}.bb-install-card-direct{display:grid;gap:14px}.bb-install-card strong{display:block;color:#0f172a;font-size:13px}.bb-install-card p{margin:4px 0 0;color:#64748b;font-size:11px;line-height:1.55}.bb-install-kicker{display:block;margin-bottom:8px;color:#e11d48;font-size:9px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.bb-install-steps{display:grid;gap:0}.bb-install-step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:start;padding:12px 0}.bb-install-step:first-child{padding-top:2px}.bb-install-step:last-child{padding-bottom:2px}.bb-install-step+.bb-install-step{border-top:1px solid #eef2f7}.bb-install-step-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#fff1f2;color:#e11d48}.bb-install-step-icon svg{width:20px;height:20px}.bb-install-step-copy strong{display:block;font-size:12px;color:#0f172a}.bb-install-step-copy span{display:block;margin-top:3px;font-size:11px;line-height:1.5;color:#64748b}
.bb-install-primary{width:100%;min-height:44px;border:1px solid #e11d48;border-radius:14px;background:#e11d48;color:#fff;padding:11px 14px;font-size:13px;font-weight:850;cursor:pointer;transition:transform .18s ease,background-color .18s ease,border-color .18s ease}.bb-install-primary:hover{background:#be123c;border-color:#be123c;transform:translateY(-1px)}.bb-install-primary:active{transform:scale(.992)}.bb-install-note{margin:11px 4px 0;text-align:center;color:#94a3b8;font-size:10px;line-height:1.5}
@media(min-width:700px){.bb-install-overlay{align-items:center}.bb-install-sheet{max-height:min(78vh,680px)}.bb-install-body{padding:18px 18px 22px}.bb-install-card-direct{grid-template-columns:minmax(0,1fr) auto;align-items:center}.bb-install-card-direct .bb-install-primary{width:auto;min-width:150px}}
@media(max-width:520px){.bb-install-overlay{padding:0;align-items:end}.bb-install-sheet{width:100%;max-height:88vh;border-radius:26px 26px 0 0;border-bottom:0}.bb-install-header{padding:17px 16px 14px}.bb-install-body{padding:14px 12px calc(18px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.bb-install-backdrop,.bb-install-sheet,.bb-install-close,.bb-install-primary,.pulsante-installa-bustobus{transition:none!important}}
