:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#182230;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}.shell{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.sidebar{background:#111b24;color:#fff;padding:24px 16px;position:sticky;top:0;height:100vh}.brand{font-size:24px;font-weight:800;letter-spacing:.5px}.subbrand{font-size:11px;color:#9fb0be;margin:3px 0 28px}.nav button{width:100%;text-align:left;border:0;background:transparent;color:#becbd5;padding:11px 12px;border-radius:8px;margin:3px 0;font-size:14px;cursor:pointer}.nav button.active,.nav button:hover{background:#22313d;color:#fff}.version{position:absolute;bottom:18px;left:28px;color:#8294a2;font-size:11px}.main{padding:26px 32px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.topbar h1{margin:0;font-size:25px}.badge{background:#e9eff3;border-radius:999px;padding:8px 12px;font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.card,.panel{background:white;border:1px solid #dde5ea;border-radius:12px;box-shadow:0 2px 8px #1a26330a}.card{padding:18px}.metric{font-size:28px;font-weight:800;margin-top:8px}.muted{color:#687783;font-size:12px}.panel{padding:18px;margin-bottom:18px}.panel h2{font-size:16px;margin:0 0 14px}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:12px}.btn{border:0;border-radius:8px;background:#1d6d86;color:#fff;padding:9px 13px;cursor:pointer;font-weight:600}.btn.secondary{background:#eaf0f3;color:#273947}.btn.small{padding:6px 9px;font-size:12px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#63717d;font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #dce4e8;padding:10px 8px}td{padding:11px 8px;border-bottom:1px solid #edf1f3}tr:last-child td{border-bottom:0}.status{font-size:11px;padding:4px 7px;border-radius:999px;background:#e8f5ee;color:#216b45}.status.inactive{background:#f1f1f1;color:#777}.progress{height:8px;background:#e9eef1;border-radius:99px;overflow:hidden;min-width:100px}.progress i{display:block;height:100%;background:#3e849b}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.formgrid .wide{grid-column:span 2}.field label{display:block;font-size:11px;color:#61717d;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:9px;border:1px solid #cfd9df;border-radius:7px;background:white}.actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.modalback{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:white;width:min(800px,96vw);max-height:90vh;overflow:auto;border-radius:14px;padding:22px}.modal h2{margin-top:0}.empty{padding:30px;text-align:center;color:#7a8994}.warn{color:#a35a1d}.money{text-align:right}.error{background:#fff1f1;color:#9d2929;border:1px solid #f0c7c7;padding:10px;border-radius:8px;margin-bottom:12px}@media(max-width:900px){.shell{grid-template-columns:75px 1fr}.brand{font-size:12px}.subbrand,.nav button span,.version{display:none}.main{padding:18px}.cards{grid-template-columns:repeat(2,1fr)}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}}
.field select{width:100%;padding:11px 12px;border:1px solid #d7dce5;border-radius:8px;background:white;font:inherit;color:inherit;box-sizing:border-box}
.brandblock{text-align:center;margin:-4px 0 22px}.wallaceLogo{width:150px;max-height:62px;color:#fff;filter:invert(1);opacity:.96;margin-bottom:5px}.brandblock .brand{font-size:23px}.brandblock .subbrand{margin:2px 0 0;color:#b9c6cf;font-size:12px;text-transform:none;letter-spacing:.4px}.btn.danger{background:#a93636}.btn.danger:hover{background:#8e2929}.confirmText{font-size:15px;line-height:1.55;padding:8px 0 20px}.confirmActions{margin-top:4px}.confirmModal{max-width:560px}
/* V0.1.3 — Référentiel Domaines / Tâches */
.domainToolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.domainBoard{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;align-items:start}
.domainCard{background:#fff;border:1px solid #dfe5eb;border-radius:14px;overflow:hidden;box-shadow:0 2px 7px rgba(28,39,49,.05)}
.domainHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 14px;background:#f4f7f9;border-bottom:1px solid #e3e8ed}
.domainHead h3{margin:0;font-size:15px;letter-spacing:.04em}
.domainActions{display:flex;gap:6px;flex-wrap:wrap}
.taskList{display:flex;flex-direction:column;gap:7px;padding:12px;min-height:54px}
.taskRow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;border:1px solid #e5e9ed;border-radius:9px;background:#fff}
.taskRow.inactive{opacity:.55;background:#fafafa}
.taskName{font-weight:600}
.btn.tiny{padding:5px 8px;font-size:11px;border-radius:7px}
.emptyTasks{font-size:12px;color:#78838d;padding:8px 2px}
.timePath{font-size:12px;color:#66727d;margin-bottom:12px;padding:9px 12px;background:#f5f7f9;border-radius:8px}
.wallaceLogo{max-width:150px;height:auto;object-fit:contain;margin:0 auto 8px;display:block}

/* V0.1.4 — quatre domaines fixes */
.domainBoard.fixedFour{grid-template-columns:repeat(4,minmax(190px,1fr));gap:14px}
.tasksPanel{overflow-x:auto}
.domainBoard.fixedFour .domainCard{min-width:190px}
.domainBoard.fixedFour .domainHead{background:#eef3f6;padding:14px}
.domainBoard.fixedFour .domainHead h3{font-size:14px;margin:0;color:#243644}
.domainBoard.fixedFour .taskList{gap:0;padding:0}
.domainBoard.fixedFour .taskRow{border:0;border-bottom:1px solid #e6ebee;border-radius:0;padding:11px 12px;background:#fff}
.domainBoard.fixedFour .taskRow:last-child{border-bottom:0}
.taskRemove{border:0;background:transparent;color:#9b3b3b;font-size:20px;line-height:1;cursor:pointer;padding:0 3px;opacity:.65}
.taskRemove:hover{opacity:1}
@media(max-width:1050px){.domainBoard.fixedFour{grid-template-columns:repeat(2,minmax(230px,1fr))}}
@media(max-width:700px){.domainBoard.fixedFour{grid-template-columns:1fr}}

.dbDomains{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.dbDomains div{border:1px solid #dfe7eb;border-radius:9px;padding:12px}.dbDomains small{display:block;color:#778690;margin-top:4px;font-family:monospace}

/* V0.1.5 — arborescence Domaine → Tâche pour les imputations */
.timeFormGrid .timePath,.timeFormGrid .timeTreeWrap{grid-column:1/-1}
.timeTreeWrap{border:1px solid #dce5ea;border-radius:10px;padding:12px;background:#fafcfd}
.treeLabel{display:block;font-size:11px;color:#61717d;margin-bottom:9px;text-transform:uppercase;letter-spacing:.4px}
.timeTree{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;align-items:start}
.timeDomain{border:1px solid #dfe6ea;border-radius:9px;background:white;overflow:hidden}
.timeDomainTitle{font-weight:800;font-size:12px;letter-spacing:.04em;padding:10px 11px;background:#eef3f6;border-bottom:1px solid #dfe6ea}
.timeTaskList{display:flex;flex-direction:column}
.timeTask{border:0;border-bottom:1px solid #edf1f3;background:white;text-align:left;padding:9px 11px;cursor:pointer;color:#263947;font:inherit;font-size:12px}
.timeTask:last-child{border-bottom:0}.timeTask:hover{background:#f1f7f9}.timeTask.selected{background:#1d6d86;color:white;font-weight:700}
.treeSelection{margin-top:10px;padding:9px 11px;border-radius:8px;background:#eef5f7;color:#37515e;font-size:12px}
@media(max-width:1000px){.timeTree{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:650px){.timeTree{grid-template-columns:1fr}}

/* V0.1.6 — Administration : Clients + Salariés */
.adminGrid{display:grid;grid-template-columns:1fr;gap:18px;margin-bottom:18px}
.adminBase{overflow-x:auto}
.rowActions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
@media(max-width:800px){.adminGrid{grid-template-columns:1fr}.adminBase table{min-width:760px}}

/* V0.1.7 — Authentification, droits et Gestion Personnelle */
.loginPage{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#edf2f5;padding:24px}.loginCard{width:min(420px,94vw);background:#fff;border:1px solid #dce5ea;border-radius:18px;padding:34px;box-shadow:0 14px 40px rgba(25,37,48,.12)}.loginLogo{display:block;width:180px;max-height:76px;object-fit:contain;margin:0 auto 12px}.loginBrand{text-align:center;font-weight:900;font-size:28px;letter-spacing:.04em}.loginSubtitle{text-align:center;color:#788792;margin:4px 0 26px}.loginCard label{display:block;font-size:12px;color:#61717d;margin:12px 0 6px}.loginCard input{width:100%;padding:12px;border:1px solid #ccd7dd;border-radius:9px;font:inherit}.loginBtn{width:100%;margin-top:18px;padding:12px}.loginHint{text-align:center;color:#8a98a2;font-size:11px;margin-top:16px}.userBox{position:absolute;left:16px;right:16px;bottom:48px;border-top:1px solid #273641;padding-top:12px}.userName{font-weight:700;font-size:12px}.userRole{color:#91a3b0;font-size:10px;margin-top:3px}.logoutBtn{margin-top:8px;border:0;background:transparent;color:#c5d0d7;font-size:11px;padding:0;cursor:pointer}.logoutBtn:hover{color:#fff}.readonlyValue{padding:10px 11px;background:#f3f6f8;border:1px solid #d7e0e5;border-radius:8px;font-weight:600}.personalTiles{display:grid;grid-template-columns:1fr 1.15fr;gap:18px;align-items:start}.personalTile{min-height:280px}.tileIcon{font-size:26px;line-height:1;margin-bottom:10px}.leaveList{margin-top:16px;display:flex;flex-direction:column;gap:8px}.leaveRow{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e1e7eb;border-radius:9px;padding:11px}.emptyBox{margin-top:14px;padding:18px;border:1px dashed #cfd9df;border-radius:9px;color:#7d8b95;font-size:12px}.calendarHead{display:flex;align-items:center;justify-content:space-between;margin:16px 0 10px;text-transform:capitalize}.calWeek,.calendarGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calWeek div{text-align:center;font-size:10px;color:#778690;text-transform:uppercase;padding:4px}.calCell{min-height:58px;border:1px solid #dce4e8;border-radius:8px;background:white;color:#263947;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.calCell.day{cursor:pointer}.calCell.day:hover{background:#f0f6f8}.calCell.empty{visibility:hidden}.calCell.selected{background:#1d6d86;color:#fff;border-color:#1d6d86;font-weight:700}.calCell small{font-size:9px}.calendarLegend{font-size:11px;color:#6f7d87;margin-top:11px;display:flex;align-items:center;gap:7px}.legendDot{width:11px;height:11px;border-radius:3px;background:#1d6d86;display:inline-block}.adminGrid+#content{}.dbDomains{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
@media(max-width:950px){.personalTiles{grid-template-columns:1fr}.userBox{display:none}}

/* V0.1.8 — validation des nuitées, plages de congés, édition explicite des tâches */
.personalActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.personalActions .btn:disabled{opacity:.45;cursor:not-allowed}
.selectionInfo{margin-top:12px;padding:10px 12px;border-radius:8px;background:#f4f7f9;border:1px solid #dfe6ea;font-size:12px;color:#52636f}
.calCell.day:disabled{cursor:default;opacity:1}
.calCell.day:disabled:hover{background:white}
.calCell.day.selected:disabled:hover{background:#1d6d86}
.calCell.leaveSaved{background:#eef6e9;border-color:#bdd5ad;color:#36552d}
.calCell.leaveDraft{background:#dcebf1;border-color:#1d6d86;color:#174e60;font-weight:700;box-shadow:inset 0 0 0 1px #1d6d86}
.calCell.leaveSaved.leaveDraft{background:#d5e7d0;border-color:#467c39}

/* V0.1.9 — réplication locale, état de connexion et sauvegardes */
.syncIndicator{display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid #d9e1e6;border-radius:999px;background:white;font-size:12px;font-weight:700;box-shadow:0 1px 4px rgba(30,45,55,.04)}
.syncLight{width:12px;height:12px;border-radius:50%;display:inline-block;background:#999;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.syncIndicator.green .syncLight,.syncPill.green:before{background:#2f9e58}.syncIndicator.red .syncLight,.syncPill.red:before{background:#c43d3d}.syncIndicator.orange .syncLight,.syncPill.orange:before{background:#e58a21}
.syncIndicator.green{color:#256f43}.syncIndicator.red{color:#9a3030}.syncIndicator.orange{color:#9a5f16}
.syncPill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#f5f7f8;border:1px solid #dfe5e9;font-size:11px;font-weight:700}.syncPill:before{content:'';width:9px;height:9px;border-radius:50%;background:#999}
.dbAdminGrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;align-items:end;margin-top:16px}.dbAction{border:1px solid #e0e7eb;border-radius:10px;padding:12px;background:#fafcfd;display:flex;flex-direction:column;gap:7px;min-height:88px;justify-content:center}.dbAction small{color:#74838e;font-size:10px;line-height:1.3}.dbAdminGrid .field.wide{grid-column:span 2}.selectionInfo.error{background:#fff1f1;border-color:#f0c7c7;color:#9d2929}
@media(max-width:1000px){.dbAdminGrid{grid-template-columns:1fr 1fr}.dbAdminGrid .field.wide{grid-column:1/-1}}
@media(max-width:650px){.dbAdminGrid{grid-template-columns:1fr}.dbAdminGrid .field.wide{grid-column:auto}.syncText{display:none}.syncIndicator{padding:8px}}

/* V0.1.10 */
.dbPrimaryActions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.equalDbBtn{width:100%;min-height:44px}.dbSyncInfo{grid-column:1/-1;font-size:11px;color:#6f7d87;padding:2px 4px}.dbSyncInfo span{color:#87959e}@media(max-width:650px){.dbPrimaryActions{grid-template-columns:1fr}}

/* V0.1.11 */
.rowActions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}


/* V0.1.12 — tableau de bord secteurs par affaire */
.dashboardIntro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:16px 18px;background:#fff;border:1px solid #dde5ea;border-radius:12px}.dashboardTotal{font-size:22px;font-weight:800;white-space:nowrap}.dashboardTotal span{font-size:11px;font-weight:500;color:#75838d}.projectPieGrid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:16px;align-items:start}.projectPieCard{background:#fff;border:1px solid #dde5ea;border-radius:14px;padding:16px;box-shadow:0 2px 8px #1a26330a;min-width:0}.projectPieHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.projectNumber{font-size:17px;font-weight:900;color:#183748}.projectName{font-size:13px;color:#647681;margin-top:3px;line-height:1.25}.projectHours{font-size:18px;font-weight:900;color:#1d6d86;white-space:nowrap}.projectPie{width:100%;max-width:300px;display:block;margin:4px auto 8px;overflow:visible}.pieLabel{fill:white;font-size:9px;font-weight:800;pointer-events:none;paint-order:stroke;stroke:rgba(0,0,0,.22);stroke-width:1.5px;stroke-linejoin:round}.pieLegend{display:flex;flex-wrap:wrap;gap:6px 10px;border-top:1px solid #edf1f3;padding-top:10px}.pieLegend span{display:flex;align-items:center;gap:5px;font-size:10px;color:#5e6e79}.pieLegend i{display:inline-block;width:8px;height:8px;border-radius:2px;flex:0 0 auto}.pieEmpty{width:min(240px,100%);aspect-ratio:1;border-radius:50%;border:18px solid #edf1f3;margin:10px auto;display:flex;align-items:center;justify-content:center;color:#89959e;font-size:12px;text-align:center}@media(max-width:1200px){.projectPieGrid{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media(max-width:760px){.projectPieGrid{grid-template-columns:1fr}.dashboardIntro{align-items:flex-start;flex-direction:column}}

/* V0.1.13 — dashboard personnalisable, zoom et administration base */
.dashboardControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.iconBtn,.lockBtn{width:36px;height:36px;border:1px solid #d5dfe5;border-radius:9px;background:#fff;color:#1f3b49;font-size:20px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 4px rgba(30,45,55,.04)}
.iconBtn:hover,.lockBtn:hover{background:#f1f6f8}.lockBtn{font-size:17px}.lockBtn.open{background:#fff4dd;border-color:#e6b967}
.zoomValue{min-width:48px;text-align:center;font-size:11px;font-weight:800;color:#52636f}
.projectPieViewport{overflow:auto;padding:6px 2px 18px}
.projectPieGrid{transform-origin:top left;zoom:var(--dashboard-zoom,1)}
.projectPieCard.layoutUnlocked{cursor:grab;animation:tileShake .18s infinite alternate;user-select:none;border-color:#e0b65e;box-shadow:0 0 0 2px rgba(224,182,94,.14),0 3px 10px rgba(30,45,55,.08)}
.projectPieCard.layoutUnlocked:active{cursor:grabbing}.projectPieCard.dragging{opacity:.55;animation:none}
@keyframes tileShake{0%{transform:rotate(-.18deg)}100%{transform:rotate(.18deg)}}
@media(max-width:760px){.dashboardControls{justify-content:flex-start}.projectPieGrid{zoom:1!important}.zoomValue,.iconBtn{display:none}}
.dbPathRow{grid-column:1/-1;display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end}
.dbPathRow .field{min-width:0}.dbPathRow input{width:100%}
.dbPrimaryActions.four{grid-column:1/-1;grid-template-columns:repeat(4,minmax(180px,1fr));align-items:stretch}
.dbPrimaryActions.four .equalDbBtn{height:46px;white-space:normal}
@media(max-width:1100px){.dbPrimaryActions.four{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:650px){.dbPathRow{grid-template-columns:1fr}.dbPrimaryActions.four{grid-template-columns:1fr}}

/* V0.2.0 — thème système / utilisateur */
:root{color-scheme:light dark}
.themeToggle{border:1px solid var(--border,#d7dce2);background:var(--panel,#fff);border-radius:10px;width:42px;height:38px;cursor:pointer;font-size:19px}
.topbarActions{display:flex;align-items:center;gap:12px}
html[data-theme="dark"] body{background:#11161c;color:#e8edf2}
html[data-theme="dark"] .sidebar{background:#0b1117;color:#e8edf2}
html[data-theme="dark"] .main,html[data-theme="dark"] .topbar{background:#11161c;color:#e8edf2}
html[data-theme="dark"] .panel,html[data-theme="dark"] .projectPieCard,html[data-theme="dark"] .modalCard,html[data-theme="dark"] .loginCard{background:#18212a;color:#e8edf2;border-color:#34414d}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] table{background:#131b23;color:#e8edf2;border-color:#34414d}
html[data-theme="dark"] th,html[data-theme="dark"] td{border-color:#34414d}
html[data-theme="dark"] .muted,html[data-theme="dark"] .loginHint{color:#aeb9c4}
html[data-theme="dark"] .themeToggle{background:#18212a;color:#fff;border-color:#34414d}
@media (prefers-color-scheme:dark){html[data-theme="system"] body{background:#11161c;color:#e8edf2}html[data-theme="system"] .sidebar{background:#0b1117;color:#e8edf2}html[data-theme="system"] .main,html[data-theme="system"] .topbar{background:#11161c;color:#e8edf2}html[data-theme="system"] .panel,html[data-theme="system"] .projectPieCard,html[data-theme="system"] .modalCard,html[data-theme="system"] .loginCard{background:#18212a;color:#e8edf2;border-color:#34414d}html[data-theme="system"] input,html[data-theme="system"] select,html[data-theme="system"] textarea,html[data-theme="system"] table{background:#131b23;color:#e8edf2;border-color:#34414d}html[data-theme="system"] th,html[data-theme="system"] td{border-color:#34414d}html[data-theme="system"] .muted{color:#aeb9c4}}

/* V0.2.1 — contraste cohérent clair/sombre + recherche d'affaire */
:root{
 --wp-bg:#f3f6f8;--wp-panel:#ffffff;--wp-panel-soft:#f7f9fa;--wp-input:#ffffff;
 --wp-text:#182230;--wp-text-soft:#5f707c;--wp-border:#cfd9df;--wp-hover:#edf4f7;
 --wp-accent:#1d6d86;--wp-accent-text:#ffffff;--wp-row:#ffffff;--wp-shadow:rgba(26,38,51,.08)
}
html[data-theme="light"] body,html[data-theme="system"] body{background:var(--wp-bg);color:var(--wp-text)}
html[data-theme="light"] .panel,html[data-theme="light"] .card,html[data-theme="light"] .projectPieCard,html[data-theme="light"] .dashboardIntro,html[data-theme="light"] .modal,html[data-theme="light"] .loginCard,
html[data-theme="system"] .panel,html[data-theme="system"] .card,html[data-theme="system"] .projectPieCard,html[data-theme="system"] .dashboardIntro,html[data-theme="system"] .modal,html[data-theme="system"] .loginCard{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
.field input,.field select,.field textarea,.loginCard input{background:var(--wp-input);color:var(--wp-text);border-color:var(--wp-border);caret-color:var(--wp-text)}
.field input::placeholder,.loginCard input::placeholder{color:#8997a1;opacity:1}.field select option{background:var(--wp-input);color:var(--wp-text)}
.readonlyValue,.selectionInfo,.treeSelection,.timePath,.dbAction{background:var(--wp-panel-soft);color:var(--wp-text);border-color:var(--wp-border)}
.timeDomain,.timeTask,.calCell,.leaveRow{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
.timeTask:hover,.calCell.day:hover{background:var(--wp-hover)}
.timeTask.selected,.calCell.selected{background:var(--wp-accent);color:var(--wp-accent-text);border-color:var(--wp-accent)}
table{background:var(--wp-panel);color:var(--wp-text)}th{color:var(--wp-text-soft)}td,th{border-color:var(--wp-border)}
.btn.secondary{background:#e7eef2;color:#213846}.iconBtn,.lockBtn,.themeToggle{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
.projectSearchField{position:relative}.projectSearchHint{font-size:10px;color:var(--wp-text-soft);margin-top:5px}.projectSuggestions{position:absolute;z-index:30;top:calc(100% - 17px);left:0;right:0;max-height:300px;overflow:auto;background:var(--wp-panel);border:1px solid var(--wp-border);border-radius:9px;box-shadow:0 10px 28px var(--wp-shadow);padding:5px}.projectSuggestion{width:100%;display:grid;grid-template-columns:minmax(120px,.8fr) minmax(90px,.55fr) minmax(180px,1.6fr);gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--wp-border);padding:10px 11px;background:var(--wp-panel);color:var(--wp-text);cursor:pointer;font:inherit}.projectSuggestion:last-child{border-bottom:0}.projectSuggestion:hover,.projectSuggestion:focus{background:var(--wp-hover);outline:none}.projectSuggestionNumber{font-weight:800;color:var(--wp-accent)}.projectSuggestionEmpty{padding:12px;color:var(--wp-text-soft);font-size:12px}.invalidSelection{border-color:#b93b3b!important;box-shadow:0 0 0 2px rgba(185,59,59,.12)}
html[data-theme="dark"]{--wp-bg:#0f151b;--wp-panel:#18212a;--wp-panel-soft:#202b35;--wp-input:#0f171e;--wp-text:#eef3f7;--wp-text-soft:#aeb9c4;--wp-border:#3b4a57;--wp-hover:#253541;--wp-accent:#4c9fba;--wp-accent-text:#071116;--wp-row:#18212a;--wp-shadow:rgba(0,0,0,.32)}
html[data-theme="dark"] body,html[data-theme="dark"] .main,html[data-theme="dark"] .topbar,html[data-theme="dark"] .loginPage{background:var(--wp-bg);color:var(--wp-text)}
html[data-theme="dark"] .panel,html[data-theme="dark"] .card,html[data-theme="dark"] .projectPieCard,html[data-theme="dark"] .dashboardIntro,html[data-theme="dark"] .modal,html[data-theme="dark"] .loginCard{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea,html[data-theme="dark"] .loginCard input{background:var(--wp-input);color:var(--wp-text);border-color:var(--wp-border)}
html[data-theme="dark"] .field input::placeholder,html[data-theme="dark"] .loginCard input::placeholder{color:#8999a5}html[data-theme="dark"] .field select option{background:#0f171e;color:#eef3f7}
html[data-theme="dark"] .readonlyValue,html[data-theme="dark"] .selectionInfo,html[data-theme="dark"] .treeSelection,html[data-theme="dark"] .timePath,html[data-theme="dark"] .dbAction{background:var(--wp-panel-soft);color:var(--wp-text);border-color:var(--wp-border)}
html[data-theme="dark"] .timeDomain,html[data-theme="dark"] .timeTask,html[data-theme="dark"] .calCell,html[data-theme="dark"] .leaveRow{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
html[data-theme="dark"] .timeTask:hover,html[data-theme="dark"] .calCell.day:hover{background:var(--wp-hover)}html[data-theme="dark"] .timeTask.selected,html[data-theme="dark"] .calCell.selected{background:var(--wp-accent);color:var(--wp-accent-text)}
html[data-theme="dark"] .btn.secondary{background:#2b3b47;color:#eef3f7;border:1px solid #435563}html[data-theme="dark"] .status{background:#1f4435;color:#bcebd2}html[data-theme="dark"] .status.inactive{background:#30383f;color:#c1c8cd}
html[data-theme="dark"] .iconBtn,html[data-theme="dark"] .lockBtn,html[data-theme="dark"] .themeToggle{background:#202b35;color:#eef3f7;border-color:#435563}html[data-theme="dark"] .iconBtn:hover,html[data-theme="dark"] .lockBtn:hover{background:#2a3945}
html[data-theme="dark"] .error{background:#3a1e22;color:#ffd8dc;border-color:#704049}html[data-theme="dark"] .warn{color:#ffbd7c}
@media (prefers-color-scheme:dark){html[data-theme="system"]{--wp-bg:#0f151b;--wp-panel:#18212a;--wp-panel-soft:#202b35;--wp-input:#0f171e;--wp-text:#eef3f7;--wp-text-soft:#aeb9c4;--wp-border:#3b4a57;--wp-hover:#253541;--wp-accent:#4c9fba;--wp-accent-text:#071116;--wp-shadow:rgba(0,0,0,.32)}html[data-theme="system"] body,html[data-theme="system"] .main,html[data-theme="system"] .topbar,html[data-theme="system"] .loginPage{background:var(--wp-bg);color:var(--wp-text)}html[data-theme="system"] .panel,html[data-theme="system"] .card,html[data-theme="system"] .projectPieCard,html[data-theme="system"] .dashboardIntro,html[data-theme="system"] .modal,html[data-theme="system"] .loginCard{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}html[data-theme="system"] .field input,html[data-theme="system"] .field select,html[data-theme="system"] .field textarea,html[data-theme="system"] .loginCard input{background:var(--wp-input);color:var(--wp-text);border-color:var(--wp-border)}html[data-theme="system"] .field select option{background:#0f171e;color:#eef3f7}html[data-theme="system"] .readonlyValue,html[data-theme="system"] .selectionInfo,html[data-theme="system"] .treeSelection,html[data-theme="system"] .timePath,html[data-theme="system"] .dbAction{background:var(--wp-panel-soft);color:var(--wp-text);border-color:var(--wp-border)}html[data-theme="system"] .timeDomain,html[data-theme="system"] .timeTask,html[data-theme="system"] .calCell,html[data-theme="system"] .leaveRow{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}html[data-theme="system"] .btn.secondary{background:#2b3b47;color:#eef3f7;border:1px solid #435563}}
@media(max-width:700px){.projectSuggestion{grid-template-columns:1fr}.projectSuggestionNumber{margin-top:-4px}}


/* V0.2.4 — connexion, tableaux sombres et suppression du zoom dashboard */
html[data-theme="light"]{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}

/* Connexion : même thème que l'application dès le premier affichage. */
.loginPage{background:var(--wp-bg);color:var(--wp-text)}
.loginCard{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
.loginCard label{color:var(--wp-text-soft)}
.loginCard input{background:var(--wp-input);color:var(--wp-text);border-color:var(--wp-border);box-shadow:none}
.loginCard input:-webkit-autofill,
.loginCard input:-webkit-autofill:hover,
.loginCard input:-webkit-autofill:focus{
 -webkit-text-fill-color:var(--wp-text);
 box-shadow:0 0 0 1000px var(--wp-input) inset;
 transition:background-color 9999s ease-out 0s;
 caret-color:var(--wp-text)
}

/* Mode sombre : cellules anthracite, entêtes noirs, texte blanc. */
html[data-theme="dark"] table{background:#222a31;color:#fff}
html[data-theme="dark"] table thead th{background:#080b0e;color:#fff;border-color:#46515b}
html[data-theme="dark"] table tbody td{background:#222a31;color:#fff;border-color:#3b4650}
html[data-theme="dark"] table tbody tr:hover td{background:#29333b}
html[data-theme="dark"] .timeDomain{background:#222a31;border-color:#46515b}
html[data-theme="dark"] .timeDomainTitle{background:#080b0e;color:#fff;border-color:#46515b}
html[data-theme="dark"] .timeTask{background:#222a31;color:#fff;border-color:#3b4650}
html[data-theme="dark"] .timeTask:hover{background:#2c3740}
html[data-theme="dark"] .timeTask.selected{background:var(--wp-accent);color:var(--wp-accent-text)}
html[data-theme="dark"] .timeTreeWrap{background:#18212a;border-color:#46515b}

@media (prefers-color-scheme:dark){
 html[data-theme="system"]{color-scheme:dark}
 html[data-theme="system"] .loginPage{background:var(--wp-bg);color:var(--wp-text)}
 html[data-theme="system"] .loginCard{background:var(--wp-panel);color:var(--wp-text);border-color:var(--wp-border)}
 html[data-theme="system"] .loginCard label{color:var(--wp-text-soft)}
 html[data-theme="system"] .loginCard input{background:var(--wp-input);color:var(--wp-text);border-color:var(--wp-border);box-shadow:none}
 html[data-theme="system"] table{background:#222a31;color:#fff}
 html[data-theme="system"] table thead th{background:#080b0e;color:#fff;border-color:#46515b}
 html[data-theme="system"] table tbody td{background:#222a31;color:#fff;border-color:#3b4650}
 html[data-theme="system"] table tbody tr:hover td{background:#29333b}
 html[data-theme="system"] .timeDomain{background:#222a31;border-color:#46515b}
 html[data-theme="system"] .timeDomainTitle{background:#080b0e;color:#fff;border-color:#46515b}
 html[data-theme="system"] .timeTask{background:#222a31;color:#fff;border-color:#3b4650}
 html[data-theme="system"] .timeTask:hover{background:#2c3740}
 html[data-theme="system"] .timeTask.selected{background:var(--wp-accent);color:var(--wp-accent-text)}
 html[data-theme="system"] .timeTreeWrap{background:#18212a;border-color:#46515b}
}
@media (prefers-color-scheme:light){html[data-theme="system"]{color-scheme:light}}

/* V0.2.7 : zoom uniquement par boutons + et -. Aucun gestionnaire de molette. */


/* V0.2.7 — correctifs visuels prioritaires et non ambigus */
/* Écran de connexion : couleurs explicites selon le thème, sans héritage natif ambigu. */
html[data-theme="light"] .loginPage{background:#edf2f5!important;color:#182230!important}
html[data-theme="light"] .loginCard{background:#ffffff!important;color:#182230!important;border-color:#dce5ea!important}
html[data-theme="light"] .loginCard label{color:#526571!important}
html[data-theme="light"] .loginCard input{background:#ffffff!important;color:#182230!important;border:1px solid #bfcbd2!important;-webkit-text-fill-color:#182230!important;box-shadow:none!important}
html[data-theme="light"] .loginSubtitle,html[data-theme="light"] .loginHint{color:#687985!important}

html[data-theme="dark"] .loginPage{background:#0f151b!important;color:#eef3f7!important}
html[data-theme="dark"] .loginCard{background:#18212a!important;color:#eef3f7!important;border-color:#3b4a57!important}
html[data-theme="dark"] .loginCard label{color:#c5d0d8!important}
html[data-theme="dark"] .loginCard input{background:#0f171e!important;color:#ffffff!important;border:1px solid #4a5b68!important;-webkit-text-fill-color:#ffffff!important;box-shadow:none!important}
html[data-theme="dark"] .loginSubtitle,html[data-theme="dark"] .loginHint{color:#aeb9c4!important}

@media (prefers-color-scheme:light){
 html[data-theme="system"] .loginPage{background:#edf2f5!important;color:#182230!important}
 html[data-theme="system"] .loginCard{background:#ffffff!important;color:#182230!important;border-color:#dce5ea!important}
 html[data-theme="system"] .loginCard label{color:#526571!important}
 html[data-theme="system"] .loginCard input{background:#ffffff!important;color:#182230!important;border:1px solid #bfcbd2!important;-webkit-text-fill-color:#182230!important;box-shadow:none!important}
 html[data-theme="system"] .loginSubtitle,html[data-theme="system"] .loginHint{color:#687985!important}
}
@media (prefers-color-scheme:dark){
 html[data-theme="system"] .loginPage{background:#0f151b!important;color:#eef3f7!important}
 html[data-theme="system"] .loginCard{background:#18212a!important;color:#eef3f7!important;border-color:#3b4a57!important}
 html[data-theme="system"] .loginCard label{color:#c5d0d8!important}
 html[data-theme="system"] .loginCard input{background:#0f171e!important;color:#ffffff!important;border:1px solid #4a5b68!important;-webkit-text-fill-color:#ffffff!important;box-shadow:none!important}
 html[data-theme="system"] .loginSubtitle,html[data-theme="system"] .loginHint{color:#aeb9c4!important}
}

/* Domaines et tâches : correction des anciennes règles claires plus spécifiques. */
html[data-theme="dark"] .domainBoard.fixedFour .domainCard{background:#202830!important;border-color:#46515b!important;color:#ffffff!important}
html[data-theme="dark"] .domainBoard.fixedFour .domainHead{background:#050708!important;border-bottom-color:#46515b!important;color:#ffffff!important}
html[data-theme="dark"] .domainBoard.fixedFour .domainHead h3{color:#ffffff!important}
html[data-theme="dark"] .domainBoard.fixedFour .taskList{background:#202830!important;color:#ffffff!important}
html[data-theme="dark"] .domainBoard.fixedFour .taskRow{background:#252e36!important;color:#ffffff!important;border-bottom-color:#3e4a54!important}
html[data-theme="dark"] .domainBoard.fixedFour .taskName{color:#ffffff!important}
html[data-theme="dark"] .domainBoard.fixedFour .emptyTasks{color:#b9c4cc!important}
@media (prefers-color-scheme:dark){
 html[data-theme="system"] .domainBoard.fixedFour .domainCard{background:#202830!important;border-color:#46515b!important;color:#ffffff!important}
 html[data-theme="system"] .domainBoard.fixedFour .domainHead{background:#050708!important;border-bottom-color:#46515b!important;color:#ffffff!important}
 html[data-theme="system"] .domainBoard.fixedFour .domainHead h3{color:#ffffff!important}
 html[data-theme="system"] .domainBoard.fixedFour .taskList{background:#202830!important;color:#ffffff!important}
 html[data-theme="system"] .domainBoard.fixedFour .taskRow{background:#252e36!important;color:#ffffff!important;border-bottom-color:#3e4a54!important}
 html[data-theme="system"] .domainBoard.fixedFour .taskName{color:#ffffff!important}
 html[data-theme="system"] .domainBoard.fixedFour .emptyTasks{color:#b9c4cc!important}
}

/* Base Temps en sombre : entêtes noirs et lignes anthracite, explicitement. */
html[data-theme="dark"] .timeEntriesTable thead th{background:#050708!important;color:#ffffff!important}
html[data-theme="dark"] .timeEntriesTable tbody td{background:#252e36!important;color:#ffffff!important}
@media (prefers-color-scheme:dark){
 html[data-theme="system"] .timeEntriesTable thead th{background:#050708!important;color:#ffffff!important}
 html[data-theme="system"] .timeEntriesTable tbody td{background:#252e36!important;color:#ffffff!important}
}

/* V0.2.7 - diagnostic explicite du flux d'imputations */
.syncInfo{padding:10px 12px;border-radius:8px;background:var(--panel2,#eef2f6);color:var(--text,#222);font-size:.92rem}
[data-theme="dark"] .syncInfo{background:#252a30;color:#fff}


/* V0.2.10 — logo Wallace adapté au thème */
.logoDark{display:none!important}
html[data-theme="dark"] .loginLogo.logoLight{display:none!important}
html[data-theme="dark"] .loginLogo.logoDark{display:block!important}
@media (prefers-color-scheme:dark){
 html[data-theme="system"] .loginLogo.logoLight{display:none!important}
 html[data-theme="system"] .loginLogo.logoDark{display:block!important}
}

/* V0.2.10 — tri universel des tableaux */
th.sortableTh{cursor:pointer;user-select:none;white-space:nowrap;position:relative;padding-right:28px!important}
th.sortableTh:hover{filter:brightness(.97)}
.sortArrow{display:inline-flex;align-items:center;justify-content:center;min-width:16px;margin-left:7px;font-weight:900;font-size:13px;line-height:1;opacity:.65;vertical-align:middle}
th.sortableTh[data-sort-dir="asc"] .sortArrow,th.sortableTh[data-sort-dir="desc"] .sortArrow{opacity:1}
html[data-theme="dark"] th.sortableTh:hover{filter:brightness(1.18)}
@media (prefers-color-scheme:dark){html[data-theme="system"] th.sortableTh:hover{filter:brightness(1.18)}}


/* V0.2.11 — tri, horodatage, dashboard et feu industriel */
/* Un seul sens de flèche est visible ; le sens s'inverse quand la colonne est reclassée. */
.sortArrow{opacity:.72;font-size:12px;min-width:12px;margin-left:6px}
th.sortableTh[data-sort-dir="asc"] .sortArrow,th.sortableTh[data-sort-dir="desc"] .sortArrow{opacity:1}

/* Feu horizontal industriel : vert -> orange -> rouge. */
.syncIndicator.industrial{display:flex;align-items:center;gap:7px;padding:5px 9px;border-radius:8px;background:linear-gradient(#3a4248,#20262b);border:1px solid #11161a;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 1px 4px rgba(0,0,0,.22);min-width:auto}
.trafficLamp{width:14px;height:14px;border-radius:50%;display:block;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 0 4px rgba(0,0,0,.9);opacity:.22;transition:opacity .15s,box-shadow .15s}
.lampGreen{background:#24bf63}.lampOrange{background:#f09a2b}.lampRed{background:#e04747}
.syncIndicator.green .lampGreen{opacity:1;box-shadow:0 0 9px rgba(36,191,99,.78),inset 0 0 3px rgba(255,255,255,.55)}
.syncIndicator.orange .lampOrange{opacity:1;box-shadow:0 0 9px rgba(240,154,43,.78),inset 0 0 3px rgba(255,255,255,.55)}
.syncIndicator.red .lampRed{opacity:1;box-shadow:0 0 9px rgba(224,71,71,.78),inset 0 0 3px rgba(255,255,255,.55)}

/* Dashboard : cartes et graphes de dimensions identiques. */
.projectPieGrid{align-items:stretch;grid-auto-rows:1fr}
.projectPieCard{height:360px;display:flex;flex-direction:column;box-sizing:border-box}
.projectPieHead{min-height:54px}
.chartScaleWrap{height:270px;display:flex;align-items:center;justify-content:center;cursor:zoom-in;flex:1;min-height:0}
.projectPie{width:260px;height:260px;max-width:100%;margin:0 auto}
.pieLabel{font-size:7.2px;font-weight:800;letter-spacing:-.1px}
.pieLabel.compact{font-size:6.6px}
.pieLegend{display:none!important}

/* Clic sur un graphe : affichage seul et agrandi, sans modifier l'ordre mémorisé. */
.projectPieGrid.focusMode{display:block!important}
.projectPieGrid.focusMode .projectPieCard{display:none}
.projectPieGrid.focusMode .projectPieCard.focused{display:flex;width:min(760px,100%);height:min(72vh,680px);margin:0 auto}
.projectPieGrid.focusMode .projectPieCard.focused .chartScaleWrap{cursor:zoom-out;height:auto}
.projectPieGrid.focusMode .projectPieCard.focused .projectPie{width:min(560px,65vh);height:min(560px,65vh)}

/* Projet et nom lisibles en thème sombre. */
html[data-theme="dark"] .projectNumber,html[data-theme="dark"] .projectName{color:#fff!important}
@media (prefers-color-scheme:dark){html[data-theme="system"] .projectNumber,html[data-theme="system"] .projectName{color:#fff!important}}

/* Le rendu visuel correspondant à l'ancien 90 % est désormais la référence 100 %.
   La valeur effective est appliquée par app.js (zoom affiché x 0,9). */
@media(max-width:760px){.projectPieGrid{zoom:.9!important}}

/* Tableau des imputations : première colonne horodatage stable et compacte. */
.timeEntriesTable td:first-child,.timeEntriesTable th:first-child{white-space:nowrap}

/* V0.2.12 — Gestion des horaires de rappel */
.notificationSchedulePanel{overflow:hidden}
.notificationExample{margin:0 0 14px;padding:10px 12px;border:1px solid var(--wp-border);border-radius:10px;background:var(--wp-panel-soft);font-size:.92rem}
.notificationScheduleTable{table-layout:fixed;width:100%}
.notificationScheduleTable th:nth-child(1){width:24%}
.notificationScheduleTable th:nth-child(2){width:18%}
.notificationScheduleTable th:nth-child(3){width:44%}
.notificationScheduleTable th:nth-child(4){width:14%}
.reminderEditor{display:flex;flex-direction:column;gap:8px;min-width:0}
.reminderInput{width:100%;min-width:0;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.reminderChips{display:flex;gap:6px;flex-wrap:wrap;min-height:24px}
.reminderChip{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid rgba(38,145,255,.36);border-radius:999px;background:rgba(38,145,255,.11);color:var(--wp-text);font-size:.78rem;font-weight:700;line-height:1}
.reminderEmpty{font-size:.8rem}
.selectionInfo.success{border-color:rgba(38,170,90,.45);background:rgba(38,170,90,.10)}
@media (max-width:900px){
 .notificationScheduleTable{table-layout:auto}
 .notificationScheduleTable th:nth-child(n){width:auto}
}

/* V0.2.13 — Gestion du personnel V2 */
.tableScroll{overflow:auto;max-width:100%}
.personnelSummary table{min-width:980px}
.employeeLink{border:0;background:none;padding:0;color:#1677d2;cursor:pointer;font:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px}
.employeeLink:hover{color:#0d5da8}
.scheduleValue{display:inline-flex;padding:5px 9px;border-radius:8px;background:rgba(38,145,255,.10);border:1px solid rgba(38,145,255,.28);font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.reminderPreview{margin-top:5px;font-size:.78rem;white-space:nowrap}
.holidayPanel{margin-top:18px}.holidayYears{display:flex;gap:6px;flex-wrap:wrap}.holidayYears span{padding:4px 8px;border-radius:999px;background:var(--wp-panel-soft);border:1px solid var(--wp-border);font-size:.78rem;font-weight:700}.holidayTableWrap{max-height:430px}.holidayToggle{width:18px;height:18px;accent-color:#2188ff}
.personnelDetailHead{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-bottom:16px}.personnelDetailHead h2{margin:0 0 3px}.scheduleAdmin{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,1.4fr);gap:20px;align-items:center}.scheduleEdit input{width:100%;font-weight:750;letter-spacing:.04em;font-variant-numeric:tabular-nums}.scheduleEdit .reminderPreview{margin-top:8px;font-size:.9rem}
.personnelCalendarGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.personnelCalCard{margin:0}.personnelCalCard h3{margin:0 0 4px}.personnelCalCard .calendarGrid{margin-top:8px}.calendarCount{margin-top:10px;text-align:right;font-size:.86rem;color:var(--wp-muted)}
.adminCalDay.leave.selected,.calCell.leaveSaved{background:rgba(38,145,255,.18)!important;border-color:#2691ff!important}.adminCalDay.vacation.selected{background:rgba(74,181,116,.18)!important;border-color:#3bad70!important}.adminCalDay.sick.selected,.calCell.sickSelected{background:rgba(221,82,82,.17)!important;border-color:#d95757!important}.adminCalDay.nights.selected{background:rgba(152,96,220,.17)!important;border-color:#9966d8!important}.adminCalDay small{display:block;font-size:.62rem;margin-top:2px}
.stickySaveBar{position:sticky;bottom:0;z-index:5;margin-top:16px;padding:12px 0;display:flex;justify-content:flex-end;align-items:center;gap:12px;background:linear-gradient(180deg,transparent 0,var(--wp-bg,#f4f7f9) 26%)}.stickySaveBar .selectionInfo{margin:0 auto 0 0}
.personalTiles.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.personalTiles.three .personalTile{min-width:0}.personalTiles.three .calendarGrid{gap:4px}.personalTiles.three .calCell{min-height:46px;padding:4px 2px}.personalTiles.three .personalActions{flex-wrap:wrap}
html[data-theme="dark"] .employeeLink{color:#73baff}html[data-theme="dark"] .stickySaveBar{background:linear-gradient(180deg,transparent 0,#12191f 26%)}
@media (prefers-color-scheme:dark){html[data-theme="system"] .employeeLink{color:#73baff}html[data-theme="system"] .stickySaveBar{background:linear-gradient(180deg,transparent 0,#12191f 26%)}}
@media(max-width:1150px){.personalTiles.three{grid-template-columns:1fr}.personnelCalendarGrid{grid-template-columns:1fr}.scheduleAdmin{grid-template-columns:1fr}.personnelDetailHead{grid-template-columns:1fr}.personnelDetailHead .calendarHead{justify-content:flex-start}}

/* V0.2.14 — Congés = vacances ; alignement des trois calendriers personnel */
.personnelCalendarGrid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}.personnelCalendarGrid.three .personnelCalCard{height:100%;display:flex;flex-direction:column}.personnelCalendarGrid.three .calendarGrid{flex:1}.personalTiles.three{align-items:stretch}.personalTiles.three .personalTile{height:100%;display:flex;flex-direction:column}.personalTiles.three .personalActions{margin-top:auto}
@media(max-width:1150px){.personnelCalendarGrid.three{grid-template-columns:1fr}}

/* V0.2.15 — alternance visuelle universelle des lignes de tableaux.
   Règle volontairement placée en fin de feuille pour couvrir aussi les
   tableaux historiques qui possèdent des styles plus spécifiques. */
:root{
  --wp-table-row-odd:#ffffff;
  --wp-table-row-even:#f1f5f8;
  --wp-table-row-hover:#e7f0f5;
}
table tbody tr:nth-child(odd) > td{background:var(--wp-table-row-odd)!important}
table tbody tr:nth-child(even) > td{background:var(--wp-table-row-even)!important}
table tbody tr:hover > td{background:var(--wp-table-row-hover)!important}
html[data-theme="dark"]{
  --wp-table-row-odd:#202932;
  --wp-table-row-even:#28343e;
  --wp-table-row-hover:#31424f;
}
@media (prefers-color-scheme:dark){
  html[data-theme="system"]{
    --wp-table-row-odd:#202932;
    --wp-table-row-even:#28343e;
    --wp-table-row-hover:#31424f;
  }
}


/* V0.2.18 — splash desktop plein écran Wallace, sans cadre téléphone */
.supervisionSplash{
  position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center;
  overflow:hidden; isolation:isolate;
  background:
    radial-gradient(circle at 50% 47%, rgba(0,126,255,.32) 0%, rgba(0,70,150,.22) 25%, rgba(0,24,62,.12) 48%, transparent 70%),
    linear-gradient(135deg,#f8fbff 0%,#e9f3fc 48%,#dcecf9 100%);
}
.supervisionSplash::before{
  content:""; position:absolute; inset:-18%; z-index:-2; pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(0,145,255,.20),transparent 58%);
  transform:scale(1.15);
}
.supervisionSplash .splashGlow{
  position:absolute; width:min(72vw,1050px); aspect-ratio:1.35; border-radius:50%; z-index:-1;
  background:radial-gradient(ellipse at center,rgba(0,150,255,.23),rgba(0,93,210,.10) 43%,transparent 72%);
  filter:blur(20px);
}
.supervisionSplashLogo{
  display:block; width:min(48vw,700px); max-height:72vh; height:auto; object-fit:contain;
  filter:drop-shadow(0 0 22px rgba(0,130,255,.18));
}
html[data-theme="dark"] .supervisionSplash{
  background:
    radial-gradient(circle at 50% 47%,rgba(0,117,255,.34) 0%,rgba(0,58,135,.26) 29%,rgba(0,20,52,.18) 53%,transparent 72%),
    linear-gradient(135deg,#000714 0%,#00152f 48%,#000914 100%);
}
html[data-theme="dark"] .supervisionSplashLogo{content:url("assets/wallace-menu-dark-transparent.png");filter:drop-shadow(0 0 28px rgba(0,139,255,.30))}
html[data-theme="light"] .supervisionSplashLogo{content:url("assets/wallace-menu-light-transparent.png")}
@media (prefers-color-scheme:dark){
  html[data-theme="system"] .supervisionSplash{background:radial-gradient(circle at 50% 47%,rgba(0,117,255,.34) 0%,rgba(0,58,135,.26) 29%,rgba(0,20,52,.18) 53%,transparent 72%),linear-gradient(135deg,#000714 0%,#00152f 48%,#000914 100%)}
  html[data-theme="system"] .supervisionSplashLogo{content:url("assets/wallace-menu-dark-transparent.png");filter:drop-shadow(0 0 28px rgba(0,139,255,.30))}
}
@media (max-width:900px){.supervisionSplashLogo{width:min(68vw,620px);max-height:68vh}}

.brandblock{margin-top:-8px}
.menuWallace{display:block;width:100%;height:105px;overflow:hidden;border-radius:10px;margin:0 auto 7px}
.wallaceMenuLogo{display:block;width:100%;height:100%;object-fit:contain}
html[data-theme="dark"] .wallaceMenuLogo{content:url("assets/wallace-menu-dark-transparent.png")}
html[data-theme="light"] .wallaceMenuLogo{content:url("assets/wallace-menu-light-transparent.png")}
@media (prefers-color-scheme:dark){html[data-theme="system"] .wallaceMenuLogo{content:url("assets/wallace-menu-dark-transparent.png")}}
.brandblock .subbrand{margin-top:2px;font-size:11px;letter-spacing:.6px}

/* V0.2.16 — alternance renforcée sur TOUS les tableaux, clair et sombre */
html[data-theme="light"]{
  --wp-table-row-odd:#ffffff;
  --wp-table-row-even:#eaf1f6;
  --wp-table-row-hover:#dceaf3;
}
html[data-theme="dark"]{
  --wp-table-row-odd:#1c252e;
  --wp-table-row-even:#26323d;
  --wp-table-row-hover:#334553;
}
@media (prefers-color-scheme:dark){
  html[data-theme="system"]{
    --wp-table-row-odd:#1c252e;
    --wp-table-row-even:#26323d;
    --wp-table-row-hover:#334553;
  }
}
table tbody tr:nth-child(odd) > td{background:var(--wp-table-row-odd)!important}
table tbody tr:nth-child(even) > td{background:var(--wp-table-row-even)!important}
table tbody tr:hover > td{background:var(--wp-table-row-hover)!important}


/* V0.2.17 — logo détouré + sélection de calendriers par glisser */
.menuWallace,.wallaceMenuLogo{background:transparent!important}
.calendarGrid.dragSelectable{user-select:none;-webkit-user-select:none;touch-action:none}
.calendarGrid.dragSelectable .calCell.day{cursor:crosshair}
.calendarGrid.dragSelectable .calCell.day:active{transform:scale(.98)}

/* V0.2.19 — splash Wallace officiel blanc sur fond bleu foncé métallique */
.supervisionSplash{
  position:fixed;
  inset:0;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(29,111,191,.30) 0%, rgba(7,35,72,.18) 28%, transparent 58%),
    radial-gradient(ellipse at 18% 18%, rgba(35,126,221,.16) 0%, transparent 34%),
    radial-gradient(ellipse at 82% 78%, rgba(24,99,184,.17) 0%, transparent 36%),
    linear-gradient(135deg,#020a18 0%,#06172f 23%,#08264a 48%,#051a35 70%,#020914 100%);
}
.supervisionSplash::before{
  content:"";
  position:absolute;
  inset:-12%;
  z-index:-3;
  opacity:.62;
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.018) 0 1px,transparent 1px 5px),
    linear-gradient(100deg,transparent 0 20%,rgba(38,141,255,.16) 33%,transparent 45% 58%,rgba(120,193,255,.10) 72%,transparent 84%);
  transform:skewY(-3deg) scale(1.12);
}
.supervisionSplash::after{
  content:"";
  position:absolute;
  left:-8%;right:-8%;bottom:11%;height:2px;
  z-index:-1;
  background:linear-gradient(90deg,transparent,#087de6 24%,#67c9ff 50%,#087de6 76%,transparent);
  box-shadow:0 0 16px rgba(39,155,255,.60),0 22px 50px rgba(0,112,255,.16);
  opacity:.72;
}
.supervisionSplash .splashGlow{
  position:absolute;
  width:min(78vw,1080px);
  aspect-ratio:1.9/1;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(15,119,220,.20),rgba(0,90,180,.07) 44%,transparent 72%);
  filter:blur(18px);
  z-index:-1;
}
.supervisionSplash .metalSheen{
  position:absolute;
  z-index:-2;
  width:78vw;
  height:17vh;
  border-radius:50%;
  filter:blur(1px);
  opacity:.34;
  background:linear-gradient(90deg,transparent 0%,rgba(36,139,255,.10) 20%,rgba(125,200,255,.28) 47%,rgba(20,112,224,.12) 72%,transparent 100%);
  box-shadow:0 0 42px rgba(14,111,223,.20);
}
.supervisionSplash .metalSheenA{top:12%;left:-13%;transform:rotate(-16deg)}
.supervisionSplash .metalSheenB{top:20%;right:-18%;transform:rotate(-22deg)}
.supervisionSplash .metalSheenC{bottom:8%;left:10%;width:82vw;transform:rotate(9deg);opacity:.22}
.supervisionSplashLogo{
  display:block;
  width:min(58vw,760px);
  max-height:66vh;
  object-fit:contain;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 0 12px rgba(57,160,255,.18)) drop-shadow(0 0 34px rgba(0,106,255,.20));
}
/* Même splash dans les deux thèmes : identité Wallace bleu nuit métallique + logo blanc. */
html[data-theme="light"] .supervisionSplashLogo,
html[data-theme="dark"] .supervisionSplashLogo{content:url("assets/wallace-official-white-transparent.png")}
@media (prefers-color-scheme:dark){html[data-theme="system"] .supervisionSplashLogo{content:url("assets/wallace-official-white-transparent.png")}}

/* Logo officiel détouré dans la barre latérale, sans fond quel que soit le thème. */
.wallaceMenuLogo{
  display:block;
  width:172px;
  max-width:100%;
  height:auto;
  max-height:92px;
  object-fit:contain;
  margin:0 auto 5px;
  background:transparent!important;
  filter:drop-shadow(0 0 7px rgba(40,135,220,.18));
}
html[data-theme="light"] .wallaceMenuLogo,
html[data-theme="dark"] .wallaceMenuLogo{content:url("assets/wallace-official-white-transparent.png")}
@media (prefers-color-scheme:dark){html[data-theme="system"] .wallaceMenuLogo{content:url("assets/wallace-official-white-transparent.png")}}

/* V0.2.20 — identité Wallace validée : splash bleu profond + chrono 9H→6H */
.supervisionSplash{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  overflow:hidden;
  background:#031126 url("assets/wallace-splash-v020.png") center center / cover no-repeat;
}
/* Le visuel est un vrai fond desktop plein écran : aucun cadre ni limite type téléphone. */
.supervisionSplash::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 110px rgba(0,0,0,.26);
}
/* Désactive les anciennes couches du splash, qui ne sont plus nécessaires. */
.supervisionSplash .metalSheen,
.supervisionSplash .splashGlow,
.supervisionSplash .supervisionSplashLogo{display:none!important}

/* Logo compact commun aux menus Admin et User. */
.menuWallace{
  width:100%;
  height:auto;
  min-height:112px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent!important;
  overflow:visible;
}
.wallaceMenuLogo{
  content:url("assets/wallace-menu-chrono-white.png")!important;
  width:min(185px,92%);
  height:auto;
  max-height:118px;
  object-fit:contain;
  display:block;
  margin:0 auto;
  background:transparent!important;
  filter:drop-shadow(0 0 8px rgba(37,139,255,.20));
}
.brandblock{
  margin:-10px 0 18px;
  text-align:center;
}
.brandblock .subbrand{margin-top:0}
@media(max-width:900px){
  .menuWallace{min-height:64px}
  .wallaceMenuLogo{width:64px;max-height:64px}
}

.pinInput{display:flex;gap:8px;align-items:center}.pinInput input{min-width:0;flex:1}.pinInput button{flex-shrink:0}

/* V0.2.32 — approved WALLACE/chrono identity, same for both themes. */
.supervisionSplash{display:flex;align-items:center;justify-content:center;background:#031126 url("assets/wallace-metal-2026.png") center/cover no-repeat;isolation:isolate}
.supervisionSplash::after{display:none}
.wallaceSplash2026{display:block;width:min(76vw,calc(76vh * 854 / 766));height:auto;max-height:76vh;object-fit:contain;mix-blend-mode:screen}
.menuWallace{height:146px;min-height:146px;overflow:hidden;border-radius:10px;background:#031126 url("assets/wallace-metal-2026.png") center/cover no-repeat!important;isolation:isolate}
html[data-theme] .wallaceMenuLogo{content:normal!important;display:block;width:94%;height:134px;max-height:134px;object-fit:contain;mix-blend-mode:screen;filter:none;background:transparent!important}
@media(max-width:900px){.menuWallace{height:68px;min-height:68px}html[data-theme] .wallaceMenuLogo{width:64px;height:60px;max-height:60px}}

html[data-theme] .supervisionSplash{background:#031126 url("assets/wallace-metal-2026.png") center/cover no-repeat!important}
.supervisionSplash::before{display:none}
