.schedule-heading{display:flex;justify-content:space-between;gap:24px;align-items:start}.schedule-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding-top:28px}.schedule-actions .primary{display:inline-block;text-decoration:none;padding:12px 18px;border-radius:8px;background:#304937;color:white}.schedule-filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:18px 0}.schedule-filters label{min-width:200px}.schedule-filters button{margin-bottom:18px}.schedule-weeks{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.schedule-weeks a{padding:8px 14px;border:1px solid #ddd;border-radius:24px}.schedule-weeks a[aria-current]{background:#304937;color:white}.schedule-toolbar{background:#fffdf8;border:1px solid #dedfd4;border-radius:12px;padding:18px;margin:22px 0;position:sticky;top:0;z-index:5;box-shadow:0 3px 12px #00000008}.schedule-legend{display:flex;gap:8px 14px;flex-wrap:wrap}.schedule-pen,.schedule-key{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#283c2e}.schedule-pen{background:#fff;border:1px solid #dedfd4;border-radius:7px;padding:6px 9px;cursor:pointer}.schedule-pen[aria-pressed=true]{outline:3px solid #304937;outline-offset:1px}.day-swatch{display:inline-flex;justify-content:center;align-items:center;min-width:24px;height:24px;border:1px solid #777;font-size:11px}.schedule-save{font-size:13px;font-weight:600;margin-top:12px}.schedule-save.error{color:#8a1720}.schedule-group{margin:28px 0}.schedule-group h2{font-size:18px;margin-bottom:12px}.schedule-scroll{overflow-x:auto}.schedule-grid{border-collapse:separate;border-spacing:3px;min-width:950px;width:100%;table-layout:fixed}.schedule-grid th,.schedule-grid td{padding:0;text-align:center;border:0;vertical-align:middle}.schedule-grid thead th{background:#bb461b;color:#fff;padding:5px 0;font-size:12px}.schedule-grid .schedule-date{background:transparent;color:#283c2e}.schedule-grid .schedule-name{width:160px;text-align:left;padding:7px 10px;background:#bb461b;color:#fff;position:sticky;left:0;z-index:2;font-weight:500;font-size:12px;overflow-wrap:anywhere}.schedule-grid .schedule-total{width:60px;font-size:12px}.schedule-grid td.week-start,.schedule-grid th.week-start{border-left:5px solid #f7f5ee}.day-cell{width:100%;min-height:34px;display:flex;justify-content:center;align-items:center;padding:0;border:1px solid #8c8c8c;border-radius:0;font-family:inherit;font-size:12px;font-weight:600}.day-cell.pending{outline:2px dashed #304937;outline-offset:-3px}.day-cell:focus-visible{outline:3px solid #284733;outline-offset:1px}.s-0,.s-1{background:#fff;color:#222}.s-12{background:#bb461b;color:#fff}.s-2{background:#3366cc;color:#fff}.s-3{background:#df1111;color:#fff}.s-4{background:#009900;color:#fff}.s-5{background:#ffcc00;color:#000}.s-6{background:#fff;color:#d31111;font-size:20px}.s-7{background:#000;color:#fff}.s-8{background:#00ffff;color:#003}.s-9,.s-10{background:#ff9900;color:#003}.s-11{background:#ff33ff;color:#003}.s-14{background:#f7e6b9;color:#583e0d}.schedule-people{max-height:300px;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.schedule-print-heading{display:flex;align-items:center;gap:18px;margin-bottom:16px}.schedule-print-heading img{width:160px}.schedule-print-heading h1{font-size:24px;margin:0}.schedule-print-heading p{margin:4px 0}.schedule-print-footer{font-size:11px}.schedule-print-block{margin:32px 0}.schedule-print .schedule-grid{min-width:0}.schedule-print-controls{margin:22px 0}
@media(max-width:700px){.schedule-heading{display:block}.schedule-actions{padding:0}.schedule-people{grid-template-columns:1fr}.schedule-toolbar{position:static}.schedule-grid .schedule-name{width:130px}.schedule-pen{font-size:11px}}
@media print{@page{size:A4 landscape;margin:10mm}body{background:white!important;color:black!important;font:9pt/1.2 Arial,sans-serif!important}body>header,body>footer,.print-controls,.hr-navigation,.schedule-actions,.schedule-toolbar,.schedule-filters,.schedule-weeks{display:none!important}main{max-width:none!important;margin:0!important;padding:0!important}.schedule-print-block{margin:0;break-before:page}.schedule-print-block:first-child{break-before:auto}.schedule-print-heading{margin:0 0 2mm}.schedule-print-heading img{width:30mm}.schedule-print-heading h1{font-size:13pt}.schedule-print-heading p{font-size:8pt}.schedule-group{margin:1mm 0;break-inside:avoid}.schedule-group h2{font-size:7.5pt;margin:0 0 0.5mm}.schedule-scroll{overflow:visible}.schedule-grid{min-width:0!important;width:100%;border-spacing:0.25mm;table-layout:fixed}.schedule-grid thead{display:table-header-group}.schedule-grid tbody tr{break-inside:avoid}.schedule-grid th,.schedule-grid td{padding:0!important}.schedule-grid thead th{font-size:6.5pt;padding:0!important}.schedule-grid .schedule-name{position:static;width:40mm;padding:0.3mm 2mm!important;font-size:8pt}.schedule-grid .schedule-total{width:11mm;font-size:7pt}.schedule-grid td.week-start,.schedule-grid th.week-start{border-left:2mm solid white}.day-cell{min-height:var(--schedule-print-row,5.5mm);height:var(--schedule-print-row,5.5mm);font-size:8pt;border:1px solid #999}.day-cell.s-6{font-size:12pt}.schedule-key{font-size:7pt;gap:1mm}.schedule-legend{gap:1mm 3mm;margin:2mm 0}.day-swatch{min-width:5mm;height:5mm;font-size:7pt}.schedule-print-footer{font-size:7pt}*{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

[data-schedule][data-pen="0"] button.day-cell{cursor:url("schedule-cursor-0.svg") 1 1,crosshair}
[data-schedule][data-pen="1"] button.day-cell{cursor:url("schedule-cursor-1.svg") 1 1,crosshair}
[data-schedule][data-pen="2"] button.day-cell{cursor:url("schedule-cursor-2.svg") 1 1,crosshair}
[data-schedule][data-pen="3"] button.day-cell{cursor:url("schedule-cursor-3.svg") 1 1,crosshair}
[data-schedule][data-pen="4"] button.day-cell{cursor:url("schedule-cursor-4.svg") 1 1,crosshair}
[data-schedule][data-pen="5"] button.day-cell{cursor:url("schedule-cursor-5.svg") 1 1,crosshair}
[data-schedule][data-pen="6"] button.day-cell{cursor:url("schedule-cursor-6.svg") 1 1,crosshair}
[data-schedule][data-pen="7"] button.day-cell{cursor:url("schedule-cursor-7.svg") 1 1,crosshair}
[data-schedule][data-pen="8"] button.day-cell{cursor:url("schedule-cursor-8.svg") 1 1,crosshair}
[data-schedule][data-pen="9"] button.day-cell{cursor:url("schedule-cursor-9.svg") 1 1,crosshair}
[data-schedule][data-pen="10"] button.day-cell{cursor:url("schedule-cursor-10.svg") 1 1,crosshair}
[data-schedule][data-pen="11"] button.day-cell{cursor:url("schedule-cursor-11.svg") 1 1,crosshair}
[data-schedule][data-pen="12"] button.day-cell{cursor:url("schedule-cursor-12.svg") 1 1,crosshair}
[data-schedule][data-pen="14"] button.day-cell{cursor:url("schedule-cursor-14.svg") 1 1,crosshair}
@media screen{.schedule-grid{border-spacing:2px}.schedule-grid .schedule-name{width:140px;padding:4px 8px;font-size:11px}.schedule-grid .schedule-total{width:55px;font-size:11px}.schedule-grid thead th{font-size:11px;padding:3px 0}.day-cell{min-height:27px;font-size:11px}.day-cell.s-6{font-size:18px}.schedule-group{margin:20px 0}.schedule-group h2{margin-bottom:8px}}

@media print{.schedule-group{margin:0.7mm 0}.schedule-group h2{line-height:1}.schedule-grid thead th{line-height:1}.schedule-grid .schedule-name{font-size:7pt;line-height:1;padding:0 1mm!important}.day-cell{font-size:7pt;line-height:1;border-width:0.2mm}.day-cell.s-6{font-size:9pt}.schedule-print .schedule-total{width:10mm}.schedule-print .schedule-name{width:34mm}.schedule-print-heading p{line-height:1.2}.schedule-print-footer{margin:1mm 0}.schedule-print .day-swatch{height:4mm;min-width:4mm}.schedule-print .schedule-legend{gap:1mm 2mm}}
@media screen{.schedule-grid .schedule-date{font-size:9px}.schedule-grid thead th{font-size:10px}}

@media print{.schedule-print .schedule-grid{width:calc(44.75mm + var(--schedule-print-days,28) * 8.25mm);max-width:100%}}
@media screen{.schedule-print .schedule-grid{width:calc(201px + var(--schedule-print-days,28) * 34px);max-width:none;min-width:0}.schedule-print .schedule-grid .schedule-name{width:140px}.schedule-print .schedule-grid .schedule-total{width:55px}}

.schedule-holiday-dialog{width:min(480px,calc(100vw - 32px));border:1px solid #dedfd4;border-radius:12px;padding:24px;color:#283c2e;background:#fffdf8}.schedule-holiday-dialog::backdrop{background:#0006}.schedule-holiday-dialog h2{margin-top:0;font-size:21px}.schedule-dialog-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.schedule-dialog-actions button{border-radius:6px;padding:10px 14px}.schedule-holiday-dialog:not([open]){display:none}

/* Fit the selected 2–5 weeks into the printable A4 landscape area. */
@media print {
 .schedule-print-block{box-sizing:border-box;width:100%;margin:0;break-after:page}
 .schedule-print-block:last-child{break-after:auto}
 .schedule-print-heading{margin:0 0 2mm;min-height:10mm}
 .schedule-print-heading h1{font-size:13pt;line-height:1.1}
 .schedule-print-heading p{font-size:7pt;line-height:1.2;margin:1mm 0 0}
 .schedule-print .schedule-group{margin:0 0 1mm;break-inside:avoid}
 .schedule-print .schedule-group h2{font-size:7.5pt;line-height:1;margin:0 0 .5mm}
 .schedule-print .schedule-scroll{overflow:visible}
 .schedule-print .schedule-grid{width:100%;max-width:100%;min-width:0!important;table-layout:fixed;border-spacing:.2mm}
 .schedule-print .schedule-grid .schedule-name{width:32mm;position:static;font-size:7pt;line-height:1;padding:0 1mm!important;overflow-wrap:anywhere}
 .schedule-print .schedule-grid .schedule-total{width:11mm;font-size:6pt;line-height:1;overflow-wrap:normal}
 .schedule-print .schedule-grid thead th{font-size:6pt;line-height:1;height:2.2mm;padding:0!important}
 .schedule-print .schedule-grid thead .schedule-date{font-size:5.5pt;font-weight:400;white-space:nowrap}
 .schedule-print .schedule-grid th.week-start,.schedule-print .schedule-grid td.week-start{border-left:1mm solid white}
 .schedule-print .day-cell{box-sizing:border-box;width:100%;height:var(--schedule-print-row,5.5mm);min-height:var(--schedule-print-row,5.5mm);font-size:6.5pt;line-height:1;white-space:nowrap;padding:0;border-width:.2mm}
 .schedule-print .day-cell.s-6{font-size:9pt}
 .schedule-print .schedule-legend{margin:2mm 0 1mm;gap:1mm 2mm}
 .schedule-print .schedule-key{font-size:6.5pt;line-height:1}
 .schedule-print .day-swatch{box-sizing:border-box;height:3.5mm;min-width:4.5mm;font-size:6.5pt}
 .schedule-print-footer{margin:1mm 0 0;font-size:6.5pt;line-height:1.2}
}

/* Stronger employee nicknames for inkjet printouts. */
@media print{.schedule-print .schedule-grid tbody .schedule-name{text-transform:uppercase;font-weight:800;-webkit-text-stroke:.1pt currentColor}}

@media screen{.schedule-print-range{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0}.schedule-print-range label{display:grid;gap:6px;min-width:180px}.schedule-print-range input{min-height:42px}.schedule-print-range button{margin-bottom:0;min-height:42px}.schedule-print-range-summary{padding:12px;background:#f7f5ee;border-left:4px solid #304937}}
