:root{font-family:Arial,Helvetica,sans-serif;color:#292e2b;background:#f4f5f0;font-size:16px;--accent:#b88a00;--pale:#fff4c6}
*{box-sizing:border-box}
body{margin:0}
.notice:empty,.message:empty{display:none}
button,input,select,textarea{font:inherit}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;background:#303c33;color:#fff;padding:12px 17px;font-size:.9rem;font-weight:700;cursor:pointer;text-decoration:none;min-height:44px}
.quiet{background:#fff;color:#343b35;border-color:#d6ddd3}
button:disabled{opacity:.5;cursor:default}
button:hover:not(:disabled),.button:hover{filter:brightness(.94)}
a{color:#8d2229}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(1.5rem,3.2vw,2.2rem);line-height:1.1}
h2{font-size:1.4rem}
p{line-height:1.55;color:#5f685f}
label{display:block;font-size:.9rem;font-weight:700}
input,select,textarea{display:block;width:100%;padding:11px;border:1px solid #b6bfb3;background:#fff;color:#272e28;border-radius:6px;margin-top:7px;min-height:44px}
textarea{resize:vertical}
input[type=checkbox]{width:20px;height:20px;min-height:20px;flex-shrink:0;margin:0;accent-color:#384b37}
.check{display:flex;align-items:flex-start;gap:10px;line-height:1.5;margin:12px 0;font-weight:400}
fieldset{border:1px solid #d8ded3;border-radius:8px;margin:18px 0;padding:16px}
legend{font-weight:700;padding:0 6px}
.workspace{max-width:1400px;margin:auto;padding:26px 28px 70px}
.portal-header{display:flex;align-items:center;gap:24px;margin-bottom:32px}
.portal-header>div{flex:1}
.portal-header p{margin-bottom:0}
.brand img{width:145px;height:auto;display:block}
.eyebrow{font-size:.68rem;letter-spacing:.16em;font-weight:800;color:#656f61;margin-bottom:9px}
.department-nav{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #ccd4c7;padding-bottom:18px}
.department-nav button{background:#fff;color:#3a4339;border:1px solid #d7ded1;border-top:4px solid var(--accent)}
.department-nav button[aria-current=true]{background:var(--pale);border-color:var(--accent)}
.week-bar{display:flex;align-items:center;gap:16px;padding:25px 0}
.week-bar>div{flex:1}
.week-bar h2{margin:6px 0}
.week-bar label{max-width:180px}
.status-chip{font-size:.76rem;font-weight:700;padding:9px 12px;background:#e4ebdf;border-radius:30px}
.view-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.view-tabs button{background:transparent;color:#61695f;border-radius:0;border-bottom:3px solid transparent;padding:12px}
.view-tabs button[aria-pressed=true]{color:#222a23;border-color:var(--accent)}
.view{background:#fff;border:1px solid #d9dfd3;border-radius:12px;padding:26px}
.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.section-heading>div:first-child{max-width:740px}
.section-heading p:last-child{margin-bottom:0}
.actions,.checks{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.actions label{font-weight:400}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.wide-field{grid-column:1/-1}
.table-wrap{overflow:auto;border:1px solid #d5dccf;border-radius:8px}
.editor-table{border-collapse:collapse;width:100%;min-width:970px;table-layout:fixed}
.editor-table th,.editor-table td{border:1px solid #d8dfd2;text-align:center;padding:0}
.editor-table thead th{background:#edf0e8;font-size:.8rem;padding:12px 3px}
.editor-table th:first-child{width:190px;text-align:left;padding:9px}
.editor-table th:last-child{width:65px}
.editor-table .person-meta{display:block;font-size:.67rem;font-weight:400;color:#68705f;margin-top:5px}
.day-button{display:flex;flex-direction:column;min-height:64px;width:100%;background:#fff;color:#272d28;border:0;border-radius:0;padding:7px 3px;font-size:.85rem;gap:3px}
.day-button small{font-size:.65rem;color:#696f65}
.day-button.needs-review{background:#fff0cb;color:#874b00}
.day-detail{display:grid;grid-template-columns:1fr 1fr;min-height:23px;font-size:.59rem;border-top:1px solid #d5dccf}
.day-detail span{display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere;padding:3px 1px}
.day-detail span+span{background:var(--pale);border-left:1px solid #d5dccf}
/* Anchor the hours/availability strip to the row, including rows with extra totals. */
.editor-table td:has(>.day-button){height:1px;position:relative;padding-bottom:30px;vertical-align:top}
.editor-table .day-button{height:100%;min-height:74px}
.editor-table .day-detail{position:absolute;inset:auto 0 0;height:30px;line-height:12px}
.remove-person{padding:2px 6px;min-height:24px;background:transparent;color:#7a3b34;font-size:.63rem;font-weight:400;margin-top:5px}
.copy-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;background:var(--pale);border:1px solid var(--accent);border-radius:8px;padding:16px;margin:14px 0;position:sticky;top:8px;z-index:2;flex-wrap:wrap}
.copy-bar p{font-size:.82rem;margin:5px 0 0}
.copy-mode .day-button{cursor:copy;outline:1px dashed var(--accent);outline-offset:-3px}
.copy-mode .day-button:hover{background:var(--pale)}
.resolved-shift{font-size:1.05rem;font-weight:700;padding:12px 15px;background:var(--pale);border-radius:6px;color:#28302a}
.resolved-shift:empty{display:none}
.resolved-shift[data-invalid=true]{background:#fff0e9;color:#9b3524;font-size:.85rem}
.publish-panel{border-top:1px solid #dce2d6;margin-top:24px;padding-top:24px}
.publish-panel .actions{margin-top:17px}
.message:not(:empty),.notice{background:#fff6d9;border:1px solid #e6d49a;border-radius:8px;padding:15px 18px;line-height:1.5}
.message:empty{display:none}
.muted{font-size:.8rem;color:#65705f}
.people-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:20px}
.person-card{border:1px solid #dce2d6;border-left:4px solid var(--accent);border-radius:9px;padding:18px}
.person-card h3{font-size:1rem;margin-bottom:10px}
.person-card p{margin:4px 0;font-size:.82rem;overflow-wrap:anywhere}
.person-card .button{margin-top:12px}
.photo-comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:18px}
.photo-comparison img{width:100%;height:auto;max-height:1000px;object-fit:contain;object-position:top;position:sticky;top:15px}
.photo-tools{display:flex;gap:10px;margin-top:22px}
.candidate-row{padding:15px;background:#f5f6f1;border:1px solid #dbe0d5;border-radius:7px;margin:12px 0}
.candidate-row p{font-size:.8rem;margin:8px 0}
.candidate-row select[aria-invalid="true"]{border:2px solid #a1262d}
.photo-apply-feedback{white-space:pre-line;border-color:#a1262d;color:#701b20}
.photo-apply-feedback:empty{display:none}
.upload-button{white-space:nowrap}
dialog{border:1px solid #d3dacd;border-radius:12px;width:min(720px,95vw);max-height:92vh;padding:26px;color:#28302a}
dialog::backdrop{background:#17221788}
.dialog-heading{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:20px}
.dialog-heading h2{margin:0}
.checks .check{margin-right:18px}
details{margin-top:22px}
summary{cursor:pointer;font-weight:700}
#cellError,#personError{color:#a72229;font-weight:700}
.paper-preview{overflow:auto;background:#e6e9e0;padding:25px;border-radius:8px}
.department-sheet{width:8.5in;height:14in;padding:.5in;background:#fff;margin:auto;color:#282e29;display:flex;flex-direction:column;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box}
.paper-preview .department-sheet{box-shadow:0 5px 20px #28332322;margin:0 auto}
.sheet-header{display:flex;justify-content:space-between;align-items:center;border-top:5pt solid var(--accent);border-bottom:1px solid #aeb7a8;padding:9pt 0 10pt;min-height:79pt}
.sheet-header img{width:130pt;height:auto}
.sheet-header>div{text-align:right}
.sheet-header h1{font-size:21pt;text-transform:uppercase;margin:0 0 5pt;line-height:1.1;max-width:300pt}
.sheet-header p{font-size:6.7pt;letter-spacing:1pt;margin:0 0 8pt}
.sheet-header strong{font-size:8.5pt}
.sheet-table{width:100%;border-collapse:collapse;table-layout:fixed;height:auto;flex:none;font-size:8pt;margin-top:14pt}
.sheet-table td,.sheet-table th{border:.55pt solid #aab3a2;padding:0;text-align:center;overflow-wrap:anywhere}
.col-name{width:23%}
.col-seniority{width:11.5%}
.col-total{width:5.7%}
.sheet-table thead{height:29pt;background:#eff1eb}
.sheet-table thead th{font-size:7.6pt;text-transform:uppercase}
.sheet-table thead small{font-size:6pt;font-weight:400;text-transform:none}
.sheet-group{height:16pt;background:var(--pale)}
.sheet-group th{text-align:left;padding-left:6pt;text-transform:uppercase;font-size:7.5pt}
.sheet-subtotal{height:16pt;background:#f5f6f0}
.sheet-subtotal td:first-child{text-align:right;padding-right:7pt;text-transform:uppercase;font-size:6.8pt;font-weight:700}
.person-job-title{display:block;font-size:.85em;font-weight:500;line-height:1.3;margin:4px 0;color:#4c5548;overflow-wrap:anywhere}
.sheet-job-title{display:block;font-size:6.5pt;font-weight:400;line-height:1.15;margin-top:2pt;overflow-wrap:anywhere}
#personForm label>small{font-weight:400;font-size:.75rem;color:#596451}
.sheet-person{height:42pt}
.sheet-name{text-align:left!important;font-size:9.5pt;font-weight:600}
.sheet-person-label{height:41.45pt;padding:4pt;overflow:hidden;line-height:1.2;display:flex;flex-direction:column;justify-content:center;text-align:left}
.sheet-seniority{font-size:6.5pt;padding:2pt!important}
.sheet-day{position:relative}
.sheet-work{height:30.45pt;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2pt;font-size:8pt;line-height:1.2;overflow:hidden}
.sheet-work small{font-size:5.5pt;line-height:1.1}
.sheet-day-detail{display:grid;grid-template-columns:1fr 1fr;min-height:11pt;height:11pt;border-top:.5pt solid #aab3a2;font-size:5pt;line-height:1.1}
.sheet-day-detail span{display:flex;justify-content:center;align-items:center;overflow-wrap:anywhere;padding:0 1pt}
.sheet-day-detail span+span{background:var(--pale);border-left:.5pt solid #aab3a2}
.sheet-total{font-weight:700;font-size:8pt}
.sheet-bottom{display:flex;justify-content:space-between;gap:8pt;padding:9pt 0;font-size:6pt}
.sheet-bottom strong{font-size:9pt;white-space:nowrap}
.sheet-notes{font-size:7pt;min-height:49pt;max-height:59pt}
.sheet-notes strong{text-transform:uppercase;font-size:7pt}
.sheet-notes p{margin:5pt 0 0;white-space:pre-wrap;line-height:1.4;border-bottom:.5pt solid #aab3a2;min-height:30pt;color:#28302a}
#printRoot{display:none}
.theme-fruits{--accent:#34824d;--pale:#e9f4e7}
.theme-boulangerie{--accent:#b88a00;--pale:#fff4c6}
.theme-viande{--accent:#b62b32;--pale:#fae8e7}
.theme-charcuterie{--accent:#b65380;--pale:#fbe9f1}
.theme-pam{--accent:#c46620;--pale:#fff0df}
.theme-poissonnerie{--accent:#287c9c;--pale:#e4f4fc}
.theme-epicerie{--accent:#344351;--pale:#e9edf1}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #3866ad;outline-offset:3px}
@media(max-width:780px){.workspace{padding:18px 12px 45px}
.portal-header{gap:12px;flex-wrap:wrap}
.portal-header>div{min-width:220px}
.brand img{width:95px}
.portal-header>.button{width:100%}
.week-bar{flex-wrap:wrap}
.week-bar>div{flex-basis:100%}
.section-heading{display:block}
.section-heading .actions{margin-top:17px}
.view{padding:18px 12px}
.photo-comparison{grid-template-columns:1fr}
.photo-comparison img{position:static;max-height:550px}
.form-grid{grid-template-columns:1fr}
.paper-preview{padding:12px}
.view-tabs{gap:0}
.view-tabs button{font-size:.78rem;padding:11px 8px}
.publish-panel .actions>*{width:100%}
}
@page{size:legal portrait;margin:0}
@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
body{background:white}
.workspace,dialog{display:none!important}
#printRoot{display:block!important}
.department-sheet{margin:0;break-inside:avoid;page-break-inside:avoid}
.sheet-table tr{break-inside:avoid;page-break-inside:avoid}
}


#photoDialog{width:min(1300px,97vw)}
#largePhoto{display:block;width:100%;height:auto;margin-top:15px}
.sheet-work{overflow:hidden}
.sheet-notes p{overflow-wrap:anywhere}

.staff-workspace{max-width:1400px}
#accessForm{max-width:480px;margin:30px auto}
#accessForm button{margin-top:20px}
.personal-heading{margin:30px 0 18px}
.week-strip{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;margin:20px 0;padding-bottom:10px;border-radius:8px}
.week-strip:focus-visible{outline-offset:-3px}
.week-scroll-hint{display:none;font-size:.85rem;margin:0 0 8px}
.week-cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:1100px;gap:10px}
.day-card{min-width:0;scroll-snap-align:start;background:#fff;border:1px solid #d9dfd3;border-top:4px solid var(--accent);border-radius:8px;padding:14px;overflow-wrap:anywhere}
.day-card h3{font-size:1rem;display:flex;justify-content:space-between;gap:6px}
.day-card h3 span{color:#7b8574}
.day-card p{font-size:.8rem;margin:10px 0 0;white-space:pre-wrap}
.service-links{margin-top:35px}
.staff-workspace .notice p{white-space:pre-wrap}
@media(max-width:1155px){.week-scroll-hint{display:block}}
@media(max-width:780px){
  .week-strip{overflow:visible;scroll-snap-type:none;padding-bottom:0}
  .week-cards{grid-template-columns:minmax(0,1fr);min-width:0}
  .week-scroll-hint{display:none}
  .day-card{scroll-snap-align:none}
}


.sheet-notes p{font-size:6.5pt}
.sheet-header h1{overflow-wrap:anywhere}


.copy-week-summary{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.copy-week-summary span{background:var(--pale);border-radius:8px;padding:10px 14px;font-weight:700}
#copyWeekDestination{margin:14px 0 0}

/* Absences and formation remain labelled when printed without colour. */
.status-off,.status-mobile{color:#344968!important}
.status-vacation{color:#5b367d!important}
.status-requested{color:#785500!important}
.status-sick{color:#8c3443!important}
.status-training{color:#176354!important}
.training-choice{grid-column:1/-1;background:#e9f6f2;padding:12px;border-radius:8px}
.day-button small{display:block;font-size:.72rem;font-weight:700}
.editor-total{min-width:90px}
.editor-total>small{display:block;font-size:.7rem;color:#58644f}
.training-hours{display:block;color:#176354;line-height:1.2;margin-top:4px;font-size:.8rem}
.department-hours{display:flex;flex-direction:column;gap:5px;align-items:flex-end;padding:14px;color:#176354}
.department-hours strong{color:#273521}
.sheet-total .regular-hours{display:block;min-height:10pt}
.sheet-total .training-hours{font-size:5.5pt;white-space:nowrap;border-top:.5pt solid #c3d7ce;margin:3pt 1pt 0;padding-top:2pt;font-weight:600}
.sheet-department-totals{text-align:right;display:flex;flex-direction:column;gap:4pt}
.sheet-department-totals .department-training-total{color:#176354;font-size:8pt}
.sheet-work.status-training{padding:1pt;font-size:7.5pt;line-height:1.12}
.sheet-work .training-label{font-weight:700}

.sheet-department-totals .grand-total{border-top:.7pt solid #aab3a2;padding-top:4pt;font-size:9pt;color:#282e29}
.department-hours .grand-total{border-top:1px solid #b9c3b4;padding-top:6px}

.buffet-hours{display:block;color:#3b3f37;line-height:1.2;margin-top:4px;font-size:.8rem}
.sheet-total .buffet-hours{font-size:5.5pt;white-space:nowrap;border-top:.5pt solid #c3d7ce;margin:3pt 1pt 0;padding-top:2pt;font-weight:600}
.sheet-department-totals .department-buffet-total{font-size:8pt}
.day-button.status-cut-fruit,.sheet-work.status-cut-fruit,.day-card.status-cut-fruit>strong{background:#b8dfb0!important;color:#282e29!important}
.sheet-work.has-detail{font-size:7.5pt;line-height:1.1;padding:1pt}
.sheet-work .assignment-label{font-weight:600}

/* Availability entry and the employee's optional specification. */
.availability-day{padding:12px;border:1px solid #d6ddd3;border-radius:10px;background:#f8faf7}
.availability-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.availability-actions button{padding:8px;font-size:.75rem;min-height:40px;flex:1}
.availability-actions button[aria-pressed=true]{background:#e2eee3;border-color:#597f60;color:#234e2d}
.availability-preview{display:block;min-height:2.6em;line-height:1.4;margin-top:8px;color:#38543d;font-weight:500}
.availability-preview[data-invalid=true]{color:#a32323}
.person-specification{display:block;color:#69522c;font-size:.8em;font-weight:500;line-height:1.3;margin:3px 0 7px;overflow-wrap:anywhere}
.sheet-specification{display:block;font-size:6pt;font-weight:400;line-height:1.1;margin-top:1pt;overflow-wrap:anywhere;color:#40392b}

.mention-hours,.kitchen-hours{display:block;color:#3b3f37;line-height:1.2;margin-top:4px;font-size:.8rem}
.sheet-total .mention-hours,.sheet-total .kitchen-hours{font-size:5.5pt;white-space:nowrap;border-top:.5pt solid #c3d7ce;margin:3pt 1pt 0;padding-top:2pt;font-weight:600}
.sheet-department-totals .department-kitchen-total{font-size:8pt}

.mention-hours,.sheet-total .mention-hours{white-space:normal;overflow-wrap:anywhere}
.mention-hours b{white-space:nowrap}
.sheet-total:has(.kitchen-hours) small{margin-top:1pt;padding-top:1pt}

/* Keep larger teams on legal paper without hiding employees or their totals. */
.compact-sheet{padding:.25in .3in}
.compact-sheet .sheet-header{min-height:64pt;padding:5pt 0}
.compact-sheet .sheet-header img{width:115pt}
.compact-sheet .sheet-table{margin-top:8pt}
.compact-sheet .sheet-group,.compact-sheet .sheet-subtotal{height:14pt}
.compact-sheet .sheet-bottom{padding:6pt 0}
.compact-sheet .sheet-department-totals{display:grid;grid-template-columns:repeat(4,auto);column-gap:10pt;row-gap:3pt;flex-shrink:0}
.compact-sheet .sheet-department-totals .grand-total{grid-column:1/-1}
.compact-sheet .sheet-notes{min-height:35pt}
.compact-sheet .sheet-notes p{min-height:20pt}

.birthday-greeting{display:block;font-weight:700;color:#814000;font-size:.85em}.sheet-work .birthday-greeting{font-size:7px;line-height:1.1}

.consultation-week{font-size:1.05rem}.consultation-summary{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:16px;background:#eaf1ff;border-radius:12px;color:#214c88}.consultation-list{list-style:none;padding:0;margin:18px 0}.consultation-list li{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 4px;border-bottom:1px solid #dfe5e1}.consultation-status{font-size:.9rem}.consultation-status.seen{color:#176747}.consultation-status.pending{color:#86560b}

.manager-password{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:12px 0}.manager-password code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;user-select:all}.manager-password small{color:#526052}
.printed-shift{display:flex;flex-direction:column;align-items:center;width:100%}
.multi-shift-row .sheet-work{height:auto;min-height:30.45pt;overflow:visible}
.sheet-work.multiple-shifts{gap:3pt;padding:3pt 1pt}
.multiple-shifts .printed-shift+.printed-shift{border-top:.5pt solid #aab3a2;padding-top:3pt}
.all-posts-total{display:block;font-size:5.5pt;border-top:.5pt solid #aab3a2;padding-top:2pt;margin-top:2pt}
.shared-print-note{font-size:7pt;margin:2pt 0 5pt;color:#3b3f37}

.schedule-conflicts{background:#fff0ee;border:2px solid #b53129;color:#7d211c}

/* Publication status is independent of the department theme. */
.publication-light{display:inline-block;width:11px;height:11px;flex:0 0 11px;border-radius:50%;background:#99a19c;border:1px solid #737d76;box-shadow:inset 0 1px 2px #0002}
.publication-light.is-online{background:#39e878;border-color:#178841;box-shadow:0 0 0 3px #26c76124,0 0 9px #22c55e88,inset 0 1px 2px #ffffffa6}
.publication-status{display:flex;align-items:center;gap:10px;border:1px solid #cdd5cf;background:#edf0ed;border-radius:12px;color:#505d53;max-width:320px}
.publication-status.is-online{background:#eaf8ee;border-color:#9ad5ad;color:#175f30}
.publication-status strong,.publication-status small{display:block}.publication-status small{margin-top:4px;font-size:.72rem;font-weight:400;line-height:1.4}
.department-nav button{flex-direction:column;align-items:flex-start;gap:8px;max-width:240px}
.department-publication{display:flex;align-items:center;gap:7px;font-size:.62rem;line-height:1.35;font-weight:400;text-align:left;color:#4f5f54}
.department-publication .publication-light{width:8px;height:8px;flex-basis:8px}
@media(max-width:650px){.week-bar{flex-wrap:wrap}.publication-status{max-width:100%;width:100%}.department-nav button{flex:1 1 140px;max-width:none}}

/* Keep the recovered footer space for employee rows. */
.department-sheet .sheet-bottom{justify-content:flex-end;flex-shrink:0}

/* Shared-day details participate in the button height, above the availability strip. */
.editor-table .shared-workday{display:flex;flex-direction:column;width:100%;gap:6px;box-sizing:border-box;text-align:center;white-space:normal;overflow-wrap:anywhere}
.editor-table .shared-workday-total{display:block;font-size:.65rem;font-weight:700;color:#48634c;line-height:1.3}
.editor-table .shared-workday-part{display:flex;flex-direction:column;gap:2px;padding:5px 2px;border-radius:4px;background:#f0f5ee;line-height:1.3}
.editor-table .shared-workday-department{display:block;font-size:.65rem;font-weight:600;color:#4d584e}
.editor-table .shared-workday-part strong{display:block;font-size:.8rem;white-space:nowrap}

/* Individual colored work portions; also retained in PDF rasterization. */
.department-sheet .printed-shift{box-sizing:border-box;border:.7pt solid #738178;border-left:2pt solid #738178;border-radius:3pt;background:#f1f4f0;padding:3pt 1pt;margin:1.5pt 0;width:100%;gap:2pt;color:#222;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.department-sheet .printed-shift-range{display:flex;justify-content:center;align-items:center;gap:1.5pt;white-space:nowrap;font-size:7pt;font-weight:700;line-height:1.2}
.department-sheet .assignment-label{display:block;font-size:5.5pt;font-weight:600;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.department-sheet .printed-day-total{display:block;font-size:5.5pt;font-weight:700;line-height:1.2;margin-bottom:1.5pt;color:#384d3d}
.department-sheet .shift-theme-boulangerie{--shift-color:#b88a00;border-color:#b88a00;background:#fff4c6}
.department-sheet .shift-theme-service{--shift-color:#2458a4;border-color:#2458a4;background:#eaf1ff}
.department-sheet .shift-theme-fruits{--shift-color:#34824d;border-color:#34824d;background:#e9f4e7}
.department-sheet .shift-theme-viande{--shift-color:#b62b32;border-color:#b62b32;background:#fae8e7}
.department-sheet .shift-theme-charcuterie{--shift-color:#b65380;border-color:#b65380;background:#fbe9f1}
.department-sheet .shift-theme-pam{--shift-color:#c46620;border-color:#c46620;background:#fff0df}
.department-sheet .shift-theme-poissonnerie{--shift-color:#287c9c;border-color:#287c9c;background:#e4f4fc}
.department-sheet .shift-theme-epicerie{--shift-color:#344351;border-color:#344351;background:#e9edf1}
.department-sheet .shift-theme-administration{--shift-color:#665489;border-color:#665489;background:#eee9f6}
.department-sheet .status-training{border-color:#176354;background:#e0f0e9;color:#176354!important}
.department-sheet .status-cut-fruit{border-color:#34824d;background:#b8dfb0;color:#282e29!important}

.department-sheet .multiple-shifts .printed-shift+.printed-shift{border-top:.7pt solid var(--shift-color,#738178); padding-top:3pt}

.department-sheet .multi-shift-row .sheet-day{vertical-align:top;padding-bottom:11pt}
.department-sheet .multi-shift-row .sheet-day-detail{position:absolute;bottom:0;left:0;right:0}
.department-sheet .printed-shift,.department-sheet .printed-day-total{flex-shrink:0}
.department-sheet .printed-shift-range{font-size:6pt;gap:.5pt}
.department-sheet .multiple-shifts .printed-shift{padding:2pt 1pt;margin:0}

.absence-fields{grid-column:1/-1;border:1px solid #b7cbc3;border-radius:10px;padding:12px}.absence-fields label{display:block;margin:8px 0}.shift-absence{display:block;font-weight:600;color:#784317;white-space:normal}

/* Ordinary shifts use the original stacked hours; boxes distinguish shared portions only. */
.department-sheet .printed-shift.simple-shift{display:flex;flex-direction:column;align-items:center;border:0;border-radius:0;background:transparent;padding:0;margin:0;gap:1pt;color:inherit}
.department-sheet .simple-shift .printed-shift-range{display:flex;flex-direction:column;gap:0;font-size:8.5pt;line-height:1.15;order:0}
.department-sheet .simple-shift .printed-shift-range> :nth-child(2){display:none}
.department-sheet .simple-shift .assignment-label,.department-sheet .simple-shift .service-role,.department-sheet .simple-shift .shift-absence{order:1}

.theme-cuisine{--accent:#687b28;--pale:#f1f5de}
.department-sheet .shift-theme-cuisine{--shift-color:#687b28;border-color:#687b28;background:#f1f5de}
