    /* WPZ – Budget v2 (scope .wpz-budget) */
    .wpz-budget{
      --gap:14px; --radius:16px; --soft:#f6f7f8; --line:#eaecef;
      --ink:#0f172a; --muted:#667085; --brand:#5CA174; --prune:#9C1657;
      --shadow:0 8px 22px rgba(0,0,0,.06);
      color:var(--ink); font-family:inherit;
      padding-bottom:env(safe-area-inset-bottom);
    }

    /* ---- Head / actions ---- */
    .wpz-budget__head{margin:12px 0 18px}
    .wpz-budget__controls{display:flex;flex-wrap:wrap;gap:var(--gap);align-items:flex-end}
    .wpz-budget__controls label{display:flex;flex-direction:column;gap:6px}
    .wpz-b-input{appearance:textfield;padding:10px 12px;border:1px solid var(--line);border-radius:10px;min-width:180px;background:#fff}
    .wpz-b-btn{padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:var(--soft);cursor:pointer;font-size:0.9rem;white-space:nowrap}
    .wpz-b-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
    .wpz-b2-saved{min-width:140px;text-align:left;color:var(--muted);font-size:.95em}
    .wpz-b2-status{margin-left:auto}
    .wpz-b2-rest{display:inline-block;padding:8px 12px;border-radius:999px;background:rgba(92,161,116,.12);color:var(--brand);font-weight:600}
    .wpz-budget.is-over .wpz-b2-rest{background:rgba(156,22,87,.1);color:var(--prune)}
    .wpz-budget__hint{margin-top:8px;color:var(--muted);font-size:0.95em}

    /* ---- Wrap scrollable ---- */
    .wpz-budget__table-wrap{
      position:relative;
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:#fff;
      overflow-x:auto;
      overflow-y:hidden;
      -webkit-overflow-scrolling:touch;
      box-shadow:var(--shadow);
    }

    .wpz-budget__table-wrap::before,
    .wpz-budget__table-wrap::after{
      content:"";
      position:absolute; top:0; bottom:0; width:22px; pointer-events:none;
      transition:opacity .2s ease;
    }
    .wpz-budget__table-wrap::before{
      left:0; background:linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0));
      opacity:.0;
    }
    .wpz-budget__table-wrap::after{
      right:0; background:linear-gradient(-90deg, rgba(255,255,255,1), rgba(255,255,255,0));
      opacity:.35;
    }
    @media (hover:hover){
      .wpz-budget__table-wrap:hover::before,
      .wpz-budget__table-wrap:hover::after{ opacity:.55; }
    }

    /* ---- Table ---- */
    .wpz-budget__table{
      min-width:720px;
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      background:#fff;
    }
    .wpz-budget__table th,
    .wpz-budget__table td{
      padding:12px 14px;
      border-bottom:1px solid var(--line);
      vertical-align:middle;
      white-space:nowrap;
    }

    .wpz-budget__table thead th{
      position:sticky;
      top:0;
      z-index:3;
      background:var(--soft);
      font-weight:600;
    }

    .wpz-budget__table tbody th[scope="row"],
    .wpz-budget__table tbody td:first-child{
      position:sticky;
      left:0;
      z-index:2;
      background:#fff;
      box-shadow:1px 0 0 var(--line);
    }

    .wpz-budget__table tbody tr:last-child td{ border-bottom:none }

    .wpz-b2-text{
      width:100%;
      max-width:420px;
      padding:10px 12px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
    }
    .wpz-b2-number{
      width:100%;
      max-width:180px;
      text-align:right;
      padding:10px 12px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
    }
    .wpz-b2-actions{text-align:center}
    .wpz-b2-iconbtn{
      border:0;
      background:transparent;
      cursor:pointer;
      font-size:16px;
      line-height:1;
      padding:4px 8px;
      border-radius:999px;
      color:var(--muted);
      transition:background-color .16s ease,color .16s ease,opacity .16s ease;
      opacity:0.85;
    }
    .wpz-b2-iconbtn:hover{
      background:rgba(92,161,116,.08);
      color:var(--brand);
      opacity:1;
    }
    .wpz-b2-iconbtn + .wpz-b2-iconbtn{margin-left:4px;}

    .wpz-b-total th,
    .wpz-b-grand th{background:var(--soft)}
    #wpz-b2-reste-row.is-over th,
    #wpz-b2-reste-row.is-over td{background:rgba(156,22,87,.04)}
    .wpz-budget__note{margin:10px 2px;color:var(--muted)}

    /* Ligne catégorie = accordéon + couleur de fond douce */
    .wpz-b2-cat-row{
      cursor:pointer;
    }
    .wpz-b2-cat-row th{
      font-weight:600;
      text-align:left;
      border-top:1px solid var(--line);
    }

    .wpz-b2-cat-toggle{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
    }

    .wpz-b2-cat-label{
      display:inline-flex;
      align-items:center;
      gap:6px;
    }

    .wpz-b2-cat-icon{
      font-size:0.8rem;
      opacity:0.8;
    }

    .wpz-b2-cat-total{
      font-size:0.9rem;
      font-weight:600;
      color:var(--muted);
    }

    .wpz-b2-cat-row.is-collapsed th{
      opacity:0.9;
    }

    @media (max-width: 900px){
      .wpz-budget__controls{
        align-items:stretch;
      }
      .wpz-b-input{min-width:140px}
      .wpz-b2-status{order:3; margin-left:0}
      .wpz-b2-rest{display:block}
      .wpz-b2-saved{order:5}
    }

    @media (max-width: 600px){
      .wpz-budget__controls{
        flex-direction:column;
        align-items:stretch;
      }
      .wpz-b-btn{
        width:100%;
        text-align:center;
      }
    }

    .wpz-budget__table-wrap::-webkit-scrollbar{ height:10px }
    .wpz-budget__table-wrap::-webkit-scrollbar-track{ background:transparent }
    .wpz-budget__table-wrap::-webkit-scrollbar-thumb{ background:#d7d9dc; border-radius:999px }
    .wpz-budget__table-wrap:hover::-webkit-scrollbar-thumb{ background:#c7c9cc }

    @media (prefers-reduced-motion: reduce){
      .wpz-budget__table-wrap::before,
      .wpz-budget__table-wrap::after{ transition:none }
    }

    /* ===== Dock fixe bas ===== */
    .wpz-b2-dock{
      position:fixed;
      left:0;
      right:0;
      bottom:0;
      padding:10px 16px calc(10px + env(safe-area-inset-bottom));
      background:rgba(246,247,248,0.96);
      backdrop-filter:blur(16px);
      border-top:1px solid var(--line);
      box-shadow:0 -6px 18px rgba(15,23,42,.12);
      display:flex; /* toujours visible, on gère l’état en JS si besoin */
      align-items:center;
      justify-content:space-between;
      gap:12px;
      z-index:9999;
    }
    .wpz-b2-dock__txt{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:6px;
      font-size:0.9rem;
      color:var(--muted);
    }
    .wpz-b2-footer-label{
      font-weight:500;
      color:var(--ink);
    }
    .wpz-b2-footer-total{
      font-weight:600;
    }
    .wpz-b2-footer-sep{
      opacity:.6;
    }
    .wpz-b2-footer-rest{
      font-weight:600;
    }
    .wpz-b2-footer-rest--ok{
      color:var(--brand);
    }
    .wpz-b2-footer-rest--over{
      color:var(--prune);
    }
    .wpz-b2-dock-btn{
      padding:10px 16px;
      border-radius:999px;
      border:0;
      background:var(--brand);
      color:#fff;
      font-weight:600;
      cursor:pointer;
      white-space:nowrap;
    }
    @media (max-width:600px){
      .wpz-b2-dock{
        flex-direction:column;
        align-items:flex-start;
      }
      .wpz-b2-dock-btn{
        width:100%;
        text-align:center;
      }
    }

    /* ===== Panneaux latéraux (Poste + Catégories) ===== */
    .wpz-b2-panel{
      position:fixed;
      inset:0;
      z-index:10000; /* au-dessus du dock (9999) */
      display:none;
      align-items:stretch;
      justify-content:flex-end;
    }
    .wpz-b2-panel.is-open{display:flex;}
    .wpz-b2-panel__backdrop{
      position:absolute;
      inset:0;
      background:rgba(15,23,42,.45);
    }
    .wpz-b2-panel__content{
      position:relative;
      height:100%;
      width:100%;
      max-width:480px;
      background:#fff;
      border-radius:16px 0 0 16px;
      padding:20px 20px 18px;
      box-shadow:-8px 0 32px rgba(15,23,42,.25);
      z-index:1;
      display:flex;
      flex-direction:column;
      transform:translateX(100%);
      transition:transform .28s ease-out, opacity .18s ease-out;
      opacity:0;
    }
    .wpz-b2-panel.is-open .wpz-b2-panel__content{
      transform:translateX(0);
      opacity:1;
    }
    @media (max-width:768px){
      .wpz-b2-panel__content{
        max-width:none;
        border-radius:0;
      }
    }
    .wpz-b2-panel__title{
      margin:0 0 12px;
      font-size:1.1rem;
      font-weight:600;
    }
    .wpz-b2-panel__field{
      display:flex;
      flex-direction:column;
      gap:4px;
      margin-bottom:12px;
    }
    .wpz-b2-panel__field label{
      font-size:0.9rem;
      color:var(--muted);
    }
    .wpz-b2-panel__field input{
      padding:10px 12px;
      border-radius:10px;
      border:1px solid var(--line);
      font-size:0.95rem;
    }
    .wpz-b2-panel__hint{
      font-size:0.8rem;
      color:var(--muted);
      margin-top:-4px;
      margin-bottom:10px;
    }
    .wpz-b2-panel__actions{
      display:flex;
      justify-content:flex-end;
      gap:10px;
      margin-top:8px;
    }
    .wpz-b2-panel__btn{
      padding:9px 14px;
      border-radius:999px;
      border:1px solid var(--line);
      background:var(--soft);
      cursor:pointer;
      font-size:0.9rem;
    }
    .wpz-b2-panel__btn--primary{
      background:var(--brand);
      border-color:var(--brand);
      color:#fff;
      font-weight:600;
    }

    /* ===== Panneau Catégories : liste ===== */
    .wpz-b2-cat-list{
      list-style:none;
      margin:0;
      padding:0;
      max-height:40vh;
      overflow:auto;
    }
    .wpz-b2-cat-item{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      padding:8px 10px;
      border-radius:12px;
      background:var(--soft);
      margin-bottom:6px;
    }
    .wpz-b2-cat-main{
      display:flex;
      align-items:center;
      gap:8px;
    }
    .wpz-b2-cat-dot{
      width:16px;
      height:16px;
      border-radius:999px;
      border:1px solid rgba(15,23,42,.12);
      background:#e5e7eb;
      flex-shrink:0;
    }
    .wpz-b2-cat-name{
      font-size:0.9rem;
      font-weight:500;
    }
    .wpz-b2-cat-actions .wpz-b2-iconbtn{
      opacity:1;
      padding:4px 8px;
    }

    /* Miroirs texte pour impression */
    .wpz-print-value,
    .wpz-print-pct,
    .wpz-print-money{
      display:none !important;
    }

    /* ======== IMPRESSION ======== */
    @media print {
      header, .site-header, .elementor-location-header,
      footer, .site-footer, .elementor-location-footer,
      .elementor-widget-theme-site-logo,
      .elementor-widget-theme-site-title,
      .elementor-widget-theme-site-tagline { display:none !important; }

      @page { margin: 14mm 12mm; }
      body { background:#fff !important; }
      .wpz-budget { color:#000; }

      .wpz-b-btn, .wpz-b2-saved, .wpz-budget__hint,
      .wpz-b2-dock, .wpz-b2-panel { display:none !important; }
      .wpz-b2-text, .wpz-b2-number { display:none !important; }

      .wpz-print-value,
      .wpz-print-pct,
      .wpz-print-money{
        display:inline !important;
        font-weight:500;
      }

      .wpz-budget__table-wrap { overflow:visible; box-shadow:none; border:0; }
      .wpz-budget__table { min-width:auto; width:100%; border:1px solid #ddd; }
      .wpz-budget__table thead th,
      .wpz-budget__table tbody th[scope="row"],
      .wpz-budget__table tbody td:first-child { position:static; box-shadow:none; }
      .wpz-budget__table th, .wpz-budget__table td { white-space:normal; padding:8px 10px; }
      tr, td, th { break-inside: avoid; page-break-inside: avoid; }

      .wpz-print-head { display:block !important; margin:0 0 12px; }
      .wpz-print-head h2 { margin:0 0 6px; font-size:18px; }
      .wpz-print-head .meta { font-size:12px; color:#333; }
      tfoot th, tfoot td { font-weight:700; }
    }
	
	
	
	.wpz-floating-add {
  position: fixed;
  right: 16px;
  bottom: 84px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #5CA174;
  color: #fff;
  font-size: 28px;
  font-weight: 600;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  cursor: pointer;
  z-index: 99999;
}




/* ==========================================================
   Dock bas – Budget V2
   Même style que la bannière Invités (Iliade pastel)
   ========================================================== */

#wpz-b2-dock{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:9999;

  padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0));

  background:#FAFEFC; /* même fond menthe doux */
  border-top:1px solid rgba(92,161,116,0.12);
  box-shadow:0 -6px 18px rgba(92,161,116,0.10);

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;

  font-family:var(--font);
}

#wpz-b2-dock .wpz-b2-dock-left{
  display:flex;
  align-items:center;
  gap:10px;
}

#wpz-b2-dock .wpz-b2-dock__txt{
  flex:1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  font-size:.86rem;
  color:#1B4332;
}

#wpz-b2-dock .wpz-b2-footer-label{
  font-weight:700;
}

#wpz-b2-dock .wpz-b2-footer-total{
  font-weight:800;
}

#wpz-b2-dock .wpz-b2-footer-sep{
  opacity:.5;
}

/* =============================
   Boutons – même style qu'Invités
   ============================= */

#wpz-b2-dock .wpz-tools-bottom-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;

  padding:8px 12px;
  border-radius:999px;

  background:rgba(92,161,116,0.14);          /* pastel vert */
  border:1px solid rgba(92,161,116,0.25);

  cursor:pointer;
  font-size:.84rem;
  font-weight:600;
  color:#1B4332;

  transition:background .15s ease, transform .15s ease;
}

#wpz-b2-dock .wpz-tools-bottom-btn .dashicons{
  width:26px;
  height:26px;
  font-size:24px;
  line-height:26px;
  color:var(--brand); /* #5CA174 */
}

#wpz-b2-dock .wpz-tools-bottom-label{
  white-space:nowrap;
}

#wpz-b2-dock .wpz-tools-bottom-btn:hover{
  background:rgba(92,161,116,0.22);
  transform:translateY(-1px);
}

#wpz-b2-dock .wpz-tools-bottom-btn:active{
  transform:translateY(0) scale(.97);
}

/* =============================
   Responsive
   ============================= */

@media (max-width:768px){
  #wpz-b2-dock{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  #wpz-b2-dock .wpz-b2-dock__txt{
    justify-content:flex-start;
  }
}

@media (max-width:480px){
  #wpz-b2-dock .wpz-tools-bottom-label{
    display:none;
  }
}

