.back-link{font-size:12px;white-space:nowrap}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.tabs button{padding:10px 14px;font-size:12px;background:#fff;border-color:#dfe5e9}.tabs .active{border-color:#368374;background:#eef7f3;color:#216c5e;font-weight:600}.personnel-toolbar{padding:17px 22px;border-bottom:1px solid #e6ecef;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.personnel-toolbar button{font-size:12px}.personnel-toolbar #extraActions{display:flex;gap:8px}.personnel-toolbar #loadState{margin-left:auto}.table-wrap{overflow:auto;max-height:calc(100vh - 360px);min-height:155px;position:relative}.table-wrap:empty{min-height:180px}.table-wrap table{min-width:1100px;font-size:12px}.table-wrap th,.table-wrap td{padding:12px 14px;white-space:nowrap}.table-wrap th{position:sticky;top:0;z-index:2}.table-wrap td{height:42px}.table-wrap .schedule-table{table-layout:fixed;min-width:1600px;width:100%}.schedule-table th,.schedule-table td{padding:8px 4px;text-align:center;white-space:normal;overflow-wrap:normal}.schedule-table th:first-child,.schedule-table td:first-child{width:210px;min-width:210px;position:sticky;left:0;text-align:left;padding-left:14px;background:#fff;z-index:1;border-right:1px solid #e7ecef}.schedule-table th:nth-child(2),.schedule-table td:nth-child(2){width:185px;position:sticky;left:210px;text-align:left;padding-left:12px;background:#fff;z-index:1;border-right:1px solid #e7ecef}.schedule-table th:first-child,.schedule-table th:nth-child(2){background:#f7f9fa;z-index:3}.schedule-table th:nth-child(3){width:65px}.schedule-table th:last-child{width:65px}.schedule-table th:nth-child(n+4):not(:last-child){width:34px}.schedule-table th:nth-child(n+4){text-transform:none;letter-spacing:0;line-height:1.5;font-size:11px}.schedule-table tr:nth-child(even) td{background:#fafcfc}.schedule-table td:last-child{font-weight:600;color:#287465;background:#f1f8f4}.error{padding:12px 22px;margin:0;background:#fff2e7;color:#a25d34;font-size:12px}.request-table td{white-space:normal;max-width:250px}.request-table td:first-child{min-width:155px}.request-table button,.vacation-table button{padding:5px 8px;margin:2px;font-size:11px}.vacation-table{min-width:1500px}.vacation-table th:first-child{min-width:200px}.vacation-table th:nth-child(2){min-width:170px}.vacation-table th:nth-child(n+3):nth-child(-n+14){min-width:65px;text-align:center}.vacation-table td:last-child{min-width:180px;white-space:normal}.vacation-period{display:inline-block;border-radius:4px;background:#e0efe6;color:#326b50;padding:4px 6px;margin:2px;font-size:11px}.vacation-period.compensation{background:#fff0ce;color:#956819}.vacation-total{text-align:center;background:#fff3dc;font-weight:600}.vacation-total.complete{background:#e9f4ed}.vacation-summary{padding:14px 20px;margin:0;font-size:12px;color:#788992}.auth-main{max-width:600px;padding-top:54px}.auth-card{padding:28px}.auth-card h1{font-size:24px}.auth-card input,.auth-card select{width:100%;margin-bottom:18px}.auth-card label{font-size:12px}.auth-card .actions{display:flex;gap:12px;margin-top:20px}.auth-card #error{background:none;padding:0;color:#a34e30}.auth-card p{color:#798893;font-size:12px}.auth-card #change,.auth-card #login{background:#237767;border-color:#237767;color:white}.auth-card .eyebrow{font-size:10px}
@media(max-width:1050px){.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding-top:12px;padding-bottom:0}.topbar nav{order:3;width:100%;height:auto}.topbar nav a{padding:11px 0}.topbar .account{margin-bottom:10px}.table-wrap{max-height:calc(100vh - 400px)}}
@media print{@page{size:A4 landscape;margin:6mm}.topbar,.page-heading .subtitle,.tabs,.actions,.back-link,.table-footer,.error{display:none!important}main{padding:0;max-width:none}.workspace{border:0;box-shadow:none}.table-wrap{max-height:none;overflow:visible}.table-wrap .schedule-table{min-width:0;width:100%;font-size:6pt}.schedule-table th:first-child,.schedule-table td:first-child{width:16%;min-width:0;position:static}.schedule-table th:nth-child(2),.schedule-table td:nth-child(2){width:18%;position:static}.schedule-table th:nth-child(3){width:4%}.schedule-table th:last-child{width:5%}.schedule-table th:nth-child(n+4):not(:last-child){width:auto}.schedule-table td,.schedule-table th{padding:2px;height:auto;font-size:6pt}.schedule-table tr{break-inside:avoid}}

.error:empty{display:none}

.employees-table th:first-child,.employees-table td:first-child{width:55px;min-width:55px}.employees-table th:nth-child(2),.employees-table td:nth-child(2){min-width:240px;position:sticky;left:0;background:#fff;z-index:1}.employees-table th:nth-child(2){background:#f7f9fa;z-index:3}.employees-table td{white-space:nowrap}
/* Dense matrices follow the Planner's day colours and column proportions. */
@media print{.schedule-table th:last-child,.schedule-table td:last-child,.vacation-table th:last-child,.vacation-table td:last-child{display:table-cell!important}}
.personnel-page{max-width:none;padding:24px 26px}.personnel-page .page-heading{margin-bottom:18px}.personnel-page .table-wrap{max-height:43vh;min-height:100px}
.schedule-metrics{display:flex;justify-content:space-between;padding:10px 18px 0;font-size:12px}.operator-load{padding:8px 18px;margin:0;font-size:12px}
.personnel-toolbar #extraActions{margin-left:auto}.personnel-toolbar #loadState{margin-left:6px}.personnel-toolbar{padding:12px 18px}
.table-wrap .schedule-table,.table-wrap .vacation-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1640px;font-size:11px;color:#243d50}
.table-wrap .schedule-table th,.table-wrap .vacation-table th{text-transform:none;letter-spacing:0;font-size:11px;line-height:1.35;background:#e5eff8;border:0;border-bottom:1px solid #bfd2e3;border-right:1px solid #cbdde9;text-align:center;padding:7px 3px}
.table-wrap .schedule-table td,.table-wrap .vacation-table td{height:25px;padding:3px 4px;border:0;border-bottom:1px solid #d5e2ed;border-right:1px solid #d5e2ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f3f8fc;line-height:1.45}
.schedule-table th:first-child,.schedule-table td:first-child,.vacation-table th:first-child,.vacation-table td:first-child{width:225px;min-width:225px;position:sticky;left:0;z-index:2;text-align:left!important;padding-left:8px!important}
.schedule-table th:nth-child(2),.schedule-table td:nth-child(2),.vacation-table th:nth-child(2),.vacation-table td:nth-child(2){width:245px;position:sticky;left:225px;z-index:2;text-align:left!important;padding-left:8px!important}
.schedule-table th:first-child,.schedule-table th:nth-child(2),.vacation-table th:first-child,.vacation-table th:nth-child(2){z-index:4}
.schedule-table th:nth-child(3){width:65px}.schedule-table th:nth-child(n+4):not(:last-child){width:36px}
.schedule-table th:last-child,.schedule-table td:last-child,.vacation-table th:last-child,.vacation-table td:last-child{width:85px;min-width:85px;position:sticky;right:0;z-index:2;box-shadow:-2px 0 4px #233b4d12;text-align:center;color:#243d50;font-weight:600}
.schedule-table th:last-child,.vacation-table th:last-child{z-index:4}.schedule-table td:last-child{background:#edf4fa!important}
.table-wrap .vacation-table{min-width:1700px}.vacation-table th:nth-child(n+3):nth-child(-n+14){width:96px;min-width:96px}.vacation-table td:last-child{white-space:nowrap}
.table-wrap .vacation-table td.vacation-month{padding:0;height:29px;cursor:pointer}.vacation-month:focus{outline:2px solid #257969;outline-offset:-2px}
.vacation-lane{position:relative;height:28px;min-width:0}.vacation-lane .vacation-bar{position:absolute;top:1px;bottom:1px;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:#9bd6a6;cursor:pointer}
.vacation-lane .vacation-bar.compensation{background:#f5d676}.vacation-range-label{position:relative;pointer-events:none;z-index:1;display:block;line-height:28px;padding:0 4px;font-size:11px}
.table-wrap .vacation-table .vacation-total{background:#f5d676}.table-wrap .vacation-table .vacation-total.complete{background:#9bd6a6}
.vacation-summary{padding:12px 18px;color:#566e7d}.roster-title{font-size:12px;margin:12px 0}.roster-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.roster-card{min-width:0;background:#e9f2ef;border:1px solid #b9d2c6;border-radius:7px;overflow:hidden}
.roster-card h2{font-size:13px;margin:11px 13px;color:#28634f}.roster-scroll{max-height:170px;overflow:auto;margin:0 8px 8px}.roster-scroll table{font-size:11px;min-width:720px;border-collapse:separate;border-spacing:0}
.roster-scroll th{position:sticky;top:0;text-transform:none;letter-spacing:0;font-size:11px;background:#e5eff8;z-index:1}.roster-scroll th,.roster-scroll td{padding:4px 5px;height:auto;white-space:nowrap;border-right:1px solid #d5e2ed;border-bottom:1px solid #d5e2ed}
.roster-scroll td{background:#f3f8fc}.roster-scroll .status-green{background:#d9ead3;color:#274e13}.roster-scroll .status-yellow{background:#fff2cc;color:#7f6000}.roster-scroll .status-red{background:#f4cccc;color:#900}.roster-scroll .status-neutral{background:#eee;color:#444}.roster-empty{font-size:12px;color:#73858e;margin:10px}
.table-wrap .employees-table{min-width:1050px}.employees-table th:first-child,.employees-table td:first-child{width:240px;min-width:240px;position:sticky;left:0;background:#fff;z-index:2}.employees-table th:nth-child(2),.employees-table td:nth-child(2){width:245px;min-width:245px;left:240px}.employees-table th:first-child{background:#f7f9fa;z-index:3}
.personnel-modal{position:fixed;inset:0;z-index:50;background:#1b344965;display:flex;align-items:center;justify-content:center;padding:20px}.personnel-dialog{max-height:90vh;overflow:auto;width:480px;max-width:100%;border-radius:10px;background:#fff;padding:24px;box-shadow:0 20px 80px #132b4933}
.personnel-dialog h2{font-size:20px;margin:0 0 12px}.personnel-dialog p{font-size:12px;color:#617985}.personnel-dialog label{display:block;font-size:12px;margin:14px 0}.personnel-dialog input,.personnel-dialog select{display:block;width:100%;margin-top:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions button{font-size:12px}.dialog-actions .primary{background:#237767;color:#fff}.personnel-dialog .error{padding:8px;color:#a25d34}
@media(max-width:1000px){.roster-grid{grid-template-columns:1fr}.personnel-page{padding:20px 16px}.personnel-page .page-heading{display:block}.personnel-toolbar #extraActions{margin-left:0}}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.personnel-page{padding:0}.personnel-page .table-wrap{max-height:none;overflow:visible}.table-wrap .schedule-table{min-width:0;width:100%;font-size:6pt}.table-wrap .schedule-table td,.table-wrap .schedule-table th{height:auto;padding:2px;font-size:6pt;position:static;white-space:normal;overflow:visible}.schedule-table th:first-child,.schedule-table td:first-child{width:15%;min-width:0}.schedule-table th:nth-child(2),.schedule-table td:nth-child(2){width:17%}.schedule-table th:nth-child(3){width:4%}.schedule-table th:last-child,.schedule-table td:last-child{width:5%;min-width:0}.schedule-table th:nth-child(n+4):not(:last-child){width:auto}#roster{display:none}.schedule-metrics,.operator-load{font-size:8pt}.table-wrap .vacation-table{min-width:0;width:100%;font-size:6pt}.table-wrap .vacation-table th,.table-wrap .vacation-table td{position:static;width:auto;min-width:0;padding:2px;font-size:6pt}.vacation-range-label{font-size:6pt}}
