:root{--bg:#f3f6fb;--card:#fff;--text:#1f2937;--line:#dbe3ee;--accent:#1d4ed8;--danger:#b91c1c;--muted:#6b7280}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--text);display:flex}
a{color:var(--accent);text-decoration:none}button{background:var(--accent);color:#fff;border:0;padding:10px 14px;border-radius:10px;cursor:pointer}button.danger{background:var(--danger)}
.sidebar{width:250px;min-height:100vh;background:#0f172a;color:#fff;padding:24px;position:sticky;top:0}.sidebar a{display:block;color:#e5e7eb;padding:10px 0}.sidebar h1{font-size:22px;margin-top:0}.content{flex:1;padding:24px}.auth-layout{max-width:520px;margin:40px auto}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 10px 30px rgba(15,23,42,.06)}.auth-card{margin-top:40px}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px}.flash.success{background:#dcfce7}.flash.danger{background:#fee2e2}.flash.info{background:#dbeafe}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.kpi{background:var(--card);border:1px solid var(--line);padding:18px;border-radius:18px}.kpi span{display:block;color:var(--muted);font-size:14px}.kpi strong{font-size:24px;display:block;margin-top:6px}.kpi small{color:var(--muted)}
.gradient-card{background:linear-gradient(135deg,#dbeafe,#eff6ff)}.alert-kpi{background:linear-gradient(135deg,#fee2e2,#fff7ed)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.form-grid input,.form-grid textarea,.form-grid select{padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}.form-grid textarea{min-height:90px}.full{grid-column:1 / -1}
.item-box{border:1px dashed var(--line);padding:12px;border-radius:12px}.item-row{display:grid;grid-template-columns:2fr .6fr .8fr;gap:8px;margin-top:8px}.inline{display:inline}.pay-form{display:flex;gap:8px;flex-wrap:wrap}.demo-box{margin-top:16px;padding:12px;background:#f3f4f6;border-radius:12px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.full-width{grid-column:1 / -1}.chart-card{min-height:320px}.chart-card canvas{max-height:250px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-head h3{margin:0}.section-head span{color:var(--muted);font-size:14px}
.progress-line{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin:6px 0}.progress-line div{height:100%;background:#2563eb}.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px}.stack-list{display:grid;gap:12px}.mini-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fafcff}.row-between{display:flex;justify-content:space-between;gap:8px;color:var(--muted);margin:6px 0}
.planning-grid{display:grid;grid-template-columns:360px 1fr;gap:20px}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;color:var(--muted)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}.dot.chantier{background:#2563eb}.dot.conge{background:#f59e0b}.dot.refuse{background:#ef4444}.event-details{margin-top:14px;padding:14px;background:#f8fafc;border:1px solid var(--line);border-radius:14px;color:#334155}
#planningCalendar{background:#fff;border-radius:16px;padding:10px}.fc .fc-toolbar-title{font-size:1.2rem}.fc .fc-button{border-radius:10px;border:0;background:#1d4ed8}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background:#1e40af}.fc-theme-standard td,.fc-theme-standard th,.fc-theme-standard .fc-scrollgrid{border-color:#e5e7eb}
@media (max-width:1100px){.dashboard-grid,.planning-grid{grid-template-columns:1fr}.full-width{grid-column:auto}}
@media (max-width:900px){body{display:block}.sidebar{width:auto;min-height:auto;position:static}.grid-2,.form-grid{grid-template-columns:1fr}.content{padding:16px}}


.mobile-menu-btn{display:none;position:fixed;top:12px;left:12px;z-index:50;background:#111827;color:#fff;border:none;border-radius:10px;padding:10px 12px}
.hint{font-size:.92rem;color:#6b7280;margin-top:12px}
.legend .dot.temps{background:#10b981}
.form-grid textarea{min-height:80px}
@media (max-width: 900px){
  .mobile-menu-btn{display:block}
  .sidebar{transform:translateX(-110%);transition:.2s ease;position:fixed;z-index:40;height:100vh}
  .sidebar.open{transform:translateX(0)}
  .content{margin-left:0!important;padding-top:54px}
}


/* V6.3 */
body{
  background: linear-gradient(180deg,#f5f8ff 0%,#eef3fb 100%);
}
.sidebar{
  background: linear-gradient(180deg,#0f172a 0%, #1e293b 100%);
  color:#fff;
}
.sidebar h1{color:#fff}
.sidebar nav a{
  display:block;
  padding:10px 12px;
  margin-bottom:8px;
  border-radius:12px;
  color:#dbeafe;
}
.sidebar nav a:hover{
  background:rgba(255,255,255,.08);
}
.content{
  padding:24px;
}
.hero-banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:22px;
  border-radius:24px;
  background:linear-gradient(135deg,#ffffff,#eef4ff);
  border:1px solid #dce7fb;
  box-shadow:0 16px 30px rgba(37,99,235,.08);
  margin-bottom:18px;
}
.eyebrow{
  margin:0 0 6px 0;
  font-size:.82rem;
  font-weight:700;
  color:#2563eb;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.hero-banner h2{margin:0 0 6px 0}
.hero-text{margin:0;color:#64748b}
.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-bottom:18px;
}
.kpi-card{
  padding:18px;
  border-radius:22px;
  background:#fff;
  border:1px solid #dfe7f2;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.kpi-card span{
  display:block;
  color:#64748b;
  font-size:.9rem;
}
.kpi-card strong{
  display:block;
  margin-top:8px;
  font-size:2rem;
}
.kpi-card.blue{background:linear-gradient(180deg,#eaf2ff,#ffffff)}
.kpi-card.indigo{background:linear-gradient(180deg,#eef0ff,#ffffff)}
.kpi-card.amber{background:linear-gradient(180deg,#fff4df,#ffffff)}
.kpi-card.emerald{background:linear-gradient(180deg,#e7fbf2,#ffffff)}

.dashboard-grid-v63{
  display:grid;
  grid-template-columns:1.25fr .95fr;
  gap:18px;
}
.project-item{
  padding:14px;
  border:1px solid #e5edf7;
  border-radius:18px;
  background:#fbfdff;
}
.status-badge{
  padding:5px 9px;
  border-radius:999px;
  background:#eaf2ff;
  color:#1d4ed8;
  font-size:.8rem;
  font-weight:700;
}
.quick-actions{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.action-tile{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:64px;
  border-radius:18px;
  background:linear-gradient(135deg,#f8fbff,#eef5ff);
  border:1px solid #dce7fb;
  font-weight:700;
  color:#1d4ed8;
}

.card{
  background:rgba(255,255,255,.92);
  border:1px solid #e4ebf4;
  border-radius:24px;
  box-shadow:0 14px 26px rgba(15,23,42,.05);
}
.section-head h3{
  margin:0;
  font-size:1.05rem;
}
.section-head span{
  color:#64748b;
  font-size:.9rem;
}

.legend-v63{
  padding:10px 12px;
  border-radius:14px;
  background:#f8fbff;
  border:1px solid #e5edf7;
}
.event-details-v63{
  background:linear-gradient(180deg,#fbfdff,#f4f8ff);
  border:1px solid #dce7fb;
}
#planningCalendar{
  background:#fff;
  border-radius:18px;
  padding:10px;
}
.fc .fc-toolbar-title{
  font-size:1.05rem;
  font-weight:700;
}
.fc .fc-button{
  border:none!important;
  border-radius:12px!important;
  background:#2563eb!important;
  box-shadow:none!important;
}
.fc .fc-button:hover{
  background:#1d4ed8!important;
}
.fc-theme-standard .fc-scrollgrid,
.fc-theme-standard td,
.fc-theme-standard th{
  border-color:#e6edf7!important;
}
.fc-chantier{
  border-radius:10px!important;
  box-shadow:0 6px 14px rgba(37,99,235,.22);
}
.fc-conge{
  border-radius:10px!important;
  box-shadow:0 6px 14px rgba(245,158,11,.18);
}
.fc-temps{
  opacity:.75;
}
table{
  width:100%;
  border-collapse:collapse;
}
th,td{
  padding:10px;
  border-bottom:1px solid #e9eef5;
  text-align:left;
}
.flash{
  border-radius:14px;
  padding:12px 14px;
  margin-bottom:14px;
}
.flash.success{background:#e8faf0;color:#0f766e}
.flash.danger{background:#fff1f2;color:#be123c}

@media (max-width: 1100px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .dashboard-grid-v63{grid-template-columns:1fr}
}
@media (max-width: 900px){
  .hero-banner{
    flex-direction:column;
    align-items:flex-start;
  }
  .planning-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
  }
}
@media (max-width: 680px){
  .content{padding:14px}
  .kpi-grid{grid-template-columns:1fr}
  .quick-actions{grid-template-columns:1fr}
  .card{padding:16px}
  .sidebar{width:260px}
}


/* V6.3.1 - ajustement listes déroulantes planning */
.planning-form{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.planning-form .full{
  grid-column: 1 / -1;
}
.planning-form label{
  min-width: 0;
}
.planning-form input,
.planning-form select,
.planning-form textarea{
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.planning-form select{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 36px;
}
.planning-grid .card{
  overflow: hidden;
}
@media (max-width: 900px){
  .planning-form{
    grid-template-columns: 1fr;
  }
  .planning-form .full{
    grid-column: auto;
  }
}


/* VM Renov corrected premium theme */
:root{
  --vm-bg:#0f1115;
  --vm-panel:#161a22;
  --vm-panel2:#0f131b;
  --vm-text:#e9edf5;
  --vm-muted:#a9b1c3;
  --vm-line:rgba(255,255,255,.08);
  --vm-accent:#f28b1a;
  --vm-accent2:#ffb04a;
  --vm-shadow:0 18px 50px rgba(0,0,0,.35);
}
html,body{
  font-family:"DM Sans", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1000px 600px at 20% -10%, rgba(242,139,26,.15), transparent 55%),
    radial-gradient(900px 500px at 85% 0%, rgba(255,176,74,.08), transparent 55%),
    linear-gradient(180deg,#0b0d12 0%, #0f1115 55%, #0b0d12 100%);
  color:var(--vm-text);
}
.sidebar{
  background:rgba(15,17,21,.85)!important;
  backdrop-filter: blur(14px);
  border-right:1px solid var(--vm-line);
}
.sidebar h1, .sidebar p, .sidebar small{color:var(--vm-text)!important}
.sidebar nav a{
  color:var(--vm-muted)!important;
  border:1px solid transparent;
}
.sidebar nav a:hover{
  color:var(--vm-text)!important;
  background:rgba(255,255,255,.06)!important;
  border-color:var(--vm-line);
}
.content{color:var(--vm-text)}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02))!important;
  border:1px solid var(--vm-line)!important;
  box-shadow:var(--vm-shadow)!important;
  color:var(--vm-text)!important;
}
table, th, td, p, small, label, h2, h3, strong, span, a{color:inherit}
input, select, textarea{
  background:rgba(255,255,255,.04)!important;
  color:var(--vm-text)!important;
  border:1px solid var(--vm-line)!important;
}
input::placeholder, textarea::placeholder{color:#95a0b3}
button, .ghost-btn, .vm-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 14px; border-radius:14px; border:1px solid var(--vm-line);
  background:rgba(255,255,255,.04); color:var(--vm-text); font-weight:700; transition:.2s ease;
}
.vm-btn-primary{
  background:linear-gradient(180deg, rgba(242,139,26,.92), rgba(242,139,26,.78))!important;
  border-color:rgba(242,139,26,.35)!important; color:#101114!important;
  box-shadow:0 12px 28px rgba(242,139,26,.22);
}
.vm-brand{display:flex; justify-content:center; padding:8px 0 10px}
.vm-brand img{width:150px; max-height:76px; object-fit:contain; filter: drop-shadow(0 10px 18px rgba(0,0,0,.35))}
.vm-page-head{
  margin-bottom:18px; padding:18px 20px; border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border:1px solid var(--vm-line); box-shadow:var(--vm-shadow);
}
.vm-page-head h2{margin:10px 0 8px; font-size:2rem; letter-spacing:-.4px}
.vm-page-head p{margin:0; color:var(--vm-muted)}
.vm-badge{
  display:inline-flex; align-items:center; gap:10px; padding:8px 12px; border-radius:999px;
  border:1px solid rgba(242,139,26,.25); background:rgba(242,139,26,.10);
  color:var(--vm-accent2); font-weight:800; font-size:12px; letter-spacing:.45px;
}
.vm-hero{
  display:grid; grid-template-columns:1.1fr .9fr; gap:22px; align-items:stretch; margin-bottom:20px;
}
.vm-hero-copy{
  padding:22px; border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid var(--vm-line); box-shadow:var(--vm-shadow);
}
.vm-hero-copy h2{font-size:clamp(30px, 4vw, 46px); margin:14px 0 10px; letter-spacing:-.6px}
.vm-hero-copy p{color:var(--vm-muted); line-height:1.65}
.vm-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px}
.vm-hero-visual{overflow:hidden; min-height:340px; padding:0!important}
.vm-hero-visual img{width:100%; height:100%; object-fit:cover}
.vm-kpis{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px}
.vm-kpi{padding:18px; border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border:1px solid var(--vm-line); box-shadow:var(--vm-shadow)}
.vm-kpi span{display:block; color:var(--vm-muted); font-size:13px}
.vm-kpi strong{display:block; font-size:2rem; margin-top:8px}
.vm-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.vm-quick-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px}
.vm-tile{min-height:74px; display:flex; align-items:center; justify-content:center; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid var(--vm-line); font-weight:700}
.vm-gallery{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.vm-gallery img{width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:16px; border:1px solid var(--vm-line)}
.vm-login-layout{min-height:100vh; display:grid; grid-template-columns:1.1fr .9fr; gap:24px; align-items:center}
.vm-login-left{padding:24px}
.vm-login-logo{width:180px; margin-bottom:18px; filter: drop-shadow(0 10px 18px rgba(0,0,0,.35))}
.vm-login-left p{color:var(--vm-muted)}
.vm-login-points{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}
.vm-login-points span{padding:8px 12px; border-radius:999px; border:1px solid var(--vm-line); background:rgba(255,255,255,.03)}
.section-head span,.hint, small{color:var(--vm-muted)!important}
.progress-line{background:rgba(255,255,255,.08)!important}
.progress-line div{background:linear-gradient(180deg, rgba(242,139,26,.92), rgba(242,139,26,.78))!important}
.legend-v63, .event-details-v63, #planningCalendar{background:rgba(255,255,255,.03)!important; border:1px solid var(--vm-line)!important}
.fc-theme-standard .fc-scrollgrid, .fc-theme-standard td, .fc-theme-standard th{border-color:rgba(255,255,255,.08)!important}
.fc .fc-toolbar-title, .fc-col-header-cell-cushion, .fc-daygrid-day-number{color:var(--vm-text)!important}
.fc .fc-button{background:#202632!important}
.fc .fc-button:hover{background:#2b3444!important}
.flash.success{background:rgba(6,95,70,.25)!important; color:#d1fae5!important}
.flash.danger{background:rgba(127,29,29,.28)!important; color:#fee2e2!important}
@media (max-width:980px){
  .vm-hero,.vm-grid,.vm-login-layout{grid-template-columns:1fr}
  .vm-kpis{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .vm-kpis,.vm-quick-grid,.vm-gallery{grid-template-columns:1fr}
}


/* V5 dashboard complet */
.vm-grid-charts{grid-template-columns:1fr 1fr;margin-bottom:18px}
.vm-kpi-panel{display:grid;grid-template-columns:1fr;gap:12px;align-content:center;min-height:220px}
.vm-kpi-mini{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid var(--vm-line)}
.vm-kpi-mini span{display:block;color:var(--vm-muted);font-size:.9rem}
.vm-kpi-mini strong{display:block;margin-top:6px;font-size:1.8rem}
@media (max-width: 980px){.vm-grid-charts{grid-template-columns:1fr}}


/* V6 dashboard pro */
.vm-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}
.vm-toolbar-left,.vm-toolbar-right{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.vm-filter-chip{
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--vm-line);
  background:rgba(255,255,255,.03);
  color:var(--vm-muted);
  font-weight:700;
}
.vm-filter-chip.active{
  background:rgba(242,139,26,.12);
  color:var(--vm-accent2);
  border-color:rgba(242,139,26,.25);
}
@media (max-width: 900px){
  .vm-toolbar{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* V6.1 stabilité graphiques */
.chart-shell{
  position: relative;
  width: 100%;
  min-height: 320px;
  height: 320px;
}
.chart-shell canvas{
  width: 100% !important;
  height: 100% !important;
  display: block;
}
.vm-grid-charts .card{
  overflow: hidden;
}
@media (max-width: 980px){
  .chart-shell{
    min-height: 280px;
    height: 280px;
  }
}


/* V6.2 graphes pro + export pdf */
.chart-shell{
  position: relative;
  width: 100%;
  min-height: 320px;
  height: 320px;
}
.chart-shell canvas{
  width: 100% !important;
  height: 100% !important;
  display: block;
}
.vm-toolbar-right .vm-btn{
  min-width: 140px;
}
.vm-grid-charts .card{
  overflow: hidden;
}
.vm-kpi{
  transition: transform .18s ease, border-color .18s ease;
}
.vm-kpi:hover{
  transform: translateY(-2px);
  border-color: rgba(242,139,26,.25);
}
@media (max-width: 980px){
  .chart-shell{
    min-height: 280px;
    height: 280px;
  }
}


/* V7 filtres fonctionnels */
.vm-filter-chip{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
/* --- VM RENOV Devis V4 --- */
.quote-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:22px}.quote-editor,.quote-list,.signature-card{border:1px solid #e2e8f0;box-shadow:0 14px 38px rgba(15,23,42,.06)}.section-title,.lines-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.section-title h3,.lines-head h3{margin:3px 0 0}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:#64748b}.status-pill,.mini-status{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:11px;font-weight:800;text-transform:uppercase}.quote-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.quote-meta-grid label:nth-last-of-type(-n+2){grid-column:span 2}.quote-meta-grid input,.quote-meta-grid select,.quote-bottom textarea,.signature-card input{width:100%;box-sizing:border-box}.line-labels,.quote-line{display:grid;grid-template-columns:minmax(260px,1fr) 80px 80px 105px 85px 34px;gap:8px;align-items:center}.line-labels{padding:0 8px 8px;font-size:11px;font-weight:800;color:#64748b}.quote-line{padding:10px 8px;border-top:1px solid #eef2f7}.desc-stack{display:grid;gap:5px}.desc-stack input{font-size:11px;font-weight:800;color:#2563eb;border:0;background:#eff6ff}.desc-stack textarea{min-height:58px;resize:vertical}.quote-line input,.quote-line select,.quote-line textarea{width:100%;box-sizing:border-box}.remove-line{border:0;background:#fff1f2;color:#be123c;border-radius:10px;height:34px;font-size:20px;cursor:pointer}.btn-soft,.primary-action{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:12px;padding:11px 15px;font-weight:750;cursor:pointer}.btn-soft{background:#f1f5f9;color:#0f172a}.primary-action{background:#0f172a;color:white}.quote-bottom{display:grid;grid-template-columns:1fr 240px;gap:20px;margin-top:24px}.live-total{border-radius:16px;background:#0f172a;color:white;padding:18px;display:flex;flex-direction:column}.live-total strong{font-size:26px;margin:7px 0}.live-total small{color:#94a3b8}.form-actions{display:flex;justify-content:flex-end;margin-top:20px}.quote-card{display:flex;justify-content:space-between;gap:12px;padding:15px 4px;border-bottom:1px solid #eef2f7;text-decoration:none;color:#0f172a}.quote-card>div{display:flex;flex-direction:column;gap:4px}.quote-card span{color:#64748b;font-size:13px}.quote-card-right{text-align:right;align-items:flex-end}.detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.6fr);gap:22px}.summary-info{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}.summary-info div{background:#f8fafc;border-radius:12px;padding:12px}.summary-info span{display:block;color:#64748b;font-size:11px;margin-bottom:5px}.modern-table small{color:#2563eb;font-weight:800}.detail-total{margin:20px 0 0 auto;background:#0f172a;color:white;padding:15px 20px;border-radius:14px;width:240px;display:flex;justify-content:space-between;align-items:center}.detail-total strong{font-size:20px}.signature-card p{color:#64748b;line-height:1.5}.signature-pad-wrap{position:relative;margin:12px 0;background:white;border:2px dashed #cbd5e1;border-radius:16px;height:210px;overflow:hidden}.signature-pad-wrap canvas{width:100%;height:100%;touch-action:none}.signature-pad-wrap span{position:absolute;bottom:10px;left:0;right:0;text-align:center;color:#94a3b8;font-size:11px;pointer-events:none}.sign-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.stamp-check{display:flex!important;align-items:center;gap:7px;font-size:12px}.stamp-check input{width:auto}.block-action{display:flex;width:100%;box-sizing:border-box;margin-top:10px}.signed-ok{background:#ecfdf5;color:#047857;padding:16px;border-radius:14px;margin:16px 0}.head-actions{display:flex;gap:10px;align-items:center}
@media(max-width:1000px){.quote-layout,.detail-grid{grid-template-columns:1fr}.quote-meta-grid{grid-template-columns:repeat(2,1fr)}.line-labels{display:none}.quote-line{grid-template-columns:1fr 70px 70px}.desc-stack{grid-column:1/-1}.quote-line input[name="unit_price[]"],.quote-line input[name="discount[]"]{grid-row:3}.quote-bottom{grid-template-columns:1fr}.summary-info{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.quote-meta-grid{grid-template-columns:1fr}.quote-meta-grid label:nth-last-of-type(-n+2){grid-column:auto}.quote-line{grid-template-columns:1fr 1fr}.desc-stack{grid-column:1/-1}.remove-line{grid-column:2}.summary-info{grid-template-columns:1fr 1fr}.signature-pad-wrap{height:260px}}
/* VM RENOV Devis V5 - bibliothèque */
.service-search{background:#fff!important;color:#0f172a!important;border:1px solid #cbd5e1!important;font-weight:600!important}.service-suggestions{position:relative;z-index:20}.service-suggestion{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;padding:10px 12px;border:1px solid #e2e8f0;border-top:0;background:#fff;cursor:pointer}.service-suggestion:hover{background:#f8fafc}.service-suggestion span{font-size:11px;color:#64748b}.service-card{display:grid;grid-template-columns:1fr auto 36px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #e2e8f0}.service-card strong,.service-card small{display:block}.service-card small{color:#2563eb;font-weight:800;margin-top:3px}.service-card p{margin:6px 0 0;color:#64748b}.service-price{font-weight:800;white-space:nowrap}.quote-meta-grid.mini{grid-template-columns:1fr 1fr;margin:14px 0}.card input[type=file]{max-width:100%}

/* V7 — harmonie VM RENOV + planning enrichi */
:root{--vm-orange:#f97316;--vm-orange-dark:#ea580c;--vm-charcoal:#1f2937;--vm-orange-soft:#fff7ed}
.modern-table th{background:var(--vm-charcoal);color:#fff;border-bottom:3px solid var(--vm-orange);font-weight:800}
.modern-table small{color:var(--vm-orange-dark)!important}
.status-pill,.mini-status{background:var(--vm-orange-soft)!important;color:#9a3412!important;border:1px solid #fed7aa}
.desc-stack input{color:#c2410c!important;background:var(--vm-orange-soft)!important}
.dot.chantier{background:var(--vm-orange)!important}.dot.rdv{background:#475569}.fc-chantier{box-shadow:inset 3px 0 0 #ea580c}.fc-rdv{box-shadow:inset 3px 0 0 #1f2937}
.planning-legend-v7{margin:0 0 14px}.planning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-grid .full-width{grid-column:1/-1}
@media(max-width:1100px){.planning-grid{grid-template-columns:1fr}.planning-grid .full-width{grid-column:auto}}
.work-site-box{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff7ed}.work-site-box textarea{min-height:78px}@media(max-width:760px){.work-site-box{grid-template-columns:1fr}}

/* V11 - Travaux / adresse chantier : lisibilité */
.work-site-box {
    background: #ffffff !important;
    border: 1px solid #d6dce5 !important;
    border-radius: 14px !important;
    padding: 18px !important;
    margin-top: 8px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 18px !important;
}

.work-site-box label {
    color: #111111 !important;
    font-weight: 700 !important;
}

.work-site-box textarea {
    background: #ffffff !important;
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    min-height: 90px !important;
}

.work-site-box textarea::placeholder {
    color: #6b7280 !important;
    opacity: 1 !important;
}

@media (max-width: 700px) {
    .work-site-box {
        grid-template-columns: 1fr !important;
    }
}
