.qvbb-booking{--qvbb-navy:#073b4c;--qvbb-blue:#087e8b;--qvbb-sand:#f6f1e8;--qvbb-green:#4d9224;--qvbb-red:#d73932;--qvbb-orange:#f39c12;--qvbb-purple:#8d35a7;--qvbb-marker-size:20px;--qvbb-marker-font-size:7px;position:relative;font-family:inherit;color:#18323d}.qvbb-booking *{box-sizing:border-box}.qvbb-brand-lockup{display:flex;justify-content:center;margin:0 0 18px}.qvbb-brand-lockup img{display:block;width:min(560px,92%);height:auto;max-height:165px;object-fit:contain}.qvbb-booking-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;margin-bottom:20px}.qvbb-kicker{display:block;color:var(--qvbb-blue);font-weight:800;text-transform:uppercase;letter-spacing:.09em;font-size:12px}.qvbb-booking h2{margin:.25rem 0 .5rem;font-size:clamp(28px,4vw,46px);color:var(--qvbb-navy)}.qvbb-booking-header p{margin:0;color:#58707b}.qvbb-date-form{display:flex;align-items:end;gap:10px;padding:14px;background:var(--qvbb-sand);border-radius:16px}.qvbb-date-form label{display:grid;gap:5px;font-size:13px;font-weight:700}.qvbb-date-form input{min-height:44px;padding:8px 10px;border:1px solid #c8d3d8;border-radius:9px;background:#fff}.qvbb-date-form button,.qvbb-book-button{min-height:44px;border:0;border-radius:10px;padding:10px 18px;background:var(--qvbb-navy);color:#fff;font-weight:800;cursor:pointer}.qvbb-date-form button:disabled,.qvbb-book-button:disabled{opacity:.6;cursor:wait}.qvbb-legend{display:flex;flex-wrap:wrap;gap:16px;margin:10px 0 12px;font-size:13px}.qvbb-legend span{display:inline-flex;align-items:center;gap:7px}.qvbb-dot{display:inline-block;width:16px;height:16px;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.22);background-image:repeating-conic-gradient(rgba(255,255,255,.3) 0 3deg,transparent 3deg 45deg)}.qvbb-dot-available{background:var(--qvbb-green)}.qvbb-dot-selected{background:var(--qvbb-blue)}.qvbb-dot-unavailable{background:var(--qvbb-red)}.qvbb-dot-hold{background:var(--qvbb-orange)}.qvbb-dot-seasonal{background:var(--qvbb-purple)}.qvbb-message{min-height:24px;margin:8px 0 14px;font-weight:700;color:var(--qvbb-navy)}.qvbb-public-map-shell{overflow:auto;border-radius:18px;border:1px solid #d1dde2;background:#dfe9ec;box-shadow:0 12px 32px rgba(7,59,76,.12)}.qvbb-public-map{position:relative;min-width:920px;line-height:0}.qvbb-public-map>img{display:block;width:100%;height:auto;user-select:none}.qvbb-public-map #qvbb-public-markers{position:absolute;inset:0}.qvbb-public-marker{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--qvbb-marker-size);height:var(--qvbb-marker-size);padding:0;border:1px solid rgba(255,255,255,.96);border-radius:50%;color:#fff;font-weight:900;font-size:var(--qvbb-marker-font-size);line-height:1;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.65);filter:drop-shadow(0 2px 3px rgba(0,0,0,.38));transition:transform .15s ease,filter .15s ease;z-index:2;isolation:isolate;overflow:hidden}.qvbb-public-marker::before{content:"";position:absolute;inset:1px;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.34) 0 2deg,rgba(255,255,255,.03) 2deg 43deg,rgba(0,0,0,.10) 43deg 45deg);z-index:-1}.qvbb-public-marker::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.78);transform:translate(-50%,-50%);z-index:-1}.qvbb-public-marker.is-available{background:var(--qvbb-green);cursor:pointer}.qvbb-public-marker.is-available:hover,.qvbb-public-marker.is-available:focus{transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 5px 8px rgba(0,0,0,.5));z-index:4}.qvbb-public-marker.is-selected{background:var(--qvbb-blue)!important;outline:2px solid #fff;outline-offset:2px;transform:translate(-50%,-50%) scale(1.12);filter:drop-shadow(0 5px 8px rgba(0,0,0,.55));z-index:6}.qvbb-public-marker.is-selected::after{width:4px;height:4px;background:#fff}.qvbb-public-marker.is-unavailable{background:var(--qvbb-red);cursor:not-allowed}.qvbb-public-marker.is-hold{background:var(--qvbb-orange);cursor:not-allowed}.qvbb-public-marker.is-seasonal{background:var(--qvbb-purple);cursor:not-allowed}.qvbb-spot-sheet{position:sticky;bottom:16px;z-index:20;width:min(480px,calc(100% - 24px));margin:-30px auto 0;padding:22px;background:#fff;border-radius:18px;box-shadow:0 16px 45px rgba(7,59,76,.25);line-height:1.4}.qvbb-sheet-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:28px;cursor:pointer}.qvbb-sheet-zone{color:var(--qvbb-blue);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.qvbb-spot-sheet h3{margin:4px 34px 8px 0;color:var(--qvbb-navy);font-size:25px}.qvbb-sheet-selection{margin:0 0 12px;padding:9px 11px;border-radius:10px;background:#eef6f7;color:var(--qvbb-navy);font-size:13px;line-height:1.45}.qvbb-sheet-selection span{font-weight:800;word-break:break-word}.qvbb-spot-sheet dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}.qvbb-spot-sheet dl div{background:#f4f7f8;border-radius:10px;padding:10px}.qvbb-spot-sheet dt{font-size:11px;text-transform:uppercase;color:#6c7c84}.qvbb-spot-sheet dd{margin:3px 0 0;font-weight:800}.qvbb-book-button{width:100%;background:var(--qvbb-green);font-size:16px}.qvbb-spot-sheet small{display:block;margin-top:8px;text-align:center;color:#6a7a82}.qvbb-booking.is-loading .qvbb-public-map{opacity:.65}@media(max-width:820px){.qvbb-booking{--qvbb-marker-size:18px;--qvbb-marker-font-size:6.5px}.qvbb-booking-header{grid-template-columns:1fr}.qvbb-date-form{display:grid;grid-template-columns:1fr auto}.qvbb-public-map{min-width:900px}}@media(max-width:520px){.qvbb-booking{--qvbb-marker-size:16px;--qvbb-marker-font-size:5.5px}.qvbb-date-form{grid-template-columns:1fr}.qvbb-spot-sheet dl{grid-template-columns:1fr}.qvbb-spot-sheet{position:fixed;left:12px;right:12px;bottom:12px;width:auto;margin:0;max-height:75vh;overflow:auto}.qvbb-public-map{min-width:880px}}

/* Navigazione interattiva mappa — v0.3.4 */
.qvbb-map-panel{position:relative}.qvbb-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 10px;padding:10px 12px;border:1px solid #d1dde2;border-radius:14px;background:#f4f7f8;color:#49636e}.qvbb-map-help{font-size:13px;font-weight:700}.qvbb-map-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.qvbb-map-control{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 11px;border:1px solid #b9c9d0;border-radius:9px;background:#fff;color:var(--qvbb-navy);font:inherit;font-size:20px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 1px 3px rgba(7,59,76,.08)}.qvbb-map-control:hover,.qvbb-map-control:focus-visible{border-color:var(--qvbb-blue);color:var(--qvbb-blue);outline:none}.qvbb-map-control:disabled{opacity:.42;cursor:not-allowed}.qvbb-map-control-text{width:auto;font-size:12px;line-height:1.1}.qvbb-zoom-value{min-width:48px;text-align:center;color:var(--qvbb-navy);font-size:12px;font-weight:900}.qvbb-public-map-shell{position:relative;overflow:auto;max-height:min(72vh,760px);overscroll-behavior:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;cursor:grab}.qvbb-public-map-shell:focus-visible{outline:3px solid rgba(8,126,139,.32);outline-offset:3px}.qvbb-public-map-shell.is-dragging{cursor:grabbing;user-select:none}.qvbb-public-map{position:relative;width:100%;min-width:0!important;max-width:none;line-height:0;transform:none!important}.qvbb-public-map>img{width:100%;max-width:none;height:auto;-webkit-user-drag:none;pointer-events:none}.qvbb-public-map #qvbb-public-markers{pointer-events:none}.qvbb-public-marker{pointer-events:auto}.qvbb-map-panel:fullscreen,.qvbb-map-panel.is-native-fullscreen,.qvbb-map-panel.is-map-expanded{background:#f4f7f8;padding:12px;display:flex;flex-direction:column}.qvbb-map-panel:fullscreen,.qvbb-map-panel.is-native-fullscreen{width:100vw;height:100vh}.qvbb-map-panel.is-map-expanded{position:fixed;inset:0;z-index:2147483000;width:100vw;height:100vh}.qvbb-map-panel:fullscreen .qvbb-map-toolbar,.qvbb-map-panel.is-native-fullscreen .qvbb-map-toolbar,.qvbb-map-panel.is-map-expanded .qvbb-map-toolbar{flex:0 0 auto;background:#fff}.qvbb-map-panel:fullscreen .qvbb-public-map-shell,.qvbb-map-panel.is-native-fullscreen .qvbb-public-map-shell,.qvbb-map-panel.is-map-expanded .qvbb-public-map-shell{flex:1 1 auto;max-height:none;min-height:0;background:#dfe9ec}.qvbb-no-scroll{overflow:hidden!important}
@media(max-width:820px){.qvbb-map-toolbar{align-items:flex-start;flex-direction:column}.qvbb-map-controls{width:100%;justify-content:flex-start}.qvbb-map-help{font-size:12px}.qvbb-public-map{min-width:0!important}.qvbb-public-map-shell{max-height:68vh}}
@media(max-width:520px){.qvbb-map-control{height:36px;min-width:36px}.qvbb-map-control-text{font-size:11px}.qvbb-map-help{display:block}.qvbb-public-map{min-width:0!important}.qvbb-public-map-shell{max-height:64vh;border-radius:14px}}

/* Selezione multipla affidabile — v0.3.7 */
.qvbb-selection-counter{display:inline-flex;align-items:center;gap:9px;margin-left:auto;padding:7px 10px;border:1px solid rgba(8,126,139,.22);border-radius:999px;background:#e8f5f6;color:var(--qvbb-navy);font-size:12px;font-weight:800;white-space:nowrap}.qvbb-selection-counter[hidden]{display:none!important}.qvbb-selection-counter strong{padding-left:9px;border-left:1px solid rgba(7,59,76,.18);font-size:13px}.qvbb-spot-sheet{position:relative!important;bottom:auto!important;width:100%!important;max-width:none;margin:14px 0 0!important}.qvbb-map-panel:fullscreen .qvbb-spot-sheet,.qvbb-map-panel.is-native-fullscreen .qvbb-spot-sheet,.qvbb-map-panel.is-map-expanded .qvbb-spot-sheet{flex:0 0 auto;max-height:42vh;overflow:auto;margin-top:10px!important}.qvbb-public-marker.is-selected{outline-width:1px;outline-offset:1px}
@media(max-width:820px){.qvbb-selection-counter{order:3;margin-left:0}.qvbb-map-controls{order:2}.qvbb-map-help{order:1}.qvbb-spot-sheet{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;width:100%!important;max-height:none!important;margin:12px 0 0!important;overflow:visible!important}}
