:root{--ink:#16221c}
.calendar-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.calendar-toolbar strong{min-width:150px;text-align:center;text-transform:capitalize;font:600 16px 'Space Grotesk'}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:24px;border:1px solid var(--line);background:var(--line);border-radius:8px;overflow:hidden}.calendar-weekday{padding:11px;background:#edf4ed;color:var(--muted);font-size:10px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:1px}.calendar-day{min-height:105px;padding:8px;background:#fff}.calendar-day.empty{background:#f8faf8}.calendar-number{display:block;margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:700}.calendar-job{margin:4px 0;padding:6px;border-left:3px solid var(--green);border-radius:3px;background:#e9f4e8;color:var(--green);font-size:11px;line-height:1.25;overflow:hidden;cursor:pointer}.calendar-job strong{margin-right:3px}.calendar-job:hover{background:#dcefe0}.calendar-view-switch{display:flex;gap:4px;margin-left:auto}.calendar-view-switch .view-btn{padding:9px 14px}.calendar-view-switch .view-btn.active{background:var(--green);color:#fff}
/* Vue semaine : 7 colonnes en grille (Lun-Dim) */
.calendar-grid.week{grid-template-columns:repeat(7,1fr)}
/* Vue semaine : colonne avec heure */
.calendar-grid.single-col{grid-template-columns:repeat(7,1fr);min-height:220px}
/* Vue jour : grille à 2 colonnes (heure + contenu) */
.calendar-grid.day{grid-template-columns:78px 1fr;border:1px solid var(--line);background:var(--line)}
.calendar-day.day-hour{padding:11px;background:#edf4ed;color:var(--muted);font-size:11px;font-weight:700;text-align:right}
.calendar-day.day-cell{min-height:104px;background:#fff}
/* Libellé d'un jour en vue semaine/jour */
.calendar-day-head{display:block;margin-bottom:7px;font-size:12px;font-weight:700;color:var(--muted)}
.calendar-day.today .calendar-day-head{color:var(--green)}
.calendar-day.today{background:#f1faf2}
.job-edit-note{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;background:#fdf3e7;color:#8a5a1f;font-size:11px;font-weight:700}
@media(max-width:600px){.calendar-day{min-height:75px;padding:5px}.calendar-job{font-size:9px;padding:4px}.calendar-job strong{display:block}.calendar-weekday{font-size:8px;padding:8px 2px}}
.header-actions{display:flex;gap:10px;align-items:center}.check-list{display:grid;gap:12px}.check-list label{flex-direction:row;align-items:center;color:var(--ink)}.check-list input{width:auto}.signature-help{color:var(--muted);font-size:12px}.signature-pad,canvas#signature-pad{display:block;width:100%;height:auto;border:1px dashed #9bb2a2;border-radius:6px;background:#fff;touch-action:none}
 .photo-actions{min-width:150px}.photo-actions .action-link{margin-right:4px}.photo-previews{display:flex;gap:4px;margin-top:7px}.photo-previews img{width:34px;height:34px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--ink:#16221c;--muted:#718078;--line:#dfe8e2;--paper:#f5f8f5;--white:#fff;--green:#156b45;--lime:#b8e36d;--orange:#f5a45b;--red:#df6b61;--shadow:0 18px 45px rgba(24,58,40,.08)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:28px 18px;background:#173c2b;color:#e9f3e9;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:2px 10px 42px;font:700 18px 'Space Grotesk'}.brand small{display:block;margin-top:3px;color:#9db5a6;font:500 11px 'DM Sans'}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:var(--lime);color:#173c2b;font:700 13px 'Space Grotesk'}.nav-item{display:block;width:100%;padding:13px 14px;margin:3px 0;border:0;border-radius:8px;background:transparent;color:#b8cabe;text-align:left;font:600 13px 'DM Sans';cursor:pointer}.nav-item:before{content:'•';display:inline-block;margin-right:12px;color:#698979}.nav-item.active,.nav-item:hover{background:#265640;color:#fff}.nav-item.active:before{color:var(--lime)}.side-note{margin-top:auto;padding:15px;border:1px solid #37634d;border-radius:8px;color:#aac4b2;line-height:1.6;font-size:12px}.side-note strong{color:#e8f4e9}.content{margin-left:250px;padding:35px 5vw 60px;max-width:1500px}.topbar,.section-head,.panel-head,.hero-line{display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar{margin-bottom:40px}.eyebrow{margin:0 0 7px;color:var(--green);font-size:10px;font-weight:700;letter-spacing:1.5px}.topbar h1,.section-head h2{margin:0;font:700 30px 'Space Grotesk'}.primary,.secondary,.text-button,.close{border:0;cursor:pointer;font:600 13px 'DM Sans'}.primary{padding:12px 18px;border-radius:7px;background:var(--green);color:#fff;box-shadow:0 6px 15px rgba(21,107,69,.18)}.primary:hover{background:#0e5738}.secondary{padding:11px 16px;border-radius:7px;background:#edf2ed;color:var(--ink)}.text-button{background:none;color:var(--green);padding:5px}.hero-line{padding:27px 30px;margin-bottom:22px;border-radius:10px;background:linear-gradient(115deg,#e3f2db,#f8f7ec);border:1px solid #d6e6d2}.hero-line h2{margin:0 0 5px;font:700 26px 'Space Grotesk'}.hero-line p{margin:0;color:var(--muted)}.date-chip{padding:8px 12px;border-radius:20px;background:#fff;color:var(--green);font-size:12px;font-weight:600}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.metric{padding:20px 21px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.metric-label{color:var(--muted);font-size:12px}.metric-value{display:block;margin:9px 0 3px;font:700 27px 'Space Grotesk'}.metric-foot{color:var(--green);font-size:11px}.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:22px}.panel{padding:25px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel h3{margin:0 0 18px;font:600 19px 'Space Grotesk'}.accent-panel{background:#173c2b;color:#ecf5ed;border-color:#173c2b}.accent-panel .eyebrow{color:var(--lime)}.pipeline-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf1ed}.pipeline-row:last-child{border-bottom:0}.dot{width:8px;height:8px;border-radius:50%;background:var(--orange)}.pipeline-row strong{display:block;font-size:13px}.pipeline-row small{color:var(--muted)}.job-card{padding:14px 0;border-bottom:1px solid #38634e}.job-card:last-child{border-bottom:0}.job-card strong{display:block}.job-card small{display:block;margin-top:5px;color:#a9c4b2}.view{display:none}.active-view{display:block}.section-head{margin-bottom:24px}.search{width:280px;padding:12px 14px;border:1px solid var(--line);border-radius:7px;background:#fff;font:14px 'DM Sans';outline:none}.search:focus,input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(21,107,69,.1)}.table-panel{padding:0;overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th{padding:15px 20px;color:var(--muted);font-size:10px;text-align:left;letter-spacing:1px;text-transform:uppercase;background:#fafcf9}td{padding:17px 20px;border-top:1px solid var(--line);vertical-align:middle}td strong{display:block;font-size:13px}td small{display:block;margin-top:3px;color:var(--muted)}.badge{display:inline-block;padding:5px 8px;border-radius:5px;background:#eef5e9;color:var(--green);font-size:11px;font-weight:600}.action-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.action-link{padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--green);font:600 11px 'DM Sans';cursor:pointer}.action-link:hover{background:#f0f7ed}dialog{width:min(600px,calc(100% - 30px));padding:0;border:0;border-radius:10px;box-shadow:0 25px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(18,44,30,.45)}form{padding:27px}.dialog-head{display:flex;justify-content:space-between;margin-bottom:24px}.dialog-head h2{margin:0;font:700 23px 'Space Grotesk'}.close{padding:0;background:none;color:var(--muted);font-size:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px;font-weight:600}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:#fbfdfb;color:var(--ink);font:14px 'DM Sans';outline:none}textarea{min-height:85px;resize:vertical}.wide{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}@media(max-width:900px){.sidebar{position:static;width:auto;height:auto;padding:16px;flex-direction:row;align-items:center;gap:12px}.brand{padding:0;margin-right:auto}.brand small{display:none}.sidebar nav{display:flex}.nav-item{width:auto;padding:9px}.nav-item:before{display:none}.side-note{display:none}.content{margin-left:0;padding:25px 18px}.metrics,.dashboard-grid{grid-template-columns:1fr 1fr}.topbar{margin-bottom:28px}}@media(max-width:600px){.topbar,.section-head,.hero-line{align-items:flex-start;flex-direction:column}.topbar h1,.section-head h2{font-size:25px}.metrics,.dashboard-grid,.form-grid{grid-template-columns:1fr}.search{width:100%}.nav-item{font-size:0}.nav-item:after{content:'•';font-size:18px}.sidebar nav{gap:2px}}
/* --- Ajouts Facturation & Relances --- */
.badge.green{background:#e6f4ea;color:#1a7f4a}
.badge.red{background:#fdecea;color:#c0392b}
.metrics.small{grid-template-columns:repeat(3,1fr);margin-bottom:22px}
@media(max-width:600px){.metrics.small{grid-template-columns:1fr}}
/* --- Ajouts Équipe --- */
.agent-filter-label{display:flex;align-items:center;gap:9px;font:600 13px 'DM Sans';color:var(--muted)}
.agent-filter{min-width:190px;padding:11px 13px;border:1px solid var(--line);border-radius:7px;background:#fff;font:14px 'DM Sans';color:var(--ink)}
.agent-wrap{display:inline-block}
.agent-input{min-width:150px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font:13px 'DM Sans';color:var(--ink)}
.agent-input:focus{outline:none;border-color:var(--green)}
.header-actions{display:flex;align-items:center;gap:14px}
/* --- Ajouts Récurrence & Relances automatiques --- */
.recur-badge{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:4px;background:#eef3f8;color:#3a6ea5;font-size:10px;font-weight:600;white-space:nowrap}
.relance-done,.relance-action{margin-right:6px}
.calendar-status{margin-bottom:14px}
.notice{padding:13px 16px;border-radius:8px;font-size:13px;line-height:1.5;border:1px solid var(--line);background:#fff}
.notice.ok{background:#e6f4ea;border-color:#b7dfc3;color:#1a7f4a}
.notice.error{background:#fdecea;border-color:#f2c4bf;color:#c0392b}
.notice code{background:rgba(0,0,0,.05);padding:1px 5px;border-radius:4px;font-family:ui-monospace,Menlo,monospace;font-size:12px}

/* Menu toggle & backdrop (hidden on desktop, shown on mobile) */
.menu-toggle{display:none}
.menu-backdrop{display:none}
.menu-backdrop.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:998}

/* --- Am?liorations Responsives (mobile-first optimizations) --- */
@media(max-width:768px){
  /* Sidebar off-canvas */
  .sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:28px 18px;transform:translateX(-100%);transition:transform .25s ease;z-index:999;box-shadow:4px 0 24px rgba(0,0,0,.25);overflow-y:auto}
  .sidebar.open{transform:translateX(0)}
  /* Hamburger button (mobile only) */
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:0;border-radius:7px;background:var(--green);color:#fff;font-size:18px;cursor:pointer;flex-shrink:0}
  /* Content full width + scroll container */
  .content{margin-left:0;padding:18px 14px 50px}
  .topbar,.section-head,.hero-line{align-items:center;gap:12px}
  .topbar h1,.section-head h2{font-size:22px}
  .topbar{flex-wrap:wrap}
  /* Header actions stack/wrap */
  .header-actions{flex-wrap:wrap;gap:8px}
  .header-actions button{white-space:nowrap}
  /* Table horizontal scroll inside its panel */
  .table-panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table-panel table{min-width:640px}
  .table-panel::-webkit-scrollbar{height:8px}
  .table-panel::-webkit-scrollbar-thumb{background:#cbd8cf;border-radius:4px}
  .table-panel::-webkit-scrollbar-track{background:#f1f5f1}
  /* Sticky first column on mobile for context */
  .table-panel th:first-child,.table-panel td:first-child{position:sticky;left:0;background:#fff;z-index:2;box-shadow:2px 0 4px rgba(0,0,0,.05)}
  /* Metrics & grids stack */
  .metrics,.dashboard-grid{-webkit-column-gap:12px;gap:12px}
  /* Buttons full-ish on mobile */
  .primary,.secondary{padding:11px 14px}
  /* Sidebar nav items readable */
  .nav-item{font-size:13px;padding:12px 12px}
  .nav-item:after{content:''}
  .side-note{margin-top:20px;padding:13px}
}
@media(max-width:600px){
  .dashboard-grid{grid-template-columns:1fr}
  .panel{padding:18px 14px}
  /* Dialog full width on mobile */
  dialog{max-width:100%;width:calc(100% - 20px);margin:10px auto}
  .dialog-head h2{font-size:20px}
  /* Form grid single column */
  .form-grid{grid-template-columns:1fr}
  /* Calendar toolbar wraps */
  .calendar-toolbar{flex-wrap:wrap;gap:8px}
  .calendar-view-switch{width:100%;justify-content:center}
  /* Search full width */
  .search,.agent-filter{width:100%;min-width:0}
}
/* Existing small-metrics rule stays intact */
