*{box-sizing:border-box}body{margin:0;background:#f3f4f6;color:#111827;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial}
header{background:#111827;color:white;padding:22px;display:flex;justify-content:space-between;gap:16px;align-items:center}.brand{display:flex;gap:14px;align-items:center}.logo{width:58px;height:58px;background:#000;border:2px solid #f5c542;border-radius:16px;display:grid;place-items:center;font-size:34px;color:#f5c542}h1{margin:0;font-size:28px}header p{margin:5px 0 0;color:#d1d5db}.version{display:inline-block;margin-top:7px;background:#f5c542;color:#111827;border-radius:999px;padding:4px 10px;font-weight:900;font-size:12px}
main{max-width:1200px;margin:auto;padding:18px}.panel,.stat{background:white;border-radius:18px;padding:18px;box-shadow:0 10px 28px rgba(0,0,0,.08)}.auth{max-width:520px;margin:40px auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.mainNav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.navBtn{background:#e5e7eb;color:#111827;margin-top:0}.navBtn.active{background:#111827;color:white}
.dashboard{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:18px}.stat strong{display:block;font-size:27px}.stat span{color:#6b7280}.statBtn{margin:0;text-align:left;color:#111827;border:0;cursor:pointer}.layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
label{display:block;font-weight:800;margin-top:12px}input,textarea,select{width:100%;margin-top:6px;padding:12px;border:1px solid #d1d5db;border-radius:12px;font-size:16px;background:white}textarea{min-height:92px;resize:vertical}.row,.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid{grid-template-columns:1fr 1fr 1fr}button{border:0;border-radius:12px;padding:12px 16px;background:#111827;color:white;font-weight:900;cursor:pointer;margin-top:14px}button.secondary{background:#e5e7eb;color:#111827}.danger{background:#b91c1c}.success{background:#15803d}.gold{background:#f5c542;color:#111827}.muted{color:#6b7280;margin:4px 0}.message{font-weight:700}.list{display:grid;gap:10px;margin-top:14px}.card{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}.card h3{margin:0 0 8px}.actions{display:flex;flex-wrap:wrap;gap:8px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tab{background:#e5e7eb;color:#111827}.tab.active{background:#111827;color:white}.quickbox{border:1px solid #e5e7eb;background:#f9fafb;border-radius:14px;padding:14px;margin-top:16px}.important{border:2px solid #f5c542;background:#fffbeb}.vbox{border:2px solid #f5c542;background:#111827;color:white;border-radius:16px;padding:15px;margin-bottom:15px}.vbox p{color:#e5e7eb}.preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:12px;margin-top:12px}.preview p{margin:0}.sectionHead{display:flex;justify-content:space-between;gap:14px}.infoBox{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:12px;margin:10px 0 16px;display:grid;gap:4px}.pill{display:inline-block;border-radius:999px;background:#e5e7eb;padding:4px 10px;font-size:13px;font-weight:800}.lowStock{border-color:#b91c1c;background:#fff7f7}
@media(max-width:950px){header,.topbar,.sectionHead{flex-direction:column;align-items:flex-start}.brand{align-items:flex-start}.layout,.dashboard,.row,.grid,.preview{grid-template-columns:1fr}.stat strong{font-size:34px}}
.reminderCard{border-left:5px solid #f5c542;background:#fffbeb}


.actionDashboard{border:2px solid #f5c542}
.actionGrid{margin-top:14px}
.alertBox{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px}
.alertBox strong{display:block;font-size:28px}
.alertBox span{color:#6b7280;font-weight:800}
.reminderCard{border-left:5px solid #f5c542;background:#fffbeb}


.jobCard{border-left:5px solid #60a5fa}
.buttonLink{display:inline-block;border-radius:12px;padding:12px 16px;background:#111827;color:white;font-weight:900;text-decoration:none;margin-top:14px}
.goldLink{background:#f5c542;color:#111827}


.planningStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0}
.planningStat{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:14px}
.planningStat b{display:block;font-size:24px;margin-bottom:4px}
.planningStat span{color:#6b7280;font-weight:800}
.jobCard{border-left:5px solid #60a5fa}
.buttonLink{display:inline-block;border-radius:12px;padding:12px 16px;background:#111827;color:white;font-weight:900;text-decoration:none;margin-top:14px}
.goldLink{background:#f5c542;color:#111827}


#planningForceMount{display:block}
#planningArea{width:100%}


.planningFilters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}
.planningFilter{background:#e5e7eb;color:#111827;margin-top:0}
.planningFilter.active{background:#111827;color:white}


.travelBox{border-color:#60a5fa;background:#f8fbff}
.travelPreview{margin-top:12px}


.expensesDashboard{grid-template-columns:repeat(4,1fr)}
.expenseCard{border-left:5px solid #f5c542}
.miniCard{border:1px solid #e5e7eb;border-radius:12px;padding:10px;background:white}
@media(max-width:950px){.expensesDashboard{grid-template-columns:1fr}}


#expensesForceMount{display:block}
#expensesArea{width:100%}
.expensesDashboard{grid-template-columns:repeat(4,1fr)}
.expenseCard{border-left:5px solid #f5c542}
.miniCard{border:1px solid #e5e7eb;border-radius:12px;padding:10px;background:white}
@media(max-width:950px){.expensesDashboard{grid-template-columns:1fr}}

.periodBox{border-left:5px solid #60a5fa;background:#f8fbff}


.accountingExpensesBox{border-left:5px solid #f5c542;background:#fffbeb}
.expensesAccountingDashboard{grid-template-columns:repeat(4,1fr)}
@media(max-width:950px){.expensesAccountingDashboard{grid-template-columns:1fr}}


.exportAccountingBox{border-left:5px solid #60a5fa;background:#f8fbff}


.voltaV225Hidden{display:none!important}
#v225CleanBtn{background:#e5e7eb!important;color:#111827!important}
.navBtn.active,[data-view='accounting'].active{background:#111827!important;color:white!important}


.voltaV226Hidden{display:none!important}
[data-view='accounting']{background:#e5e7eb!important;color:#111827!important}
[data-view='accounting'].active{background:#111827!important;color:white!important}
.navBtn.active{background:#111827!important;color:white!important}


.voltaV227Hidden{display:none!important}
[data-view='accounting'],.navBtnLike{
  min-height:48px!important;
  padding:14px 22px!important;
  border-radius:14px!important;
  font-weight:800!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}


/* V26.0 - Coffre-fort comptable */
.vaultBox{border:2px solid #111827;background:#f8fafc}
.vaultDocCard{border-left:5px solid #f5c542}
.vaultDocCard h3{display:flex;align-items:center;gap:6px}

/* V27.7.0 TVA dynamique */
#quoteVat{font-weight:800}


/* V28.2.0 - Comptabilité réelle + pilotage salaire */
.v282Panel{margin-bottom:18px}
.v282Stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.v282Stat{min-height:92px}
.v282Stat strong{font-size:24px}
.v282Stat b{display:block;font-size:24px}
.v282Stat span{display:block;color:#6b7280;font-weight:800;margin-top:4px}
@media(max-width:950px){.v282Stats{grid-template-columns:1fr}.v282Stat strong,.v282Stat b{font-size:26px}}

/* V28.6.0 - ZFRR */
.v286ZfrrBox{display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:16px;padding:14px;margin:12px 0;border:2px solid #f5c542;background:#fffbeb}
.v286ZfrrBox b{display:block;font-size:16px;margin-bottom:4px}.v286ZfrrBox p{margin:0}.v286ZfrrBox button{white-space:nowrap;margin-top:0}
.v286ZfrrYes{border-color:#16a34a!important;background:#f0fdf4!important;color:#111827!important}.v286ZfrrNo{border-color:#b91c1c!important;background:#fff7f7!important;color:#111827!important}.v286ZfrrUnknown{border-color:#f5c542!important;background:#fffbeb!important;color:#111827!important}
.v286ZfrrPanel{border:2px solid #16a34a;background:#f0fdf4}
@media(max-width:950px){.v286ZfrrBox{flex-direction:column;align-items:flex-start}.v286ZfrrBox button{width:100%}}

/* V29 - Carnet client professionnel */
.v29ClientTools{margin:12px 0 16px;padding:12px;border:1px solid #e5e7eb;border-radius:16px;background:#f9fafb}
.v29FilterRow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.v29FilterRow button{margin-top:0;background:#e5e7eb;color:#111827}.v29FilterRow button.active{background:#111827;color:white}.v29ClientCard{border-left:5px solid #111827}.v29ClientCard.v29Favorite{border-left-color:#f5c542;background:#fffbeb}.v29ClientHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.v29ClientHead h3{font-size:22px}.v29ClientStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:10px 0}.v29ClientStats span{background:#f3f4f6;border-radius:12px;padding:8px;font-weight:800}.v29Warn{background:#fee2e2!important;color:#991b1b}.v29Green{background:#dcfce7;color:#166534}.v29ClientContact{font-weight:700}.v29Check{display:flex;gap:10px;align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:12px}.v29Check input{width:auto;margin:0}@media(max-width:700px){.v29ClientHead{flex-direction:column}.v29ClientStats{grid-template-columns:1fr}.v29FilterRow button{width:100%}}


/* V29.0.2 - Autocomplétion adresse légère */
.voltaAddressWrap{position:relative}
.voltaAddressSuggest{position:absolute;z-index:9999;left:0;right:0;top:100%;background:#fff;border:1px solid #d1d5db;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.16);margin-top:6px;overflow:hidden;max-height:280px;overflow-y:auto}
.voltaAddressItem{padding:12px 14px;border-bottom:1px solid #f3f4f6;cursor:pointer;background:#fff}
.voltaAddressItem:hover,.voltaAddressItem.active{background:#fffbeb}
.voltaAddressItem b{display:block;color:#111827}
.voltaAddressItem span{display:block;color:#6b7280;font-size:13px;margin-top:2px}
.voltaAddressHelp{font-size:12px;color:#6b7280;margin-top:5px;font-weight:600}

/* V30.0.0 - Distance chantier */
.voltaDistanceBox{margin:10px 0 14px;padding:14px;border:1px solid #e5e7eb;border-left:5px solid #f5c542;border-radius:14px;background:#fffbeb}
.voltaDistanceBox strong{display:block;margin-bottom:6px}
.voltaDistanceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.voltaDistanceGrid span{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:10px}
.voltaDistanceGrid b{display:block;font-size:20px}
.voltaDistanceGrid small{display:block;color:#6b7280;font-weight:800;margin-top:3px}
@media(max-width:700px){.voltaDistanceGrid{grid-template-columns:1fr}}


/* V30.0.0 - Historique client + galerie chantier */
.voltaClientDashboard{margin:14px 0 18px;padding:14px;border:1px solid #e5e7eb;border-radius:16px;background:#f9fafb}
.voltaClientStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin-top:12px}
.voltaClientStat{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px}
.voltaClientStat strong{display:block;font-size:22px;color:#111827}.voltaClientStat span{color:#6b7280;font-weight:800;font-size:13px}
.voltaTimeline{display:grid;gap:10px;margin-top:12px}.voltaTimelineItem{background:#fff;border:1px solid #e5e7eb;border-left:5px solid #111827;border-radius:14px;padding:12px}.voltaTimelineItem.quote{border-left-color:#f5c542}.voltaTimelineItem.invoice{border-left-color:#15803d}.voltaTimelineItem.note{border-left-color:#60a5fa}.voltaTimelineItem.job{border-left-color:#7c3aed}
.voltaTimelineItem h4{margin:0 0 4px}.voltaTimelineItem p{margin:2px 0}.voltaNoteBox,.voltaGalleryBox{margin-top:14px;padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.voltaGalleryGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:10px}.voltaGalleryCard{border:1px solid #e5e7eb;border-radius:12px;padding:8px;background:#f9fafb;overflow:hidden}.voltaGalleryCard img{width:100%;height:90px;object-fit:cover;border-radius:10px;background:#e5e7eb}.voltaGalleryCard a{display:block;margin-top:6px;font-weight:800;text-decoration:none;color:#111827;word-break:break-word}.voltaCompactActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.voltaMiniInput{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}@media(max-width:700px){.voltaMiniInput{grid-template-columns:1fr}.voltaClientStats{grid-template-columns:1fr 1fr}}


/* V30.0.0 - cartes tableau de bord cliquables */
.statBtn,.dashboard .stat[data-view],.voltaDashboardClickable{
  cursor:pointer!important;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
  border:1px solid rgba(17,24,39,.06)!important;
}
.statBtn:hover,.dashboard .stat[data-view]:hover,.voltaDashboardClickable:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(0,0,0,.12)!important;
  border-color:#f5c542!important;
}
.statBtn:active,.dashboard .stat[data-view]:active,.voltaDashboardClickable:active,.voltaStatClicked{
  transform:scale(.985)!important;
  box-shadow:0 8px 20px rgba(0,0,0,.10)!important;
}
.statBtn:focus,.dashboard .stat[data-view]:focus,.voltaDashboardClickable:focus{
  outline:3px solid rgba(245,197,66,.45);
  outline-offset:3px;
}


/* ==========================
   V30.0.0 — CRM CLIENTS ERGONOMIQUE
   Objectif : liste compacte + formulaire séparé pour éviter les pages interminables.
========================== */
.crmLayoutV30{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
.clientDirectoryV30{order:1;border:2px solid #f5c542;background:linear-gradient(180deg,#fff,#fffdf4)}
.clientFormPanelV30{order:2;display:none;border:2px solid #e5e7eb;background:#fff}
body.showClientFormV30 .clientFormPanelV30{display:block}
.clientDirectoryHeadV30{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;position:sticky;top:0;background:linear-gradient(180deg,#fffdf4,#fff);z-index:5;padding:4px 0 12px;border-bottom:1px solid #f3e8b0}
.clientDirectoryHeadV30 h2{margin:0;font-size:26px}.clientDirectoryHeadV30 p{margin-top:4px}.clientDirectoryHeadV30 .gold{margin-top:0;white-space:nowrap}.clientSearchV30{font-size:17px;border:2px solid #f5c542;background:#fffef6;margin-bottom:10px}
.clientDirectoryV30 #clientList{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px;max-height:70vh;overflow:auto;padding:4px 4px 12px;scrollbar-width:thin}
.clientDirectoryV30 #clientList .card{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:start;border-radius:16px;padding:12px 14px;min-height:86px;box-shadow:0 8px 20px rgba(15,23,42,.06);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.clientDirectoryV30 #clientList .card:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.10);border-color:#f5c542}.clientDirectoryV30 #clientList .card:active{transform:scale(.99)}
.clientDirectoryV30 #clientList .card h3{font-size:18px;margin:0;grid-column:1/2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clientDirectoryV30 #clientList .card p{margin:0;color:#6b7280;font-size:13px;line-height:1.35;grid-column:1/2}.clientDirectoryV30 #clientList .card p:nth-of-type(2){display:none}.clientDirectoryV30 #clientList .card .actions{grid-column:2/3;grid-row:1/4;display:flex;flex-direction:column;gap:6px;align-items:stretch}.clientDirectoryV30 #clientList .card .actions button{margin:0;padding:8px 10px;border-radius:10px;font-size:13px}.clientDirectoryV30 #clientList .card .actions .danger{display:none}.clientDirectoryV30 #clientList .card .actions .secondary{background:#f3f4f6}
.closeClientFormV30{float:right;margin-top:-2px}.globalPanelV30{border:2px solid #f5c542;background:linear-gradient(180deg,#fff,#fffdf4)}.globalPanelV30 .sectionHead{position:sticky;top:0;background:#fff;z-index:4;padding-bottom:10px;border-bottom:1px solid #f3e8b0}.globalSearchBoxV30{position:sticky;top:72px;background:#fffdf4;z-index:4;padding:10px 0}.globalSearchBoxV30 input{border:2px solid #f5c542;background:#fffef6}.globalPanelV30 #globalList{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;max-height:58vh;overflow:auto;padding:4px 4px 12px;scrollbar-width:thin}.globalPanelV30 #globalList .card{border-radius:16px;padding:12px;min-height:82px;box-shadow:0 8px 20px rgba(15,23,42,.06)}.globalPanelV30 #globalList .card h3{font-size:17px;margin:0 0 6px}.globalPanelV30 #globalList .card p{font-size:13px;margin:2px 0;color:#6b7280}.globalPanelV30 #globalList .card button{margin-top:8px;padding:8px 10px;font-size:13px}
.dashboard .stat,.dashboard .statBtn{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;border:1px solid transparent}.dashboard .stat:hover,.dashboard .statBtn:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,23,42,.12);border-color:#f5c542}.dashboard .stat:active,.dashboard .statBtn:active{transform:scale(.985)}
@media(max-width:700px){.clientDirectoryHeadV30{flex-direction:column;align-items:stretch}.clientDirectoryV30 #clientList,.globalPanelV30 #globalList{grid-template-columns:1fr;max-height:none}.clientDirectoryV30 #clientList .card{grid-template-columns:1fr}.clientDirectoryV30 #clientList .card .actions{grid-column:1;grid-row:auto;flex-direction:row;flex-wrap:wrap}.globalSearchBoxV30{top:0}.closeClientFormV30{float:none;width:100%}}


/* ==========================================================
   V30.0.1 - Toasts et confirmations visuelles
========================================================== */
#voltaToastV3001{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:99999;
  display:grid;
  gap:10px;
  width:min(92vw,420px);
  pointer-events:none;
}
.voltaToastItemV3001{
  opacity:0;
  transform:translateY(16px) scale(.98);
  transition:opacity .22s ease, transform .22s ease;
  background:#111827;
  color:#fff;
  border:2px solid #f5c542;
  border-radius:16px;
  padding:13px 16px;
  font-weight:900;
  box-shadow:0 16px 40px rgba(0,0,0,.25);
  text-align:center;
}
.voltaToastItemV3001.show{
  opacity:1;
  transform:translateY(0) scale(1);
}
.voltaToastItemV3001.warn{
  background:#7f1d1d;
  border-color:#fecaca;
}
button.voltaBtnDoneV3001{
  background:#15803d !important;
  color:#fff !important;
  transform:scale(.98);
}
.voltaPulseFieldV3001{
  outline:3px solid #22c55e !important;
  box-shadow:0 0 0 6px rgba(34,197,94,.18) !important;
  transition:box-shadow .25s ease, outline .25s ease;
}
button{
  transition:transform .12s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
button:active{
  transform:scale(.97);
}

/* ==========================================================
   V30.0.2 - Déplacement intelligent devis
========================================================== */
.voltaSmartTravelStatus{
  margin:12px 0;
  padding:12px;
  border-radius:14px;
  border:1px solid #e5e7eb;
  background:#f9fafb;
}
.voltaSmartTravelStatus p{margin:0}
.voltaSmartTravelOk{
  display:grid;
  gap:4px;
}
.voltaSmartTravelOk b{color:#111827}
.voltaSmartTravelOk span{font-weight:900;color:#15803d}
.voltaSmartTravelOk small{color:#6b7280;line-height:1.35}
#addTravelToQuoteBtn.gold{
  box-shadow:0 10px 22px rgba(245,197,66,.22);
}


/* V30.0.5 - navigation fixe et anti-panneau invisible */
.mainNav{
  position: sticky;
  top: 8px;
  z-index: 9999 !important;
  pointer-events: auto !important;
  border: 1px solid rgba(17,24,39,.08);
}
.mainNav .navBtn,
.mainNav button{
  pointer-events: auto !important;
}
#globalPanel[hidden]{
  display:none !important;
  pointer-events:none !important;
}
#globalPanel.globalPanelV30{
  position: relative;
  z-index: 1;
}
.statBtn{
  transition: transform .12s ease, box-shadow .12s ease;
}
.statBtn:active{
  transform: scale(.985);
}
@media(max-width:950px){
  .mainNav{top:0;border-radius:0 0 18px 18px;margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px;}
}


/* V30.0.5 - priorité clics dashboard / global */
.mainNav{
  z-index:2147483000 !important;
  pointer-events:auto !important;
}
.mainNav *,.dashboard,.dashboard *,.statBtn{
  pointer-events:auto !important;
}
#globalPanel[hidden]{
  display:none !important;
  pointer-events:none !important;
}
#globalPanel:not([hidden]){
  display:block;
  pointer-events:auto !important;
  position:relative;
  z-index:2;
}


/* ==========================================================
   V31.0.0 - Planning PRO terrain
========================================================== */
.planningProPanel{overflow:hidden;border:1px solid rgba(17,24,39,.08)}
.planningHeroPro{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#111827,#1f2937);color:white;border-radius:20px;padding:18px;margin-bottom:16px;box-shadow:0 14px 28px rgba(0,0,0,.16)}
.planningHeroPro h2{margin:0 0 6px;font-size:26px}.planningHeroPro .muted{color:#d1d5db}.planningHeroPro button{margin-top:0;white-space:nowrap}
.planningStatsPro{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin:14px 0}
.planningStatsPro>div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px;box-shadow:0 6px 16px rgba(0,0,0,.04)}
.planningStatsPro strong{display:block;font-size:24px}.planningStatsPro span{display:block;color:#6b7280;font-weight:800;font-size:13px;margin-top:4px}
.planningWeekPro{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin:14px 0 18px}
.planningDayPro{background:#fff;border:1px solid #e5e7eb;color:#111827;border-radius:16px;padding:10px;margin:0;text-align:center;box-shadow:0 6px 16px rgba(0,0,0,.04)}
.planningDayPro.today{border:2px solid #f5c542;background:#fffbeb}.planningDayPro b{display:block;text-transform:capitalize}.planningDayPro span{display:block;color:#6b7280;font-size:13px}.planningDayPro em{display:inline-grid;place-items:center;margin-top:6px;width:26px;height:26px;border-radius:999px;background:#111827;color:white;font-style:normal;font-weight:900}
.planningToolbarPro{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:12px 0 16px;position:sticky;top:88px;background:white;z-index:30;padding:10px;border:1px solid #eef2f7;border-radius:18px;box-shadow:0 8px 18px rgba(0,0,0,.05)}
#planningSearchPro{margin-top:0;background:#f9fafb}.planningToolbarPro .planningFilters{margin:0;white-space:nowrap}.planningToolbarPro .planningFilter{margin-top:0}
.planningListPro{display:grid;gap:16px}.planningDayGroupPro{display:grid;gap:10px}.planningDayGroupPro>h3{margin:14px 0 4px;padding:8px 4px;color:#111827;font-size:18px;border-bottom:1px solid #e5e7eb}
.planningJobPro{display:grid;grid-template-columns:92px 1fr;background:white;border:1px solid #e5e7eb;border-left:7px solid #60a5fa;border-radius:18px;padding:0;box-shadow:0 12px 28px rgba(0,0,0,.07);overflow:hidden}
.planningJobPro.todo{border-left-color:#22c55e}.planningJobPro.progress{border-left-color:#f97316}.planningJobPro.done{border-left-color:#3b82f6;opacity:.82}.planningJobPro.urgent{border-left-color:#dc2626}
.planningTimePro{background:#f8fafc;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 8px}.planningTimePro b{font-size:20px}.planningTimePro span{font-size:13px;color:#6b7280;font-weight:800}
.planningJobBodyPro{padding:14px}.planningJobTopPro{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.planningJobTopPro h3{margin:0;font-size:18px}.planningClientPro{font-weight:900;margin:8px 0 6px}.planningMetaPro{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.planningMetaPro span{background:#f3f4f6;border-radius:999px;padding:5px 10px;font-size:13px;font-weight:800;color:#374151}.planningNotesPro{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:9px;margin:8px 0}
.planningBadgePro{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;white-space:nowrap}.planningBadgePro.todo{background:#dcfce7;color:#166534}.planningBadgePro.progress{background:#ffedd5;color:#9a3412}.planningBadgePro.done{background:#dbeafe;color:#1e40af}.planningBadgePro.urgent{background:#fee2e2;color:#991b1b}
.planningActionsPro{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.planningActionsPro button,.planningActionsPro .buttonLink{margin-top:0;padding:10px 12px;font-size:13px}
.planningDepartBoxPro{margin:14px 0}.planningDepartInnerPro{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;background:#111827;color:white;border:2px solid #f5c542;border-radius:18px;padding:16px;box-shadow:0 16px 32px rgba(0,0,0,.18)}.planningDepartInnerPro h3{margin:0 0 8px}.planningDepartInnerPro p{margin:4px 0;color:#e5e7eb}.planningDepartActionsPro{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.planningDepartActionsPro button,.planningDepartActionsPro .buttonLink{margin-top:0}
.planningEmptyPro{background:#f9fafb;border:1px dashed #cbd5e1;border-radius:16px;padding:22px;text-align:center;color:#6b7280;font-weight:800}
@media(max-width:950px){.planningHeroPro{flex-direction:column}.planningStatsPro{grid-template-columns:1fr 1fr}.planningWeekPro{display:flex;overflow:auto;padding-bottom:6px}.planningDayPro{min-width:92px}.planningToolbarPro{grid-template-columns:1fr;top:72px}.planningJobPro{grid-template-columns:1fr}.planningTimePro{flex-direction:row;justify-content:flex-start;border-right:0;border-bottom:1px solid #e5e7eb}.planningDepartInnerPro{flex-direction:column}.planningDepartActionsPro{justify-content:flex-start}}

/* ==========================================================
   V32.0.0 - Suivi Commercial PRO
========================================================== */
.trackingProV32{border:2px solid #111827;overflow:hidden}
.trackingHeroV32{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#111827,#1f2937);color:#fff;border-radius:18px;padding:18px;margin-bottom:14px}
.trackingHeroV32 h2{margin:0 0 6px}.trackingHeroV32 .muted{color:#d1d5db}.trackingHeroRightV32{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.trackingHeroRightV32 .pill{background:#f5c542;color:#111827}.trackingAdviceV32{background:#fffbeb;border:1px solid #f5c542;border-radius:16px;padding:13px 15px;margin:12px 0;font-weight:800}.trackingStatsV32{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:14px 0}.trackingStatV32{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px;text-align:left;margin:0;color:#111827;box-shadow:0 6px 18px rgba(0,0,0,.06)}.trackingStatV32 strong{display:block;font-size:24px}.trackingStatV32 span{color:#6b7280;font-weight:800}.trackingStatV32.ok{border-color:#16a34a;background:#f0fdf4}.trackingStatV32.warn{border-color:#f59e0b;background:#fffbeb}.trackingStatV32.dangerStat{border-color:#dc2626;background:#fef2f2}.trackingStatV32.money{border-color:#111827;background:#f9fafb}.trackingToolbarV32{display:grid;grid-template-columns:1fr;gap:10px;margin:14px 0}.trackingToolbarV32 input{font-size:17px;border:2px solid #111827}.trackingFiltersV32{display:flex;gap:8px;flex-wrap:wrap}.trackingFiltersV32 button{margin:0;background:#e5e7eb;color:#111827}.trackingFiltersV32 button.active{background:#111827;color:#fff}.trackingKanbanV32{display:grid;grid-template-columns:repeat(5,minmax(190px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px;margin:14px 0}.kanbanColV32{background:#f9fafb;border:1px solid #e5e7eb;border-radius:18px;padding:12px;min-width:210px}.kanbanColV32 h3{display:flex;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:16px}.kanbanColV32 h3 span{background:#111827;color:#fff;border-radius:999px;padding:2px 8px;font-size:12px}.emptyV32{background:white;border:1px dashed #d1d5db;border-radius:12px;padding:10px}.trackingListTitleV32{margin-top:18px}.trackingListProV32{display:grid;gap:12px}.trackingCardV32{background:#fff;border:1px solid #e5e7eb;border-left:6px solid #9ca3af;border-radius:18px;padding:14px;box-shadow:0 6px 16px rgba(0,0,0,.05)}.trackingCardV32 h3{margin:8px 0 4px}.trackingCardV32.todo{border-left-color:#64748b}.trackingCardV32.sent{border-left-color:#3b82f6}.trackingCardV32.remind{border-left-color:#f59e0b}.trackingCardV32.late{border-left-color:#dc2626;background:#fff7f7}.trackingCardV32.accepted{border-left-color:#16a34a;background:#f7fff9}.trackingCardV32.refused{border-left-color:#111827;background:#f9fafb}.trackingCardTopV32{display:flex;justify-content:space-between;gap:8px;align-items:center}.trackingBadgeV32{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:900;background:#e5e7eb;color:#111827}.trackingBadgeV32.sent{background:#dbeafe;color:#1d4ed8}.trackingBadgeV32.remind{background:#fef3c7;color:#92400e}.trackingBadgeV32.late{background:#fee2e2;color:#991b1b}.trackingBadgeV32.accepted{background:#dcfce7;color:#166534}.trackingBadgeV32.refused{background:#e5e7eb;color:#111827}.trackingAgeV32{color:#6b7280;font-weight:800}.trackingMiniGridV32{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.trackingMiniGridV32 span{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:8px;font-weight:800;font-size:13px}.trackingActionsV32 button{margin-top:8px}.kanbanColV32 .trackingCardV32{padding:10px;border-radius:14px}.kanbanColV32 .trackingCardV32 .trackingMiniGridV32,.kanbanColV32 .trackingActionsV32{display:none}.kanbanColV32 .trackingCardV32 h3{font-size:14px}.kanbanColV32 .trackingCardV32 p{font-size:12px}
@media(max-width:950px){.trackingHeroV32{flex-direction:column}.trackingStatsV32{grid-template-columns:1fr 1fr}.trackingKanbanV32{grid-template-columns:repeat(5,260px)}.trackingMiniGridV32{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.trackingStatsV32,.trackingMiniGridV32{grid-template-columns:1fr}.trackingFiltersV32 button{width:100%}}


/* V32.1.0 STOCK PRO - ajout prudent sans toucher Auth/navigation */
.stockProPanel{overflow:visible}.stockProHead{align-items:flex-start}.stockProMiniActions{display:flex;gap:8px;flex-wrap:wrap}.stockStatsPro{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin:14px 0}.stockStatCard{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px}.stockStatCard strong{display:block;font-size:24px;color:#111827}.stockStatCard span{font-weight:800;color:#6b7280;font-size:13px}.stockToolbarPro{display:grid;gap:10px;margin:14px 0}.stockToolbarPro input{margin-top:0}.stockFilterChips{display:flex;gap:8px;flex-wrap:wrap}.stockFilter{background:#e5e7eb;color:#111827;margin-top:0}.stockFilter.active{background:#111827;color:white}.stockFormPro{background:#fffbeb;border:1px solid #f5c542;border-radius:16px;padding:14px;margin:14px 0}.stockFormPro h3{margin:0 0 8px}.stockGridPro{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}.stockCardPro{background:white;border:1px solid #e5e7eb;border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(0,0,0,.06)}.stockCardPro.stockLow{border-color:#f59e0b;background:#fffbeb}.stockCardPro.stockOut{border-color:#b91c1c;background:#fff7f7}.stockCardTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.stockCardTop h3{margin:0;font-size:18px}.stockBadge{display:inline-block;border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px;white-space:nowrap;background:#e5e7eb}.stockBadge.ok{background:#dcfce7;color:#166534}.stockBadge.low{background:#fef3c7;color:#92400e}.stockBadge.out{background:#fee2e2;color:#991b1b}.stockNumbers{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}.stockNumbers div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:9px}.stockNumbers strong{display:block;font-size:16px}.stockNumbers span{display:block;color:#6b7280;font-size:11px;font-weight:800}.stockActionsPro{display:flex;flex-wrap:wrap;gap:8px}.stockActionsPro button{margin-top:0;padding:10px 12px}@media(max-width:700px){.stockNumbers{grid-template-columns:repeat(2,1fr)}.stockGridPro{grid-template-columns:1fr}}


/* V32.2.0 Tarifs PRO */
.tariffPanelPro .sectionHead{align-items:flex-start}
.tariffStatsPro{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:14px 0}
.tariffStatCard{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px}
.tariffStatCard strong{display:block;font-size:24px;color:#111827}
.tariffStatCard span{display:block;color:#6b7280;font-weight:800;font-size:13px;margin-top:4px}
.tariffToolbarPro{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px;margin:14px 0}
.tariffToolbarPro input{margin-top:0}
.tariffFiltersPro{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.tariffFilter{background:#e5e7eb;color:#111827;margin-top:0;padding:9px 12px;font-size:13px}
.tariffFilter.active{background:#111827;color:white}
.tariffFormPro h3{margin-top:0}
.tariffListPro{display:grid;gap:12px;margin-top:16px}
.tariffCardPro{background:white;border:1px solid #e5e7eb;border-radius:18px;padding:15px;box-shadow:0 8px 20px rgba(0,0,0,.055)}
.tariffCardPro.tariffLow{border-left:6px solid #f59e0b;background:#fffbeb}
.tariffCardPro.tariffOk{border-left:6px solid #16a34a}
.tariffCardTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.tariffCardTop h3{margin:0 0 4px;font-size:18px}
.tariffBadge{border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px;white-space:nowrap}
.tariffBadge.ok{background:#dcfce7;color:#166534}
.tariffBadge.low{background:#fef3c7;color:#92400e}
.tariffNumbers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.tariffNumbers div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:10px}
.tariffNumbers strong{display:block;font-size:18px}
.tariffNumbers span{display:block;color:#6b7280;font-weight:800;font-size:12px;margin-top:3px}
.tariffActionsPro{display:flex;flex-wrap:wrap;gap:8px}
.tariffActionsPro button{margin-top:0}
@media(max-width:700px){.tariffNumbers{grid-template-columns:1fr 1fr}.tariffCardTop{flex-direction:column}.tariffBadge{white-space:normal}.tariffActionsPro button{width:100%}}


/* V32.3.0 - Devis PRO */
.quoteLinesRawLabelV3230{display:none}.quoteLinesRawLabelV3230.showRawV3230{display:block}.quoteLinesRawV3230.showRawV3230{display:block;min-height:120px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.quoteTableProV3230{margin:14px 0;border:1px solid #e5e7eb;background:#fff;border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(0,0,0,.06)}.quoteProHeadV3230{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.quoteProHeadV3230 h4{margin:0 0 4px;font-size:18px}.quoteProTotalsV3230{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.quoteProTotalsV3230 span{background:#111827;color:white;border-radius:999px;padding:8px 12px;font-weight:900}.quoteProToolbarV3230{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.quoteTableScrollV3230{overflow:auto;border-radius:14px;border:1px solid #e5e7eb}.quoteLinesTableV3230{width:100%;border-collapse:collapse;min-width:820px}.quoteLinesTableV3230 th{background:#f9fafb;text-align:left;font-size:13px;color:#6b7280;padding:10px}.quoteLinesTableV3230 td{border-top:1px solid #e5e7eb;padding:8px;vertical-align:middle}.quoteLinesTableV3230 tr:hover{background:#fffbeb}.quoteCellV3230{margin:0;padding:9px;border-radius:10px;font-size:14px}.quoteLabelV3230{min-width:280px}.quoteQtyV3230{width:76px}.quoteUnitV3230,.quoteCostV3230{width:110px}.quoteLinesTableV3230 small{display:block;color:#6b7280;margin-top:3px}.quoteActionsV3230{white-space:nowrap}.quoteActionsV3230 button{margin:0 3px 0 0;padding:8px 10px}.quoteDragV3230{color:#9ca3af;text-align:center;width:34px}.quoteEmptyV3230{border:1px dashed #d1d5db;background:#f9fafb;border-radius:14px;padding:18px;text-align:center}.quoteEmptyV3230 h4{margin:0 0 4px}@media(max-width:760px){.quoteProHeadV3230{flex-direction:column}.quoteProTotalsV3230{justify-content:flex-start}.quoteTableProV3230{padding:10px}.quoteLinesTableV3230{min-width:780px}}


/* ==========================================================
   V32.4.0 - LAURA UI / VOLTA PREMIUM
   Refonte visuelle prudente uniquement CSS : aucune logique métier,
   aucun changement Firebase/Auth.
========================================================== */
:root{
  --volta-dark:#101827;
  --volta-dark-2:#172033;
  --volta-gold:#f5c542;
  --volta-gold-soft:#fff3c4;
  --volta-blue:#3b82f6;
  --volta-violet:#8b5cf6;
  --volta-mint:#10b981;
  --volta-rose:#f472b6;
  --volta-orange:#fb923c;
  --volta-bg:#f7f7fb;
  --volta-card:rgba(255,255,255,.88);
  --volta-border:rgba(17,24,39,.08);
  --volta-shadow:0 16px 45px rgba(15,23,42,.10);
  --volta-shadow-soft:0 8px 24px rgba(15,23,42,.08);
}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at top left, rgba(245,197,66,.22), transparent 30%),
    radial-gradient(circle at top right, rgba(139,92,246,.14), transparent 28%),
    linear-gradient(135deg,#fffaf0 0%,#f7f8ff 42%,#f4fbff 100%) !important;
  color:#111827;
}
header{
  background:linear-gradient(135deg,var(--volta-dark) 0%,#111827 48%,#26324a 100%) !important;
  border-bottom:1px solid rgba(245,197,66,.25);
  box-shadow:0 14px 36px rgba(15,23,42,.22);
  position:relative;
  overflow:hidden;
}
header:before{
  content:"";position:absolute;inset:-120px auto auto -120px;width:260px;height:260px;
  background:radial-gradient(circle,rgba(245,197,66,.32),transparent 62%);
  pointer-events:none;
}
header:after{
  content:"";position:absolute;right:-120px;bottom:-130px;width:320px;height:320px;
  background:radial-gradient(circle,rgba(59,130,246,.22),transparent 62%);
  pointer-events:none;
}
.brand,.topbar,.mainNav,main{position:relative;z-index:1}
.logo{
  background:linear-gradient(145deg,#050505,#1f2937) !important;
  box-shadow:0 0 0 4px rgba(245,197,66,.12),0 14px 30px rgba(0,0,0,.28);
  transform:rotate(-2deg);
}
h1{letter-spacing:-.04em}.version{box-shadow:0 8px 18px rgba(245,197,66,.26)}
main{max-width:1240px}
.panel,.stat,.card,.quickbox,.infoBox,.alertBox,.jobCard,.reminderCard,.globalPanelV30,.clientDirectoryV30,.clientFormPanelV30,
.stockCardPro,.tariffCardPro,.trackingCardPro,.planningJobPro,.quoteLineTableWrap,.quoteProPanel{
  background:var(--volta-card) !important;
  border:1px solid var(--volta-border) !important;
  box-shadow:var(--volta-shadow-soft) !important;
  backdrop-filter:blur(10px);
}
.panel,.stat,.card,.quickbox,.infoBox,.alertBox,.jobCard,.reminderCard{border-radius:22px !important}
.card,.stat,.panel,.stockCardPro,.tariffCardPro,.trackingCardPro,.planningJobPro{
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.card:hover,.stat:hover,.stockCardPro:hover,.tariffCardPro:hover,.trackingCardPro:hover,.planningJobPro:hover{
  transform:translateY(-2px);
  box-shadow:var(--volta-shadow) !important;
  border-color:rgba(245,197,66,.30) !important;
}
.mainNav{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(17,24,39,.06);
  border-radius:22px;
  padding:10px;
  box-shadow:0 10px 28px rgba(15,23,42,.07);
  backdrop-filter:blur(12px);
}
.navBtn,.tab,.tariffFilter,.stockFilter,.trackingFilter,.planningFilter{
  border-radius:999px !important;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.navBtn:hover,.tab:hover,.tariffFilter:hover,.stockFilter:hover,.trackingFilter:hover,.planningFilter:hover,button:hover{
  transform:translateY(-1px);
}
.navBtn.active,.tab.active,.tariffFilter.active,.stockFilter.active,.trackingFilter.active,.planningFilter.active{
  background:linear-gradient(135deg,#111827,#27344f) !important;
  color:white !important;
  box-shadow:0 10px 24px rgba(17,24,39,.18);
}
button,.buttonLink{
  border-radius:14px !important;
  box-shadow:0 8px 18px rgba(17,24,39,.10);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
button:active{transform:scale(.98)}
button.gold,.gold,.goldLink{
  background:linear-gradient(135deg,#f7d55c,#f0b91d) !important;
  color:#111827 !important;
}
button.success,.success{background:linear-gradient(135deg,#10b981,#047857) !important}
button.danger,.danger{background:linear-gradient(135deg,#ef4444,#991b1b) !important}
button.secondary,.secondary{background:linear-gradient(135deg,#eef2ff,#e5e7eb) !important;color:#111827 !important}
input,textarea,select{
  border-radius:16px !important;
  border:1px solid rgba(17,24,39,.10) !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
input:focus,textarea:focus,select:focus{
  outline:none;
  border-color:rgba(245,197,66,.72) !important;
  box-shadow:0 0 0 4px rgba(245,197,66,.18) !important;
}
.dashboard{gap:16px}.stat{position:relative;overflow:hidden;padding:18px !important}.stat:before{
  content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--volta-gold),var(--volta-blue),var(--volta-violet));
}.stat strong{letter-spacing:-.04em}.stat span{font-weight:800;color:#64748b !important}
#clientsArea .panel:first-child:before,#clientDetails:before{background:linear-gradient(90deg,var(--volta-blue),transparent)}
#suiviArea .panel:before{background:linear-gradient(90deg,var(--volta-violet),transparent)}
#stockArea .panel:before{background:linear-gradient(90deg,var(--volta-mint),transparent)}
#planningArea .panel:before{background:linear-gradient(90deg,var(--volta-orange),transparent)}
#tarifsArea .panel:before{background:linear-gradient(90deg,var(--volta-gold),transparent)}
#accountingView .panel:before,#expensesArea .panel:before{background:linear-gradient(90deg,#059669,transparent)}
.mainArea>.panel,.mainArea>.layout>.panel,#clientDetails{position:relative;overflow:hidden}
.mainArea>.panel:before,.mainArea>.layout>.panel:before,#clientDetails:before{
  content:"";position:absolute;top:0;left:0;right:0;height:5px;opacity:.9;
}
.pill,.stockBadge,.tariffBadge,.trackingBadge,.planningStatusBadge{
  border-radius:999px !important;
  font-weight:900 !important;
  letter-spacing:-.01em;
  box-shadow:0 6px 14px rgba(15,23,42,.08);
}
.stockBadge.ok,.tariffBadge.ok{background:#dcfce7 !important;color:#166534 !important}
.stockBadge.low,.tariffBadge.low{background:#fef3c7 !important;color:#92400e !important}
.stockBadge.out{background:#fee2e2 !important;color:#991b1b !important}
.stockNumbers,.tariffNumbers,.planningStats,.trackingStats,.quotePreviewPro,.quoteLineStats{
  gap:12px !important;
}
.stockNumbers>div,.tariffNumbers>div,.planningStat,.trackingStat,.quotePreviewPro>div,.quoteLineStats>div,.stockStatCard,.tariffStatCard{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.92)) !important;
  border:1px solid rgba(17,24,39,.07) !important;
  border-radius:18px !important;
  box-shadow:0 8px 18px rgba(15,23,42,.06);
}
.stockActionsPro,.tariffActionsPro,.actions{gap:10px !important}
.list{gap:14px !important}
.sectionHead h2,.panel h2{letter-spacing:-.035em}.muted{color:#64748b !important}.message{color:#334155}
.globalSearchBoxV30 input,.clientSearchV30,#stockSearch,#tariffSearch,#trackingSearch,#planningSearch{
  padding-left:16px !important;
  border-radius:999px !important;
}
/* Devis PRO : rendu plus premium sans toucher au format interne */
.quoteLineTableWrap,.quoteLineTable,.quoteLineTable table{border-radius:20px !important;overflow:hidden}
.quoteLineTable th{background:linear-gradient(135deg,#111827,#27344f) !important;color:white !important}
.quoteLineTable tr:nth-child(even) td{background:rgba(248,250,252,.70)}
.quoteLineTable input{border-radius:12px !important;padding:9px !important}
/* Petites animations d'apparition */
.mainArea:not([hidden]){animation:voltaFadeIn .24s ease both}
@keyframes voltaFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:950px){
  main{padding:12px}.mainNav{border-radius:18px}.navBtn{flex:1 1 auto}.panel,.stat,.card{border-radius:18px !important}
  header{padding:18px}.dashboard{gap:10px}.stat strong{font-size:28px !important}
}


/* ==========================================================
   V32.4.3 - CLIENTS PREMIUM
   Objectif : rendre le carnet client et la fiche client plus beaux,
   plus lisibles et plus agréables pour Laura, sans toucher à Firebase/Auth.
========================================================== */
.clientPremiumGridV3243{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px;margin-top:16px}
.clientCardPremiumV3243{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.55);background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(248,250,252,.86));box-shadow:0 18px 45px rgba(15,23,42,.10);border-radius:24px;padding:16px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.clientCardPremiumV3243:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#60a5fa,#a78bfa,#f5c542);opacity:.95}
.clientCardPremiumV3243:hover{transform:translateY(-3px);box-shadow:0 24px 55px rgba(15,23,42,.16);border-color:rgba(245,197,66,.65)}
.clientCardHeadV3243{display:flex;gap:12px;align-items:center;margin-top:4px}
.clientAvatarV3243{flex:0 0 auto;width:50px;height:50px;border-radius:18px;display:grid;place-items:center;font-weight:950;color:white;background:linear-gradient(135deg,#111827,#2563eb 55%,#a78bfa);box-shadow:0 12px 25px rgba(37,99,235,.25);letter-spacing:.5px}
.clientTitleV3243 h3{margin:0;font-size:18px}.clientTitleV3243 p{margin:3px 0 0;color:#64748b;font-size:13px;font-weight:750}
.clientBadgeV3243{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;background:#eef2ff;color:#3730a3;margin-top:8px}
.clientBadgeV3243.todo{background:#fff7ed;color:#9a3412}.clientBadgeV3243.done{background:#dcfce7;color:#166534}.clientBadgeV3243.progress{background:#e0f2fe;color:#075985}
.clientInfoGridV3243{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0}
.clientInfoPillV3243{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border-radius:14px;background:rgba(248,250,252,.85);border:1px solid #e5e7eb;color:#334155;font-size:13px;line-height:1.35}.clientInfoPillV3243 b{color:#0f172a}
.clientActionsV3243{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.clientActionsV3243 button,.clientActionsV3243 a{margin-top:0;text-decoration:none;border:0;border-radius:14px;padding:10px 12px;font-weight:900;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.clientActionsV3243 a{background:#e5e7eb;color:#111827}.clientActionsV3243 .primary{background:linear-gradient(135deg,#111827,#334155);color:white}.clientActionsV3243 .softBlue{background:#dbeafe;color:#1e40af}.clientActionsV3243 .softGreen{background:#dcfce7;color:#166534}.clientActionsV3243 .softRed{background:#fee2e2;color:#991b1b}
.clientDetailsPremiumV3243{border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(248,250,252,.9));border:1px solid rgba(255,255,255,.65);box-shadow:0 22px 60px rgba(15,23,42,.12);overflow:hidden}
.clientHeroV3243{padding:20px;border-radius:24px;background:linear-gradient(135deg,#111827 0%,#1e293b 42%,#2563eb 100%);color:white;margin-bottom:16px;position:relative;overflow:hidden}.clientHeroV3243:after{content:"";position:absolute;right:-35px;top:-45px;width:160px;height:160px;border-radius:50%;background:rgba(245,197,66,.22)}.clientHeroInnerV3243{position:relative;z-index:1;display:flex;align-items:center;gap:14px}.clientHeroAvatarV3243{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;font-size:22px;font-weight:1000;background:linear-gradient(135deg,#f5c542,#f59e0b);color:#111827;box-shadow:0 14px 35px rgba(0,0,0,.22)}.clientHeroV3243 h3{margin:0;font-size:24px}.clientHeroV3243 p{margin:5px 0 0;color:#dbeafe}
.clientSummaryV3243{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 16px}.clientSummaryCardV3243{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:13px;box-shadow:0 10px 25px rgba(15,23,42,.07)}.clientSummaryCardV3243 strong{display:block;font-size:20px;color:#111827}.clientSummaryCardV3243 span{color:#64748b;font-weight:800;font-size:12px}
.clientContactGridV3243{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:12px 0 16px}.clientContactV3243{border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:13px;color:#334155;text-decoration:none;box-shadow:0 10px 24px rgba(15,23,42,.06)}.clientContactV3243 b{display:block;color:#111827;margin-bottom:4px}.clientContactV3243:hover{border-color:#93c5fd;transform:translateY(-1px)}
.clientNotePremiumV3243{border-left:5px solid #f5c542;background:#fffbeb;border-radius:18px;padding:13px;margin:12px 0;color:#713f12}.clientTimelineV3243{margin-top:14px;display:grid;gap:10px}.clientTimelineItemV3243{position:relative;padding:12px 12px 12px 42px;border:1px solid #e5e7eb;background:#fff;border-radius:16px}.clientTimelineItemV3243:before{content:"";position:absolute;left:15px;top:16px;width:12px;height:12px;border-radius:50%;background:#60a5fa;box-shadow:0 0 0 4px #dbeafe}.clientTimelineItemV3243 strong{display:block}.clientTimelineItemV3243 span{color:#64748b;font-size:13px;font-weight:700}
@media(max-width:700px){.clientHeroInnerV3243{align-items:flex-start}.clientCardPremiumV3243{border-radius:20px;padding:14px}.clientActionsV3243 button,.clientActionsV3243 a{width:100%}}

/* ==========================================================
   V32.4.3 — Planning Premium / Laura UI
   Amélioration visuelle uniquement : planning plus doux, coloré et lisible.
   Aucun changement Firebase/Auth.
========================================================== */
#planningArea .planningProPanel,
#planningArea .panel{
  position:relative;
  overflow:hidden;
}
#planningArea .planningProPanel:before,
#planningArea > .panel:before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:7px;
  background:linear-gradient(90deg,#f59e0b,#f5c542,#8b5cf6,#22c55e,#38bdf8);
  pointer-events:none;
}
.planningHeroPro{
  background:linear-gradient(135deg,rgba(245,197,66,.22),rgba(139,92,246,.14),rgba(56,189,248,.12));
  border:1px solid rgba(245,197,66,.35);
  border-radius:24px;
  padding:20px;
  margin:8px 0 16px;
  box-shadow:0 18px 40px rgba(17,24,39,.08);
}
.planningHeroPro h2{font-size:30px;margin:0 0 6px;letter-spacing:-.03em}
.planningHeroPro p{font-size:15px;color:#6b7280;margin:0}
.planningStatsPro,.planningStats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(165px,1fr));
  gap:14px;
  margin:16px 0;
}
.planningStatPro,.planningStat{
  border:1px solid rgba(229,231,235,.9);
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(248,250,252,.9));
  border-radius:22px;
  padding:16px;
  box-shadow:0 14px 32px rgba(15,23,42,.07);
  position:relative;
  overflow:hidden;
}
.planningStatPro:after,.planningStat:after{
  content:"";position:absolute;right:-22px;top:-22px;width:70px;height:70px;border-radius:999px;background:rgba(245,197,66,.15);
}
.planningStatPro b,.planningStat b,.planningStat strong{display:block;font-size:28px;line-height:1;color:#111827}
.planningStatPro span,.planningStat span{display:block;margin-top:6px;color:#6b7280;font-weight:800;font-size:13px}
.planningWeekPro{
  display:grid;
  grid-template-columns:repeat(7,minmax(110px,1fr));
  gap:10px;
  margin:14px 0 18px;
  overflow-x:auto;
  padding-bottom:3px;
}
.planningDayPro{
  min-width:110px;
  margin:0;
  padding:14px 12px;
  border-radius:20px;
  background:rgba(255,255,255,.82);
  color:#111827;
  border:1px solid rgba(229,231,235,.95);
  box-shadow:0 10px 24px rgba(15,23,42,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.planningDayPro:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(15,23,42,.11);border-color:rgba(245,197,66,.65)}
.planningDayPro.today{background:linear-gradient(135deg,#111827,#1f2937);color:white;border-color:#f5c542}
.planningDayPro b{display:block;text-transform:capitalize}
.planningDayPro span{display:block;font-size:13px;opacity:.76;margin-top:4px}
.planningDayPro em{display:inline-grid;place-items:center;min-width:26px;height:26px;margin-top:10px;border-radius:999px;background:#f5c542;color:#111827;font-style:normal;font-weight:950}
.planningToolbarPro{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  gap:12px;
  align-items:center;
  margin:15px 0;
}
#planningSearchPro{
  border-radius:18px;
  border:1px solid rgba(209,213,219,.9);
  background:rgba(255,255,255,.9);
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}
.planningFilters{display:flex;gap:8px;flex-wrap:wrap}
.planningFilter{margin:0;border-radius:999px;background:#eef2ff;color:#3730a3;padding:10px 14px;box-shadow:none}
.planningFilter.active{background:linear-gradient(135deg,#111827,#374151);color:white;border:1px solid rgba(245,197,66,.65)}
.planningDayGroupPro{
  margin:18px 0 22px;
  padding:16px;
  border-radius:26px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(229,231,235,.8);
  box-shadow:0 18px 42px rgba(15,23,42,.06);
}
.planningDayGroupPro > h3{
  margin:0 0 12px;
  font-size:18px;
  display:flex;align-items:center;gap:8px;
}
.planningDayGroupPro > h3:before{content:"📅"}
.planningJobPro{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:14px;
  border:1px solid rgba(229,231,235,.92);
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,250,252,.92));
  border-radius:24px;
  padding:14px;
  margin:12px 0;
  box-shadow:0 14px 32px rgba(15,23,42,.08);
  transition:transform .18s ease, box-shadow .18s ease;
  position:relative;
  overflow:hidden;
}
.planningJobPro:hover{transform:translateY(-2px);box-shadow:0 22px 42px rgba(15,23,42,.13)}
.planningJobPro:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:#60a5fa}
.planningJobPro.done:before{background:#22c55e}.planningJobPro.current:before,.planningJobPro.progress:before{background:#f59e0b}.planningJobPro.urgent:before{background:#ef4444}.planningJobPro.planned:before{background:#8b5cf6}
.planningTimePro{
  border-radius:18px;
  background:linear-gradient(135deg,#111827,#374151);
  color:white;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:82px;
  box-shadow:inset 0 0 0 1px rgba(245,197,66,.26);
}
.planningTimePro b{font-size:22px}.planningTimePro span{font-size:13px;color:#d1d5db;margin-top:4px}
.planningJobTopPro{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.planningJobTopPro h3{margin:2px 0 6px;font-size:19px;letter-spacing:-.02em}
.planningBadgePro{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:950;white-space:nowrap;background:#e5e7eb;color:#111827}
.planningBadgePro.done{background:#dcfce7;color:#166534}.planningBadgePro.current,.planningBadgePro.progress{background:#ffedd5;color:#9a3412}.planningBadgePro.urgent{background:#fee2e2;color:#991b1b}.planningBadgePro.planned{background:#ede9fe;color:#5b21b6}
.planningClientPro{font-weight:900;margin:0 0 8px;color:#334155}
.planningMetaPro{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.planningMetaPro span{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:6px 10px;font-weight:800;font-size:13px;color:#475569}
.planningNotesPro{background:#fffbeb;border:1px solid #fde68a;border-radius:16px;padding:10px 12px;color:#92400e;font-weight:700}
.planningActionsPro{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.planningActionsPro button,.planningActionsPro a{margin-top:0;border-radius:14px;padding:10px 13px;text-decoration:none}
.planningDepartBoxPro:not([hidden]){display:block;margin:16px 0}
.planningDepartInnerPro{background:linear-gradient(135deg,#111827,#1f2937);color:white;border-radius:26px;padding:18px;border:1px solid rgba(245,197,66,.45);box-shadow:0 20px 46px rgba(15,23,42,.2)}
.planningDepartActionsPro{display:flex;gap:8px;flex-wrap:wrap}.planningDepartActionsPro button,.planningDepartActionsPro a{margin-top:0}
.planningEmptyPro{padding:24px;border-radius:22px;background:#fff;border:1px dashed #cbd5e1;color:#64748b;text-align:center;font-weight:900}
@media(max-width:760px){
  .planningToolbarPro{grid-template-columns:1fr}
  .planningWeekPro{grid-template-columns:repeat(7,110px)}
  .planningJobPro{grid-template-columns:1fr}.planningTimePro{min-height:auto;align-items:flex-start;padding:12px 14px}.planningJobTopPro{flex-direction:column}.planningBadgePro{align-self:flex-start}
}


/* ==========================================================
   V32.4.4 DASHBOARD PREMIUM - BONJOUR LES ZOBETTES
========================================================== */
.voltaPremiumDashboard{position:relative;overflow:hidden;border:1px solid rgba(245,197,66,.35);background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(239,246,255,.96) 45%,rgba(255,251,235,.96));box-shadow:0 24px 60px rgba(15,23,42,.12);margin-bottom:18px}
.voltaPremiumDashboard:before{content:"";position:absolute;inset:-80px -120px auto auto;width:260px;height:260px;background:radial-gradient(circle,rgba(245,197,66,.35),transparent 70%);pointer-events:none}.voltaPremiumDashboard:after{content:"";position:absolute;left:-80px;bottom:-120px;width:260px;height:260px;background:radial-gradient(circle,rgba(96,165,250,.22),transparent 70%);pointer-events:none}
.vpdHero{position:relative;z-index:1;display:grid;grid-template-columns:1fr 220px;gap:18px;align-items:stretch}.vpdEyebrow{text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#a16207;margin:0 0 8px;font-size:12px}.vpdHero h2{font-size:36px;line-height:1.05;margin:0;color:#0f172a}.vpdDate{font-weight:900;color:#334155;margin:10px 0 4px}.vpdSub{color:#64748b;margin:0;max-width:680px}.vpdHeroCard{border-radius:24px;background:linear-gradient(135deg,#111827,#1e293b);color:white;padding:20px;display:grid;align-content:center;box-shadow:0 18px 40px rgba(17,24,39,.25)}.vpdHeroCard span{color:#f5c542;font-weight:900}.vpdHeroCard strong{font-size:42px;line-height:1;margin:8px 0}.vpdHeroCard small{color:#cbd5e1;font-weight:800}
.vpdKpis{position:relative;z-index:1;display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:18px}.vpdKpi{margin:0;text-align:left;border:0;border-radius:22px;padding:16px;background:white;color:#0f172a;box-shadow:0 14px 35px rgba(15,23,42,.08);transition:transform .2s ease,box-shadow .2s ease}.vpdKpi:hover{transform:translateY(-3px);box-shadow:0 20px 45px rgba(15,23,42,.13)}.vpdKpi span{font-size:25px;display:block}.vpdKpi strong{display:block;font-size:25px;margin:8px 0 2px}.vpdKpi small{color:#64748b;font-weight:900}.kpiMoney{background:linear-gradient(135deg,#fff7ed,#fffbeb)}.kpiQuote{background:linear-gradient(135deg,#f5f3ff,#eff6ff)}.kpiPaid{background:linear-gradient(135deg,#ecfdf5,#f0fdf4)}.kpiUnpaid{background:linear-gradient(135deg,#fff7ed,#fef2f2)}.kpiStock{background:linear-gradient(135deg,#f0fdf4,#ecfeff)}.kpiPlan{background:linear-gradient(135deg,#eff6ff,#f5f3ff)}
.vpdGrid{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-top:18px}.vpdBox{border:1px solid rgba(226,232,240,.9);background:rgba(255,255,255,.78);backdrop-filter:blur(10px);border-radius:22px;padding:16px}.vpdBox h3{margin:0 0 12px;color:#0f172a}.vpdActions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.vpdActions button{margin:0;border-radius:16px;background:linear-gradient(135deg,#111827,#334155);box-shadow:0 10px 24px rgba(15,23,42,.16)}.vpdActions button:nth-child(odd){background:linear-gradient(135deg,#f5c542,#f59e0b);color:#111827}.vpdAlerts{display:grid;gap:8px}.vpdAlerts p{margin:0;padding:10px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;font-weight:850;color:#334155}.vpdProgress{height:18px;border-radius:999px;background:#e2e8f0;overflow:hidden;border:1px solid #cbd5e1}.vpdProgress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#f5c542,#22c55e,#38bdf8);border-radius:999px;transition:width .5s ease}.vpdGoal p{margin:12px 0 0;color:#475569;font-weight:850}
@media(max-width:1050px){.vpdHero,.vpdGrid{grid-template-columns:1fr}.vpdKpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.vpdKpis,.vpdActions{grid-template-columns:1fr}.vpdHero h2{font-size:30px}.vpdHeroCard strong{font-size:34px}}


/* V32.4.5 Dashboard Premium correctifs */
.vpdActions button{min-height:46px;text-align:left}
.vpdAlerts{display:grid;gap:8px}
.vpdAlertBtn{width:100%;margin:0;text-align:left;background:#fff;border:1px solid rgba(17,24,39,.10);color:#111827;border-radius:14px;padding:12px 14px;box-shadow:0 8px 20px rgba(15,23,42,.06)}
.vpdAlertBtn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.10)}
.vpdGoalEdit{margin-top:14px;font-size:14px}
.vpdGoalEdit input{margin-top:6px}
#vpdSaveGoalBtn{margin-top:8px;width:100%}

/* V33.0.2 : correction douce du badge version, sans toucher à la connexion */
header .version{
  position:relative;
  display:inline-block;
  color:transparent !important;
  user-select:none;
}
header .version::after{
  content:"VERSION V33.0.2 · Dashboard Premium stable";
  color:#111827;
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  pointer-events:none;
}

/* V33.0.2 : dashboard stable, pas de saut visuel */
#voltaPremiumDashboard{margin:18px 0;overflow:hidden}
.voltaPremiumDashboard *{transition:background-color .18s ease, box-shadow .18s ease, transform .18s ease}
#voltaPremiumDashboard .vpdClock, #vpdClock{font-variant-numeric:tabular-nums}
header .version{color:#111827!important;font-size:12px!important;position:static!important}
header .version::after{content:none!important}

/* V33.0.2 : stabilisation tableau de bord */
#voltaPremiumDashboard{margin:18px 0;position:relative;z-index:1;transform:none!important;animation:none!important}
#voltaPremiumDashboard, #voltaPremiumDashboard *{box-sizing:border-box}
#voltaPremiumDashboard .vpdKpis, #voltaPremiumDashboard .vpdGrid{align-items:stretch}
#vpdClock{font-variant-numeric:tabular-nums;min-width:70px;display:inline-block}
header .version{color:#111827!important;font-size:12px!important;position:static!important}
header .version::before, header .version::after{content:none!important}

/* V33.0.2 : header premium reconstruit et stable */
#voltaCleanHeader{background:linear-gradient(135deg,#0f172a 0%,#111827 52%,#26324a 100%) !important;color:#fff;padding:22px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid rgba(245,197,66,.25);box-shadow:0 14px 36px rgba(15,23,42,.22);position:relative;overflow:hidden;transform:none!important;animation:none!important}
#voltaCleanHeader::before,#voltaCleanHeader::after{content:"";position:absolute;pointer-events:none;animation:none!important}
#voltaCleanHeader::before{left:-90px;top:-100px;width:240px;height:240px;background:radial-gradient(circle,rgba(245,197,66,.25),transparent 62%)}
#voltaCleanHeader::after{right:-120px;bottom:-130px;width:300px;height:300px;background:radial-gradient(circle,rgba(59,130,246,.20),transparent 62%)}
.voltaCleanBrand{display:flex;gap:14px;align-items:center;position:relative;z-index:1;transform:none!important;animation:none!important}
.voltaCleanLogo{width:58px;height:58px;background:linear-gradient(145deg,#050505,#1f2937);border:2px solid #f5c542;border-radius:18px;display:grid;place-items:center;font-size:34px;color:#f5c542;box-shadow:0 0 0 4px rgba(245,197,66,.12),0 14px 30px rgba(0,0,0,.28);flex:0 0 auto;transform:none!important;animation:none!important}
.voltaCleanTitleBlock h1{margin:0;font-size:28px;line-height:1.05;letter-spacing:-.04em}.voltaCleanTitleBlock p{margin:5px 0 0;color:#d1d5db;line-height:1.15}
#voltaHeaderVersion{display:inline-flex!important;align-items:center;justify-content:center;margin-top:7px;background:#f5c542!important;color:#111827!important;border-radius:999px;padding:6px 14px;font-weight:900;font-size:12px!important;line-height:1.15;white-space:nowrap;min-height:26px;min-width:310px;box-shadow:none!important;transform:none!important;animation:none!important;position:static!important}
#voltaHeaderVersion::before,#voltaHeaderVersion::after{content:none!important}
@media(max-width:950px){#voltaCleanHeader{padding:18px;align-items:flex-start}.voltaCleanBrand{align-items:flex-start}.voltaCleanTitleBlock h1{font-size:27px}#voltaHeaderVersion{min-width:0;max-width:100%;white-space:normal;text-align:center}}

/* V33.0.2 - pastille FRR/ZFRR dans le résumé client : vraie couleur selon statut */
.pill.v286ZfrrYes{border:2px solid #16a34a!important;background:#dcfce7!important;color:#166534!important;box-shadow:0 8px 18px rgba(22,163,74,.16)}
.pill.v286ZfrrNo{border:2px solid #b91c1c!important;background:#fee2e2!important;color:#991b1b!important}
.pill.v286ZfrrUnknown{border:2px solid #f5c542!important;background:#fffbeb!important;color:#92400e!important}

/* V33.0.2 - Taux de marge devis */
#previewMarginRate{font-weight:900;color:#111827}
.preview p.marginRatePreviewV3302{background:#fffbeb;border:1px solid rgba(245,197,66,.55);border-radius:12px;padding:8px 10px}


/* V33.0.5 - Articles intelligents */
.smartArticlePanel .quickbox{border:1px solid rgba(245,197,66,.55);background:linear-gradient(135deg,#fffdf2,#ffffff)}
.smartArticleStats .stockStatsPro{margin:14px 0}
.smartArticleToolbar{margin:12px 0 16px}.smartArticleToolbar input{max-width:640px}
.smartArticleCard{border-left:5px solid #f5c542;background:linear-gradient(135deg,#ffffff,#fffbeb)}
.smartPriceSummary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0}
.smartPriceSummary div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:12px}
.smartPriceSummary strong{display:block;font-size:22px}.smartPriceSummary span{color:#6b7280;font-weight:800;font-size:13px}
.smartPriceDetails{display:grid;gap:6px;margin-top:10px}.smartPriceLine{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e5e7eb;padding:8px 0}.smartPriceLine span{font-weight:900;color:#111827}.smartImportHint{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:12px;padding:10px;margin-top:10px;font-weight:800;color:#14532d}
@media(max-width:700px){.smartPriceLine{display:block}.smartPriceLine span{display:block;margin-top:4px}}


/* V33.0.5 - Assistant achat sans onglet */
.smartImportSummary{background:#111827;color:white;border:1px solid rgba(245,197,66,.75);border-radius:14px;padding:12px;margin:0 0 12px;font-weight:900;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.smartImportHint{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:12px;padding:10px;margin-top:10px;font-weight:800;color:#14532d}
button[data-stock-history]{background:#e5e7eb;color:#111827}


/* V33.0.9 - Stock fournisseur + indicateurs prix */
.stockSupplierPanelV3309{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0;padding:12px;border:1px solid rgba(17,24,39,.08);border-radius:18px;background:linear-gradient(180deg,#ffffff,#f8fafc);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.stockSupplierPanelV3309 div{border-radius:14px;background:#fff;padding:10px;border:1px solid #e5e7eb;min-height:64px}
.stockSupplierPanelV3309 span{display:block;color:#6b7280;font-weight:800;font-size:12px;margin-bottom:5px}
.stockSupplierPanelV3309 strong{display:block;color:#111827;font-size:15px;line-height:1.2}
.stockPriceStatusV3309{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:8px 12px;font-weight:900;margin:4px 0 12px;border:1px solid transparent;font-size:14px}
.stockPriceStatusV3309.best{background:#dcfce7;color:#166534;border-color:#86efac}
.stockPriceStatusV3309.ok{background:#ffedd5;color:#9a3412;border-color:#fdba74}
.stockPriceStatusV3309.high{background:#fee2e2;color:#991b1b;border-color:#fca5a5}
.stockPriceStatusV3309.unknown{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}
.stockBestPriceV3309{box-shadow:0 0 0 2px rgba(34,197,94,.18),0 12px 30px rgba(0,0,0,.06)!important}
.stockOkPriceV3309{box-shadow:0 0 0 2px rgba(249,115,22,.16),0 12px 30px rgba(0,0,0,.06)!important}
.stockHighPriceV3309{box-shadow:0 0 0 2px rgba(239,68,68,.20),0 12px 30px rgba(0,0,0,.06)!important}
@media(max-width:720px){.stockSupplierPanelV3309{grid-template-columns:1fr 1fr}.stockSupplierPanelV3309 strong{font-size:14px}.stockPriceStatusV3309{font-size:13px}}

/* V33.1.0 - Cartes stock fournisseur visibles */
.stockSupplierPanelV3310{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:14px 0;padding:12px;border:1px solid rgba(17,24,39,.10);border-radius:18px;background:linear-gradient(135deg,#ffffff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.stockSupplierPanelV3310 div{background:#fff;border:1px solid #eef2f7;border-radius:15px;padding:10px 12px;min-height:72px}
.stockSupplierPanelV3310 span{display:block;color:#64748b;font-size:12px;font-weight:900;margin-bottom:4px}
.stockSupplierPanelV3310 strong{display:block;color:#111827;font-size:14px;line-height:1.25}
.stockPriceStatusV3310{display:inline-flex;align-items:center;gap:6px;margin:2px 0 12px;padding:9px 12px;border-radius:999px;font-weight:950;font-size:13px}
.stockPriceStatusV3310.best{background:#dcfce7;color:#166534}.stockPriceStatusV3310.ok{background:#ffedd5;color:#9a3412}.stockPriceStatusV3310.high{background:#fee2e2;color:#991b1b}.stockPriceStatusV3310.unknown{background:#e5e7eb;color:#374151}
.stockBestPriceV3310{border-color:#22c55e!important}.stockOkPriceV3310{border-color:#f59e0b!important}.stockHighPriceV3310{border-color:#ef4444!important}
.importSupplierFixV3310{font-size:13px;font-weight:900;color:#64748b;margin-top:4px}

/* V33.1.1 - Stock fournisseur compact */
.stockSupplierCompactV3311{margin:12px 0 10px;padding:12px 14px;border-radius:18px;font-weight:800;line-height:1.35;border:1px solid rgba(17,24,39,.08);box-shadow:0 8px 20px rgba(17,24,39,.06)}
.stockSupplierCompactV3311 span{display:block;margin-top:4px;font-size:.92em;color:#4b5563;font-weight:750}
.stockSupplierCompactV3311.best{background:#ecfdf5;color:#065f46;border-color:#bbf7d0}.stockSupplierCompactV3311.best span{color:#047857}
.stockSupplierCompactV3311.ok{background:#fffbeb;color:#92400e;border-color:#fde68a}.stockSupplierCompactV3311.ok span{color:#92400e}
.stockSupplierCompactV3311.high{background:#fef2f2;color:#991b1b;border-color:#fecaca}.stockSupplierCompactV3311.high span{color:#991b1b}
.stockSupplierCompactV3311.unknown{background:#f8fafc;color:#475569;border-color:#e2e8f0}
.stockSupplierPanelV3310,.stockPriceStatusV3310{display:none!important}
.importSupplierFixV3311{font-weight:800;color:#64748b;margin:6px 0 14px;line-height:1.2}
@media(max-width:700px){.stockSupplierCompactV3311{font-size:14px;padding:10px 12px;border-radius:15px}.stockSupplierCompactV3311 span{font-size:13px}}

/* V33.11 - Assistant devis intelligent */
.voltaQuoteAssistantV3311{border:2px solid rgba(245,197,66,.55);background:linear-gradient(135deg,#fffaf0,#ffffff);box-shadow:0 18px 42px rgba(17,24,39,.08)}
.voltaAssistHeadV3311{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.voltaAssistHeadV3311 h3{margin:0 0 4px}.voltaPackRowV3311{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.voltaPackRowV3311 button{margin:0;background:#eef2ff;color:#111827}.voltaAssistResultsV3311{display:grid;gap:8px;margin:10px 0 16px}.voltaAssistItemV3311{display:grid;grid-template-columns:1fr auto 86px;gap:8px;align-items:center;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:10px}.voltaAssistItemV3311 b{display:block}.voltaAssistItemV3311 small{display:block;color:#6b7280;font-weight:700;margin-top:3px}.voltaAssistItemV3311 button{margin:0;background:#f5c542;color:#111827}.voltaAssistItemV3311 input{margin:0;text-align:center}.voltaQuoteProfitV3311{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px}.voltaProfitBadgeV3311{display:inline-flex;border-radius:999px;padding:8px 12px;font-weight:950;margin-bottom:10px}.voltaProfitBadgeV3311.good{background:#dcfce7;color:#166534}.voltaProfitBadgeV3311.warn{background:#fef3c7;color:#92400e}.voltaProfitBadgeV3311.bad{background:#fee2e2;color:#991b1b}.voltaProfitGridV3311{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.voltaProfitGridV3311 span{border:1px solid #e5e7eb;border-radius:14px;padding:10px;color:#6b7280;font-weight:800}.voltaProfitGridV3311 b{display:block;color:#111827;font-size:18px;margin-top:4px}@media(max-width:850px){.voltaAssistHeadV3311{display:block}.voltaAssistItemV3311{grid-template-columns:1fr}.voltaAssistItemV3311 input{max-width:120px}.voltaProfitGridV3311{grid-template-columns:1fr 1fr}}


/* V33.16 - Assistant de tâches / rappels */
.taskNavBadgeV3316{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:6px;padding:0 7px;border-radius:999px;background:#f5c542;color:#111827;font-size:12px;font-weight:900}
.tasksPanelV3316 .taskFormV3316{border:2px solid #f5c542;background:#fffbeb}
.taskTabsV3316{margin-top:14px}.taskCardV3316{border:1px solid #e5e7eb;border-left:6px solid #9ca3af;border-radius:16px;padding:14px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.05)}
.taskCardV3316 h3{margin:0 0 6px}.taskCardV3316 p{margin:4px 0}.taskCardV3316.late{border-left-color:#b91c1c;background:#fff7f7}.taskCardV3316.today{border-left-color:#f59e0b;background:#fffbeb}.taskCardV3316.future{border-left-color:#15803d}.taskCardV3316.done{opacity:.72;border-left-color:#6b7280;background:#f9fafb}.taskTopV3316{display:flex;justify-content:space-between;gap:12px}.taskActionsV3316{margin-top:10px}.homeTasksBoxV3316{border:2px solid #f5c542}.homeTasksListV3316{display:grid;gap:8px}.taskSummaryV3316{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.taskSummaryV3316 span{display:inline-block;background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;padding:6px 10px;font-weight:900;font-size:13px}.homeTaskBtnV3316{margin:0;text-align:left;background:#f9fafb;color:#111827;border:1px solid #e5e7eb;border-radius:14px;padding:10px 12px}.homeTaskBtnV3316 b{display:block}.homeTaskBtnV3316 small{display:block;color:#6b7280;margin-top:3px}.clientTaskBoxV3316{border:2px solid #f5c542;background:#fffbeb}.clientTaskBoxV3316 .list{margin-top:12px}@media(max-width:950px){.taskTopV3316{display:block}.taskSummaryV3316{display:grid}.taskCardV3316 .actions button{width:100%}}


/* V33.26 - classement mensuel des frais */
.expenseMonthV3326{margin:18px 0 26px;padding:14px;border:1px solid #e5e7eb;border-radius:20px;background:linear-gradient(180deg,#f8fafc,#fff)}
.expenseMonthHeadV3326{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:12px;padding:12px 14px;border-radius:16px;background:#111827;color:#fff}
.expenseMonthHeadV3326 h3,.expenseMonthHeadV3326 p{margin:0}.expenseMonthHeadV3326 p{color:#d1d5db;margin-top:3px}
.expenseMonthTotalsV3326{text-align:right}.expenseMonthTotalsV3326 b{display:block;font-size:20px;color:#f5c542}.expenseMonthTotalsV3326 span{display:block;font-size:13px;color:#e5e7eb;margin-top:3px}
.expenseMonthV3326 .expenseCard{margin-top:10px}
@media(max-width:700px){.expenseMonthHeadV3326{align-items:flex-start;flex-direction:column}.expenseMonthTotalsV3326{text-align:left}}


/* V33.27 - Notes client modifiables et supprimables */
.voltaClientNotesList{display:grid;gap:10px;margin-top:14px}
.voltaClientNoteItem{border:1px solid #dbe4f0;border-left:5px solid #3b82f6;border-radius:16px;padding:13px;background:rgba(248,250,252,.95);box-shadow:0 7px 18px rgba(15,23,42,.06)}
.voltaClientNoteHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.voltaClientNoteHead strong{display:block;font-size:15px}
.voltaClientNoteHead span{display:block;color:#64748b;font-size:12px;font-weight:800;margin-top:3px}
.voltaClientNoteItem p{margin:9px 0;white-space:pre-wrap;line-height:1.45}
.voltaClientNoteItem small{display:block;color:#64748b;word-break:break-word}
.voltaClientNoteActions{margin-top:9px}
.voltaClientNoteActions button{margin-top:0;padding:8px 11px;font-size:13px}
@media(max-width:700px){.voltaClientNoteActions button{width:100%}}


/* V34.0 - lisibilité du taux de marge */
#previewMarginRate.marginExcellentV3400{color:#15803d!important}
#previewMarginRate.marginCorrectV3400{color:#b45309!important}
#previewMarginRate.marginLowV3400{color:#b91c1c!important}


/* V34.3 - Cartes stock plus lisibles */
.stockGridPro{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important;align-items:start}
.stockNumbers{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.stockNumbers>div{min-width:0;padding:12px!important;display:flex;flex-direction:column;justify-content:center}
.stockNumbers strong{font-size:20px!important;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
.stockNumbers span{font-size:12px!important;line-height:1.25;white-space:normal}
.stockNumbers>div:last-child{grid-column:1/-1}
.stockSupplierCompactV3311{overflow-wrap:anywhere}
@media(max-width:760px){.stockGridPro{grid-template-columns:1fr!important}.stockNumbers{grid-template-columns:1fr 1fr!important}}
@media(max-width:430px){.stockNumbers{grid-template-columns:1fr!important}.stockNumbers>div:last-child{grid-column:auto}}

/* V34.4 - aperçus d'import plus propres */
#importPreview .card h3{overflow-wrap:anywhere}
#importPreview .card p{line-height:1.45}


/* V34.6 - Tâches simplifiées */
.taskUrgentBannerV346{width:100%;margin:0 0 14px;padding:14px 18px;text-align:left;background:linear-gradient(135deg,#fff7ed,#ffedd5)!important;color:#9a3412!important;border:1px solid #fdba74!important;border-radius:16px!important;box-shadow:0 10px 24px rgba(234,88,12,.12)!important}
.taskCardV3316.late{border-left:7px solid #dc2626!important;background:#fff7f7!important}
.taskCardV3316.today{border-left:7px solid #f59e0b!important;background:#fffbeb!important}
.taskCardV3316.done{border-left:7px solid #16a34a!important;background:#f0fdf4!important;opacity:.86}
.taskCardV3316.future{border-left:7px solid #94a3b8!important}
.tasksPanelV3316 .sectionHead{align-items:flex-start}
@media(max-width:700px){.taskUrgentBannerV346{font-size:14px}.taskFormV3316 .grid{grid-template-columns:1fr!important}}

/* V34.7 - détail et réconciliation des frais */
.v347ExpenseAuditBox{margin-top:16px;border:2px solid #f5c542!important;background:#fffdf4!important}
.v347ExpenseAuditBox .sectionHead{align-items:flex-start}.v347ExpenseAuditBox .actions{justify-content:flex-end}.v347ExpenseAuditBox .actions button{margin-top:0}
#v347ExpenseDetail{margin-top:14px}.v347AuditTotals{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#111827;color:#fff;border-radius:15px;padding:13px 15px}.v347AuditTotals span{color:#d1d5db;font-weight:800}
.v347AuditList{display:grid;gap:8px;margin-top:10px}.v347AuditRow{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:11px 13px}.v347AuditRow small{display:block;color:#6b7280;margin-top:3px}.v347AuditRow>strong{white-space:nowrap}.v347AuditRow.excluded{background:#fff7f7;border-color:#fecaca}.v347Excluded{margin-top:12px}.v347Excluded summary{cursor:pointer;font-weight:900;color:#991b1b}
@media(max-width:700px){.v347ExpenseAuditBox .sectionHead,.v347AuditTotals,.v347AuditRow{flex-direction:column;align-items:flex-start}.v347ExpenseAuditBox .actions{width:100%}.v347ExpenseAuditBox .actions button{width:100%}}
