/* Precision Drive vehicle page: continuous launcher-to-studio transition. */
.vehicle-home{position:fixed;z-index:72;inset:0;overflow:hidden;isolation:isolate;color:#fff;background:#020305;opacity:var(--vehicle-progress,0);transition:opacity .58s cubic-bezier(.2,.82,.2,1);touch-action:none;--vehicle-accent:#e8ecef;--vehicle-progress:0;--vehicle-reveal:100%}
.vehicle-home.hidden{display:none!important}
.vehicle-home::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.18));pointer-events:none}
.vehicle-ambient{position:absolute;inset:0;z-index:0;background:url('vehicles/studio-background-empty-v85.png') center/cover no-repeat;filter:brightness(.86) saturate(.82);opacity:calc(.18 + var(--vehicle-progress,0) * .82);transform:scale(calc(1.018 - var(--vehicle-progress,0) * .018));transition:opacity .58s ease,transform .68s cubic-bezier(.2,.82,.2,1)}
.vehicle-stage{position:absolute;z-index:1;inset:42px 0 74px;display:grid;place-items:center;opacity:calc(.04 + var(--vehicle-progress,0) * .96);transform:translate3d(calc((1 - var(--vehicle-progress,0)) * -9vw),2.8vh,0);transition:opacity .46s ease,transform .68s cubic-bezier(.2,.82,.2,1);pointer-events:none}
.vehicle-composition{position:relative;width:min(76vw,118vh,1380px);aspect-ratio:16/9;isolation:isolate;transform:scale(calc(.78 + var(--vehicle-progress,0) * .22));transform-origin:center 68%;transition:transform .68s cubic-bezier(.2,.82,.2,1)}
.vehicle-render{position:relative;z-index:2;display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 12px 9px rgba(0,0,0,.38)) contrast(1.04) saturate(1.06)}
.vehicle-reflection-wrap{position:absolute;z-index:1;left:2%;right:2%;top:65.5%;height:41%;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(rgba(0,0,0,.92),rgba(0,0,0,.54) 61%,transparent 98%);mask-image:linear-gradient(rgba(0,0,0,.92),rgba(0,0,0,.54) 61%,transparent 98%)}
.vehicle-floor-reflection{display:block;position:absolute;left:0;bottom:100%;width:100%;height:auto;transform:scaleY(-.49);transform-origin:center bottom;opacity:.42;filter:blur(.7px) brightness(.72) saturate(.82)}
.vehicle-edit{position:absolute;right:4vw;bottom:24px;display:flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid #ffffff32;border-radius:14px;background:#17191f8a;color:#fff;box-shadow:0 14px 38px #0008,inset 0 1px #ffffff1e;backdrop-filter:blur(18px);pointer-events:auto;font-size:11px;font-weight:760}
.vehicle-edit svg{width:16px;height:16px;fill:currentColor}
.vehicle-setup{position:absolute;z-index:7;left:50%;bottom:62px;transform:translateX(-50%);width:min(860px,calc(100vw - 64px));display:grid;grid-template-columns:minmax(190px,.82fr) 2fr auto;align-items:center;gap:20px;padding:16px 18px;border:1px solid #ffffff29;border-radius:24px;background:#15171cbd;box-shadow:0 26px 80px #000b,inset 0 1px #ffffff1f;backdrop-filter:blur(28px) saturate(1.2)}
.vehicle-setup header h1{margin:0 0 5px;font-size:20px;letter-spacing:-.025em}.vehicle-setup header p{margin:0;color:#ffffff87;font-size:10px;line-height:1.35}.vehicle-setup-fields{display:grid;grid-template-columns:.65fr 1.4fr 1fr;gap:11px}.vehicle-setup section{display:grid;align-content:start;gap:6px}.vehicle-setup label{font-size:8px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:#ffffff78}.vehicle-segment{display:flex;gap:5px}.vehicle-segment button,.vehicle-setup select{height:34px;min-width:66px;padding:0 10px;border:1px solid #ffffff16;border-radius:10px;background:#ffffff0c;color:#fff;font-size:10px;font-weight:760}.vehicle-setup select{width:100%;color-scheme:dark}.vehicle-segment button.active{border-color:#ffffff68;background:#ffffff25;box-shadow:inset 0 1px #ffffff27}.vehicle-swatches{display:flex;align-items:center;gap:8px;height:34px}.vehicle-swatches button{width:25px;height:25px;padding:0;border:2px solid #ffffff43;border-radius:50%;background:var(--swatch);box-shadow:0 3px 9px #0008}.vehicle-swatches button.active{outline:2px solid #fff;outline-offset:2px}.vehicle-setup footer{display:flex;align-items:center;justify-content:flex-end;gap:8px}.vehicle-setup footer button{height:38px;padding:0 15px;border-radius:12px;font-size:10px;font-weight:820;white-space:nowrap}.vehicle-setup footer .primary{border:0;background:#fff;color:#111}.vehicle-setup footer .secondary{border:1px solid #ffffff25;background:#ffffff0e;color:#fff}.vehicle-setup footer span{position:absolute;right:18px;bottom:4px;color:#ff8590;font-size:8px}
.vehicle-pagination{position:absolute;z-index:8;left:50%;bottom:8px;transform:translateX(-50%);display:flex;align-items:center;gap:13px}.vehicle-pagination button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#fff;color:#111}.vehicle-pagination svg{width:16px;height:16px;fill:currentColor}.vehicle-pagination i{width:7px;height:7px;border-radius:50%;background:#ffffff65}.vehicle-home-open .swipe-hint,.vehicle-home-open .drive-topbar{visibility:hidden}
.vehicle-switcher{position:absolute;z-index:10;top:52px;left:clamp(18px,3vw,48px);pointer-events:auto;color:#fff}.vehicle-switcher>button{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 13px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(18,21,27,.46);box-shadow:0 15px 38px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(20px) saturate(1.3);font-size:14px;font-weight:760}.vehicle-switcher>button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}.vehicle-switcher>button[aria-expanded="true"] svg{transform:rotate(180deg)}.vehicle-switcher-menu{position:absolute;top:44px;left:0;width:238px;padding:7px;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(13,16,21,.68);box-shadow:0 24px 60px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.17);backdrop-filter:blur(25px) saturate(1.35)}.vehicle-switcher-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:40px;padding:0 11px;border:0;border-radius:10px;background:transparent;color:#fff;text-align:left}.vehicle-switcher-menu button:hover,.vehicle-switcher-menu button.active{background:rgba(255,255,255,.11)}.vehicle-switcher-menu button:last-child{margin-top:5px;border-top:1px solid rgba(255,255,255,.13);border-radius:0 0 10px 10px;color:rgba(255,255,255,.78)}
.launcher-vehicle-home.has-new{position:relative}.launcher-vehicle-home.has-new::after{content:"";position:absolute;top:1px;right:1px;width:6px;height:6px;border-radius:50%;background:#e8c28e;box-shadow:0 0 10px #e8c28e}
@media(orientation:portrait){.vehicle-ambient{background-image:url('vehicles/studio-background-empty-v85.png');background-position:center;background-size:auto 100%}.vehicle-stage{inset:48px 0 86px;transform:translate3d(calc((1 - var(--vehicle-progress,0)) * -7vw),2vh,0)}.vehicle-composition{width:min(88vw,63vh);max-width:88vw}.vehicle-setup{bottom:40px;width:calc(100vw - 28px);grid-template-columns:1fr;gap:10px;padding:13px}.vehicle-setup header{display:none}.vehicle-setup-fields{grid-template-columns:.65fr 1.45fr 1fr}.vehicle-setup footer{position:absolute;right:13px;top:-47px}.vehicle-edit{right:5vw;bottom:94px}.vehicle-pagination{bottom:20px}.vehicle-switcher{top:48px}}
@media(max-width:700px){.vehicle-stage{inset:46px 0 94px}.vehicle-composition{width:min(86vw,61vh);max-width:86vw}.vehicle-setup{bottom:40px}.vehicle-setup-fields{gap:7px}.vehicle-segment button{min-width:0;padding:0 8px;font-size:9px}.vehicle-swatches{gap:6px}.vehicle-swatches button{width:22px;height:22px}.vehicle-edit{right:5vw;bottom:92px}}
body.vehicle-transition #catalogueSection::after{content:"";position:fixed;z-index:60;inset:0;background:rgba(0,0,0,calc(var(--vehicle-progress,0) * .4));pointer-events:none}
body.vehicle-transition .launcher-pages{transform:translate3d(calc(var(--vehicle-progress,0) * 32vw),0,0);opacity:1;filter:none;transition:transform .58s cubic-bezier(.2,.82,.2,1);will-change:transform}
body.vehicle-transition .launcher-dock{position:fixed!important;z-index:92!important;left:var(--vehicle-dock-left)!important;top:var(--vehicle-dock-top)!important;bottom:auto!important;width:var(--vehicle-dock-width)!important;height:var(--vehicle-dock-height)!important;transform:none!important}
body.vehicle-transition #appGrid>.launcher-pagination{position:fixed!important;z-index:92!important;left:var(--vehicle-pagination-left)!important;right:auto!important;top:var(--vehicle-pagination-top)!important;bottom:auto!important;width:var(--vehicle-pagination-width)!important;height:var(--vehicle-pagination-height)!important;margin:0!important;transform:none!important}
body.vehicle-transition .launcher-vehicle-home{border-radius:999px;background:rgba(255,255,255,.9)!important;color:#111!important;box-shadow:0 4px 16px rgba(0,0,0,.28)}
.vehicle-home.is-preview,.vehicle-home.is-preview .vehicle-stage,.vehicle-home.is-preview .vehicle-composition,.vehicle-home.is-returning,.vehicle-home.is-returning .vehicle-stage,.vehicle-home.is-returning .vehicle-composition,body:has(.vehicle-home.is-preview) .launcher-pages,body:has(.vehicle-home.is-returning) .launcher-pages{transition:none!important}
@media(prefers-reduced-motion:reduce){.vehicle-home,.vehicle-stage,.vehicle-composition,.vehicle-home::before,.vehicle-ambient,body.vehicle-transition .launcher-pages{transition:none}}

/* v85 — estúdio vazio; o veículo regressa apenas depois de o fundo ser aprovado. */
.vehicle-stage-empty{display:none!important}

/* v86 — a casa é a posição anterior à Página 1 e absorve o indicador ativo. */
#appGrid>.launcher-pagination .launcher-pagination-indicator{transition:transform .42s cubic-bezier(.2,.82,.2,1),width .42s cubic-bezier(.2,.82,.2,1),height .42s cubic-bezier(.2,.82,.2,1)!important}
body.vehicle-home-open #appGrid>.launcher-pagination .launcher-pagination-indicator{width:26px!important;height:26px!important;transform:translate3d(-34px,-50%,0)!important;border-radius:50%!important;box-shadow:0 4px 16px rgba(0,0,0,.28)!important}
body.vehicle-home-open #appGrid>.launcher-pagination .launcher-vehicle-home{position:relative;z-index:3;background:transparent!important;box-shadow:none!important}
body.vehicle-home-open #appGrid>.launcher-pagination .launcher-pagination-track button span{width:7px!important;height:7px!important;background:rgba(255,255,255,.48)!important;transform:none!important}


/* v87 — indicador contínuo e vinheta estável durante a passagem para a casa. */
body.vehicle-transition #catalogueSection::before{
  content:"";
  position:fixed;
  z-index:80;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.3) 0,rgba(0,0,0,.09) 15%,transparent 29%,transparent 69%,rgba(0,0,0,.12) 84%,rgba(0,0,0,.34) 100%);
  pointer-events:none
}
body.vehicle-transition #appGrid>.launcher-pagination .launcher-pagination-indicator{
  width:var(--vehicle-indicator-width,24px)!important;
  height:var(--vehicle-indicator-height,7px)!important;
  transform:translate3d(var(--vehicle-indicator-left,var(--indicator-left,-1px)),-50%,0)!important;
  border-radius:999px!important;
  box-shadow:0 3px 12px rgba(0,0,0,.3)!important;
  transition:transform .07s linear,width .07s linear,height .07s linear!important
}
body.vehicle-transition #appGrid>.launcher-pagination .launcher-vehicle-home{
  position:relative;
  z-index:3;
  background:transparent!important;
  color:var(--vehicle-home-icon-color,#fff)!important;
  box-shadow:none!important;
  transition:color .07s linear!important
}
body.vehicle-transition #appGrid>.launcher-pagination .launcher-pagination-track button span{
  width:7px!important;
  height:7px!important;
  background:rgba(255,255,255,.48)!important;
  transform:none!important
}


/* v88 — cruzamento luminoso: sem acumular sombras entre os dois fundos. */
body.vehicle-transition #catalogueSection::before,
body.vehicle-transition #catalogueSection::after{display:none!important}
.vehicle-home .vehicle-ambient{
  opacity:1!important;
  transition:transform .68s cubic-bezier(.2,.82,.2,1)!important
}


/* v97 — reflexo mais longo com desaparecimento progressivo no piso. */
.vehicle-composition--single{width:min(55vw,92vh,1050px);aspect-ratio:1668/943}
.vehicle-composition--single .vehicle-render{filter:drop-shadow(0 10px 8px rgba(0,0,0,.48)) contrast(1.02) saturate(1.02)}
.vehicle-home .vehicle-stage{transform:translate3d(calc((1 - var(--vehicle-progress,0)) * -9vw),9vh,0)}
.vehicle-floor-reflection--single{position:absolute;z-index:1;left:0;top:0;bottom:auto;width:100%;height:100%;object-fit:contain;object-position:center;transform:translateY(-1.2%) skewY(-9deg) scaleY(-.6);transform-origin:50% 85%;opacity:.44;filter:blur(.95px) brightness(1.16) contrast(1.06) saturate(.72);-webkit-mask-image:linear-gradient(to bottom,transparent 4%,rgba(0,0,0,.06) 22%,rgba(0,0,0,.22) 42%,rgba(0,0,0,.58) 60%,rgba(0,0,0,.9) 76%,#000 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 4%,rgba(0,0,0,.06) 22%,rgba(0,0,0,.22) 42%,rgba(0,0,0,.58) 60%,rgba(0,0,0,.9) 76%,#000 84%,transparent 100%);pointer-events:none}
.vehicle-floor-reflection--front{clip-path:inset(0 60% 0 0);transform-origin:22% 82.9%;transform:skewY(9deg) scaleY(-.6)}
.vehicle-floor-reflection--main{clip-path:inset(0 0 0 40%);transform-origin:50% 85%;transform:translateY(-1.2%) skewY(-9deg) scaleY(-.6)}
.vehicle-home.is-closing{opacity:0!important;transition:none!important}
.vehicle-home.is-closing::before,.vehicle-home.is-closing .vehicle-ambient,.vehicle-home.is-closing .vehicle-stage{opacity:0!important;transition:none!important}
@media(orientation:portrait){.vehicle-composition--single{width:min(82vw,54vh);max-width:82vw}}
@media(max-width:700px){.vehicle-composition--single{width:min(82vw,52vh);max-width:82vw}}

/* v100: contacto ao piso e enquadramento horizontal ligeiramente maior. */
.vehicle-contact-shadow{position:absolute;z-index:1;left:6.5%;right:4.5%;top:78.7%;height:10.2%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.72) 0%,rgba(0,0,0,.56) 27%,rgba(0,0,0,.3) 53%,rgba(0,0,0,.1) 70%,transparent 84%);filter:blur(7px);transform:skewY(-1.5deg);opacity:.88;pointer-events:none}
.vehicle-contact-shadow::before{content:"";position:absolute;inset:28% 4% 9%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.7),rgba(0,0,0,.25) 58%,transparent 78%);filter:blur(4px)}
@media(orientation:landscape){.vehicle-composition--single{width:min(60vw,100vh,1160px)}}
@media(orientation:portrait){.vehicle-home .vehicle-stage{transform:translate3d(calc((1 - var(--vehicle-progress,0)) * -7vw),8vh,0)}}
@media(max-width:700px){.vehicle-home .vehicle-stage{transform:translate3d(calc((1 - var(--vehicle-progress,0)) * -7vw),6vh,0)}}

/* v98 — seletor de veículo ligado aos carros da conta. */
.vehicle-home .vehicle-switcher{
  top:clamp(64px,6.8vh,86px);
  left:clamp(26px,3vw,48px);
  width:min(292px,calc(100vw - 52px));
  color:#fff
}
.vehicle-home .vehicle-switcher>button{
  display:grid;
  grid-template-columns:minmax(0,1fr) 18px;
  align-items:start;
  gap:12px;
  width:100%;
  min-height:80px;
  padding:12px 13px 11px 15px;
  border:1px solid transparent;
  border-radius:15px;
  background:rgba(11,14,19,.18);
  box-shadow:none;
  color:#fff;
  text-align:left;
  backdrop-filter:blur(7px) saturate(1.08);
  -webkit-backdrop-filter:blur(7px) saturate(1.08);
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease
}
.vehicle-home .vehicle-switcher>button:hover,
.vehicle-home .vehicle-switcher>button[aria-expanded="true"]{
  border-color:rgba(255,255,255,.14);
  background:rgba(12,15,20,.52);
  box-shadow:0 18px 48px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.08);
  backdrop-filter:blur(22px) saturate(1.18);
  -webkit-backdrop-filter:blur(22px) saturate(1.18)
}
.vehicle-switcher-copy{display:grid;min-width:0;gap:2px}
.vehicle-switcher-copy strong{overflow:hidden;color:#fff;font-size:21px;font-weight:780;line-height:1.08;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap}
.vehicle-switcher-copy small{overflow:hidden;color:rgba(255,255,255,.62);font-size:11px;font-weight:610;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.vehicle-switcher-copy em,.vehicle-switcher-menu em{display:flex;align-items:center;gap:4px;width:max-content;margin-top:4px;padding:2px 6px;border:1px solid rgba(110,165,255,.3);border-radius:999px;background:rgba(33,105,245,.15);color:#8dbaff;font-size:8px;font-style:normal;font-weight:800;line-height:1.25;letter-spacing:.01em}
.vehicle-switcher-copy em i,.vehicle-switcher-menu em i{font-size:7px;font-style:normal}
.vehicle-home .vehicle-switcher>button>svg{align-self:start;width:18px;height:18px;margin-top:2px;color:rgba(255,255,255,.74)}
.vehicle-home .vehicle-switcher-menu{
  top:calc(100% + 8px);
  left:0;
  width:100%;
  max-height:min(330px,calc(100vh - 190px));
  overflow:auto;
  padding:7px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  background:rgba(10,13,18,.76);
  box-shadow:0 28px 70px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.1);
  backdrop-filter:blur(28px) saturate(1.24);
  -webkit-backdrop-filter:blur(28px) saturate(1.24)
}
.vehicle-home .vehicle-switcher-menu button{align-items:center;min-height:58px;padding:8px 10px;gap:10px;border-radius:11px}
.vehicle-home .vehicle-switcher-menu button>span{display:grid;min-width:0;gap:1px}
.vehicle-home .vehicle-switcher-menu button b{overflow:hidden;font-size:12px;font-weight:780;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.vehicle-home .vehicle-switcher-menu button small{overflow:hidden;color:rgba(255,255,255,.55);font-size:9px;font-weight:560;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.vehicle-home .vehicle-switcher-menu button.active{background:rgba(255,255,255,.105)}
.vehicle-switcher-check{display:grid;flex:0 0 21px;place-items:center;width:21px;height:21px;border-radius:50%;background:#fff;color:#111;font-size:11px;font-style:normal;font-weight:900}
.vehicle-home .vehicle-switcher-menu button[data-vehicle-manage]{min-height:42px;margin-top:6px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.75)}
.vehicle-home .vehicle-switcher-menu button[data-vehicle-manage]>i{font-size:20px;font-style:normal;font-weight:400}
.vehicle-home .vehicle-switcher-menu button[data-vehicle-add]{min-height:42px;margin-top:6px;border-top:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.07);color:#fff}
.vehicle-home .vehicle-switcher-menu button[data-vehicle-add]>i{font-size:17px;font-style:normal;font-weight:650}
.vehicle-home .vehicle-switcher-menu button[data-vehicle-add]+button[data-vehicle-manage]{margin-top:0;border-top:0}
@media(orientation:portrait){
  .vehicle-home .vehicle-switcher{top:58px;left:18px;width:min(258px,calc(100vw - 36px))}
  .vehicle-home .vehicle-switcher>button{min-height:72px;padding:10px 11px 9px 13px}
  .vehicle-switcher-copy strong{font-size:18px}
}
@media(max-width:700px){
  .vehicle-home .vehicle-switcher{top:54px;left:14px;width:min(244px,calc(100vw - 28px))}
  .vehicle-home .vehicle-switcher>button{min-height:68px}
  .vehicle-switcher-copy strong{font-size:17px}
  .vehicle-switcher-copy small{font-size:10px}
}

/* v153 — clear the dock while preserving the car/floor perspective. */
.vehicle-home .vehicle-stage{transform:translate3d(calc((1 - var(--vehicle-progress,0)) * -9vw),3vh,0)}
.vehicle-home .vehicle-ambient{background-position:center calc(50% - 6vh)}
.vehicle-home .vehicle-stage[hidden]{display:none!important}
.vehicle-welcome{position:absolute;z-index:9;left:50%;top:45%;transform:translate(-50%,-50%);width:min(440px,86vw);padding:26px;border-radius:24px;background:#13161bba;color:white;border:1px solid #ffffff22;backdrop-filter:blur(24px);text-align:center}
.vehicle-welcome h2{margin:0 0 12px;font-size:24px}.vehicle-welcome p{line-height:1.5;color:#bec6cf}.vehicle-welcome button{border:0;border-radius:14px;padding:14px 24px;background:#2787ff;color:white;font-weight:700}
.launcher-vehicle-home.has-new::after{background:#328aff;box-shadow:0 0 10px #328aff80}

/* v162 — apresentação próxima do visualizador 3D Tesla: reflexo profundo e contacto escuro. */
.vehicle-composition--single .vehicle-render{
  filter:drop-shadow(0 13px 10px rgba(0,0,0,.58)) brightness(.98) contrast(1.07) saturate(1.03)
}
.vehicle-floor-reflection--single{
  opacity:.58;
  filter:blur(1.05px) brightness(.68) contrast(1.2) saturate(.76);
  -webkit-mask-image:linear-gradient(to bottom,transparent 3%,rgba(0,0,0,.08) 20%,rgba(0,0,0,.34) 38%,rgba(0,0,0,.76) 58%,#000 76%,rgba(0,0,0,.82) 86%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 3%,rgba(0,0,0,.08) 20%,rgba(0,0,0,.34) 38%,rgba(0,0,0,.76) 58%,#000 76%,rgba(0,0,0,.82) 86%,transparent 100%)
}
.vehicle-contact-shadow{
  top:78.2%;
  height:11.5%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.94) 0%,rgba(0,0,0,.76) 29%,rgba(0,0,0,.46) 54%,rgba(0,0,0,.16) 72%,transparent 86%);
  filter:blur(8px);
  opacity:.98
}
.vehicle-contact-shadow::before{
  background:radial-gradient(ellipse at center,rgba(0,0,0,.9),rgba(0,0,0,.42) 58%,transparent 80%)
}

/* v163 — reflexo contínuo: as rodas ficam presas ao respetivo ponto de contacto. */
.vehicle-floor-reflection--front{display:none!important}
.vehicle-floor-reflection--main{
  clip-path:none;
  transform-origin:50% 86.7%;
  transform:scaleY(-.54);
  opacity:.54;
  filter:blur(.85px) brightness(.64) contrast(1.22) saturate(.72);
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.08) 17%,rgba(0,0,0,.32) 35%,rgba(0,0,0,.74) 57%,#000 78%,rgba(0,0,0,.76) 88%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.08) 17%,rgba(0,0,0,.32) 35%,rgba(0,0,0,.74) 57%,#000 78%,rgba(0,0,0,.76) 88%,transparent 100%)
}

/* v164 — perspetiva independente para os dois pontos de contacto das rodas. */
.vehicle-floor-reflection--front{
  display:block!important;
  clip-path:inset(0 39% 0 0);
  transform-origin:38% 87.55%;
  transform:translateY(.15%) skewX(-1.8deg) scaleX(.985) scaleY(-.52);
  opacity:.53;
  filter:blur(.8px) brightness(.62) contrast(1.24) saturate(.7);
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.08) 17%,rgba(0,0,0,.34) 36%,rgba(0,0,0,.76) 58%,#000 78%,rgba(0,0,0,.72) 89%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.08) 17%,rgba(0,0,0,.34) 36%,rgba(0,0,0,.76) 58%,#000 78%,rgba(0,0,0,.72) 89%,transparent 100%)
}
.vehicle-floor-reflection--main{
  clip-path:inset(0 0 0 57%);
  transform-origin:79% 81.75%;
  transform:translateY(.05%) skewX(-.55deg) scaleX(.995) scaleY(-.5);
  opacity:.55
}
.vehicle-contact-shadow::after{
  content:"";
  position:absolute;
  left:38%;
  top:8%;
  width:24%;
  height:58%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.98) 0%,rgba(0,0,0,.74) 42%,rgba(0,0,0,.24) 69%,transparent 84%);
  filter:blur(4.5px);
  transform:rotate(-2deg)
}

/* v165 — contacto traseiro fechado, reflexo dianteiro alongado e base totalmente sombreada. */
.vehicle-floor-reflection--front{
  clip-path:ellipse(76% 68% at 36% 84%);
  transform-origin:38% 87.65%;
  transform:translateY(.08%) skewX(-1.35deg) scaleX(.99) scaleY(-.61);
  opacity:.55
}
.vehicle-floor-reflection--main{
  transform-origin:79% 81.15%;
  transform:translateY(-.22%) skewX(-.45deg) scaleX(.997) scaleY(-.53);
  opacity:.57
}
.vehicle-contact-shadow{
  left:3.5%;
  right:2.5%;
  top:76.9%;
  height:15.2%;
  background:radial-gradient(ellipse at 51% 43%,rgba(0,0,0,.96) 0%,rgba(0,0,0,.82) 30%,rgba(0,0,0,.58) 53%,rgba(0,0,0,.27) 70%,transparent 88%);
  filter:blur(10px)
}
.vehicle-contact-shadow::before{
  inset:16% 2% 5%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.94),rgba(0,0,0,.58) 55%,rgba(0,0,0,.18) 73%,transparent 86%);
  filter:blur(6px)
}

/* v166 — elimina a duplicação traseira e separa as duas perspetivas sem sobreposição. */
.vehicle-floor-reflection--front{
  clip-path:inset(0 44% 0 0);
  transform-origin:38% 87.5%;
  transform:translateY(.02%) skewX(-2.2deg) scaleX(.99) scaleY(-.69);
  opacity:.56;
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.1) 16%,rgba(0,0,0,.38) 34%,rgba(0,0,0,.82) 57%,#000 76%,rgba(0,0,0,.7) 90%,transparent 100%),radial-gradient(ellipse 78% 72% at 34% 81%,#000 0 64%,rgba(0,0,0,.82) 75%,transparent 94%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.1) 16%,rgba(0,0,0,.38) 34%,rgba(0,0,0,.82) 57%,#000 76%,rgba(0,0,0,.7) 90%,transparent 100%),radial-gradient(ellipse 78% 72% at 34% 81%,#000 0 64%,rgba(0,0,0,.82) 75%,transparent 94%);
  mask-composite:intersect
}
.vehicle-floor-reflection--main{
  clip-path:inset(0 0 0 56%);
  transform-origin:79% 80.85%;
  transform:translateY(-.34%) skewX(-.38deg) scaleX(.997) scaleY(-.55);
  opacity:.56
}

/* v167 — reflexo contínuo em três pontos, com zonas sobrepostas e sem cortes verticais. */
.vehicle-floor-reflection--bumper,
.vehicle-floor-reflection--front-wheel,
.vehicle-floor-reflection--rear-wheel{
  opacity:.56;
  filter:blur(.82px) brightness(.64) contrast(1.21) saturate(.72)
}

.vehicle-floor-reflection--bumper{
  clip-path:inset(0 56% 0 0);
  transform-origin:22% 80.7%;
  transform:translateY(-.08%) skewX(-2.8deg) scaleX(.985) scaleY(-.76);
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.1) 15%,rgba(0,0,0,.4) 34%,rgba(0,0,0,.86) 57%,#000 76%,rgba(0,0,0,.68) 91%,transparent 100%),linear-gradient(to right,#000 0 30%,rgba(0,0,0,.9) 34%,rgba(0,0,0,.45) 39%,transparent 44%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.1) 15%,rgba(0,0,0,.4) 34%,rgba(0,0,0,.86) 57%,#000 76%,rgba(0,0,0,.68) 91%,transparent 100%),linear-gradient(to right,#000 0 30%,rgba(0,0,0,.9) 34%,rgba(0,0,0,.45) 39%,transparent 44%);
  mask-composite:intersect
}

/* v168 — um único reflexo contínuo, deformado por uma curva de contacto de três pontos. */
.vehicle-floor-reflection--mesh{
  position:absolute;
  z-index:0;
  left:0;
  top:0;
  bottom:auto;
  display:block;
  width:100%;
  height:auto;
  object-fit:initial;
  object-position:initial;
  transform:none;
  transform-origin:initial;
  opacity:1;
  filter:none;
  clip-path:none;
  -webkit-mask-image:none;
  mask-image:none;
  pointer-events:none
}
.vehicle-floor-reflection--fallback{
  position:absolute;
  z-index:0;
  left:0;
  top:0;
  bottom:auto;
  width:100%;
  height:100%;
  object-fit:contain;
  transform-origin:50% 86%;
  transform:scaleY(-.56);
  opacity:.42;
  filter:blur(.9px) brightness(.64) saturate(.74);
  -webkit-mask-image:linear-gradient(to bottom,transparent 3%,rgba(0,0,0,.1) 24%,rgba(0,0,0,.54) 54%,#000 78%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 3%,rgba(0,0,0,.1) 24%,rgba(0,0,0,.54) 54%,#000 78%,transparent 100%)
}
.vehicle-composition--single .vehicle-contact-shadow{z-index:1}
.vehicle-composition--single .vehicle-render{z-index:2}
.vehicle-floor-reflection--front-wheel{
  clip-path:inset(0 30% 0 24%);
  transform-origin:49% 87.55%;
  transform:translateY(.02%) skewX(-1.55deg) scaleX(.992) scaleY(-.68);
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.1) 16%,rgba(0,0,0,.38) 34%,rgba(0,0,0,.82) 57%,#000 77%,rgba(0,0,0,.7) 90%,transparent 100%),linear-gradient(to right,transparent 20%,rgba(0,0,0,.45) 25%,#000 32%,#000 61%,rgba(0,0,0,.45) 66%,transparent 71%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.1) 16%,rgba(0,0,0,.38) 34%,rgba(0,0,0,.82) 57%,#000 77%,rgba(0,0,0,.7) 90%,transparent 100%),linear-gradient(to right,transparent 20%,rgba(0,0,0,.45) 25%,#000 32%,#000 61%,rgba(0,0,0,.45) 66%,transparent 71%);
  mask-composite:intersect
}
.vehicle-floor-reflection--rear-wheel{
  clip-path:inset(0 0 0 58%);
  transform-origin:79% 80.8%;
  transform:translateY(-.36%) skewX(-.35deg) scaleX(.998) scaleY(-.55);
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.09) 17%,rgba(0,0,0,.34) 35%,rgba(0,0,0,.77) 58%,#000 78%,rgba(0,0,0,.74) 89%,transparent 100%),linear-gradient(to right,transparent 53%,rgba(0,0,0,.45) 58%,#000 65%,#000 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.09) 17%,rgba(0,0,0,.34) 35%,rgba(0,0,0,.77) 58%,#000 78%,rgba(0,0,0,.74) 89%,transparent 100%),linear-gradient(to right,transparent 53%,rgba(0,0,0,.45) 58%,#000 65%,#000 100%);
  mask-composite:intersect
}

/* v170 — o estúdio cobre sempre o viewport dinâmico, incluindo a zona sob a dock. */
html:has(body.vehicle-home-open){
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden!important;
  overscroll-behavior:none
}
body.vehicle-home-open{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden!important;
  overscroll-behavior:none
}
@supports (height:100dvh){
  html:has(body.vehicle-home-open),
  body.vehicle-home-open{
    height:100dvh;
    min-height:100dvh;
    max-height:100dvh
  }
}
.vehicle-home{
  width:100vw;
  height:100vh;
  min-height:100vh;
  max-height:100vh;
  overflow:hidden;
  overscroll-behavior:none
}
@supports (height:100dvh){
  .vehicle-home{
    width:100dvw;
    height:100dvh;
    min-height:100dvh;
    max-height:100dvh
  }
}
.vehicle-home .vehicle-ambient{
  top:-6vh;
  right:-1px;
  bottom:calc(-1px - env(safe-area-inset-bottom));
  left:-1px;
  width:auto;
  height:auto;
  min-width:calc(100% + 2px);
  min-height:calc(100% + 6vh + env(safe-area-inset-bottom) + 1px);
  background-position:center!important;
  background-size:cover!important
}

/* v171 — carrossel: o carro, a sombra e o reflexo deslocam-se como uma única peça. */
.vehicle-carousel{
  position:absolute;
  inset:0;
  overflow:visible;
  pointer-events:none
}
.vehicle-carousel-slide{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  opacity:1;
  transform:translate3d(0,0,0);
  transition:transform 620ms cubic-bezier(.22,.74,.18,1);
  will-change:transform
}
.vehicle-carousel .vehicle-carousel-slide--incoming{
  transform:translate3d(112vw,0,0)
}
.vehicle-carousel.is-running .vehicle-carousel-slide--outgoing{
  transform:translate3d(-112vw,0,0)
}
.vehicle-carousel.is-running .vehicle-carousel-slide--incoming{
  transform:translate3d(0,0,0)
}
.vehicle-home.is-carousel-moving .vehicle-switcher-menu{
  pointer-events:none
}
@media(prefers-reduced-motion:reduce){
  .vehicle-carousel-slide{transition:none!important}
}
/* v172: compact catalogue-driven add/edit controls anchored inside the lounge. */
.vehicle-inline-editor{
  position:absolute;
  z-index:12;
  top:max(58px,calc(env(safe-area-inset-top) + 42px));
  left:50%;
  width:min(820px,calc(100vw - 360px));
  transform:translateX(-50%);
  display:grid;
  justify-items:center;
  gap:7px;
  color:#fff;
  pointer-events:auto
}
.vehicle-editor-models,
.vehicle-editor-paints,
.vehicle-editor-meta,
.vehicle-editor-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px
}
.vehicle-editor-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vehicle-editor-models button,
.vehicle-editor-meta select,
.vehicle-editor-actions button{
  min-height:34px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(17,20,26,.28);
  box-shadow:inset 0 1px rgba(255,255,255,.1),0 10px 30px rgba(0,0,0,.16);
  color:rgba(255,255,255,.72);
  font:750 11px/1 system-ui,sans-serif;
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2)
}
.vehicle-editor-models button:hover,
.vehicle-editor-models button.active,
.vehicle-editor-models button[aria-pressed="true"]{
  border-color:rgba(255,255,255,.48);
  background:rgba(255,255,255,.17);
  color:#fff
}
.vehicle-editor-paints button{
  position:relative;
  width:25px;
  height:25px;
  padding:0;
  border:2px solid rgba(255,255,255,.36);
  border-radius:50%;
  background:var(--editor-paint);
  box-shadow:0 5px 13px rgba(0,0,0,.38)
}
.vehicle-editor-paints button.active,
.vehicle-editor-paints button[aria-pressed="true"]{
  outline:2px solid #fff;
  outline-offset:2px
}
.vehicle-editor-meta{padding:4px 7px;border-radius:16px;background:rgba(13,16,21,.2);backdrop-filter:blur(14px)}
.vehicle-editor-meta label{display:flex;align-items:center;gap:5px;color:rgba(255,255,255,.56);font:700 8px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.vehicle-editor-meta select{min-height:29px;padding:0 9px;color-scheme:dark}
.vehicle-editor-actions{position:absolute;top:0;left:calc(100% + 10px);justify-content:flex-start}
.vehicle-editor-actions button{padding:0 12px;white-space:nowrap}
.vehicle-editor-actions [data-editor-save]{background:rgba(255,255,255,.92);color:#101216}
.vehicle-editor-optional{position:relative;color:#fff;font:700 10px/1 system-ui,sans-serif}
.vehicle-editor-optional summary{min-height:29px;padding:0 11px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(17,20,26,.25);color:rgba(255,255,255,.7);box-shadow:inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(16px);cursor:pointer;list-style:none}
.vehicle-editor-optional summary::-webkit-details-marker{display:none}
.vehicle-editor-optional[open] summary{border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.14);color:#fff}
.vehicle-editor-optional>div{position:absolute;z-index:4;top:calc(100% + 7px);left:50%;width:min(820px,calc(100vw - 32px));transform:translateX(-50%);display:grid;grid-template-columns:1fr 1.3fr 1fr 1.15fr .8fr;gap:7px;padding:9px;border:1px solid rgba(255,255,255,.17);border-radius:17px;background:rgba(10,13,18,.82);box-shadow:0 22px 60px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.1);backdrop-filter:blur(25px) saturate(1.2)}
.vehicle-editor-optional label{display:grid;gap:5px;color:rgba(255,255,255,.57);font:750 8px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.vehicle-editor-optional input{box-sizing:border-box;width:100%;min-width:0;height:32px;padding:0 9px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.07);color:#fff;color-scheme:dark;font:650 10px/1 system-ui,sans-serif;outline:0}
.vehicle-editor-optional input:focus{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.11)}
.vehicle-inline-editor [disabled]{opacity:.52;cursor:wait}
.vehicle-inline-editor[aria-busy="true"] .vehicle-editor-optional summary{opacity:.52;cursor:wait}
.vehicle-home.is-editing-vehicle .vehicle-stage{top:138px}
@media(max-width:1200px){
  .vehicle-editor-actions{position:static}
}
@media(max-width:900px){
  .vehicle-inline-editor{top:max(52px,calc(env(safe-area-inset-top) + 36px));width:min(620px,calc(100vw - 250px))}
  .vehicle-editor-models button{padding:0 10px}
}
@media(max-width:700px){
  .vehicle-home.is-editing-vehicle .vehicle-switcher{display:none}
  .vehicle-inline-editor{top:max(48px,calc(env(safe-area-inset-top) + 34px));width:calc(100vw - 24px);gap:6px}
  .vehicle-editor-models,.vehicle-editor-meta{gap:5px}
  .vehicle-editor-models button{min-height:31px;padding:0 9px;font-size:10px}
  .vehicle-editor-meta{width:100%;max-width:100%;flex-wrap:wrap;overflow:visible;justify-content:center}
  .vehicle-editor-meta label{min-width:0}
  .vehicle-editor-meta select{max-width:150px}
  .vehicle-editor-optional>div{grid-template-columns:1fr 1fr;width:calc(100vw - 24px);max-height:42vh;overflow:auto}
}
