/* Roboto — auto-hébergée par myve.fr (SIL OFL 1.1).
   Les fichiers sont installés localement sur le VPS et ne sont pas chargés depuis Google Fonts. */
:root{font-family:"Roboto",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f4f7fb;background:#040d16;--panel:#091827;--line:#17324a;--muted:#8fa1b3;--accent:#46d3ff;--green:#5de6b0;--warn:#ffd166}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% 0,#103150 0,transparent 28%),linear-gradient(180deg,#03101c,#06111b 45%,#02070c)}button,input{font:inherit}.wrap{width:min(1120px,calc(100% - 28px));margin:auto}.top{display:flex;justify-content:space-between;align-items:center;padding:22px 0}.brand{font-size:22px;font-weight:800}.brand span{color:var(--accent)}.pill{border:1px solid var(--line);background:#091827b8;color:#cdd9e5;padding:9px 12px;border-radius:999px}.hero{padding:68px 0 42px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.hero h1{font-size:clamp(44px,7vw,78px);line-height:.98;margin:0 0 20px}.hero p{font-size:19px;color:#a8bacb;line-height:1.6}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{border:0;border-radius:16px;padding:14px 18px;font-weight:750;cursor:pointer;background:linear-gradient(135deg,#48dcff,#4f91ff);color:#00101c}.btn.secondary{background:#0c1c2c;color:#eef6ff;border:1px solid var(--line)}.btn.danger{background:#2a1118;color:#ffb8c3;border:1px solid #62303b}.carCard,.card{background:linear-gradient(160deg,#0b2034cc,#07131fcc);border:1px solid #1c3b55;border-radius:28px;box-shadow:0 30px 80px #0008}.carCard{padding:22px}.carCard img{width:100%;border-radius:22px;background:#fff;display:block}.small{font-size:13px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature{padding:20px}.feature b{display:block;font-size:17px;margin-bottom:8px}.appShell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{padding:26px 18px;border-right:1px solid var(--line);background:#06111bd9;position:sticky;top:0;height:100vh}.nav{display:grid;gap:8px;margin-top:32px}.nav button{background:transparent;border:0;text-align:left;color:#b7c5d3;padding:12px;border-radius:12px;cursor:pointer}.nav button.active,.nav button:hover{background:#102538;color:white}.main{padding:28px}.headrow{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:24px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{padding:18px}.stat strong{display:block;font-size:28px;margin-top:8px}.vehicleList{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.vehicle{padding:18px;cursor:pointer}.vehicle:hover{border-color:#3a7aa6}.vehicle img{width:100%;border-radius:18px;background:white}.modal{position:fixed;inset:0;background:#000a;display:grid;place-items:center;padding:18px;z-index:20}.modal .box{width:min(520px,100%);background:#081725;border:1px solid var(--line);border-radius:24px;padding:24px}.field{display:grid;gap:7px;margin:14px 0}.field input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid #24445d;background:#05111c;color:white}.steps{display:flex;gap:8px;margin:12px 0 18px}.dot{height:6px;flex:1;background:#173149;border-radius:99px}.dot.on{background:var(--accent)}.notice{padding:13px;border-radius:13px;background:#132437;border:1px solid #29445d;color:#b9c8d7}.ok{color:var(--green)}.warn{color:var(--warn)}.empty{padding:42px;text-align:center;color:#91a2b2}.dashHero{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dashHero .carCard img{max-height:330px;object-fit:contain}.big{font-size:56px;font-weight:800}.statusline{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tag{padding:8px 10px;border-radius:999px;background:#102438;border:1px solid #20415c;color:#c6d6e3}.footer{padding:40px 0;color:#74899b;text-align:center}@media(max-width:850px){.hero,.dashHero{grid-template-columns:1fr}.grid,.cards{grid-template-columns:1fr 1fr}.appShell{display:block}.side{height:auto;position:static;border-right:0;border-bottom:1px solid var(--line)}.nav{display:flex;overflow:auto}.vehicleList{grid-template-columns:1fr}}@media(max-width:520px){.grid,.cards{grid-template-columns:1fr}.hero{padding-top:35px}.main{padding:18px}.top{padding:16px 0}.side{padding:18px}}
.roleBadge{display:inline-flex;align-items:center;gap:7px;border:1px solid #265272;background:#0b2134;color:#bbd8ed;padding:7px 10px;border-radius:999px;font-size:12px;margin-top:8px}.liveBadge{color:#68efb8}.stateRows{display:grid;gap:10px;margin-top:16px}.stateRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #163149}.stateRow:last-child{border-bottom:0}.controlPanel{margin-top:18px;padding:18px}.controlGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.btn.good{background:linear-gradient(135deg,#6af2ba,#48c78e);color:#02120c}.btn.off{background:#15212b;color:#c8d3dc;border:1px solid #314452}.fresh{color:#5de6b0}.stale{color:#ffd166}.connectorErr{white-space:pre-wrap;overflow-wrap:anywhere}.adminHint{border-color:#315e7b;background:#0b2234}.realCard{box-shadow:0 25px 80px #00d7a31c}.divider{height:1px;background:#17324a;margin:18px 0}@media(max-width:520px){.controlGrid{grid-template-columns:1fr}}

/* Vehicle colour selector */
.carColorPreview{width:100%;max-height:230px;object-fit:contain;border-radius:18px;background:#fff;margin:4px 0 10px}.appearancePanel{margin-top:18px;padding:18px}.colorChoices{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:10px 0 14px}.colorChoice{border:1px solid #27445a;background:#081724;color:#dce8f2;border-radius:14px;padding:10px 6px;display:grid;place-items:center;gap:7px;cursor:pointer;font-size:12px}.colorChoice:hover{border-color:#4e829f}.colorChoice.active{border-color:var(--accent);box-shadow:0 0 0 2px #46d3ff24;background:#0e2638}.colorDot{width:28px;height:28px;border-radius:999px;border:2px solid #ffffff55;box-shadow:inset 0 2px 5px #fff3,0 3px 9px #0007}.color-blue{background:#1777d5}.color-black{background:#191c20}.color-red{background:#d7352f}.color-green{background:#30a94a}.color-white{background:#f3f3ee}.color-yellow{background:#e6c928}.color-gray{background:#8d949a}.appearancePanel #appearanceMsg{margin-left:10px}.vehicle img{transition:.25s transform}.vehicle:hover img{transform:scale(1.015)}
@media(max-width:600px){.colorChoices{grid-template-columns:repeat(5,1fr);gap:5px}.colorChoice{padding:8px 2px;font-size:12px}.colorDot{width:24px;height:24px}}


/* Soutien facultatif PayPal — 0.4 */
a.supportBtn,a.supportPrimary{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.supportStrip{margin:28px 0 8px;padding:22px 24px;border:1px solid #305071;border-radius:24px;background:linear-gradient(135deg,#0b2034d9,#101b31d9);display:flex;justify-content:space-between;align-items:center;gap:24px}.supportStrip h2{margin:4px 0 6px}.supportStrip p{margin:0;color:#a8bacb;max-width:680px;line-height:1.55}.supportPrimary{margin-top:18px;background:linear-gradient(135deg,#ffd76a,#ffb74e)!important;color:#211300!important;white-space:nowrap}.supportStrip .supportPrimary{margin-top:0}.supportBox p{color:#b8c7d5;line-height:1.6}.supportBox .supportPrimary{width:100%}@media(max-width:700px){.supportStrip{align-items:flex-start;flex-direction:column}.supportStrip .supportPrimary{width:100%}}

/* 0.5 Vehicle Control */
.wide{width:100%}.backLink{border:0;background:transparent;color:#8fb5cf;padding:0 0 8px;cursor:pointer}.backLink:hover{color:#fff}.vehicleTabs{display:flex;gap:8px;overflow:auto;padding:3px 0 18px;scrollbar-width:none}.vehicleTabs button{white-space:nowrap;border:1px solid var(--line);background:#081724;color:#9db1c2;border-radius:999px;padding:10px 14px;cursor:pointer}.vehicleTabs button.active{background:#12314a;color:#fff;border-color:#2f668d}.vehiclePane{display:none}.vehiclePane.active{display:block}.compactCards{margin-top:14px}.batteryCard .big span{font-size:24px}.quickCard{margin-top:18px;padding:20px}.quickActions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sectionGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.controlPanel,.climateCard{padding:20px}.field select,.field input[type=time],.field input[type=number],select{width:100%;padding:13px 14px;border-radius:12px;border:1px solid #24445d;background:#05111c;color:white}.checkRow{display:flex;align-items:center;gap:10px;margin:14px 0;color:#cbd7e2}.checkRow input{width:18px;height:18px}.timeGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.timeGrid label{display:grid;gap:7px;color:#9fb1c1;font-size:13px}.climateCard{text-align:center}.climateOrb{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;margin:12px auto 18px;font-size:42px;background:#0b1f30;border:1px solid #24455d;box-shadow:0 0 0 10px #0c20301a}.climateOrb.on{box-shadow:0 0 50px #46d3ff55,0 0 0 10px #46d3ff17;border-color:#46d3ff}.geoBox{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:13px;border-radius:16px;background:#071725;border:1px solid #17364e}.miniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.miniStats>div{padding:14px;background:#071522;border:1px solid #16324a;border-radius:16px}.miniStats span{display:block;color:#8399aa;font-size:12px}.miniStats strong{display:block;margin-top:6px}.barChart{height:130px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;margin:20px 0}.barItem{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.barValue{width:70%;min-height:3px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#5de6b0,#38a8f0)}.barItem span{font-size:12px;color:#8095a6}.sessionList{display:grid}.sessionRow{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #17324a}.sessionRow>div{display:grid;gap:3px}.sessionRow span{color:#8fa1b3;font-size:12px}.diagnosticBox{white-space:pre-wrap;overflow:auto;max-height:380px;background:#030a10;border:1px solid #17324a;border-radius:14px;padding:14px;color:#b8d2e5}.btn:disabled{opacity:.45;cursor:not-allowed}.supportPrimary{background:linear-gradient(135deg,#ffd76a,#ffb74e)!important;color:#211300!important}

/* Mobile onboarding: content scrolls, CTA remains reachable above keyboard. */
.modal{align-items:center}.modal .box{max-height:min(92dvh,760px);display:flex;flex-direction:column;overflow:hidden}.modalScroll{overflow-y:auto;overscroll-behavior:contain;padding-right:2px;min-height:0}.modalActions{position:sticky;bottom:0;padding-top:12px;margin-top:auto;background:linear-gradient(180deg,transparent,#081725 24%);z-index:2}.modalActions .btn{min-height:50px}
@media(max-width:850px){.sectionGrid{grid-template-columns:1fr}.quickActions{grid-template-columns:1fr 1fr}.miniStats{grid-template-columns:1fr 1fr}.geoBox{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.quickActions,.timeGrid,.miniStats{grid-template-columns:1fr}.vehicleTabs{margin-left:-4px;margin-right:-4px}.modal{padding:8px;align-items:flex-end}.modal .box{width:100%;max-height:94dvh;border-radius:22px 22px 12px 12px;padding:18px}.modalActions{padding-bottom:max(2px,env(safe-area-inset-bottom))}.sessionRow{align-items:flex-start;flex-direction:column}.barChart{gap:4px}.geoBox .btn{width:100%}}

/* 1.0 — Assistant véhicule: scroll interne + CTA toujours visible */
.modal{
  overflow:hidden;
  align-items:center;
}

.modal .box{
  width:min(560px,100%);
  max-height:calc(100dvh - 32px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.modal .headrow,
.modal .steps,
.modal .modalActions{
  flex:0 0 auto;
}
.modalScroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-right:6px;
  scrollbar-gutter:stable;
}
.modalActions{
  position:relative;
  bottom:auto;
  margin-top:12px;
  padding-top:14px;
  border-top:1px solid #17324a;
  background:#081725;
  z-index:3;
}
.modalActions .btn{
  width:100%;
  min-height:52px;
}
.modal .carColorPreview{
  max-height:160px;
  margin-bottom:8px;
}
.modal .field:first-child{margin-top:4px}

@media(max-height:760px){
  .modal{padding:10px}
  .modal .box{max-height:calc(100dvh - 20px);padding:18px}
  .modal .headrow{margin-bottom:14px}
  .modal .steps{margin:8px 0 12px}
  .modal .field{margin:10px 0}
  .modal .carColorPreview{max-height:125px}
}

@media(max-width:520px){
  .modal{
    padding:0;
    align-items:flex-end;
  }
  .modal .box{
    width:100%;
    max-height:100dvh;
    height:100dvh;
    border-radius:20px 20px 0 0;
    padding:16px 16px max(12px,env(safe-area-inset-bottom));
  }
  .modal .headrow{margin-bottom:12px}
  .modal .headrow h2{font-size:22px;margin:0}
  .modal .steps{margin:8px 0 12px}
  .modalScroll{padding-right:2px;padding-bottom:8px}
  .modalActions{
    margin-left:-16px;
    margin-right:-16px;
    margin-bottom:calc(-1 * max(12px,env(safe-area-inset-bottom)));
    padding:12px 16px max(12px,env(safe-area-inset-bottom));
    box-shadow:0 -14px 28px #02070c99;
  }
  .modal .carColorPreview{max-height:120px}
  .modal .colorChoices{margin-bottom:8px}
}

/* 1.3 — parity juld.site + soutien */
.supportCompact{padding:10px 13px!important;border:1px solid #6a5630!important;background:linear-gradient(135deg,#ffe08a,#ffbd59)!important;color:#211300!important;text-decoration:none!important}.supportConfigHint code{color:#d9ecff;background:#07131f;padding:2px 5px;border-radius:6px}.freshnessHint{font-size:12px;color:#7890a3}
@media(max-width:520px){.headrow>.actions .supportCompact{width:100%}}

/* 1.4 — Public Beta Ready */
.betaBadge{margin-left:8px;border-color:#806728;background:#2a2110;color:#ffe08a}.betaNotice{margin:14px 0 8px;padding:14px 16px;border:1px solid #5c4a24;border-radius:16px;background:#211a0d;color:#e8d7a8;display:flex;gap:10px;align-items:flex-start}.betaNotice span{color:#cdbf99;line-height:1.5}.footerLinks{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:12px}.footerLinks button,.textButton{border:0;background:transparent;color:#8fb5cf;text-decoration:underline;cursor:pointer;padding:4px}.footerLinks button:hover,.textButton:hover{color:#fff}.legalPage{padding-top:26px;padding-bottom:50px}.legalCard{max-width:880px;margin:24px auto;padding:28px}.legalText{line-height:1.7;color:#c7d4de}.legalText h2{margin-top:26px;color:#fff}.legalText a{color:#7ddcff}.dangerZone{border-color:#5c2d36;background:#1a0d12}.dangerZone .off{margin-top:10px}.btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}
@media(max-width:520px){.betaNotice{flex-direction:column}.legalCard{padding:20px}.footerLinks{gap:8px}}
.authLinks{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}

/* 1.5 — Tableau de bord une seule page, inspiré de l'ancien myve.juld.site */
html{scroll-behavior:smooth;scroll-padding-top:84px}
.legacyDashboard{width:min(780px,100%);margin:0 auto;padding-bottom:48px}
.legacyTopline{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}
.legacyTopline h1{font-size:32px;letter-spacing:-.045em;margin:3px 0 5px}
.legacyJumpNav{position:sticky;top:8px;z-index:12;display:flex;gap:7px;overflow-x:auto;padding:7px;margin:0 0 16px;background:#04101de8;border:1px solid #18364d;border-radius:18px;backdrop-filter:blur(14px);scrollbar-width:none;box-shadow:0 12px 28px #0007}
.legacyJumpNav::-webkit-scrollbar{display:none}.legacyJumpNav a{flex:0 0 auto;text-decoration:none;color:#9fb5c7;border:1px solid transparent;border-radius:12px;padding:9px 11px;font-size:12px;font-weight:750}.legacyJumpNav a:hover{color:#fff;background:#10283b;border-color:#28516e}
.legacySection{scroll-margin-top:88px;margin:0 0 24px}.legacySectionTitle{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:8px 4px 4px}.legacySectionTitle h2{font-size:30px;letter-spacing:-.04em;margin:2px 0}
.legacyHero{padding:18px;background:radial-gradient(circle at 72% 10%,#174e7438,transparent 36%),linear-gradient(155deg,#10283c,#06121d);border-color:#294b65;overflow:hidden}
.legacyHeroStatus{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.legacyCarVisual{height:245px;margin:12px 0 4px;border-radius:20px;overflow:hidden;background:#f5f7fa;border:1px solid #41627a;box-shadow:inset 0 0 0 1px #fff6,0 18px 34px #0007}.legacyCarVisual img{width:100%;height:100%;object-fit:contain;display:block}
.legacyBatteryRow{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-top:10px}.legacyBatteryValue{font-size:64px;line-height:.9;font-weight:850;letter-spacing:-.065em}.legacyBatteryValue small{font-size:24px;color:#91a5b7;margin-left:3px}.legacyRange{text-align:right;display:flex;flex-direction:column}.legacyRange strong{font-size:26px}.legacyBatteryTrack{height:9px;margin:16px 0 18px;background:#142638;border:1px solid #24445d;border-radius:99px;overflow:hidden}.legacyBatteryTrack span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#36a9ff,#5de6b0);box-shadow:0 0 15px #46d3ff66;transition:width .35s ease}
.legacyStatusGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.legacyStatus{display:flex;align-items:center;gap:10px;min-width:0;padding:13px;border-radius:17px;background:linear-gradient(145deg,#ffffff0a,#ffffff03);border:1px solid #203d55}.legacyStatus>span{font-size:20px}.legacyStatus>div{min-width:0;display:flex;flex-direction:column;gap:3px}.legacyStatus small{color:#859bae;font-size:12px}.legacyStatus strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legacyReadyBtn{width:100%;border:1px solid #3a80a8;border-radius:21px;padding:16px;margin:13px 0 11px;background:linear-gradient(135deg,#17466a,#0a1c2b);color:#fff;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:13px;text-align:left;cursor:pointer;box-shadow:0 14px 32px #0004}.legacyReadyBtn:hover{border-color:#55c8ff}.legacyReadyBtn>span:nth-child(2){display:flex;flex-direction:column;gap:3px}.legacyReadyBtn small{color:#a9c7db}.legacyReadyBtn>span:last-child{font-size:30px;color:#71d6ff}.legacyReadyIcon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#5ccfff,#2f87cf);font-size:21px}
.legacyQuickGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.legacyQuick{border:1px solid #203d55;background:linear-gradient(145deg,#0d2132,#07131e);border-radius:18px;padding:14px;color:#edf7ff;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;cursor:pointer}.legacyQuick>span{font-size:23px;margin-bottom:5px}.legacyQuick strong{font-size:13px}.legacyQuick small{font-size:12px;color:#859bae}.legacyQuick:hover{border-color:#3a7aa6;background:#10283b}.legacyMessage{min-height:17px;margin:7px 2px}
.legacyTwoCol{display:grid;grid-template-columns:1fr 1fr;gap:14px}.legacyControlCard{padding:19px}.legacyControlCard h3{margin:5px 0 12px;font-size:20px}.legacyChargeSummary{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:16px;margin-bottom:16px}.legacyChargeRing{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#52dca8 0 var(--battery),#173149 var(--battery) 360deg);position:relative}.legacyChargeRing:before{content:"";position:absolute;inset:10px;border-radius:50%;background:#081522}.legacyChargeRing>div{position:relative;display:flex;flex-direction:column;align-items:center}.legacyChargeRing strong{font-size:25px}.legacyChargeRing small{color:#879cad}
.legacyClimateCard{margin:0;padding:20px}.legacyClimateCard .climateOrb{width:145px;height:145px}.legacySupportCard{margin-top:14px;padding:20px;border:1px solid #69552a;border-radius:22px;background:linear-gradient(135deg,#201b0d,#101828);display:flex;justify-content:space-between;align-items:center;gap:18px}.legacySupportCard h3{margin:4px 0}.legacySupportCard p{margin:0;color:#b9c7d2;line-height:1.5}.legacySupportCard .supportPrimary{margin:0;white-space:nowrap}
.legacyDashboard .geoBox{margin-top:14px}.legacyDashboard .miniStats{grid-template-columns:repeat(3,1fr)}
@media(max-width:850px){.legacyDashboard{max-width:680px}.legacyTwoCol{grid-template-columns:1fr}.legacyQuickGrid{grid-template-columns:1fr 1fr}.legacyCarVisual{height:220px}}
@media(max-width:520px){html{scroll-padding-top:74px}.main{padding:14px}.legacyDashboard{padding-bottom:28px}.legacyTopline{flex-direction:column;gap:8px}.legacyTopline>.actions{width:100%}.legacyTopline>.actions>*{flex:1}.legacyJumpNav{top:6px;margin-left:-3px;margin-right:-3px}.legacyCarVisual{height:180px;margin-top:10px}.legacyBatteryValue{font-size:54px}.legacyRange strong{font-size:21px}.legacyStatusGrid{grid-template-columns:1fr 1fr}.legacyStatus{padding:11px}.legacyReadyBtn{grid-template-columns:42px 1fr auto;padding:14px}.legacyReadyIcon{width:42px;height:42px}.legacyQuickGrid{grid-template-columns:1fr}.legacyQuick{display:grid;grid-template-columns:35px 1fr;column-gap:8px}.legacyQuick>span{grid-row:1/3;margin:0}.legacyQuick small{grid-column:2}.legacyTwoCol{gap:10px}.legacySection{margin-bottom:19px}.legacySectionTitle h2{font-size:27px}.legacyChargeSummary{grid-template-columns:104px 1fr}.legacyChargeRing{width:102px;height:102px}.legacyClimateCard .climateOrb{width:130px;height:130px}.legacySupportCard{align-items:flex-start;flex-direction:column}.legacySupportCard .supportPrimary{width:100%}.legacyDashboard .miniStats{grid-template-columns:1fr 1fr}.legacyDashboard .geoBox .btn{width:100%}}
@media(max-width:390px){.legacyStatusGrid{grid-template-columns:1fr}.legacyCarVisual{height:155px}.legacyBatteryValue{font-size:48px}.legacyDashboard .miniStats{grid-template-columns:1fr}}

/* V1.7 — statistiques privées administrateur */
.adminStatsCards{margin-top:8px}.adminStatsCards .stat p{margin:8px 0 0;color:var(--muted);font-size:13px}.adminStatsCards .adminStatPrimary{border-color:#2e668a;background:linear-gradient(160deg,#0c2940dd,#071621dd)}.adminStatsCards .adminStatPrimary strong{font-size:42px}.adminStatsNote{margin-top:18px}.adminStatsNote h2{margin-top:0}@media(max-width:700px){.adminStatsCards{grid-template-columns:1fr 1fr}}@media(max-width:460px){.adminStatsCards{grid-template-columns:1fr}}

/* V1.7 — Smart Energy + e-2008 */
.fixedBrand{padding:13px 14px;border:1px solid #24445d;background:#071522;border-radius:12px;font-weight:800;margin-bottom:6px}.modelIdentity{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:12px}.smartReadyCard{margin:13px 0;padding:18px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border-color:#35516a;background:linear-gradient(135deg,#0b2132,#08131e)}.smartReadyCard.ok{border-color:#2f765d;background:linear-gradient(135deg,#0d2a22,#081a1a)}.smartReadyCard h3{margin:4px 0 5px}.smartReadyCard p{margin:0;color:#b5c8d8}.smartAlertList{display:grid;gap:6px;text-align:right}.smartAlertList span{font-size:12px;color:#b9cbd8}.smartEstimate{margin-top:8px;color:#6ed7ff!important;font-weight:700}.batteryTrend{color:#55d9ae;margin-top:12px}.batteryTrend svg{display:block;width:100%;height:120px;border-radius:14px;background:linear-gradient(180deg,#0a1b29,#07131d);border:1px solid #18354b;padding:8px;box-sizing:border-box}.batteryTrend .small{margin-top:7px;color:#91a6b8}@media(max-width:700px){.smartReadyCard{grid-template-columns:1fr}.smartAlertList{text-align:left}.colorChoices{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* 1.8 — administration des membres */
.memberList{display:grid}.memberRow{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid #17324a}.memberRow:last-child{border-bottom:0}.memberIdentity{display:grid;gap:5px;min-width:0}.memberIdentity strong{overflow-wrap:anywhere}.memberIdentity span{font-size:12px;color:var(--muted)}.memberDelete{flex:0 0 auto}@media(max-width:620px){.memberRow{align-items:stretch;flex-direction:column}.memberDelete{width:100%}}

/* 1.8.3 — UI premium : navigation admin compacte + soutien uniquement en bas */
.premiumShell{display:block;min-height:100vh;background:radial-gradient(circle at 72% -10%,#123b6148 0,transparent 32%),linear-gradient(180deg,#03101c 0,#06121e 48%,#020910 100%)}
.appTopbar{width:min(980px,calc(100% - 28px));margin:0 auto;padding:22px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.appIdentity{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.appIdentity .brand{font-size:18px}.premiumRoleBadge{margin:0;padding:9px 14px;font-size:13px;background:linear-gradient(145deg,#0b2032,#071521);border-color:#315b7c;box-shadow:inset 0 1px #ffffff08,0 10px 30px #0004}
.appUserTools{display:flex;align-items:center;gap:8px}.appUserEmail{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7f95a8;font-size:12px}.appToolBtn{width:42px;height:42px;border:1px solid #24455f;border-radius:14px;background:#0a1b2a;color:#98afc2;display:grid;place-items:center;cursor:pointer;transition:.2s ease}.appToolBtn:hover{color:#fff;border-color:#4680a7;background:#10283b}.appToolBtn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.appNav{width:min(980px,calc(100% - 28px));margin:10px auto 22px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}
.appNavItem{position:relative;min-width:0;min-height:112px;border:1px solid #193a55;border-radius:22px;background:linear-gradient(145deg,#0b2033,#071522);color:#91a5b7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 10px;cursor:pointer;font-weight:720;font-size:14px;box-shadow:inset 0 1px #ffffff08,0 15px 35px #0002;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.appNavItem:hover{transform:translateY(-1px);border-color:#315c7a;color:#d8eaff}.appNavItem svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.appNavItem.active{color:#bfe3ff;border-color:#376b93;background:linear-gradient(145deg,#102b43,#0a1c2c)}.appNavItem.active:after{content:"";position:absolute;left:15px;right:15px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:#52b9ff;box-shadow:0 0 18px #52b9ff88}.appNavItem.active svg{color:#5fbaff}
.premiumMain{width:min(980px,calc(100% - 28px));margin:0 auto;padding:0 0 max(30px,env(safe-area-inset-bottom))}.premiumMain>#view{min-height:260px}.premiumDashboard{width:min(820px,100%);padding-bottom:12px}.vehicleActionRow{display:flex;justify-content:flex-end;gap:8px;min-height:0;margin:0 0 10px}.vehicleActionRow:empty{display:none}.vehicleActionRow .btn{padding:10px 13px;border-radius:13px;font-size:12px}
.premiumVehicleHero{position:relative;overflow:hidden;padding:28px;border-radius:30px;background:radial-gradient(circle at 82% 44%,#183e67 0,#0b2440 28%,transparent 58%),linear-gradient(145deg,#0c2540,#071522 72%);border-color:#2a5071;box-shadow:0 28px 75px #0007,inset 0 1px #ffffff0d}.premiumVehicleHero:before{content:"";position:absolute;width:520px;height:520px;border:1px solid #4e9be418;border-radius:50%;right:-230px;top:90px;pointer-events:none}.premiumVehicleHero>*{position:relative;z-index:1}.premiumHeroShowcase{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(340px,1.15fr);align-items:end;gap:10px;min-height:300px}.premiumHeroIntro{align-self:start;padding:18px 0 0}.premiumHeroHeading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.premiumHeroTitle{min-width:0}.premiumHeroIntro .small{font-size:13px;letter-spacing:.08em;color:#92a7ba}.premiumHeroIntro h1{font-size:clamp(42px,7vw,62px);letter-spacing:-.055em;line-height:.95;margin:18px 0 18px;color:#f7fbff;text-shadow:0 8px 30px #0005}.heroRefreshBtn{flex:0 0 auto;margin-top:1px;border:1px solid #315c7b;border-radius:13px;background:linear-gradient(145deg,#102a40,#0a1b2a);color:#b8d8ef;min-height:38px;padding:8px 11px;display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12px;font-weight:750;cursor:pointer;box-shadow:inset 0 1px #ffffff0a,0 8px 24px #0003;transition:.18s ease}.heroRefreshBtn:hover{color:#fff;border-color:#4b83a9;background:linear-gradient(145deg,#153650,#0d2234)}.heroRefreshBtn:disabled{opacity:.65;cursor:wait}.heroRefreshIcon{font-size:17px;line-height:1}.heroRefreshBtn.loading .heroRefreshIcon{animation:heroRefreshSpin .9s linear infinite}@keyframes heroRefreshSpin{to{transform:rotate(360deg)}}.premiumFreshness{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}.premiumFreshness.stale{color:#ffd166}.premiumFreshness.fresh{color:#62e7b4}.premiumFreshness>span:first-child{font-size:22px}.premiumFreshness strong{font-weight:760}
.premiumVehicleHero .legacyCarVisual{height:270px;margin:0 -24px -2px 0;border:0;background:transparent;box-shadow:none;overflow:visible;display:flex;align-items:flex-end;justify-content:flex-end}.premiumVehicleHero .legacyCarVisual img{width:118%;height:100%;object-fit:contain;object-position:right bottom;background:transparent;border-radius:0;filter:none}.premiumHeroStatus{margin-top:-6px;padding-top:12px;border-top:1px solid #ffffff0d}.premiumVehicleHero .legacyBatteryRow{padding-top:18px}.premiumVehicleHero .legacyStatusGrid{margin-top:4px}
.appSupportFooter{width:min(820px,100%);margin:46px auto 0;padding-top:20px;border-top:1px solid #102c42}.appSupportLink{min-height:82px;width:100%;padding:18px 24px;border-radius:24px;border:1px solid #244b6b;background:linear-gradient(145deg,#0b2035,#081827);color:#eef7ff;text-decoration:none;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;font-size:20px;font-weight:700;box-shadow:0 20px 50px #0005,inset 0 1px #ffffff0c;transition:.2s ease}.appSupportLink:hover{border-color:#3d7298;background:linear-gradient(145deg,#0e2942,#0a1c2d);transform:translateY(-1px)}.supportHeart{font-size:28px;filter:drop-shadow(0 4px 8px #ff477777)}.supportChevron{font-size:38px;line-height:1;color:#829ab0;font-weight:300}.landingSupportFooter{width:min(620px,100%);margin:0 auto 22px}.landingSupportLink{width:100%;padding:14px 18px;border:1px solid #31526e;border-radius:18px;background:#0b1f31;color:#e9f4ff;text-decoration:none;font-weight:750}

@media(max-width:700px){
  .appTopbar{padding-top:16px}.appUserEmail{display:none}.appNav{gap:8px;margin-top:6px;margin-bottom:16px}.appNavItem{min-height:88px;border-radius:18px;padding:10px 4px;gap:7px;font-size:12px}.appNavItem svg{width:25px;height:25px}.appNavItem.active:after{left:10px;right:10px}.premiumMain{width:min(100% - 20px,760px)}
  .premiumHeroShowcase{grid-template-columns:1fr;min-height:0}.premiumHeroIntro{padding-top:4px}.premiumHeroIntro h1{font-size:44px;margin:12px 0 12px}.premiumVehicleHero .legacyCarVisual{height:225px;margin:-12px -18px -5px}.premiumVehicleHero .legacyCarVisual img{width:108%;object-position:center bottom}.premiumHeroStatus{margin-top:0}.appSupportLink{min-height:72px;border-radius:20px;font-size:17px;padding:15px 18px}.supportHeart{font-size:24px}.supportChevron{font-size:32px}
}
@media(max-width:430px){
  .appTopbar{width:calc(100% - 20px);align-items:flex-start}.appIdentity{gap:8px}.appIdentity .brand{font-size:16px}.premiumRoleBadge{font-size:12px;padding:8px 10px}.appToolBtn{width:38px;height:38px;border-radius:12px}.appNav{width:calc(100% - 20px);grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:7px}.appNavItem{min-height:80px;font-size:12px;letter-spacing:-.015em}.appNavItem svg{width:23px;height:23px}.premiumVehicleHero{padding:20px;border-radius:25px}.premiumHeroIntro h1{font-size:40px}.premiumFreshness{font-size:13px;gap:6px}.premiumVehicleHero .legacyCarVisual{height:190px;margin:-6px -12px 0}.legacyBatteryValue{font-size:50px}.appSupportFooter{margin-top:34px}.appSupportLink{font-size:16px;gap:12px}
}
/* Ajustement responsive : même grille nette pour admin et membres. */
.appNav{grid-auto-flow:unset;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
@media(max-width:430px){.appNav{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}}

/* V1.8.3.5 — actualisation rapide dans l’en-tête véhicule */
@media(max-width:430px){.premiumHeroHeading{gap:8px}.heroRefreshBtn{padding:8px 9px;border-radius:12px}.heroRefreshLabel{display:none}.heroRefreshIcon{font-size:19px}}

/* 1.8.3.5 — mini-carte de la dernière position connue */
.geoMapBox{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(240px,42%);align-items:stretch!important;padding:12px!important;gap:12px!important}.geoMapText{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:8px 6px}.geoMapPreview{position:relative;display:block;width:100%;height:126px;padding:0;overflow:hidden;border:1px solid #2b506e;border-radius:16px;background:#071522;cursor:pointer;box-shadow:inset 0 1px #ffffff08;isolation:isolate}.geoMapPreview iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;filter:saturate(.78) brightness(.82) contrast(1.06)}.geoMapOverlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;gap:6px;padding:9px 11px;color:#f5fbff;background:linear-gradient(180deg,transparent 42%,#020a11bd);font-size:12px;text-shadow:0 1px 4px #000}.geoMapOverlay>span{font-size:16px}.geoMapPreview:hover{border-color:#56a6db}.geoMapPreview:hover .geoMapOverlay{background:linear-gradient(180deg,#0b38501c 20%,#020a11d9)}
body.mapModalOpen{overflow:hidden}.vehicleMapModal{position:fixed;inset:0;z-index:3000;padding:24px;display:grid;place-items:center;background:#01060bd9;backdrop-filter:blur(10px)}.vehicleMapDialog{width:min(1040px,96vw);height:min(760px,90dvh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #315a79;border-radius:28px;background:linear-gradient(145deg,#0b2235,#06111c);box-shadow:0 35px 100px #000c}.vehicleMapHeader,.vehicleMapFooter{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px}.vehicleMapHeader{border-bottom:1px solid #ffffff0c}.vehicleMapHeader h2{margin:4px 0 0}.vehicleMapClose{width:42px;height:42px;border:1px solid #31526a;border-radius:14px;background:#0b1d2c;color:#d7e8f5;font-size:26px;line-height:1;cursor:pointer}.vehicleMapLarge{min-height:0;background:#06101a}.vehicleMapLarge iframe{display:block;width:100%;height:100%;border:0}.vehicleMapFooter{border-top:1px solid #ffffff0c}.vehicleMapFooter .small{color:#8da2b4}
@media(max-width:700px){.geoMapBox{grid-template-columns:1fr!important}.geoMapPreview{height:150px}.vehicleMapModal{padding:0;align-items:end}.vehicleMapDialog{width:100vw;height:92dvh;border-radius:24px 24px 0 0}.vehicleMapFooter{align-items:stretch;flex-direction:column}.vehicleMapFooter .btn{width:100%;text-align:center}.vehicleMapHeader{padding:16px}.vehicleMapLarge{min-height:420px}}
.geoAddressLine{display:block;color:#b8cad6;font-size:12px;line-height:1.45;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.geoAddressLine:empty{display:none}@media(max-width:700px){.geoAddressLine{white-space:normal;overflow-wrap:anywhere}}

/* V1.8.3.5 — accueil sans mention bêta + démo moderne en lecture seule */
.publicDemo .appNavItem:disabled{opacity:.72;cursor:default}.publicDemo .appNavItem.active:disabled{opacity:1}.publicDemoMain{padding-bottom:50px}.demoReadOnly{margin:0 0 18px;padding:13px 16px;border:1px solid #31526a;border-radius:16px;background:#0a1c2b;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#dceaf4}.demoReadOnly span{color:#93a9ba}.demoReadOnly.bottom{margin-top:28px}.publicDemo button:disabled,.publicDemo input:disabled,.publicDemo select:disabled{cursor:not-allowed}.demoGeoBox{align-items:stretch}.demoMapPreview{position:relative;min-height:180px;border:1px solid #294b65;border-radius:18px;overflow:hidden;background:linear-gradient(145deg,#10293d,#0a1b29);display:grid;place-items:center;color:#8fa8ba}.demoMapPreview:before,.demoMapPreview:after{content:"";position:absolute;inset:-40% -10%;background:repeating-linear-gradient(25deg,transparent 0 38px,#24445a 39px 44px,transparent 45px 86px);opacity:.55}.demoMapPreview:after{transform:rotate(88deg);opacity:.35}.demoMapPin{position:relative;z-index:2;width:34px;height:34px;border:8px solid #52b9ff;border-radius:50%;background:#fff;color:transparent;box-shadow:0 8px 25px #0008}.demoMapPreview>span{position:absolute;z-index:3;left:12px;bottom:10px;padding:6px 9px;border-radius:10px;background:#06111ccb;color:#bcd0df;font-size:12px}.demoActions{padding:6px 18px}.demoActions>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #ffffff0b}.demoActions>div:last-child{border-bottom:0}.demoActions span{color:#8fa5b7;font-size:12px;white-space:nowrap}.demoStats{grid-template-columns:repeat(3,1fr)}@media(max-width:650px){.demoActions>div{align-items:flex-start;flex-direction:column;gap:5px}.demoStats{grid-template-columns:1fr}.demoMapPreview{min-height:150px}}

/* V1.9.0 — Maturity Pack */
:root{--vehicle-accent:#45baff;--vehicle-accent-soft:#174a70;--vehicle-glow:#45baff55}
html[data-vehicle-color="red"]{--vehicle-accent:#ff6b72;--vehicle-accent-soft:#6a2830;--vehicle-glow:#ff596455}
html[data-vehicle-color="yellow"]{--vehicle-accent:#ffd45c;--vehicle-accent-soft:#5c4920;--vehicle-glow:#ffd45c55}
html[data-vehicle-color="gray"]{--vehicle-accent:#b9c2cb;--vehicle-accent-soft:#39434d;--vehicle-glow:#b9c2cb44}
html[data-vehicle-color="green"]{--vehicle-accent:#63d897;--vehicle-accent-soft:#24573a;--vehicle-glow:#63d89744}
html[data-vehicle-color="white"]{--vehicle-accent:#e5f3ff;--vehicle-accent-soft:#40586b;--vehicle-glow:#e5f3ff44}
html[data-vehicle-color="black"]{--vehicle-accent:#aab7c5;--vehicle-accent-soft:#26333e;--vehicle-glow:#aab7c544}
.appNavItem.active{border-color:color-mix(in srgb,var(--vehicle-accent) 45%,#1b3850);box-shadow:inset 0 1px #ffffff0d,0 12px 28px #0004,0 0 0 1px color-mix(in srgb,var(--vehicle-accent) 15%,transparent)}
.appNavItem.active:after,.legacyBatteryTrack span{background:linear-gradient(90deg,var(--vehicle-accent),#62e7b4)}
.heroRefreshBtn:hover{border-color:var(--vehicle-accent);box-shadow:0 0 22px var(--vehicle-glow)}
.vehicleSmartHeadline{margin-top:10px;max-width:410px;color:#d6e7f4;font-size:14px;line-height:1.45;font-weight:650}.vehicleSmartHeadline:before{content:"✦";margin-right:7px;color:var(--vehicle-accent)}
.incidentCenter{margin:12px 0;padding:18px;border-color:#3b4e60;background:linear-gradient(145deg,#0c1d2a,#08131c)}.incidentHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.incidentHead h3{margin:4px 0 0}.incidentRows{display:grid;gap:8px;margin-top:14px}.incidentRow{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center;padding:11px 12px;border:1px solid #304256;border-radius:14px;background:#ffffff05}.incidentRow>span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-weight:900}.incidentRow>div{display:flex;flex-direction:column;gap:2px}.incidentRow small{color:#9bb0c1}.incidentRow.warn>span{background:#5b4518;color:#ffd166}.incidentRow.bad>span{background:#5c2630;color:#ff8993}
.energyTimeline{margin-top:18px;padding-top:15px;border-top:1px solid #ffffff0d}.energyTimelineTrack{position:relative;height:24px;border-radius:99px;background:#0a1823;border:1px solid #243e50;overflow:visible}.energyRange{position:absolute;top:3px;bottom:3px;border-radius:99px;background:linear-gradient(90deg,#235d88,var(--vehicle-accent));opacity:.72}.preconditionRange{position:absolute;top:-4px;height:32px;border-radius:8px;background:#65dca54a;border:1px solid #65dca5aa}.departureMarker{position:absolute;top:-8px;transform:translateX(-50%);height:40px;display:flex;flex-direction:column;align-items:center}.departureMarker i{width:2px;height:27px;background:#fff}.departureMarker b{position:absolute;top:35px;font-size:12px;color:#d7e7f2;white-space:nowrap}.energyTimelineLabels{display:flex;justify-content:space-between;margin-top:8px;color:#7590a5;font-size:12px}.energyLegend{display:flex;gap:14px;flex-wrap:wrap;margin-top:19px;color:#90a6b8;font-size:12px}.energyLegend span{display:flex;align-items:center;gap:6px}.energyLegend i{width:8px;height:8px;border-radius:50%}.offpeakDot{background:var(--vehicle-accent)}.precondDot{background:#65dca5}
.miniStats small{display:block;margin-top:5px;color:#7f97aa;font-size:12px}.compactBtn{padding:8px 11px;font-size:12px;white-space:nowrap}
.diagnosticCard{margin-top:14px}.diagnosticBox{margin-top:14px;white-space:normal;background:#07131d;border:1px solid #1e3a50;border-radius:16px;padding:13px}.diagSummary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:#0d2230;margin-bottom:10px}.diagSummary.ok{border:1px solid #2d795d}.diagSummary.degraded{border:1px solid #6e5729}.diagSummary.disconnected{border:1px solid #64313a}.diagSummary span{font-size:12px;color:#94a9b8}.diagChecks{display:grid;gap:8px}.diagCheck{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #ffffff09}.diagCheck:last-child{border-bottom:0}.diagCheck>div{display:flex;flex-direction:column;gap:2px}.diagCheck small{color:#8fa5b6}.diagIcon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:900}.diagIcon.ok{background:#1d6047;color:#8bffca}.diagIcon.bad{background:#5b2530;color:#ff9aa3}.diagIcon.neutral{background:#2a3945;color:#b8c8d4}
.healthCards{grid-template-columns:repeat(4,1fr)}.healthIssues{display:grid;gap:7px}.healthIssue{display:flex;gap:9px;align-items:center;padding:9px 10px;border-radius:11px;background:#ffffff05;color:#b9cada}.healthIssue>span:first-child{color:#ffd166}.memberTools{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.memberTools .btn{padding:8px 10px;font-size:12px}
.releaseToast{position:fixed;right:18px;bottom:18px;z-index:2600;width:min(520px,calc(100vw - 36px));display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid #315a78;border-radius:20px;background:linear-gradient(145deg,#0c263a,#07131e);box-shadow:0 25px 80px #000b;backdrop-filter:blur(16px)}.releaseToast>div{display:flex;flex-direction:column;gap:4px}.releaseToast span{color:#94aabb;font-size:12px;line-height:1.4}.releaseToast .btn{flex:0 0 auto}
@media(max-width:760px){.healthCards{grid-template-columns:1fr 1fr}.memberTools{justify-content:flex-start}.releaseToast{align-items:stretch;flex-direction:column}.releaseToast .btn{width:100%}.legacySectionTitle{align-items:center}.compactBtn{font-size:12px}}

/* V1.9.1 — Vehicle Art : les PNG contiennent uniquement la voiture, sans ombre au sol. */
.premiumVehicleHero .legacyCarVisual,
.premiumVehicleHero .legacyCarVisual img{
  filter:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
}

/* V1.10 — Trajets */
.tripFilters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.tripFilters button{border:1px solid #264962;border-radius:999px;background:#091a28;color:#9db2c3;padding:9px 14px;font-weight:700;cursor:pointer}.tripFilters button.active{border-color:var(--vehicle-accent);color:#e8f5ff;background:#10283b}.tripSummary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.tripSummary .stat strong{font-size:clamp(20px,3vw,29px)}.tripSourceNote{margin-bottom:14px}.tripList{display:grid;gap:14px}.tripCard{padding:18px}.tripCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.tripCardTop h3{margin:4px 0 0;font-size:22px}.tripMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:16px 0}.tripMetrics>span{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #1e3a50;border-radius:14px;background:#071725}.tripMetrics b{font-size:15px;color:#e4f1fa}.tripMetrics small{color:#8299aa;font-size:12px}.tripSubline{display:flex;gap:14px;flex-wrap:wrap;color:#8ea5b6;font-size:12px;margin-bottom:13px}.tripRouteButton{position:relative;width:100%;height:112px;border:1px solid #254760;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#0b2335,#071725);padding:0;cursor:pointer;display:block}.tripRouteButton.disabled{cursor:default}.tripRouteButton:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff06 1px,transparent 1px),linear-gradient(#ffffff06 1px,transparent 1px);background-size:24px 24px}.tripRouteButton>span{position:absolute;right:10px;bottom:9px;padding:6px 9px;border-radius:10px;background:#06111cd9;color:#bfd3e2;font-size:12px}.tripRouteSvg{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);overflow:visible}.tripRouteSvg polyline,.tripMapOverlay polyline{fill:none;stroke:var(--vehicle-accent);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--vehicle-accent) 65%,transparent))}.tripRouteSvg circle,.tripMapOverlay circle{stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}.tripStart{fill:#55d6a7}.tripEnd{fill:#ffb65c}.tripRouteEmpty{position:relative;z-index:2;height:100%;display:grid;place-items:center;color:#7890a1;font-size:12px}.tripMapLarge{position:relative}.tripMapOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.demoTripStats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.demoTripCard{padding:18px}.demoTripCard>div:first-child{display:flex;justify-content:space-between;gap:12px}.demoTripCard>div:first-child span{color:#8da4b5;font-size:12px}.demoTripRoute{height:90px;margin-top:12px;border:1px solid #26475f;border-radius:14px;background:#081a28;overflow:hidden}.demoTripRoute svg{width:100%;height:100%}.demoTripRoute polyline{fill:none;stroke:#52b9ff;stroke-width:3;stroke-linecap:round}.demoTripRoute circle{fill:#62e7b4}.tripsHead{align-items:center}
@media(max-width:760px){.tripSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.tripMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}.tripCardTop h3{font-size:19px}.demoTripStats{grid-template-columns:1fr}.demoTripCard>div:first-child{flex-direction:column}.tripsHead{align-items:flex-start;flex-direction:column}.tripsHead .btn{width:100%;text-align:center}}
@media(max-width:430px){.tripFilters{display:grid;grid-template-columns:repeat(2,1fr)}.tripFilters button{width:100%}.tripRouteButton{height:96px}.tripMetrics>span{padding:10px}.tripMetrics b{font-size:13px}}


/* V1.10.0 — navigation courte + trajets */
.appPrimaryNav{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.appPrimaryNav .appNavItem{min-height:84px;border-radius:19px;padding:11px 8px;gap:7px;font-size:12px}
.appPrimaryNav .appNavItem svg{width:25px;height:25px}
.legacyDashboard[data-view="home"] #energy,
.legacyDashboard[data-view="home"] #climate,
.legacyDashboard[data-view="home"] #moreMenu,
.legacyDashboard[data-view="home"] #history,
.legacyDashboard[data-view="home"] #settings{display:none}
.legacyDashboard[data-view="energy"] #overview,
.legacyDashboard[data-view="energy"] #climate,
.legacyDashboard[data-view="energy"] #moreMenu,
.legacyDashboard[data-view="energy"] #history,
.legacyDashboard[data-view="energy"] #settings{display:none}
.legacyDashboard[data-view="climate"] #overview,
.legacyDashboard[data-view="climate"] #energy,
.legacyDashboard[data-view="climate"] #moreMenu,
.legacyDashboard[data-view="climate"] #history,
.legacyDashboard[data-view="climate"] #settings{display:none}
.legacyDashboard[data-view="plus"] #overview,
.legacyDashboard[data-view="plus"] #energy,
.legacyDashboard[data-view="plus"] #climate{display:none}
.legacyDashboard[data-view="home"] .smartReadyCard,
.legacyDashboard[data-view="home"] .legacyReadyBtn,
.legacyDashboard[data-view="home"] .homeQuickControls,
.legacyDashboard[data-view="home"] .legacyMessage{display:none}
.homeActionsCard{margin-top:14px;padding:8px 18px 4px}.homeActionsHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 4px}.homeActionsHead h3{margin:3px 0 0}.homeActionsHead .textButton{font-weight:750}.moreMenuSection{margin-top:0}.moreMenuGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.moreMenuButton{appearance:none;width:100%;min-height:92px;padding:16px;text-align:left;color:#e9f5ff;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;cursor:pointer}.moreMenuButton>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#10283a;color:var(--vehicle-accent)}.moreMenuButton svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.moreMenuButton>div{display:flex;flex-direction:column;gap:3px}.moreMenuButton small{color:#8fa5b6}.moreMenuButton>b{font-size:28px;font-weight:300;color:#7692a7}.moreMenuButton:hover{border-color:color-mix(in srgb,var(--vehicle-accent) 45%,#27475d);transform:translateY(-1px)}
@media(max-width:700px){
  .appPrimaryNav{position:fixed;z-index:2500;left:0;right:0;bottom:0;width:100%;margin:0;padding:7px 7px calc(7px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;border-top:1px solid #1b3a50;background:#04111bea;box-shadow:0 -14px 45px #0008;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .appPrimaryNav .appNavItem{min-height:58px;border:0;border-radius:13px;background:transparent;box-shadow:none;padding:6px 2px;gap:4px;font-size:12px;color:#8fa2b2}
  .appPrimaryNav .appNavItem:hover{transform:none;background:#0b2030}
  .appPrimaryNav .appNavItem.active{border:0;background:#0d2638;color:#e7f6ff;box-shadow:none}
  .appPrimaryNav .appNavItem.active:after{left:28%;right:28%;top:-7px;bottom:auto;height:3px}
  .appPrimaryNav .appNavItem svg{width:23px;height:23px}
  .premiumMain{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
  .appSupportFooter{margin-bottom:8px}
  .moreMenuGrid{grid-template-columns:1fr}
  .homeActionsCard .sessionRow{align-items:flex-start}
}
@media(max-width:430px){
  .appPrimaryNav{grid-template-columns:repeat(5,minmax(0,1fr));width:100%;gap:0}
  .appPrimaryNav .appNavItem{min-height:56px;font-size:12px;letter-spacing:-.01em}
  .appPrimaryNav .appNavItem svg{width:22px;height:22px}
  .premiumMain{width:min(100% - 16px,760px)}
}


/* V1.10.2 — sécurité véhicule expérimentale */
.legacyDashboard[data-view="home"] #vehicleSecurity,.legacyDashboard[data-view="energy"] #vehicleSecurity,.legacyDashboard[data-view="climate"] #vehicleSecurity{display:none}


/* V1.10.3 — barre d'action mobile toujours accessible au-dessus de la navigation */
.modal{z-index:4000}
@media(max-width:700px){
}
@media(max-width:390px){
}


/* V1.10.4 — commande clim explicite Activée / Désactivée */
.climateManualControl{margin-top:18px;padding-top:18px;border-top:1px solid #23445d;text-align:left}
.climateModeSwitch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px;padding:5px;border:1px solid #24465f;border-radius:16px;background:#061521}
.climateModeButton{min-height:52px;border:1px solid transparent;border-radius:12px;background:transparent;color:#91a8b9;font:inherit;font-weight:800;cursor:pointer;transition:.18s ease}
.climateModeButton:hover{background:#0d2637;color:#eaf7ff}
.climateModeButton.offChoice.selected{background:#2a1b20;border-color:#7c3b49;color:#ffdbe2;box-shadow:inset 0 0 0 1px #a54d5f33}
.climateModeButton.onChoice.selected{background:#0c3028;border-color:#2d816a;color:#aaf4d8;box-shadow:inset 0 0 0 1px #4ad9ad33}
.climateModeButton:disabled{opacity:.5;cursor:not-allowed}
.climateControlHint{margin:10px 2px 0;line-height:1.45}
@media(max-width:430px){.climateModeButton{min-height:50px;font-size:14px}.climateManualControl{margin-top:14px;padding-top:14px}}

/* V1.11.0 — Centre de mises à jour NAC/RCC + cartographie */
.updateCenterHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.updateCenterHead h2{margin:3px 0 5px}.updateCenterHead .btn{flex:0 0 auto}.updateSystemGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.updateSystemCard{padding:18px;display:grid;gap:15px;min-width:0}.updateSystemCard.hasUpdate{border-color:#2b6d8f;box-shadow:0 0 0 1px #29b6f633 inset,0 14px 36px #0004}.updateSystemHead{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center}.updateSystemHead h3{margin:2px 0 0}.updateSystemIcon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#0a2638;border:1px solid #28516d;font-size:24px}.updateSystemHead .tag{align-self:start}.updateCurrent{display:grid;gap:4px;padding:13px 14px;border-radius:14px;background:#071a27;border:1px solid #1c3b50}.updateCurrent span,.updateMeta{color:#8fa6b7;font-size:12px}.updateCurrent strong{overflow-wrap:anywhere}.updateAvailable{padding:14px;border-radius:15px;background:linear-gradient(135deg,#0a2d3c,#0a202c);border:1px solid #2a6078;display:grid;gap:10px}.updateAvailableTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.updateVersion{font-size:20px;font-weight:850;color:#eaf8ff;overflow-wrap:anywhere}.updatePulse{display:inline-flex;align-items:center;gap:7px;color:#7ce9cc;font-size:12px;font-weight:800}.updatePulse:before{content:"";width:8px;height:8px;border-radius:50%;background:#42e8bd;box-shadow:0 0 0 5px #42e8bd20}.updateMeta{display:flex;flex-wrap:wrap;gap:7px 14px}.updateOkLine{padding:13px 14px;border-radius:14px;background:#09241f;border:1px solid #245d50;color:#a5ead6;font-weight:750}.updateCenterActions{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.updateCenterInfo{margin-top:14px;padding:16px}.updateCenterInfo p{margin:6px 0 0}.updateHistory{margin-top:16px;padding:16px}.updateHistory h3{margin:0 0 10px}.updateHistoryList{display:grid;gap:8px}.updateHistoryRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid #19384b}.updateHistoryRow:first-child{border-top:0}.updateHistoryIcon{width:34px;height:34px;border-radius:11px;background:#0b2637;display:grid;place-items:center}.updateHistoryMain{min-width:0}.updateHistoryMain strong{display:block;overflow-wrap:anywhere}.updateHistoryMain small{display:block;color:#849cad;margin-top:3px}.updateHistoryState{font-size:12px;font-weight:800;border-radius:999px;padding:6px 9px;background:#0e2a38;color:#9bc9e3;white-space:nowrap}.updateHistoryState.installed{background:#0a2b23;color:#9ce8d1}.updateProviderNote{margin-top:12px;color:#8299aa;font-size:12px;line-height:1.45}.updateError{color:#ffc97f}.updateSpinner{display:inline-block;width:16px;height:16px;border:2px solid #365a70;border-top-color:#7fe8cd;border-radius:50%;animation:updateSpin .75s linear infinite;vertical-align:-3px;margin-right:7px}@keyframes updateSpin{to{transform:rotate(360deg)}}
@media(max-width:760px){.updateSystemGrid{grid-template-columns:1fr}.updateCenterHead{align-items:stretch;flex-direction:column}.updateCenterHead .btn{width:100%}.updateHistoryRow{grid-template-columns:auto minmax(0,1fr)}.updateHistoryState{grid-column:2;justify-self:start}.updateCenterActions .btn{flex:1 1 180px}}
.updateSourceNotice{margin-bottom:14px}.updateInfoCard{margin-top:14px;padding:18px}.updateInfoCard p{line-height:1.55;color:#a8bbc9}.updateActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.updateAvailableTop strong{display:block;margin-top:2px;font-size:20px;color:#eefaff;overflow-wrap:anywhere}.updateAvailableTop small{color:#77d9ef;font-weight:850}.updateTagNew{background:#0b3a31!important;color:#9ff4d9!important;border-color:#2a7966!important}.updateHistoryRow>div:first-child{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center}.updateHistoryRow>div:first-child>span{width:34px;height:34px;border-radius:11px;background:#0b2637;display:grid;place-items:center}.updateHistoryRow>div:first-child strong{display:block;overflow-wrap:anywhere}.updateHistoryRow>div:first-child small{display:block;color:#849cad;margin-top:3px}.updateHistoryRow>.tag{justify-self:end}
@media(max-width:760px){.updateActions{display:grid;grid-template-columns:1fr}.updateActions .btn{width:100%}.updateHistoryRow>.tag{grid-column:2;justify-self:start}}


/* V1.11.1 — Tarifs HP / HC / heures super creuses */
.superOffPeakRange{position:absolute;top:5px;bottom:5px;border-radius:99px;background:linear-gradient(90deg,#9b7dff,#d071ff);z-index:2;box-shadow:0 0 12px #a66cff55}.superOffpeakDot{background:#b47cff}.disabledGroup{opacity:.5}.tariffPriceGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}.tariffPriceGrid label{display:grid;gap:6px;color:#9fb1c1;font-size:12px}.tariffPriceGrid label>span{font-size:12px;color:#6f8799}.tariffPriceGrid input{width:100%;padding:12px;border-radius:12px;border:1px solid #24445d;background:#05111c;color:#fff}.tariffStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}.tariffStats>div{padding:11px 12px;border-radius:14px;border:1px solid #18364d;background:#071725;display:grid;gap:3px}.tariffStats span{font-size:12px;color:#8198aa;text-transform:uppercase}.tariffStats strong{font-size:14px}.tariffStats small{font-size:12px;color:#8298a8}@media(max-width:650px){.tariffPriceGrid,.tariffStats{grid-template-columns:1fr}.tariffPriceGrid input{font-size:16px}.superOffPeakToggle{margin-top:18px}}


/* V1.11.4 — kilométrage total sous le véhicule */
.vehicleHeroVisual{min-width:0;align-self:end;display:flex;flex-direction:column;justify-content:flex-end}
.premiumVehicleHero .vehicleHeroVisual .legacyCarVisual{width:100%}
.vehicleOdometer{margin:4px 10px 8px auto;display:grid;grid-template-columns:28px auto;grid-template-areas:"icon label" "icon value";align-items:center;column-gap:9px;width:max-content;max-width:100%;padding:8px 12px;border:1px solid #31536d;border-radius:14px;background:#071725cc;box-shadow:inset 0 1px #ffffff09;color:#dcecf7}
.vehicleOdometer>span{grid-area:icon;font-size:20px}.vehicleOdometer>small{grid-area:label;color:#8ca5b8;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.vehicleOdometer>strong{grid-area:value;font-size:15px;line-height:1.2}
@media(max-width:850px){.vehicleHeroVisual{width:100%}.vehicleOdometer{margin:-2px auto 8px}}
@media(max-width:520px){.vehicleOdometer{margin:-2px auto 5px;padding:7px 11px}.vehicleOdometer>strong{font-size:14px}}


/* V1.11.4 — Smart Energy multi-plages */
.chargeWindowGrid{display:grid;gap:10px;margin:14px 0}.chargeWindowRow{display:grid;grid-template-columns:1.05fr 1.3fr 1fr 1fr;gap:9px;align-items:end;padding:12px;border:1px solid #1c3b52;border-radius:15px;background:#061521}.chargeWindowRow>label{display:grid;gap:6px;color:#9fb1c1;font-size:12px}.chargeWindowRow .windowEnabled{display:flex;align-items:center;gap:8px;min-height:44px;color:#eaf5ff;font-weight:700}.chargeWindowRow input[type=time],.chargeWindowRow select{width:100%;padding:11px;border-radius:11px;border:1px solid #24445d;background:#05111c;color:#fff}.chargeWindowRow select{min-height:43px}@media(max-width:700px){.chargeWindowRow{grid-template-columns:1fr 1fr}.chargeWindowRow .windowEnabled{grid-column:1/-1}.chargeWindowRow input[type=time],.chargeWindowRow select{font-size:16px}}


/* V1.11.7 — Safari / iOS : formulaires stables et viewport mobile */
html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100vh;min-height:100svh;min-height:100dvh;overflow-x:hidden}
input,select,textarea,button{min-width:0;max-width:100%}
.accountHomeAddressCard h2{display:flex;align-items:center;gap:10px}
.accountHomeAddressCard form{display:grid;gap:12px}
.accountHomeAddressCard textarea{width:100%;box-sizing:border-box;min-height:100px;resize:vertical;padding:12px;border:1px solid var(--border,#31556a);border-radius:12px;background:var(--bg,#06141e);color:var(--text,#eef6ff);font:inherit;font-size:16px;line-height:1.5}
.accountHomeAddressCard textarea:focus-visible{outline:2px solid #4edeea;outline-offset:2px}
.accountHomeAddressCard .field small{display:block;margin-top:8px;line-height:1.5}
.legacyTwoCol,.legacyControlCard,.tariffScheduleCard,.chargeWindowGrid,.chargeWindowRow{min-width:0}
@supports (-webkit-touch-callout:none){
  .premiumMain{width:min(980px,calc(100% - max(16px,env(safe-area-inset-left)) - max(16px,env(safe-area-inset-right))));}
  .appPrimaryNav{padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right));}
  .chargeWindowRow>label{min-width:0;overflow:hidden}
  .chargeWindowRow input[type=time],.chargeWindowRow select,.tariffPriceGrid input{font-size:16px!important;min-width:0;width:100%;min-height:48px}
  .chargeWindowRow input[type=time]{-webkit-appearance:auto;appearance:auto;color-scheme:dark;line-height:1.2}
  .chargeWindowRow input[type=time]::-webkit-date-and-time-value{text-align:left;min-width:0}
  .chargeWindowRow input[type=time]::-webkit-calendar-picker-indicator{opacity:1}
}
@media(max-width:430px){
  .chargeWindowRow{grid-template-columns:minmax(0,1fr)}
  .chargeWindowRow .windowEnabled{grid-column:auto}
  .chargeWindowRow input[type=time],.chargeWindowRow select{width:100%;min-height:50px}
  .tariffScheduleCard{overflow:hidden}
}


/* V1.11.7 — image e-2008 cache-bust + retour haut */
.backToTopBtn{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:22px;z-index:2200;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:10px 14px;border:1px solid #315a78;border-radius:999px;background:#0b2234e8;color:#e8f6ff;box-shadow:0 14px 38px #0009;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font:inherit;font-weight:800;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,border-color .18s ease;cursor:pointer}
.backToTopBtn span{font-size:18px;line-height:1;color:var(--vehicle-accent)}
.backToTopBtn.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.backToTopBtn:hover{border-color:var(--vehicle-accent)}
@media(max-width:700px){.backToTopBtn{right:max(12px,env(safe-area-inset-right));bottom:calc(82px + env(safe-area-inset-bottom));min-height:42px;padding:9px 13px;font-size:13px}}
@media(max-width:430px){.backToTopBtn{bottom:calc(78px + env(safe-area-inset-bottom));right:max(10px,env(safe-area-inset-right))}}


/* V1.11.7 — compatibilité mobile multi-navigateurs (Safari iOS / Chrome Android / Samsung Internet / Firefox) */
/* Fallback vh avant dvh/svh pour les WebKit plus anciens. */
.modal .box{max-height:calc(100vh - 32px)}
@supports (height:100dvh){.modal .box{max-height:calc(100dvh - 32px)}}
@media(max-height:760px){
  .modal .box{max-height:calc(100vh - 20px)}
  @supports (height:100dvh){.modal .box{max-height:calc(100dvh - 20px)}}
}
@media(max-width:520px){
  .modal .box{height:100vh;max-height:100vh;padding-top:16px;padding-bottom:12px}
  @supports (height:100svh){.modal .box{height:100svh;max-height:100svh}}
  @supports (height:100dvh){.modal .box{height:100dvh;max-height:100dvh}}
  @supports (padding:max(0px)){.modal .box{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}}
}
/* Safari pré-versions récentes demande encore le préfixe pour le flou. */
.legacyJumpNav,.vehicleMapModal,.releaseToast{-webkit-backdrop-filter:blur(14px)}
.vehicleMapModal{-webkit-backdrop-filter:blur(10px)}
.releaseToast{-webkit-backdrop-filter:blur(16px)}
/* Les alertes ne doivent jamais recouvrir la navigation basse. */
@media(max-width:700px){
  .releaseToast{left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));width:auto;max-width:none}
}
/* Safe areas latérales, notamment iPhone en paysage. */
@supports (padding:max(0px)){
  .appTopbar,.appNav,.premiumMain{max-width:calc(100% - max(8px,env(safe-area-inset-left)) - max(8px,env(safe-area-inset-right)))}
  .vehicleMapModal{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
/* Empêche les doubles-taps/zoom accidentels sur les commandes sans casser les champs. */
button,.btn,.appNavItem,.appToolBtn,.colorChoice,.tripFilters button{touch-action:manipulation}
/* Fallback visuel si color-mix() n'est pas compris. */
.appNavItem.active{border-color:#376b93}
.moreMenuButton:hover{border-color:#315c7a}
.tripRouteSvg polyline,.tripMapOverlay polyline{filter:drop-shadow(0 0 5px #46d3ff77)}
@supports (color:color-mix(in srgb,white,black)){
  .appNavItem.active{border-color:color-mix(in srgb,var(--vehicle-accent) 45%,#1b3850)}
  .moreMenuButton:hover{border-color:color-mix(in srgb,var(--vehicle-accent) 45%,#27475d)}
  .tripRouteSvg polyline,.tripMapOverlay polyline{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--vehicle-accent) 65%,transparent))}
}


/* V1.11.8 — communauté WhatsApp */
.communityMenuButton{text-decoration:none}
.communityMenuButton>span{font-size:22px;background:#0c3027;color:#7ff0c8}
.landingCommunityFooter{width:min(620px,100%);margin:0 auto 12px}
.landingCommunityLink{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:13px 18px;border:1px solid #27604f;border-radius:18px;background:#09251e;color:#bdf7e2;text-decoration:none;font-weight:800;transition:.18s ease}
.landingCommunityLink:hover{border-color:#3d8a72;background:#0c3027;transform:translateY(-1px)}
@media(max-width:520px){.landingCommunityLink{min-height:48px;font-size:15px}}

/* v1.11.11 — photo d’accueil fournie par le propriétaire du site */
.landingVehiclePhoto{padding:0;overflow:hidden}
.landingVehiclePhoto>img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center center;border-radius:27px 27px 0 0;background:transparent}
.landingVehiclePhoto>.statusline{padding:0 22px 20px;margin:18px 0 0}
@media(max-width:850px){.landingVehiclePhoto>img{aspect-ratio:4/3}}
@media(max-width:520px){.landingVehiclePhoto>img{aspect-ratio:4/3;border-radius:27px 27px 0 0}.landingVehiclePhoto>.statusline{padding:0 16px 16px}}

.pendingConnectorNotice{border-color:#8a6820;background:#241d0d;color:#ffe4a3}.pendingConnectorNotice strong{color:#ffd166}

/* V1.11.14 — pages juridiques Markdown */
.footerLinks a,.appLegalFooter a{border:0;background:transparent;color:#8fb5cf;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px}
.footerLinks a:hover,.appLegalFooter a:hover{color:#fff}
.legalBrand{display:inline-block;margin-top:18px;text-decoration:none;color:#fff}
.legalLoading{padding:42px 12px;text-align:center;color:#8fa6b8}
.legalMarkdown{font-size:15.5px;line-height:1.78;color:#c7d4de}
.legalMarkdown h1{margin:0 0 12px;color:#fff;font-size:clamp(32px,5vw,48px);line-height:1.08}
.legalMarkdown h2{margin:34px 0 12px;padding-top:4px;color:#fff;font-size:22px;line-height:1.25}
.legalMarkdown h3{margin:26px 0 10px;color:#eaf5ff;font-size:18px}
.legalMarkdown p{margin:0 0 16px}
.legalMarkdown ul,.legalMarkdown ol{margin:0 0 18px;padding-left:24px}
.legalMarkdown li{margin:7px 0}
.legalMarkdown strong{color:#f3f9ff}
.legalMarkdown blockquote{margin:20px 0;padding:16px 18px;border-left:3px solid #46d3ff;border-radius:0 14px 14px 0;background:#0b2235;color:#d8e8f4}
.legalMarkdown hr{border:0;border-top:1px solid #173b55;margin:28px 0}
.legalMarkdown a{color:#69d9ff;overflow-wrap:anywhere}
.appLegalFooter{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:18px auto 0;padding:18px 10px 8px;color:#71899b;font-size:13px}
@media(max-width:520px){.legalMarkdown{font-size:15px}.legalMarkdown h2{font-size:20px}.appLegalFooter{gap:8px}}


/* V1.12.0 — Multi-véhicules */
.vehicleSwitcher{display:flex;align-items:center;gap:8px;margin-left:16px;padding:6px 8px;border:1px solid rgba(110,190,255,.18);border-radius:14px;background:rgba(6,24,42,.55)}
.vehicleSwitcher label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.vehicleSwitcher select{max-width:260px;background:#071a2c;color:#f5f9ff;border:1px solid rgba(110,190,255,.2);border-radius:10px;padding:8px 28px 8px 10px;font:inherit}
.vehicleAddTop{border:1px solid rgba(84,196,255,.32);background:rgba(37,139,255,.12);color:#dff4ff;border-radius:10px;padding:8px 10px;font-weight:700;cursor:pointer;white-space:nowrap}
.vehicleManagerList{display:grid;gap:8px;margin:12px 0}.vehicleManagerItem{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:rgba(5,20,35,.55);border:1px solid rgba(120,190,255,.15);color:inherit;border-radius:14px;padding:6px}.vehicleManagerItem.active{border-color:rgba(94,216,255,.58);box-shadow:inset 0 0 0 1px rgba(94,216,255,.12)}.vehicleManagerOpen{flex:1;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:transparent;border:0;color:inherit;padding:8px;cursor:pointer}.vehicleManagerOpen span:first-child{display:flex;flex-direction:column;gap:3px}.vehicleManagerOpen small{color:var(--muted)}.vehicleManagerRemove{border:1px solid rgba(255,105,120,.24);background:rgba(150,30,45,.12);color:#ffbdc5;border-radius:10px;padding:8px 10px;cursor:pointer}
.adminVehicleList{display:grid;gap:8px;margin-top:10px}.adminVehicleRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(120,190,255,.13);border-radius:12px;background:rgba(4,18,31,.45)}.adminVehicleRow.adminVehicleAuthExpired{border-color:rgba(255,139,139,.42);background:linear-gradient(145deg,rgba(61,20,28,.46),rgba(4,18,31,.5))}.adminVehicleRow>div:first-child{display:flex;flex-direction:column;gap:3px}.adminVehicleRow span{font-size:12px;color:var(--muted)}.adminVehicleSync{display:block;font-size:12px;line-height:1.35;color:#9fb5c7}.adminVehicleSync.ok{color:#8ff0c2}.adminVehicleSync.warn{color:#ffd166}.adminVehicleSync.bad,.adminVehicleSync.missing{color:#ffb4bd}.adminVehicleTools{display:flex;gap:6px;flex-wrap:wrap}.multiVehicleMemberRow{align-items:flex-start}
@media(max-width:760px){.appIdentity{flex-wrap:wrap}.vehicleSwitcher{order:3;width:100%;margin:8px 0 0}.vehicleSwitcher select{flex:1;min-width:0;max-width:none}.vehicleAddTop{padding:8px}.adminVehicleRow{align-items:flex-start;flex-direction:column}.adminVehicleTools{width:100%}.adminVehicleTools .btn{flex:1}.appTopbar{align-items:flex-start}}

/* myve-admin-members-mobile-actions-v1-20260923
   Les actions véhicule de l'administration restent lisibles sur mobile.
*/
@media(max-width:760px){
  .memberList{
    gap:18px;
  }

  .memberRow.multiVehicleMemberRow{
    padding:18px 0;
  }

  .memberRoleLine{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 10px;
  }

  .memberRoleLine>strong{
    max-width:100%;
    font-size:clamp(22px,6.2vw,30px);
    line-height:1.12;
  }

  .adminVehicleList{
    gap:12px;
    margin-top:14px;
  }

  .adminVehicleRow{
    gap:14px;
    padding:14px;
    border-radius:16px;
  }

  .adminVehicleRow>div:first-child{
    width:100%;
    min-width:0;
  }

  .adminVehicleRow>div:first-child strong{
    font-size:20px;
    line-height:1.15;
  }

  .adminVehicleRow>div:first-child span{
    display:block;
    margin-top:4px;
    font-size:14px;
    line-height:1.35;
  }

  .adminVehicleSync{
    margin-top:6px;
    font-size:13px;
    line-height:1.3;
  }

  .adminVehicleTools{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
  }

  .adminVehicleTools .btn{
    width:100%;
    min-width:0;
    min-height:52px;
    padding:9px 8px;
    border-radius:13px;
    justify-content:center;
    text-align:center;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
    font-size:13px;
    line-height:1.15;
  }

  .adminVehicleTools .memberVehicleDelete{
    grid-column:auto;
  }
}

@media(max-width:370px){
  .adminVehicleTools{
    grid-template-columns:1fr;
  }

  .adminVehicleTools .btn{
    min-height:46px;
  }
}

/* myve-admin-members-mobile-actions-v2-20260924
   Les cartes membres restent lisibles sur telephone, meme avec plusieurs vehicules.
*/
.memberRow.multiVehicleMemberRow,
.memberRow.multiVehicleMemberRow .memberIdentity,
.adminVehicleRow,
.adminVehicleTools{
  min-width:0;
}

.adminVehicleTools .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

@media(max-width:620px){
  .memberRow.multiVehicleMemberRow{
    gap:16px;
    padding:18px 0;
  }

  .memberRow.multiVehicleMemberRow .memberIdentity,
  .memberRow.multiVehicleMemberRow .memberTools{
    width:100%;
  }

  .memberRoleLine>strong{
    font-size:clamp(20px,6vw,26px);
    line-height:1.12;
  }

  .adminVehicleRow{
    padding:13px;
    gap:12px;
  }

  .adminVehicleTools{
    grid-template-columns:1fr;
    gap:8px;
  }

  .adminVehicleTools .btn{
    min-height:46px;
    padding:10px 12px;
    font-size:13px;
    line-height:1.18;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .memberTools{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  .memberTools .btn{
    width:100%;
    min-height:46px;
    justify-content:center;
    text-align:center;
    white-space:normal;
  }
}

/* myve-admin-members-vin-mobile-v3-20260924
   Diagnostic VIN lisible et boutons exploitables sur Android, iOS et desktop etroit.
*/
.adminVehicleRow.adminVehicleVinMismatch{
  border-color:rgba(255,116,132,.52);
  background:linear-gradient(145deg,rgba(70,19,30,.58),rgba(5,20,35,.62));
  box-shadow:inset 0 0 0 1px rgba(255,116,132,.08);
}

.adminVehicleRow>div:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}

.adminVehicleTools{
  justify-content:flex-end;
}

.adminVehicleTools .btn{
  max-width:100%;
  overflow-wrap:anywhere;
}

@media(max-width:760px){
  .memberRow.multiVehicleMemberRow{
    border-bottom-color:rgba(120,190,255,.18);
  }

  .memberRow.multiVehicleMemberRow .memberIdentity{
    overflow:hidden;
  }

  .adminVehicleRow{
    width:100%;
  }

  .adminVehicleTools{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(138px,1fr));
    align-items:stretch;
  }

  .adminVehicleTools .btn{
    min-height:48px;
    padding:10px;
    font-size:13px;
    line-height:1.15;
  }
}

@media(max-width:430px){
  .adminVehicleTools{
    grid-template-columns:1fr;
  }

  .memberRoleLine>strong,
  .adminVehicleRow>div:first-child strong{
    font-size:clamp(19px,5.8vw,24px);
  }
}


/* V1.12.1 — animations d'activité véhicule (état Peugeot confirmé) */
.vehicleActivity{position:relative;isolation:isolate}
.vehicleActivity>img{position:relative;z-index:2;animation:none}
.vehicleActivityBadges{position:absolute;left:12px;right:12px;bottom:8px;z-index:4;display:flex;justify-content:center;gap:7px;flex-wrap:wrap;pointer-events:none}
.vehicleActivityBadge{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;border:1px solid #ffffff1f;background:#06111cdb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:12px;font-weight:800;letter-spacing:.01em;box-shadow:0 8px 26px #0006}
.vehicleActivityBadge.charge{color:#dfff8c;border-color:#aee93655;box-shadow:0 0 20px #b6ff2a1f,0 8px 26px #0006}
.vehicleActivityBadge.climate{color:#c9f5ff;border-color:#58d9ff55;box-shadow:0 0 20px #58d9ff22,0 8px 26px #0006}
.legacyChargeRing.isCharging{animation:chargeRingBreath 1.65s ease-in-out infinite;box-shadow:0 0 0 1px #baff2940,0 0 32px #baff2930,inset 0 0 20px #baff2910}
.climateOrb.on{animation:climateOrbBreath 1.9s ease-in-out infinite}
@keyframes chargeRingBreath{0%,100%{filter:brightness(1)}50%{filter:brightness(1.17)}}
@keyframes climateOrbBreath{0%,100%{transform:scale(1);box-shadow:0 0 32px #46d3ff40,0 0 0 10px #46d3ff17}50%{transform:scale(1.035);box-shadow:0 0 58px #46d3ff70,0 0 0 14px #46d3ff12}}
@media(max-width:520px){.vehicleActivityBadges{bottom:3px}.vehicleActivityBadge{font-size:12px;padding:5px 8px}}
@media(prefers-reduced-motion:reduce){.legacyChargeRing.isCharging,.climateOrb.on{animation:none!important}}


/* V1.12.2 — heure de fin de recharge */
.chargeEndEstimate{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;margin-top:13px;padding:13px 14px;border:1px solid #24445d;border-radius:14px;background:linear-gradient(135deg,#071724,#09131d)}
.chargeEndEstimate.active{border-color:#39785d;background:linear-gradient(135deg,rgba(22,65,45,.58),#08151c);box-shadow:0 0 0 1px rgba(96,230,162,.05) inset}
.chargeEndIcon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#0b2130;font-size:19px}
.chargeEndEstimate.active .chargeEndIcon{background:#123324;box-shadow:0 0 18px rgba(96,230,162,.12)}
.chargeEndEstimate div{display:grid;gap:2px;min-width:0}.chargeEndEstimate small{font-size:12px;letter-spacing:.09em;color:#8da7ba;font-weight:800}.chargeEndEstimate strong{font-size:16px;color:#f5fbff}.chargeEndEstimate span:not(.chargeEndIcon){font-size:12px;color:#9fb6c7;line-height:1.35}
@media(max-width:520px){.chargeEndEstimate{padding:12px}.chargeEndEstimate strong{font-size:15px}}

/* V1.12.6 — Health & Self-Healing */
.healthCardsV126{grid-template-columns:repeat(4,minmax(0,1fr))}
.healthFleetCard{overflow:hidden}.healthFleet{display:grid;gap:9px;margin-top:14px}.healthFleetRow{display:grid;grid-template-columns:minmax(180px,1.45fr) minmax(110px,.7fr) minmax(175px,1fr) minmax(190px,1.15fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid #29445a;border-radius:15px;background:#071824}.healthFleetRow.ok{border-color:#255241}.healthFleetRow.warn,.healthFleetRow.setup{border-color:#6c5729;background:#1b170c66}.healthFleetRow.bad{border-color:#71343f;background:#210e1366}.healthFleetIdentity,.healthFleetMetric{display:flex;flex-direction:column;gap:3px;min-width:0}.healthFleetIdentity strong,.healthFleetMetric b{color:#e8f4fb}.healthFleetIdentity span,.healthFleetMetric span,.healthFleetMetric small{color:#8da4b6;font-size:12px;line-height:1.35}.healthFleetIdentity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.healthFleetTools{display:flex;justify-content:flex-end}.healthFleetTools .btn{padding:9px 11px;font-size:12px;white-space:nowrap}.goodTag{border-color:#2f7158!important;color:#8ff7c7!important}.warnTag{border-color:#765c28!important;color:#ffd477!important}
@media(max-width:980px){.healthFleetRow{grid-template-columns:1fr 1fr}.healthFleetIdentity{grid-column:1/-1}.healthFleetTools{grid-column:1/-1;justify-content:flex-start}.healthFleetTools .btn{width:100%}}
@media(max-width:620px){.healthCardsV126{grid-template-columns:1fr 1fr}.healthFleetRow{grid-template-columns:1fr}.healthFleetIdentity,.healthFleetTools{grid-column:auto}.healthFleetMetric{padding-top:7px;border-top:1px solid #ffffff0a}}


/* V1.12.12 — prérequis Peugeot visible avant connexion / inscription */
.landingPrerequisite{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:flex-start;margin:0 0 24px;padding:20px 22px;border:1px solid #2b6374;border-radius:22px;background:linear-gradient(135deg,rgba(16,52,68,.88),rgba(7,28,43,.92));box-shadow:0 18px 55px #0004,inset 0 1px #ffffff0a}
.landingPrerequisiteIcon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#0b3040;border:1px solid #347286;font-size:22px;box-shadow:0 10px 25px #0004}
.landingPrerequisite .small{color:#7fdff4;font-weight:850;letter-spacing:.09em}
.landingPrerequisite h2{margin:4px 0 7px;font-size:20px;color:#f4fbff}
.landingPrerequisite p{margin:0;color:#bfd0dc;line-height:1.6;font-size:15px}
.landingPrerequisite strong{color:#f3fbff}
@media(max-width:520px){.landingPrerequisite{grid-template-columns:1fr;padding:17px 18px;margin-bottom:18px}.landingPrerequisiteIcon{width:42px;height:42px}.landingPrerequisite h2{font-size:18px}.landingPrerequisite p{font-size:14px}}

/* V1.12.14 — estimation intelligente de recharge */
.chargeEnergyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.chargeEstimatorCard{border-color:#20506b;background:linear-gradient(180deg,rgba(12,43,61,.96),rgba(5,21,33,.96))}
.chargeEstimatorGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.chargeEstimatorGrid label{display:grid;gap:7px;color:#9fb1c1;font-size:12px;font-weight:700}
.chargeEstimatorGrid select{width:100%;min-height:48px;padding:11px 12px;border-radius:12px;border:1px solid #24445d;background:#05111c;color:#fff;font-size:15px}
@media(max-width:700px){.chargeEnergyGrid,.chargeEstimatorGrid{grid-template-columns:1fr}.chargeEstimatorGrid select{font-size:16px}}


/* V1.12.15 — protection serveur des paliers de recharge */
.chargeLimitGuardInfo{margin-top:12px;padding:12px 14px;border-radius:14px;border:1px solid rgba(148,163,184,.28);display:flex;flex-direction:column;gap:4px;background:rgba(148,163,184,.08)}
.chargeLimitGuardInfo strong{font-size:.93rem}.chargeLimitGuardInfo span{font-size:.82rem;line-height:1.45;opacity:.84}
.chargeLimitGuardInfo.active{border-color:rgba(34,197,94,.38);background:rgba(34,197,94,.09)}
.chargeLimitGuardInfo.full{border-color:rgba(59,130,246,.32);background:rgba(59,130,246,.08)}

/* V1.12.16 — Trust, Security & Moderation */
.landingTrust{width:min(1120px,calc(100% - 28px));margin:8px auto 28px;padding:22px;border:1px solid #24516d;border-radius:24px;background:linear-gradient(145deg,#0b2235d9,#07141fd9);box-shadow:0 18px 52px #0005}
.landingTrustHead{max-width:760px}.landingTrustHead h2{margin:5px 0 8px;font-size:clamp(24px,4vw,34px)}.landingTrustHead p{margin:0;color:#aac0d1;line-height:1.55}
.landingTrustGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.trustItem{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid #1f4159;border-radius:16px;background:#071724b5}.trustItem>span{font-size:21px}.trustItem>div{display:grid;gap:5px;min-width:0}.trustItem strong{font-size:13px;color:#eef8ff}.trustItem small{font-size:12px;color:#8fa8ba;line-height:1.45}
.moderatorBadge{border-color:#6d5a2c;background:#2a2110;color:#ffe3a0}.accountRoleBadge{display:inline-flex;margin-top:7px;padding:6px 9px;border:1px solid #2a536f;border-radius:999px;background:#0b2234;color:#bfe7ff;font-size:12px;font-weight:800}
.staffSecurityCard{margin-top:16px;padding:18px;border-color:#315a70;background:linear-gradient(145deg,#0c2232,#07131e)}.staffSecurityCard h3{margin:4px 0 8px}.staffSecurityCard .statusline{margin:10px 0 14px}
.twoFactorBox{padding:14px;border:1px solid #28516b;border-radius:16px;background:#061520}.twoFactorQr{display:grid;place-items:center;margin:12px 0}.twoFactorQr img{width:min(240px,72vw);padding:10px;border-radius:16px;background:#fff}.twoFactorSecret{display:block;margin:10px 0;padding:10px;border:1px solid #29465b;border-radius:10px;background:#020910;color:#d8efff;overflow-wrap:anywhere;font-size:12px}.recoveryCodes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.recoveryCodes code{display:block;text-align:center;padding:9px;border:1px solid #2b4a60;border-radius:10px;background:#04101a;color:#e8f7ff;letter-spacing:.08em}
.memberRoleLine{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.moderatorMemberRow{border-color:#65582f!important;background:linear-gradient(145deg,#1c1b12aa,#07131eaa)!important}.staffAuditCard{margin-top:16px}.staffAuditList{display:grid;gap:8px}.staffAuditRow{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:12px;border:1px solid #19364a;border-radius:13px;background:#06131e}.staffAuditRow>div{display:grid;gap:4px}.staffAuditRow span,.staffAuditRow small{color:#829aad;font-size:12px}.staffAuditRow small{text-align:right;overflow-wrap:anywhere;max-width:45%}
@media(max-width:850px){.landingTrustGrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.landingTrust{width:min(100% - 28px,1120px);padding:17px;margin-bottom:20px}.landingTrustGrid{grid-template-columns:1fr}.recoveryCodes{grid-template-columns:1fr}.staffAuditRow{flex-direction:column}.staffAuditRow small{text-align:left;max-width:none}}

/* V1.12.16.2 — Rester connecté */
.rememberLoginRow{align-items:flex-start;margin-top:4px;padding:12px 13px;border:1px solid rgba(123,145,170,.24);border-radius:14px;background:rgba(255,255,255,.025)}
.rememberLoginRow input{margin-top:3px;flex:0 0 auto}
.rememberLoginRow span{display:flex;flex-direction:column;gap:3px}
.rememberLoginRow strong{font-size:.95rem}
.rememberLoginRow small{display:block;line-height:1.35;opacity:.72}


/* V1.12.16.3 — accès direct au forum e-208 & e-2008 */
.forumTopBtn,.forumHeroBtn,.forumNavItem,.landingForumLink{text-decoration:none}
.forumTopBtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-color:#2d6b78;background:linear-gradient(135deg,#0b2932,#0a2030);color:#bff7ff;font-weight:800;box-shadow:inset 0 1px #ffffff08,0 8px 22px #0002;transition:.18s ease}
.forumTopBtn:hover{border-color:#43b4c4;background:linear-gradient(135deg,#0e3540,#0b2838);color:#efffff;transform:translateY(-1px)}
.forumHeroBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-color:#2d6b78!important;background:linear-gradient(135deg,#0a2834,#0b2030)!important;color:#d7fbff!important}
.forumHeroBtn:hover{border-color:#48cddd!important;background:linear-gradient(135deg,#0d3642,#0c2a3a)!important;transform:translateY(-1px)}
.landingCommunityFooter{display:grid;gap:10px}
.landingForumLink{border-color:#256977;background:linear-gradient(135deg,#082d35,#09252f);color:#bdf7ff}
.landingForumLink:hover{border-color:#3eaebf;background:linear-gradient(135deg,#0b3943,#0b2e39)}
.forumNavItem{color:#83dce9!important;border-color:#245566!important;background:linear-gradient(145deg,#0a2430,#071924)!important}
.forumNavItem:hover{color:#eaffff!important;border-color:#3aa9b7!important;background:linear-gradient(145deg,#0d3440,#092330)!important}
.forumNavItem svg{color:#4fd9e7}
@media(max-width:520px){
  .top .actions{gap:8px}
  .forumTopBtn{padding:9px 11px}
  .forumHeroBtn{width:100%}
}


/* V1.12.16.4 — Energy Buttons : Connexion + Création de compte */
.landingBtnIcon{
  width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 auto;transition:transform .2s ease,filter .2s ease
}
.landingBtnIcon svg{
  width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round
}
.landingBoltIcon svg{fill:currentColor;stroke:none}

.top .actions .landingLoginBtn,
.top .actions .landingSignupBtn,
.hero .actions .landingSignupBtn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:48px;transition:transform .2s ease,border-color .2s ease,
  box-shadow .2s ease,filter .2s ease,background .2s ease
}

/* CONNEXION — bleu nuit + cyan vivant, plus discret que le CTA */
.top .actions .landingLoginBtn{
  border:1px solid #28546f;
  background:
    radial-gradient(circle at 28% 15%,#1b496433 0,transparent 42%),
    linear-gradient(145deg,#0b2132,#081827);
  color:#d8e9f5;
  box-shadow:
    inset 0 1px #ffffff0b,
    0 8px 22px #00000024,
    0 0 0 0 #46d3ff00
}
.top .actions .landingLoginBtn::after{
  content:"";position:absolute;z-index:-1;top:-100%;left:-34%;width:28%;height:300%;
  transform:rotate(18deg);opacity:0;
  background:linear-gradient(90deg,transparent,#baf4ff44,transparent)
}
.top .actions .landingLoginBtn:hover{
  border-color:#4bbfd5;color:#f4fdff;
  background:
    radial-gradient(circle at 28% 15%,#2b749044 0,transparent 45%),
    linear-gradient(145deg,#0d2b3e,#0a2031);
  transform:translateY(-2px);
  box-shadow:
    inset 0 1px #ffffff12,
    0 12px 28px #00000030,
    0 0 20px #46d3ff18
}
.top .actions .landingLoginBtn:hover::after{
  opacity:1;animation:myveLandingShine .85s ease-out 1
}
.top .actions .landingLoginBtn:hover .landingBtnIcon{
  transform:scale(1.08);filter:drop-shadow(0 0 7px #46d3ff66)
}

/* CRÉER MON COMPTE — CTA électrique premium */
.top .actions .landingSignupBtn,
.hero .actions .landingSignupBtn{
  border:1px solid #64dcff55;
  background:
    radial-gradient(circle at 18% 12%,#b4f6ff42 0,transparent 31%),
    linear-gradient(112deg,#42c9f2 0%,#4d9dff 52%,#58dfbd 125%);
  color:#00131d;
  font-weight:850;
  box-shadow:
    inset 0 1px #ffffff66,
    0 10px 26px #268dd329,
    0 0 24px #46d3ff12
}
.top .actions .landingSignupBtn::before,
.hero .actions .landingSignupBtn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(115deg,transparent 18%,#ffffff55 43%,transparent 63%);
  transform:translateX(-135%);opacity:.35
}
.top .actions .landingSignupBtn::after,
.hero .actions .landingSignupBtn::after{
  content:"";position:absolute;z-index:-2;inset:-1px;border-radius:inherit;
  opacity:.26;filter:blur(11px);
  background:linear-gradient(90deg,#46d3ff,#4f91ff,#5de6b0)
}
.top .actions .landingSignupBtn:hover,
.hero .actions .landingSignupBtn:hover{
  transform:translateY(-2px) scale(1.012);
  filter:saturate(1.08) brightness(1.04);
  border-color:#b4f4ff88;
  box-shadow:
    inset 0 1px #ffffff7a,
    0 14px 34px #268dd33a,
    0 0 29px #4bd8ff20
}
.top .actions .landingSignupBtn:hover::before,
.hero .actions .landingSignupBtn:hover::before{
  animation:myveLandingCtaSweep .8s ease-out 1
}
.top .actions .landingSignupBtn:hover .landingBtnIcon,
.hero .actions .landingSignupBtn:hover .landingBtnIcon{
  transform:scale(1.12) rotate(-5deg);
  filter:drop-shadow(0 0 6px #ffffff66)
}
.top .actions .landingSignupBtn:active,
.hero .actions .landingSignupBtn:active,
.top .actions .landingLoginBtn:active{
  transform:translateY(0) scale(.985)
}

.top .actions .landingSignupBtn:disabled,
.hero .actions .landingSignupBtn:disabled{
  opacity:.55;filter:saturate(.45);box-shadow:none;transform:none
}

@keyframes myveLandingShine{
  from{left:-34%}to{left:116%}
}
@keyframes myveLandingCtaSweep{
  from{transform:translateX(-135%)}to{transform:translateX(135%)}
}

@media (prefers-reduced-motion:reduce){
  .top .actions .landingLoginBtn,
  .top .actions .landingSignupBtn,
  .hero .actions .landingSignupBtn,
  .landingBtnIcon{transition:none}
  .top .actions .landingLoginBtn::after,
  .top .actions .landingSignupBtn::before,
  .hero .actions .landingSignupBtn::before{animation:none!important}
}

@media(max-width:520px){
  .top .actions .landingLoginBtn,
  .top .actions .landingSignupBtn{min-height:44px;padding:10px 12px}
  .landingBtnIcon{width:19px;height:19px}
}



/* V1.12.16.5 — Mobile layout polish :
   - navigation basse en 6 colonnes réelles (inclut Forum)
   - en-tête landing mieux empilé
   - topbar connecté plus propre sur petits écrans
*/
.appPrimaryNav{grid-template-columns:repeat(6,minmax(0,1fr))}
.appPrimaryNav .appNavItem span{display:block;line-height:1.1;text-align:center}

@media(max-width:760px){
  .top{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .top .brand{
    line-height:1;
  }
  .top .actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
    align-items:stretch;
  }
  .top .actions > *{
    width:100%;
    min-width:0;
    margin:0;
  }
  .top .actions .landingSignupBtn{
    grid-column:1 / -1;
  }

  .appTopbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:12px;
  }
  .appIdentity{
    min-width:0;
  }
  .appUserTools{
    justify-self:end;
    align-self:start;
  }
  .vehicleSwitcher{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    width:100%;
    margin:10px 0 0;
    padding:8px 10px;
  }
  .vehicleSwitcher select{
    min-width:0;
    max-width:none;
  }
  .appPrimaryNav{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
}

@media(max-width:520px){
  .top .actions .landingLoginBtn,
  .top .actions .landingSignupBtn,
  .top .actions .forumTopBtn{
    min-height:46px;
    padding:10px 12px;
  }

  .appTopbar{
    grid-template-columns:1fr;
    gap:12px;
  }
  .appIdentity,
  .appUserTools{
    width:100%;
  }
  .appUserTools{
    justify-content:flex-end;
  }
  .vehicleSwitcher{
    grid-template-columns:1fr;
    gap:8px;
  }
  .vehicleAddTop{
    width:100%;
  }

  .appPrimaryNav{
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:0;
  }
  .appPrimaryNav .appNavItem{
    min-height:56px;
    padding:6px 1px;
    font-size:12px;
    letter-spacing:-.01em;
  }
  .appPrimaryNav .appNavItem svg{
    width:21px;
    height:21px;
  }
}


/* V1.12.16.6.1 — Clean compact landing hero */
.landingHero{padding:52px 0 34px;grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);gap:42px;align-items:center}
.landingHeroCopy{max-width:650px}
.landingHero .landingEyebrow{font-size:13px;letter-spacing:.09em;font-weight:700;margin-bottom:16px;color:#91a7ba}
.landingHero h1{font-size:clamp(42px,5.2vw,68px);line-height:1.01;letter-spacing:-.045em;margin:0 0 20px;max-width:700px}
.landingHero p{font-size:18px;line-height:1.55;max-width:670px;margin:0 0 24px;color:#a8bacb}
.landingHero .actions{gap:10px}
.landingHero .btn{padding:12px 16px;border-radius:14px}
.landingHero .landingVehiclePhoto{padding:16px;border-radius:24px;box-shadow:0 24px 64px #0006}
.landingHero .landingVehiclePhoto img{border-radius:18px;max-height:360px;object-fit:cover}
.landingHero .landingVehiclePhoto .statusline{margin:12px 0 0;gap:7px}
.landingHero .landingVehiclePhoto .tag{padding:7px 9px;font-size:12px}
@media(max-width:850px){.landingHero{padding:38px 0 30px;grid-template-columns:1fr;gap:26px}.landingHeroCopy{max-width:720px}.landingHero h1{font-size:clamp(40px,9vw,58px)}.landingHero .landingVehiclePhoto{max-width:680px}}
@media(max-width:520px){.landingHero{padding-top:26px;gap:22px}.landingHero .landingEyebrow{font-size:12px;margin-bottom:12px}.landingHero h1{font-size:clamp(36px,11vw,48px);line-height:1.02;margin-bottom:16px}.landingHero p{font-size:16px;line-height:1.5;margin-bottom:20px}.landingHero .actions{display:grid;grid-template-columns:1fr}.landingHero .actions .btn{width:100%}.landingHero .landingVehiclePhoto{padding:12px}.landingHero .landingVehiclePhoto img{max-height:280px}}


/* V1.12.16.7 — Landing réellement compacte, priorité mobile */
.landingHero{padding:38px 0 28px;grid-template-columns:minmax(0,1.04fr) minmax(340px,.96fr);gap:34px}
.landingHeroCopy{max-width:600px}
.landingHero .landingEyebrow{font-size:12px;margin-bottom:12px}
.landingHero h1{font-size:clamp(38px,4.6vw,58px);line-height:1.02;letter-spacing:-.04em;margin:0 0 15px;max-width:620px}
.landingHero p{font-size:17px;line-height:1.5;margin:0 0 19px;max-width:620px}
.landingHero .actions{gap:9px}
.landingHero .btn{min-height:46px;padding:11px 15px}
.landingHero .landingVehiclePhoto{padding:12px;border-radius:21px}
.landingHero .landingVehiclePhoto img{aspect-ratio:16/10;max-height:315px;border-radius:15px;object-fit:cover;object-position:center 56%}
.landingHero .landingVehiclePhoto .statusline{margin:9px 0 0;gap:6px}
.landingHero .landingVehiclePhoto .tag{padding:6px 8px;font-size:12px}

@media(max-width:760px){
  .top{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:14px 0}
  .top .brand{font-size:22px;white-space:nowrap}
  .top .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  .top .actions > *{width:100%;min-width:0;margin:0}
  .landingHero{padding:20px 0 22px;gap:18px}
  .landingHeroCopy{max-width:560px}
  .landingHero h1{font-size:clamp(32px,8.5vw,42px);margin-bottom:12px}
  .landingHero p{font-size:15px;line-height:1.45;margin-bottom:16px}
  .landingHero .actions{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:8px}
  .landingHero .actions .btn{width:100%;min-width:0}
  .landingHero .landingVehiclePhoto{max-width:none}
}

@media(max-width:520px){
  .wrap{width:min(100% - 24px,1120px)}
  .top{gap:9px;padding:12px 0}
  .top .brand{font-size:21px}
  .top .actions{gap:6px}
  .top .actions .landingLoginBtn,.top .actions .forumTopBtn{min-height:40px;padding:7px 9px;font-size:13px;border-radius:14px}
  .top .actions .landingLoginBtn .landingBtnIcon{width:17px;height:17px}
  .landingHero{padding-top:16px;gap:16px}
  .landingHero .landingEyebrow{font-size:12px;letter-spacing:.08em;margin-bottom:9px}
  .landingHero h1{font-size:clamp(31px,9.6vw,36px);line-height:1.01;letter-spacing:-.035em;margin-bottom:11px}
  .landingHero p{font-size:14px;line-height:1.42;margin-bottom:14px}
  .landingHero .actions{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}
  .landingHero .actions .btn{min-height:43px;padding:9px 10px;border-radius:13px;font-size:13px}
  .landingHero .actions .landingBtnIcon{width:17px;height:17px}
  .landingHero .landingVehiclePhoto{padding:8px;border-radius:18px}
  .landingHero .landingVehiclePhoto img{aspect-ratio:16/9;max-height:none;border-radius:12px;object-position:center 55%}
  .landingHero .landingVehiclePhoto .statusline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:7px 0 0}
  .landingHero .landingVehiclePhoto .tag{padding:5px 3px;font-size:12px;text-align:center;white-space:nowrap}
}

/* V1.12.16.8 — Correctif structure responsive landing.
   À <= 850 px, on sort volontairement le hero de la grille desktop afin
   d'empêcher tout chevauchement texte/photo, même si des règles antérieures
   redéfinissent grid-template-columns plus haut dans la feuille. */
@media (max-width:850px){
  .hero.landingHero{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    width:100%;
    min-width:0;
    gap:20px;
    padding:22px 0 24px;
  }
  .landingHeroCopy,
  .landingHero .landingVehiclePhoto{
    width:100%;
    max-width:none;
    min-width:0;
    margin:0;
  }
  .landingHeroCopy{order:1}
  .landingHero .landingVehiclePhoto{order:2}
  .landingHero .landingEyebrow{
    max-width:none;
    white-space:normal;
  }
  .landingHero h1,
  .landingHero p{
    width:100%;
    max-width:none;
    overflow-wrap:normal;
    word-break:normal;
  }
}

@media (max-width:520px){
  .hero.landingHero{gap:16px;padding:16px 0 20px}
  .landingHero .landingEyebrow{
    font-size:12px;
    line-height:1.35;
    letter-spacing:.075em;
    margin:0 0 8px;
  }
  .landingHero h1{
    font-size:clamp(30px,9.3vw,36px);
    line-height:1.03;
    letter-spacing:-.035em;
    margin:0 0 10px;
  }
  .landingHero p{
    font-size:14px;
    line-height:1.42;
    margin:0 0 14px;
  }
  .landingHero .actions{
    display:grid;
    grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);
    gap:8px;
    width:100%;
  }
  .landingHero .actions .btn{
    width:100%;
    min-width:0;
    min-height:43px;
    padding:9px 8px;
    font-size:12.5px;
    line-height:1.15;
    white-space:normal;
  }
  .landingHero .landingVehiclePhoto{
    padding:8px;
    border-radius:18px;
  }
  .landingHero .landingVehiclePhoto img{
    display:block;
    width:100%;
    aspect-ratio:16/9;
    height:auto;
    max-height:none;
    object-fit:cover;
    object-position:center 55%;
    border-radius:12px;
  }
  .landingHero .landingVehiclePhoto .statusline{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
    width:100%;
    margin:7px 0 0;
  }
  .landingHero .landingVehiclePhoto .tag{
    min-width:0;
    padding:5px 2px;
    font-size:12px;
    line-height:1.2;
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

@media (max-width:380px){
  .top{grid-template-columns:auto minmax(0,1fr);gap:7px}
  .top .brand{font-size:20px}
  .top .actions{gap:5px}
  .top .actions .landingLoginBtn,
  .top .actions .forumTopBtn{padding:7px 6px;font-size:12px}
  .landingHero .actions{grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr)}
  .landingHero .actions .btn{font-size:12px}
}

/* V1.12.16.9 — recharge : coût glissant 30 jours et changement de mois lisible */
.historyCostNotice{display:grid;gap:4px;margin:12px 0;padding:12px 14px;border:1px solid #2a526d;border-radius:14px;background:#0a2030;color:#c7d8e5}.historyCostNotice strong{color:#fff;font-size:13px}.historyCostNotice span{font-size:12px;line-height:1.45}.historyTariffScope{margin:12px 0 6px;color:#8198aa;font-size:12px;text-transform:uppercase;letter-spacing:.08em}


/* V1.12.16.10 — compte à compléter : échéance de suppression dans Membres & modérateurs */
.memberLifecycle{display:grid;gap:3px;width:fit-content;max-width:100%;margin:5px 0 3px;padding:9px 11px;border:1px solid #6d572a;border-radius:12px;background:linear-gradient(145deg,#2a210d,#171b22);color:#ffd978}.memberLifecycle strong{font-size:12px;color:#ffe49b}.memberLifecycle span{font-size:12px!important;color:#ffd978!important;font-weight:750}.memberLifecycle small{font-size:12px;color:#aebdca}.memberLifecycleDue{border-color:#7b343d;background:linear-gradient(145deg,#32151b,#1b171c)}.memberLifecycleDue strong,.memberLifecycleDue span{color:#ff9ba5!important}@media(max-width:620px){.memberLifecycle{width:100%;box-sizing:border-box}}

/* V1.12.16.12 — New Connected Home
   UX mobile-first : véhicule d'abord, résumé recharge, 4 accès permanents.
*/
.connectedPrimaryNav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.legacyDashboard[data-view="home"]>#overview,
.legacyDashboard[data-view="home"]>#energy,
.legacyDashboard[data-view="home"]>#climate,
.legacyDashboard[data-view="home"]>#moreMenu,
.legacyDashboard[data-view="home"]>#history,
.legacyDashboard[data-view="home"]>#settings,
.legacyDashboard[data-view="home"]>.vehicleActionRow{display:none!important}
.legacyDashboard[data-view="vehicle"]>#connectedHome,
.legacyDashboard[data-view="vehicle"]>#energy,
.legacyDashboard[data-view="vehicle"]>#climate,
.legacyDashboard[data-view="vehicle"]>#moreMenu,
.legacyDashboard[data-view="vehicle"]>#history,
.legacyDashboard[data-view="vehicle"]>#settings{display:none!important}
.legacyDashboard[data-view="energy"]>#connectedHome,
.legacyDashboard[data-view="climate"]>#connectedHome,
.legacyDashboard[data-view="plus"]>#connectedHome{display:none!important}
.connectedHome{display:grid;gap:14px;margin:0}
.connectedStatusPill{justify-self:start;display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:9px 13px;border-radius:999px;border:1px solid #29475b;background:#091a27;color:#cae2f2;box-shadow:inset 0 1px #ffffff08}
.connectedStatusPill>i{flex:0 0 9px;width:9px;height:9px;border-radius:50%;background:#8da2b2;box-shadow:0 0 0 4px #8da2b217}
.connectedStatusPill>div{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.connectedStatusPill strong{font-size:13px}.connectedStatusPill small{color:#8199ab;font-size:12px}
.connectedStatusPill.ok{border-color:#245a49;background:#081d19;color:#c9f8e6}.connectedStatusPill.ok>i{background:#63df9d;box-shadow:0 0 0 4px #63df9d20,0 0 16px #63df9d55}
.connectedStatusPill.stale{border-color:#6b5832;background:#211b0c;color:#ffe4aa}.connectedStatusPill.stale>i{background:#ffc95e}
.connectedStatusPill.error{border-color:#763d45;background:#260d12;color:#ffd0d5}.connectedStatusPill.error>i{background:#ff7182}
.connectedStatusPill.setup{border-color:#39536c;background:#0b1c2b}.connectedStatusPill.setup>i{background:#5aa8e8}
.connectedSetupCard{padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#315875;background:linear-gradient(135deg,#10283b,#091924)}
.connectedSetupCard h2{margin:4px 0 7px;font-size:21px}.connectedSetupCard p{margin:0;color:#9db1c1;max-width:620px;line-height:1.5}.connectedSetupCard .btn{flex:0 0 auto}
.connectedVehicleCard{position:relative;overflow:hidden;padding:22px;border-radius:28px;background:radial-gradient(circle at 74% 34%,color-mix(in srgb,var(--vehicle-accent) 18%,transparent),transparent 38%),linear-gradient(145deg,#0b2335,#06131f 72%);border-color:#294a61;box-shadow:0 22px 56px #0006,inset 0 1px #ffffff0c}
.connectedVehicleCard:after{content:"";position:absolute;inset:auto -15% 30% 22%;height:1px;background:linear-gradient(90deg,transparent,var(--vehicle-accent),transparent);box-shadow:0 0 22px var(--vehicle-accent);opacity:.35}
.connectedVehicleHead{position:relative;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.connectedVehicleHead h1{font-size:clamp(28px,5vw,42px);letter-spacing:-.035em;margin:4px 0 0}.connectedVehicleHead .small{letter-spacing:.08em}
.homeRefreshBtn{appearance:none;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border-radius:13px;border:1px solid #315875;background:#0a1c2a;color:#9ed0f4;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.homeRefreshBtn span{font-size:17px}.homeRefreshBtn.loading span{animation:heroRefreshSpin .9s linear infinite}.homeRefreshBtn:disabled{opacity:.6}
.connectedVehicleVisual{position:relative;z-index:1;height:240px;margin:0 -8px;display:flex;align-items:center;justify-content:center}.connectedVehicleVisual img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 24px #0009)}.connectedModelTag{position:absolute;right:8px;bottom:8px;padding:6px 9px;border-radius:999px;background:#06131dcc;border:1px solid #36546a;color:#a9c2d4;font-size:12px;backdrop-filter:blur(8px)}
.connectedVehicleMetrics{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #ffffff12;border-bottom:1px solid #ffffff12}.homeMetric{min-width:0;padding:16px 18px}.homeMetric+ .homeMetric{border-left:1px solid #ffffff12}.homeMetric small{display:block;color:#8ca3b4;margin-bottom:7px}.homeMetric strong{display:block;color:#f3f9fd;font-size:clamp(21px,4vw,31px);letter-spacing:-.025em;white-space:nowrap}.homeMetric strong em{font-style:normal;font-size:.55em;color:#a8bccb;font-weight:650}.homeMetric.battery strong,.homeMetric .stateText{color:var(--vehicle-accent)}.homeMetric .stateText{font-size:clamp(17px,3.2vw,24px);white-space:normal}.homeBatteryTrack{display:block;height:5px;margin-top:9px;border-radius:999px;background:#203343;overflow:hidden}.homeBatteryTrack i{display:block;height:100%;border-radius:inherit;background:var(--vehicle-accent);box-shadow:0 0 12px color-mix(in srgb,var(--vehicle-accent) 75%,transparent)}
.connectedFreshness{position:relative;z-index:2;display:flex;align-items:center;gap:7px;padding-top:13px;color:#82a0b5;font-size:12px}.connectedFreshness.fresh span:first-child{color:#67dfa3}.connectedFreshness.stale{color:#e3bd70}.connectedFreshness b{margin-left:auto;font-size:12px;color:#ffd379}
.connectedChargeNow{padding:16px 18px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border-color:#315a49;background:linear-gradient(135deg,#0a241d,#091a21)}.connectedChargeIcon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#163b2d;font-size:22px;box-shadow:0 0 24px #59e5931c}.connectedChargeNow h2{margin:3px 0;font-size:19px}.connectedChargeNow p{margin:0;color:#91ab9f;font-size:12px;line-height:1.4}.connectedChargeNow .textButton{white-space:nowrap}
.connectedMonthCard{padding:20px;border-radius:24px}.connectedSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.connectedSectionHead h2{margin:4px 0 0;font-size:24px}.connectedMonthStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:15px;border-top:1px solid #ffffff0f}.connectedMonthStats>div{min-width:0;padding:17px 16px 4px;text-align:center}.connectedMonthStats>div+div{border-left:1px solid #ffffff0f}.homeStatIcon{display:grid;place-items:center;height:28px;color:#58a9ff;font-size:25px;font-weight:800}.connectedMonthStats strong{display:block;margin-top:7px;font-size:clamp(19px,4vw,28px);white-space:nowrap}.connectedMonthStats strong em{font-style:normal;font-size:.52em;color:#9db1c0}.connectedMonthStats small{display:block;color:#8198a9;margin-top:6px}.connectedMonthHint{margin:15px 0 0;padding-top:12px;border-top:1px solid #ffffff0d;color:#849dad;font-size:12px}
.connectedShortcuts>h2{font-size:20px;margin:2px 0 10px}.connectedShortcutGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.connectedShortcut{appearance:none;text-decoration:none;min-width:0;min-height:94px;padding:13px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#e8f5fd;cursor:pointer;border-radius:19px}.connectedShortcut span{width:34px;height:34px;display:grid;place-items:center;color:var(--vehicle-accent)}.connectedShortcut svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.connectedShortcut strong{font-size:13px}.connectedShortcut:hover{transform:translateY(-1px);border-color:#3a6683}
.connectedCommunityCard{text-decoration:none;color:#e9f5fc;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 18px;border-radius:22px}.connectedCommunityIcon{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:#0d2e49;color:#5aafff}.connectedCommunityIcon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8}.connectedCommunityCard>div{display:flex;flex-direction:column;gap:3px}.connectedCommunityCard>div small{color:#8097a8}.connectedCommunityCard>b{font-size:28px;color:#7190a5;font-weight:300}
.onboardingHome{max-width:720px;margin:20px auto}.onboardingHome>h1{font-size:clamp(32px,6vw,48px);letter-spacing:-.04em;margin:7px 0 8px}.onboardingLead{color:#91a8b9;font-size:16px;line-height:1.5;margin:0 0 18px}.onboardingProgressCard{padding:20px;border-radius:24px}.onboardingStep{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;padding:11px 0}.onboardingStep:not(:last-of-type):after{content:"";position:absolute;left:16px;top:44px;bottom:-2px;width:2px;background:#1b394d}.onboardingStep>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#102a3c;border:1px solid #31556d;color:#86a6ba;font-weight:800;z-index:1}.onboardingStep.done>span{background:#0d3a2a;border-color:#276d50;color:#7df1b2}.onboardingStep.current>span{background:#0f3452;border-color:#367bad;color:#8ed0ff;box-shadow:0 0 0 5px #3399e512}.onboardingStep>div{display:flex;flex-direction:column;gap:3px;padding-top:4px}.onboardingStep small{color:#8199aa}.onboardingPrimaryAction{margin-top:17px}
@media(max-width:700px){
  .connectedPrimaryNav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .connectedStatusPill{margin-top:2px}.connectedStatusPill>div{display:block}.connectedStatusPill small{display:block;margin-top:2px}
  .connectedVehicleCard{padding:17px;border-radius:23px}.connectedVehicleVisual{height:190px;margin:-2px -8px 0}.connectedVehicleMetrics{grid-template-columns:1fr 1fr}.homeMetric{padding:13px 11px}.homeMetric:nth-child(3){grid-column:1 / -1;border-left:0;border-top:1px solid #ffffff12;padding-top:12px}.homeMetric:nth-child(2){border-left:1px solid #ffffff12}.homeMetric strong{font-size:25px}.homeMetric .stateText{font-size:18px}
  .connectedMonthCard{padding:17px}.connectedMonthStats>div{padding:15px 7px 4px}.connectedMonthStats strong{font-size:20px}.connectedMonthStats small{font-size:12px}.connectedSectionHead .textButton{font-size:12px}
  .connectedShortcutGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.connectedShortcut{min-height:83px;padding:10px 4px;border-radius:16px}.connectedShortcut strong{font-size:12px}.connectedShortcut span{height:29px}.connectedShortcut svg{width:25px;height:25px}
  .connectedSetupCard{align-items:stretch;flex-direction:column}.connectedSetupCard .btn{width:100%}.connectedCommunityCard{padding:15px}
}
@media(max-width:430px){
  .connectedVehicleHead h1{font-size:30px}.homeRefreshBtn b{display:none}.homeRefreshBtn{width:39px;padding:8px;justify-content:center}.connectedVehicleVisual{height:165px}.connectedVehicleMetrics{grid-template-columns:1fr 1fr}.homeMetric strong{font-size:23px}.connectedMonthStats strong{font-size:18px}.connectedMonthStats strong em{font-size:.5em}.connectedMonthStats small{font-size:12px}.connectedShortcut strong{font-size:12px}.connectedCommunityCard>div strong{font-size:13px}.connectedCommunityCard>div small{font-size:12px}
}

/* V1.12.16.13 — Recharge UX
   État en direct, synthèse mensuelle, historique 7/30/90 jours et réglages hiérarchisés.
*/
.rechargeUxPage{display:grid;gap:16px;max-width:1080px;margin:0 auto}
.rechargeUxHeader{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:2px 2px 4px}.rechargeUxHeader h1{margin:4px 0 4px;font-size:clamp(32px,5vw,46px);letter-spacing:-.04em}.rechargeUxHeader p{margin:0;color:#879fb0;line-height:1.45}.rechargeHeaderBattery{flex:0 0 auto;display:grid;justify-items:end;gap:1px;padding:10px 14px;border:1px solid #28485e;border-radius:16px;background:#081925}.rechargeHeaderBattery span,.rechargeHeaderBattery small{font-size:12px;color:#8198a9}.rechargeHeaderBattery strong{font-size:22px;color:var(--vehicle-accent)}
.rechargeLiveHero{position:relative;overflow:hidden;padding:21px;border-radius:26px;border-color:#2c5068;background:radial-gradient(circle at 82% 20%,color-mix(in srgb,var(--vehicle-accent) 13%,transparent),transparent 38%),linear-gradient(145deg,#0a2030,#06141f)}.rechargeLiveHero.active{border-color:#2f7056;background:radial-gradient(circle at 84% 15%,rgba(85,232,149,.16),transparent 40%),linear-gradient(145deg,#0b271f,#071722);box-shadow:0 20px 54px #0005,inset 0 1px #ffffff0a}.rechargeLiveHero.active:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 20%,rgba(121,255,181,.035) 48%,transparent 74%);animation:rechargeUxSweep 4.5s ease-in-out infinite}
@keyframes rechargeUxSweep{0%,100%{transform:translateX(-18%)}50%{transform:translateX(18%)}}
.rechargeLiveTop{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.rechargeLiveIdentity{display:flex;gap:13px;align-items:flex-start;min-width:0}.rechargeLiveBolt{flex:0 0 44px;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#102d40;border:1px solid #29536d;font-size:22px}.rechargeLiveHero.active .rechargeLiveBolt{background:#123b2b;border-color:#2c7252;box-shadow:0 0 24px rgba(99,223,157,.17)}.rechargeLiveIdentity h2{margin:3px 0 4px;font-size:clamp(21px,4vw,30px);letter-spacing:-.025em}.rechargeLiveIdentity p{margin:0;max-width:720px;color:#8fa8b8;font-size:12px;line-height:1.45}.rechargeLiveFresh{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #29475b;border-radius:999px;background:#071824;color:#8ca4b5;font-size:12px}.rechargeLiveFresh i{width:7px;height:7px;border-radius:50%;background:#7f95a5}.rechargeLiveFresh.fresh i{background:#66e2a1;box-shadow:0 0 12px rgba(102,226,161,.65)}.rechargeLiveFresh.stale{border-color:#65552f;color:#d5b66f}.rechargeLiveFresh.stale i{background:#ffc65b}
.rechargeLiveProgress{position:relative;z-index:1;margin:22px 0 8px;padding:16px 0 4px;border-top:1px solid #ffffff0e}.rechargeLiveProgress>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}.rechargeLiveProgress span{color:#849bab;font-size:12px}.rechargeLiveProgress strong{font-size:21px;color:#f3f9fc}.rechargeProgressTrack{position:relative;height:9px;border-radius:999px;background:#203543;box-shadow:inset 0 1px 3px #0008}.rechargeProgressTrack>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4ca6ff,var(--vehicle-accent));box-shadow:0 0 16px color-mix(in srgb,var(--vehicle-accent) 42%,transparent)}.rechargeProgressTrack>b{position:absolute;top:-5px;width:2px;height:19px;border-radius:2px;background:#f4fbff;transform:translateX(-1px);box-shadow:0 0 9px #fff8}.rechargeProgressLabels{display:grid!important;grid-template-columns:1fr 1fr 1fr!important;margin-top:6px}.rechargeProgressLabels span:nth-child(2){text-align:center;color:#c5d9e6}.rechargeProgressLabels span:last-child{text-align:right}
.rechargeLiveFacts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:12px;border:1px solid #ffffff0d;border-radius:17px;background:#04111a66;overflow:hidden}.rechargeLiveFacts>div{min-width:0;padding:13px 15px}.rechargeLiveFacts>div+div{border-left:1px solid #ffffff0d}.rechargeLiveFacts small{display:block;color:#7f98a9;margin-bottom:4px}.rechargeLiveFacts strong{display:block;color:#eaf5fb;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rechargeLiveActions{position:relative;z-index:1;display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin-top:14px}.rechargeLiveActions .btn{min-height:45px}
.chargeExplicitControls{position:relative;z-index:1;grid-column:1/-1;min-width:0;margin-top:12px;padding:14px;border:1px solid #ffffff24;border-radius:14px;background:#071923d9}.chargeExplicitControls p{margin:0 0 10px;line-height:1.5}.chargeExplicitControls p:last-child{margin:10px 0 0}.chargeExplicitButtons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.chargeExplicitButtons .btn{min-width:0;min-height:45px;white-space:normal}
@media(max-width:420px){.chargeExplicitButtons{grid-template-columns:1fr}}
.tempoCompactCard{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 16px;border-radius:20px;border-color:#254a60;background:linear-gradient(145deg,#071a28,#06141e);min-width:0}.tempoCompactCard[data-tempo-state=good]{border-color:#2d6f61;background:linear-gradient(145deg,#08221f,#06141e)}.tempoCompactCard[data-tempo-state=watch]{border-color:#6a5a26;background:linear-gradient(145deg,#211b0b,#06141e)}.tempoCompactCard[data-tempo-state=avoid]{border-color:#743343;background:linear-gradient(145deg,#260d15,#06141e)}.tempoCompactMain{min-width:0}.tempoCompactMain h3{margin:2px 0 4px;font-size:18px;letter-spacing:0}.tempoCompactMain p{margin:0;color:#91a8b8;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.tempoDays{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));align-items:stretch;gap:8px;min-width:0}.tempoDayMini{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:9px 11px;border:1px solid #24445a;border-radius:15px;background:#071723}.tempoDayMini>div{min-width:0}.tempoDayMini small{display:block;color:#7f98a9;font-size:12px;white-space:nowrap}.tempoDayMini strong{display:block;color:#eaf5fb;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tempoTariffs{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:5px}.tempoTariffs em{font-style:normal;padding:3px 6px;border-radius:999px;background:#03101aaa;border:1px solid #ffffff12;color:#aac1d2;font-size:12px;line-height:1;white-space:nowrap}.tempoDot{flex:0 0 12px;width:12px;height:12px;border-radius:50%;background:#718999;box-shadow:0 0 0 3px #ffffff0b}.tempoDayMini.blue .tempoDot{background:#3fa7ff;box-shadow:0 0 0 3px rgba(63,167,255,.16)}.tempoDayMini.white .tempoDot{background:#f4fbff;box-shadow:0 0 0 3px rgba(255,255,255,.18)}.tempoDayMini.red .tempoDot{background:#ff6174;box-shadow:0 0 0 3px rgba(255,97,116,.18)}.tempoRefresh{width:40px;height:40px;border-radius:14px;border:1px solid #294a60;background:#081a27;color:#d7edf8;font:inherit;font-weight:850;cursor:pointer}.tempoRefresh:disabled{opacity:.6;cursor:wait}
.rechargeMonthOverview{padding:20px;border-radius:24px}.rechargeSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.rechargeSectionHead h2{margin:3px 0 0;font-size:24px;letter-spacing:-.02em}.rechargeEstimateTag{padding:6px 9px;border-radius:999px;border:1px solid #294a60;background:#081a27;color:#7fa1b8;font-size:12px;font-weight:750}.rechargeMonthKpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;border-top:1px solid #ffffff0e}.rechargeMonthKpis>div{min-width:0;padding:17px 15px 5px;text-align:center}.rechargeMonthKpis>div+div{border-left:1px solid #ffffff0e}.rechargeMonthKpis>div>span{display:grid;place-items:center;height:27px;color:#59aaff;font-size:23px;font-weight:800}.rechargeMonthKpis strong{display:block;margin-top:6px;font-size:clamp(20px,4vw,28px);white-space:nowrap}.rechargeMonthKpis strong em{font-style:normal;font-size:.5em;color:#97adbc}.rechargeMonthKpis small{display:block;margin-top:5px;color:#7d95a6}.rechargeWeekBars{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;align-items:end;height:92px;margin-top:17px;padding:13px 12px 4px;border-top:1px solid #ffffff0d}.rechargeWeekBars>div{height:100%;display:grid;grid-template-rows:1fr auto;gap:4px;justify-items:center}.rechargeWeekBars>div>span{height:62px;width:100%;display:flex;align-items:end;justify-content:center}.rechargeWeekBars i{display:block;width:min(18px,54%);min-height:3px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--vehicle-accent),#408fca);box-shadow:0 0 12px color-mix(in srgb,var(--vehicle-accent) 20%,transparent)}.rechargeWeekBars small{font-size:12px;color:#708999;text-transform:capitalize}.rechargeRolloverHint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border:1px solid #2b5068;border-radius:13px;background:#081d2b;color:#9db5c6;font-size:12px}.rechargeRolloverHint strong{color:#ddecf5}
.rechargeHistoryBlock,.rechargeSettingsBlock{display:grid;gap:12px;padding-top:4px}.rechargePeriodTabs{display:flex;gap:7px;padding:4px;border:1px solid #234156;border-radius:15px;background:#06141f;width:max-content;max-width:100%}.rechargePeriodButton{appearance:none;border:0;border-radius:11px;background:transparent;color:#819aaa;padding:9px 15px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.rechargePeriodButton.active{background:#12334a;color:#cceaff;box-shadow:inset 0 0 0 1px #2d668a}.rechargePeriodSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #24445a;border-radius:18px;background:#071823;overflow:hidden}.rechargePeriodSummary>div{min-width:0;padding:13px 15px}.rechargePeriodSummary>div+div{border-left:1px solid #ffffff0d}.rechargePeriodSummary small{display:block;color:#7891a2;margin-bottom:4px}.rechargePeriodSummary strong{display:block;font-size:16px;color:#eaf5fb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rechargeSessionCards{display:grid;gap:8px}.rechargeSessionCard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #203f54;border-radius:17px;background:linear-gradient(145deg,#091b28,#06131d)}.rechargeSessionMain{display:flex;align-items:center;gap:11px;min-width:0}.rechargeSessionIcon{flex:0 0 36px;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#0d2d43;color:#6ec0ff}.rechargeSessionMain>div,.rechargeSessionNumbers{display:flex;flex-direction:column;gap:3px;min-width:0}.rechargeSessionMain strong{font-size:14px}.rechargeSessionMain small,.rechargeSessionNumbers small{color:#7891a2;font-size:12px}.rechargeSessionNumbers{text-align:right}.rechargeSessionNumbers strong{font-size:14px;color:#dff7ea}.rechargeEmptyHistory{display:flex;align-items:center;gap:12px;padding:17px}.rechargeEmptyHistory>span{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#0e2b3e}.rechargeEmptyHistory>div{display:flex;flex-direction:column;gap:3px}.rechargeEmptyHistory small{color:#8199aa}.rechargeEstimateNote{margin:0;color:#718a9b;font-size:12px;line-height:1.45}
.rechargeSettingsBlock{margin-top:4px;padding-top:17px;border-top:1px solid #ffffff10}.rechargeSettingsGrid{align-items:start}.rechargeSettingsGrid .rechargeScheduleCard,.rechargeSettingsGrid .rechargeTariffCard{grid-column:1/-1}.rechargeLimitCard,.rechargeSettingsGrid .chargeEstimatorCard,.rechargeScheduleCard,.rechargeTariffCard{border-radius:20px}.rechargeSaveButton{margin-top:2px}
.delayedChargeCard{border-radius:22px;background:radial-gradient(circle at 92% 8%,rgba(88,214,255,.12),transparent 34%),linear-gradient(145deg,#0a2132,#07141f)}.delayedChargeHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.delayedChargeHead h3{margin:3px 0 7px;font-size:24px}.delayedChargeStatus{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;margin:14px 0;padding:13px 14px;border:1px solid #24485f;border-radius:16px;background:#061620}.delayedChargeStatus>span{width:13px;height:13px;border-radius:50%;background:#7c94a4;box-shadow:0 0 0 5px rgba(124,148,164,.08)}.delayedChargeStatus.ready>span,.delayedChargeStatus.active>span{background:#5de6b0;box-shadow:0 0 0 5px rgba(93,230,176,.12),0 0 18px rgba(93,230,176,.28)}.delayedChargeStatus.waiting>span{background:#ffd166;box-shadow:0 0 0 5px rgba(255,209,102,.12)}.delayedChargeStatus strong{display:block;color:#edf8ff}.delayedChargeStatus small{display:block;margin-top:2px;color:#91a8b9;line-height:1.35}.delayedChargeToggle{margin:12px 0}.delayedChargeGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.delayedChargeGrid label{display:grid;gap:7px;color:#9fb1c1;font-size:12px;font-weight:750}.delayedChargeGrid input,.delayedChargeGrid select{width:100%;min-height:48px;padding:11px 12px;border-radius:12px;border:1px solid #24445d;background:#05111c;color:#fff;font-size:15px;color-scheme:dark}.delayedChargeActions{margin-top:12px}
@media(max-width:700px){
  .rechargeUxPage{gap:13px}.rechargeUxHeader{align-items:flex-start}.rechargeUxHeader h1{font-size:34px}.rechargeUxHeader p{font-size:12px}.rechargeHeaderBattery{padding:8px 10px;border-radius:13px}.rechargeHeaderBattery strong{font-size:18px}.rechargeHeaderBattery small{max-width:94px;text-align:right}
  .rechargeLiveHero{padding:16px;border-radius:22px}.rechargeLiveTop{display:grid}.rechargeLiveFresh{justify-self:start}.rechargeLiveIdentity{gap:10px}.rechargeLiveBolt{width:40px;height:40px;flex-basis:40px}.rechargeLiveIdentity h2{font-size:21px}.rechargeLiveFacts{grid-template-columns:1fr 1fr}.rechargeLiveFacts>div{padding:11px}.rechargeLiveFacts>div:nth-child(3){border-left:0;border-top:1px solid #ffffff0d}.rechargeLiveFacts>div:nth-child(4){border-top:1px solid #ffffff0d}.rechargeLiveFacts>div:nth-child(5){grid-column:1/-1;border-left:0;border-top:1px solid #ffffff0d}.rechargeLiveActions{grid-template-columns:1fr}.rechargeLiveActions .btn{width:100%}
  .delayedChargeGrid{grid-template-columns:1fr}.delayedChargeHead{display:grid}.delayedChargeHead .tag{justify-self:start}
  .tempoCompactCard{grid-template-columns:minmax(0,1fr) auto;gap:11px;padding:14px}.tempoDays{grid-column:1/-1;width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.tempoDayMini{min-width:0}.tempoRefresh{grid-column:2;grid-row:1}
  .rechargeMonthOverview{padding:16px}.rechargeMonthKpis>div{padding:14px 6px 4px}.rechargeMonthKpis strong{font-size:19px}.rechargeMonthKpis small{font-size:12px}.rechargeWeekBars{margin-top:13px;padding-left:4px;padding-right:4px;gap:4px}
  .rechargeSectionHead{align-items:flex-start}.rechargeSectionHead h2{font-size:21px}.rechargePeriodTabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.rechargePeriodButton{padding:9px 5px}.rechargePeriodSummary{grid-template-columns:1fr 1fr}.rechargePeriodSummary>div:nth-child(3){border-left:0;border-top:1px solid #ffffff0d}.rechargePeriodSummary>div:nth-child(4){border-top:1px solid #ffffff0d}.rechargeSessionCard{grid-template-columns:1fr;gap:8px}.rechargeSessionNumbers{text-align:left;padding-left:47px}.rechargeSettingsGrid{grid-template-columns:1fr!important}.rechargeSettingsGrid .rechargeScheduleCard,.rechargeSettingsGrid .rechargeTariffCard{grid-column:auto}
}
@media(max-width:430px){.rechargeUxHeader p{display:none}.rechargeHeaderBattery small{display:none}.rechargeMonthKpis strong{font-size:17px}.rechargeMonthKpis strong em{display:block;margin-top:1px}.rechargeEstimateTag{font-size:12px}.rechargeLiveProgress{margin-top:16px}.rechargeLiveFacts strong{font-size:13px}.rechargePeriodSummary strong{font-size:14px}.tempoDays{grid-template-columns:1fr}.tempoCompactMain h3{font-size:16px}}

/* V1.12.16.14 — Supporter myve.fr */
.appIdentityBadges{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.supporterBadge{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(93,230,176,.38);background:linear-gradient(135deg,rgba(14,63,51,.94),rgba(9,42,48,.94));color:#8af0c5;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:inset 0 1px rgba(255,255,255,.04),0 0 18px rgba(58,205,156,.06)}
.supporterBadge.compact{padding:5px 8px;font-size:12px;margin-top:0}
.supporterCard{margin-top:18px;padding:22px;border-color:rgba(73,184,149,.3);background:radial-gradient(circle at 88% 12%,rgba(60,222,174,.1),transparent 38%),linear-gradient(145deg,#0a1d2c,#0a1826);overflow:hidden}
.supporterCardIntro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.supporterCardIntro h2{margin:4px 0 8px}
.supporterCardIntro p{max-width:720px;margin:0;color:#aec0ce;line-height:1.55}
.supporterThanks{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(93,230,176,.38);background:rgba(28,100,78,.2);color:#76e8ba;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;white-space:nowrap}
.supporterChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
a.supporterChoice{text-decoration:none;color:inherit;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:86px;padding:15px;border:1px solid #1c3c51;border-radius:17px;background:rgba(5,20,31,.72);transition:transform .16s ease,border-color .16s ease,background .16s ease}
a.supporterChoice:hover,a.supporterChoice:focus-visible{transform:translateY(-2px);border-color:rgba(93,230,176,.6);background:rgba(8,33,42,.95);outline:0}
.supporterChoice>span{font-size:26px}.supporterChoice>div{display:grid;gap:4px}.supporterChoice strong{font-size:14px;color:#eef8fa}.supporterChoice small{font-size:12px;color:#8fa6b5}.supporterChoice>b{color:#61dbb1;font-size:20px}
.supporterFinePrint{margin:14px 0 0!important;color:#7f97a7!important;font-size:12px!important;line-height:1.5!important}
.supporterCardDisabled code{display:inline-block;margin-top:14px}
.memberSupporter.isSupporter{border-color:rgba(93,230,176,.5)!important;color:#6ce4b5!important;background:rgba(24,92,70,.18)!important}
.memberRoleLine{flex-wrap:wrap}
@media(max-width:850px){.supporterChoices{grid-template-columns:1fr}.supporterCardIntro{flex-direction:column}.supporterThanks{white-space:normal}}
@media(max-width:520px){.supporterCard{padding:17px}.supporterChoice{min-height:74px!important;padding:12px!important}.supporterChoice>span{font-size:22px}.supporterCardIntro h2{font-size:20px}}


/* V1.12.16.18 — animations recharge/clim sur le nouvel Accueil connecté */
.connectedVehicleVisual.vehicleActivity{isolation:isolate}
.connectedVehicleVisual.vehicleActivity>img{z-index:2}
.connectedVehicleVisual .connectedActivityBadges{left:8px;right:auto;top:8px;bottom:auto;justify-content:flex-start;z-index:5}
.connectedVehicleVisual .connectedModelTag{z-index:5}
.connectedVehicleCard.charging{border-color:color-mix(in srgb,#baff39 34%,#294a61);box-shadow:0 22px 56px #0006,inset 0 1px #ffffff0c,0 0 30px #aaff1820}
.connectedVehicleCard.climateOn{box-shadow:0 22px 56px #0006,inset 0 1px #ffffff0c,0 0 32px #58d9ff1f}
.connectedVehicleCard.charging.climateOn{box-shadow:0 22px 56px #0006,inset 0 1px #ffffff0c,-10px 0 30px #58d9ff18,10px 0 30px #aaff1818}
@media(max-width:520px){.connectedVehicleVisual .connectedActivityBadges{top:4px;left:4px}.connectedVehicleVisual .vehicleActivityBadge{font-size:12px;padding:4px 7px}}

/* V1.12.16.18 — Accueil connecté : animations recharge/clim restaurées */
/* V1.12.16.17 — Statistiques internes, sans Google */
.adminAnalyticsHead p{max-width:760px}.adminAnalyticsKpis{margin-bottom:18px}.analyticsDashboardGrid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px;margin:16px 0}.analyticsFunnelCard,.analyticsActivityCard,.analyticsUsageCard,.analyticsCommunityCard,.analyticsPrivacyCard{padding:20px}.analyticsFunnel{display:grid;gap:13px;margin-top:12px}.analyticsFunnelRow{display:grid;gap:6px}.analyticsFunnelRow>div:first-child{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px}.analyticsFunnelRow>div:first-child>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#102d3e;color:#7fd9ff;font-size:12px;font-weight:800}.analyticsFunnelRow strong{font-size:13px}.analyticsFunnelRow b{font-size:14px;color:#eef8fa}.analyticsFunnelRow small{color:#7892a4;font-size:12px}.analyticsBar,.analyticsUsageBar{height:7px;border-radius:999px;background:#102737;overflow:hidden}.analyticsBar i,.analyticsUsageBar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#29b8ff,#55dea8)}.analyticsMiniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:17px}.analyticsMiniStats span{padding:11px;border:1px solid #16374a;border-radius:13px;background:rgba(7,25,38,.65);display:grid;gap:2px}.analyticsMiniStats b{font-size:20px}.analyticsMiniStats small{font-size:12px;color:#829cac}.dailyActiveBars{height:150px;display:flex;align-items:flex-end;gap:7px;margin-top:15px;padding-top:10px}.dailyActiveBar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0}.dailyActiveBar i{display:block;width:100%;max-width:24px;min-height:5px;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,#56dea9,#279cf5)}.dailyActiveBar span{font-size:12px;color:#708a9c}.analyticsUsage{display:grid;gap:10px;margin-top:14px}.analyticsUsageRow{display:grid;grid-template-columns:minmax(150px,260px) 1fr 42px;align-items:center;gap:12px}.analyticsUsageRow>div:first-child{display:grid}.analyticsUsageRow strong{font-size:12px}.analyticsUsageRow span{font-size:12px;color:#7e98aa}.analyticsUsageRow>b{text-align:right;color:#eaf6f8}.analyticsCommunityStats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.analyticsCommunityStats div{padding:13px;border-radius:14px;background:#0a2030;border:1px solid #17384a;display:grid;gap:3px}.analyticsCommunityStats strong{font-size:23px}.analyticsCommunityStats small{font-size:12px;color:#819bad}.supportKinds{display:flex;gap:8px;flex-wrap:wrap}.supportKinds span{padding:8px 10px;border-radius:999px;background:rgba(19,54,57,.7);border:1px solid rgba(75,207,161,.25);font-size:12px;color:#a9c7c0}.supportKinds b{color:#73e1ba;margin-left:4px}.analyticsPrivacyRows{display:grid;gap:8px;margin-top:13px}.analyticsPrivacyRows div{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:8px;border-bottom:1px solid rgba(42,73,91,.6)}.analyticsPrivacyRows span{color:#819aaa;font-size:12px}.analyticsPrivacyRows strong{font-size:12px;text-align:right;max-width:58%}
@media(max-width:850px){.analyticsDashboardGrid{grid-template-columns:1fr}.analyticsUsageRow{grid-template-columns:minmax(120px,190px) 1fr 36px}}
@media(max-width:520px){.analyticsMiniStats{grid-template-columns:1fr}.analyticsUsageRow{grid-template-columns:115px 1fr 28px;gap:8px}.analyticsUsageRow span{display:none}.analyticsCommunityStats{grid-template-columns:1fr 1fr}.dailyActiveBars{gap:4px;height:125px}}


/* V1.12.16.19 — continuité visuelle pendant les trous de télémétrie Peugeot. */
.vehicleActivityBadge.recent{border-color:#80662d;background:#2d240e;color:#ffe09a;box-shadow:none}
.connectedChargeNow.recent{border-color:#5f512e;background:linear-gradient(145deg,#171b1c,#18170f)}
.rechargeLiveHero.recent{border-color:#665830}
.rechargeLiveHero.recent .rechargeLiveBolt{background:#302812;border-color:#6f5b2a;box-shadow:none}

/* Roboto UI tuning */
html{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:"Roboto",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.brand,.hero h1,.big,.stat strong{letter-spacing:-.018em}
.btn,.nav button,.vehicleTabs button,.tag,.pill{letter-spacing:.005em}
.big,.stat strong,.miniStats strong{font-variant-numeric:tabular-nums}
code,pre,kbd,samp,.diagnosticBox{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}


/* V1.12.16.25 — logo myve.fr responsive dans les en-têtes */
.brandLogo{display:inline-flex!important;align-items:center;justify-content:flex-start;flex:0 0 auto;font-size:0!important;line-height:0;letter-spacing:0!important}
.brandLogo picture{display:flex;align-items:center;justify-content:flex-start;line-height:0}
.brandLogo img{display:block;width:auto;height:58px;max-width:142px;object-fit:contain;object-position:left center;filter:drop-shadow(0 3px 10px rgba(0,0,0,.18))}
.brandLogoLink{display:inline-flex;align-items:center;text-decoration:none;line-height:0}
.appIdentity .brandLogo img{height:48px;max-width:118px}
.legalBrand .brandLogo img{height:48px;max-width:118px}
@media(max-width:850px){
  .brandLogo img{height:48px;max-width:118px}
  .appIdentity .brandLogo img{height:42px;max-width:104px}
}
@media(max-width:520px){
  .top .brandLogo img{height:38px;max-width:92px}
  .appIdentity .brandLogo img{height:34px;max-width:82px}
  .legalBrand .brandLogo img{height:36px;max-width:88px}
}
@media(max-width:380px){
  .top .brandLogo img{height:34px;max-width:82px}
  .appIdentity .brandLogo img{height:30px;max-width:74px}
  .legalBrand .brandLogo img{height:32px;max-width:78px}
}

/* V1.12.16.26 — PWA install + persistent session UX */
.landingPwaSection{margin:18px 0}
.pwaInstallCard,.pwaInstalledState{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:17px 18px;border:1px solid rgba(72,207,255,.28);border-radius:20px;background:linear-gradient(135deg,rgba(5,28,47,.94),rgba(5,18,31,.96));box-shadow:0 14px 40px rgba(0,0,0,.18)}
.pwaInstallCard>img,.pwaInstalledState>img{width:68px;height:68px;border-radius:17px;display:block;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.pwaInstallCopy{display:flex;flex-direction:column;gap:4px;min-width:0}.pwaInstallCopy strong,.pwaInstalledState strong{font-size:17px;color:#f5fbff}.pwaInstallCopy small,.pwaInstalledState small{color:#94adbf;line-height:1.4}.pwaInstalledState>div{display:flex;flex-direction:column;gap:4px}
.accountPwaCard{padding:0;overflow:hidden}.accountPwaCard .pwaInstallCard,.accountPwaCard .pwaInstalledState{border:0;border-radius:0;box-shadow:none;background:transparent}.pwaInstallCard.compact,.pwaInstalledState.compact{padding:17px}
.pwaInstallHero{display:flex;align-items:center;gap:16px;margin:4px 0 18px;padding:15px;border:1px solid #1d425d;border-radius:17px;background:#071a2a}.pwaInstallHero img{width:76px;height:76px;border-radius:19px}.pwaInstallHero>div{display:flex;flex-direction:column;gap:3px}.pwaInstallHero strong{font-size:24px}.pwaInstallHero span{color:#93aabd}.pwaInstallModal ol{padding-left:24px;line-height:1.7;color:#d3e0e9}.pwaInstallModal li{margin:8px 0}
.deviceSessionsCard{margin-top:18px}.deviceSessionsList{display:grid;margin-top:12px}.deviceSessionRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid #18374e}.deviceSessionRow:first-child{border-top:0}.deviceSessionRow.current{background:linear-gradient(90deg,rgba(40,205,166,.045),transparent)}.deviceSessionIcon{width:42px;height:42px;border:1px solid #21465f;border-radius:13px;display:grid;place-items:center;background:#071a29;font-size:21px}.deviceSessionMain{min-width:0;display:flex;flex-direction:column;gap:5px}.deviceSessionMain>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.deviceSessionMain small{color:#8299aa;overflow-wrap:anywhere}.deviceSessionRevoke{white-space:nowrap}
@media(max-width:640px){.pwaInstallCard,.pwaInstalledState{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px}.pwaInstallCard>img,.pwaInstalledState>img{width:54px;height:54px;border-radius:14px}.pwaInstallCard .pwaInstallBtn,.pwaInstalledState>.tag{grid-column:1/-1;width:100%}.pwaInstallCard .pwaInstallBtn{min-height:44px}.deviceSessionRow{grid-template-columns:auto minmax(0,1fr)}.deviceSessionRevoke{grid-column:1/-1;width:100%}.deviceSessionsCard>.headrow{align-items:flex-start}.deviceSessionsCard>.headrow .btn{font-size:12px;padding:9px 10px}}
@media(max-width:380px){.pwaInstallCard>img,.pwaInstalledState>img{width:48px;height:48px}.pwaInstallCopy strong{font-size:15px}.deviceSessionIcon{width:38px;height:38px}}

/* =========================================================
   V1.12.16.27 — CENTRE DE SANTÉ DU VÉHICULE
   ========================================================= */
.healthMenuButton{border-color:#24546a!important;background:linear-gradient(145deg,#0b1d2a,#092333)!important}
.healthMenuButton>span{color:#54d9e9!important}
.vehicleHealthPage{display:grid;gap:16px;max-width:1180px;margin:0 auto}
.vehicleHealthLoading{display:flex;align-items:center;gap:15px;padding:24px}
.vehicleHealthLoading>div{display:grid;gap:4px}.vehicleHealthLoading small{color:#8fa7b8}
.vehicleHealthPulse{width:22px;height:22px;border-radius:50%;background:#4fd8e8;box-shadow:0 0 0 0 #4fd8e866;animation:vehicleHealthPulse 1.4s infinite}
@keyframes vehicleHealthPulse{70%{box-shadow:0 0 0 14px #4fd8e800}100%{box-shadow:0 0 0 0 #4fd8e800}}
.vehicleHealthHero{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:24px;overflow:hidden;border-color:#285168}
.vehicleHealthHero:after{content:"";position:absolute;inset:auto -10% -70% 38%;height:180px;background:radial-gradient(circle,#36d3e622,transparent 68%);pointer-events:none}
.vehicleHealthHero.ok{border-color:#2d6f59}.vehicleHealthHero.warn,.vehicleHealthHero.setup{border-color:#775f2d}.vehicleHealthHero.bad{border-color:#713540}
.vehicleHealthHeroIcon{width:66px;height:66px;border-radius:22px;display:grid;place-items:center;background:#0d2c3d;border:1px solid #2d5e76;box-shadow:inset 0 0 22px #34d5e515}
.vehicleHealthHeroIcon span{font-size:30px;font-weight:900;color:#65e0ec}
.vehicleHealthHero.ok .vehicleHealthHeroIcon{background:#0f3027;border-color:#33725d}.vehicleHealthHero.ok .vehicleHealthHeroIcon span{color:#7ff2bd}
.vehicleHealthHero.bad .vehicleHealthHeroIcon{background:#35151c;border-color:#723844}.vehicleHealthHero.bad .vehicleHealthHeroIcon span{color:#ff9ca8}
.vehicleHealthHeroCopy{min-width:0}.vehicleHealthHeroCopy h1{margin:3px 0 6px;font-size:28px}.vehicleHealthHeroCopy p{margin:0;color:#a9bdca;max-width:720px;line-height:1.55}
.vehicleHealthMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.vehicleHealthMeta span{padding:6px 9px;border-radius:999px;background:#ffffff08;border:1px solid #ffffff0d;color:#91a9b9;font-size:12px}
.vehicleHealthBadge{align-self:start;padding:8px 11px;border-radius:999px;border:1px solid #34566c;background:#0b1b27;color:#cce9f2;font-size:12px;font-weight:800;white-space:nowrap}
.vehicleHealthGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vehicleHealthCheck{min-height:132px;display:grid;grid-template-columns:38px 1fr;gap:11px;padding:16px;border:1px solid #203d52;border-radius:18px;background:linear-gradient(145deg,#081925,#07141e)}
.vehicleHealthDot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#182b39;color:#a6bac8;font-weight:900}
.vehicleHealthCheck.ok{border-color:#23533f}.vehicleHealthCheck.ok .vehicleHealthDot{background:#173c2f;color:#8ff5c5}.vehicleHealthCheck.warn,.vehicleHealthCheck.setup{border-color:#665226}.vehicleHealthCheck.warn .vehicleHealthDot,.vehicleHealthCheck.setup .vehicleHealthDot{background:#3a3018;color:#ffd978}.vehicleHealthCheck.bad{border-color:#64323b}.vehicleHealthCheck.bad .vehicleHealthDot{background:#3a1a21;color:#ff9ba6}
.vehicleHealthCheck>div{display:flex;flex-direction:column;gap:4px;min-width:0}.vehicleHealthCheck small{color:#7f99aa;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.vehicleHealthCheck strong{font-size:17px;color:#f0f7fa}.vehicleHealthCheck p{margin:2px 0 0;color:#8fa7b7;font-size:12px;line-height:1.45}
.vehicleHealthActions{padding:20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.vehicleHealthActions h2{margin:3px 0 7px}.vehicleHealthActions p{margin:0;color:#9fb4c3;line-height:1.55}.vehicleHealthActionButtons{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.vehicleHealthActions>#healthActionMsg{grid-column:1/-1;margin:0;min-height:16px}.healthPrimaryAction{background:linear-gradient(135deg,#23b7d7,#31d394)!important;color:#03151d!important;border:0!important;font-weight:900!important}
.vehicleHealthTimeline{padding:20px}.vehicleHealthTimelineList{display:grid;margin-top:12px}.vehicleHealthTimelineRow{display:grid;grid-template-columns:32px 1fr;gap:11px;align-items:center;padding:12px 4px;border-bottom:1px solid #ffffff0b}.vehicleHealthTimelineRow:last-child{border-bottom:0}.vehicleHealthTimelineRow>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#1c2d39;color:#b7c8d3;font-weight:900}.vehicleHealthTimelineRow.ok>span{background:#173c2f;color:#8ff5c5}.vehicleHealthTimelineRow.warn>span{background:#3a3018;color:#ffd978}.vehicleHealthTimelineRow.bad>span{background:#3a1a21;color:#ff9ba6}.vehicleHealthTimelineRow>div{display:grid;gap:3px}.vehicleHealthTimelineRow small{color:#879dad;line-height:1.4}.vehicleHealthTimelineEmpty{padding:18px 0;color:#849aaa}
.vehicleHealthPrivacy{display:flex;gap:10px;align-items:flex-start;padding:4px 7px 18px;color:#7891a3}.vehicleHealthPrivacy p{margin:0;font-size:12px;line-height:1.55}.vehicleHealthPrivacy strong{color:#a9bfcc}.vehicleHealthError{margin:0}
@media(max-width:850px){.vehicleHealthGrid{grid-template-columns:1fr 1fr}.vehicleHealthActions{grid-template-columns:1fr}.vehicleHealthActionButtons{justify-content:flex-start}.vehicleHealthActionButtons .btn{flex:1}}
@media(max-width:580px){.vehicleHealthPage{gap:12px}.vehicleHealthHero{grid-template-columns:52px 1fr;padding:18px;gap:12px}.vehicleHealthHeroIcon{width:52px;height:52px;border-radius:17px}.vehicleHealthHeroIcon span{font-size:24px}.vehicleHealthBadge{grid-column:1/-1;justify-self:start}.vehicleHealthHeroCopy h1{font-size:22px}.vehicleHealthMeta{gap:6px}.vehicleHealthMeta span{font-size:12px}.vehicleHealthGrid{grid-template-columns:1fr}.vehicleHealthCheck{min-height:0;padding:14px}.vehicleHealthActions{padding:16px}.vehicleHealthActionButtons{display:grid;grid-template-columns:1fr}.vehicleHealthTimeline{padding:16px}}
@media(prefers-reduced-motion:reduce){.vehicleHealthPulse{animation:none}}


/* V1.12.16.27.2 — crochets explicites autour des liens juridiques */
.footerLinks,.appLegalFooter{column-gap:7px;row-gap:6px}
.legalFooterSep{color:#66859a;text-decoration:none;user-select:none;-webkit-user-select:none}
@media(max-width:520px){.footerLinks,.appLegalFooter{column-gap:5px;row-gap:5px}.legalFooterSep{font-size:12px}}


/* V1.12.16.27.3 — tarifs fournisseur séparés des 3 plages Smart Energy */
.rechargeTariffCard{position:relative;overflow:hidden}
.rechargeTariffCard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#2cbef2,#7b61ff)}
.rechargeTariffCard .tariffPriceGrid{margin-top:16px}
.tariffContractHint{margin:12px 0 0;padding-top:11px;border-top:1px solid #ffffff0d}
.rechargeScheduleCard{position:relative;overflow:hidden}
.rechargeScheduleCard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#21d19f,#2cbef2)}
@media(max-width:650px){.rechargeTariffCard .tariffPriceGrid{gap:10px}.rechargeTariffCard,.rechargeScheduleCard{padding-left:18px}}

/* myve-footer-sites-v1 */
.footerSites{width:100%;flex-basis:100%;margin-top:8px;text-align:center;color:#74899b;font-size:14px;line-height:1.5}
.footerSites a{color:#8fb5cf;text-decoration:underline;text-underline-offset:3px;padding:0 2px}
.footerSites a:hover{color:#fff}
.footerSites a:focus-visible{outline:2px solid #70d4ff;outline-offset:3px;border-radius:4px}
@media(max-width:520px){.footerSites{margin-top:7px;font-size:13px}}


/* myve-landing-neon-hero-v1 — hero minimaliste bleu néon */
.landingHeroNeon{grid-template-columns:minmax(0,.98fr) minmax(390px,1.02fr);gap:34px;align-items:center;padding:40px 0 32px}
.landingHeroNeon .landingHeroCopy{max-width:610px;position:relative;z-index:2}
.landingHeroNeon .landingEyebrow{letter-spacing:.16em;color:#9eb3c5;font-size:12px;margin-bottom:16px}
.landingHeroNeon h1{font-size:clamp(44px,5.2vw,66px);line-height:.98;letter-spacing:-.05em;margin:0 0 19px;color:#f5f9fd;text-shadow:0 10px 34px #0008}
.landingHeroAccent{display:inline-block;background:linear-gradient(90deg,#43a9ff 0%,#37d9f8 52%,#35efd8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.landingHeroNeon p{font-size:17px;line-height:1.55;color:#b1c2d0;margin:0 0 22px}
.landingHeroNeon .actions{gap:11px;align-items:stretch}
.landingHeroNeon .actions .btn{min-height:50px;border-radius:16px}
.landingHeroModels{margin-top:29px;padding-left:14px;border-left:1px solid #3da9ea66;display:grid;gap:7px;width:max-content;max-width:100%;color:#a8c5dc;text-transform:uppercase;letter-spacing:.16em}
.landingHeroModels>div{display:flex;align-items:center;gap:14px;font-size:12px;color:#d5e7f4;font-weight:650}
.landingHeroModels i{display:block;width:1px;height:13px;background:#4ba8d7aa}
.landingHeroModels small{font-size:12px;color:#5f91ba;letter-spacing:.28em}
.landingHeroNeon .landingNeonVehicle{padding:11px;border-radius:27px;background:linear-gradient(160deg,#07192acc,#04101bcc);border:1px solid #1d4562;box-shadow:0 28px 70px #0009,inset 0 1px #ffffff0b;overflow:hidden;position:relative}
.landingNeonImage{position:relative;overflow:hidden;border-radius:20px;background:#020b13;isolation:isolate}
.landingNeonImage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(2,10,18,.10),transparent 55%),linear-gradient(180deg,transparent 68%,rgba(2,9,16,.28));z-index:1}
.landingNeonImage picture,.landingNeonImage img{display:block;width:100%}
.landingHeroNeon .landingNeonImage img{height:auto;aspect-ratio:765/575;object-fit:cover;object-position:center;border-radius:0;max-height:none}
.landingNeonSideCopy{position:absolute;right:18px;top:28px;z-index:2;display:grid;justify-items:start;gap:12px;text-transform:uppercase;letter-spacing:.16em;color:#e7f2fa;text-shadow:0 2px 18px #000}
.landingNeonSideCopy strong{font-size:12px;line-height:1.6;font-weight:650}
.landingNeonSideCopy span{display:block;width:37px;height:2px;border-radius:2px;background:linear-gradient(90deg,#2be8f7,#5cb5ff);box-shadow:0 0 12px #28dffc88}
.landingNeonSideCopy small{font-size:12px;line-height:1.65;color:#a9bfd0}
.landingHeroNeon .statusline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 0}
.landingHeroNeon .tag{display:flex;align-items:center;justify-content:center;min-width:0;padding:7px 8px;border-radius:999px;background:#071b2cdd;border:1px solid #23506f;color:#dcecf7;font-size:12px;white-space:nowrap;box-shadow:inset 0 1px #ffffff09}
@media(max-width:850px){
  .hero.landingHeroNeon{display:flex;flex-direction:column;align-items:stretch;gap:22px;padding:24px 0 26px}
  .landingHeroNeon .landingHeroCopy,.landingHeroNeon .landingNeonVehicle{width:100%;max-width:none;margin:0}
  .landingHeroNeon h1{font-size:clamp(40px,9vw,58px)}
  .landingHeroModels{margin-top:22px}
  .landingHeroNeon .landingNeonVehicle{max-width:720px;align-self:center}
  .landingNeonSideCopy{right:22px;top:28px}
}
@media(max-width:520px){
  .hero.landingHeroNeon{gap:17px;padding:17px 0 21px}
  .landingHeroNeon .landingEyebrow{font-size:12px;line-height:1.4;letter-spacing:.11em;margin-bottom:10px}
  .landingHeroNeon h1{font-size:clamp(34px,10.7vw,43px);line-height:1;letter-spacing:-.04em;margin-bottom:12px}
  .landingHeroNeon p{font-size:14px;line-height:1.45;margin-bottom:15px}
  .landingHeroNeon .actions{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:8px}
  .landingHeroNeon .actions .btn{min-height:44px;padding:9px 8px;font-size:12.5px}
  .landingHeroModels{margin-top:16px;padding-left:10px;gap:5px}
  .landingHeroModels>div{gap:10px;font-size:12px}.landingHeroModels small{font-size:12px;letter-spacing:.23em}
  .landingHeroNeon .landingNeonVehicle{padding:7px;border-radius:20px}
  .landingNeonImage{border-radius:14px}
  .landingNeonSideCopy{right:12px;top:14px;gap:8px;letter-spacing:.12em}
  .landingNeonSideCopy strong{font-size:12px;line-height:1.45}.landingNeonSideCopy span{width:27px}.landingNeonSideCopy small{font-size:12px;line-height:1.5}
  .landingHeroNeon .statusline{gap:5px;margin-top:7px}
  .landingHeroNeon .tag{padding:5px 3px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.landingHeroAccent{background:#4ecfff;-webkit-background-clip:text;background-clip:text}}


/* myve-landing-neon-fullbleed-v2 — visuel intégré sans carte/cadre */
@media(min-width:851px){
  .hero.landingHeroNeon{
    position:relative;
    display:block;
    min-height:570px;
    padding:54px 0 42px;
    overflow:visible;
    isolation:isolate;
  }
  .landingHeroNeon .landingHeroCopy{
    position:relative;
    z-index:4;
    width:min(53%,610px);
    max-width:none;
    padding-top:28px;
  }
  .landingHeroNeon .landingNeonVehicle{
    position:absolute;
    z-index:1;
    top:0;
    right:-4%;
    bottom:0;
    width:76%;
    max-width:none;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .landingHeroNeon .landingNeonImage{
    position:absolute;
    inset:0;
    overflow:hidden;
    border-radius:0;
    background:transparent;
    isolation:isolate;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 8%,#000 23%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 8%,#000 23%,#000 100%);
  }
  .landingHeroNeon .landingNeonImage picture{
    display:block;
    width:100%;
    height:100%;
  }
  .landingHeroNeon .landingNeonImage img{
    display:block;
    width:100%;
    height:100%;
    max-height:none;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:center center;
    border-radius:0;
  }
  .landingHeroNeon .landingNeonImage:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(90deg,rgba(3,13,22,.86) 0%,rgba(3,13,22,.38) 15%,transparent 37%),
      linear-gradient(180deg,rgba(2,8,14,.08) 0%,transparent 58%,rgba(2,8,14,.20) 100%);
  }
  .landingHeroNeon .landingNeonSideCopy{
    right:5%;
    top:16%;
    z-index:3;
  }
  .landingHeroNeon .statusline{
    position:absolute;
    z-index:5;
    right:2%;
    bottom:18px;
    width:min(62%,620px);
    margin:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .landingHeroNeon .tag{
    background:#071b2cd9;
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
}
@media(min-width:851px) and (max-width:1050px){
  .hero.landingHeroNeon{min-height:530px;padding-top:42px}
  .landingHeroNeon .landingHeroCopy{width:55%;padding-top:24px}
  .landingHeroNeon .landingNeonVehicle{right:-7%;width:77%}
  .landingHeroNeon .statusline{width:64%;right:0}
  .landingHeroNeon .landingNeonSideCopy{right:4%;top:14%}
}
@media(max-width:850px){
  .landingHeroNeon .landingNeonVehicle{
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .landingHeroNeon .landingNeonImage{
    border-radius:0;
    background:transparent;
    overflow:hidden;
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 88%,rgba(0,0,0,.82) 96%,transparent 100%);
    mask-image:linear-gradient(180deg,#000 0%,#000 88%,rgba(0,0,0,.82) 96%,transparent 100%);
  }
  .landingHeroNeon .landingNeonImage img{border-radius:0}
  .landingHeroNeon .statusline{margin-top:2px}
}
@media(max-width:520px){
  .landingHeroNeon .landingNeonVehicle{padding:0;border-radius:0}
  .landingHeroNeon .landingNeonImage{border-radius:0}
}


/* myve-landing-neon-seamless-4k-v3 — image HD/4K avec transparence sur les 4 bords */
.landingNeonSideCopy{display:none!important}
@media(min-width:851px){
  .hero.landingHeroNeon{
    overflow:hidden;
    min-height:590px;
    padding-top:54px;
    padding-bottom:48px;
  }
  .landingHeroNeon .landingHeroCopy{
    z-index:5;
    width:min(54%,620px);
  }
  .landingHeroNeon .landingNeonVehicle{
    top:-7%;
    right:-10%;
    bottom:-14%;
    width:88%;
    overflow:visible;
    pointer-events:none;
  }
  .landingHeroNeon .landingNeonImage{
    inset:0;
    overflow:visible;
    -webkit-mask-image:none;
    mask-image:none;
    background:transparent;
  }
  .landingHeroNeon .landingNeonImage picture,
  .landingHeroNeon .landingNeonImage img{
    width:100%;
    height:100%;
  }
  .landingHeroNeon .landingNeonImage img{
    object-fit:cover;
    object-position:46% 43%;
    border-radius:0;
    background:transparent;
    filter:saturate(1.025) contrast(1.015);
  }
  .landingHeroNeon .landingNeonImage:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(90deg,rgba(3,16,28,.72) 0%,rgba(3,16,28,.28) 14%,transparent 34%),
      linear-gradient(180deg,rgba(3,16,28,.10) 0%,transparent 68%,rgba(3,16,28,.16) 100%);
  }
  .landingHeroNeon .statusline{
    z-index:6;
    right:10%;
    bottom:104px;
    width:min(56%,610px);
  }
}
@media(min-width:851px) and (max-width:1050px){
  .hero.landingHeroNeon{min-height:550px}
  .landingHeroNeon .landingNeonVehicle{right:-13%;width:91%;bottom:-13%}
  .landingHeroNeon .statusline{right:8%;bottom:92px;width:60%}
}
@media(max-width:850px){
  .landingHeroNeon .landingNeonImage{
    overflow:visible;
    -webkit-mask-image:none;
    mask-image:none;
    background:transparent;
  }
  .landingHeroNeon .landingNeonImage:after{
    background:linear-gradient(180deg,rgba(3,16,28,.08) 0%,transparent 64%,rgba(3,16,28,.18) 100%);
  }
  .landingHeroNeon .landingNeonImage img{
    display:block;
    width:100%;
    height:auto;
    background:transparent;
    border-radius:0;
    filter:saturate(1.02) contrast(1.01);
  }
}


/* myve-landing-neon-seamless-v4 — taille maîtrisée + vrais bords alpha fondus */
.landingNeonSideCopy{display:none!important}
.landingHeroNeon .landingNeonImage:after{display:none!important;background:none!important}
@media(min-width:851px){
  .hero.landingHeroNeon{
    min-height:570px;
    padding-top:54px;
    padding-bottom:42px;
    overflow:hidden;
  }
  .landingHeroNeon .landingHeroCopy{
    z-index:5;
    width:min(53%,610px);
  }
  .landingHeroNeon .landingNeonVehicle{
    top:0;
    right:-2%;
    bottom:0;
    width:76%;
    max-width:none;
    overflow:visible;
    pointer-events:none;
  }
  .landingHeroNeon .landingNeonImage{
    inset:0;
    overflow:visible;
    background:transparent!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
  .landingHeroNeon .landingNeonImage picture,
  .landingHeroNeon .landingNeonImage img{
    display:block;
    width:100%;
    height:100%;
    background:transparent!important;
  }
  .landingHeroNeon .landingNeonImage img{
    object-fit:contain;
    object-position:right center;
    border-radius:0;
    filter:saturate(1.02) contrast(1.01);
  }
  .landingHeroNeon .statusline{
    z-index:6;
    right:2%;
    bottom:18px;
    width:min(60%,620px);
  }
}
@media(min-width:851px) and (max-width:1050px){
  .hero.landingHeroNeon{min-height:535px;padding-top:42px;padding-bottom:38px}
  .landingHeroNeon .landingHeroCopy{width:55%}
  .landingHeroNeon .landingNeonVehicle{right:-3%;width:79%}
  .landingHeroNeon .statusline{right:1%;bottom:15px;width:62%}
}
@media(max-width:850px){
  .landingHeroNeon .landingNeonVehicle{
    width:100%;
    padding:0;
    border:0;
    background:transparent!important;
    box-shadow:none;
  }
  .landingHeroNeon .landingNeonImage{
    overflow:visible;
    background:transparent!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
  .landingHeroNeon .landingNeonImage picture,
  .landingHeroNeon .landingNeonImage img{
    display:block;
    width:100%;
    height:auto;
    background:transparent!important;
  }
  .landingHeroNeon .landingNeonImage img{object-fit:contain;filter:saturate(1.02) contrast(1.01)}
  .landingHeroNeon .statusline{margin-top:-8px;position:relative;z-index:6}
}


/* myve-landing-neon-seamless-v5 — visuel plus compact, qualité renforcée, bord droit invisible */
@media(min-width:1051px){
  .landingHeroNeon .landingNeonVehicle{right:-1%;width:72%}
  .landingHeroNeon .landingNeonImage img{
    object-fit:contain;
    object-position:right center;
    image-rendering:auto;
    filter:saturate(1.035) contrast(1.025) brightness(1.01);
  }
}
@media(min-width:851px) and (max-width:1050px){
  .landingHeroNeon .landingNeonVehicle{right:-1%;width:75%}
  .landingHeroNeon .landingNeonImage img{
    object-fit:contain;
    object-position:right center;
    image-rendering:auto;
    filter:saturate(1.035) contrast(1.025) brightness(1.01);
  }
}
@media(max-width:850px){
  .landingHeroNeon .landingNeonVehicle{
    width:94%;
    margin-left:auto;
    margin-right:auto;
  }
  .landingHeroNeon .landingNeonImage img{
    width:100%;
    height:auto;
    object-fit:contain;
    image-rendering:auto;
    filter:saturate(1.035) contrast(1.025) brightness(1.01);
  }
}

/* myve-connexion-carte-v1 — Connexion sous l’état du véhicule, sans changer les données. */
.homeVehicleStateMetric .connectedStatusInCard{
  box-sizing:border-box;
  display:inline-flex;
  align-items:flex-start;
  width:fit-content;
  max-width:100%;
  gap:9px;
  margin:10px 0 0;
  padding:8px 10px;
  border-radius:12px;
  vertical-align:top;
}
.homeVehicleStateMetric .connectedStatusInCard>i{
  flex:0 0 8px;
  width:8px;
  height:8px;
  margin-top:5px;
}
.homeVehicleStateMetric .connectedStatusInCard>div{
  display:grid;
  min-width:0;
  gap:2px;
}
.homeVehicleStateMetric .connectedStatusInCard strong{
  display:block;
  margin:0;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:normal;
  white-space:normal;
  overflow-wrap:anywhere;
  color:inherit;
}
.homeVehicleStateMetric .connectedStatusInCard small{
  display:block;
  margin:0;
  font-size:12px;
  line-height:1.4;
  white-space:normal;
  overflow-wrap:anywhere;
  color:#a9bfce;
}

/* myve-interface-v4 — accueil public enrichi, inspiré des cartes FAQ/compatibilité. */
.landingSectionHead{max-width:760px;margin:0 0 22px}.landingSectionHead.centered{text-align:center;margin-left:auto;margin-right:auto}.landingSectionHead .small{letter-spacing:.15em;color:#6fa8c9}.landingSectionHead h2{margin:6px 0 8px;font-size:clamp(28px,4vw,42px);line-height:1.08;letter-spacing:-.035em}.landingSectionHead p{margin:0;color:#9eb2c1;line-height:1.6}
.landingCompatibility{margin:18px 0 28px;padding:28px 26px;border-top:1px solid #163a52;border-bottom:1px solid #163a52;background:linear-gradient(90deg,transparent,#06131d99 16%,#06131d99 84%,transparent)}
.landingCompatibilityRail{display:flex;justify-content:center;align-items:stretch;gap:12px;flex-wrap:wrap}.landingCompatBrand,.landingCompatModel{min-width:190px;display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid #24455b;border-radius:18px;background:#07131dcc;box-shadow:inset 0 1px #ffffff08}.landingCompatBrand{justify-content:center;flex-direction:column;gap:3px}.landingCompatLion{font-weight:800;letter-spacing:.16em;color:#dfeaf1}.landingCompatBrand small,.landingCompatModel small{color:#6f8c9f;font-size:12px}.landingCompatModel strong{display:block;font-size:19px;color:#edf6fb}.landingCompatCar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#0b2637;border:1px solid #2d678b}
.landingCapabilities{margin:38px 0}.landingCapabilityGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.landingCapabilityCard{display:flex;gap:13px;min-height:128px;padding:20px;border-radius:20px;border:1px solid #1d3d52;background:linear-gradient(145deg,#081a27e8,#06121ce8);box-shadow:inset 0 1px #ffffff08}.landingCapabilityCard>span{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:13px;background:#0a2940;border:1px solid #235d82;font-size:20px}.landingCapabilityCard strong{font-size:16px}.landingCapabilityCard p{margin:7px 0 0;color:#91a9ba;font-size:13px;line-height:1.55}
.landingFaq{margin:48px 0 36px}.landingFaqList{display:grid;gap:12px}.landingFaqItem{border:1px solid #253a47;border-radius:20px;background:#081218e8;overflow:hidden}.landingFaqItem summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px;cursor:pointer;font-size:17px;font-weight:760;color:#edf5fa}.landingFaqItem summary::-webkit-details-marker{display:none}.landingFaqItem summary i{position:relative;flex:0 0 24px;width:24px;height:24px}.landingFaqItem summary i:before,.landingFaqItem summary i:after{content:"";position:absolute;left:4px;right:4px;top:11px;height:2px;border-radius:2px;background:#28d9b0}.landingFaqItem summary i:after{transform:rotate(90deg);transition:transform .18s ease}.landingFaqItem[open] summary i:after{transform:rotate(0deg)}.landingFaqAnswer{padding:0 22px 20px;color:#9cadb8;font-size:15px;line-height:1.65;max-width:980px}.landingFaqItem[open] summary{padding-bottom:10px}
.landingFinalCta{margin:42px 0 28px;padding:26px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-radius:24px;border:1px solid #24506a;background:linear-gradient(110deg,#072238,#07151f 62%,#09271f)}.landingFinalCta h2{margin:5px 0 6px;font-size:clamp(24px,3vw,34px);line-height:1.12}.landingFinalCta p{margin:0;color:#93a9b8}.landingFinalActions{display:flex;gap:9px;flex:0 0 auto}.landingFinalActions .btn{min-height:47px;white-space:nowrap}
@media(max-width:900px){.landingCapabilityGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.landingFinalCta{align-items:flex-start;flex-direction:column}.landingFinalActions{width:100%}.landingFinalActions .btn{flex:1}}
@media(max-width:560px){.landingCompatibility{margin-left:-10px;margin-right:-10px;padding:22px 10px}.landingCompatibilityRail{display:grid;grid-template-columns:1fr 1fr}.landingCompatBrand{grid-column:1/-1}.landingCompatBrand,.landingCompatModel{min-width:0;padding:13px}.landingCapabilityGrid{grid-template-columns:1fr}.landingCapabilityCard{min-height:0}.landingFaqItem summary{padding:16px;font-size:15px}.landingFaqAnswer{padding:0 16px 17px;font-size:14px}.landingFinalCta{padding:20px}.landingFinalActions{display:grid;grid-template-columns:1fr}.landingFinalActions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.landingFaqItem summary i:after{transition:none}}

/* myve-interface-v4-2-free-no-faq — gratuité clairement affichée sur l'accueil public. */
.landingFreePromise{margin:20px 0 28px;padding:20px 22px;display:flex;align-items:center;gap:16px;border:1px solid #1d7a64;border-radius:22px;background:linear-gradient(110deg,#06271fef,#071921ef 68%,#08273aef);box-shadow:inset 0 1px #ffffff0b,0 18px 45px #00000022}
.landingFreeIcon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:16px;background:#0a4939;border:1px solid #2acb9f;color:#82f1cf;font-size:25px;font-weight:850;box-shadow:0 0 30px #1bd9a52a}
.landingFreeCopy{min-width:0;flex:1}.landingFreeCopy .small{color:#64dfbd;letter-spacing:.14em}.landingFreeCopy h2{margin:4px 0 5px;font-size:clamp(21px,2.6vw,30px);line-height:1.13;letter-spacing:-.025em}.landingFreeCopy p{margin:0;color:#9dbdb3;font-size:14px;line-height:1.5}
.landingFreeBadges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;flex:0 0 auto}.landingFreeBadges span{padding:8px 10px;border:1px solid #276655;border-radius:999px;background:#08261f;color:#c7f8e9;font-size:12px;font-weight:760;white-space:nowrap}.landingFinalFree{margin-top:9px;color:#6ee0bd;font-size:12px;font-weight:720;letter-spacing:.01em}
@media(max-width:760px){.landingFreePromise{align-items:flex-start;flex-wrap:wrap}.landingFreeBadges{width:100%;justify-content:flex-start;padding-left:64px}}
@media(max-width:560px){.landingFreePromise{padding:17px 16px;border-radius:19px}.landingFreeIcon{flex-basis:42px;width:42px;height:42px;border-radius:14px;font-size:21px}.landingFreeCopy h2{font-size:20px}.landingFreeBadges{padding-left:0}.landingFreeBadges span{font-size:12px;padding:7px 9px}}

/* myve-vehicle-card-align-v527 — valeurs alignées et statut Peugeot compact. */
@media (min-width:701px){
  .connectedVehicleMetrics .homeMetric{
    display:grid;
    grid-template-rows:auto 48px auto;
    align-content:start;
    row-gap:0;
  }
  .connectedVehicleMetrics .homeMetric>small:first-child{
    align-self:start;
  }
  .connectedVehicleMetrics .homeMetric>strong{
    align-self:start;
    margin:0;
    line-height:1.08;
  }
  .connectedVehicleMetrics .homeMetric .homeBatteryTrack{
    align-self:start;
    width:100%;
    margin-top:9px;
  }
  .connectedVehicleMetrics .homeVehicleStateMetric .connectedStatusInCard{
    box-sizing:border-box;
    width:100%;
    max-width:none;
    min-height:66px;
    margin-top:9px;
    padding:9px 11px;
    border-radius:13px;
    gap:8px;
  }
  .homeVehicleStateMetric .connectedStatusInCard>i{
    margin-top:4px;
  }
  .homeVehicleStateMetric .connectedStatusInCard>div{
    gap:1px;
  }
  .homeVehicleStateMetric .connectedStatusInCard strong{
    font-size:12.5px;
    line-height:1.3;
  }
  .homeVehicleStateMetric .connectedStatusInCard small{
    font-size:12px;
    line-height:1.35;
  }
}
/* Le libellé de fraîcheur est déjà explicite dans le cartouche Peugeot. */
.connectedFreshness>b{display:none!important}
/* myve-vehicle-card-align-v5271 — correction métadonnée juridique uniquement. */

/* myve-login-eye-v5272 — connexion : œil mot de passe + focus bleu adouci. */
.authLoginBox .field input{
  border-color:#29475d;
  background:#061522;
  outline:none;
  box-shadow:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.authLoginBox .field input:hover{border-color:#365d76}
.authLoginBox .field input:focus,
.authLoginBox .field input:focus-visible{
  border-color:#4d8eaa;
  outline:none;
  box-shadow:0 0 0 2px rgba(70,180,220,.14);
  background:#06131f;
}
.loginPasswordWrap{position:relative;width:100%}
.authLoginBox .loginPasswordWrap input{padding-right:54px}
.loginPasswordToggle{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:40px;height:40px;display:grid;place-items:center;
  border:0;border-radius:11px;background:transparent;color:#8ca9bb;
  cursor:pointer;padding:0;outline:none;
}
.loginPasswordToggle:hover{background:#102638;color:#d6e9f4}
.loginPasswordToggle:focus-visible{box-shadow:0 0 0 2px rgba(70,180,220,.22);color:#eaf7ff}
.loginPasswordToggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.loginPasswordToggle .eyeClosed{display:none}
.loginPasswordToggle[aria-pressed="true"] .eyeOpen{display:none}
.loginPasswordToggle[aria-pressed="true"] .eyeClosed{display:block}
@media(max-width:520px){.loginPasswordToggle{width:42px;height:42px;right:6px}.authLoginBox .loginPasswordWrap input{padding-right:56px}}

/* myve-public-contact-v5292 — formulaire public de contact, sans CAPTCHA tiers. */
.contactPage{padding:28px 0 58px}
.contactPageTop{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}
.contactPageTop .brandLogoLink{display:inline-flex}
.contactLayout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px;align-items:start}
.contactIntroCard,.contactFormCard{padding:26px}
.contactIntroCard h1{margin:8px 0 14px;font-size:clamp(30px,5vw,46px);letter-spacing:-.04em}
.contactIntroCard p{color:#afc3d3;line-height:1.65}
.contactTopics{display:grid;gap:10px;margin-top:22px}
.contactTopic{display:flex;gap:11px;align-items:flex-start;padding:12px 13px;border-radius:14px;background:#0b2031;border:1px solid #1d4057;color:#cfe1ec}
.contactTopic span{font-size:18px;line-height:1.2}
.contactTopic small{display:block;color:#86a2b5;margin-top:2px;line-height:1.4}
.contactFormCard h2{margin:0 0 4px}
.contactForm{margin-top:18px}
.contactForm .field{margin:0 0 15px}
.contactForm .field input,.contactForm .field select,.contactForm .field textarea{
  width:100%;padding:13px 14px;border-radius:12px;border:1px solid #29485e;background:#061522;color:#f5f9fc;outline:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease
}
.contactForm .field textarea{resize:vertical;min-height:150px;line-height:1.55}
.contactForm .field input:focus,.contactForm .field select:focus,.contactForm .field textarea:focus{
  border-color:#4d9fc0;box-shadow:0 0 0 2px rgba(70,180,220,.14);background:#06131f
}
.contactForm .field label,.contactCaptchaLabel{display:block;margin-bottom:7px;color:#d8e5ed;font-weight:650}
.contactForm .optional{font-weight:400;color:#7f98aa;font-size:12px}
.contactCaptcha{margin:18px 0;padding:15px;border:1px solid #28536d;border-radius:14px;background:#0a1e2d}
.contactCaptchaHead{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.contactCaptchaQuestion{font-size:18px;font-weight:800;color:#e8f7ff}
.contactCaptchaReload{border:0;background:transparent;color:#83d9f5;text-decoration:underline;cursor:pointer;padding:5px}
.contactCaptchaRow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.contactCaptchaRow input{min-width:0}
.contactPrivacyNote{display:flex;gap:10px;align-items:flex-start;margin:15px 0;color:#89a6b8;font-size:12px;line-height:1.55}
.contactPrivacyNote a{color:#86d9f5}
.contactSubmitRow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.contactSubmitRow .btn{min-width:190px}
.contactStatus{min-height:22px;margin:0;color:#9eb3c2}
.contactStatus.warn{color:#ffd166}
.contactSuccess{text-align:center;padding:30px 10px}
.contactSuccessIcon{width:54px;height:54px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#113f35;border:1px solid #2b7d65;color:#7ff1c5;font-size:28px;font-weight:800}
.contactSuccess h2{margin:0 0 10px}
.contactSuccess p{color:#a9becc;line-height:1.6}
.contactTrap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
@media(max-width:760px){.contactLayout{grid-template-columns:1fr}.contactIntroCard,.contactFormCard{padding:20px}.contactPageTop{align-items:flex-start}.contactCaptchaRow{grid-template-columns:1fr}.contactSubmitRow .btn{width:100%}}
/* myve-home-community-v52102 — preuve sociale discrète sur l'accueil public. */
.landingMemberProof{margin-top:15px;display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:8px 12px;border:1px solid #24495d;border-radius:999px;background:#071722cc;color:#a8bfcd;font-size:12px;line-height:1.3;box-shadow:inset 0 1px #ffffff08}
.landingMemberProof strong{color:#eef8fc;font-weight:800;font-variant-numeric:tabular-nums}
.landingMemberProofHeart{color:#6ee0bd;font-size:16px;line-height:1}
@media(max-width:560px){.landingMemberProof{margin-top:13px;padding:7px 10px;font-size:12px}}

/* --- myve contact attachments v1 --- */
.contactAttachmentField input[type="file"]{width:100%;padding:12px;border:1px dashed rgba(125,190,255,.38);border-radius:14px;background:rgba(255,255,255,.035);color:inherit}.contactAttachmentList{display:grid;gap:7px;margin-top:9px}.contactAttachmentItem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04);font-size:.9rem}.contactAttachmentItem span{overflow-wrap:anywhere}.contactAttachmentItem small{white-space:nowrap;opacity:.72}
/* --- /myve contact attachments v1 --- */


/* myve-peugeot-e3008-e5008-complete-v2 — quatre modèles dans le hero sans débordement mobile. */
.landingHeroModels>div{flex-wrap:wrap;row-gap:7px;max-width:min(100%,560px)}
.landingHeroModels em{font-style:normal;font-size:.68em;letter-spacing:.08em;color:#72dcff;border:1px solid #3aaed466;border-radius:999px;padding:2px 5px;margin-left:3px}
@media(max-width:520px){.landingHeroModels>div{gap:7px 9px;max-width:330px}.landingHeroModels i{display:none}}

/* myve-ui-card-spacing-v1-20260919
   Rythme vertical homogène entre les grands encadrés :
   Véhicule, Recharge et Plus/Réglages.
*/
:root{
  --myve-panel-gap:18px;
  --myve-panel-gap-compact:14px;
}

.legacySection + .legacySection{
  margin-top:var(--myve-panel-gap);
}

#settings > .legacyTwoCol + .legacyControlCard,
#settings > .legacyControlCard + .legacyControlCard{
  margin-top:var(--myve-panel-gap);
}

#settings > .legacyTwoCol + .supportConfigHint,
#settings > .supportConfigHint + .legacyControlCard{
  margin-top:var(--myve-panel-gap);
}

#energy > .rechargeUxHeader + .card{
  margin-top:var(--myve-panel-gap);
}

#energy > .card + .card{
  margin-top:var(--myve-panel-gap);
}

#energy .rechargeSettingsBlock{
  margin-top:var(--myve-panel-gap) !important;
}

#energy > .card + .rechargeSettingsBlock,
#energy > .rechargeSettingsBlock + .card{
  margin-top:var(--myve-panel-gap);
}

#connectedHome > .card + .card,
#connectedHome > .card + .connectedShortcuts,
#connectedHome > .connectedShortcuts + .card{
  margin-top:var(--myve-panel-gap);
}

@media (max-width:650px){
  :root{
    --myve-panel-gap:var(--myve-panel-gap-compact);
  }
}

/* myve-ui-spacing-polish-v2-20260919
   Espacements explicites sur les cartes réellement présentes dans Plus,
   et rythme vertical plus propre dans Recharge.
*/
:root{
  --myve-card-stack-gap-v2:22px;
  --myve-card-stack-gap-mobile-v2:16px;
}

#history > .legacySectionTitle + article.card{
  margin-top:14px !important;
}
#history > article.card + article.card{
  margin-top:var(--myve-card-stack-gap-v2) !important;
}

#settings > .legacyTwoCol{
  margin-bottom:var(--myve-card-stack-gap-v2) !important;
}
#settings > article.card{
  margin-top:var(--myve-card-stack-gap-v2) !important;
}
#settings > .supportConfigHint,
#settings > .myve-vehicle-onboarding{
  margin-top:var(--myve-card-stack-gap-v2) !important;
  margin-bottom:var(--myve-card-stack-gap-v2) !important;
}

#energy.rechargeUxPage{
  row-gap:24px !important;
}
#energy .rechargeHistoryBlock,
#energy .rechargeSettingsBlock{
  row-gap:16px !important;
}
#energy .rechargeSettingsBlock{
  margin-top:0 !important;
  padding-top:22px !important;
}

.myveRechargeAnalysisPanelV2{
  width:min(100%,1080px) !important;
  max-width:1080px !important;
  box-sizing:border-box !important;
  margin:24px auto !important;
}
.myveRechargeAnalysisPanelV2 > * + *{
  margin-top:18px !important;
}
.myveRechargeAnalysisPanelV2 > .card + .card,
.myveRechargeAnalysisPanelV2 article.card + article.card{
  margin-top:16px !important;
}

@media (max-width:700px){
  #history > article.card + article.card,
  #settings > article.card,
  #settings > .supportConfigHint,
  #settings > .myve-vehicle-onboarding{
    margin-top:var(--myve-card-stack-gap-mobile-v2) !important;
  }
  #settings > .legacyTwoCol{
    margin-bottom:var(--myve-card-stack-gap-mobile-v2) !important;
  }
  #energy.rechargeUxPage{
    row-gap:18px !important;
  }
  .myveRechargeAnalysisPanelV2{
    margin:18px auto !important;
  }
  .myveRechargeAnalysisPanelV2 > * + *{
    margin-top:14px !important;
  }
}

/* myve-recharge-analysis-polish-v3-20260919
   Le grand cadre disparaît au profit d'une vraie section compacte.
   Les sous-cartes et commandes restent fonctionnellement inchangées.
*/
.myveRechargeAnalysisPanelV2.myveAnalysisPolishedV3{
  width:min(100%,1040px) !important;
  max-width:1040px !important;
  margin:28px auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.myveRechargeAnalysisPanelV2.myveAnalysisPolishedV3 > * + *{
  margin-top:0 !important;
}

.myveAnalysisPolishedV3 .myveAnalysisEyebrowV3{
  display:block;
  margin:0 0 4px !important;
  color:#7f9aad !important;
  font-size:12px !important;
  font-weight:750 !important;
  letter-spacing:.09em !important;
}

.myveAnalysisPolishedV3 h1,
.myveAnalysisPolishedV3 h2{
  margin-top:0 !important;
  margin-bottom:0 !important;
  line-height:1.08 !important;
}

.myveAnalysisPolishedV3 h1{font-size:clamp(30px,3vw,40px) !important;}
.myveAnalysisPolishedV3 h2{font-size:clamp(26px,2.6vw,36px) !important;}

.myveAnalysisPolishedV3 .myveAnalysisExplainV3{
  min-height:40px !important;
  padding:8px 14px !important;
  border-radius:999px !important;
  font-size:13px !important;
}

.myveAnalysisPolishedV3 .myveAnalysisTabsV3{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:6px !important;
  width:min(100%,620px) !important;
  margin:18px 0 20px !important;
  padding:5px !important;
  border:1px solid rgba(65,116,148,.55) !important;
  border-radius:16px !important;
  background:rgba(5,19,30,.55) !important;
}

.myveAnalysisPolishedV3 .myveAnalysisTabsV3 > *{
  min-height:44px !important;
  padding:8px 12px !important;
  border-radius:12px !important;
  font-size:14px !important;
}

.myveAnalysisPolishedV3 .myveAnalysisMetricsGridV3{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:12px !important;
  width:100% !important;
  margin:0 !important;
  align-items:stretch !important;
}

.myveAnalysisPolishedV3 .myveAnalysisMetricV3{
  min-width:0 !important;
  min-height:126px !important;
  padding:15px 16px !important;
  border-radius:16px !important;
  background:linear-gradient(145deg,rgba(15,38,53,.92),rgba(8,26,39,.94)) !important;
  border:1px solid rgba(71,111,136,.42) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025) !important;
}

.myveAnalysisPolishedV3 .myveAnalysisMetricV3 strong{
  font-size:clamp(22px,2vw,30px) !important;
  line-height:1.05 !important;
}

.myveAnalysisPolishedV3 .myveAnalysisMetricV3 small,
.myveAnalysisPolishedV3 .myveAnalysisMetricV3 span{
  line-height:1.3 !important;
}

.myveAnalysisPolishedV3 .myveAnalysisMetricV3.isActive{
  background:linear-gradient(145deg,rgba(16,43,59,.96),rgba(8,28,42,.96)) !important;
}

.myveAnalysisPolishedV3 .myveAnalysisTariffV3{
  width:min(100%,360px) !important;
  min-height:0 !important;
  margin:14px 0 0 !important;
  padding:12px 15px !important;
  border-radius:14px !important;
  background:rgba(7,27,47,.78) !important;
  border:1px solid rgba(48,112,183,.5) !important;
  box-shadow:none !important;
}

.myveAnalysisPolishedV3 .myveAnalysisNotesV3{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin-top:14px !important;
}

.myveAnalysisPolishedV3 .myveAnalysisNoteV3{
  flex:0 1 auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:8px 11px !important;
  border-radius:12px !important;
  font-size:12px !important;
  line-height:1.35 !important;
  background:rgba(12,31,44,.72) !important;
  border:1px solid rgba(67,104,128,.38) !important;
}

@media (max-width:980px){
  .myveAnalysisPolishedV3 .myveAnalysisMetricsGridV3{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media (max-width:640px){
  .myveRechargeAnalysisPanelV2.myveAnalysisPolishedV3{
    margin:18px auto !important;
  }

  .myveAnalysisPolishedV3 .myveAnalysisTabsV3{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    width:100% !important;
    margin:14px 0 16px !important;
  }

  .myveAnalysisPolishedV3 .myveAnalysisMetricsGridV3{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .myveAnalysisPolishedV3 .myveAnalysisMetricV3{
    min-height:112px !important;
    padding:13px !important;
  }

  .myveAnalysisPolishedV3 .myveAnalysisMetricV3.isActive{
    grid-column:1 / -1 !important;
  }

  .myveAnalysisPolishedV3 .myveAnalysisTariffV3{
    width:100% !important;
  }

  .myveAnalysisPolishedV3 .myveAnalysisNotesV3{
    display:grid !important;
    grid-template-columns:1fr !important;
  }
}

/* myve-recharge-analysis-direct-polish-v4-20260919
   Ciblage direct des classes réelles du composant Recharge V2.
   Aucun JS métier ni aucun calcul n'est modifié.
*/

/* Le gros conteneur "carte dans la carte" disparaît. */
.vehicleStatistics .rechargePeriodOverviewV2{
  display:grid !important;
  grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr) !important;
  grid-template-areas:
    "head head"
    "tabs tabs"
    "kpis kpis"
    "tariff quality"
    "bars bars" !important;
  column-gap:18px !important;
  row-gap:16px !important;

  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:4px 0 2px !important;

  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}

/* Neutralise les anciennes classes ajoutées par les essais v2/v3. */
.vehicleStatistics .rechargePeriodOverviewV2.myveRechargeAnalysisPanelV2,
.vehicleStatistics .rechargePeriodOverviewV2.myveAnalysisPolishedV3{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:4px 0 2px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.vehicleStatistics .rechargePeriodOverviewV2 > .rechargeSectionHead{
  grid-area:head !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin:0 !important;
  padding:0 2px !important;
}

.vehicleStatistics .rechargePeriodOverviewV2 > .rechargeSectionHead .small{
  margin-bottom:4px !important;
  color:#7896a9 !important;
  font-size:12px !important;
  font-weight:760 !important;
  letter-spacing:.09em !important;
}

.vehicleStatistics .rechargePeriodOverviewV2 > .rechargeSectionHead h2{
  margin:0 !important;
  font-size:clamp(27px,2.7vw,36px) !important;
  line-height:1.05 !important;
  letter-spacing:-.02em !important;
}

.vehicleStatistics .rechargePeriodOverviewV2 .rechargeEstimateTag{
  flex:0 0 auto !important;
  padding:8px 13px !important;
  min-height:0 !important;
  border-radius:999px !important;
  font-size:12px !important;
  line-height:1 !important;
  color:#91acbd !important;
  background:rgba(8,29,42,.62) !important;
  border:1px solid rgba(60,105,132,.45) !important;
}

/* Périodes : pleine largeur mais visuellement légère. */
.vehicleStatistics .rechargePeriodTabsV2{
  grid-area:tabs !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:5px !important;
  width:min(100%,620px) !important;
  margin:0 !important;
  padding:5px !important;
  border-radius:15px !important;
  border:1px solid rgba(55,98,125,.55) !important;
  background:rgba(4,18,29,.58) !important;
  box-shadow:none !important;
}

.vehicleStatistics .rechargePeriodTabsV2 .rechargePeriodButton{
  min-height:42px !important;
  padding:8px 12px !important;
  border-radius:11px !important;
  border:0 !important;
  background:transparent !important;
  color:#91a9b9 !important;
  font-size:13px !important;
  font-weight:750 !important;
  box-shadow:none !important;
}

.vehicleStatistics .rechargePeriodTabsV2 .rechargePeriodButton.active{
  color:#e8f6ff !important;
  background:linear-gradient(145deg,rgba(19,65,91,.94),rgba(12,46,69,.95)) !important;
  box-shadow:inset 0 0 0 1px rgba(77,181,235,.48) !important;
}

/* KPI : 5 cartes compactes, même hauteur, typographie mieux hiérarchisée. */
.vehicleStatistics .rechargePeriodKpisV2{
  grid-area:kpis !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:11px !important;
  margin:0 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div{
  min-width:0 !important;
  min-height:112px !important;
  padding:14px 15px !important;
  border-radius:15px !important;
  border:1px solid rgba(61,96,118,.38) !important;
  background:linear-gradient(145deg,rgba(14,35,50,.90),rgba(8,26,39,.93)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.022) !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div > span{
  display:block !important;
  margin-bottom:7px !important;
  color:#b5c8d3 !important;
  font-size:22px !important;
  line-height:1 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 small{
  display:block !important;
  margin-bottom:6px !important;
  color:#93a8b5 !important;
  font-size:12px !important;
  line-height:1.3 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 strong{
  display:block !important;
  color:#f0f8fd !important;
  font-size:clamp(20px,1.8vw,27px) !important;
  line-height:1.08 !important;
  letter-spacing:-.02em !important;
}

.vehicleStatistics .rechargePeriodKpisV2 strong em{
  color:#a8bbc7 !important;
  font-size:.58em !important;
  font-style:normal !important;
  font-weight:650 !important;
}

/* Tarif : résumé compact à gauche. */
.vehicleStatistics .rechargeTariffBreakdownV2{
  grid-area:tariff !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  align-self:stretch !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div{
  min-width:0 !important;
  min-height:72px !important;
  padding:11px 13px !important;
  border-radius:13px !important;
  border:1px solid rgba(48,101,157,.48) !important;
  background:rgba(8,29,53,.72) !important;
  box-shadow:none !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div span{
  display:block !important;
  margin-bottom:5px !important;
  color:#9fb3c0 !important;
  font-size:12px !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div strong{
  display:block !important;
  color:#e8f3fa !important;
  font-size:16px !important;
  line-height:1.15 !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div small{
  display:block !important;
  margin-top:3px !important;
  color:#8da5b5 !important;
  font-size:12px !important;
}

/* Notes de qualité : à droite du tarif au lieu de deux gros pavés en bas. */
.vehicleStatistics .rechargeQualityNoteV2{
  grid-area:quality !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  align-self:stretch !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.vehicleStatistics .rechargeQualityNoteV2 > span{
  display:flex !important;
  align-items:center !important;
  min-height:32px !important;
  padding:8px 11px !important;
  border-radius:11px !important;
  border:1px solid rgba(60,91,111,.34) !important;
  background:rgba(11,29,41,.62) !important;
  color:#8fa7b7 !important;
  font-size:12px !important;
  line-height:1.35 !important;
}

/* Le mini graphique éventuel (Aujourd'hui / 7 jours) reste en pleine largeur. */
.vehicleStatistics .rechargeWeekBarsV2{
  grid-area:bars !important;
  margin-top:0 !important;
}

/* Empêche les anciens polish JS de reprendre le dessus. */
.vehicleStatistics .rechargePeriodOverviewV2 .myveAnalysisMetricsGridV3{
  grid-area:kpis !important;
}
.vehicleStatistics .rechargePeriodOverviewV2 .myveAnalysisTabsV3{
  grid-area:tabs !important;
}
.vehicleStatistics .rechargePeriodOverviewV2 .myveAnalysisNotesV3{
  grid-area:quality !important;
}
.vehicleStatistics .rechargePeriodOverviewV2 .myveAnalysisTariffV3{
  grid-area:tariff !important;
}

/* Tablette : 3 KPI puis 2, tarif et notes passent chacun sur une ligne. */
@media (max-width:980px){
  .vehicleStatistics .rechargePeriodOverviewV2{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "head"
      "tabs"
      "kpis"
      "tariff"
      "quality"
      "bars" !important;
  }

  .vehicleStatistics .rechargePeriodKpisV2{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .vehicleStatistics .rechargeTariffBreakdownV2{
    width:min(100%,620px) !important;
  }

  .vehicleStatistics .rechargeQualityNoteV2{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Mobile : deux KPI par ligne, la durée occupe toute la largeur. */
@media (max-width:640px){
  .vehicleStatistics .rechargePeriodOverviewV2{
    row-gap:13px !important;
    padding:2px 0 !important;
  }

  .vehicleStatistics .rechargePeriodOverviewV2 > .rechargeSectionHead{
    align-items:flex-start !important;
  }

  .vehicleStatistics .rechargePeriodOverviewV2 > .rechargeSectionHead h2{
    font-size:28px !important;
  }

  .vehicleStatistics .rechargePeriodTabsV2{
    width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .vehicleStatistics .rechargePeriodKpisV2{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px !important;
  }

  .vehicleStatistics .rechargePeriodKpisV2 > div{
    min-height:104px !important;
    padding:12px !important;
  }

  .vehicleStatistics .rechargePeriodKpisV2 > div:nth-child(3){
    grid-column:1 / -1 !important;
  }

  .vehicleStatistics .rechargeTariffBreakdownV2{
    grid-template-columns:1fr !important;
    width:100% !important;
  }

  .vehicleStatistics .rechargeQualityNoteV2{
    grid-template-columns:1fr !important;
  }
}

/* myve-recharge-analysis-frame-v4-1-20260919
   Le bloc Analyse de recharge retrouve un cadre visuel du même langage
   que "ÉTAT DE RECHARGE", tout en conservant la mise en page compacte v4.
*/
.vehicleStatistics .rechargePeriodOverviewV2,
.vehicleStatistics .rechargePeriodOverviewV2.myveRechargeAnalysisPanelV2,
.vehicleStatistics .rechargePeriodOverviewV2.myveAnalysisPolishedV3{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:24px 26px !important;

  border:1px solid rgba(67,132,169,.58) !important;
  border-radius:22px !important;
  background:
    linear-gradient(145deg,rgba(10,34,51,.96),rgba(6,25,39,.97)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 12px 30px rgba(0,0,0,.09) !important;
  overflow:hidden !important;
}

/* Même respiration que le panneau État de recharge. */
.vehicleStatistics .rechargePeriodOverviewV2 > .rechargeSectionHead{
  padding:0 !important;
  margin:0 !important;
}

.vehicleStatistics .rechargePeriodOverviewV2 .rechargePeriodTabsV2{
  margin-top:2px !important;
}

/* Les KPI restent internes au cadre, mais sans reconstituer un second gros bloc. */
.vehicleStatistics .rechargePeriodOverviewV2 .rechargePeriodKpisV2{
  margin-top:0 !important;
}

/* Le tarif et les notes restent intégrés au même cadre. */
.vehicleStatistics .rechargePeriodOverviewV2 .rechargeTariffBreakdownV2,
.vehicleStatistics .rechargePeriodOverviewV2 .rechargeQualityNoteV2{
  margin-top:0 !important;
}

/* Mobile : même principe, padding plus compact. */
@media (max-width:640px){
  .vehicleStatistics .rechargePeriodOverviewV2,
  .vehicleStatistics .rechargePeriodOverviewV2.myveRechargeAnalysisPanelV2,
  .vehicleStatistics .rechargePeriodOverviewV2.myveAnalysisPolishedV3{
    padding:17px !important;
    border-radius:18px !important;
  }
}

/* myve-valley-sans-global-cleanup-v1-20260919
   Roboto partout dans l'interface utilisateur.
   Les éléments purement techniques code/pre/kbd/samp restent monospace.
*/
html,
body,
button,
input,
select,
textarea,
optgroup,
option{
  font-family:"Roboto",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
}

.diagnosticBox{
  font-family:"Roboto",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
}

/* myve-recharge-analysis-align-v4-2-20260919
   Alignement interne du bloc Analyse de recharge.
   Aucun calcul, donnée ou comportement n'est modifié.
*/

.vehicleStatistics .rechargePeriodKpisV2 > div{
  display:grid !important;
  grid-template-rows:30px 42px minmax(34px,auto) !important;
  align-content:start !important;
  gap:0 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div > span{
  height:30px !important;
  margin:0 !important;
  display:flex !important;
  align-items:flex-start !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div > small{
  min-height:42px !important;
  margin:0 !important;
  display:flex !important;
  align-items:flex-start !important;
  line-height:1.25 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div > strong{
  min-width:0 !important;
  margin:0 !important;
  display:flex !important;
  align-items:baseline !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  font-size:clamp(19px,1.65vw,26px) !important;
  line-height:1.08 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div > strong em{
  display:inline !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
  font-size:.56em !important;
  line-height:1 !important;
}

.vehicleStatistics .rechargePeriodKpisV2 > div:nth-child(3) > strong{
  font-size:clamp(18px,1.5vw,24px) !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2{
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr)) !important;
  align-items:stretch !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div{
  height:100% !important;
  min-height:0 !important;
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) !important;
  grid-template-areas:
    "label value"
    "label cost" !important;
  align-content:center !important;
  column-gap:12px !important;
  padding:13px 15px !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div > span{
  grid-area:label !important;
  align-self:center !important;
  margin:0 !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div > strong{
  grid-area:value !important;
  justify-self:end !important;
  text-align:right !important;
  white-space:nowrap !important;
  margin:0 !important;
}

.vehicleStatistics .rechargeTariffBreakdownV2 > div > small{
  grid-area:cost !important;
  justify-self:end !important;
  text-align:right !important;
  margin:3px 0 0 !important;
}

.vehicleStatistics .rechargeQualityNoteV2{
  grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  align-items:stretch !important;
}

.vehicleStatistics .rechargeQualityNoteV2 > span{
  height:100% !important;
  min-height:0 !important;
  box-sizing:border-box !important;
}

@media (max-width:980px){
  .vehicleStatistics .rechargePeriodKpisV2 > div > strong{
    white-space:normal !important;
  }

  .vehicleStatistics .rechargeTariffBreakdownV2 > div{
    min-height:72px !important;
  }
}

@media (max-width:640px){
  .vehicleStatistics .rechargePeriodKpisV2 > div{
    grid-template-rows:28px 38px minmax(32px,auto) !important;
  }

  .vehicleStatistics .rechargePeriodKpisV2 > div > small{
    min-height:38px !important;
  }

  .vehicleStatistics .rechargePeriodKpisV2 > div > strong{
    white-space:normal !important;
    gap:4px !important;
  }

  .vehicleStatistics .rechargeQualityNoteV2{
    grid-template-rows:none !important;
  }
}


/* myve-vehicle-metrics-align-v1-20260919
   Batterie / Autonomie / État du véhicule :
   mêmes lignes verticales pour libellé, valeur et zone secondaire.
*/
.connectedVehicleMetrics{
  align-items:stretch !important;
}

.connectedVehicleMetrics > .homeMetric{
  display:grid !important;
  grid-template-rows:30px 58px minmax(76px,auto) !important;
  align-content:start !important;
  min-height:190px !important;
  padding:18px 22px !important;
}

.connectedVehicleMetrics > .homeMetric > small{
  grid-row:1 !important;
  display:flex !important;
  align-items:flex-start !important;
  min-height:30px !important;
  margin:0 !important;
  line-height:1.25 !important;
}

.connectedVehicleMetrics > .homeMetric > strong{
  grid-row:2 !important;
  display:flex !important;
  align-items:flex-start !important;
  min-width:0 !important;
  margin:0 !important;
  line-height:1.05 !important;
}

.connectedVehicleMetrics > .homeMetric.battery > .homeBatteryTrack{
  grid-row:3 !important;
  align-self:start !important;
  width:100% !important;
  margin:18px 0 0 !important;
}

.connectedVehicleMetrics > .homeVehicleStateMetric > .stateText{
  grid-row:2 !important;
  align-self:start !important;
}

.connectedVehicleMetrics > .homeVehicleStateMetric > .connectedStatusPill{
  grid-row:3 !important;
  align-self:start !important;
  width:100% !important;
  max-width:none !important;
  margin:12px 0 0 !important;
  box-sizing:border-box !important;
}

.connectedVehicleMetrics .connectedStatusPill > div{
  min-width:0 !important;
}

.connectedVehicleMetrics .connectedStatusPill strong,
.connectedVehicleMetrics .connectedStatusPill small{
  line-height:1.25 !important;
}

.connectedFreshness{
  margin-top:0 !important;
}

@media (max-width:900px){
  .connectedVehicleMetrics > .homeMetric{
    grid-template-rows:28px 52px minmax(68px,auto) !important;
    min-height:174px !important;
    padding:16px 18px !important;
  }

  .connectedVehicleMetrics > .homeMetric.battery > .homeBatteryTrack{
    margin-top:15px !important;
  }

  .connectedVehicleMetrics > .homeVehicleStateMetric > .connectedStatusPill{
    margin-top:10px !important;
  }
}

@media (max-width:640px){
  .connectedVehicleMetrics > .homeMetric{
    grid-template-rows:auto auto auto !important;
    min-height:0 !important;
    padding:15px 16px !important;
  }

  .connectedVehicleMetrics > .homeMetric > small,
  .connectedVehicleMetrics > .homeMetric > strong,
  .connectedVehicleMetrics > .homeMetric.battery > .homeBatteryTrack,
  .connectedVehicleMetrics > .homeVehicleStateMetric > .stateText,
  .connectedVehicleMetrics > .homeVehicleStateMetric > .connectedStatusPill{
    grid-row:auto !important;
  }
}


/* myve-pwa-bottom-nav-fullwidth-v1-20260919
   La navigation basse mobile/PWA doit couvrir tout le viewport.
*/
@media (max-width:760px){
  .connectedPrimaryNav{
    left:0 !important;
    right:0 !important;
    inset-inline:0 !important;

    width:100vw !important;
    width:100dvw !important;
    min-width:100vw !important;
    min-width:100dvw !important;
    max-width:100vw !important;
    max-width:100dvw !important;

    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;

    padding-left:max(0px,env(safe-area-inset-left)) !important;
    padding-right:max(0px,env(safe-area-inset-right)) !important;
  }

  .connectedPrimaryNav .appNavItem{
    min-width:0 !important;
  }
}


/* myve-plus-historique-liens-v1-20260920 — uniquement le dépliage de Recharge & coûts dans Plus. */
#history .plusChargeHistoryMore{margin-top:14px;min-width:0;}
#history .plusChargeHistoryMore>summary{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 12px;min-height:44px;padding:11px 16px;border:1px solid var(--line,#24445d);border-radius:12px;background:#0c1c2c;color:#eef6ff;font:inherit;font-weight:700;cursor:pointer;list-style:none;box-sizing:border-box;}
#history .plusChargeHistoryMore>summary::-webkit-details-marker{display:none;}
#history .plusChargeHistoryMore>summary:focus-visible{outline:3px solid var(--accent,#46d3ff);outline-offset:3px;}
#history .plusChargeHistoryMore>summary:hover{border-color:var(--accent,#46d3ff);}
#history .plusChargesCount{font-size:.82em;color:var(--muted,#8fa1b3);font-weight:500;}
#history .plusChargesLessLabel{display:none;}
#history .plusChargeHistoryMore[open] .plusChargesMoreLabel{display:none;}
#history .plusChargeHistoryMore[open] .plusChargesLessLabel{display:inline;}
#history .plusChargeHistoryMore .plusOlderCharges{margin-top:12px;}


/* myve-recharge-navigation-limite-v1-20260920 : styles limités aux nouveaux éléments. */
#energy > .rechargeProgrammingBlock{
  margin:0 !important;
  padding-top:0 !important;
}
#energy .rechargeLimitSaveArea{display:grid;gap:8px;min-width:0;}
#energy .rechargeLimitSaveArea .rechargeSaveButton{margin:0;}
#energy .rechargeLimitSaveArea p{margin:0;line-height:1.5;overflow-wrap:anywhere;}
#energy #chargeLimitSaveMsg:empty{display:none;}
.vehicleStatistics .rechargeTodayMessage{
  grid-area:empty !important;
  margin:0 !important;
  padding:12px 14px;
  border:1px solid var(--line,#17324a);
  border-radius:14px;
  background:rgba(6,25,39,.55);
  color:var(--muted,#8fa1b3);
  font-size:14px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.vehicleStatistics .rechargePeriodOverviewV2.rechargeEmptyToday{
  grid-template-areas:"head head" "tabs tabs" "empty empty" "kpis kpis" "tariff quality" "bars bars" !important;
}
.vehicleStatistics .rechargePeriodOverviewV2 > .rechargeWeekBars{grid-area:bars !important;}

/* myve-delayed-charge-polish-v1 : présentation cockpit du démarrage différé. */
#energy .delayedChargeCard{
  padding:20px;
  overflow:hidden;
  border-color:#25506a;
  background:
    radial-gradient(circle at 92% 12%,rgba(88,214,255,.14),transparent 34%),
    linear-gradient(145deg,rgba(10,33,50,.96),rgba(5,15,24,.98));
}
#energy .delayedChargeHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
#energy .delayedChargeTitle{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
#energy .delayedChargeTitle h3{
  margin:2px 0 0;
  font-size:clamp(22px,3vw,30px);
  line-height:1.05;
  letter-spacing:0;
}
#energy .delayedChargeIcon{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:16px;
  color:#62d9ff;
  background:linear-gradient(145deg,#0f3146,#092033);
  border:1px solid #2e6584;
  box-shadow:inset 0 1px rgba(255,255,255,.06),0 12px 34px rgba(0,0,0,.24);
}
#energy .delayedChargeIcon svg{
  width:26px;
  height:26px;
}
#energy .delayedChargeBadge{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid #2b5068;
  color:#a9bfce;
  background:#071723;
  font-size:12px;
  font-weight:850;
}
#energy .delayedChargeBadge.on{
  border-color:rgba(93,230,176,.38);
  color:#8df0c5;
  background:#09241e;
}
#energy .delayedChargeStatus{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  padding:14px 15px;
  border-radius:18px;
  background:rgba(3,14,22,.66);
  border:1px solid rgba(76,137,169,.34);
}
#energy .delayedChargeStatus>div{
  min-width:0;
  display:grid;
  gap:3px;
}
#energy .delayedChargeStatus strong,
#energy .delayedChargeStatus small{
  display:block !important;
  line-height:1.35;
}
#energy .delayedChargeStatus small{
  color:#91a8b8;
}
#energy .delayedChargeEnable{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  margin:0 0 12px;
  padding:13px 14px;
  border:1px solid rgba(46,101,132,.7);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(7,25,38,.95),rgba(5,18,28,.95));
}
#energy .delayedChargeEnable strong{
  display:block;
  color:#edf8ff;
  font-size:15px;
}
#energy .delayedChargeEnable small{
  display:block;
  margin-top:2px;
  color:#8ca4b6;
  line-height:1.35;
}
#energy .delayedChargeSwitch{
  display:block !important;
  position:relative;
  width:58px;
  height:34px;
  margin:0;
}
#energy .delayedChargeSwitch input{
  position:absolute;
  inset:0;
  opacity:0;
}
#energy .delayedChargeSwitch span{
  position:absolute;
  inset:0;
  border-radius:999px;
  border:1px solid #315168;
  background:#07141f;
  box-shadow:inset 0 2px 8px rgba(0,0,0,.45);
  transition:background .18s ease,border-color .18s ease;
}
#energy .delayedChargeSwitch span:after{
  content:"";
  position:absolute;
  left:4px;
  top:4px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#8ea6b6;
  box-shadow:0 5px 12px rgba(0,0,0,.34);
  transition:transform .18s ease,background .18s ease;
}
#energy .delayedChargeSwitch input:checked+span{
  border-color:rgba(93,230,176,.55);
  background:linear-gradient(135deg,#0b513e,#0b3040);
}
#energy .delayedChargeSwitch input:checked+span:after{
  transform:translateX(24px);
  background:#64efb4;
}
#energy .delayedChargeSwitch input:focus-visible+span{
  outline:3px solid rgba(78,211,255,.45);
  outline-offset:3px;
}
#energy .delayedChargeGrid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:0;
}
#energy .delayedChargeGrid>.delayedChargeField{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-width:0;
  min-height:78px;
  margin:0;
  padding:13px 14px;
  border:1px solid #24465e;
  border-radius:18px;
  background:rgba(4,17,27,.76);
}
#energy .delayedChargeField>span{
  min-width:0;
  display:grid;
  gap:3px;
  color:#e8f4fb;
  font-size:14px;
  font-weight:850;
}
#energy .delayedChargeField small{
  color:#7f98a9;
  font-size:12px;
  font-weight:650;
  line-height:1.25;
}
#energy .delayedChargeField input,
#energy .delayedChargeField select{
  width:auto;
  min-width:116px;
  max-width:100%;
  min-height:44px;
  padding:10px 12px;
  border-radius:13px;
  border:1px solid #31556d;
  background:#071521;
  color:#f4fbff;
  color-scheme:dark;
  font-size:16px;
  font-weight:850;
  text-align:left;
}
#energy .delayedChargeField select{
  min-width:112px;
}
#energy .delayedChargeActions{
  margin-top:12px;
}
#energy .delayedChargeSave{
  min-height:52px;
  border-radius:17px;
  color:#03121c;
  background:linear-gradient(135deg,#55e0ff,#5a99ff);
  box-shadow:0 14px 34px rgba(42,158,255,.16);
}
#energy #delayedChargeMsg{
  min-height:18px;
  margin:9px 0 0;
}
#energy #delayedChargeMsg:empty{
  display:none;
}
@media(max-width:760px){
  #energy .delayedChargeCard{padding:16px}
  #energy .delayedChargeHead{align-items:flex-start}
  #energy .delayedChargeTitle{align-items:flex-start}
  #energy .delayedChargeIcon{width:42px;height:42px;flex-basis:42px}
  #energy .delayedChargeGrid{grid-template-columns:1fr}
  #energy .delayedChargeGrid>.delayedChargeField{grid-template-columns:minmax(0,1fr) minmax(112px,auto)}
  #energy .delayedChargeField input,
  #energy .delayedChargeField select{font-size:16px}
}
@media(max-width:430px){
  #energy .delayedChargeHead{display:grid}
  #energy .delayedChargeBadge{justify-self:start}
  #energy .delayedChargeEnable{grid-template-columns:1fr;gap:10px}
  #energy .delayedChargeGrid>.delayedChargeField{
    grid-template-columns:1fr;
    gap:9px;
  }
  #energy .delayedChargeField input,
  #energy .delayedChargeField select{
    width:100%;
  }
}
@media(max-width:980px){
  .vehicleStatistics .rechargePeriodOverviewV2.rechargeEmptyToday{
    grid-template-areas:"head" "tabs" "empty" "kpis" "tariff" "quality" "bars" !important;
  }
}


/* myve-i-cockpit-v2-20260922
   Poste de conduite numérique pour Accueil, Véhicule et Démo.
*/
.premiumDashboard.iCockpitDashboard,
.publicDemoMain.iCockpitDashboard{
  width:min(1040px,100%) !important;
}

.iCockpitDashboard .legacySection{
  margin-bottom:18px;
}

.connectedVehicleCard.iCockpitV2,
.premiumVehicleHero.iCockpitV2{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--vehicle-accent) 30%,#24485f);
  background:
    linear-gradient(110deg,rgba(91,214,255,.09),transparent 24% 76%,rgba(82,230,176,.07)),
    radial-gradient(ellipse at 50% -22%,rgba(77,189,255,.26),transparent 55%),
    linear-gradient(180deg,#0b2134 0%,#061522 52%,#030b13 100%);
  box-shadow:
    0 30px 90px rgba(0,0,0,.48),
    inset 0 1px rgba(255,255,255,.1),
    inset 0 -1px rgba(103,218,255,.09);
}

.connectedVehicleCard.iCockpitV2{
  padding:24px;
  border-radius:28px;
}

.premiumVehicleHero.iCockpitV2{
  padding:30px;
  border-radius:30px;
}

.connectedVehicleCard.iCockpitV2:before,
.premiumVehicleHero.iCockpitV2:before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  bottom:-42%;
  width:min(940px,128%);
  aspect-ratio:1;
  transform:translateX(-50%);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,transparent 54%,rgba(76,191,255,.18) 55%,transparent 56%),
    conic-gradient(from 222deg,transparent 0 8deg,rgba(91,224,190,.22) 8deg 33deg,rgba(73,177,255,.28) 33deg 74deg,transparent 74deg 286deg,rgba(73,177,255,.2) 286deg 327deg,rgba(91,224,190,.18) 327deg 352deg,transparent 352deg);
  filter:drop-shadow(0 0 24px rgba(74,199,255,.22));
  opacity:.72;
  pointer-events:none;
}

.connectedVehicleCard.iCockpitV2:after,
.premiumVehicleHero.iCockpitV2:after{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:
    linear-gradient(90deg,transparent,rgba(126,220,255,.11) 49%,rgba(126,220,255,.18) 50%,rgba(126,220,255,.11) 51%,transparent),
    repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0 1px,transparent 1px 22px);
  opacity:.27;
  mix-blend-mode:screen;
  pointer-events:none;
}

.connectedVehicleCard.iCockpitV2 > *,
.premiumVehicleHero.iCockpitV2 > *{
  position:relative;
  z-index:2;
}

.iCockpitV2 .connectedVehicleHead,
.iCockpitV2 .premiumHeroHeading{
  align-items:flex-start;
  gap:18px;
}

.iCockpitV2 .connectedVehicleHead .small,
.iCockpitV2 .premiumHeroTitle .small{
  color:#8bb0c6;
  letter-spacing:.14em;
}

.iCockpitV2 .connectedVehicleHead h1,
.iCockpitV2 .premiumHeroIntro h1{
  color:#f6fbff;
  text-shadow:0 0 22px rgba(74,199,255,.22),0 12px 38px rgba(0,0,0,.55);
}

.iCockpitV2 .homeRefreshBtn,
.iCockpitV2 .heroRefreshBtn{
  border-color:rgba(92,185,255,.42);
  background:linear-gradient(180deg,rgba(12,42,62,.9),rgba(5,19,32,.92));
  color:#d6f1ff;
  box-shadow:inset 0 1px rgba(255,255,255,.09),0 12px 28px rgba(0,0,0,.25);
}

.iCockpitV2 .homeRefreshBtn:hover,
.iCockpitV2 .heroRefreshBtn:hover{
  border-color:var(--vehicle-accent);
  color:#fff;
}

.premiumVehicleHero.iCockpitV2 .premiumHeroShowcase{
  grid-template-columns:minmax(260px,.82fr) minmax(390px,1.18fr);
  min-height:320px;
}

.premiumVehicleHero.iCockpitV2 .premiumHeroIntro{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:14px;
  min-height:250px;
  padding-top:4px;
}

.connectedVehicleCard.iCockpitV2 .connectedFreshness{
  width:max-content;
  max-width:100%;
  padding:8px 11px;
  border:1px solid rgba(91,184,232,.24);
  border-radius:999px;
  background:rgba(4,16,27,.58);
  box-shadow:inset 0 1px rgba(255,255,255,.06);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.premiumVehicleHero .premiumFreshness{
  font-size:13px;
  gap:6px;
}

.premiumVehicleHero.iCockpitV2 .premiumFreshness,
.premiumVehicleHero.iCockpitV2 .vehicleSmartHeadline{
  width:auto;
  max-width:100%;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.premiumVehicleHero .vehicleSmartHeadline{
  max-width:100%;
  min-width:0;
  font-weight:400;
}

.premiumVehicleHero .vehicleSmartHeadline strong,
.premiumVehicleHero .vehicleSmartHeadline small{
  display:block;
  overflow-wrap:anywhere;
}

.premiumVehicleHero .vehicleSmartHeadline strong{
  font-size:17px;
  font-weight:750;
  color:#e5f5ff;
}

.premiumVehicleHero .vehicleSmartHeadline small{
  margin-top:5px;
  font-size:12px;
  line-height:1.5;
  color:#aec5d5;
}

.premiumVehicleHero.iCockpitV2 .vehicleSmartHeadline{
  margin-top:auto;
  margin-bottom:12px;
  color:#cae4f5;
}

.premiumVehicleHero .vehicleSmartHeadline:before{
  content:none;
}

.vehicleConnectionState{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  font-size:12px;
  color:#b7cedd;
}

.vehicleConnectionState i{
  flex:0 0 7px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#6de2b1;
}

.vehicleConnectionState.warn{color:#ffd166}
.vehicleConnectionState.warn i{background:#ffd166}
.vehicleConnectionState.bad{color:#ffb0bb}
.vehicleConnectionState.bad i{background:#ff899c}
.vehicleConnectionState.simulation i{background:#b8a8e5}

.connectedVehicleCard.iCockpitV2 .connectedVehicleVisual,
.premiumVehicleHero.iCockpitV2 .vehicleHeroVisual{
  min-height:270px;
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
  height:280px;
  margin:2px -4px 4px;
}

.premiumVehicleHero.iCockpitV2 .legacyCarVisual{
  height:292px;
  margin:0 -10px 0 0;
  align-items:center;
  justify-content:center;
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleVisual:after,
.premiumVehicleHero.iCockpitV2 .vehicleHeroVisual:after{
  content:"";
  position:absolute;
  z-index:0;
  left:12%;
  right:12%;
  bottom:12%;
  height:24px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(82,205,255,.42),rgba(82,205,255,.12) 42%,transparent 72%);
  filter:blur(8px);
  pointer-events:none;
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleVisual img,
.premiumVehicleHero.iCockpitV2 .legacyCarVisual img{
  position:relative;
  z-index:2;
  width:min(118%,820px);
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 30px 28px rgba(0,0,0,.68)) drop-shadow(0 0 22px rgba(75,190,255,.16));
}

.connectedVehicleCard.iCockpitV2 .connectedModelTag,
.premiumVehicleHero.iCockpitV2 .vehicleOdometer{
  border-color:rgba(99,190,235,.42);
  background:rgba(4,16,27,.76);
  color:#d9f0ff;
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 12px 28px rgba(0,0,0,.26);
}

.premiumVehicleHero.iCockpitV2 .vehicleOdometer{
  margin:-18px auto 8px;
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics,
.premiumVehicleHero.iCockpitV2 .legacyStatusGrid{
  gap:10px;
  border:0;
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics{
  grid-template-columns:1.02fr 1fr 1.22fr;
  margin-top:12px;
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics > .homeMetric,
.premiumVehicleHero.iCockpitV2 .legacyStatus{
  border:1px solid rgba(95,178,223,.22) !important;
  border-radius:8px !important;
  background:
    linear-gradient(145deg,rgba(12,42,62,.76),rgba(5,18,29,.78)),
    linear-gradient(90deg,rgba(89,208,255,.06),transparent) !important;
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 12px 28px rgba(0,0,0,.22);
}

.connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics > .homeMetric{
  grid-template-rows:28px 58px minmax(72px,auto) !important;
  min-height:176px !important;
  padding:17px 18px !important;
}

.connectedVehicleCard.iCockpitV2 .homeMetric + .homeMetric{
  border-left:1px solid rgba(95,178,223,.22) !important;
}

.connectedVehicleCard.iCockpitV2 .homeMetric > small,
.premiumVehicleHero.iCockpitV2 .legacyStatus small,
.premiumVehicleHero.iCockpitV2 .legacyBatteryRow .small{
  color:#8fb1c6;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.connectedVehicleCard.iCockpitV2 .homeMetric > strong,
.premiumVehicleHero.iCockpitV2 .legacyStatus strong{
  color:#eff9ff;
  font-variant-numeric:tabular-nums;
}

.connectedVehicleCard.iCockpitV2 .homeMetric.battery > strong,
.connectedVehicleCard.iCockpitV2 .homeMetric .stateText,
.premiumVehicleHero.iCockpitV2 .legacyBatteryValue{
  color:#65d6ff;
  text-shadow:0 0 18px rgba(84,202,255,.28);
}

.connectedVehicleCard.iCockpitV2 .homeBatteryTrack,
.premiumVehicleHero.iCockpitV2 .legacyBatteryTrack{
  height:10px;
  background:#071824;
  border:1px solid rgba(91,184,232,.22);
  box-shadow:inset 0 1px 4px rgba(0,0,0,.5);
}

.connectedVehicleCard.iCockpitV2 .homeBatteryTrack i,
.premiumVehicleHero.iCockpitV2 .legacyBatteryTrack span{
  background:linear-gradient(90deg,#39b7ff,var(--vehicle-accent),#68f1bd);
  box-shadow:0 0 18px color-mix(in srgb,var(--vehicle-accent) 48%,transparent);
}

.premiumVehicleHero.iCockpitV2 .premiumHeroStatus{
  margin-top:0;
  padding:13px 0 0;
  border-top:1px solid rgba(118,205,255,.12);
}

.premiumVehicleHero.iCockpitV2 .legacyHeroStatus .tag{
  border-color:rgba(92,185,255,.34);
  background:rgba(5,20,32,.72);
}

.premiumVehicleHero.iCockpitV2 .legacyBatteryRow{
  align-items:center;
  margin-top:12px;
  padding:16px;
  border:1px solid rgba(95,178,223,.2);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(9,35,53,.78),rgba(4,15,25,.72));
}

.premiumVehicleHero.iCockpitV2 .legacyBatteryValue{
  font-size:52px;
  line-height:1;
  font-weight:760;
  font-variant-numeric:tabular-nums;
  letter-spacing:0;
}

.premiumVehicleHero.iCockpitV2 .legacyBatteryValue small{
  font-size:22px;
}

.premiumVehicleHero.iCockpitV2 .legacyRange strong{
  font-size:clamp(22px,3.4vw,32px);
  color:#f4fbff;
}

.premiumVehicleHero.iCockpitV2 .legacyStatus{
  min-height:82px;
}

.premiumVehicleHero.iCockpitV2 .modelIdentity{
  padding-top:2px;
}

@media(max-width:900px){
  .premiumDashboard.iCockpitDashboard,
  .publicDemoMain.iCockpitDashboard{
    width:100% !important;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroShowcase{
    grid-template-columns:1fr;
    min-height:0;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroIntro{
    min-height:0;
    gap:12px;
  }

  .premiumVehicleHero.iCockpitV2 .legacyCarVisual{
    height:250px;
    margin:-4px -12px 0;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    height:230px;
  }
}

@media(max-width:640px){
  .connectedVehicleCard.iCockpitV2,
  .premiumVehicleHero.iCockpitV2{
    padding:18px;
    border-radius:22px;
  }

  .connectedVehicleCard.iCockpitV2:before,
  .premiumVehicleHero.iCockpitV2:before{
    width:150%;
    bottom:-34%;
    opacity:.56;
  }

  .iCockpitV2 .connectedVehicleHead,
  .iCockpitV2 .premiumHeroHeading{
    gap:10px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual,
  .premiumVehicleHero.iCockpitV2 .vehicleHeroVisual{
    min-height:0;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    height:188px;
    margin:4px -10px 0;
  }

  .premiumVehicleHero.iCockpitV2 .legacyCarVisual{
    height:205px;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleOdometer{
    margin:-8px auto 8px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics > .homeMetric{
    grid-template-rows:auto auto auto !important;
    min-height:0 !important;
    padding:14px !important;
  }

  .connectedVehicleCard.iCockpitV2 .homeMetric:nth-child(3){
    grid-column:1/-1;
    border-left:1px solid rgba(95,178,223,.22) !important;
    border-top:1px solid rgba(95,178,223,.22) !important;
  }

  .premiumVehicleHero.iCockpitV2 .legacyBatteryRow{
    align-items:flex-start;
    flex-direction:column;
  }

  .premiumVehicleHero.iCockpitV2 .legacyBatteryValue{
    font-size:44px;
  }

  .premiumVehicleHero.iCockpitV2 .legacyBatteryValue small{
    font-size:20px;
  }

  .premiumVehicleHero.iCockpitV2 .legacyRange{
    text-align:left;
  }

  .premiumVehicleHero.iCockpitV2 .legacyStatus{
    min-height:74px;
  }
}

@media(max-width:420px){
  .connectedVehicleCard.iCockpitV2,
  .premiumVehicleHero.iCockpitV2{
    padding:16px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleHead h1,
  .premiumVehicleHero.iCockpitV2 .premiumHeroIntro h1{
    font-size:32px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    height:166px;
  }

  .premiumVehicleHero.iCockpitV2 .legacyCarVisual{
    height:182px;
  }

  .premiumVehicleHero.iCockpitV2 .legacyStatusGrid{
    grid-template-columns:1fr;
  }
}

@media(prefers-reduced-motion:reduce){
  .connectedVehicleCard.iCockpitV2:after,
  .premiumVehicleHero.iCockpitV2:after{
    opacity:.18;
  }
}

/* myve-i-cockpit-v2-reference-v7-20260922
   Aperçu visuel isolé derrière ?design=icockpit-v2.
*/
.iCockpitShell{
  background:
    radial-gradient(circle at 82% 4%,rgba(49,111,159,.22),transparent 33%),
    radial-gradient(circle at 8% 34%,rgba(42,204,189,.13),transparent 28%),
    linear-gradient(140deg,#03111c 0%,#061927 45%,#020910 100%);
}

.iCockpitSidebarBrand,
.iCockpitSidebarStatus,
.iCockpitSidebarSignature{
  display:none;
}

.iCockpitQuickActions{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:15px;
}

.iCockpitQuickAction{
  appearance:none;
  min-width:0;
  min-height:70px;
  padding:12px 10px;
  border:1px solid rgba(78,172,220,.34);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(15,74,106,.82),rgba(7,31,50,.88));
  color:#e9f8ff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  font:inherit;
  font-weight:850;
  font-size:12px;
  line-height:1.18;
  text-align:center;
  cursor:pointer;
  box-shadow:inset 0 1px rgba(255,255,255,.11),0 12px 26px rgba(0,0,0,.28);
}

.iCockpitQuickAction svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* myve-icockpit-icons-v1: cockpit-style outline icons, shared by desktop and mobile nav. */
.appNavItem .myveCockpitIcon,
.iCockpitQuickAction .myveCockpitIcon{
  fill:none;
  stroke:currentColor;
  stroke-width:2.35px;
  stroke-linecap:round;
  stroke-linejoin:round;
  overflow:visible;
}

.appNavItem .myveCockpitIcon .fill,
.iCockpitQuickAction .myveCockpitIcon .fill{
  fill:currentColor;
  stroke:none;
}

.appNavItem .myveCockpitIcon .soft,
.iCockpitQuickAction .myveCockpitIcon .soft{
  opacity:.48;
}

.appNavItem.active .myveCockpitIcon,
.iCockpitQuickAction:hover .myveCockpitIcon{
  filter:drop-shadow(0 0 8px rgba(91,205,255,.42));
}

.iCockpitShell .appPrimaryNav .appNavItem .myveCockpitIcon{
  stroke-width:2.55px;
}

.iCockpitShell .appPrimaryNav .appNavItem.active .myveCockpitIcon{
  color:#83dcff;
  filter:drop-shadow(0 0 10px rgba(91,223,255,.56));
}

.iCockpitQuickAction.good{
  border-color:rgba(90,236,185,.38);
  background:linear-gradient(180deg,rgba(13,91,83,.84),rgba(7,42,51,.9));
}

.iCockpitQuickAction.danger{
  border-color:rgba(255,135,153,.42);
  background:linear-gradient(180deg,rgba(98,34,46,.88),rgba(42,15,25,.92));
  color:#ffd7de;
}

.iCockpitQuickAction:hover{
  transform:translateY(-1px);
  border-color:#62d8ff;
}

.iCockpitQuickAction:disabled{
  opacity:.5;
  cursor:not-allowed;
  transform:none;
}

.iCockpitCommandMsg{
  position:relative;
  z-index:3;
  min-height:18px;
  margin:10px 2px 0;
  color:#a9c8da;
}

.iCockpitWeatherCard{
  position:relative;
  z-index:3;
  min-width:0;
  width:100%;
  margin:10px 0 4px;
  padding:10px 12px;
  border:1px solid rgba(94,191,241,.32);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(5,21,34,.78),rgba(10,50,72,.62));
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 14px 30px rgba(0,0,0,.25);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  color:#e9f8ff;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.iCockpitWeatherMain{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:74px;
}

.iCockpitWeatherIcon{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#ffd966;
  background:rgba(255,217,102,.12);
  box-shadow:0 0 20px rgba(255,217,102,.2);
  font-size:17px;
  line-height:1;
}

.iCockpitWeatherTemp{
  font-size:24px;
  line-height:1;
  letter-spacing:0;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 18px rgba(84,202,255,.24);
}

.iCockpitWeatherMeta{
  min-width:0;
  display:grid;
  gap:2px;
}

.iCockpitWeatherPlace{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#f5fbff;
  font-weight:850;
  font-size:13px;
}

.iCockpitWeatherText{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#a7c4d5;
  font-size:12px;
}

.iCockpitWeatherLocate{
  appearance:none;
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(94,191,241,.38);
  border-radius:8px;
  background:rgba(8,38,58,.86);
  color:#dff5ff;
  font:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}

.iCockpitWeatherLocate:hover{
  border-color:#68dfff;
  color:#fff;
}

.iCockpitWeatherCard[data-weather-state="error"]{
  border-color:rgba(255,151,122,.45);
}

.iCockpitWeatherCard[data-weather-state="error"] .iCockpitWeatherIcon{
  color:#ffb6a3;
  background:rgba(255,120,93,.13);
  box-shadow:0 0 20px rgba(255,120,93,.18);
}

.iCockpitWeatherCard[data-weather-state="missing"] .iCockpitWeatherIcon{
  color:#a8dff8;
  background:rgba(94,191,241,.12);
  box-shadow:0 0 20px rgba(94,191,241,.16);
}

@media(min-width:960px){
  .iCockpitShell{
    --cockpit-nav-width:224px;
    display:grid;
    grid-template-columns:var(--cockpit-nav-width) minmax(0,1fr);
    grid-template-rows:auto 1fr;
    column-gap:0;
    min-height:100vh;
  }

  .iCockpitShell .appTopbar{
    grid-column:2;
    grid-row:1;
    width:min(1120px,calc(100% - 34px));
    margin:0 auto;
    padding:22px 0 16px;
  }

  .iCockpitShell .appTopbar .appIdentity>.brand{
    display:none;
  }

  .iCockpitShell .vehicleSwitcher{
    margin-left:0;
  }

  .iCockpitShell .premiumMain{
    grid-column:2;
    grid-row:2;
    width:min(1120px,calc(100% - 34px));
    padding-bottom:38px;
  }

  .iCockpitShell .appPrimaryNav{
    grid-column:1;
    grid-row:1 / span 2;
    position:fixed;
    top:0;
    left:0;
    align-self:start;
    width:var(--cockpit-nav-width);
    max-width:none;
    height:100vh;
    height:100dvh;
    min-height:0;
    margin:0;
    padding:24px 16px 20px;
    display:flex;
    flex-direction:column;
    gap:16px;
    border-right:1px solid rgba(87,181,231,.2);
    border-top:0;
    background:
      linear-gradient(180deg,rgba(6,22,34,.96),rgba(2,10,17,.98)),
      radial-gradient(circle at 30% 8%,rgba(82,198,255,.16),transparent 34%);
    box-shadow:18px 0 54px rgba(0,0,0,.28);
    overflow:hidden;
  }

  .iCockpitShell .iCockpitNavScroll{
    display:flex;
    flex-direction:column;
    gap:8px;
    flex:1 1 auto;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    scrollbar-width:thin;
    scrollbar-color:#30566b transparent;
  }

  .iCockpitShell .iCockpitNavFooter{
    display:grid;
    gap:16px;
    flex:0 0 auto;
  }

  .iCockpitShell .appPrimaryNav .appNavItem{
    flex:0 0 auto;
    width:100%;
    min-height:46px;
    border-radius:8px;
    padding:10px 12px;
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    align-items:center;
    justify-content:start;
    gap:12px;
    text-align:left;
    font-size:13px;
    color:#d5e5ef;
    background:transparent;
    border:1px solid transparent;
    box-shadow:none;
  }

  .iCockpitShell .appPrimaryNav .appNavItem svg{
    width:23px;
    height:23px;
    justify-self:center;
  }

  .iCockpitShell .appPrimaryNav .appNavItem span{
    text-align:left;
  }

  .iCockpitShell .appPrimaryNav .appNavItem:hover{
    transform:none;
    color:#fff;
    border-color:rgba(74,185,255,.26);
    background:rgba(13,48,70,.62);
  }

  .iCockpitShell .appPrimaryNav .appNavItem.active{
    color:#f5fbff;
    border-color:rgba(83,207,255,.52);
    background:linear-gradient(90deg,rgba(23,128,176,.78),rgba(9,53,80,.86));
    box-shadow:inset 3px 0 #66e0ff,0 12px 26px rgba(0,0,0,.24);
  }

  .iCockpitShell .appPrimaryNav .appNavItem.active:after{
    display:none;
  }

  .iCockpitShell .appPrimaryNav #navMore{
    display:none;
  }

  .iCockpitSidebarBrand{
    display:grid;
    flex:0 0 auto;
    justify-items:center;
    gap:8px;
    padding:0 4px 18px;
    margin-bottom:10px;
    border-bottom:1px solid rgba(113,197,240,.16);
    color:#8ea7b8;
    font-size:12px;
    text-align:center;
  }

  .iCockpitSidebarBrand .brand{
    width:132px;
    max-width:100%;
  }

  .iCockpitSidebarBrand .brand img{
    width:100%;
    height:auto;
    object-fit:contain;
  }

  .iCockpitSidebarStatus{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:6px 9px;
    align-items:center;
    margin-top:0;
    padding:13px;
    border:1px solid rgba(71,169,218,.25);
    border-radius:8px;
    background:rgba(13,44,66,.56);
    color:#d7edf8;
  }

  .iCockpitSidebarStatus i{
    grid-row:1 / span 2;
    width:16px;
    height:16px;
    border-radius:50%;
    background:#4ee199;
    box-shadow:0 0 0 5px rgba(78,225,153,.13),0 0 22px rgba(78,225,153,.42);
  }

  .iCockpitSidebarStatus strong{
    font-size:13px;
  }

  .iCockpitSidebarStatus span{
    color:#9bb5c6;
    font-size:12px;
    line-height:1.35;
  }

  .iCockpitSidebarSignature{
    display:grid;
    justify-items:center;
    gap:3px;
    margin-top:0;
    color:#eff8ff;
    letter-spacing:.18em;
    text-align:center;
  }

  .iCockpitSidebarSignature b{
    font-size:12px;
    font-weight:500;
  }

  .iCockpitSidebarSignature strong{
    font-size:18px;
    font-weight:760;
    letter-spacing:.12em;
  }

  .iCockpitSidebarSignature span{
    color:#b8c8d4;
    font-size:12px;
    letter-spacing:.18em;
  }

  .premiumDashboard.iCockpitDashboard{
    width:100% !important;
  }

  .iCockpitDashboard #connectedHome{
    grid-template-columns:repeat(12,minmax(0,1fr));
    grid-auto-flow:row dense;
    align-items:stretch;
    gap:14px;
  }

  .iCockpitDashboard #connectedHome>*{
    margin-top:0 !important;
  }

  .iCockpitDashboard #connectedHome>.connectedSetupCard,
  .iCockpitDashboard #connectedHome>.connectedVehicleCard.iCockpitV2,
  .iCockpitDashboard #connectedHome>.connectedChargeNow,
  .iCockpitDashboard #connectedHome>.connectedCommunityCard{
    grid-column:1 / -1;
  }

  .iCockpitDashboard #connectedHome>.connectedShortcuts{
    grid-column:1 / -1;
    align-self:stretch;
  }

  .iCockpitDashboard #connectedHome>.connectedMonthCard{
    grid-column:7 / -1;
    align-self:stretch;
  }

  .connectedVehicleCard.iCockpitV2{
    min-height:560px;
    padding:24px 26px;
    border-radius:8px;
    display:grid;
    grid-template-columns:minmax(270px,.86fr) minmax(430px,1.14fr);
    grid-template-rows:auto 1fr auto auto auto;
    column-gap:18px;
    background:
      linear-gradient(180deg,rgba(2,11,18,.08),rgba(2,11,18,.84) 76%,rgba(2,9,15,.98)),
      linear-gradient(90deg,rgba(3,12,19,.78),rgba(3,12,19,.16) 44%,rgba(3,12,19,.54)),
      url('/assets/landing-peugeot-neon-seamless-1920-v5.webp') center/cover no-repeat,
      linear-gradient(180deg,#071927,#030a12);
  }

  .connectedVehicleCard.iCockpitV2:before{
    display:none;
  }

  .connectedVehicleCard.iCockpitV2:after{
    opacity:.18;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleHead{
    grid-column:1;
    grid-row:1;
    align-self:start;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleHead h1{
    font-size:clamp(30px,4vw,44px);
    margin-top:6px;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitWeatherCard{
    grid-column:2;
    grid-row:1;
    justify-self:end;
    align-self:start;
    width:min(280px,100%);
    margin:0;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    grid-column:1 / -1;
    grid-row:2;
    height:280px;
    margin:-6px 0 0;
    justify-content:center;
    align-self:end;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual img{
    width:min(72%,660px);
    object-position:center bottom;
    filter:drop-shadow(0 28px 28px rgba(0,0,0,.72)) drop-shadow(0 0 22px rgba(88,217,255,.2));
  }

  .connectedVehicleCard.iCockpitV2 .connectedModelTag{
    right:16px;
    bottom:14px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics{
    grid-column:1 / -1;
    grid-row:3;
    display:grid;
    grid-template-columns:1fr 1fr 1.25fr;
    gap:10px;
    margin-top:10px;
    border:0;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics>.homeMetric{
    min-height:118px !important;
    grid-template-rows:auto auto 1fr !important;
    border-radius:8px !important;
    background:linear-gradient(180deg,rgba(11,50,73,.82),rgba(5,23,38,.88)) !important;
  }

  .connectedVehicleCard.iCockpitV2 .connectedFreshness{
    grid-column:1;
    grid-row:4;
    align-self:center;
    padding-top:0;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitQuickActions,
  .connectedVehicleCard.iCockpitV2 .iCockpitCommandMsg{
    grid-column:2;
    justify-self:stretch;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitQuickActions{
    grid-row:4;
    align-self:center;
    margin-top:0;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitCommandMsg{
    grid-row:5;
    align-self:end;
  }

  .iCockpitDashboard .connectedShortcuts>h2{
    margin-top:0;
  }

  .iCockpitDashboard .connectedShortcuts{
    display:flex;
    flex-direction:column;
  }

  .iCockpitDashboard .connectedShortcutGrid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    flex:1;
  }

  .iCockpitDashboard .connectedShortcut{
    min-height:64px;
    flex-direction:row;
    gap:12px;
    padding:12px 16px;
    border-radius:8px;
    background:linear-gradient(180deg,rgba(10,41,62,.82),rgba(5,19,31,.9));
  }

  .iCockpitDashboard .connectedMonthCard,
  .iCockpitDashboard .connectedCommunityCard{
    border-radius:8px;
    background:linear-gradient(180deg,rgba(7,28,45,.88),rgba(3,13,23,.92));
  }
}

@media(max-width:959px){
  .iCockpitShell .iCockpitNavScroll{
    display:contents;
  }

  .iCockpitShell .iCockpitNavFooter{
    display:none;
  }

  .iCockpitShell .iCockpitNavExtra,
  .iCockpitShell .iCockpitSidebarBrand,
  .iCockpitShell .iCockpitSidebarStatus,
  .iCockpitShell .iCockpitSidebarSignature{
    display:none !important;
  }

  .iCockpitShell .appPrimaryNav{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }

  .connectedVehicleCard.iCockpitV2{
    background:
      linear-gradient(180deg,rgba(3,14,23,.26),rgba(3,14,23,.92) 72%,#020a12),
      url('/assets/landing-peugeot-neon-seamless-1920-v5.webp') center/cover no-repeat,
      linear-gradient(180deg,#071927,#030a12);
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleHead{
    margin-bottom:2px;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitWeatherCard{
    margin:8px 0 2px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual img{
    width:min(112%,620px);
  }

  .iCockpitQuickActions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:520px){
  .iCockpitWeatherCard{
    grid-template-columns:auto minmax(0,1fr);
    padding:9px 10px;
  }

  .iCockpitWeatherLocate{
    grid-column:1 / -1;
    width:100%;
  }

  .iCockpitWeatherTemp{
    font-size:22px;
  }

  .iCockpitQuickAction{
    min-height:62px;
    padding:10px 8px;
    font-size:12px;
  }

  .iCockpitQuickAction svg{
    width:22px;
    height:22px;
  }
}

/* myve-icockpit-legacy-preview-link-v1-20260922
   Styles conservés pour compatibilité historique ; la v2 est officielle.
*/
.appDesignPreviewFooter{
  width:min(820px,100%);
  margin:18px auto 0;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 12px;
  border:1px dashed #2f566f;
  border-radius:14px;
  background:rgba(7,23,37,.64);
  color:#829aaa;
  font-size:12px;
  line-height:1.4;
  text-align:center;
}

.appDesignPreviewFooter a{
  color:#a9e2ff;
  font-weight:820;
  text-decoration:underline;
  text-underline-offset:3px;
}

.appDesignPreviewFooter.enabled{
  border-style:solid;
  border-color:rgba(91,211,255,.46);
  background:linear-gradient(135deg,rgba(10,42,63,.82),rgba(5,18,30,.78));
  color:#c5d9e6;
}

.appDesignPreviewFooter.enabled a{
  color:#7ff0c8;
}

@media(max-width:520px){
  .appDesignPreviewFooter{
    margin-top:14px;
    padding:11px 12px;
    font-size:12px;
  }
}

/* myve-valley-sans-global-v1-20260924
   Roboto est la police produit sur tout myve.fr, y compris formulaires,
   boutons, menus et elements natifs. Les blocs techniques restent monospace.
*/
:root{
  --myve-font-family:"Roboto",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html,
body,
button,
input,
select,
textarea,
option,
optgroup,
summary,
dialog,
.btn,
.card,
.modal,
.appShell,
.premiumShell,
.publicLanding,
.legacyDashboard,
.iCockpitShell{
  font-family:var(--myve-font-family) !important;
}

body :where(a,button,input,select,textarea,label,legend,fieldset,option,optgroup,summary,details,dialog,h1,h2,h3,h4,h5,h6,p,span,strong,small,b,i,em,li,td,th,div){
  font-family:inherit;
}

/* myve-account-vehicle-manager-v1-20260924
   Les actions de retrait véhicule vivent uniquement dans Mon compte.
*/
.accountVehicleManagerCard{
  margin-top:16px;
}
.accountVehicleManagerCard .vehicleManagerOpen strong,
.accountVehicleManagerCard .vehicleManagerOpen small{
  overflow-wrap:anywhere;
}
@media(max-width:640px){
  .accountVehicleManagerCard .vehicleManagerItem{
    align-items:stretch;
    flex-direction:column;
  }
  .accountVehicleManagerCard .vehicleManagerOpen{
    width:100%;
  }
  .accountVehicleManagerCard .vehicleManagerRemove,
  .accountVehicleManagerCard .vehicleManagerAdminTestDelete{
    width:100%;
    min-height:44px;
  }
}

/* myve-icockpit-home-spacing-v1-20260924
   Recompose le bas de la carte véhicule i-Cockpit : métriques, fraîcheur et
   commandes gardent une grille régulière au lieu de flotter séparément.
*/
@media(min-width:960px){
  .connectedVehicleCard.iCockpitV2{
    row-gap:14px;
    grid-template-rows:auto minmax(270px,1fr) auto auto auto;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    margin:-4px 0 0;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics{
    gap:14px;
    margin-top:0;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics>.homeMetric{
    min-height:126px !important;
    padding:18px 20px !important;
    border-left:1px solid rgba(95,178,223,.22) !important;
    box-shadow:inset 0 1px rgba(255,255,255,.08),0 18px 34px rgba(0,0,0,.18);
  }

  .connectedVehicleCard.iCockpitV2 .connectedFreshness{
    width:100%;
    min-height:76px;
    box-sizing:border-box;
    align-self:stretch;
    justify-content:flex-start;
    padding:12px 16px;
    border:1px solid rgba(95,178,223,.25);
    border-radius:8px;
    background:linear-gradient(180deg,rgba(8,31,49,.76),rgba(4,16,27,.86));
    box-shadow:inset 0 1px rgba(255,255,255,.08),0 14px 28px rgba(0,0,0,.18);
  }

  .connectedVehicleCard.iCockpitV2 .connectedFreshness b{
    margin-left:0;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitQuickActions{
    height:100%;
    gap:14px;
    align-self:stretch;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitQuickAction{
    min-height:76px;
    padding:12px;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitCommandMsg{
    margin:0;
  }
}

@media(min-width:960px) and (max-width:1220px){
  .connectedVehicleCard.iCockpitV2{
    grid-template-columns:minmax(230px,.76fr) minmax(420px,1.24fr);
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitQuickAction{
    font-size:12px;
  }
}

@media(max-width:959px){
  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics{
    gap:10px;
    margin-top:12px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedFreshness{
    width:100%;
    box-sizing:border-box;
    padding:10px 12px;
    border-radius:8px;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitQuickActions{
    gap:10px;
    margin-top:12px;
  }
}

/* myve-clear-charge-cockpit-v1-20260924
   Positionnement original inspire par l'idee d'un tableau de bord de charge :
   donnees datees, couts lisibles, commandes confirmees.
*/
.landingChargeCockpit{
  width:min(1120px,100%);
  margin:24px auto 30px;
  padding:24px;
  border:1px solid rgba(55,154,205,.34);
  border-radius:8px;
  background:
    radial-gradient(circle at 18% 0,rgba(77,206,255,.13),transparent 32%),
    linear-gradient(145deg,rgba(8,31,47,.92),rgba(4,14,23,.96));
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 20px 50px rgba(0,0,0,.28);
}

.landingChargeFlow{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:18px;
}

.landingChargeStep{
  min-width:0;
  min-height:154px;
  padding:17px;
  border:1px solid rgba(75,165,210,.28);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(10,39,59,.78),rgba(5,17,28,.88));
  box-shadow:inset 0 1px rgba(255,255,255,.07);
}

.landingChargeStep span,
.landingCapabilityCard>span{
  display:inline-grid;
  place-items:center;
  min-width:36px;
  height:28px;
  margin-bottom:12px;
  border-radius:999px;
  border:1px solid rgba(78,201,255,.42);
  background:rgba(7,28,43,.86);
  color:#6ee9ff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
}

.landingChargeStep strong{
  display:block;
  color:#f5fbff;
  font-size:18px;
}

.landingChargeStep p{
  margin:8px 0 0;
  color:#9db5c5;
  font-size:13px;
  line-height:1.55;
}

.landingChargePromise{
  margin-top:14px;
  padding:13px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid rgba(46,214,174,.34);
  border-radius:8px;
  background:rgba(7,38,33,.72);
  color:#bddbd7;
  font-size:13px;
  line-height:1.45;
}

.landingChargePromise strong{
  color:#7df2cb;
  white-space:nowrap;
}

.landingCapabilities .landingCapabilityCard{
  border-radius:8px;
}

.landingCapabilities .landingCapabilityCard>span{
  flex-basis:auto;
  width:auto;
  font-size:12px;
}

.connectedPilotCard{
  padding:20px;
  border-radius:8px;
  border-color:rgba(55,151,205,.35);
  background:
    radial-gradient(circle at 100% 0,rgba(69,194,255,.12),transparent 36%),
    linear-gradient(145deg,rgba(8,30,47,.9),rgba(5,17,28,.94));
}

.connectedPilotRows{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:15px;
}

.connectedPilotRows>div{
  min-width:0;
  min-height:104px;
  padding:14px;
  border:1px solid rgba(95,178,223,.22);
  border-radius:8px;
  background:rgba(4,18,29,.58);
}

.connectedPilotRows span{
  display:block;
  color:#8fb0c5;
  font-size:12px;
  font-weight:820;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.connectedPilotRows strong{
  display:block;
  margin-top:8px;
  color:#f1f9ff;
  font-size:18px;
  overflow-wrap:anywhere;
}

.connectedPilotRows small{
  display:block;
  margin-top:6px;
  color:#8ca4b5;
  font-size:12px;
  line-height:1.4;
}

@media(min-width:960px){
  .iCockpitDashboard #connectedHome>.connectedPilotCard{
    grid-column:1 / 7;
    align-self:stretch;
  }
}

@media(max-width:900px){
  .landingChargeFlow{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .connectedPilotRows{
    grid-template-columns:1fr;
  }
}

@media(max-width:560px){
  .landingChargeCockpit{
    width:min(100% - 24px,1120px);
    padding:18px 16px;
    margin:18px auto 24px;
  }

  .landingChargeFlow{
    grid-template-columns:1fr;
  }

  .landingChargeStep{
    min-height:0;
  }

  .landingChargePromise{
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
  }

  .connectedPilotCard{
    padding:17px;
  }
}

/* myve-mobile-icockpit-safari-v1-20260925
   La vue i-Cockpit doit rester lisible sur mobiles et WebKit/Safari :
   aucune puce, image ou carte ne doit depasser la largeur visible.
*/
@supports (-webkit-touch-callout:none){
  html,
  body{
    min-height:-webkit-fill-available;
  }

  .appShell,
  .premiumShell,
  .iCockpitShell{
    -webkit-font-smoothing:antialiased;
  }
}

@media(max-width:700px){
  .appShell,
  .premiumShell,
  .iCockpitShell,
  .premiumMain,
  .premiumMain>#view,
  .premiumDashboard,
  .premiumDashboard.iCockpitDashboard,
  .legacyDashboard,
  .legacySection,
  .premiumVehicleHero.iCockpitV2,
  .connectedVehicleCard.iCockpitV2{
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
    box-sizing:border-box;
  }

  .premiumMain{
    width:calc(100% - 16px) !important;
    max-width:760px !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .premiumVehicleHero.iCockpitV2{
    width:100%;
    padding:18px 14px 16px;
    border-radius:22px;
  }

  .connectedVehicleCard.iCockpitV2{
    width:100%;
    padding:18px 14px 16px;
    border-radius:22px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleHead,
  .connectedVehicleCard.iCockpitV2 .iCockpitWeatherCard,
  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual,
  .connectedVehicleCard.iCockpitV2 .connectedVehicleMetrics,
  .connectedVehicleCard.iCockpitV2 .connectedFreshness,
  .connectedVehicleCard.iCockpitV2 .iCockpitQuickActions,
  .connectedVehicleCard.iCockpitV2 .iCockpitCommandMsg{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  .connectedVehicleCard.iCockpitV2 .iCockpitWeatherCard,
  .connectedVehicleCard.iCockpitV2 .connectedFreshness{
    width:100%;
  }

  .connectedVehicleCard.iCockpitV2 .connectedFreshness{
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    height:210px;
    margin:4px 0 0;
    overflow:visible;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual img{
    width:100%;
    max-width:430px;
    height:100%;
    object-fit:contain;
    object-position:center bottom;
    transform:none !important;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroShowcase{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    min-height:0;
    width:100%;
    overflow:hidden;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroIntro,
  .premiumVehicleHero.iCockpitV2 .premiumHeroHeading,
  .premiumVehicleHero.iCockpitV2 .premiumHeroTitle,
  .premiumVehicleHero.iCockpitV2 .vehicleHeroVisual,
  .premiumVehicleHero.iCockpitV2 .legacyHeroStatus,
  .premiumVehicleHero.iCockpitV2 .legacyBatteryRow,
  .premiumVehicleHero.iCockpitV2 .legacyStatusGrid{
    min-width:0;
    max-width:100%;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroIntro{
    gap:10px;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroHeading{
    flex-wrap:wrap;
  }

  .premiumVehicleHero.iCockpitV2 .heroRefreshBtn{
    min-height:40px;
    padding:8px 10px;
  }

  .premiumVehicleHero.iCockpitV2 .premiumFreshness,
  .premiumVehicleHero.iCockpitV2 .vehicleSmartHeadline{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    overflow-wrap:anywhere;
  }

  .premiumVehicleHero.iCockpitV2 .premiumFreshness{
    align-items:flex-start;
    padding:0;
    border-radius:0;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleSmartHeadline{
    margin:4px 0 0;
    padding:0;
    border-radius:0;
    font-size:13px;
    line-height:1.35;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleHeroVisual{
    display:grid;
    justify-items:center;
    min-height:210px;
    overflow:visible;
  }

  .premiumVehicleHero.iCockpitV2 .legacyCarVisual{
    width:100%;
    height:214px;
    margin:0 !important;
    align-items:center;
    justify-content:center;
    overflow:visible;
  }

  .premiumVehicleHero.iCockpitV2 .legacyCarVisual img{
    width:100%;
    max-width:430px;
    height:100%;
    object-fit:contain;
    object-position:center bottom;
    transform:none !important;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleActivityBadges{
    left:8px;
    right:8px;
    bottom:0;
    max-width:calc(100% - 16px);
  }

  .premiumVehicleHero.iCockpitV2 .vehicleActivityBadge{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    line-height:1.18;
    text-align:left;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleOdometer{
    width:auto;
    max-width:100%;
    margin:0 auto 8px;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroStatus{
    display:flex;
    align-items:flex-start;
    gap:8px;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroStatus .tag,
  .premiumVehicleHero.iCockpitV2 .premiumHeroStatus .vehicleConnectionState,
  .premiumVehicleHero.iCockpitV2 .premiumHeroStatus .small{
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .premiumVehicleHero.iCockpitV2 .legacyBatteryRow{
    padding:14px;
  }
}

@media(max-width:430px){
  .premiumMain{
    width:calc(100% - 12px) !important;
  }

  .premiumVehicleHero.iCockpitV2{
    padding:16px 12px;
  }

  .connectedVehicleCard.iCockpitV2{
    padding:16px 12px;
  }

  .premiumVehicleHero.iCockpitV2 .premiumHeroIntro h1{
    font-size:clamp(32px,10vw,40px);
    letter-spacing:0;
  }

  .premiumVehicleHero.iCockpitV2 .legacyCarVisual{
    height:188px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    height:188px;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleHeroVisual{
    min-height:192px;
  }

}

@media(max-width:380px){
  .premiumVehicleHero.iCockpitV2 .legacyCarVisual{
    height:172px;
  }

  .connectedVehicleCard.iCockpitV2 .connectedVehicleVisual{
    height:172px;
  }

  .premiumVehicleHero.iCockpitV2 .vehicleHeroVisual{
    min-height:178px;
  }
}

/* myve-trip-place-labels-v1 */
.tripGeoFooter{
  display:grid;
  gap:10px;
}

.tripGeoLegend{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.tripGeoPlace{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:10px 11px;
  border:1px solid rgba(74,173,220,.26);
  border-radius:14px;
  background:rgba(5,24,39,.72);
}

.tripGeoKey{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  font-style:normal;
  font-weight:900;
  font-size:12px;
  color:#06111c;
  box-shadow:0 0 0 1px rgba(255,255,255,.14) inset;
}

.tripGeoKeyA{
  background:#74f2cf;
}

.tripGeoKeyB{
  background:#5fc8ff;
}

.tripGeoPlace span{
  min-width:0;
  display:grid;
  gap:2px;
}

.tripGeoPlace b{
  color:#edf7ff;
  font-size:13px;
  line-height:1.15;
}

.tripGeoPlace small{
  min-width:0;
  color:#a8bed0;
  font-size:12px;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.tripGeoPlaceMissing small{
  color:#8497a6;
}

.tripGeoLinks{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}

/* Member recharge profiles and independently recorded meter/receipt values. */
.chargeProfileBand{padding:20px 0;border-block:1px solid var(--line);min-width:0}
.chargeProfileHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.chargeProfileHead h2{margin:0;font-size:20px}
.chargeProfileModes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.chargeProfileMode{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;min-height:108px;padding:14px;text-align:left;border:1px solid #31556a;border-radius:8px;background:#091c27;color:#eef6ff;cursor:pointer}
.chargeProfileMode strong{font-size:16px}
.chargeProfileMode span,.chargeProfileMode small{font-size:13px;line-height:1.45;color:#b9ceda;overflow-wrap:anywhere}
.chargeProfileMode.selected{border-color:#5cdbc1;box-shadow:inset 3px 0 #5cdbc1}
.chargeProfileMode:hover:not(:disabled){background:#133342}
.chargeProfileMode:disabled{cursor:default;opacity:.65}
.chargeProfileStatus:empty{display:none}
.chargeProfileStatus{margin:12px 0 0}
.vehicleDataHelp{display:block;margin:14px 0;white-space:normal;text-align:left;line-height:1.5}
.chargeCorrectionButton{display:block;white-space:normal;font-size:13px;line-height:1.4;margin-top:8px}
.chargeCorrectionButton:disabled{opacity:.55;cursor:default}
.modal .chargeFeatureDialog{width:min(640px,100%);height:auto;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:8px;min-width:0}
.chargeFeatureDialog .headrow{flex:0 0 auto;align-items:flex-start}
.chargeFeatureDialog h2{font-size:20px;line-height:1.3;margin:0;min-width:0}
.chargeFeatureDialog form{display:flex;flex-direction:column;min-height:0;min-width:0}
.chargeFeatureDialog .modalScroll{min-height:0;overflow-y:auto}
.chargeFeatureDialog .modalActions{display:grid;gap:10px;flex:0 0 auto}
.chargeFeatureDialog input,.chargeFeatureDialog select,.chargeFeatureDialog textarea{width:100%;min-width:0;box-sizing:border-box;padding:10px 12px;border:1px solid #31556a;border-radius:8px;background:#06141e;color:#eef6ff;font:inherit;color-scheme:dark}
.chargeFeatureDialog input[type=checkbox]{width:20px;flex:0 0 20px;padding:0;accent-color:#5cdbc1}
.chargeFeatureDialog .checkRow{gap:10px;line-height:1.5}
.chargeFeatureDialog .btn{border-radius:8px}
.chargeCorrectionFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.profileWindowList{display:grid;gap:14px;margin:14px 0}
.profileWindow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.profileWindow>label{display:grid;gap:6px;min-width:0;font-size:13px}
.profileWindow>.checkRow{display:flex}
.profileWindow>label:first-child,.profileWindow>label:last-child{grid-column:1/-1}
.bugVehicleContext{margin:16px 0;align-items:flex-start;font-size:14px;line-height:1.5}
@media(max-width:600px){
  .chargeProfileModes{grid-template-columns:1fr;gap:8px}
  .chargeProfileMode{min-height:94px;padding:12px}
  .chargeProfileHead{flex-wrap:wrap}
  .chargeCorrectionFields{grid-template-columns:1fr;gap:0}
  .modal .chargeFeatureDialog{padding:16px}
}

.tripGeoLinks a{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.tripGeoLegendModal{
  margin-bottom:8px;
}

.vehicleStatistics{min-width:0;max-width:100%}
.vehicleStatistics .statisticsHead{align-items:center;gap:16px;flex-wrap:wrap}
.vehicleStatistics .statisticsHead h1{font-size:32px;margin:4px 0 0}
.vehicleStatistics>.statisticsFilters{margin-top:20px}
.statisticsSection{padding:24px 0;border-bottom:1px solid var(--border,#254760)}
.statisticsRechargeSection{display:grid;gap:24px}
.vehicleStatistics .rechargeSectionHead{flex-wrap:wrap}
.statisticsSection>.headrow{gap:12px;flex-wrap:wrap;margin-bottom:16px}
.statisticsSection h2{font-size:22px;margin:0}
.statisticsMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.statisticsMetric{display:flex;flex-direction:column;justify-content:center;gap:12px;min-width:0;min-height:116px;padding:18px;border-radius:8px}
.statisticsMetric strong{font-size:24px;line-height:1.35;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.statisticsMetric .small{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.statisticsFootnote{margin-top:18px;line-height:1.5}
.vehicleLocation{min-width:0;max-width:100%}
.locationHead{align-items:center;gap:16px;flex-wrap:wrap}
.locationHead h1{font-size:32px;margin:4px 0 0}
.locationPosition{padding-top:24px}
.locationPosition h2{font-size:22px;margin:0}
.locationPosition p{line-height:1.5;overflow-wrap:anywhere}
.locationMap{height:460px;width:100%;border:1px solid var(--border,#254760);border-radius:8px;overflow:hidden;margin-top:18px}
.locationMap iframe{display:block;width:100%;height:100%;border:0}
.locationLinks{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px}
@media(max-width:760px){
  .statisticsMetrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .statisticsMetric:last-child:nth-child(odd){grid-column:1/-1}
  .statisticsMetric{padding:12px;min-height:116px}
  .statisticsMetric strong{font-size:22px}
  .vehicleStatistics .statisticsHead h1{font-size:28px}
  .statisticsSection h2{font-size:20px}
  .locationHead h1{font-size:28px}
  .locationPosition h2{font-size:20px}
  .locationMap{height:320px}
}

@media(max-width:700px){
  .tripGeoLegend{
    grid-template-columns:1fr;
  }

  .tripGeoPlace{
    padding:9px 10px;
  }

  .tripGeoPlace small,
  .tripGeoLinks a{
    white-space:normal;
    overflow-wrap:anywhere;
  }
}

.rechargeUxHeader{flex-wrap:wrap}
.rechargeUxHeader>div:first-child{min-width:0;flex:1 1 220px}
.rechargeHeaderActions{display:flex;align-items:center;gap:12px;margin-left:auto;min-width:0;max-width:100%}
.rechargeHeaderActions .btn{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;min-height:46px;white-space:normal;text-align:left;font-size:14px;max-width:210px}
.rechargeSetupRocket{width:22px;height:22px;flex:0 0 22px;object-fit:contain}
.rechargeSetupStatus{margin:0 0 12px;max-width:650px;line-height:1.5}
.rechargeSetupStatus:empty{display:none}
.modal.rechargeSetupModal{z-index:10010;padding:12px;overflow:hidden}
.modal .box.rechargeSetupDialog{width:min(720px,100%);padding:22px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
.rechargeSetupDialog .headrow{gap:12px;margin-bottom:12px}
.rechargeSetupDialog .headrow h2{font-size:21px;line-height:1.3;overflow-wrap:break-word}
.rechargeSetupDialog .headrow button{flex:0 0 auto;min-height:44px;padding:10px 12px}
.rechargeSetupVehicle{margin:0 0 14px;color:var(--muted);font-size:14px}
.rechargeSetupScroll{padding-right:6px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.rechargeSetupSection{border-top:1px solid #264557;padding:18px 0;margin:0;min-width:0}
.rechargeSetupSection h3,.rechargeContractHours h3{font-size:16px;line-height:1.4;margin:0 0 12px}
.rechargeSetupSection p{line-height:1.5;margin:8px 0 12px}
.rechargeSetupExtra summary{font-size:13px;color:#7dded2;cursor:pointer;padding:8px 0;min-height:36px}
.rechargeSetupPrices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rechargeSetupPrices label,.rechargeSetupWindow>label:not(.checkRow),.rechargeSetupLimit>label:not(.checkRow){display:grid;gap:6px;min-width:0;font-size:13px}
.rechargeSetupPrices label span{color:var(--muted);font-size:12px}
.rechargeSetupDialog input,.rechargeSetupDialog select{font-size:16px;min-height:44px}
.rechargeSetupDialog input[type=checkbox],.rechargeSetupDialog input[type=radio]{min-height:20px;width:20px;flex:0 0 20px;accent-color:#5cdbc1}
.rechargeSetupWindow{display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,1fr) 86px;gap:10px;align-items:end;margin:12px 0;min-width:0}
.rechargeSetupWindow .checkRow{display:flex;align-items:center;min-height:44px;margin:0;gap:8px;font-size:13px}
.rechargeSetupWindow input,.rechargeSetupWindow select{display:block;width:100%;min-width:0;min-height:44px;padding:9px;border:1px solid #31556a;border-radius:8px;background:#06141e;color:#eef6ff;color-scheme:dark;font:inherit}
.rechargeSetupWindow input[type=checkbox]{width:20px;min-height:20px;accent-color:#5cdbc1}
.rechargeSetupWindow input:disabled,.rechargeSetupWindow select:disabled{opacity:.5}
.rechargeSetupSchedule{border:0;padding:0;margin:14px 0 0;min-width:0}
.rechargeSetupSchedule legend{font-size:13px;color:var(--muted);margin-bottom:10px}
.rechargeSetupSchedule:disabled{opacity:.55}
.rechargeSetupModes{display:flex;flex-wrap:wrap;gap:10px 20px}
.rechargeSetupModes label{display:flex;align-items:center;gap:8px;font-size:14px;min-height:44px}
.rechargeSetupLimit{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:14px;align-items:end}
.rechargeSetupLimit .checkRow{margin:0;min-height:44px;align-items:center}
.rechargeSetupDialog [hidden]{display:none!important}
.rechargeSetupActions{margin:4px 0 0;padding:12px 0 0;width:100%;max-width:100%;border-top:1px solid #264557;background:#081725}
.rechargeSetupActions p{margin:0;line-height:1.5;color:#cce9e5;overflow-wrap:break-word}
.rechargeSetupActions p:empty{display:none}
.rechargeSetupActions .btn{font-size:15px;min-height:48px;white-space:normal}
.rechargeContractHours{padding:20px 0;border-top:1px solid var(--line);margin-top:18px;max-width:720px}
.rechargeTariffFields{border:0;padding:0;margin:0;min-width:0}
.rechargeTariffFields[hidden],.tempoContractDetails[hidden]{display:none!important}
.rechargeTariffFields.rechargeContractHours{border-top:1px solid var(--line);padding:20px 0;margin-top:18px}
.rechargeContractHours legend{font-size:18px;font-weight:700;padding:0 0 12px}
.rechargeContractDetails summary{font-size:14px;font-weight:700;color:var(--text);cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px}
.rechargeContractDetails summary::before{content:"+";font-size:20px;line-height:1;flex:none;width:16px;text-align:center}
.rechargeContractDetails[open] summary::before{content:"-"}
.rechargeContractDetails summary::-webkit-details-marker{display:none}
.rechargeContractDetails summary:focus-visible{outline:2px solid #38bdf8;outline-offset:4px}
.tempoContractToggle{display:flex;align-items:center;gap:12px;min-height:44px;margin:12px 0 18px;line-height:1.5}
.tempoContractToggle input{flex:none;width:20px;height:20px;accent-color:#38bdf8}
.tempoContractToggle span{min-width:0;overflow-wrap:break-word}
.tempoOffPeakChoices{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 16px;padding:0;border:0;min-width:0}
.tempoOffPeakChoices legend{padding:0 0 8px;font-size:14px;color:var(--muted)}
.tempoOffPeakChoices label{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-size:15px;color:var(--text);cursor:pointer}
.tempoOffPeakChoices input[type=radio]{flex:none;width:20px;height:20px;margin:0;accent-color:#38bdf8}
.tempoOffPeakChoices input:focus-visible{outline:2px solid #38bdf8;outline-offset:3px}
.tempoContractPrices{width:100%;max-width:600px;border-collapse:collapse;margin:16px 0;font-size:14px;font-variant-numeric:tabular-nums}
.tempoContractPrices caption{text-align:left;color:var(--muted);padding-bottom:8px}
.tempoContractPrices th,.tempoContractPrices td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:right;color:var(--text)}
.tempoContractPrices th:first-child{text-align:left}
.tempoContractPrices .tempoDot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}
.tempoContractPrices .tempoDot.blue{background:#38bdf8}
.tempoContractPrices .tempoDot.white{background:#e2e8f0}
.tempoContractPrices .tempoDot.red{background:#fb7185}
@media(max-width:540px){
  .rechargeHeaderActions{gap:8px}
  .rechargeHeaderActions .btn{font-size:13px;padding:10px;min-width:0;max-width:180px}
  .modal .box.rechargeSetupDialog{padding:16px 12px}
  .rechargeSetupDialog .headrow h2{font-size:18px}
  .rechargeSetupDialog .headrow button{font-size:13px;padding:8px}
  .rechargeSetupPrices{gap:10px}
  .rechargeSetupWindow{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 10px;padding:10px 0;border-bottom:1px solid #1b3749}
  .rechargeSetupWindow .checkRow,.rechargeSetupWindow>label:last-child{grid-column:1/-1}
  .rechargeSetupWindow>label:last-child{grid-template-columns:45px minmax(0,1fr);align-items:center}
  .rechargeSetupDialog .rechargeSetupWindow input,.rechargeSetupDialog .rechargeSetupWindow select{font-size:16px}
}

.rechargeLiveMetricHelp{position:relative;z-index:1;margin:9px 0 0;color:#9eb5c4;font-size:12px;line-height:1.45}.rechargeLiveFacts .rechargeLiveMetricNote{margin:4px 0 0;font-size:12px;color:#cdb67e}

/* Keep the ETA status readable before enough dated SOC progression. */
.rechargeLiveFacts>div:last-child strong{white-space:normal;overflow-wrap:anywhere}
/* Charge reliability pilot: readable notices and source-backed session summaries. */
.chargeManualHoldNotice{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.chargeManualHoldNotice>strong{flex:1 1 250px;color:#f4f7fb}
.chargeManualHoldNotice>.small{flex-basis:100%}
.chargeManualHoldNotice>.btn{flex-shrink:0}
.chargeSessionSummaryList{list-style:none;margin:16px 0;padding:0;display:grid;gap:0}
.chargeSessionSummaryList>li{padding:12px 0;border-bottom:1px solid var(--line);color:#f4f7fb;line-height:1.6;overflow-wrap:anywhere}
.chargeSessionSummaryList>li:last-child{border-bottom:0}
.commandObservationCard{margin:20px 0;min-width:0}
.commandObservationTableWrap{max-width:100%;overflow-x:auto;margin:16px 0}
.commandObservationTable{width:100%;border-collapse:collapse;text-align:left;font-size:13px;min-width:850px}
.commandObservationTable th,.commandObservationTable td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.commandObservationTable th{color:#a6bac8;font-weight:650}
.commandObservationTable td{color:#f4f7fb}
.commandObservationTable td small{display:block;margin-top:5px;color:var(--muted)}
.commandObservationCard .notice p{margin:8px 0 0;line-height:1.5}

/* Recharge — 4 blocks, one settings form. Existing site colors, Roboto and icons. */
.rechargeSimplePage{--charge-panel:#102430;--charge-inner:#0b1b26;--charge-line:#2b4657;--text:#e7f3fa;display:flex;flex-direction:column;gap:22px;min-width:0}
.rechargeSimplePage[hidden],.rechargeSimplePage [hidden]{display:none!important}
.rechargeSimplePage h1,.rechargeSimplePage h2,.rechargeSimplePage h3,.rechargeSimplePage p{margin:0}
.rechargeSimplePage h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15}.rechargeSimplePage h2{font-size:1.4rem;line-height:1.25}
.chargeSimpleHeader{display:flex;flex-direction:column;gap:7px}.chargeSimpleHeader p{color:var(--muted)}
.rechargeSimplePage .card{background:var(--charge-panel);border:1px solid var(--charge-line);border-radius:20px;padding:24px;min-width:0;box-shadow:none}
.rechargeSimplePage .small{color:var(--muted);line-height:1.55;font-size:.91rem}
.rechargeSimplePage .btn{min-height:48px;border-radius:12px;white-space:normal;text-align:center}
.rechargeSimplePage .btn:not(.secondary){background:var(--accent,#50dbe5);color:#062832;font-weight:750;border-color:var(--accent,#50dbe5)}
.rechargeSimplePage .btn.secondary{background:var(--charge-inner);color:var(--text);border:1px solid var(--charge-line)}
.rechargeSimplePage .btn:disabled{opacity:.55;cursor:not-allowed}
.rechargeSimplePage button:focus-visible,.rechargeSimplePage summary:focus-visible,.chargeSwitch:has(input:focus-visible){outline:2px solid var(--accent,#50dbe5);outline-offset:4px}
.chargeNowCard{display:flex;flex-direction:column;gap:22px}.chargeNowTop{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:24px}
.chargeNowMain{display:flex;flex:1 1 380px;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.rechargeSimplePage .chargeEyebrow{font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600}
.chargeNowBadge{display:inline-flex;align-items:center;gap:9px;border-radius:100px;background:#233d4c;padding:6px 12px;font-size:.9rem;font-weight:700}
.chargeNowBadge i{width:9px;height:9px;border-radius:50%;background:#91aabb}.charging .chargeNowBadge{background:#183e3b}.charging .chargeNowBadge i{background:#79e6bd}.old .chargeNowBadge,.warning .chargeNowBadge{background:#423b27}.old .chargeNowBadge i,.warning .chargeNowBadge i{background:#f6c462}
.chargeNowHeadline{font-size:clamp(1.85rem,4vw,2.8rem);line-height:1.12;font-weight:750;letter-spacing:-.025em;overflow-wrap:anywhere}
.chargeNowDetail{color:var(--text);line-height:1.5}.chargeNowEstimate{color:var(--text);line-height:1.45}.chargeNowEstimate small{display:block;color:var(--muted);margin-top:5px;font-size:.84rem}
.chargeNowAge{display:flex;align-items:center;gap:7px}.chargeNowAge .material-symbols-outlined{font-size:18px}
.chargeNowActions{display:flex;flex-direction:column;gap:10px;flex:0 1 300px;min-width:0}.chargeNowActions .btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}
.chargeNowActions .chargeExplicitControls{margin:0;padding:0;background:transparent;border:0}.chargeNowActions .chargeExplicitButtons{display:flex;flex-direction:column;gap:10px}.chargeNowActions .chargeExplicitControls>p{font-size:.84rem;line-height:1.4;margin-bottom:10px}
.chargeNowProgress{margin-top:2px}.chargeNowLimitLabel{position:relative;height:27px;font-size:.83rem;font-weight:700}.chargeNowLimitLabel span{position:absolute;right:calc(100% - var(--charge-limit));white-space:nowrap}
.chargeNowTrack{position:relative;height:14px;background:var(--charge-inner);border:1px solid var(--charge-line);border-radius:100px}.chargeNowTrack i{position:absolute;inset:0 auto 0 0;background:#79e6bd;border-radius:100px;max-width:100%}.old .chargeNowTrack i,.warning .chargeNowTrack i{background:#f6c462}.chargeNowTrack b{position:absolute;top:-6px;bottom:-6px;width:3px;background:var(--text);transform:translateX(-2px);border-radius:3px}
.chargeNowScale{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted);font-size:.8rem}
.chargeNowFacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.chargeNowFacts>div{padding:13px 15px;background:var(--charge-inner);border-radius:12px;display:flex;flex-direction:column;gap:5px;min-width:0}.chargeNowFacts small{font-size:.83rem;color:var(--muted)}.chargeNowFacts strong{font-size:1rem;overflow-wrap:anywhere;line-height:1.4}.chargeNowFacts .chargeLastSession{grid-column:1/-1}.rechargeSimplePage .chargeMetricHelp{font-size:.8rem}
.chargeSettingsFields{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:22px}.chargeSettingsFields:disabled{opacity:.7}
.chargeSettingsColumns{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);gap:22px}
.chargeLimitSimple,.chargeWhenSimple{display:flex;flex-direction:column;gap:16px}
.chargeLimitChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.chargeLimitChoices button{min-width:0;min-height:52px;background:var(--charge-inner);color:var(--text);font-weight:750;font-size:1.06rem;border:1px solid var(--charge-line);border-radius:12px;padding:8px 10px;cursor:pointer}.chargeLimitChoices button[aria-pressed=true]{background:var(--accent,#50dbe5);color:#062832;border-color:var(--accent,#50dbe5)}
.chargeLongTrip{display:flex;gap:12px;align-items:center;text-align:left!important}.chargeLongTrip>span:last-child{display:flex;flex-direction:column;gap:5px}.chargeLongTrip small{font-size:.83rem;color:var(--muted);font-weight:400;line-height:1.5}.chargeLongTrip[aria-pressed=true]{border-color:var(--accent,#50dbe5)!important}
.chargeEstimateSettings{margin-top:auto}.chargeEstimateSettings summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;font-size:.9rem;color:var(--muted)}.chargeEstimateFields{display:grid;gap:12px;margin-top:12px}
.chargeWhenHeading{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between}.chargeWhenHeading>div{flex:1 1 240px}.chargeWhenHeading h2{margin-bottom:8px}
.chargeSwitch{position:relative;display:flex;align-items:center;gap:10px;cursor:pointer;min-height:44px;margin:0;font-size:.95rem}.chargeSwitch input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;opacity:0;pointer-events:none}.chargeSwitchTrack{position:relative;display:block;flex:none;width:44px;height:26px;background:#415c6b;border-radius:30px}.chargeSwitchTrack:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;background:#ecf8ff;border-radius:50%;transition:transform .15s}.chargeSwitch input:checked+.chargeSwitchTrack{background:#009fae}.chargeSwitch input:checked+.chargeSwitchTrack:after{transform:translateX(18px)}.chargeSwitch input:disabled+.chargeSwitchTrack{opacity:.6}
.chargeSimpleWindows{display:flex;flex-direction:column;gap:12px}.rechargeSimplePage .chargeSimpleWindow{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(120px,1fr);gap:10px;align-items:center;padding:12px;background:var(--charge-inner);border:1px solid var(--charge-line);border-radius:12px;min-width:0}.chargeSimpleWindow .chargeSwitch{padding:0}.chargeSimpleWindow label:not(.chargeSwitch){display:flex;flex-direction:column;gap:6px;font-size:.82rem;color:var(--muted);min-width:0}.chargeWindowTimes{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);align-items:center;gap:8px;grid-column:1/-1}.chargeWindowTimes>span{align-self:end;margin-bottom:12px;text-align:center}
#energy.rechargeSimplePage .chargeSimpleWindow label.chargeSwitch{display:flex;flex-direction:row;align-items:center;font-size:.95rem;gap:10px;color:var(--text)}
.rechargeSimplePage input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.rechargeSimplePage select{min-height:44px;width:100%;min-width:0;max-width:100%;padding:10px;border-radius:10px;border:1px solid var(--charge-line);background:var(--charge-inner);color:var(--text);font:inherit;box-sizing:border-box}.rechargeSimplePage input[type=time]{font-size:1rem;min-width:0}.chargeAddWindow{background:transparent;min-height:44px;border:1px dashed var(--charge-line);color:var(--accent,#50dbe5);border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;text-align:left}
.rechargeSimplePage .energyTimeline{margin:0}.rechargeSimplePage .energyTimelineLegend{flex-wrap:wrap}
.rechargeSimplePage .chargeTariffsSimple{padding:0}.chargeTariffsSimple>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;padding:20px 24px;min-height:70px;list-style:none}.chargeTariffsSimple>summary::-webkit-details-marker{display:none}.chargeTariffsSimple>summary strong{display:block;font-size:1.2rem;margin-bottom:5px}.chargeTariffsSimple>summary small{display:block;font-size:.86rem;color:var(--muted);line-height:1.5}.chargeDetailsAction{color:var(--accent,#50dbe5);flex:none;font-size:.9rem}.chargeDetailsAction:after{content:' ⌄'}.chargeTariffsSimple[open] .chargeDetailsAction:after{content:' ⌃'}.chargeTariffsBody{padding:0 24px 24px;display:flex;flex-direction:column;gap:18px}.chargeTariffsBody fieldset{min-width:0;border:0;padding:0;margin:0}.chargeTariffsBody .tariffPriceGrid{margin:12px 0}.chargeTariffsBody .rechargeSetupWindow{min-width:0}.chargeTariffsBody .rechargeSetupWindow label{min-width:0}.chargeTariffsBody h3{font-size:1.05rem}.chargeTariffsBody .tempoContract{min-width:0}
.chargeSimpleSave{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--charge-inner);border:1px solid var(--charge-line);padding:18px 22px;border-radius:16px}.chargeSimpleSave .btn{min-width:170px}.chargeSimpleSave #energyMsg{flex:1 0 100%}.chargeSimpleSave #energyMsg:empty{display:none}
.rechargeSimplePage .chargeManualHoldNotice{border:1px solid #9e7838;background:#352c1e;border-radius:14px;padding:18px;color:#f8d28d}
@media(min-width:1200px){.rechargeSimplePage .chargeSimpleWindow{grid-template-columns:120px minmax(130px,1fr) minmax(200px,1.2fr)}.chargeSimpleWindow .chargeWindowTimes{grid-column:auto}}
@media(max-width:920px){.chargeSettingsColumns{grid-template-columns:minmax(0,1fr)}.chargeNowActions{flex-basis:260px}.chargeNowFacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.rechargeSimplePage{gap:16px}.rechargeSimplePage .card{padding:18px;border-radius:16px}.chargeNowTop{gap:20px}.chargeNowMain{flex-basis:100%}.chargeNowActions{flex:1 1 100%}.chargeNowFacts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chargeNowFacts>div{padding:12px}.chargeNowFacts .chargeLastSession{grid-column:1/-1}.chargeSettingsFields,.chargeSettingsColumns{gap:16px}.chargeWhenHeading{flex-direction:column}.chargeWhenHeading>div{flex:auto}.rechargeSimplePage .chargeSimpleWindow{grid-template-columns:minmax(0,1fr)}.chargeSimpleWindow .chargeWindowTimes{grid-column:1}.chargeTariffsSimple>summary{padding:18px;flex-wrap:wrap}.chargeTariffsBody{padding:0 18px 18px}.chargeTariffsBody .tariffPriceGrid{grid-template-columns:minmax(0,1fr)}.chargeSimpleSave{padding:18px}.chargeSimpleSave>.btn{width:100%}.chargeTariffsBody .rechargeSetupWindow{grid-template-columns:1fr 1fr}.chargeTariffsBody .rechargeSetupWindow>.checkRow{grid-column:1/-1}.chargeTariffsBody .rechargeSetupWindow>label:last-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.chargeSwitchTrack:after{transition:none}}

/* Member directory: the site's self-hosted Roboto remains the only UI face. */
.adminDirectory,.adminDirectory input,.adminDirectory select,.adminDirectory button{font-family:"Roboto",sans-serif}
.adminDirectory{--directory-text:#e7f3fa;color:var(--directory-text)}
.directoryHeaderTools,.directoryActions,.directoryPagination,.directoryBadges{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.directoryFilters{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.directoryFilters button{display:flex;gap:12px;align-items:center;background:#102632;color:#d6e7ef;border:1px solid #294959;border-radius:12px;padding:12px 16px}
.directoryFilters button.selected{background:#133d48;border-color:#55dde8;color:#fff}
.directoryFilters b{border-radius:8px;padding:2px 7px;background:#071925}
.directoryToolbar{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.directoryToolbar label{display:grid;gap:6px;flex:1;min-width:220px}.directoryToolbar label:last-child{flex:0 1 230px}
.directoryTableWrap{overflow:auto;border:1px solid #294959;border-radius:16px;background:#0c202d}
.directoryTable{border-collapse:collapse;width:100%;font-size:14px}.directoryTable th{text-align:left;color:#a9c0ce;padding:14px 16px;background:#102632}.directoryTable td{padding:16px;border-top:1px solid #294959;vertical-align:middle}.directoryTable tbody tr[data-member]{cursor:pointer}.directoryTable tbody tr[data-member]:hover{background:#143342}.directoryTable tr:focus-visible{outline:2px solid #55dde8;outline-offset:-3px}.directoryTable small{display:block;color:#a9c0ce;font-size:12px;margin-top:4px}
.directoryBadge{display:inline-block;font-size:12px;padding:3px 7px;border:1px solid #376b60;color:#8ee6c6;border-radius:20px;margin-top:5px}.directoryBadge.beta{color:#73d8fa;border-color:#2b6781}
.directoryState{display:inline-flex;gap:7px;align-items:center}.directoryState i{height:8px;width:8px;border-radius:50%;background:#6fdcb4;flex:none}.directoryState.down{color:#ff9898}.directoryState.down i{background:#ff9898}.directoryState.old,.directoryState.setup,.directoryState.maintenance{color:#f5c26a}.directoryState.old i,.directoryState.setup i,.directoryState.maintenance i{background:#f5c26a}.directoryState.unknown i{background:#a9c0ce}
.directoryPagination{justify-content:center;margin:18px 0 26px}
.directoryBackdrop{position:fixed;inset:0;background:#0009;z-index:8500;display:flex;justify-content:flex-end}.directoryPanel{background:#0c202d;color:#e7f3fa;width:min(580px,100%);height:100dvh;overflow:auto;padding:24px;box-shadow:-10px 0 45px #0007;box-sizing:border-box;overscroll-behavior:contain}.directoryPanel>.headrow{position:sticky;top:-24px;background:#0c202d;padding:10px 0;z-index:1}.directoryPanel h2{font-size:21px;overflow-wrap:anywhere}.directoryPanel section{padding:18px 0;border-bottom:1px solid #294959}.directoryPanel h3{margin:0 0 12px}.directoryPanel .btn{font-size:14px;padding:12px 14px;min-height:44px}.directoryToggle{display:flex;gap:12px;align-items:center;padding:10px 0}.directoryToggle input{width:20px;height:20px;accent-color:#55dde8}.directoryDanger{margin-top:24px;padding:16px;border:1px solid #7a2e3a;border-radius:12px}.directoryDanger summary{color:#ff9898;cursor:pointer}.directoryDanger .btn{margin:8px 8px 0 0}.directoryVehicle>small{display:block;color:#a9c0ce}
.tripCompact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px}.tripCompact p{margin:4px 0;color:#b1c8d5}.myveCockpitVehicleDetails{background-color:rgba(7,22,32,.94)}.myveCockpitVehicleDetails .premiumHeroShowcase{min-height:0}.myveCockpitVehicleDetails .modelIdentity:empty{display:none}
@media(max-width:700px){.directoryTable thead{display:none}.directoryTable,.directoryTable tbody,.directoryTable tr,.directoryTable td{display:block}.directoryTableWrap{overflow:visible;border:0;background:none}.directoryTable tr{border:1px solid #294959;background:#0c202d;border-radius:14px;margin-bottom:12px;padding:12px 16px}.directoryTable td{border:0;padding:5px 0;display:grid;grid-template-columns:115px minmax(0,1fr);gap:8px;overflow-wrap:anywhere}.directoryTable td:before{content:attr(data-label);color:#a9c0ce;font-size:12px}.directoryTable td:first-child{display:block;margin-bottom:8px}.directoryTable td:first-child:before{display:none}.directoryTable td .directoryBadges{grid-column:2}.directoryTable td small{grid-column:2}.directoryFilters{gap:8px}.directoryFilters button{font-size:13px;padding:10px 12px}.directoryPanel{padding:18px}.directoryPanel>.headrow{top:-18px}.directoryActions{align-items:stretch}.directoryActions .btn{flex:1 1 100%}.directoryToolbar label{min-width:100%}.directoryToolbar label:last-child{flex:1}.tripCompact{display:block}}

body:has(#directoryPanelHost .directoryBackdrop)>.modal{z-index:8600}
body:has(#directoryPanelHost .directoryBackdrop){overflow:hidden}

.directoryState.auth{color:#ff9898}.directoryState.auth i{background:#ff9898}

html:has(#directoryPanelHost .directoryBackdrop){overflow:hidden}

.directoryToolbar input,.directoryToolbar select{width:100%;min-height:46px;padding:12px 14px;border:1px solid #294959;border-radius:12px;background:#091c29;color:#e7f3fa;box-sizing:border-box}

/* Activity lives in the battery and fan symbols; the vehicle stays still. */
.vehicleActivityIndicators{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;position:relative;z-index:3}
.vehicleActivityIndicator{display:inline-flex;align-items:center;gap:9px;min-width:0;max-width:100%;padding:7px 12px;border:1px solid #395965;border-radius:12px;background:#0a1d29;color:#edf7fb;font-size:12px;font-weight:600;line-height:1.35;box-sizing:border-box}
.vehicleActivityIndicator>span:last-child{min-width:0;overflow-wrap:anywhere}
.vehicleActivityIndicatorSymbol{display:grid;place-items:center;flex:0 0 28px;width:28px;height:34px;color:#63e1ee}
.vehicleActivityIndicatorSymbol svg{display:block;width:28px;height:28px}
.vehicleActivityIndicatorSymbol .vehicleActivityBattery{width:26px;height:34px}
.vehicleActivityIndicator.isConfirmed.charge .vehicleActivityBatteryFill{transform-box:fill-box;transform-origin:50% 100%;animation:vehicleBatteryFill 2.8s ease-in-out infinite}
.vehicleActivityIndicator.isConfirmed.climate .vehicleActivityIndicatorSymbol>svg{animation:vehicleFanSpin 2.2s linear infinite;transform-origin:center}
.vehicleActivityIndicator.isRecent{border-color:#50616b;background:#12222c;color:#beced8}
.vehicleActivityIndicator.isRecent .vehicleActivityIndicatorSymbol{color:#99aebc}
.vehicleActivityIndicator.isRecent .vehicleActivityBatteryFill{opacity:.4}
@keyframes vehicleBatteryFill{0%,8%{transform:scaleY(.12)}78%,100%{transform:scaleY(1)}}
@keyframes vehicleFanSpin{to{transform:rotate(360deg)}}
.accountApplicationCard{padding:22px!important}.accountApplicationRows{display:grid;border:1px solid #284b5d;border-radius:16px;overflow:hidden;margin-top:16px}.accountApplicationRow{display:grid;grid-template-columns:42px minmax(0,1fr) 14px;align-items:center;gap:14px;padding:18px;text-align:left;background:#0b2331;border:0;border-bottom:1px solid #284b5d;color:#edf7fb;font:inherit;cursor:pointer}.accountApplicationRow:last-child{border-bottom:0}.accountApplicationRow:hover,.accountApplicationRow:focus-visible{background:#123a49}.accountApplicationRow>span:nth-child(2){display:grid;gap:5px;min-width:0}.accountApplicationRow strong{font-size:16px;line-height:1.4}.accountApplicationRow small{font-size:13px;color:#a7c1d1;line-height:1.4}.accountApplicationIcon{width:40px;height:42px;display:grid;place-items:center;border:1px solid #345c6d;border-radius:12px;color:#58dbe8;background:#071925}.accountApplicationIcon svg{width:24px;height:24px}.applicationModalBox{max-width:580px!important}.applicationModalBox label{display:block;margin:15px 0 7px}.applicationModalBox input{width:100%;box-sizing:border-box}.applicationModalBox form>.btn{margin-top:16px}.passkeyList{display:grid;gap:8px;margin:18px 0}.passkeyRow{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid #284b5d;padding:14px;border-radius:12px}.passkeyRow>div{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}.passkeyRow small{color:#9db8c9}.passkeyRow button{flex-shrink:0}.applicationInstallSteps{padding-left:25px;line-height:1.7}.applicationInstallSteps li{padding:7px 0}.applicationInstallQr{display:flex;align-items:center;gap:18px;border:1px solid #284b5d;border-radius:14px;padding:16px;margin:16px 0}.applicationInstallQr img{background:white;flex:0 0 144px;border-radius:8px}.applicationInstallQr p{font-size:14px;line-height:1.6}.authLoginBox .modalActions{display:grid;gap:10px}.applicationAdminStats{margin-top:16px;color:#a7c1d1}.applicationAdminStats summary{cursor:pointer}.applicationAdminStats>div{padding-top:10px;line-height:1.6}
@media(max-width:520px){.accountApplicationCard{padding:17px!important}.accountApplicationRow{padding:15px;gap:10px;grid-template-columns:38px minmax(0,1fr) 12px}.accountApplicationIcon{width:36px;height:40px}.applicationInstallQr{flex-direction:column;text-align:center}}
@media(max-width:520px){.vehicleActivityIndicator{font-size:12px;padding:6px 10px;gap:7px}.vehicleActivityIndicators{gap:7px}}
@media(prefers-reduced-motion:reduce){.vehicleActivityIndicator .vehicleActivityBatteryFill,.vehicleActivityIndicator .vehicleActivityIndicatorSymbol>svg{animation:none!important;transform:none!important}}

/* Compact final confirmation after the requested removal of retyped fields. */
.modal .box.adminMemberDeleteDialog{height:auto;min-height:0;max-height:calc(100dvh - 20px)}
.modal .adminMemberDeleteDialog .modalActions{margin-top:16px}

/* Keep narrow-screen administration actions and version states in the viewport. */
.adminAnalyticsHead>div{min-width:0;flex:1}
.adminAnalyticsHead>.btn{flex:0 0 auto}
.updateHistoryRow{grid-template-columns:minmax(0,1fr) auto;padding:16px}
.updateHistoryRow>div:first-child,.updateHistoryRow>div:first-child>div{min-width:0}
.updateHistoryRow>.tag{max-width:100%;overflow-wrap:anywhere}
@media(max-width:720px){
  .adminAnalyticsHead{flex-direction:column;align-items:stretch}
  .adminAnalyticsHead>.btn{width:100%}
  .updateHistoryRow{grid-template-columns:minmax(0,1fr);gap:10px}
  .updateHistoryRow>.tag{grid-column:1;justify-self:start}
}
