:root{--navy:#06245e;--navyDeep:#03163d;--navy2:#0b4fa3;--blue:#0d78e8;--ink:#10233f;--steel:#64748b;--muted:#8a98aa;--paper:#f3f6fa;--white:#fff;--orange:#e83d12;--orange2:#ff641f;--line:#dbe3ed;--soft:#eef3f8;--danger:#b92d1a;--success:#20845a;--shadow:0 14px 40px rgba(5,32,83,.10)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--paper)}body{margin:0;background:var(--paper);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)}button,input,select{font:inherit}.app{max-width:1180px;margin:auto;min-height:100vh;background:var(--paper)}
/* LOGIN */.accessGate{position:fixed;inset:0;z-index:99999;background:#eaf0f7;display:flex;align-items:center;justify-content:center;padding:26px}.loginShell{width:min(980px,100%);min-height:610px;display:grid;grid-template-columns:1.12fr .88fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 34px 90px rgba(3,22,61,.22);border:1px solid rgba(255,255,255,.8)}.loginBrandPanel{position:relative;overflow:hidden;background:linear-gradient(145deg,#03163d 0%,#06245e 52%,#0b4fa3 100%);padding:54px 52px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.loginBrandPanel:after{content:"";position:absolute;inset:auto -90px -120px auto;width:380px;height:380px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 48px rgba(255,255,255,.025),0 0 0 100px rgba(255,255,255,.018)}.brandGlow{position:absolute;border-radius:50%;filter:blur(2px);opacity:.5}.brandGlowOne{width:280px;height:280px;background:radial-gradient(circle,rgba(13,120,232,.6),transparent 70%);right:-40px;top:-70px}.brandGlowTwo{width:180px;height:180px;background:radial-gradient(circle,rgba(232,61,18,.45),transparent 70%);left:-70px;bottom:40px}.loginLogo{position:relative;z-index:2;width:205px;height:auto;filter:drop-shadow(0 12px 20px rgba(0,0,0,.22))}.loginBrandCopy{position:relative;z-index:2;max-width:440px}.loginEyebrow,.accessKicker{font-size:11px;font-weight:900;letter-spacing:2px;text-transform:uppercase}.loginEyebrow{color:#ffb39b}.loginBrandCopy h1{font-size:42px;line-height:1.04;letter-spacing:-1.6px;margin:12px 0 16px}.loginBrandCopy p{font-size:15px;line-height:1.65;color:#d9e6f7;margin:0;max-width:400px}.loginBrandFoot{position:relative;z-index:2;font-size:10px;letter-spacing:1.7px;color:#b8c9df;font-weight:800;display:flex;align-items:center;gap:10px}.loginBrandFoot span{width:30px;height:2px;background:var(--orange2);display:inline-block}.accessCard{padding:64px 54px 50px;display:flex;flex-direction:column;justify-content:center;background:#fff}.mobileLogoWrap{display:none}.accessBrand{margin-bottom:32px}.accessKicker{color:var(--orange);margin-bottom:10px}.accessBrand h2{font-size:34px;letter-spacing:-.8px;color:var(--navy);margin:0 0 8px}.accessBrand p{font-size:14px;color:var(--steel);margin:0}.accessForm{display:grid;gap:9px}.accessForm label{font-size:12px;color:var(--ink);text-transform:none;letter-spacing:0;font-weight:800;margin:8px 0 0}.fieldWrap{position:relative}.fieldWrap .fieldIcon{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:25px;height:25px;border-radius:7px;background:var(--soft);display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:12px;font-weight:900}.accessForm input{width:100%;padding:15px 15px 15px 50px;border:1.5px solid var(--line);border-radius:12px;background:#fbfcfe;font-size:15px;color:var(--ink);transition:.18s}.accessForm input:focus{outline:none;border-color:#75a8e4;box-shadow:0 0 0 4px rgba(13,120,232,.08);background:#fff}.loginBtn{margin-top:14px;width:100%;padding:15px 18px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;font-weight:900;font-size:15px;box-shadow:0 10px 22px rgba(232,61,18,.18);display:flex;justify-content:center;gap:14px;align-items:center}.loginBtn span{font-size:18px}.accessMsg{min-height:20px;font-size:12px;color:var(--steel);text-align:center;margin-top:13px}.accessFoot{text-align:center;font-size:11px;color:#99a5b4;margin-top:24px}.app.locked{visibility:hidden;height:100vh;overflow:hidden}
/* HEADER */header{position:sticky;top:0;z-index:20;background:rgba(243,246,250,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(210,220,232,.9)}.headerInner{height:82px;padding:10px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brandrow{display:flex;align-items:center;gap:14px}.brandrow img{height:60px;width:auto;object-fit:contain}.brand{font-size:18px;font-weight:900;color:var(--navy);letter-spacing:-.2px}.tag{font-size:9px;letter-spacing:1.6px;color:var(--orange);font-weight:900;margin-top:3px}.headerStatus{display:flex;align-items:center;gap:7px;padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:11px;color:var(--steel);font-weight:700}.statusDot{width:8px;height:8px;border-radius:50%;background:#21a56f;box-shadow:0 0 0 4px rgba(33,165,111,.12)}
/* DASHBOARD */.home{padding:28px 26px 46px}.portalHero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:28px;padding:30px 32px;background:linear-gradient(135deg,var(--navyDeep),var(--navy) 58%,#0b4fa3);border-radius:22px;color:#fff;box-shadow:0 18px 38px rgba(6,36,94,.16)}.portalHero:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-100px;top:-125px;box-shadow:0 0 0 45px rgba(255,255,255,.025)}.heroCopy{position:relative;z-index:2}.eyebrow{font-size:10px;font-weight:900;letter-spacing:1.8px;color:#ffb39b}.portalHero h1{margin:6px 0 8px;font-size:31px;letter-spacing:-.7px}.portalHero p{margin:0;max-width:620px;color:#dce7f6;font-size:13px;line-height:1.55}.heroAction{position:relative;z-index:2;min-width:225px;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.11);color:#fff;border-radius:14px;padding:13px 15px;backdrop-filter:blur(8px)}.heroActionIcon{width:38px;height:38px;display:grid;place-items:center;background:var(--orange);border-radius:10px;font-size:24px}.heroAction b{display:block;font-size:13px}.heroAction small{display:block;color:#c7d7ec;margin-top:3px;font-size:10px}.dashStats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:16px 0 28px}.dashStat{position:relative;background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px 17px;box-shadow:0 4px 14px rgba(6,36,94,.035)}.dashStat.accent:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--orange)}.dashLabel{display:block;color:var(--steel);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.dashStat strong{display:block;font-size:27px;color:var(--navy);letter-spacing:-1px;margin:4px 0 1px}.dashStat small{font-size:10px;color:#98a5b4}.groupTitle{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:25px 2px 11px}.groupTitle span{font-size:13px;text-transform:uppercase;letter-spacing:1.1px;font-weight:950;color:var(--navy)}.groupTitle small{font-size:11px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.managementCards{grid-template-columns:repeat(2,1fr)}.card{appearance:none;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;min-height:160px;color:var(--ink);box-shadow:0 5px 18px rgba(5,32,83,.045);transition:.18s ease;display:flex;gap:15px;align-items:flex-start}.card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(5,32,83,.09);border-color:#c7d4e3}.card:active{transform:scale(.99)}.card.featured{border-color:#f1b3a0;background:linear-gradient(180deg,#fff,#fff9f7)}.cardIconSvg,.miniIcon{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#e9f1fb;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:950}.featured .cardIconSvg{background:#fff0eb;color:var(--orange)}.cardIconSvg.cold{color:#0c6fc7;background:#eaf5ff}.cardIconSvg.kitchen{color:#9a5d0b;background:#fff6e8}.miniIcon{width:42px;height:42px;font-size:11px;letter-spacing:.5px;background:var(--soft)}.cardBody{min-width:0}.card h2{font-size:16px;margin:1px 0 7px;color:var(--navy)}.card p{margin:0;color:var(--steel);font-size:12px;line-height:1.48}.card .go{display:inline-block;margin-top:13px;color:var(--orange);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.7px}.card .go b{font-size:14px;margin-left:3px}.compactCard{min-height:132px}.cloudBox{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 16px}.cloudHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.syncIdentity{display:flex;align-items:center;gap:11px}.syncIcon{width:34px;height:34px;border-radius:50%;background:#e8f6ef;color:var(--success);display:grid;place-items:center;font-weight:950}.cloudStatus{font-size:11px;color:var(--steel);margin-top:3px}.btn{padding:10px 13px;border-radius:9px;border:0;font-weight:850;font-size:13px}.danger{background:#fff;color:var(--danger);border:1px solid #e6c6bf}.logoutBtn{font-size:11px}
/* MODULES */.module,.clients,.orders,.parc,.planning,.clim,.history{display:none}.topbar{display:flex;align-items:center;gap:10px;padding:11px 16px;background:var(--navy);border-bottom:4px solid var(--orange);position:sticky;top:0;z-index:30}.back{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);color:white;padding:9px 12px;border-radius:8px;font-weight:800;font-size:13px}.modtitle{color:white;font-weight:900;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}iframe{display:block;width:100%;height:calc(100vh - 61px);border:0;background:var(--paper)}.clientsBody,.ordersBody,.parcBody,.planningBody,.climBody,.historyBody{padding:22px}.clientForm,.clientRow,.panel,.requestRow,.todoRow,.formBox,.siteCard{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;margin-bottom:13px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--steel);margin-bottom:5px;font-weight:850}input,.select{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;background:#fff;font-size:15px;color:var(--ink)}input:focus,.select:focus{outline:none;border-color:#83afe1;box-shadow:0 0 0 3px rgba(13,120,232,.07)}.clientActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.primary{background:var(--orange);color:#fff}.secondary{background:var(--navy);color:#fff}.clientName{font-size:16px;font-weight:900;color:var(--navy)}.clientMeta,.subtle,.backupInfo,.requestMeta,.equipMeta{font-size:12px;color:var(--steel);line-height:1.5}.empty{text-align:center;padding:25px;color:var(--steel)}.count{font-size:12px;color:var(--steel);margin-bottom:10px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.sectionTitle{font-weight:950;font-size:18px;margin:2px 0 12px;color:var(--navy)}.siteHead,.requestTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.siteName,.equipName,.requestTitle{font-weight:900}.equipRow{border-top:1px solid #edf1f5;padding:11px 0 0;margin-top:11px;display:grid;grid-template-columns:1fr auto;gap:8px}.mini{padding:8px 10px;font-size:12px;border-radius:7px}.hidden{display:none!important}.pill,.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2f6;color:var(--navy);font-size:10px;font-weight:850}.planningGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.panel h3{margin:0 0 12px;font-size:16px}.badge.high{background:#f9e4de;color:var(--danger)}.badge.done{background:#dff2e8;color:#246b45}.badge.fmrc{background:#e7eef8;color:#244d78}.rowActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.miniBtn{padding:7px 9px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:800;font-size:12px}.todoCheck{display:flex;gap:10px;align-items:flex-start}.todoCheck input{width:20px;height:20px;margin-top:1px}.todoDone{text-decoration:line-through;opacity:.55}.statsbar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;text-align:center}.stat b{display:block;font-size:20px;color:var(--navy)}.stat span{font-size:9px;color:var(--steel);text-transform:uppercase;font-weight:800;letter-spacing:.5px}.full{grid-column:1/-1}
@media(max-width:850px){.loginShell{grid-template-columns:1fr;max-width:500px;min-height:0}.loginBrandPanel{display:none}.accessCard{padding:42px 34px}.mobileLogoWrap{display:block;text-align:center;margin-bottom:22px}.mobileLogoWrap img{width:160px;height:auto}.dashStats{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:1fr 1fr}.managementCards{grid-template-columns:1fr 1fr}.portalHero{align-items:flex-start}.heroAction{min-width:210px}.planningGrid{grid-template-columns:1fr}}
@media(max-width:620px){.accessGate{padding:12px;background:#fff}.loginShell{box-shadow:none;border:0;border-radius:0}.accessCard{padding:28px 20px}.accessBrand h2{font-size:30px}.headerInner{height:68px;padding:8px 15px}.brandrow img{height:49px}.brand{font-size:15px}.headerStatus{display:none}.home{padding:18px 14px 32px}.portalHero{padding:22px 19px;display:block}.portalHero h1{font-size:26px}.heroAction{margin-top:18px;width:100%}.dashStats{grid-template-columns:repeat(2,1fr);gap:8px}.dashStat{padding:13px}.cards,.managementCards{grid-template-columns:1fr}.card{min-height:0;padding:15px}.groupTitle{display:block;margin-top:22px}.groupTitle small{display:block;margin-top:3px}.grid{grid-template-columns:1fr}.clientsBody,.ordersBody,.parcBody,.planningBody{padding:14px}.statsbar{grid-template-columns:1fr 1fr 1fr}.cloudHead{align-items:flex-start}.logoutBtn{padding:8px 9px}}

/* V12 — isolation des écrans métier */
.app{position:relative;overflow-x:hidden}
.module,.clients,.orders,.parc,.planning,.clim,.history{min-height:100vh;background:var(--paper);margin:0}
.module[style*="display: block"],.clients[style*="display: block"],.orders[style*="display: block"],.parc[style*="display: block"],.planning[style*="display: block"],.clim[style*="display: block"],.history[style*="display: block"]{position:relative;inset:auto;width:100%;}

/* V14 — Parc Clim + planning central */
.climateCard{border-color:#bfdaf4;background:linear-gradient(180deg,#fff,#f7fbff)}.climateMini{background:#e8f5ff;color:#0b66ad;font-size:9px}.climHero,.weekHead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.climStats,.planningStats{grid-template-columns:repeat(4,1fr)}.planningStats{grid-template-columns:repeat(5,1fr)}.alertStat b{color:var(--danger)}.formHead{display:flex;justify-content:space-between;gap:12px;margin-bottom:13px}.climToolbar{display:flex;gap:12px;align-items:end;margin:14px 0}.climToolbar>div{min-width:220px}.climToolbarGrow{flex:1}.climCard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:12px;box-shadow:0 5px 16px rgba(5,32,83,.035)}.climCardHead{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.climIdentity{display:flex;gap:12px;align-items:flex-start}.climIcon{width:43px;height:43px;border-radius:12px;background:#eaf5ff;color:#0d6db7;display:grid;place-items:center;font-weight:950}.climTitle{font-weight:950;color:var(--navy);font-size:16px}.climMeta,.climDetail{font-size:12px;color:var(--steel);line-height:1.5}.climDetail{margin-top:10px;padding-top:10px;border-top:1px solid #edf1f5;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.climDetail b{display:block;color:var(--ink);font-size:12px}.climDue{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.badge.clim-ok{background:#e3f4ec;color:#246b45}.badge.clim-soon{background:#fff2cf;color:#875e00}.badge.clim-late{background:#f8ded8;color:#9b2a1b}.badge.clim-install{background:#e7eef8;color:#244d78}.weekHead{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 15px}.weekActions{display:flex;gap:6px}.weekSummary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}.dayCol{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px;min-height:95px}.dayCol.today{border-color:#f1b3a0;box-shadow:inset 0 3px 0 var(--orange)}.dayName{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--steel);font-weight:900}.dayDate{font-weight:950;color:var(--navy);margin:2px 0 7px}.dayItem{font-size:10px;line-height:1.35;padding:5px 6px;border-radius:6px;background:var(--soft);margin-top:5px}.requestRow.isLate{border-color:#edc1b7}.requestRow.isToday{box-shadow:inset 3px 0 0 var(--orange)}.statusBadge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850;background:#eef2f6;color:var(--navy)}.statusBadge.a_programmer{background:#fff2cf;color:#875e00}.statusBadge.planifie{background:#e7eef8;color:#244d78}.statusBadge.en_cours{background:#e6f1ff;color:#0b5fa5}.statusBadge.termine{background:#dff2e8;color:#246b45}.statusBadge.reporte{background:#f2e9fb;color:#70409b}.statusBadge.annule{background:#eceff3;color:#667085}.weeklyMailPanel{position:sticky;top:75px}.mailPreview{white-space:pre-line;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:9px;padding:12px;margin-top:10px;font-size:12px;line-height:1.5;color:var(--ink);max-height:280px;overflow:auto}.planningBody textarea,.climBody textarea{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;font-size:15px;resize:vertical;color:var(--ink);background:#fff}
@media(max-width:1000px){.dashStats{grid-template-columns:repeat(3,1fr)}.weekSummary{grid-template-columns:repeat(3,1fr)}.climDetail{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.climHero,.weekHead,.climToolbar{display:block}.climHero .btn{margin-top:10px}.climStats,.planningStats{grid-template-columns:repeat(2,1fr)}.weekActions{margin-top:10px}.weekSummary{grid-template-columns:1fr 1fr}.climToolbar>div{min-width:0;margin-top:10px}.climCardHead{display:block}.climDue{justify-content:flex-start;margin-top:10px}.climDetail{grid-template-columns:1fr}.weeklyMailPanel{position:static}}

/* V15 — vue planning directement sur le tableau de bord */
.dashPlanningOverview{margin:18px 0 24px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 7px 22px rgba(5,32,83,.045)}
.dashPlanningHead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.dashPlanningEyebrow{font-size:10px;font-weight:950;letter-spacing:1.1px;color:var(--orange);text-transform:uppercase}
.dashPlanningHead h2{margin:3px 0 3px;color:var(--navy);font-size:21px}.dashPlanningHead p{margin:0;color:var(--steel);font-size:12px;line-height:1.45}
.dashPlanningOpen{border:0;border-radius:9px;background:var(--navy);color:#fff;padding:10px 13px;font-weight:900;font-size:12px;white-space:nowrap}.dashPlanningOpen span{color:#ff8a63;margin-left:4px}
.dashPlanningAlerts{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.dashAlert{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#f3f6f9;color:var(--navy);font-size:10px;font-weight:850}.dashAlert.warn{background:#fff2cf;color:#875e00}.dashAlert.late{background:#f8ded8;color:#9b2a1b}.dashAlert.ok{background:#e3f4ec;color:#246b45}
.dashWeekGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.dashDay{min-width:0;border:1px solid #e7edf3;border-radius:10px;padding:9px;background:#fbfcfd}.dashDay.today{background:#fff8f5;border-color:#f1b3a0;box-shadow:inset 0 3px 0 var(--orange)}.dashDayHead{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin-bottom:6px}.dashDayName{font-size:9px;letter-spacing:.7px;text-transform:uppercase;font-weight:950;color:var(--steel)}.dashDayDate{font-size:14px;font-weight:950;color:var(--navy)}.dashDayCount{font-size:9px;color:var(--steel);font-weight:800}.dashDayItems{display:grid;gap:5px}.dashPlanItem{padding:6px;border-radius:7px;background:#eef3f8;min-width:0}.dashPlanTime{font-size:9px;font-weight:950;color:var(--orange);margin-bottom:2px}.dashPlanTitle{font-size:10px;font-weight:900;color:var(--navy);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashPlanMeta{font-size:9px;color:var(--steel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.dashPlanMore{font-size:9px;color:var(--navy);font-weight:850;padding-top:2px}.dashDayEmpty{font-size:9px;color:#9aa6b2;padding:6px 0}.dashUnplanned{margin-top:9px;padding:9px 11px;border-radius:9px;background:#fff7e5;color:#775400;font-size:11px;font-weight:800}
@media(max-width:1000px){.dashWeekGrid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.dashPlanningOverview{padding:14px;margin-top:14px}.dashPlanningHead{display:block}.dashPlanningOpen{width:100%;margin-top:11px}.dashWeekGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.dashWeekGrid{grid-template-columns:1fr}.dashDay{padding:10px}.dashDayItems{grid-template-columns:1fr 1fr}.dashDayEmpty{grid-column:1/-1}}
/* V17 — Rapport Clim */
.toolCards{grid-template-columns:repeat(4,1fr)}
.cardIconSvg.climateReportIcon{background:#e9f7f7;color:#0b5f6a;font-size:14px;letter-spacing:.5px}
@media(max-width:1050px){.toolCards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.toolCards{grid-template-columns:1fr}}

/* V20 HISTORIQUES */
.historyHero{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}.historyStat{min-width:130px;text-align:center;border-left:3px solid var(--orange);padding:6px 12px}.historyStat b{display:block;font-size:28px;color:var(--navy)}.historyStat span{font-size:10px;text-transform:uppercase;font-weight:850;color:var(--steel)}.historyFilters{display:grid;grid-template-columns:1.4fr 1fr 1.3fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:14px}.historyFilters select{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;background:#fff;font-size:14px;color:var(--ink)}.historyFocus{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#eef5ff;border:1px solid #cbdcf1;border-radius:12px;padding:12px 14px;margin-bottom:12px}.historyFocus div{display:flex;flex-direction:column;min-width:0}.historyFocus b,.historyFocus strong{color:var(--navy)}.historyFocus span{font-size:12px;color:var(--steel)}.historyCard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:12px}.historyCardHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.historyDoc{font-weight:950;color:var(--navy);font-size:16px}.historyMeta{font-size:11px;color:var(--steel);margin-top:3px}.historyType{background:#fff1ec;color:#a83d1b;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900}.historyClientLine{margin:11px 0;color:var(--ink);font-size:13px}.historyClientLine span{color:var(--steel)}.historyEquipments{display:grid;gap:8px}.historyEq{background:#f8fafc;border:1px solid #e4e9ef;border-radius:9px;padding:10px;display:grid;grid-template-columns:1fr auto;gap:6px 10px}.historyEq b{color:var(--navy)}.historyEq span{display:block;font-size:11px;color:var(--steel);margin-top:2px}.historyEq p{grid-column:1/-1;margin:0;font-size:12px;line-height:1.45}.historyStatus{font-weight:850;color:#49647e!important}.historyEq p strong{color:var(--navy)}
@media(max-width:700px){.historyHero,.historyFocus{display:block}.historyStat{border-left:0;border-top:3px solid var(--orange);margin-top:12px}.historyFilters{grid-template-columns:1fr}.historyEq{grid-template-columns:1fr}.historyBody{padding:14px}}

/* V21 — Clients particuliers/pro & historiques donneurs d'ordre */
.clientTypeHint{margin-top:10px;padding:10px 12px;border-radius:8px;background:#eef4fb;color:#526b89;font-size:13px;border-left:4px solid #0b4fa3}
.clientTypeBadge{display:inline-flex;align-items:center;margin-left:7px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;vertical-align:middle}
.clientTypeBadge.professionnel{background:#e8f0fb;color:#0a3d82}.clientTypeBadge.particulier{background:#fff0e9;color:#b43819}
.orderHistoryPanel{margin-top:18px;padding:18px;border:1px solid #d7e0eb;border-radius:16px;background:#fff}.orderHistoryHead{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.orderHistoryItem{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-top:1px solid #e6ebf1}.orderHistoryItem:first-child{border-top:0}.orderHistoryItem b{display:block;color:#082a68}.orderHistoryItem span{display:block;color:#667b95;font-size:12px;margin-top:3px}.orderHistoryItem>.historyType{display:inline-flex;margin:0;padding:5px 8px;border-radius:999px;background:#eef3f8;color:#173b70;font-weight:800;white-space:nowrap}.hidden{display:none!important}
@media(max-width:700px){.orderHistoryHead,.orderHistoryItem{align-items:flex-start;flex-direction:column}.orderHistoryItem>.historyType{align-self:flex-start}}

/* V23 — planning glissant + todo sur le tableau de bord */
.dashPlanningSplit{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:stretch}
.dashAgendaPanel,.dashTodoPanel{min-width:0}
.dashSliderTop,.dashTodoHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.dashSliderTop>div:first-child,.dashTodoHead>div{display:flex;flex-direction:column;min-width:0}
.dashSliderTop b,.dashTodoHead b{color:var(--navy);font-size:13px}.dashSliderTop span,.dashTodoHead span{color:var(--steel);font-size:10px;margin-top:2px}
.dashSliderActions{display:flex;align-items:center;gap:5px;flex:none}.dashSliderActions button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:8px;min-height:34px;padding:7px 9px;font-weight:850;font-size:11px}.dashSliderActions button:hover{background:#f5f8fb}
.dashWeekGrid.dashWeekSlider{display:flex;gap:9px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:1px 2px 8px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#bdc8d6 transparent}
.dashWeekSlider .dashDay{flex:0 0 205px;scroll-snap-align:start;min-height:150px;background:#fbfcfd}
.dashWeekSlider .dashDay.today{flex-basis:230px;background:#fff7f3;border:2px solid #ef6a42;box-shadow:inset 0 4px 0 var(--orange)}
.dashWeekSlider .dashDay.today .dashDayName{color:var(--orange);font-size:10px}.dashWeekSlider .dashDay.today .dashDayDate{font-size:18px}
.dashWeekSlider .dashDayEmpty{min-height:62px;display:flex;align-items:center;color:#9aa6b2}
.dashWeekSlider .dashUnplannedCard{background:#fff9eb;border-color:#f1d48d}.dashWeekSlider .dashUnplannedCard .dashDayName{color:#8a6200}
.dashTodoPanel{border-left:1px solid #e7edf3;padding-left:14px}.dashTodoHead{margin-bottom:8px}.dashTodoCount{display:grid!important;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff!important;font-size:12px!important;font-weight:900;margin:0!important;flex:none}
.dashTodoList{display:grid;gap:7px}.dashTodoItem{display:grid;grid-template-columns:10px 1fr;gap:8px;align-items:start;padding:9px 10px;border:1px solid #e7edf3;border-radius:9px;background:#fbfcfd}.dashTodoItem.today{background:#fff7f3;border-color:#f1b3a0}.dashTodoItem.late{background:#fff6f4;border-color:#edc1b7}.dashTodoDot{width:8px;height:8px;border-radius:50%;background:#9fb0c3;margin-top:4px}.dashTodoItem.today .dashTodoDot{background:var(--orange)}.dashTodoItem.late .dashTodoDot{background:#b93a24}.dashTodoItem b{display:block;color:var(--navy);font-size:11px;line-height:1.3}.dashTodoItem small{display:block;color:var(--steel);font-size:9px;margin-top:3px}.dashTodoEmpty{padding:15px 10px;border:1px dashed #cdd7e2;border-radius:9px;color:#6c7d91;font-size:11px;text-align:center}.dashTodoMore{font-size:10px;color:var(--navy);font-weight:850;padding:4px 2px}
@media(max-width:1050px){.dashPlanningSplit{grid-template-columns:1fr}.dashTodoPanel{border-left:0;border-top:1px solid #e7edf3;padding-left:0;padding-top:12px}.dashTodoList{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashSliderTop{align-items:flex-start}.dashSliderActions button:nth-child(1){display:none}.dashWeekSlider .dashDay{flex-basis:78vw;max-width:300px}.dashWeekSlider .dashDay.today{flex-basis:82vw}.dashTodoList{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.dashTodoItem{flex:0 0 78%;scroll-snap-align:start}.dashSliderTop>div:first-child span{max-width:220px}.dashSliderActions button{min-height:36px}}
