/* Cap Équipe design system: tokens, application shell and shared components.
   Loaded last; pages keep their markup and pick up these styles. */
:root{
 --ce-bg:#f5f7fb;--ce-surface:#fff;--ce-subtle:#f8fafc;--ce-hover:#f2f5f9;
 --ce-border:#e3e8ef;--ce-border-strong:#cdd5df;
 --ce-text:#101828;--ce-text-2:#475467;--ce-text-3:#667085;
 --ce-primary:#2459d6;--ce-primary-hover:#1d48b3;--ce-primary-soft:#edf3ff;--ce-primary-line:#c7d7fe;
 --ce-success:#067647;--ce-success-soft:#ecfdf3;--ce-success-line:#abefc6;
 --ce-warning:#b54708;--ce-warning-soft:#fffaeb;--ce-warning-line:#fedf89;
 --ce-danger:#b42318;--ce-danger-soft:#fef3f2;--ce-danger-line:#fecdca;
 --ce-info:#175cd3;--ce-info-soft:#eff8ff;--ce-info-line:#b2ddff;
 --ce-neutral-soft:#f2f4f7;--ce-neutral-line:#e4e7ec;
 --ce-r-sm:6px;--ce-r:8px;--ce-r-lg:12px;
 --ce-shadow:0 1px 2px rgba(16,24,40,.05);--ce-shadow-md:0 4px 12px rgba(16,24,40,.08);
 --ce-font:"Inter","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
 --ce-fs:13.5px;--ce-fs-sm:12.5px;--ce-fs-xs:11.5px;
 --ce-header:54px;--ce-side:236px;
}
/* ---------- Application shell (signed-in only: .shell exists) ---------- */
body:has(.shell){background:var(--ce-bg);font-family:var(--ce-font);font-size:var(--ce-fs);color:var(--ce-text)}
body:has(.shell) .top{height:var(--ce-header);padding:0 20px;background:var(--ce-surface);border-bottom:1px solid var(--ce-border);backdrop-filter:none}
body:has(.shell) .top .brand{font-size:17px;letter-spacing:-.3px}
body:has(.shell) .top .brand span{width:28px;height:28px;border-radius:8px;background:var(--ce-primary);color:#fff;font-size:15px}
body:has(.shell) .top nav{gap:14px;font-size:var(--ce-fs-sm)}
body:has(.shell) .top .muted{color:var(--ce-text-2);font-weight:600}
body:has(.shell)>footer{display:none}
.shell{max-width:none;margin:0;padding:0;display:grid;grid-template-columns:var(--ce-side) minmax(0,1fr);gap:0;min-height:calc(100vh - var(--ce-header))}
.shell>.workspace{padding:20px 28px 60px;min-width:0;max-width:1480px}
/* ---------- Sidebar ---------- */
.shell .side{position:sticky;top:var(--ce-header);height:calc(100vh - var(--ce-header));max-height:none;overflow:auto;background:var(--ce-surface);border-right:1px solid var(--ce-border);border-radius:0;padding:10px 10px 24px;margin:0;scrollbar-width:thin}
.shell .side details{border:0;padding:0;margin:0 0 6px}
.shell .side summary{display:flex;align-items:center;gap:8px;list-style:none;padding:7px 8px 4px;font-size:var(--ce-fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ce-text-3);cursor:pointer;border-radius:var(--ce-r-sm)}
.shell .side summary::-webkit-details-marker{display:none}
.shell .side summary::after{content:"";margin-left:auto;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s;opacity:.6}
.shell .side details[open]>summary::after{transform:rotate(45deg)}
.shell .side summary>span{display:none}
.shell .side details:hover summary>span,.shell .side summary:focus-within>span{display:inline-flex;gap:2px;margin-left:auto}
.shell .side details:hover summary::after{margin-left:6px}
.shell .side .ce-order{border:0;background:none;padding:0 3px;color:var(--ce-text-3);font-size:11px;cursor:pointer}
.shell .side button:not(.ce-order){display:flex;align-items:center;gap:9px;width:100%;min-height:30px;padding:5px 10px;margin:1px 0;border:0;border-radius:var(--ce-r-sm);background:transparent;color:var(--ce-text-2);font-size:var(--ce-fs);font-weight:500;line-height:1.25;text-align:left;cursor:pointer}
.shell .side button:not(.ce-order):hover{background:var(--ce-hover);color:var(--ce-text)}
.shell .side button.active{background:var(--ce-primary-soft);color:var(--ce-primary);font-weight:650;box-shadow:inset 3px 0 0 var(--ce-primary)}
.shell .side button .ce-ico{color:var(--ce-text-3);flex:none}
.shell .side button.active .ce-ico{color:var(--ce-primary)}
.shell .side>button[data-section=dashboard]{margin-bottom:8px}
.shell .side .ce-menu-reset{margin-top:10px;font-size:var(--ce-fs-xs);color:var(--ce-text-3);min-height:24px}
/* ---------- Icons ---------- */
.ce-ico{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
button .ce-ico,a .ce-ico{margin-right:6px}
.shell .side button .ce-ico{margin-right:0}
/* ---------- Typography & page header ---------- */
.workspace h1{font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0 0 4px;color:var(--ce-text);font-family:var(--ce-font)}
.workspace h1+p,.workspace h1+.fine{margin-top:0}
.workspace h2{font-size:16px;font-weight:650;margin:0 0 10px;letter-spacing:-.1px}
.workspace h3{font-size:14px;font-weight:650;margin:0 0 8px}
.workspace p{line-height:1.5}
.workspace .fine,.workspace small{color:var(--ce-text-3);font-size:var(--ce-fs-sm);line-height:1.45}
.workspace>p:first-of-type{color:var(--ce-text-2)}
.workspace a:not(.primary):not(.secondary):not(.danger),.workspace button.link,.workspace .link{color:var(--ce-primary);font-weight:500;background:none;border:0;padding:0;cursor:pointer;text-decoration:none}
.workspace button.link:hover,.workspace .link:hover{text-decoration:underline}
/* ---------- Cards ---------- */
.workspace .card{background:var(--ce-surface);border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);padding:16px 18px;box-shadow:var(--ce-shadow);margin-bottom:14px}
.workspace details.card>summary{cursor:pointer;font-weight:650;font-size:14px}
/* ---------- Buttons: primary / secondary / tertiary (link) / danger ---------- */
.workspace .primary,.workspace .secondary,.workspace .danger,dialog .primary,dialog .secondary,dialog .danger,.ce-confirm button{display:inline-flex;align-items:center;justify-content:center;gap:0;min-height:32px;padding:6px 13px;border-radius:var(--ce-r);font-size:var(--ce-fs);font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s}
.workspace .primary,dialog .primary{background:var(--ce-primary);color:#fff;border:1px solid var(--ce-primary);box-shadow:var(--ce-shadow)}
.workspace .primary:hover,dialog .primary:hover{background:var(--ce-primary-hover);border-color:var(--ce-primary-hover)}
.workspace .secondary,dialog .secondary,.ce-confirm button{background:var(--ce-surface);color:var(--ce-text);border:1px solid var(--ce-border-strong);box-shadow:var(--ce-shadow)}
.workspace .secondary:hover,dialog .secondary:hover,.ce-confirm button:hover{background:var(--ce-hover)}
.workspace .danger,dialog .danger{background:var(--ce-surface);color:var(--ce-danger);border:1px solid var(--ce-danger-line)}
.workspace .danger:hover,dialog .danger:hover{background:var(--ce-danger-soft)}
.workspace button:disabled,.workspace [aria-disabled=true],dialog button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.workspace button[aria-busy=true]{position:relative;color:transparent!important}
.workspace button[aria-busy=true]::after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-color:#fff #fff transparent transparent;border-radius:50%;animation:ce-spin .7s linear infinite}
.workspace .secondary[aria-busy=true]::after{border-color:var(--ce-primary) var(--ce-primary) transparent transparent}
@keyframes ce-spin{to{transform:rotate(360deg)}}
.workspace .row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.workspace form>.primary,.workspace form>.secondary,.workspace .form>button{justify-self:start;width:auto}
:where(.workspace,dialog) :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--ce-primary);outline-offset:2px}
/* ---------- Forms ---------- */
.workspace .form{gap:12px 16px}
.workspace .form label,.workspace .field{gap:5px;font-size:var(--ce-fs-sm);font-weight:600;color:var(--ce-text-2)}
.workspace input:not([type=checkbox]):not([type=radio]),.workspace select,.workspace textarea,dialog input:not([type=checkbox]):not([type=radio]),dialog select,dialog textarea{min-height:34px;padding:6px 10px;border:1px solid var(--ce-border-strong);border-radius:var(--ce-r);background:var(--ce-surface);color:var(--ce-text);font-size:var(--ce-fs);font-weight:400;box-shadow:var(--ce-shadow);transition:border-color .12s,box-shadow .12s}
.workspace textarea,dialog textarea{min-height:70px}
.workspace input:hover,.workspace select:hover,.workspace textarea:hover{border-color:#98a2b3}
.workspace input:focus,.workspace select:focus,.workspace textarea:focus,dialog input:focus,dialog select:focus,dialog textarea:focus{outline:none;border-color:var(--ce-primary);box-shadow:0 0 0 3px var(--ce-primary-soft)}
.workspace input[readonly]{background:var(--ce-subtle);color:var(--ce-text-2)}
.workspace input[type=checkbox],.workspace input[type=radio],dialog input[type=checkbox]{width:16px;height:16px;accent-color:var(--ce-primary);margin:0;flex:none}
.workspace .checkbox-inline{font-weight:500;color:var(--ce-text)}
.workspace fieldset{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);padding:12px 14px 14px;margin:0}
.workspace legend{padding:0 6px;font-size:13px;font-weight:650;color:var(--ce-text)}
.workspace .field-help summary,dialog .field-help summary{display:inline-grid;place-items:center;width:17px;height:17px;padding:0;border-radius:50%;border:1px solid var(--ce-primary-line);background:var(--ce-primary-soft);color:var(--ce-primary);font-size:10.5px;font-weight:700;line-height:1}
.workspace .field-help p,dialog .field-help p{background:#101828;color:#fff;border-radius:var(--ce-r);font-size:12.5px;font-weight:400;line-height:1.45;box-shadow:var(--ce-shadow-md)}
/* ---------- Tables ---------- */
.workspace table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--ce-fs-sm)}
.workspace .table-wrap{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);overflow:auto;background:var(--ce-surface)}
.workspace th{background:var(--ce-subtle);color:var(--ce-text-3);font-size:var(--ce-fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:7px 10px;border-bottom:1px solid var(--ce-border);position:sticky;top:0;z-index:1}
.workspace td{padding:6px 10px;border-bottom:1px solid #eef1f5;vertical-align:middle}
.workspace tbody tr:hover>td{background:#fafbfd}
.workspace td.num,.workspace th.num{text-align:right;font-variant-numeric:tabular-nums}
/* ---------- Badges (status) ---------- */
.workspace .badge,dialog .badge,.ce-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:var(--ce-fs-xs);font-weight:600;line-height:1.5;border:1px solid var(--ce-neutral-line);background:var(--ce-neutral-soft);color:var(--ce-text-2);white-space:nowrap}
.badge::before,.ce-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.badge.ce-st-success,.ce-version-on{background:var(--ce-success-soft)!important;color:var(--ce-success)!important;border-color:var(--ce-success-line)!important;text-decoration:none}
.badge.ce-st-warning{background:var(--ce-warning-soft);color:var(--ce-warning);border-color:var(--ce-warning-line)}
.badge.ce-st-danger{background:var(--ce-danger-soft);color:var(--ce-danger);border-color:var(--ce-danger-line)}
.badge.ce-st-info,.ce-version-other{background:var(--ce-info-soft)!important;color:var(--ce-info)!important;border-color:var(--ce-info-line)!important}
.badge.ce-st-neutral,.ce-version-off{background:var(--ce-neutral-soft)!important;color:var(--ce-text-3)!important;border-color:var(--ce-neutral-line)!important;text-decoration:none!important}
/* ---------- Alerts (information / warning / blocking / success) ---------- */
.ce-alert,.workspace .ce-times-warning,.workspace .ce-leave-conflicts,.workspace .ce-pay-blocked{display:flex;align-items:flex-start;gap:9px;padding:9px 12px;border-radius:var(--ce-r);border:1px solid;font-size:var(--ce-fs-sm);line-height:1.45;margin:8px 0}
.ce-alert.info{background:var(--ce-info-soft);border-color:var(--ce-info-line);color:#1849a9}
.ce-alert.warning,.workspace .ce-times-warning{background:var(--ce-warning-soft);border-color:var(--ce-warning-line);color:#93370d}
.ce-alert.danger,.workspace .ce-leave-conflicts,.workspace .ce-pay-blocked{background:var(--ce-danger-soft);border-color:var(--ce-danger-line);color:#912018}
.ce-alert.success{background:var(--ce-success-soft);border-color:var(--ce-success-line);color:#085d3a}
.ce-alert .ce-ico,.workspace .ce-leave-conflicts>.ce-ico{margin-top:1px}
.workspace [hidden]{display:none!important}
.workspace .ce-save-status:not(:empty){display:inline-flex;align-items:center;gap:6px;font-size:var(--ce-fs-sm);color:var(--ce-success);font-weight:600}
.workspace .ce-save-status.error{color:var(--ce-danger)}
/* ---------- Toast ---------- */
#toast{right:18px;bottom:18px;background:#101828;color:#fff;padding:10px 14px 10px 12px;border-radius:var(--ce-r-lg);font-size:var(--ce-fs);box-shadow:var(--ce-shadow-md);display:flex;align-items:center;gap:8px}
#toast.bad,#toast.error{background:var(--ce-danger)}
/* ---------- Dialogs ---------- */
dialog{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);box-shadow:0 20px 50px rgba(16,24,40,.22);padding:18px 20px;font-family:var(--ce-font);font-size:var(--ce-fs);color:var(--ce-text)}
dialog::backdrop{background:rgba(16,24,40,.38)}
dialog h2{font-size:17px;margin:0 0 10px}
/* ---------- Empty states ---------- */
.ce-empty{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px dashed var(--ce-border-strong);border-radius:var(--ce-r-lg);color:var(--ce-text-2);background:var(--ce-subtle);font-size:var(--ce-fs-sm)}
.ce-empty .ce-ico{width:20px;height:20px;color:var(--ce-text-3)}
/* ---------- Responsive ---------- */
@media(max-width:900px){.shell{grid-template-columns:200px minmax(0,1fr)}.shell>.workspace{padding:16px 16px 50px}}
@media(max-width:768px){
 .shell{display:block}
 .shell .side{position:static;height:auto;display:none;border-right:0;border-bottom:1px solid var(--ce-border);padding:8px 10px}
 .shell .side.ce-mobile-open{display:block}
 .shell .ce-mobile-menu{display:flex;align-items:center;gap:8px;width:auto;margin:10px 12px 0;min-height:34px;padding:6px 12px;border-radius:var(--ce-r);border:1px solid var(--ce-border-strong);background:var(--ce-surface);font-weight:600}
 .shell>.workspace{padding:12px 12px 40px}
 .workspace h1{font-size:19px}
 body:has(.shell) .top{padding:0 12px}
}
/* ---------- Page head, quick actions, dashboard ---------- */
.ce-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.ce-page-head h1{margin:0}
.ce-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.ce-quick-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);background:var(--ce-surface);color:var(--ce-text);font:600 13px var(--ce-font);cursor:pointer;box-shadow:var(--ce-shadow)}
.ce-quick-btn .ce-ico{color:var(--ce-primary);margin:0}
.ce-quick-btn:hover{border-color:var(--ce-primary-line);background:var(--ce-primary-soft)}
.ce-dash{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px;align-items:start}
.ce-dash-side>.card{margin-bottom:14px}
.ce-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.ce-card-head h2{margin:0}
.ce-todo,.ce-timeline{list-style:none;margin:0;padding:0}
.ce-todo li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--ce-border);border-left-width:3px;border-radius:var(--ce-r);margin-bottom:6px;background:var(--ce-surface)}
.ce-todo li>span{flex:1;min-width:0;font-size:var(--ce-fs)}
.ce-todo li>.ce-ico{margin:0}
.ce-todo-danger{border-left-color:var(--ce-danger)!important}.ce-todo-danger>.ce-ico{color:var(--ce-danger)}
.ce-todo-warning{border-left-color:#f79009!important}.ce-todo-warning>.ce-ico{color:var(--ce-warning)}
.ce-todo-info{border-left-color:var(--ce-info)!important}.ce-todo-info>.ce-ico{color:var(--ce-info)}
.workspace .ce-todo-go{min-height:28px;padding:4px 10px;font-size:var(--ce-fs-sm)}
.ce-mini-table td,.ce-mini-table th{padding:6px 8px}
.ce-timeline li{display:flex;gap:9px;align-items:flex-start;padding:6px 0;border-bottom:1px solid #eef1f5;font-size:var(--ce-fs)}
.ce-timeline li:last-child{border-bottom:0}
.ce-timeline .ce-ico{color:var(--ce-text-3);margin-top:2px}
@media(max-width:1100px){.ce-dash{grid-template-columns:1fr}}
/* ---------- Timesheet: calm read mode, day nature as pills ---------- */
#app .workspace .ce-times-sheet table.ce-time-grid{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);overflow:hidden;font-size:12.5px}
#app .workspace .ce-times-sheet table.ce-time-grid th{background:var(--ce-subtle);font-size:11px;padding:7px 8px;color:var(--ce-text-3)}
#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day] td{background:#e9f1fc!important;color:var(--ce-text);border-right:0;border-bottom:1px solid #eef1f5;height:30px}
#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day] td:nth-child(1),#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day] td:nth-child(2){color:var(--ce-text-3);font-weight:500}
#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day] td:nth-child(4){font-weight:600}
#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day][data-weekend="1"] td{background:#e1ebf9!important}
#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day].outside-month td{background:#fbfbfc!important;color:#a3acb9}
#app .workspace .ce-times-sheet table.ce-time-grid [data-times-day]:hover td{background:#d9e6f8!important}
#app .workspace .ce-times-sheet table.ce-time-grid .ce-week-total td{background:#235694;color:#fff;border:0;border-right:1px solid #4771a5;border-bottom:4px solid #fff;font-size:12px;font-weight:700;height:28px}
#app .workspace .ce-times-sheet table.ce-time-grid .ce-month-total td{background:#142f51;color:#fff;border:0;border-right:1px solid #36516f;font-size:13px;font-weight:700;height:32px}
#app .workspace .ce-times-sheet table.ce-time-grid .ce-editing td{background:#fffbf0!important;box-shadow:inset 0 1px #fedf89,inset 0 -1px #fedf89}
#app .workspace .ce-times-sheet .ce-cell-value{font-size:12.5px;color:var(--ce-text)}
#app .workspace .ce-times-sheet tr[data-type]:not([data-type=worked]) [data-edit-day]{color:var(--ce-text-3)}
#app .workspace .ce-times-actions{gap:6px}
#app .workspace .ce-times-meta{display:flex;justify-content:space-between;color:var(--ce-text-3);font-size:12px;margin:6px 0}
/* Tables not already inside a card get the card treatment. */
.workspace table:not(.card table):not(.table-wrap table):not(.ce-time-grid):not(.ce-mini-table):not(.ce-pay-table):not(.ce-pay-mini):not(.payroll-preview table){background:var(--ce-surface);border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);overflow:hidden;box-shadow:var(--ce-shadow)}
/* ---------- Document rows (vault, HR documents) ---------- */
.workspace article.ce-doc-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 14px;margin-bottom:8px}
.workspace article.ce-doc-row>.ce-doc-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--ce-r);background:var(--ce-primary-soft);color:var(--ce-primary);flex:none}
.workspace article.ce-doc-row>.ce-doc-ico .ce-ico{margin:0;width:18px;height:18px}
.workspace .ce-doc-main{flex:1 1 260px;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.workspace .ce-doc-main>b,.workspace .ce-doc-main>strong{font-size:13.5px}
.workspace .ce-doc-main>p{flex-basis:100%;margin:0;color:var(--ce-text-3);font-size:var(--ce-fs-sm);overflow-wrap:anywhere}
.workspace article.ce-doc-row>.ce-document-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;margin-left:auto}
.workspace article.ce-doc-row>:not(.ce-doc-ico):not(.ce-doc-main):not(.ce-document-actions){flex-basis:100%}
.workspace .ce-icon{display:inline-flex;align-items:center;gap:0;min-height:28px;padding:4px 9px;border:1px solid transparent;border-radius:var(--ce-r);background:transparent;color:var(--ce-primary);font-size:var(--ce-fs-sm);font-weight:600;text-decoration:none;cursor:pointer}
.workspace .ce-icon:hover{background:var(--ce-primary-soft)}
.workspace .ce-document-actions :is(.secondary,.primary,.danger){min-height:28px;padding:4px 10px;font-size:var(--ce-fs-sm)}
/* ---------- Simple forms flow on several columns on wide screens ---------- */
@media(min-width:1100px){
 .workspace form.form:not(.two):not(.ce-no-grid){grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-items:end}
 .workspace form.form:not(.two)>:is(fieldset,textarea,.full,h2,h3,p,details,.ce-leave-bar,.ce-calendars,.ce-leave-legend,.ce-leave-conflicts,.ce-calendar-nav,[data-leave-list],.row,div:has(table)),.workspace form.form:not(.two)>label:has(textarea){grid-column:1/-1}
 .workspace form.form:not(.two)>button{grid-column:auto;align-self:end}
}
/* ---------- Leave calendar ---------- */
.workspace .ce-month-grid{gap:3px}
.workspace .ce-month-grid .ce-date{background:#fff;border:1px solid var(--ce-border);border-radius:var(--ce-r-sm);min-height:34px}
.workspace .ce-month-grid .ce-date.selected{background:var(--ce-primary-soft);border-color:var(--ce-primary-line)}
.workspace .ce-month-grid .ce-conflict-date{outline:2px solid var(--ce-danger);outline-offset:-2px;background:var(--ce-danger-soft)}
.workspace .ce-month-grid>span{font-size:11px;color:var(--ce-text-3);font-weight:600;text-align:center}
.workspace .ce-leave-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:var(--ce-fs-sm);color:var(--ce-text-2)}
/* ---------- Planning cells ---------- */
.workspace td.ce-cell-rest{color:var(--ce-text-3);background:#fafbfc}
.workspace td.ce-cell-todo{color:var(--ce-warning);font-style:italic}
.workspace td.ce-cell-closed{background:#fdead7;color:#9c2a10;font-weight:600}
.workspace td.ce-cell-shift{color:var(--ce-primary);font-weight:600;font-variant-numeric:tabular-nums}

/* ---------- Person files: section chips, grid fixes ---------- */
.ce-section-nav{position:sticky;top:calc(var(--ce-header) + 4px);z-index:4;display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;margin:0 0 12px;background:rgba(245,247,251,.94);backdrop-filter:blur(6px);border:1px solid var(--ce-border);border-radius:var(--ce-r-lg)}
.ce-section-nav button{border:1px solid var(--ce-border);background:var(--ce-surface);color:var(--ce-text-2);border-radius:999px;padding:4px 11px;font:600 12px var(--ce-font);cursor:pointer}
.ce-section-nav button:hover{border-color:var(--ce-primary-line);color:var(--ce-primary);background:var(--ce-primary-soft)}
.workspace :is(details.ce-profile-group>summary,.card>h2,#weekly-schedule>h2){scroll-margin-top:calc(var(--ce-header) + 64px)}
#app .workspace .form.two>h2,#app .workspace .form>h2{grid-column:1/-1}
#app .workspace .form>span:empty{display:none}
.workspace details.ce-profile-group{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);padding:0 14px;margin:6px 0;background:var(--ce-surface);grid-column:1/-1}
.workspace details.ce-profile-group>summary{padding:10px 0;font-weight:650;font-size:14px;cursor:pointer;color:var(--ce-text)}
.workspace details.ce-profile-group[open]>summary{border-bottom:1px solid var(--ce-border);margin-bottom:10px}
.workspace details.ce-profile-group>div{padding-bottom:12px}
.ce-section-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}
.ce-section-nav button{flex:none;white-space:nowrap}
.workspace :is(details.ce-profile-group>summary,.card>h2,#weekly-schedule>h2){scroll-margin-top:calc(var(--ce-header) + 62px)}
.workspace :is(details.ce-profile-group>summary,.card>h2,#weekly-schedule>h2){scroll-margin-top:calc(var(--ce-header) + 72px)}
/* ---------- Usual schedule editor: one compact line per weekday ---------- */
.workspace .ce-week{display:grid;gap:4px;max-width:980px}
.workspace .ce-week-day{display:grid;grid-template-columns:92px minmax(0,1fr) auto auto auto;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--ce-border);border-radius:var(--ce-r);background:var(--ce-surface)}
.workspace .ce-week-day>b{font-size:13px;font-weight:600}
.workspace .ce-week-day>.ce-slots{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.workspace .ce-week-day>.ce-slots:empty{display:none}
.workspace .ce-week-day>.ce-rest{grid-column:2;color:var(--ce-text-3);font-size:12.5px}
.workspace .ce-week-day .ce-slot{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 6px;background:var(--ce-subtle);border:1px solid var(--ce-border);border-radius:var(--ce-r)}
.workspace .ce-week-day .ce-slot input[type=time]{width:96px;min-height:28px;padding:2px 6px;box-shadow:none}
.workspace .ce-week-day .ce-slot>span{color:var(--ce-text-3)}
.workspace .ce-week-day>output{min-width:52px;text-align:right;font-weight:600;font-size:12.5px;color:var(--ce-text-2)}
@media(max-width:700px){.workspace .ce-week-day{grid-template-columns:1fr auto;}.workspace .ce-week-day>.ce-slots,.workspace .ce-week-day>.ce-rest{grid-column:1/-1}}
@media(min-width:1100px){.workspace form.form:not(.two)>:is(div:not(.field),section,table,output,nav){grid-column:1/-1}}
.workspace .payroll-preview dl dt,.workspace .payroll-preview dl dd{margin:0;padding:3px 0;border-bottom:1px solid #eef1f5;align-self:center}
.workspace .payroll-preview dl{margin:10px 0}
.workspace label>.ce-field-head,dialog label>.ce-field-head{display:flex;align-items:center;gap:6px}
.workspace #pay-history article.card{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 14px;margin-bottom:6px}
.workspace #pay-history article.card>b{min-width:220px}
.workspace #pay-history article.card>p{margin:0}
.workspace #pay-history article.card>button{margin-left:auto;min-height:28px;padding:4px 10px;font-size:var(--ce-fs-sm)}

/* ---------- Vault storage card ---------- */
.workspace .ce-storage{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);padding:12px 14px;margin:10px 0;background:var(--ce-surface)}
.workspace .ce-storage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.workspace .ce-storage-head h3{margin:0 0 2px}
.workspace .ce-storage-bar{width:100%;height:8px;margin:8px 0 4px;accent-color:var(--ce-primary)}
.workspace .ce-storage[data-state=warning] .ce-storage-bar{accent-color:#f79009}
.workspace .ce-storage[data-state=full] .ce-storage-bar{accent-color:var(--ce-danger)}
.workspace .ce-storage-use{margin:0 0 6px;font-size:var(--ce-fs-sm);color:var(--ce-text-2)}
.workspace .ce-storage-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0}
.workspace .ce-storage-plan{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:9px 11px;border:1px solid var(--ce-border);border-radius:var(--ce-r);background:var(--ce-subtle)}
.workspace .ce-storage-plan>span:not(.badge){color:var(--ce-text-2);font-size:var(--ce-fs-sm)}
.workspace .ce-storage-plan.current{border-color:var(--ce-success-line);background:var(--ce-success-soft)}
.workspace .ce-storage-plan.chosen{border-color:var(--ce-info-line);background:var(--ce-info-soft)}
.workspace .ce-storage-plan .secondary{min-height:28px;padding:3px 10px;font-size:var(--ce-fs-sm)}

/* ---------- Help bubbles (?) — single definitive style, positioned by admin-ux.js ---------- */
:is(body,.workspace,dialog) .field-help{display:inline-flex;position:relative;vertical-align:middle;flex:none;margin:0 0 0 4px;align-self:center}
:is(body,.workspace,dialog) .field-help>summary{display:inline-grid;place-items:center;width:18px;height:18px;min-height:18px;padding:0;border-radius:50%;border:1px solid var(--ce-primary-line);background:var(--ce-primary-soft);color:var(--ce-primary);font-size:11px;font-weight:700;line-height:1;cursor:help;list-style:none}
:is(body,.workspace,dialog) .field-help>summary::-webkit-details-marker{display:none}
:is(body,.workspace,dialog) .field-help>summary:focus-visible{outline:2px solid var(--ce-primary);outline-offset:2px}
:is(body,.workspace,dialog) .field-help[open]>p{display:block;position:fixed;z-index:1000;margin:0;padding:9px 11px;width:min(300px,calc(100vw - 32px));background:#101828;color:#fff;border:0;border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.28);font-size:12.5px;font-weight:400;line-height:1.45;text-align:left;white-space:normal;overflow-wrap:anywhere}
:is(body,.workspace,dialog) .field-help[open]>p .ce-abbr{color:inherit;text-decoration-color:rgba(255,255,255,.6)}
:is(body,.workspace,dialog) label:has(>details.field-help):not(:has(input,select,textarea)){display:flex;align-items:center;flex-wrap:wrap;gap:0}
.workspace .ce-help-line{margin:7px 0;font-size:13px;line-height:1.45;color:var(--ce-text-2)}

/* ---------- Public pages (signed out): home, sign-in, sign-up ---------- */
body:not(:has(.shell)){font-family:var(--ce-font);color:var(--ce-text);display:flex;flex-direction:column;min-height:100vh}
body:not(:has(.shell))>main{flex:1 0 auto}
body:not(:has(.shell)) .top .brand span{background:var(--ce-primary);color:#fff;border-radius:8px}
body:not(:has(.shell)) h1,body:not(:has(.shell)) .ccn h2{font-family:var(--ce-font);font-weight:800;letter-spacing:-.035em;color:var(--ce-text)}
body:not(:has(.shell)) .hero h1{font-size:clamp(38px,6vw,62px);line-height:1.05;margin:14px 0 18px}
body:not(:has(.shell)) .hero h1 em{font-style:normal;color:var(--ce-primary)}
body:not(:has(.shell)) .hero{padding-top:84px;padding-bottom:64px}
body:not(:has(.shell)) .eyebrow{color:var(--ce-primary);font-weight:700;letter-spacing:.12em;font-size:11.5px}
body:not(:has(.shell)) .sales-section h2,body:not(:has(.shell)) .ccn h2{font-size:clamp(24px,3vw,30px);line-height:1.2;letter-spacing:-.02em;font-weight:750}
body:not(:has(.shell)) .sales-section .card,body:not(:has(.shell)) .ccn{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);box-shadow:var(--ce-shadow)}
body:not(:has(.shell)) .sales-section .card{transition:border-color .15s,box-shadow .15s}
body:not(:has(.shell)) .sales-section .card:hover{border-color:var(--ce-primary-line);box-shadow:var(--ce-shadow-md)}
body:not(:has(.shell)) .sales-section .card h3{font-size:15.5px;margin:0 0 6px}
body:not(:has(.shell)) .sales-section .card p{color:var(--ce-text-2);line-height:1.55}
.ce-feature-ico{display:inline-grid;place-items:center;width:36px;height:36px;margin-bottom:12px;border-radius:10px;background:var(--ce-primary-soft);border:1px solid var(--ce-primary-line)}
.ce-feature-ico .ce-ico{width:19px;height:19px;margin:0;color:var(--ce-primary)}
body:not(:has(.shell)) .pills span{border:1px solid var(--ce-border);background:var(--ce-surface);color:var(--ce-text-2)}
.ce-price-card{max-width:620px}
#public-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:6px 0 10px}
.ce-price-amount{font-size:36px;font-weight:800;letter-spacing:-.03em;color:var(--ce-text)}
.ce-price-unit{color:var(--ce-text-2);font-weight:600}
.ce-price-extra{flex-basis:100%;color:var(--ce-text-2);font-size:13.5px}
body:not(:has(.shell))>footer{margin-top:40px;border-top:1px solid var(--ce-border);color:var(--ce-text-3)}
/* Sign-in / sign-up */
body:not(:has(.shell)) .auth-wrap{max-width:480px;margin:56px auto;padding:0 20px}
body:not(:has(.shell)) .auth-wrap h1{font-size:34px;line-height:1.1;letter-spacing:-.03em;margin:8px 0 14px}
body:not(:has(.shell)) .auth-wrap .card{border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);box-shadow:var(--ce-shadow-md);padding:22px}
body:not(:has(.shell)) .auth-wrap.ce-auth{max-width:980px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
body:not(:has(.shell)) .auth-wrap.ce-auth:not(.ce-auth-wide){max-width:900px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}
.ce-auth-aside{padding-top:18px}
.ce-auth-lead{color:var(--ce-text-2);font-size:15.5px;line-height:1.55;margin:0 0 20px}
.ce-auth-points{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.ce-auth-points li{display:flex;align-items:center;gap:10px;color:var(--ce-text-2);font-weight:600;font-size:14px}
.ce-auth-points li>span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--ce-primary-soft);flex:none}
.ce-auth-points .ce-ico{margin:0;color:var(--ce-primary)}
.ce-auth-card{display:grid;gap:14px}
.ce-auth-card .primary{min-height:42px;font-size:15px}
.ce-auth-main>.fine{margin-top:14px;text-align:center}
.ce-auth-step{border:0;border-top:1px solid var(--ce-border);margin:0;padding:14px 0 0;min-width:0}
.ce-auth-step:first-of-type{border-top:0;padding-top:0}
.ce-auth-step legend{display:flex;align-items:center;gap:8px;padding:0;margin-bottom:10px;font-weight:700;font-size:14px;color:var(--ce-text)}
.ce-auth-step legend span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ce-primary);color:#fff;font-size:12px}
.ce-auth-step .form.two{gap:12px}
.ce-auth-step>label{display:grid;gap:6px;font-weight:600}
.ce-auth-step .fine{margin:8px 0 0;color:var(--ce-text-3);line-height:1.45}
@media(max-width:820px){body:not(:has(.shell)) .auth-wrap.ce-auth{grid-template-columns:1fr;gap:18px;margin-top:28px}.ce-auth-aside{padding-top:0}.ce-auth-points{display:none}body:not(:has(.shell)) .auth-wrap h1{font-size:28px}}
@media(max-width:600px){.ce-auth-step .form.two{grid-template-columns:1fr}}
.ce-auth-step .form.two{align-items:start}.ce-auth-step .field{align-content:start}.ce-auth-step input,.ce-auth-step select{min-height:40px;height:40px}
.ce-auth-step>label{font-size:12.5px;font-weight:600;color:var(--ce-text)}
.ce-auth-card input,.ce-auth-card select{padding:8px 12px;font-size:14.5px;line-height:1.3}

/* ---------- Shared: page toolbar, chips, empty state, row actions ---------- */
.workspace .ce-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:0 0 14px}
.workspace .ce-toolbar-note{margin:0;max-width:720px;color:var(--ce-text-2);font-size:var(--ce-fs-sm)}
.workspace .ce-chip{display:inline-flex;align-items:center;margin:2px 4px 2px 0;padding:1px 8px;border-radius:999px;border:1px solid var(--ce-neutral-line);background:var(--ce-neutral-soft);color:var(--ce-text-2);font-size:var(--ce-fs-xs);font-weight:600;white-space:nowrap}
.workspace .ce-missing{color:var(--ce-warning);font-size:var(--ce-fs-sm)}
.workspace .ce-empty{padding:28px;text-align:center;color:var(--ce-text-3);border:1px dashed var(--ce-border-strong);border-radius:var(--ce-r-lg);background:var(--ce-surface)}
.workspace td.ce-row-actions{text-align:right;white-space:nowrap}
.workspace td.ce-row-actions>button{margin:2px 0 2px 6px}
@media(max-width:760px){.workspace td.ce-row-actions{text-align:left;white-space:normal}.workspace td.ce-row-actions>button{margin:4px 6px 0 0}}
.workspace .ce-directors td{white-space:normal;vertical-align:top}
.workspace .ce-directors td:nth-child(2){max-width:260px}
.workspace .ce-directors td:nth-child(5){max-width:280px}
.workspace .ce-directors td.ce-row-actions{width:1%}
.workspace .ce-directors td.ce-row-actions>button{display:flex;width:100%;justify-content:center;margin:0 0 6px;white-space:nowrap}
.workspace .ce-directors td:first-child{white-space:nowrap}

/* ---------- Filters bar, KPI tiles, labelled exports (expenses, mileage and reusable) ---------- */
.workspace .ce-filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 12px;align-items:end}
.workspace .ce-filter-bar>button{justify-self:start;align-self:end;min-height:36px}
.workspace .ce-filter-card{padding:12px 14px}
.workspace .ce-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 14px}
.workspace .ce-kpi{padding:10px 12px;border:1px solid var(--ce-border);border-radius:var(--ce-r);background:var(--ce-subtle)}
.workspace .ce-kpi>span{display:flex;align-items:center;gap:4px;color:var(--ce-text-3);font-size:var(--ce-fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.workspace .ce-kpi>b{display:block;margin-top:3px;font-size:18px;font-weight:750;color:var(--ce-text);font-variant-numeric:tabular-nums}
.workspace .ce-exports{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.workspace .ce-export{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--ce-border);border-radius:var(--ce-r)}
.workspace .ce-export-label{font-weight:700;font-size:var(--ce-fs-sm);color:var(--ce-text)}
.workspace .ce-export label{font-size:var(--ce-fs-xs)}
.workspace .ce-export-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.workspace .ce-cost-summary .fine{margin:8px 0 0}
.workspace .ce-cost-item{padding:12px 14px}
.workspace .ce-cost-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.workspace .ce-cost-head h3{margin:0;font-size:14.5px}
.workspace .ce-cost-meta{margin:2px 0 0;color:var(--ce-text-3);font-size:var(--ce-fs-sm)}
.workspace .ce-planning h2{margin:0 6px}.workspace .ce-plan-leave{color:var(--ce-info)}.workspace .ce-plan-closure,.workspace .ce-plan-holiday{color:var(--ce-warning)}.workspace .ce-plan-rest,.workspace .ce-plan-none{color:var(--ce-text-3)}

/* ================= UX pass 2 (sept. 2026): section accents, readable forms, document chooser ================= */
/* Field contrast: white fields stand out from their section (readability, glasses), labels darker. */
:root{--ce-border:#d9e0e8;--ce-border-strong:#a9b4c3;--ce-field-bg:#fff;--ce-section-bg:#f7f9fc}
.workspace .form label,.workspace .field{color:#344054}
.workspace input:not([type=checkbox]):not([type=radio]),.workspace select,.workspace textarea,dialog input:not([type=checkbox]):not([type=radio]),dialog select,dialog textarea{border-color:var(--ce-border-strong);background:var(--ce-field-bg)}
.workspace input:hover,.workspace select:hover,.workspace textarea:hover{border-color:#7d8a9c}
.workspace input:focus,.workspace select:focus,.workspace textarea:focus,dialog input:focus,dialog select:focus,dialog textarea:focus{box-shadow:0 0 0 3px var(--ce-primary-line)}
.workspace input::placeholder,.workspace textarea::placeholder{color:#8a94a6}
.workspace input[type=checkbox],.workspace input[type=radio]{border-color:var(--ce-border-strong)}

/* Section identity: one muted hue per menu group, used only as accents (bar, icon, pale active background). */
.side details[data-menu-group="Entreprise"],body:has(.side details[data-menu-group="Entreprise"] button.active){--ce-acc:#3d5fb8}
.side details[data-menu-group="Équipe"],body:has(.side details[data-menu-group="Équipe"] button.active){--ce-acc:#1b7a6e}
.side details[data-menu-group="Temps et absences"],body:has(.side details[data-menu-group="Temps et absences"] button.active){--ce-acc:#9f6419}
.side details[data-menu-group="Paie et documents"],body:has(.side details[data-menu-group="Paie et documents"] button.active){--ce-acc:#6552b3}
.side details[data-menu-group="RH"],body:has(.side details[data-menu-group="RH"] button.active){--ce-acc:#a8513e}
.workspace>h1{display:flex;align-items:center;gap:10px}
.workspace>h1::before{content:"";flex:none;width:4px;height:20px;border-radius:2px;background:var(--ce-acc,var(--ce-primary));opacity:.85}

/* Form sections (director file, record forms): titled blocks, options as tiles, compact grid. */
.workspace :is(#director-form,#hr-record) fieldset{background:var(--ce-section-bg);border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);padding:12px 16px 16px;margin:0 0 12px;min-width:0}
.workspace :is(#director-form,#hr-record) fieldset[hidden]{display:none}
.workspace :is(#director-form,#hr-record) legend{float:left;width:100%;display:flex;align-items:center;gap:8px;padding:0 0 9px;margin:0 0 12px;border-bottom:1px solid var(--ce-border);font-size:14px;font-weight:650;color:var(--ce-text)}
.workspace :is(#director-form,#hr-record) legend+*{clear:both}
.workspace #director-form>fieldset>legend{scroll-margin-top:calc(var(--ce-header) + 72px)}
.workspace :is(#director-form,#hr-record) legend .ce-ico{color:var(--ce-acc,var(--ce-primary))}
.workspace :is(#director-form,#hr-record) legend small{margin-left:auto;font-size:var(--ce-fs-xs);font-weight:500;color:var(--ce-text-3)}
.workspace :is(#hr-record fieldset.form.two,#hr-record>.form.two,.ce-fgrid){display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px;align-items:end}
.workspace #hr-record fieldset.form.two>legend{grid-column:1/-1}
.workspace #hr-record.form.two:not(:has(>fieldset)){display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px;align-items:end}
.workspace :is(#hr-record,.ce-fgrid) .field:has(textarea){grid-column:1/-1}
.workspace :is(#hr-record,.ce-fgrid) textarea{min-height:64px}
.workspace #hr-record .field:has(textarea){order:9}
.workspace .ce-fchecks{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.workspace .ce-fchecks:last-child{margin-bottom:0}
.workspace :is(.ce-fchecks,#hr-record) label.field.checkbox-inline{display:inline-flex;flex-direction:row;align-items:center;gap:8px;min-height:34px;padding:6px 12px;border:1px solid var(--ce-border-strong);border-radius:var(--ce-r);background:#fff;font-weight:550;color:var(--ce-text);cursor:pointer;width:auto;align-self:end}
.workspace :is(.ce-fchecks,#hr-record) label.field.checkbox-inline:hover{border-color:#7d8a9c}
.workspace :is(.ce-fchecks,#hr-record) label.field.checkbox-inline:has(input:checked){border-color:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 55%,#fff);background:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 8%,#fff)}
.workspace .ce-fchecks label.field.checkbox-inline[hidden]{display:none}
.workspace .ce-form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.workspace .ce-form-head h2{margin:0}
.workspace .ce-form-aside{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;margin:0 0 12px;border:1px dashed var(--ce-border-strong);border-radius:var(--ce-r)}
.workspace .ce-form-aside p{margin:0;flex:1 1 280px}
/* The main action stays visible while scrolling a long form. */
.workspace .ce-form-actions{position:sticky;bottom:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:4px -16px -16px;padding:10px 16px;background:rgba(255,255,255,.96);backdrop-filter:blur(4px);border-top:1px solid var(--ce-border);border-radius:0 0 var(--ce-r-lg) var(--ce-r-lg)}
.workspace .ce-form-actions .fine{margin:0;color:var(--ce-text-3)}
.workspace #hr-record>button.primary{position:sticky;bottom:12px;z-index:5;justify-self:start;box-shadow:0 0 0 6px rgba(255,255,255,.96),0 6px 16px rgba(16,24,40,.18)}
.workspace #director-form{padding-bottom:16px}

/* Document chooser: family cards with icon + subtitle; sub-choices open right under the card. */
.workspace .ce-model-group{margin:0 0 18px}
.workspace .ce-model-group>h2{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 8px}
.workspace .ce-model-group>h2 .ce-ico{color:var(--ce-acc,var(--ce-primary))}
.workspace .ce-model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.workspace .model-card{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;margin:0;padding:10px 14px;text-align:left;border:1px solid var(--ce-border);border-radius:var(--ce-r-lg);background:#fff;box-shadow:var(--ce-shadow);transition:border-color .12s,background .12s,box-shadow .12s}
.workspace .model-card:hover{border-color:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 45%,#fff);background:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 4%,#fff)}
.workspace .model-card.active{border-color:var(--ce-acc,var(--ce-primary));background:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 8%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 20%,transparent)}
.workspace .ce-mc-ico{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 10%,#fff);color:var(--ce-acc,var(--ce-primary))}
.workspace .ce-mc-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.workspace .ce-mc-text b{font-size:13.5px;color:var(--ce-text);font-weight:650}
.workspace .ce-mc-text small{font-size:var(--ce-fs-xs);color:var(--ce-text-3);line-height:1.3}
.workspace .ce-mc-go{flex:none;color:var(--ce-text-3);font-size:16px}
.workspace .model-card.active .ce-mc-go{color:var(--ce-acc,var(--ce-primary))}
.workspace .ce-subchoice{margin:10px 0 4px;padding:12px 14px 14px;border:1px solid color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 40%,#fff);border-left:4px solid var(--ce-acc,var(--ce-primary));border-radius:var(--ce-r-lg);background:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 5%,#fff);scroll-margin:calc(var(--ce-header) + 16px) 0 24px}
.workspace .ce-subchoice[hidden]{display:none}
.workspace .ce-subchoice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 10px}
.workspace .ce-subchoice-head h3{margin:0;font-size:14.5px}
.workspace .ce-subchoice-head .fine{margin:2px 0 0}
.workspace .ce-variant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.workspace .ce-variant{margin:0;min-height:40px;padding:8px 12px;text-align:left;font-weight:600;border:1px solid var(--ce-border-strong);border-radius:var(--ce-r);background:#fff;cursor:pointer}
.workspace .ce-variant:hover,.workspace .ce-variant:focus-visible{border-color:var(--ce-acc,var(--ce-primary));background:color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 7%,#fff)}
.workspace #document-editor{scroll-margin-top:calc(var(--ce-header) + 12px)}
.workspace #model-cards{scroll-margin-top:calc(var(--ce-header) + 12px)}
@keyframes ce-reveal{from{box-shadow:0 0 0 4px color-mix(in srgb,var(--ce-acc,var(--ce-primary)) 30%,transparent)}to{box-shadow:0 0 0 0 transparent}}
.workspace .ce-reveal{animation:ce-reveal 1.1s ease-out}
@media(prefers-reduced-motion:reduce){.workspace .ce-reveal{animation:none}}

/* Responsive */
@media(max-width:700px){
 .workspace :is(#director-form,#hr-record) fieldset{padding:10px 12px 12px}
 .workspace :is(#hr-record fieldset.form.two,#hr-record>.form.two,.ce-fgrid){grid-template-columns:1fr}
 .workspace :is(#director-form,#hr-record) legend small{display:none}
 .workspace .ce-model-grid{grid-template-columns:1fr}
 .workspace .ce-variant-grid{grid-template-columns:1fr 1fr;gap:6px}
 .workspace .ce-variant{min-height:36px;padding:6px 10px;font-size:13px}
 .workspace .ce-form-actions{margin:4px -12px -12px;padding:10px 12px}
 .workspace .ce-form-actions .fine{display:none}
 .workspace .ce-subchoice-head{flex-direction:column}
}

/* Sidebar, second pass: each menu section is a visual group (pale tinted panel, thin border, coloured edge),
   its items inherit the hue (icons, hover, pastel active state). Colours stay muted; collapsed groups keep them. */
body .side details[data-menu-group="Entreprise"]{--ce-acc:#3d5fb8;--ce-acc-bg:#f4f7fd;--ce-acc-line:#d6dff3;--ce-acc-soft:#e3eaf9}
body .side details[data-menu-group="Équipe"]{--ce-acc:#1b7a6e;--ce-acc-bg:#f1f8f6;--ce-acc-line:#cde6df;--ce-acc-soft:#dbefea}
body .side details[data-menu-group="Temps et absences"]{--ce-acc:#9f6419;--ce-acc-bg:#fbf7f0;--ce-acc-line:#ecdcc0;--ce-acc-soft:#f5e8d3}
body .side details[data-menu-group="Paie et documents"]{--ce-acc:#6552b3;--ce-acc-bg:#f6f4fc;--ce-acc-line:#ddd7f2;--ce-acc-soft:#e9e4f8}
body .side details[data-menu-group="RH"]{--ce-acc:#a8513e;--ce-acc-bg:#fcf5f3;--ce-acc-line:#efd6cf;--ce-acc-soft:#f7e2dc}
body .side details[data-menu-group]{background:var(--ce-acc-bg);border:1px solid var(--ce-acc-line);border-left:3px solid var(--ce-acc);border-radius:10px;padding:2px 5px 5px;margin:0 0 8px}
body .side details[data-menu-group]:not([open]){padding-bottom:2px}
body .side details[data-menu-group]>summary{padding:8px 6px 6px;color:color-mix(in srgb,var(--ce-acc) 88%,#101828);font-weight:750;letter-spacing:.05em}
body .side details[data-menu-group]>summary::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--ce-acc);box-shadow:0 0 0 3px var(--ce-acc-soft)}
body .side details[data-menu-group]>summary::after{opacity:.85;color:var(--ce-acc)}
body .side details[data-menu-group]>summary:hover{background:var(--ce-acc-soft)}
body .side details[data-menu-group] .ce-order{color:var(--ce-acc)}
body .side details[data-menu-group] button:not(.ce-order){color:#344054}
body .side details[data-menu-group] button:not(.ce-order) .ce-ico{color:color-mix(in srgb,var(--ce-acc) 80%,#98a2b3)}
body .side details[data-menu-group] button:not(.ce-order):hover{background:var(--ce-acc-soft);color:color-mix(in srgb,var(--ce-acc) 70%,#101828)}
body .side details[data-menu-group] button.active{background:color-mix(in srgb,var(--ce-acc) 16%,#fff);color:color-mix(in srgb,var(--ce-acc) 78%,#101828);font-weight:680;box-shadow:inset 3px 0 0 var(--ce-acc),0 0 0 1px color-mix(in srgb,var(--ce-acc) 22%,transparent)}
body .side details[data-menu-group] button.active .ce-ico{color:var(--ce-acc)}

/* Compact long forms (Ma société edit, Avances et acomptes): denser grid, visible save, structured deduction block. */
.workspace form.ce-compact-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px;align-items:end}
.workspace form.ce-compact-form :is(.field:has(textarea),label:has(textarea)){grid-column:1/-1}
.workspace form.ce-compact-form>button.primary{position:sticky;bottom:12px;z-index:5;justify-self:start;box-shadow:0 0 0 6px rgba(255,255,255,.96),0 6px 16px rgba(16,24,40,.18)}
.workspace form.recovery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px;align-items:end;margin:10px 0 6px;padding:12px 14px;border:1px solid var(--ce-border);border-radius:var(--ce-r);background:var(--ce-section-bg)}
.workspace form.recovery>p{grid-column:1/-1;margin:0;font-weight:650;color:var(--ce-text)}
.workspace form.recovery>label.ce-confirm{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--ce-border-strong);border-radius:var(--ce-r);background:#fff;font-weight:500;color:var(--ce-text)}
.workspace form.recovery>label.ce-confirm:has(input:checked){border-color:var(--ce-success-line);background:var(--ce-success-soft)}
.workspace form.recovery>button{justify-self:start}
/* Director file: headings of RIB / Horaires / Historique carry an icon like the form sections. */
.workspace #director-editor :is(section.card>h2,#weekly-schedule>h2,details.card>summary){display:flex;align-items:center;gap:8px}
.workspace #director-editor :is(section.card>h2,#weekly-schedule>h2,details.card>summary) .ce-ico{color:var(--ce-acc,var(--ce-primary))}
@media(max-width:700px){.workspace form.ce-compact-form,.workspace form.recovery{grid-template-columns:1fr}}

.workspace #company-edit .field:has(:is([name=address],[name=site_address])){grid-column:span 2}
@media(max-width:700px){.workspace #company-edit .field:has(:is([name=address],[name=site_address])){grid-column:auto}}
#app .workspace .ce-times-sheet .ce-ot-inc{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:3px;font-size:10.5px;font-weight:500;color:var(--ce-text-3);white-space:nowrap;cursor:pointer}#app .workspace .ce-times-sheet .ce-ot-inc[hidden]{display:none!important}#app .workspace .ce-times-sheet .ce-ot-inc input{margin:0}

.top .brand .brand-logo{height:40px;width:auto;display:block}@media(max-width:760px){.top .brand .brand-logo{height:32px}}
