*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial;background:#f8fafc;color:#0f172a}button,input,select,textarea{font:inherit}button{cursor:pointer}header{height:70px;display:flex;justify-content:space-between;align-items:center;padding:10px 24px;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:5}.brand{display:flex;gap:10px;align-items:center;border:0;background:none}.brand>span{font-size:24px;background:#f97316;padding:10px;border-radius:14px}.brand b{text-align:left}.brand small{display:block;color:#ea580c;letter-spacing:.12em}header em{font-size:12px;color:#c2410c}.layout{max-width:1320px;margin:auto;display:grid;grid-template-columns:220px 1fr;gap:22px;padding:22px}nav{background:#fff;border:1px solid #e2e8f0;padding:10px;border-radius:20px;height:max-content;position:sticky;top:92px}nav button{display:block;width:100%;border:0;background:#fff;color:#475569;padding:11px;text-align:left;border-radius:12px;font-weight:700}nav button.on{background:#0f172a;color:#fff}h1{margin:3px 0 16px}.head{display:flex;justify-content:space-between;align-items:end;gap:10px}.eyebrow{color:#ea580c;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.muted{color:#64748b}.card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:17px;margin-bottom:12px}.editor{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #fed7aa;border-radius:15px;padding:11px;margin-bottom:15px}.editor span{color:#c2410c;font-weight:800}.btn{border:0;background:#ea580c;color:#fff;border-radius:9px;padding:9px 13px;font-weight:800}.btn.alt{background:#fff;color:#0f172a;border:1px solid #cbd5e1}.btn.danger{background:#fff;color:#be123c;border:1px solid #fecdd3}.hero{background:linear-gradient(135deg,#020617,#431407);color:#fff;display:grid;grid-template-columns:1fr auto}.hero h2{font-size:55px;margin:5px 0}.tiles{display:flex;gap:7px}.tile{border:0;color:#fff;border-radius:15px;padding:12px;min-width:90px}.tile b{font-size:26px;display:block}.greenS{background:#047857}.yellowS{background:#b45309}.redS{background:#be123c}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.kpis h3{margin:5px 0}.pup div{display:flex;justify-content:space-between;font-size:12px}.grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}.setgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.setstate{border:1px solid #e2e8f0;border-radius:13px;padding:10px}.top{display:flex;justify-content:space-between}.progress{height:9px;background:#e2e8f0;border-radius:9px;overflow:hidden}.progress i{display:block;height:100%;background:#f97316}.badge{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid #cbd5e1;font-size:12px;font-weight:800}.badge.green{background:#d1fae5;color:#065f46}.badge.yellow{background:#fef3c7;color:#92400e}.badge.red{background:#ffe4e6;color:#9f1239}.blocker{border-top:1px solid #e2e8f0;margin-top:8px;padding-top:7px;font-size:12px}.filters{display:grid;grid-template-columns:1fr 220px;gap:8px;margin:12px 0}.input,select,textarea{width:100%;border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:9px;padding:9px}.songrow{display:grid;grid-template-columns:1fr 260px auto;gap:10px;align-items:center}.range{display:flex;gap:8px;align-items:center}.range input{width:100%}.comments>div{display:grid;grid-template-columns:100px 145px 1fr;gap:7px;padding:7px;background:#f8fafc;border-radius:8px;margin-top:5px;font-size:13px}.compose{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:7px}.compose textarea{min-height:55px}.setcard{padding:0;overflow:hidden}.sethead{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:#fff;color:#0f172a;padding:15px;text-align:left}.setleft{display:flex;align-items:center;gap:10px}.num{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#0f172a;color:#fff;font-weight:900}.setbody{background:#f8fafc;border-top:1px solid #e2e8f0;padding:15px}.autostatus{display:flex;gap:9px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px}.form2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.setSong{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:9px;margin-top:9px}.setSongTop{display:grid;grid-template-columns:1fr 260px auto auto auto;gap:6px;align-items:center}.inlineScore{display:flex;gap:6px;align-items:center}.inlineScore input{width:100%}.icon{border:0;border-radius:8px;padding:7px}.derived{background:#fff7ed;border-left:4px solid #f97316;border-radius:9px;padding:10px;margin-top:12px}.derived p{font-size:13px}.history{max-height:320px;overflow:auto}.history div{display:grid;grid-template-columns:150px 145px 1fr;gap:7px;padding:7px;border-bottom:1px solid #e2e8f0;font-size:13px}.table{overflow:auto}.table table{border-collapse:collapse;width:100%;min-width:850px}th{background:#0f172a;color:#fff;text-align:left;padding:10px}td{padding:8px;border-bottom:1px solid #e2e8f0}.rehearsalTop{display:grid;grid-template-columns:130px 1fr 170px auto;gap:8px}.attendance{margin-top:10px;border:1px solid #e2e8f0;border-radius:10px;padding:9px}.attendanceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:9px 0}.chefgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.chef{text-align:center}.avatar{display:grid;place-items:center;margin:auto;width:70px;height:70px;border-radius:50%;background:#0f172a;color:#fff;font-weight:900}.loginError{display:none;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:9px;padding:9px;font-weight:700}.loginError.on{display:block}dialog{border:0;border-radius:18px;width:min(520px,92%)}dialog::backdrop{background:#020617aa}.x{float:right;border:0;background:#fff}@media(max-width:900px){.layout{display:block;padding:12px}nav{position:fixed;bottom:0;left:0;right:0;top:auto;z-index:9;display:grid;grid-template-columns:repeat(6,1fr);border-radius:0}nav button{text-align:center;font-size:10px}.hero{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.setgrid{grid-template-columns:1fr}.filters,.form2,.songrow,.setSongTop,.rehearsalTop{grid-template-columns:1fr}.comments>div,.history div{grid-template-columns:1fr}.attendanceGrid{grid-template-columns:1fr}.chefgrid{grid-template-columns:1fr 1fr}.editor{flex-direction:column;align-items:stretch;gap:8px}main{padding-bottom:70px}}

/* V2.6 - effectifs groupés, traçabilité et mode consultation */
.familyGroups{display:grid;gap:10px;margin-top:10px}.familyGroup{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.familyHead{display:flex;justify-content:space-between;background:#f1f5f9;padding:8px 10px;color:#0f172a}.familyHead strong{color:#c2410c}.familyGroup .pup{padding:5px 10px}.familyGroup .pup div{padding:4px 0;border-bottom:1px dashed #e2e8f0}.familyGroup .pup div:last-child{border-bottom:0}.familyGroup .pup .missing{color:#9f1239;background:#fff1f2;margin:0 -6px;padding:4px 6px;border-radius:6px}.effectif{grid-row:span 2}.modifiedBy{display:block;margin-top:7px;color:#475569}.setCounts{display:flex;gap:5px;margin-top:8px}.songDetail{color:#0f172a;background:#fff}.setcard,.sethead,.setbody,.setSong{color:#0f172a}.sethead{background:#fff}.setbody{background:#f8fafc}
@media(max-width:900px){.effectif{grid-row:auto}}

/* V2.5.1 - Charte Tekila et lisibilite */
:root{--tekila-navy:#0B1F3A;--tekila-fuchsia:#E6007E;--tekila-white:#FFFFFF;--tekila-bg:#F7F8FC;--tekila-border:#D8DEEA}
body{background:var(--tekila-bg);color:var(--tekila-navy)}
header{background:var(--tekila-navy);color:var(--tekila-white);border-bottom:4px solid var(--tekila-fuchsia)}
header .brand,header .brand b{color:var(--tekila-white)}
header .brand>span{background:var(--tekila-fuchsia)}
header .brand small,header em{color:var(--tekila-white)}
nav{background:var(--tekila-navy);border-color:var(--tekila-navy)}
nav button{background:transparent;color:var(--tekila-white)}
nav button:hover{background:rgba(255,255,255,.12)}
nav button.on{background:var(--tekila-fuchsia);color:var(--tekila-white)}
.eyebrow,.editor span{color:var(--tekila-fuchsia)}
.btn{background:var(--tekila-fuchsia);color:var(--tekila-white)}
.btn:hover{filter:brightness(.92)}
.btn.alt{background:var(--tekila-white);color:var(--tekila-navy);border-color:var(--tekila-navy)}
.card,.songDetail,.setcard,.sethead,.setSong{background:var(--tekila-white);color:var(--tekila-navy);border-color:var(--tekila-border)}
.hero{background:linear-gradient(135deg,var(--tekila-navy),#142F57);border:2px solid var(--tekila-fuchsia)}
.progress i{background:var(--tekila-fuchsia)}
.editor{border:2px solid var(--tekila-fuchsia);background:var(--tekila-white)}
.familyGroup{border:2px solid var(--tekila-navy)}
.familyHead{background:var(--tekila-navy);color:var(--tekila-white)}
.familyHead strong{color:var(--tekila-white)}
.familyGroup .pup{background:var(--tekila-white)}
.pupitre-rate{margin:5px 0!important;padding:7px 9px!important;border:2px solid transparent!important;border-radius:9px!important;font-weight:750}
.pupitre-rate.rate-green{background:#DCFCE7;color:#166534;border-color:#22C55E!important}
.pupitre-rate.rate-orange{background:#FFEDD5;color:#9A3412;border-color:#F97316!important}
.pupitre-rate.rate-red{background:#FEE2E2;color:#991B1B;border-color:#DC2626!important}
.setcard{border:2px solid var(--tekila-navy)}
.sethead{background:var(--tekila-navy);color:var(--tekila-white)}
.sethead .muted{color:#E6ECF5}
.sethead .num{background:var(--tekila-fuchsia);color:var(--tekila-white)}
.setbody{background:#EEF2F8;color:var(--tekila-navy);border-top:4px solid var(--tekila-fuchsia)}
.autostatus{background:var(--tekila-white);border:2px solid var(--tekila-navy)}
.setSong{border:2px solid #AEBBD0;box-shadow:0 2px 7px rgba(11,31,58,.08)}
.rehearsal-card,.rehearsalRow,.rehearsalTop{color:var(--tekila-navy)}
.attendance{background:var(--tekila-white);border:2px solid var(--tekila-navy)}
dialog{border:3px solid var(--tekila-fuchsia);color:var(--tekila-navy)}
@media(max-width:900px){nav{border-top:3px solid var(--tekila-fuchsia)}}

/* V2.5.2 - Dashboard compact et repetitions contrastees */
.kpis{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;grid-auto-flow:dense}
.kpis>.card{height:auto;min-height:132px;margin-bottom:0}
.kpis>.effectif{grid-row:auto;min-height:132px}
.grid2{align-items:start;margin-top:12px}
.grid2>.card{height:auto}
.setgrid{align-items:start}
.rehearsalList{display:grid;gap:14px}
.rehearsalCard{padding:0;overflow:hidden;border:3px solid var(--tekila-navy);box-shadow:0 4px 14px rgba(11,31,58,.12)}
.rehearsalCard.past{border-color:#64748B;background:#F1F5F9}
.rehearsalCard.today{border-color:var(--tekila-fuchsia);background:#FFF0F8;box-shadow:0 0 0 3px rgba(230,0,126,.13)}
.rehearsalCard.future{border-color:var(--tekila-fuchsia);background:var(--tekila-white)}
.rehearsalCard.unknown{border-color:#F97316;background:#FFF7ED}
.rehearsalStatus{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:var(--tekila-navy);color:var(--tekila-white)}
.timeBadge,.attendanceBadge,.draftBadge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;letter-spacing:.05em}
.timeBadge.past{background:#CBD5E1;color:#334155}.timeBadge.today,.timeBadge.future{background:var(--tekila-fuchsia);color:#fff}.timeBadge.unknown{background:#F97316;color:#fff}
.attendanceBadge{background:#DCFCE7;color:#166534}.draftBadge{background:#FFEDD5;color:#9A3412}
.rehearsalTop{padding:14px;align-items:end}.rehearsalTop label{font-weight:800;color:var(--tekila-navy)}
.rehearsalTop .input,.rehearsalTop select{margin-top:5px;background:#fff;border:2px solid #AEBBD0}
.rehearsalComment{display:block;padding:0 14px 14px;font-weight:800;color:var(--tekila-navy)}
.rehearsalComment textarea{margin-top:5px;min-height:82px;background:#fff;border:2px solid #AEBBD0}
.rehearsalCard .attendance{margin:0 14px 14px;border:2px solid var(--tekila-navy);background:#fff}
.rehearsalCard .attendance summary{font-weight:900;color:var(--tekila-navy);padding:5px}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.kpis{grid-template-columns:1fr}.rehearsalStatus{align-items:flex-start;flex-direction:column}}

/* V2.5.3 - Dashboard imbrique et repetitions plus lisibles */
.dashboardMosaic{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(250px,.9fr);gap:12px;align-items:start}
.dashboardMain,.dashboardSide{min-width:0}
.compactKpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.compactKpi{min-height:96px;margin:0;padding:14px 16px;border:2px solid var(--tekila-border)}
.compactKpi h3{margin:5px 0 7px;font-size:22px}
.dashboardBottom{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:12px;align-items:start}
.dashboardSets,.dashboardHistory,.effectifPanel{margin:0}
.dashboardHistory .history{max-height:600px}
.effectifPanel{border:2px solid var(--tekila-navy);box-shadow:0 5px 16px rgba(11,31,58,.10)}
.effectifTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.effectifTitle h3{margin:3px 0;font-size:25px}
.effectifIcon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--tekila-fuchsia);color:#fff;font-size:21px;font-weight:900}
.familyGroups{gap:8px}.familyGroup{border-width:2px}.familyHead{padding:8px 10px}.familyGroup .pup{padding:5px 8px}
.pupitre-rate{font-size:12px}
/* Repetitions : contraste structurel proche des Sets */
.rehearsalCard{border-width:3px!important;border-radius:18px!important}
.rehearsalCard.past{background:#E9EEF5!important;border-color:#64748B!important}
.rehearsalCard.today{background:#FFF0F8!important;border-color:var(--tekila-fuchsia)!important}
.rehearsalCard.future{background:#FFFFFF!important;border-color:var(--tekila-fuchsia)!important}
.rehearsalCard.unknown{background:#FFF7ED!important;border-color:#F97316!important}
.rehearsalStatus{min-height:50px;padding:11px 15px!important;border-bottom:3px solid var(--tekila-fuchsia)}
.rehearsalCard.past .rehearsalStatus{background:#475569!important;border-bottom-color:#94A3B8}
.rehearsalCard.future .rehearsalStatus,.rehearsalCard.today .rehearsalStatus{background:var(--tekila-navy)!important}
.rehearsalTop{gap:12px!important;background:rgba(255,255,255,.78)}
.rehearsalTop label,.rehearsalComment{font-size:13px;letter-spacing:.01em}
.rehearsalTop .input,.rehearsalTop select,.rehearsalComment textarea{border-color:var(--tekila-navy)!important;box-shadow:inset 0 0 0 1px rgba(11,31,58,.04)}
.rehearsalCard .attendance{box-shadow:0 2px 8px rgba(11,31,58,.08)}
@media(max-width:1180px){.dashboardMosaic{grid-template-columns:1fr}.dashboardSide{order:2}.effectifPanel .familyGroups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.dashboardBottom{grid-template-columns:1fr}.compactKpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.compactKpis{grid-template-columns:1fr}.effectifPanel .familyGroups{grid-template-columns:1fr}}

/* V2.5.4 - correction finale Dashboard et Répétitions */
/* Dashboard: la colonne de droite ne gouverne plus la hauteur de la colonne principale. */
.dashboardMosaic{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;align-items:start}
.dashboardMain{display:flex;flex-direction:column;gap:12px;min-width:0}
.dashboardSide{min-width:0;align-self:start;position:sticky;top:92px}
.compactKpis{margin:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.compactKpi{min-height:88px;padding:12px 15px;display:flex;flex-direction:column;justify-content:center}
.compactKpi h3{font-size:21px;margin:4px 0}
.dashboardBottom{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.75fr);gap:12px;align-items:start;margin:0}
.dashboardSets,.dashboardHistory{margin:0;align-self:start}
.dashboardSets .setgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.dashboardHistory .history{max-height:560px}
.effectifPanel{margin:0;padding:14px}
.effectifPanel .familyGroups{grid-template-columns:1fr;gap:8px}
.effectifPanel .familyGroup{margin:0}
/* Répétitions: structure fortement séparée et identité temporelle immédiate. */
.rehearsalList{gap:18px}
.rehearsalCard{margin:0!important;border-radius:18px!important;overflow:hidden!important;border-width:4px!important}
.rehearsalCard .rehearsalStatus{padding:12px 16px!important;min-height:54px!important}
.rehearsalCard.past{border-color:#64748B!important;background:#E8EDF4!important}
.rehearsalCard.past .rehearsalStatus{background:#475569!important;border-bottom:4px solid #94A3B8!important}
.rehearsalCard.today{border-color:#E6007E!important;background:#FFF0F8!important;box-shadow:0 0 0 4px rgba(230,0,126,.12)!important}
.rehearsalCard.today .rehearsalStatus{background:#0B1F3A!important;border-bottom:4px solid #E6007E!important}
.rehearsalCard.future{border-color:#E6007E!important;background:#FFFFFF!important}
.rehearsalCard.future .rehearsalStatus{background:#0B1F3A!important;border-bottom:4px solid #E6007E!important}
.rehearsalCard.unknown{border-color:#F97316!important;background:#FFF7ED!important}
.rehearsalCard.unknown .rehearsalStatus{background:#7C2D12!important;border-bottom:4px solid #F97316!important}
.timeBadge{font-size:13px!important;padding:6px 12px!important}
.timeBadge.past{background:#E2E8F0!important;color:#334155!important}
.timeBadge.today,.timeBadge.future{background:#E6007E!important;color:#FFFFFF!important}
.attendanceBadge{background:#DCFCE7!important;color:#166534!important;border:1px solid #22C55E}
.draftBadge{background:#FFEDD5!important;color:#9A3412!important;border:1px solid #F97316}
.rehearsalTop{padding:16px!important;gap:13px!important;background:rgba(255,255,255,.94)!important;border-bottom:1px solid #CBD5E1}
.rehearsalTop label{font-size:13px;font-weight:900!important}
.rehearsalComment{padding:14px 16px!important;background:rgba(255,255,255,.72)}
.rehearsalComment textarea{min-height:88px!important;background:#FFFFFF!important}
.rehearsalCard .attendance{margin:0 16px 16px!important;padding:11px!important;background:#FFFFFF!important;border:2px solid #0B1F3A!important}
.rehearsalCard .attendance summary{padding:6px!important;font-size:14px}
@media(max-width:1200px){.dashboardMosaic{grid-template-columns:1fr}.dashboardSide{position:static}.effectifPanel .familyGroups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.dashboardBottom{grid-template-columns:1fr}.compactKpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboardSets .setgrid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.compactKpis,.dashboardSets .setgrid,.effectifPanel .familyGroups{grid-template-columns:1fr}.rehearsalStatus{align-items:flex-start!important;flex-direction:column}}

/* V2.5.6 - cockpit compact : progression, sets 3 colonnes, historique paysage */
.hero{align-items:center;gap:24px}.heroScore{min-width:0}.heroValue{display:flex;align-items:end;gap:12px}.heroValue h2{margin:4px 0}.heroValue span{padding-bottom:9px;color:#cbd5e1;font-size:12px;font-weight:700}.projectProgress{width:100%;height:12px;background:#ffffff26;border:1px solid #ffffff21;border-radius:999px;overflow:hidden;margin-top:8px}.projectProgress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f97316,#fbbf24);box-shadow:0 0 12px #f9731680}.dashboardWork{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:12px;align-items:start}.dashboardSetsWrap{min-width:0}.dashboardSets{margin-bottom:0}.dashboardSets .setgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dashboardSide{min-width:0}.dashboardHistory{width:100%;margin-top:12px}.dashboardHistory .history{max-height:240px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.dashboardHistory .history>div{grid-template-columns:135px 125px minmax(0,1fr);align-items:center}.compactKpis{margin:12px 0}.setstate{min-width:0}.setstate h4{margin:7px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setCounts{margin:6px 0}.blocker strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1100px){.dashboardWork{grid-template-columns:1fr}.dashboardSets .setgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboardHistory .history{grid-template-columns:1fr}}
@media(max-width:760px){.dashboardSets .setgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.heroValue{align-items:center}.heroValue span{padding-bottom:0}}
@media(max-width:500px){.dashboardSets .setgrid{grid-template-columns:1fr}.dashboardHistory .history>div{grid-template-columns:1fr}.projectProgress{height:10px}}

/* Correctif V2.5.6 - texte hero blanc et dashboard vertical sans chevauchement */
.hero,.heroScore,.heroScore small,.heroValue,.heroValue h2,.heroValue span{color:#FFFFFF!important}
.heroScore small{opacity:1!important;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.heroValue h2{color:#FFFFFF!important;text-shadow:0 2px 4px rgba(0,0,0,.32)}
.heroValue span{color:#FFFFFF!important;opacity:.92!important;text-shadow:0 1px 2px rgba(0,0,0,.3)}
/* Nouvelle grille demandee : KPI, Effectif pleine largeur, Sets, Historique */
.dashboardWork{display:flex!important;flex-direction:column!important;gap:12px!important;align-items:stretch!important}
.dashboardSetsWrap{order:2;width:100%!important;min-width:0}
.dashboardSide{order:1;width:100%!important;min-width:0;position:static!important;top:auto!important;align-self:stretch!important;z-index:auto!important}
.effectifPanel{width:100%!important;margin:0!important;position:static!important;max-height:none!important;overflow:visible!important}
.effectifPanel .familyGroups{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.dashboardHistory{clear:both!important;position:relative!important;z-index:0!important;width:100%!important;margin-top:12px!important}
.dashboardHistory .history{max-height:none!important}
@media(max-width:760px){.effectifPanel .familyGroups{grid-template-columns:1fr!important}}

/* V3 */
.serverStatus{font-size:12px;color:#64748b}
