/* ============================================================================
   MR PAYSAGE — Design system (repris de l'ancienne application Lovable)
   Thème sombre, dégradés colorés par module, police Playfair Display (logo)
   + Inter (contenu). Feuille de style unique partagée par toutes les pages.
   ========================================================================== */

:root{
  --bg:#080b13;
  --bg-soft:#0c111d;
  --card:#121a2b;
  --card-2:#161f33;
  --border:#232f4a;
  --border-soft:#1b2439;
  --text:#eef1f8;
  --text-dim:#9aa5bd;
  --text-muted:#5f6b85;

  --green:#10b981;
  --green-dark:#047857;
  --green-light:#34d399;
  --blue:#3b82f6;
  --blue-dark:#1d4ed8;
  --purple:#a855f7;
  --purple-dark:#7e22ce;
  --orange:#f59e0b;
  --orange-dark:#d97706;
  --red:#ef4444;
  --red-dark:#b91c1c;
  --pink:#ec4899;
  --pink-dark:#be185d;
  --cyan:#0ea5e9;
  --cyan-dark:#0369a1;
  --gray:#64748b;
  --gray-dark:#334155;
  --yellow:#eab308;

  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow-card:0 8px 24px rgba(0,0,0,.35);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:radial-gradient(circle at 20% -10%, #0c2a24 0%, var(--bg) 45%) fixed;
  color:var(--text);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{margin:0;font-weight:700;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--green);color:#04150f;}

.logo-font{font-family:'Playfair Display',serif;}

.app-shell{max-width:1080px;margin:0 auto;padding:20px 16px 64px;}
.app-shell.narrow{max-width:680px;}

/* ---------------- Topbar (page d'accueil) ---------------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;padding:14px 4px 22px;border-bottom:1px solid var(--border-soft);
  margin-bottom:22px;flex-wrap:wrap;
}
.topbar-brand{display:flex;align-items:center;gap:10px;}
.brand-badge{
  width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,#bff7d6,#eafff1);
  display:flex;align-items:center;justify-content:center;color:var(--green-dark);
  font-size:18px;flex-shrink:0;
}
.topbar-brand .name{font-weight:700;font-size:15px;line-height:1.2;}
.topbar-brand .role{font-size:11px;color:var(--text-dim);}
.topbar-user{display:flex;align-items:center;gap:8px;}
.avatar-circle{
  width:30px;height:30px;border-radius:50%;background:var(--blue);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;
}
.topbar-actions{display:flex;align-items:center;gap:10px;}
.weather-chip{
  display:flex;align-items:center;gap:10px;background:var(--card);
  border:1px solid var(--border);padding:6px 12px;border-radius:10px;font-size:12px;color:var(--text-dim);
}
.weather-chip b{color:var(--text);}
.icon-btn{
  width:34px;height:34px;border-radius:9px;background:var(--card);
  border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center;
  transition:.15s;
}
.icon-btn:hover{color:var(--text);border-color:var(--gray);}

/* ---------------- Header de module (pages internes) ---------------- */
.module-header{
  display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap;
}
.back-btn{
  width:38px;height:38px;border-radius:10px;background:var(--card);
  border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.back-btn:hover{color:var(--text);}
.module-icon{
  width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:18px;flex-shrink:0;
}
.module-title h1{font-size:19px;}
.module-title p{font-size:12.5px;color:var(--text-dim);margin-top:2px;}
.module-header-spacer{flex:1;}

/* Gradients par module */
.grad-clients{background:linear-gradient(135deg,#94a3b8,#475569);}
.grad-gestion{background:linear-gradient(135deg,#60a5fa,#1d4ed8);}
.grad-rdv{background:linear-gradient(135deg,#c084fc,#7e22ce);}
.grad-maintenance{background:linear-gradient(135deg,#38bdf8,#0369a1);}
.grad-creations{background:linear-gradient(135deg,#fbbf24,#d97706);}
.grad-entretiens{background:linear-gradient(135deg,#34d399,#047857);}
.grad-social{background:linear-gradient(135deg,#f472b6,#be185d);}
.grad-parametres{background:linear-gradient(135deg,#818cf8,#4338ca);}

/* ---------------- Boutons ---------------- */
.btn{
  border:none;border-radius:11px;padding:12px 18px;font-size:14px;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s;
}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn-block{width:100%;}
.btn-primary{background:linear-gradient(135deg,var(--green-light),var(--green-dark));color:#04150f;}
.btn-primary:hover:not(:disabled){filter:brightness(1.08);}
.btn-purple{background:linear-gradient(135deg,var(--purple),var(--purple-dark));color:#fff;}
.btn-orange{background:linear-gradient(135deg,var(--orange),var(--orange-dark));color:#1a1102;}
.btn-dark{background:var(--card-2);color:var(--text);border:1px solid var(--border);}
.btn-dark:hover{border-color:var(--gray);}
.btn-outline-red{background:transparent;border:1px solid rgba(239,68,68,.4);color:#f87171;}
.btn-outline-red:hover{background:rgba(239,68,68,.08);}
.btn-outline-green{background:transparent;border:1px dashed rgba(16,185,129,.5);color:var(--green-light);}
.btn-outline-green:hover{background:rgba(16,185,129,.08);}
.btn-outline-orange{background:transparent;border:1px solid rgba(245,158,11,.4);color:var(--orange);}
.btn-yellow{background:linear-gradient(135deg,#facc15,#ca8a04);color:#1a1102;}
.btn-sm{padding:8px 12px;font-size:12.5px;border-radius:9px;}
.btn-icon-only{width:38px;height:38px;padding:0;border-radius:10px;}

/* ---------------- Cards & listes ---------------- */
.card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:18px;box-shadow:var(--shadow-card);
}
.section-title{font-size:13.5px;font-weight:700;color:var(--text);display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px;}
.section-title .count{font-size:11.5px;color:var(--text-muted);font-weight:500;}

.module-grid-home{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.module-card-home{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  transition:.15s;
}
.module-card-home:hover{transform:translateY(-2px);border-color:var(--gray);}
.module-card-home .module-icon{width:44px;height:44px;font-size:19px;}
.module-card-home .mh-title{font-size:13px;font-weight:700;}
.module-card-home .mh-sub{font-size:10.5px;color:var(--text-muted);line-height:1.3;}

.module-bar-list{display:flex;flex-direction:column;gap:10px;}
.module-bar{
  display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;color:#fff;
  transition:.15s;
}
.module-bar:hover{filter:brightness(1.06);}
.module-bar .mb-icon{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:16px;}
.module-bar .mb-title{font-weight:700;font-size:14.5px;}
.module-bar .mb-sub{font-size:11.5px;opacity:.85;}
.module-bar .mb-chev{margin-left:auto;opacity:.8;}

/* Stat boxes */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:16px;}
.stat-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;text-align:center;}
.stat-box .num{font-size:22px;font-weight:800;}
.stat-box .lbl{font-size:11px;color:var(--text-dim);margin-top:2px;}
.stat-box.accent-orange .num{color:var(--orange);}
.stat-box.accent-green .num{color:var(--green-light);}
.stat-box.accent-blue .num{color:var(--blue);}
.stat-box.accent-red .num{color:var(--red);}
.stat-box.active{background:var(--blue);}
.stat-box.active .num,.stat-box.active .lbl{color:#fff;}

/* Search */
.search-bar{
  display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:10px 14px;color:var(--text-dim);margin-bottom:14px;
}
.search-bar input{background:transparent;border:none;outline:none;color:var(--text);width:100%;font-size:13.5px;}
.search-bar input::placeholder{color:var(--text-muted);}

/* Tabs */
.tabs-row{display:flex;gap:8px;background:var(--bg-soft);padding:4px;border-radius:12px;margin-bottom:16px;}
.tabs-row .tab-btn{
  flex:1;text-align:center;padding:9px 8px;border-radius:9px;border:none;background:transparent;
  color:var(--text-dim);font-size:12.5px;font-weight:600;
}
.tabs-row .tab-btn.active{background:var(--card);color:var(--text);box-shadow:0 0 0 1px var(--border);}

.underline-tabs{display:flex;gap:22px;border-bottom:1px solid var(--border-soft);margin-bottom:18px;}
.underline-tabs .u-tab{padding:10px 2px;font-size:13px;font-weight:600;color:var(--text-dim);border-bottom:2px solid transparent;display:flex;align-items:center;gap:6px;}
.underline-tabs .u-tab.active{color:var(--green-light);border-color:var(--green-light);}

/* Filter pills */
.filter-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.filter-pill{padding:8px 14px;border-radius:10px;font-size:12.5px;font-weight:600;border:1px solid var(--border);background:var(--card);color:var(--text-dim);display:flex;align-items:center;gap:6px;}
.filter-pill.active-green{background:var(--green);color:#04150f;border-color:var(--green);}
.filter-pill.active-orange{background:var(--orange);color:#1a1102;border-color:var(--orange);}

/* Sector bar (Entretiens) */
.sector-bar{
  display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:14px;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,#34d399,#059669);margin-bottom:12px;
}
.sector-bar .sb-name{font-weight:700;font-size:14.5px;}
.sector-bar .sb-count{font-size:11.5px;opacity:.9;}
.sector-bar .sb-chev{margin-left:auto;}

/* Client mini-card in sector */
.client-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px;}
.client-mini-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;}
.client-mini-card .cmc-top{display:flex;justify-content:space-between;align-items:center;color:var(--text-muted);}
.client-mini-card .avatar-square{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#34d399,#059669);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;color:#fff;}
.client-mini-card .cmc-name{font-weight:700;font-size:13px;text-align:center;text-transform:uppercase;}
.client-mini-card .cmc-badge{align-self:center;background:var(--card-2);border:1px solid var(--border);border-radius:8px;padding:3px 9px;font-size:10.5px;color:var(--text-dim);}
.client-mini-card .cmc-actions{display:flex;justify-content:space-around;color:var(--text-muted);border-top:1px solid var(--border-soft);padding-top:8px;}

/* Chantiers grid (Créations) */
.chantier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.chantier-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;position:relative;}
.chantier-card .cc-top{display:flex;justify-content:space-between;color:var(--text-muted);}
.chantier-card .cc-badge{background:var(--card-2);border:1px solid var(--border);border-radius:8px;padding:2px 9px;font-size:10px;color:var(--text-dim);}
.chantier-card .cc-icon{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#fbbf24,#d97706);display:flex;align-items:center;justify-content:center;font-size:19px;color:#1a1102;margin:0 auto;}
.chantier-card .cc-name{font-weight:700;text-align:center;font-size:14px;text-transform:uppercase;}
.chantier-card .cc-loc{text-align:center;font-size:11.5px;color:var(--text-dim);}
.chantier-card .cc-tag{align-self:center;background:rgba(245,158,11,.12);color:var(--orange);border-radius:7px;padding:2px 10px;font-size:10.5px;}
.progress-track{background:var(--card-2);height:6px;border-radius:6px;overflow:hidden;}
.progress-fill{background:linear-gradient(90deg,var(--orange),#fbbf24);height:100%;}

/* Vehicle / equipment list (Maintenance) */
.equip-group{margin-bottom:18px;}
.equip-group h4{font-size:12px;color:var(--text-dim);margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em;}
.equip-row{
  display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:11px 14px;margin-bottom:8px;
}
.equip-row .eq-icon{width:36px;height:36px;border-radius:9px;background:var(--card-2);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.equip-row .eq-name{font-weight:700;font-size:13px;}
.equip-row .eq-sub{font-size:11px;color:var(--text-muted);}
.equip-row .eq-badge{background:rgba(239,68,68,.15);color:#f87171;border-radius:7px;padding:2px 8px;font-size:10.5px;font-weight:700;}
.equip-row .eq-add{width:30px;height:30px;border-radius:8px;background:var(--card-2);border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* Empty states */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:50px 10px;color:var(--text-muted);}
.empty-state i{font-size:34px;opacity:.4;}
.empty-state p{font-size:13.5px;}

/* ---------------- Modal / Dialog ---------------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(4,7,14,.72);backdrop-filter:blur(2px);
  display:none;align-items:flex-start;justify-content:center;z-index:200;padding:26px 14px;overflow-y:auto;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--bg-soft);border:1px solid var(--border);border-radius:18px;width:100%;max-width:460px;
  max-height:calc(100vh - 52px);overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.modal-box.wide{max-width:760px;}
.modal-head{display:flex;align-items:center;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--bg-soft);z-index:2;}
.modal-head .mh-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex-shrink:0;}
.modal-head h3{font-size:15.5px;}
.modal-head p{font-size:11.5px;color:var(--text-dim);}
.modal-close{margin-left:auto;width:32px;height:32px;border-radius:9px;background:var(--card);border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.modal-body{padding:18px;display:flex;flex-direction:column;gap:16px;}
.modal-foot{display:flex;gap:10px;padding:16px 18px 18px;}
.modal-foot .btn{flex:1;}

/* Header interne d'un dossier client/chantier/véhicule (bandeau coloré) */
.entity-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border-soft);}
.entity-head.tint-green{background:linear-gradient(135deg,rgba(16,185,129,.18),transparent);}
.entity-head.tint-orange{background:linear-gradient(135deg,rgba(245,158,11,.18),transparent);}
.entity-head.tint-blue{background:linear-gradient(135deg,rgba(14,165,233,.18),transparent);}
.entity-head .eh-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.entity-head .eh-title{font-size:15.5px;font-weight:700;}
.entity-head .eh-sub{font-size:11.5px;color:var(--text-dim);display:flex;align-items:center;gap:6px;}
.entity-head .eh-actions{margin-left:auto;display:flex;gap:8px;}
.status-badge{background:var(--card-2);border:1px solid var(--border);border-radius:8px;padding:2px 9px;font-size:10px;color:var(--text-dim);}

/* Form elements */
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:11.5px;font-weight:700;color:var(--text-dim);display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.02em;}
.field label .req{color:var(--red);}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=number],
.field input[type=date],.field input[type=time],.field input[type=password],.field select,.field textarea{
  background:var(--card);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text);
  font-size:13.5px;outline:none;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);}
.field textarea{resize:vertical;min-height:70px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.field-row.thirds{grid-template-columns:1fr 1fr 1fr;}
.field-group-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:6px;margin-top:4px;}

.toggle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.toggle-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.toggle-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.toggle-item{
  background:var(--card);border:1.5px solid var(--border);border-radius:12px;padding:12px 8px;
  display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--text-dim);
  text-align:center;
}
.toggle-item i{font-size:16px;}
.toggle-item.selected{border-color:var(--green);color:var(--green-light);background:rgba(16,185,129,.08);}
.toggle-item.selected.tone-orange{border-color:var(--orange);color:var(--orange);background:rgba(245,158,11,.08);}
.toggle-item.selected.tone-red{border-color:var(--red);color:#f87171;background:rgba(239,68,68,.08);}
.toggle-item.selected.tone-yellow{border-color:var(--yellow);color:var(--yellow);background:rgba(234,179,8,.08);}

.urgence-row{display:flex;gap:10px;}
.urgence-btn{flex:1;padding:11px;border-radius:11px;border:2px solid var(--border);background:var(--card);color:var(--text-dim);font-weight:700;font-size:12.5px;display:flex;align-items:center;justify-content:center;gap:7px;}
.urgence-btn.basse.selected{border-color:var(--green);color:var(--green-light);}
.urgence-btn.moyen.selected{border-color:var(--orange);color:var(--orange);}
.urgence-btn.urgent.selected{border-color:var(--red);color:#f87171;}

.day-type-row{display:flex;gap:8px;flex-wrap:wrap;}
.day-type-btn{flex:1;min-width:78px;padding:10px 6px;border-radius:11px;border:1.5px solid var(--border);background:var(--card);color:var(--text-dim);font-size:11.5px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:5px;}
.day-type-btn.active{border-color:var(--green);color:var(--green-light);}

.duration-row{display:flex;align-items:flex-end;gap:10px;}
.duration-row .field{flex:1;}
.duration-row span{color:var(--text-muted);font-size:12px;padding-bottom:12px;}

.dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.dot-red{background:var(--red);}
.dot-green{background:var(--green);}
.dot-orange{background:var(--orange);}

.info-box{background:var(--card-2);border:1px solid var(--border-soft);border-radius:13px;padding:14px;}
.info-box .ib-title{font-size:12px;font-weight:700;color:var(--green-light);display:flex;align-items:center;gap:6px;margin-bottom:10px;}
.info-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;border-top:1px dashed var(--border-soft);}
.info-row:first-of-type{border-top:none;}
.info-row .k{color:var(--text-dim);}
.info-row .v{font-weight:700;}

/* Calendrier de pointage (Social/RH) */
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.cal-nav{display:flex;align-items:center;gap:6px;}
.cal-nav b{font-size:13px;min-width:120px;text-align:center;text-transform:capitalize;}
#cal-employee-field{min-width:170px;margin:0;}
.cal-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:14px;font-size:10.5px;color:var(--text-dim);}
.cal-legend i{font-size:8px;margin-right:4px;}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;}
.cal-wd{text-align:center;font-size:10.5px;color:var(--text-muted);font-weight:700;text-transform:uppercase;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-day{aspect-ratio:1/1;border-radius:10px;background:var(--card);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:.15s;}
.cal-day:not(.empty){cursor:pointer;}
.cal-day:not(.empty):hover{border-color:var(--gray);}
.cal-day.empty{background:transparent;border:none;}
.cal-day.today{border-color:var(--green-light);}
.cal-day.selected{background:var(--card-2);border-color:var(--green-light);box-shadow:0 0 0 1px var(--green-light);}
.cal-day .cd-num{font-size:11.5px;font-weight:700;}
.cal-day .cd-dot{width:7px;height:7px;border-radius:50%;}
.cal-day .cd-hours{font-size:8.5px;color:var(--text-muted);}

.hist-entry{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:14px;margin-bottom:10px;}
.hist-entry .he-top{display:flex;align-items:center;gap:8px;}
.hist-entry .he-title{font-weight:700;font-size:13.5px;flex:1;}
.hist-entry .he-date{background:var(--card-2);border-radius:7px;padding:2px 8px;font-size:10.5px;color:var(--text-dim);}
.hist-entry .he-desc{font-size:12px;color:var(--text-dim);margin:6px 0;}
.hist-entry .he-meta{font-size:11px;color:var(--text-muted);display:flex;gap:14px;}

.alert-box{padding:12px 14px;border-radius:11px;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:9px;}
.alert-box.warn{background:rgba(234,179,8,.1);border:1px solid rgba(234,179,8,.35);color:#facc15;}
.alert-box.info{background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.35);color:#93c5fd;}
.alert-box.danger{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.35);color:#f87171;}

.link-green{color:var(--green-light);font-weight:600;font-size:12.5px;}
.chip-select{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.chip-select .chip{background:var(--card-2);border:1px solid var(--border);border-radius:20px;padding:5px 11px;font-size:11.5px;color:var(--text-dim);}
.chip-select .chip.on{background:var(--green);color:#04150f;border-color:var(--green);}

/* Toggle switch (rappel actif) */
.switch-row{display:flex;align-items:center;justify-content:space-between;}
.switch{width:42px;height:24px;border-radius:20px;background:var(--card-2);border:1px solid var(--border);position:relative;flex-shrink:0;}
.switch.on{background:var(--green);}
.switch .knob{width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:.15s;}
.switch.on .knob{left:20px;}

footer.app-footer{text-align:center;color:var(--text-muted);font-size:11px;padding:30px 0 10px;}

/* ---------------- Gestion des employés (Paramètres admin) ---------------- */
.employee-row{
  display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);
  border-radius:14px;padding:13px 14px;margin-bottom:10px;
}
.employee-row.inactive{opacity:.55;}
.employee-row .emp-avatar{
  width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;color:#fff;flex-shrink:0;
}
.employee-row .emp-name{font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.employee-row .emp-sub{font-size:11px;color:var(--text-muted);margin-top:2px;}
.employee-row .emp-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0;}
.role-badge{border-radius:7px;padding:2px 9px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
.role-badge.direction{background:rgba(59,130,246,.15);color:#60a5fa;}
.role-badge.administratif{background:rgba(236,72,153,.15);color:#f472b6;}
.role-badge.terrain{background:rgba(16,185,129,.15);color:var(--green-light);}
.inactive-badge{background:rgba(239,68,68,.15);color:#f87171;border-radius:7px;padding:2px 9px;font-size:10px;font-weight:700;}
.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.settings-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:18px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transition:.15s;
}
.settings-card:hover{transform:translateY(-2px);border-color:var(--gray);}
.settings-card .module-icon{width:46px;height:46px;font-size:19px;}
.settings-card .sc-title{font-size:13.5px;font-weight:700;}
.settings-card .sc-sub{font-size:11px;color:var(--text-muted);line-height:1.3;}
.settings-card.disabled{opacity:.45;cursor:not-allowed;}
.settings-card.disabled:hover{transform:none;border-color:var(--border);}

/* Login page */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(circle at 15% 10%,rgba(16,185,129,.14),transparent 45%),
             radial-gradient(circle at 85% 90%,rgba(217,119,6,.12),transparent 45%),var(--bg);}
.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:34px 28px;text-align:center;box-shadow:var(--shadow-card);}
.login-logo{width:66px;height:66px;border-radius:16px;background:linear-gradient(160deg,#eafff1,#bff7d6);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--green-dark);font-size:28px;}
.login-card h1{font-size:22px;margin-bottom:4px;}
.login-card .sub{color:var(--text-dim);font-size:13px;margin-bottom:24px;}
.login-card form{display:flex;flex-direction:column;gap:14px;text-align:left;}
.login-card .pw-wrap{position:relative;}
.login-card .pw-wrap i{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--text-muted);cursor:pointer;}
.login-note{margin-top:18px;font-size:11.5px;color:var(--text-muted);}
.login-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#f87171;font-size:12.5px;border-radius:10px;padding:9px 12px;text-align:left;}

/* Responsive */
@media (max-width:720px){
  .module-grid-home{grid-template-columns:repeat(2,1fr);}
  .field-row,.field-row.thirds{grid-template-columns:1fr 1fr;}
  .toggle-grid.cols-4{grid-template-columns:repeat(2,1fr);}
  .chantier-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:480px){
  .module-grid-home{grid-template-columns:repeat(2,1fr);}
  .stat-row{grid-template-columns:repeat(2,1fr);}
  .chantier-grid{grid-template-columns:1fr;}
  .field-row.thirds{grid-template-columns:1fr;}
}
