/* UI CLEAN V19 — override finale, senza toccare la logica */
:root{--imp-max:1360px;--imp-gap:18px;--imp-blue:#1167f2;--imp-cyan:#2c9ee8;--imp-ink:#0b1430;--imp-bg:#edf3f9;--imp-line:#dbe5f1}
html,body{max-width:100%;overflow-x:hidden}
body{background:var(--imp-bg)!important}

/* HOME: contenitore perimetrale e box allineate */
body.homeV18{padding:16px!important;background:var(--imp-bg)!important}
.homeV18 .topbar,.homeV18 .homeHeroV18,.homeV18 .homeSteps,.homeV18 .stepbar{width:min(var(--imp-max),calc(100vw - 32px))!important;max-width:var(--imp-max)!important;margin-left:auto!important;margin-right:auto!important}
.homeV18 .topbar{height:66px!important;min-height:66px!important;padding:0 22px!important;border-radius:18px 18px 0 0!important;background:#fff!important}
.homeV18 .topbar .brandText{display:none!important}
.homeV18 .homeHeroV18{padding:14px!important;border-radius:0 0 20px 20px!important;background:#f6f9fd!important}
.homeV18 .container{width:100%!important;max-width:100%!important;padding:0!important}
.homeMatrixV18{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:'brand booking' 'shuttle van'!important;gap:14px!important;align-items:stretch!important}
.brandShowcaseV18{grid-area:brand}.bookingCardV18{grid-area:booking}.shuttlePanelV18{grid-area:shuttle}.shuttleServiceV18{grid-area:van}
.brandShowcaseV18,.bookingCardV18,.shuttlePanelV18,.shuttleServiceV18{box-sizing:border-box!important;width:100%!important;min-width:0!important;border:1px solid var(--imp-line)!important;border-radius:20px!important;box-shadow:0 12px 30px rgba(15,45,85,.08)!important;overflow:hidden!important}
.brandShowcaseV18,.bookingCardV18{min-height:390px!important;height:auto!important}
.shuttlePanelV18,.shuttleServiceV18{min-height:220px!important;height:auto!important}
.brandShowcaseV18{position:relative!important;display:grid!important;grid-template-columns:35% 65%!important;align-items:end!important;padding:24px 26px!important;background:linear-gradient(90deg,rgba(255,255,255,.88),rgba(255,255,255,.45)),url('https://images.unsplash.com/photo-1542296332-2e4473faf563?auto=format&fit=crop&w=1600&q=82') center/cover!important}
.brandShowcaseV18:after{content:'PARTENZE'!important;position:absolute!important;right:24px!important;bottom:18px!important;color:#fff!important;font-size:clamp(24px,3vw,42px)!important;font-weight:950!important;opacity:.72!important;text-shadow:0 2px 10px rgba(0,0,0,.4)!important;letter-spacing:.04em!important}
.brandMascotV18{display:block!important;width:100%!important;height:330px!important;max-height:none!important;object-fit:contain!important;object-position:left bottom!important;align-self:end!important;transform:rotate(-4deg)!important;filter:brightness(1.08) saturate(.94) drop-shadow(0 12px 12px rgba(15,42,80,.20))!important}
.brandCopyV18{position:relative!important;z-index:2!important;align-self:center!important;padding:0 0 32px 6px!important;min-width:0!important}
.brandNameV18{font-size:clamp(42px,4vw,64px)!important;line-height:.92!important;letter-spacing:-2.6px!important;color:#0a1730!important;white-space:normal!important}
.brandNameV18 strong{display:block!important;color:var(--imp-cyan)!important}.brandNameV18 span{color:var(--imp-cyan)!important}
.brandPayoffV18{font-size:clamp(17px,1.45vw,22px)!important;line-height:1.2!important;margin-top:18px!important;color:#0a1730!important;white-space:normal!important}
.brandPayoffV18 b{color:var(--imp-cyan)!important;border-bottom:3px solid var(--imp-cyan)!important;padding-bottom:3px!important}

/* Preventivo: nessun taglio */
.bookingCardV18{padding:26px!important;margin:0!important;display:block!important;background:#fff!important;overflow:visible!important}
.bookingCardV18 h2{font-size:31px!important;line-height:1.05!important;margin:0 0 6px!important}.bookingCardV18 .sub{margin:0 0 16px!important}
.bookingCardV18 .formGrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin:0!important;overflow:visible!important}
.bookingCardV18 .field{min-width:0!important}.bookingCardV18 .input{height:46px!important;min-width:0!important;font-size:14px!important}
.bookingCardV18 .timeWheel{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;gap:6px!important;align-items:center!important;min-width:0!important}
.bookingCardV18 .vehicleGrid{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important;overflow:visible!important}
.bookingCardV18 .vehicleBtn{height:54px!important;min-width:0!important;padding:8px 7px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;overflow:visible!important}
.bookingCardV18 .vehicleBtn svg{width:24px!important;height:24px!important;flex:0 0 24px!important}.bookingCardV18 .vehicleBtn span{font-size:13px!important;white-space:nowrap!important}
.bookingCardV18 .primary{grid-column:1/-1!important;height:50px!important;margin-top:2px!important;display:block!important;visibility:visible!important;position:relative!important;z-index:2!important}

/* Navetta LIVE e foto reale navetta */
.shuttlePanelV18{padding:10px!important;background:#fff!important}.shuttleLiveTopV18{height:30px!important;padding:0 6px!important}.shuttleCardV18{height:calc(100% - 30px)!important;min-height:178px!important;padding:20px!important;grid-template-columns:38% 62%!important}
.shuttleTextV18 h2{font-size:23px!important}.shuttleTextV18 p{font-size:14px!important}.routeV18{height:112px!important}
.shuttleServiceV18{position:relative!important;display:grid!important;grid-template-columns:47% 53%!important;align-items:stretch!important;padding:0!important;background:#fff!important}
.shuttlePhotoV19{min-height:218px!important;background:url('/assets/navetta-servizio.jpg?v=190') center/cover no-repeat!important}
.shuttleServiceCopyV19{display:flex!important;flex-direction:column!important;justify-content:center!important;padding:22px 24px!important;background:linear-gradient(90deg,#fff,#f4f8ff)!important}
.shuttleServiceCopyV19 h2{margin:8px 0 10px!important;font-size:22px!important}.shuttleServiceCopyV19 p{margin:0!important;color:#4f617a!important;line-height:1.5!important;font-size:14px!important}.h24V18{width:46px!important;height:46px!important}

/* Due barre orizzontali, icone SVG blu coerenti */
.serviceStripV18{display:grid!important;width:100%!important;margin-top:14px!important;background:#fff!important;border:1px solid var(--imp-line)!important;border-radius:18px!important;box-shadow:0 10px 26px rgba(15,45,85,.06)!important;overflow:hidden!important}
.serviceStripMainV18{grid-template-columns:repeat(5,minmax(0,1fr))!important}.extrasStripV18{grid-template-columns:1.25fr repeat(5,minmax(0,1fr))!important}
.serviceStripV18>div{min-width:0!important;display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;grid-template-rows:auto auto!important;column-gap:10px!important;align-items:center!important;padding:16px!important;border-right:1px solid #e5ebf3!important}
.serviceStripV18>div:last-child{border-right:0!important}.serviceStripV18 b{font-size:13px!important;line-height:1.15!important}.serviceStripV18 small{font-size:11px!important;line-height:1.25!important;color:#607089!important;margin-top:4px!important}
.lineIconV18{grid-row:1/3!important;width:40px!important;height:40px!important;border-radius:12px!important;background:#eef5ff!important;color:var(--imp-blue)!important;display:grid!important;place-items:center!important}
.lineIconV18 svg{width:27px!important;height:27px!important}.extrasIntroV18{grid-template-columns:1fr!important;display:flex!important;flex-direction:column!important;justify-content:center!important}.extrasIntroV18 b{font-size:16px!important}
.homeV18 .homeSteps{margin-top:14px!important;border-radius:16px!important;overflow:hidden!important}

/* Dashboard operativa: simbolo unico dentro cerchio */
.gridStatsV17 .metricIcon{position:relative!important;width:50px!important;height:50px!important;min-width:50px!important;flex:0 0 50px!important;border-radius:50%!important;overflow:hidden!important;font-size:0!important;color:transparent!important;line-height:1!important}
.gridStatsV17 .metricIcon>*{display:none!important}.gridStatsV17 .metricIcon:before{display:none!important;content:none!important}.gridStatsV17 .metricIcon:after{position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;color:#fff!important;font-weight:950!important;text-align:center!important;white-space:pre!important;line-height:1.02!important}
#stat_checkin_oggi .metricIcon:after,#stat_checkin_domani .metricIcon:after{content:'IN\A→'!important;font-size:13px!important}
#stat_checkout_oggi .metricIcon:after,#stat_checkout_domani .metricIcon:after{content:'OUT\A←'!important;font-size:11px!important}
#stat_annullate_oggi .metricIcon:after{content:'×'!important;font-size:29px!important}
#stat_auto_in_park .metricIcon:after{content:'P'!important;font-size:24px!important}
#stat_cassa .metricIcon:after{content:'€'!important;font-size:21px!important}

/* Dashboard amministrativa: perimetro e icone non ovali */
body>.shell{width:min(var(--imp-max),calc(100vw - 32px))!important;max-width:var(--imp-max)!important;margin:16px auto!important;border-radius:20px!important;overflow:hidden!important;box-shadow:0 18px 44px rgba(15,45,85,.10)!important}
.shell .side a .ico,.shell .side .ico,.uiIconCircle,.smallico{aspect-ratio:1/1!important;border-radius:50%!important;display:inline-grid!important;place-items:center!important;line-height:1!important;padding:0!important}
#partner .row{display:grid!important;grid-template-columns:40px minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important}

@media(max-width:900px){
 body.homeV18{padding:7px!important}.homeV18 .topbar,.homeV18 .homeHeroV18,.homeV18 .homeSteps{width:calc(100vw - 14px)!important}
 .homeMatrixV18{grid-template-columns:1fr!important;grid-template-areas:'brand' 'booking' 'shuttle' 'van'!important}
 .brandShowcaseV18,.bookingCardV18{min-height:auto!important}.brandShowcaseV18{grid-template-columns:112px minmax(0,1fr)!important;padding:14px!important;min-height:220px!important}.brandMascotV18{height:198px!important}.brandCopyV18{padding:0 0 14px 7px!important}.brandNameV18{font-size:clamp(30px,9vw,46px)!important;letter-spacing:-1.5px!important}.brandPayoffV18{font-size:14px!important;margin-top:12px!important}.brandShowcaseV18:after{font-size:19px!important;right:12px!important;bottom:8px!important}
 .bookingCardV18{padding:18px!important}.bookingCardV18 .formGrid{grid-template-columns:1fr!important}.bookingCardV18 .vehicleGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.bookingCardV18 .primary{grid-column:1!important}
 .shuttleCardV18{grid-template-columns:1fr!important;min-height:300px!important}.routeV18{margin-top:10px!important}.shuttleServiceV18{grid-template-columns:1fr!important}.shuttlePhotoV19{min-height:210px!important}.shuttleServiceCopyV19{padding:18px!important}
 .serviceStripMainV18,.extrasStripV18{grid-template-columns:1fr!important}.serviceStripV18>div{border-right:0!important;border-bottom:1px solid #e5ebf3!important}.serviceStripV18>div:last-child{border-bottom:0!important}
 body>.shell{width:calc(100vw - 14px)!important;margin:7px auto!important}
}
