:root{
  --rv-bg:#f6f1e9;
  --rv-white:#ffffff;
  --rv-ink:#17212f;
  --rv-muted:#70809b;
  --rv-line:#eadfce;
  --rv-gold:#e9c66d;
  --rv-gold-soft:#f6e8bd;
  --rv-mint:#d8efe2;
  --rv-header-max:1540px;
}

.rv-universal-header{
  width:100% !important;
  background:transparent !important;
  padding:18px 0 14px !important;
  margin:0 !important;
  border:0 !important;
  box-shadow:none !important;
  position:relative !important;
  z-index:9999 !important;
}

.rv-universal-nav{
  width:min(var(--rv-header-max), calc(100% - 48px)) !important;
  min-height:76px !important;
  margin:0 auto !important;
  padding:14px 18px !important;
  border-radius:31px !important;
  background:rgba(255,255,255,.94) !important;
  border:1px solid rgba(234,223,206,.98) !important;
  box-shadow:0 12px 35px rgba(23,33,47,.06) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
}

.rv-universal-brand,
.rv-universal-brand:link,
.rv-universal-brand:visited,
.rv-universal-brand:hover,
.rv-universal-brand:active{
  text-decoration:none !important;
  color:inherit !important;
}

.rv-universal-brand{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  cursor:pointer !important;
  flex-shrink:0 !important;
  margin:0 auto 0 0 !important;
}

.rv-universal-badge{
  width:54px !important;
  height:54px !important;
  min-width:54px !important;
  min-height:54px !important;
  border-radius:18px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:linear-gradient(135deg,#f1cd79 0%,#f7edd0 55%,#d8efe2 100%) !important;
  border:1px solid #e7d9bd !important;
  box-shadow:0 8px 18px rgba(28,35,52,.08) !important;
  color:var(--rv-ink) !important;
  font-weight:950 !important;
  font-size:1.42rem !important;
  line-height:1 !important;
}

.rv-universal-brand-text{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  line-height:1.08 !important;
}

.rv-universal-title{
  color:var(--rv-ink) !important;
  font-size:1.55rem !important;
  font-weight:950 !important;
  line-height:1 !important;
  letter-spacing:-0.045em !important;
  margin:0 !important;
  padding:0 !important;
  text-transform:none !important;
}

.rv-universal-subtitle{
  color:var(--rv-muted) !important;
  font-size:.96rem !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  margin-top:5px !important;
  padding:0 !important;
  text-transform:none !important;
}

.rv-universal-links{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
  margin-left:auto !important;
  flex-wrap:nowrap !important;
}

.rv-universal-link,
.rv-universal-link:link,
.rv-universal-link:visited{
  min-height:48px !important;
  padding:0 18px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  font-weight:900 !important;
  text-decoration:none !important;
  color:var(--rv-ink) !important;
  white-space:nowrap !important;
  background:transparent !important;
  border:1px solid transparent !important;
  box-shadow:none !important;
}

.rv-universal-link.is-primary{
  background:linear-gradient(135deg,var(--rv-gold) 0%,var(--rv-gold-soft) 55%,var(--rv-mint) 100%) !important;
  color:var(--rv-ink) !important;
  border:1px solid #e4d6b9 !important;
}

.rv-universal-link:hover{
  transform:translateY(-1px) !important;
}

/* Empêche les anciens styles header backend d'interférer */
header.rv-universal-header *,
.topbar.rv-universal-header *,
.site-header.rv-universal-header *,
.navbar.rv-universal-header *{
  box-sizing:border-box !important;
}

/* Harmonisation générale backend */
body{
  background:
    radial-gradient(circle at 0% 0%,rgba(230,191,99,.16),transparent 30%),
    radial-gradient(circle at 100% 18%,rgba(216,239,226,.42),transparent 32%),
    linear-gradient(180deg,#fbfaf7 0%,#f6f1e9 100%) !important;
}

main,
.container,
.content,
.page,
.wrapper,
section{
  max-width:1540px;
}

/* Boutons existants */
button,
.btn,
.button,
a.btn,
a.button,
input[type="submit"]{
  border-radius:999px !important;
}

button,
.btn,
.button,
a.btn,
a.button,
input[type="submit"],
a[href="/login"],
a[href="/logout"],
a[href="/deconnexion"]{
  background:linear-gradient(135deg,var(--rv-gold) 0%,var(--rv-gold-soft) 55%,var(--rv-mint) 100%) !important;
  color:var(--rv-ink) !important;
  border:1px solid #e4d6b9 !important;
}

/* Accueil : icônes plus grandes */
.card-icon{
  width:96px !important;
  height:96px !important;
  min-width:96px !important;
  min-height:96px !important;
  border-radius:30px !important;
  font-size:2.65rem !important;
}

@media(max-width:900px){
  .rv-universal-nav{
    width:min(var(--rv-header-max), calc(100% - 18px)) !important;
    flex-wrap:wrap !important;
    border-radius:24px !important;
  }

  .rv-universal-links{
    width:100% !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
  }

  .rv-universal-badge{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
    font-size:1.25rem !important;
  }

  .rv-universal-title{
    font-size:1.28rem !important;
  }

  .rv-universal-subtitle{
    font-size:.82rem !important;
  }
}

/* ============================================================
   ROVDOMOTIQUE - FIX FINAL CENTRAGE ACCUEIL + LOGIN
   Corrige le contenu déplacé à gauche après header universel.
   ============================================================ */

body.rv-page-home,
body.rv-page-login{
  overflow-x:hidden !important;
}

/* Largeur de référence identique au header */
body.rv-page-home .shell,
body.rv-page-login .shell,
body.rv-page-home main.shell,
body.rv-page-login main.shell,
body.rv-page-home main,
body.rv-page-login main,
body.rv-page-home .page-shell,
body.rv-page-login .page-shell,
body.rv-page-home .home-shell,
body.rv-page-login .login-shell,
body.rv-page-home .premium-shell,
body.rv-page-login .premium-shell{
  width:min(1540px, calc(100% - 48px)) !important;
  max-width:1540px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Cartes principales accueil/login recentrées */
body.rv-page-home .hero,
body.rv-page-home .hero-card,
body.rv-page-home .premium-hero,
body.rv-page-home .landing-card,
body.rv-page-home section:first-of-type,
body.rv-page-login .login-panel,
body.rv-page-login .login-card,
body.rv-page-login .auth-panel,
body.rv-page-login .auth-card,
body.rv-page-login section:first-of-type{
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Empêche le bloc accueil d’être collé au bord gauche */
body.rv-page-home .hero,
body.rv-page-home .premium-hero,
body.rv-page-home .landing-card{
  width:100% !important;
}

/* Login : bloc principal centré sous le header */
body.rv-page-login .login-panel,
body.rv-page-login .auth-panel{
  width:100% !important;
}

/* Footer public recentré aussi */
body.rv-page-home footer,
body.rv-page-login footer,
body.rv-page-home .footerbar,
body.rv-page-login .footerbar,
body.rv-page-home .footer-card,
body.rv-page-login .footer-card{
  width:min(1540px, calc(100% - 48px)) !important;
  max-width:1540px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Si un ancien style met left:0 ou transform, on neutralise sur les conteneurs publics */
body.rv-page-home main,
body.rv-page-login main,
body.rv-page-home .shell,
body.rv-page-login .shell{
  left:auto !important;
  right:auto !important;
  transform:none !important;
}

/* Maintien responsive */
@media(max-width:760px){
  body.rv-page-home .shell,
  body.rv-page-login .shell,
  body.rv-page-home main,
  body.rv-page-login main,
  body.rv-page-home footer,
  body.rv-page-login footer,
  body.rv-page-home .footerbar,
  body.rv-page-login .footerbar{
    width:min(100%, calc(100% - 18px)) !important;
  }
}

/* ============================================================
   ROVDOMOTIQUE - SESSION PROFILE HEADER
   ============================================================ */

.rv-profile-chip{
  min-height:42px !important;
  padding:0 14px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:rgba(246,232,189,.46) !important;
  border:1px solid rgba(231,217,189,.9) !important;
  color:#70809b !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}

.rv-logout-btn{
  cursor:pointer !important;
  font-family:inherit !important;
}

.rv-universal-link{
  cursor:pointer !important;
}

.rv-profile-admin .rv-universal-link,
.rv-profile-technicien .rv-universal-link,
.rv-profile-proprietaire .rv-universal-link,
.rv-profile-visiteur .rv-universal-link{
  opacity:1 !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX MENU PRIVE SAUVEGARDES
   Objectif :
   - Menu privé propre sur /sante/sauvegardes
   - Pas de débordement à droite
   - Boutons alignés et lisibles
   ============================================================ */

body.rv-page-private .rv-universal-nav{
  width:min(1680px, calc(100% - 56px)) !important;
  padding:13px 18px !important;
  gap:18px !important;
  overflow:visible !important;
}

body.rv-page-private .rv-universal-brand{
  gap:12px !important;
  min-width:285px !important;
  max-width:310px !important;
}

body.rv-page-private .rv-universal-badge{
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  min-height:50px !important;
  border-radius:17px !important;
  font-size:1.28rem !important;
}

body.rv-page-private .rv-universal-title{
  font-size:1.36rem !important;
  letter-spacing:-0.04em !important;
}

body.rv-page-private .rv-universal-subtitle{
  font-size:.86rem !important;
}

body.rv-page-private .rv-universal-links{
  flex:1 1 auto !important;
  justify-content:flex-end !important;
  gap:8px !important;
  min-width:0 !important;
  overflow:visible !important;
}

body.rv-page-private .rv-profile-chip{
  min-height:40px !important;
  padding:0 14px !important;
  font-size:.88rem !important;
  flex:0 0 auto !important;
}

body.rv-page-private .rv-universal-link{
  min-height:42px !important;
  padding:0 13px !important;
  font-size:.88rem !important;
  line-height:1 !important;
  flex:0 0 auto !important;
}

/* Sortir reste dans le même alignement, sans partir hors menu */
body.rv-page-private .rv-logout-btn{
  min-width:76px !important;
  padding:0 16px !important;
  margin-left:4px !important;
}

/* Évite que le menu pousse le contenu vers la droite/gauche */
body.rv-page-private main,
body.rv-page-private .container,
body.rv-page-private .content,
body.rv-page-private .page,
body.rv-page-private .wrapper{
  width:min(1420px, calc(100% - 56px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Très grands écrans : garde un rendu premium centré */
@media(min-width:1700px){
  body.rv-page-private .rv-universal-nav{
    width:min(1710px, calc(100% - 96px)) !important;
  }
}

/* Écrans moyens : le menu peut passer proprement sur deux lignes */
@media(max-width:1350px){
  body.rv-page-private .rv-universal-nav{
    flex-wrap:wrap !important;
    align-items:flex-start !important;
  }

  body.rv-page-private .rv-universal-brand{
    min-width:auto !important;
    max-width:none !important;
  }

  body.rv-page-private .rv-universal-links{
    width:100% !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
    margin-top:8px !important;
  }
}

/* Mobile/tablette */
@media(max-width:760px){
  body.rv-page-private .rv-universal-nav{
    width:min(100%, calc(100% - 18px)) !important;
    padding:12px !important;
    border-radius:24px !important;
  }

  body.rv-page-private .rv-universal-link,
  body.rv-page-private .rv-profile-chip{
    min-height:40px !important;
    font-size:.82rem !important;
    padding:0 12px !important;
  }

  body.rv-page-private main,
  body.rv-page-private .container,
  body.rv-page-private .content,
  body.rv-page-private .page,
  body.rv-page-private .wrapper{
    width:min(100%, calc(100% - 18px)) !important;
  }
}

/* ============================================================
   ROVDOMOTIQUE - FIX CONTROLE SYSTEME TABLE HOVER
   Objectif :
   - empêcher le tableau de bouger au passage du curseur
   - garder les boutons fonctionnels
   - conserver le style premium sans animation instable
   ============================================================ */

body.rv-page-controle-systeme table,
body.rv-page-controle-systeme thead,
body.rv-page-controle-systeme tbody,
body.rv-page-controle-systeme tr,
body.rv-page-controle-systeme th,
body.rv-page-controle-systeme td,
body.rv-page-controle-systeme .table,
body.rv-page-controle-systeme .table-wrap,
body.rv-page-controle-systeme .table-wrapper,
body.rv-page-controle-systeme .equipment-table,
body.rv-page-controle-systeme .equipments-table{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease !important;
  animation:none !important;
}

/* Neutralise tout déplacement au hover */
body.rv-page-controle-systeme table:hover,
body.rv-page-controle-systeme thead:hover,
body.rv-page-controle-systeme tbody:hover,
body.rv-page-controle-systeme tr:hover,
body.rv-page-controle-systeme th:hover,
body.rv-page-controle-systeme td:hover,
body.rv-page-controle-systeme .table:hover,
body.rv-page-controle-systeme .table-wrap:hover,
body.rv-page-controle-systeme .table-wrapper:hover,
body.rv-page-controle-systeme .equipment-table:hover,
body.rv-page-controle-systeme .equipments-table:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  top:auto !important;
  left:auto !important;
}

/* Si les lignes avaient un effet de remontée ou zoom */
body.rv-page-controle-systeme tbody tr:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  box-shadow:none !important;
  background:rgba(255,255,255,.72) !important;
}

/* Empêche les cellules de changer de taille au hover */
body.rv-page-controle-systeme td:hover,
body.rv-page-controle-systeme th:hover{
  transform:none !important;
  padding-top:inherit !important;
  padding-bottom:inherit !important;
}

/* Boutons du tableau : pas de déplacement, mais gardent leur apparence */
body.rv-page-controle-systeme table button,
body.rv-page-controle-systeme table .btn,
body.rv-page-controle-systeme table a.btn,
body.rv-page-controle-systeme table button:hover,
body.rv-page-controle-systeme table .btn:hover,
body.rv-page-controle-systeme table a.btn:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

/* Les cartes/sections de la page contrôle ne doivent pas bouger non plus */
body.rv-page-controle-systeme section:hover,
body.rv-page-controle-systeme .card:hover,
body.rv-page-controle-systeme .panel:hover,
body.rv-page-controle-systeme .box:hover,
body.rv-page-controle-systeme .container:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX CONTROLE SYSTEME SECTIONS HOVER
   Sections concernées :
   - Connecter un nouvel équipement
   - Tests rapides
   - Formulaires, inputs, selects, boutons rapides
   Objectif : aucune translation / zoom / déplacement au curseur
   ============================================================ */

body.rv-page-controle-systeme form,
body.rv-page-controle-systeme form *,
body.rv-page-controle-systeme input,
body.rv-page-controle-systeme select,
body.rv-page-controle-systeme textarea,
body.rv-page-controle-systeme label,
body.rv-page-controle-systeme button,
body.rv-page-controle-systeme .actions,
body.rv-page-controle-systeme .quick-actions,
body.rv-page-controle-systeme .quick-tests,
body.rv-page-controle-systeme .tests,
body.rv-page-controle-systeme .test-actions,
body.rv-page-controle-systeme .form-row,
body.rv-page-controle-systeme .form-grid,
body.rv-page-controle-systeme .control-row,
body.rv-page-controle-systeme .control-grid{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease !important;
}

body.rv-page-controle-systeme form:hover,
body.rv-page-controle-systeme form *:hover,
body.rv-page-controle-systeme input:hover,
body.rv-page-controle-systeme select:hover,
body.rv-page-controle-systeme textarea:hover,
body.rv-page-controle-systeme label:hover,
body.rv-page-controle-systeme button:hover,
body.rv-page-controle-systeme .actions:hover,
body.rv-page-controle-systeme .quick-actions:hover,
body.rv-page-controle-systeme .quick-tests:hover,
body.rv-page-controle-systeme .tests:hover,
body.rv-page-controle-systeme .test-actions:hover,
body.rv-page-controle-systeme .form-row:hover,
body.rv-page-controle-systeme .form-grid:hover,
body.rv-page-controle-systeme .control-row:hover,
body.rv-page-controle-systeme .control-grid:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  top:auto !important;
  left:auto !important;
}

/* Neutralisation forte des blocs blancs de la page contrôle */
body.rv-page-controle-systeme main > *,
body.rv-page-controle-systeme .container > *,
body.rv-page-controle-systeme .content > *,
body.rv-page-controle-systeme .page > *,
body.rv-page-controle-systeme .wrapper > *,
body.rv-page-controle-systeme section,
body.rv-page-controle-systeme article,
body.rv-page-controle-systeme .card,
body.rv-page-controle-systeme .panel,
body.rv-page-controle-systeme .box{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
}

body.rv-page-controle-systeme main > *:hover,
body.rv-page-controle-systeme .container > *:hover,
body.rv-page-controle-systeme .content > *:hover,
body.rv-page-controle-systeme .page > *:hover,
body.rv-page-controle-systeme .wrapper > *:hover,
body.rv-page-controle-systeme section:hover,
body.rv-page-controle-systeme article:hover,
body.rv-page-controle-systeme .card:hover,
body.rv-page-controle-systeme .panel:hover,
body.rv-page-controle-systeme .box:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  top:auto !important;
  left:auto !important;
  box-shadow:0 24px 65px rgba(23,33,47,.04) !important;
}

/* Les boutons peuvent changer légèrement d’ombre/couleur, mais pas de position */
body.rv-page-controle-systeme button:hover,
body.rv-page-controle-systeme .btn:hover,
body.rv-page-controle-systeme a.btn:hover,
body.rv-page-controle-systeme input[type="submit"]:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  margin-top:inherit !important;
  margin-bottom:inherit !important;
}

/* Correction spécifique des deux titres visibles */
body.rv-page-controle-systeme h1:hover,
body.rv-page-controle-systeme h2:hover,
body.rv-page-controle-systeme h3:hover,
body.rv-page-controle-systeme p:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX FINAL TESTS RAPIDES HOVER
   Empêche tout mouvement du bloc Tests rapides
   ============================================================ */

body.rv-page-controle-systeme .rv-tests-rapides-title,
body.rv-page-controle-systeme .rv-tests-rapides-block,
body.rv-page-controle-systeme .rv-tests-rapides-element,
body.rv-page-controle-systeme .rv-tests-rapides-actions,
body.rv-page-controle-systeme .rv-tests-rapides-button,
body.rv-page-controle-systeme .rv-tests-rapides-title *,
body.rv-page-controle-systeme .rv-tests-rapides-block *,
body.rv-page-controle-systeme .rv-tests-rapides-element *,
body.rv-page-controle-systeme .rv-tests-rapides-actions *,
body.rv-page-controle-systeme .rv-tests-rapides-button *{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease !important;
}

body.rv-page-controle-systeme .rv-tests-rapides-title:hover,
body.rv-page-controle-systeme .rv-tests-rapides-block:hover,
body.rv-page-controle-systeme .rv-tests-rapides-element:hover,
body.rv-page-controle-systeme .rv-tests-rapides-actions:hover,
body.rv-page-controle-systeme .rv-tests-rapides-button:hover,
body.rv-page-controle-systeme .rv-tests-rapides-title *:hover,
body.rv-page-controle-systeme .rv-tests-rapides-block *:hover,
body.rv-page-controle-systeme .rv-tests-rapides-element *:hover,
body.rv-page-controle-systeme .rv-tests-rapides-actions *:hover,
body.rv-page-controle-systeme .rv-tests-rapides-button *:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  margin-top:inherit !important;
  margin-bottom:inherit !important;
}

/* Force les boutons Tests rapides à rester fixes */
body.rv-page-controle-systeme .rv-tests-rapides-button,
body.rv-page-controle-systeme .rv-tests-rapides-button:hover,
body.rv-page-controle-systeme .rv-tests-rapides-button:focus,
body.rv-page-controle-systeme .rv-tests-rapides-button:active{
  position:relative !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  box-shadow:0 14px 28px rgba(23,33,47,.06) !important;
}

/* Empêche le parent direct des boutons de se déplacer */
body.rv-page-controle-systeme .rv-tests-rapides-actions,
body.rv-page-controle-systeme .rv-tests-rapides-actions:hover{
  position:relative !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX FINAL CONTROLE SYSTEME
   Bloquer tout mouvement vertical + elargir le tableau
   ============================================================ */

body.rv-page-controle-systeme .rv-tests-rapides-title,
body.rv-page-controle-systeme .rv-tests-rapides-block,
body.rv-page-controle-systeme .rv-tests-rapides-btn-wrap,
body.rv-page-controle-systeme .rv-tests-rapides-btn,
body.rv-page-controle-systeme .rv-equipements-title,
body.rv-page-controle-systeme .rv-equipements-block,
body.rv-page-controle-systeme .rv-equipements-table-wrap,
body.rv-page-controle-systeme .rv-equipements-table,
body.rv-page-controle-systeme .rv-equipements-table thead,
body.rv-page-controle-systeme .rv-equipements-table tbody,
body.rv-page-controle-systeme .rv-equipements-table tr,
body.rv-page-controle-systeme .rv-equipements-table th,
body.rv-page-controle-systeme .rv-equipements-table td{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
}

body.rv-page-controle-systeme .rv-tests-rapides-title:hover,
body.rv-page-controle-systeme .rv-tests-rapides-block:hover,
body.rv-page-controle-systeme .rv-tests-rapides-btn-wrap:hover,
body.rv-page-controle-systeme .rv-tests-rapides-btn:hover,
body.rv-page-controle-systeme .rv-equipements-title:hover,
body.rv-page-controle-systeme .rv-equipements-block:hover,
body.rv-page-controle-systeme .rv-equipements-table-wrap:hover,
body.rv-page-controle-systeme .rv-equipements-table:hover,
body.rv-page-controle-systeme .rv-equipements-table tr:hover,
body.rv-page-controle-systeme .rv-equipements-table td:hover,
body.rv-page-controle-systeme .rv-equipements-table th:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
}

/* Transitions propres sans bouger */
body.rv-page-controle-systeme .rv-tests-rapides-btn,
body.rv-page-controle-systeme .rv-tests-rapides-btn:hover,
body.rv-page-controle-systeme .rv-tests-rapides-btn:focus,
body.rv-page-controle-systeme .rv-tests-rapides-btn:active{
  position:relative !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease !important;
}

/* bloc équipements : toute la largeur disponible */
body.rv-page-controle-systeme .rv-equipements-block{
  width:100% !important;
  max-width:none !important;
}

/* wrapper du tableau */
body.rv-page-controle-systeme .rv-equipements-table-wrap{
  width:100% !important;
  max-width:none !important;
  overflow-x:auto !important;
  padding-right:0 !important;
}

/* tableau plus large, plus propre */
body.rv-page-controle-systeme .rv-equipements-table{
  width:100% !important;
  min-width:1280px !important;
  max-width:none !important;
  table-layout:auto !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
}

/* largeurs de colonnes pour meilleure lisibilité */
body.rv-page-controle-systeme .rv-equipements-table th:nth-child(1),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(1){ width:26% !important; }

body.rv-page-controle-systeme .rv-equipements-table th:nth-child(2),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(2){ width:12% !important; }

body.rv-page-controle-systeme .rv-equipements-table th:nth-child(3),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(3){ width:16% !important; }

body.rv-page-controle-systeme .rv-equipements-table th:nth-child(4),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(4){ width:10% !important; }

body.rv-page-controle-systeme .rv-equipements-table th:nth-child(5),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(5){ width:16% !important; }

body.rv-page-controle-systeme .rv-equipements-table th:nth-child(6),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(6){ width:10% !important; }

body.rv-page-controle-systeme .rv-equipements-table th:nth-child(7),
body.rv-page-controle-systeme .rv-equipements-table td:nth-child(7){ width:10% !important; }

/* cellule plus aérée */
body.rv-page-controle-systeme .rv-equipements-table th,
body.rv-page-controle-systeme .rv-equipements-table td{
  padding:12px 14px !important;
  vertical-align:middle !important;
  white-space:normal !important;
  line-height:1.35 !important;
}

/* empêcher toute montée/descente de ligne */
body.rv-page-controle-systeme .rv-equipements-table tr,
body.rv-page-controle-systeme .rv-equipements-table tr:hover{
  position:static !important;
  transform:none !important;
  translate:none !important;
}

/* en desktop : donner plus d'espace au contenu de la page */
@media (min-width: 1280px){
  body.rv-page-controle-systeme main,
  body.rv-page-controle-systeme .main-content,
  body.rv-page-controle-systeme .page-content,
  body.rv-page-controle-systeme .content-wrapper{
    max-width:1400px !important;
    width:100% !important;
  }
}

/* ============================================================
   ROVDOMOTIQUE - FIX ABSOLU CONTROLE SYSTEME
   Stop définitif du mouvement vertical au hover.
   ============================================================ */

/* Sur cette page uniquement : aucun élément ne doit se déplacer au survol */
html.rv-html-controle-systeme body.rv-page-controle-systeme *,
html.rv-html-controle-systeme body.rv-page-controle-systeme *::before,
html.rv-html-controle-systeme body.rv-page-controle-systeme *::after,
html.rv-html-controle-systeme body.rv-page-controle-systeme *:hover,
html.rv-html-controle-systeme body.rv-page-controle-systeme *:hover::before,
html.rv-html-controle-systeme body.rv-page-controle-systeme *:hover::after{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  rotate:0deg !important;
  animation:none !important;
  transition-property: background-color, color, border-color, box-shadow, opacity !important;
  transition-duration:.14s !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
}

/* Les blocs critiques restent strictement stables */
body.rv-page-controle-systeme .rv-cs-no-shift,
body.rv-page-controle-systeme .rv-cs-no-shift:hover,
body.rv-page-controle-systeme .rv-cs-connect-parent,
body.rv-page-controle-systeme .rv-cs-connect-parent:hover,
body.rv-page-controle-systeme .rv-cs-tests-parent,
body.rv-page-controle-systeme .rv-cs-tests-parent:hover,
body.rv-page-controle-systeme .rv-cs-equipements-parent,
body.rv-page-controle-systeme .rv-cs-equipements-parent:hover,
body.rv-page-controle-systeme .rv-cs-button-parent,
body.rv-page-controle-systeme .rv-cs-button-parent:hover,
body.rv-page-controle-systeme .rv-cs-table-parent,
body.rv-page-controle-systeme .rv-cs-table-parent:hover{
  position:relative !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Corrige la cause fréquente : les boutons qui changent de taille au hover */
body.rv-page-controle-systeme button,
body.rv-page-controle-systeme button:hover,
body.rv-page-controle-systeme button:focus,
body.rv-page-controle-systeme button:active,
body.rv-page-controle-systeme .btn,
body.rv-page-controle-systeme .btn:hover,
body.rv-page-controle-systeme a,
body.rv-page-controle-systeme a:hover,
body.rv-page-controle-systeme input[type="submit"],
body.rv-page-controle-systeme input[type="submit"]:hover,
body.rv-page-controle-systeme .rv-cs-fixed-button,
body.rv-page-controle-systeme .rv-cs-fixed-button:hover{
  box-sizing:border-box !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  position:relative !important;
  vertical-align:middle !important;
}

/* Hauteur fixe des boutons pour éviter le saut vertical */
body.rv-page-controle-systeme .rv-cs-fixed-button{
  min-height:42px !important;
  height:42px !important;
  line-height:1 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Sections Connecter / Tests / Équipements : pas de remontée ou descente */
body.rv-page-controle-systeme .rv-cs-connect-title,
body.rv-page-controle-systeme .rv-cs-tests-title,
body.rv-page-controle-systeme .rv-cs-equipements-title{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  margin-top:0 !important;
  margin-bottom:16px !important;
  line-height:1.2 !important;
}

/* Table plus large et plus propre */
body.rv-page-controle-systeme .rv-cs-stable-table{
  width:100% !important;
  min-width:1320px !important;
  max-width:none !important;
  table-layout:auto !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  transform:none !important;
}

body.rv-page-controle-systeme .rv-cs-stable-table th,
body.rv-page-controle-systeme .rv-cs-stable-table td{
  padding:13px 16px !important;
  line-height:1.35 !important;
  vertical-align:middle !important;
  transform:none !important;
}

body.rv-page-controle-systeme .rv-cs-stable-table tr,
body.rv-page-controle-systeme .rv-cs-stable-table tr:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  position:static !important;
}

/* Donne plus de largeur au contenu contrôle système */
body.rv-page-controle-systeme main,
body.rv-page-controle-systeme .container,
body.rv-page-controle-systeme .content,
body.rv-page-controle-systeme .wrapper,
body.rv-page-controle-systeme .page,
body.rv-page-controle-systeme .page-content,
body.rv-page-controle-systeme .main-content{
  width:min(1500px, calc(100% - 56px)) !important;
  max-width:1500px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Permet au tableau large de rester propre sans casser la page */
body.rv-page-controle-systeme .rv-cs-table-parent{
  overflow-x:auto !important;
  max-width:100% !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX FINAL CONTROLE SYSTEME SPACING + STABILITY
   Annule les anciens margin:0 trop agressifs et stabilise les sections.
   ============================================================ */

/* Contenu principal plus large, mais centré */
body.rv-page-controle-systeme main,
body.rv-page-controle-systeme .container,
body.rv-page-controle-systeme .content,
body.rv-page-controle-systeme .wrapper,
body.rv-page-controle-systeme .page,
body.rv-page-controle-systeme .page-content,
body.rv-page-controle-systeme .main-content{
  width:min(1500px, calc(100% - 56px)) !important;
  max-width:1500px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Les 3 sections doivent avoir un espace propre entre elles */
body.rv-page-controle-systeme .rv-cs-section{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  margin-top:0 !important;
  margin-bottom:26px !important;
  padding-top:28px !important;
  padding-bottom:28px !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
  transition:
    background-color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease !important;
  will-change:auto !important;
}

/* Hover strictement stable sur les 3 sections */
body.rv-page-controle-systeme .rv-cs-section:hover,
body.rv-page-controle-systeme .rv-cs-section-connect:hover,
body.rv-page-controle-systeme .rv-cs-section-tests:hover,
body.rv-page-controle-systeme .rv-cs-section-equip:hover{
  margin-top:0 !important;
  margin-bottom:26px !important;
  padding-top:28px !important;
  padding-bottom:28px !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
}

/* Espace spécifique entre Connecter / Tests / Equipements */
body.rv-page-controle-systeme .rv-cs-section-connect{
  margin-bottom:28px !important;
}

body.rv-page-controle-systeme .rv-cs-section-tests{
  margin-bottom:30px !important;
}

body.rv-page-controle-systeme .rv-cs-section-equip{
  margin-top:0 !important;
}

/* Titres : aucun mouvement vertical */
body.rv-page-controle-systeme .rv-cs-heading-connect,
body.rv-page-controle-systeme .rv-cs-heading-tests,
body.rv-page-controle-systeme .rv-cs-heading-equip,
body.rv-page-controle-systeme .rv-cs-heading-connect:hover,
body.rv-page-controle-systeme .rv-cs-heading-tests:hover,
body.rv-page-controle-systeme .rv-cs-heading-equip:hover{
  margin-top:0 !important;
  margin-bottom:20px !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  line-height:1.2 !important;
}

/* Boutons : hauteur fixe pour éviter les sauts */
body.rv-page-controle-systeme .rv-cs-stable-button,
body.rv-page-controle-systeme .rv-cs-stable-button:hover,
body.rv-page-controle-systeme .rv-cs-stable-button:focus,
body.rv-page-controle-systeme .rv-cs-stable-button:active{
  height:42px !important;
  min-height:42px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  position:relative !important;
  line-height:1 !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
}

/* Neutralisation générale des mouvements, sans écraser les marges nécessaires */
body.rv-page-controle-systeme .rv-cs-section *,
body.rv-page-controle-systeme .rv-cs-section *:hover,
body.rv-page-controle-systeme .rv-cs-section *::before,
body.rv-page-controle-systeme .rv-cs-section *::after{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
}

/* Tableau : élargi, propre, lisible */
body.rv-page-controle-systeme .rv-cs-equipment-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  padding:0 !important;
  margin:0 !important;
}

body.rv-page-controle-systeme .rv-cs-equipment-table{
  width:100% !important;
  min-width:1320px !important;
  max-width:none !important;
  table-layout:auto !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

body.rv-page-controle-systeme .rv-cs-equipment-table:hover,
body.rv-page-controle-systeme .rv-cs-equipment-table tr:hover,
body.rv-page-controle-systeme .rv-cs-equipment-table th:hover,
body.rv-page-controle-systeme .rv-cs-equipment-table td:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

body.rv-page-controle-systeme .rv-cs-equipment-table th,
body.rv-page-controle-systeme .rv-cs-equipment-table td{
  padding:14px 18px !important;
  line-height:1.35 !important;
  vertical-align:middle !important;
  white-space:normal !important;
}

/* Meilleure répartition visuelle des colonnes */
body.rv-page-controle-systeme .rv-cs-equipment-table th:nth-child(1),
body.rv-page-controle-systeme .rv-cs-equipment-table td:nth-child(1){
  min-width:270px !important;
}

body.rv-page-controle-systeme .rv-cs-equipment-table th:nth-child(3),
body.rv-page-controle-systeme .rv-cs-equipment-table td:nth-child(3){
  min-width:210px !important;
}

body.rv-page-controle-systeme .rv-cs-equipment-table th:nth-child(5),
body.rv-page-controle-systeme .rv-cs-equipment-table td:nth-child(5){
  min-width:210px !important;
}

/* Si un ancien correctif a mis margin-bottom:0 sur des parents, on le corrige */
body.rv-page-controle-systeme .rv-cs-connect-parent,
body.rv-page-controle-systeme .rv-cs-tests-parent,
body.rv-page-controle-systeme .rv-cs-equipements-parent,
body.rv-page-controle-systeme .rv-cs-table-parent,
body.rv-page-controle-systeme .rv-cs-button-parent{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
}

/* Important : ne plus forcer margin-bottom:0 sur ces parents */
body.rv-page-controle-systeme .rv-cs-connect-parent:hover,
body.rv-page-controle-systeme .rv-cs-tests-parent:hover,
body.rv-page-controle-systeme .rv-cs-equipements-parent:hover,
body.rv-page-controle-systeme .rv-cs-table-parent:hover,
body.rv-page-controle-systeme .rv-cs-button-parent:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX PAGE MAISON
   Texte propre + alignement cohérent + stabilité visuelle
   ============================================================ */

body.rv-page-maison main,
body.rv-page-maison .container,
body.rv-page-maison .content,
body.rv-page-maison .wrapper,
body.rv-page-maison .page,
body.rv-page-maison .page-content,
body.rv-page-maison .main-content{
  width:min(1500px, calc(100% - 56px)) !important;
  max-width:1500px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Bloc titre/introduction */
body.rv-page-maison .rv-maison-intro-text{
  text-transform:none !important;
  letter-spacing:0 !important;
  font-size:1.02rem !important;
  line-height:1.78 !important;
  color:#64748b !important;
  max-width:1250px !important;
}

/* Empêche les textes de la page maison d’être forcés en Title Case */
body.rv-page-maison p,
body.rv-page-maison div,
body.rv-page-maison span{
  text-transform:none;
}

/* Cartes principales mieux équilibrées */
body.rv-page-maison section,
body.rv-page-maison article,
body.rv-page-maison .card,
body.rv-page-maison .panel,
body.rv-page-maison .box{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
  animation:none !important;
}

/* Hover stable sur la page maison */
body.rv-page-maison section:hover,
body.rv-page-maison article:hover,
body.rv-page-maison .card:hover,
body.rv-page-maison .panel:hover,
body.rv-page-maison .box:hover,
body.rv-page-maison img:hover{
  transform:none !important;
  translate:none !important;
  scale:1 !important;
}

/* Image interactive : rendu propre et stable */
body.rv-page-maison img{
  max-width:100% !important;
  height:auto !important;
  transform:none !important;
}

/* Footer maison aligné avec le contenu */
body.rv-page-maison footer,
body.rv-page-maison .footerbar,
body.rv-page-maison .footer-card{
  width:min(1500px, calc(100% - 56px)) !important;
  max-width:1500px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* ============================================================
   ROVDOMOTIQUE - FIX HEADER ACCUEIL + MAISON MENU INSIDE
   Objectif :
   - même header sur / et /maison
   - bouton Sortir dans le même bloc blanc
   - pas de débordement à droite
   ============================================================ */

body.rv-page-home .rv-universal-header,
body.rv-page-maison .rv-universal-header{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  padding:26px 0 18px !important;
  overflow:visible !important;
}

body.rv-page-home .rv-universal-nav,
body.rv-page-maison .rv-universal-nav{
  width:min(1540px, calc(100% - 72px)) !important;
  max-width:1540px !important;
  min-height:92px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:14px 22px !important;
  border-radius:30px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}

body.rv-page-home .rv-universal-brand,
body.rv-page-maison .rv-universal-brand{
  flex:0 0 auto !important;
  min-width:265px !important;
  max-width:285px !important;
  gap:12px !important;
}

body.rv-page-home .rv-universal-badge,
body.rv-page-maison .rv-universal-badge{
  width:54px !important;
  height:54px !important;
  min-width:54px !important;
  min-height:54px !important;
  border-radius:18px !important;
  font-size:1.35rem !important;
}

body.rv-page-home .rv-universal-title,
body.rv-page-maison .rv-universal-title{
  font-size:1.46rem !important;
  line-height:1.05 !important;
}

body.rv-page-home .rv-universal-subtitle,
body.rv-page-maison .rv-universal-subtitle{
  font-size:.88rem !important;
  line-height:1.2 !important;
}

body.rv-page-home .rv-universal-links,
body.rv-page-maison .rv-universal-links{
  flex:1 1 auto !important;
  min-width:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex-wrap:nowrap !important;
  overflow:visible !important;
}

body.rv-page-home .rv-profile-chip,
body.rv-page-maison .rv-profile-chip{
  height:46px !important;
  min-height:46px !important;
  padding:0 16px !important;
  font-size:.9rem !important;
  border-radius:999px !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}

body.rv-page-home .rv-universal-link,
body.rv-page-maison .rv-universal-link{
  height:46px !important;
  min-height:46px !important;
  padding:0 12px !important;
  font-size:.88rem !important;
  line-height:1 !important;
  border-radius:999px !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  transform:none !important;
  translate:none !important;
}

body.rv-page-home .rv-logout-btn,
body.rv-page-maison .rv-logout-btn{
  height:54px !important;
  min-height:54px !important;
  min-width:82px !important;
  padding:0 20px !important;
  margin-left:8px !important;
  border-radius:999px !important;
  flex:0 0 auto !important;
  position:relative !important;
  right:auto !important;
  transform:none !important;
}

/* Corrige le débordement : Sortir ne doit jamais sortir du bloc blanc */
body.rv-page-home .rv-universal-nav .rv-logout-btn,
body.rv-page-maison .rv-universal-nav .rv-logout-btn{
  align-self:center !important;
  margin-right:0 !important;
}

/* Écrans larges mais menu long : réduire légèrement les espacements */
@media(max-width:1500px){
  body.rv-page-home .rv-universal-nav,
  body.rv-page-maison .rv-universal-nav{
    width:min(1480px, calc(100% - 48px)) !important;
    padding:13px 18px !important;
    gap:14px !important;
  }

  body.rv-page-home .rv-universal-brand,
  body.rv-page-maison .rv-universal-brand{
    min-width:245px !important;
    max-width:260px !important;
  }

  body.rv-page-home .rv-universal-links,
  body.rv-page-maison .rv-universal-links{
    gap:5px !important;
  }

  body.rv-page-home .rv-universal-link,
  body.rv-page-maison .rv-universal-link{
    padding:0 9px !important;
    font-size:.82rem !important;
  }

  body.rv-page-home .rv-profile-chip,
  body.rv-page-maison .rv-profile-chip{
    padding:0 12px !important;
    font-size:.82rem !important;
  }

  body.rv-page-home .rv-logout-btn,
  body.rv-page-maison .rv-logout-btn{
    min-width:76px !important;
    padding:0 16px !important;
    margin-left:5px !important;
  }
}

/* Si l'écran devient trop petit, le menu passe proprement à la ligne */
@media(max-width:1180px){
  body.rv-page-home .rv-universal-nav,
  body.rv-page-maison .rv-universal-nav{
    flex-wrap:wrap !important;
    align-items:flex-start !important;
  }

  body.rv-page-home .rv-universal-links,
  body.rv-page-maison .rv-universal-links{
    width:100% !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
    margin-top:10px !important;
  }
}

/* ============================================================
   ROVDOMOTIQUE - EXACT ROLE MENU CLEANUP
   ============================================================ */

.rv-universal-links [aria-hidden="true"],
nav [aria-hidden="true"],
header [aria-hidden="true"]{
  display:none !important;
}

body.rv-role-technicien .rv-universal-links,
body.rv-role-proprietaire .rv-universal-links,
body.rv-role-visiteur .rv-universal-links{
  justify-content:flex-end !important;
  gap:8px !important;
}

body.rv-role-technicien .rv-universal-link,
body.rv-role-proprietaire .rv-universal-link,
body.rv-role-visiteur .rv-universal-link{
  white-space:nowrap !important;
}