/* Readable hospital-wide roster controls and views. Loaded after premium-ui.css. */
.roster-toolbar-fields{align-items:end}.roster-toolbar label{min-width:155px}.roster-toolbar label>span,.dashboard-roster-date>span,.roster-period-state>span,.roster-overview-controls label>span{font-size:10.5px;letter-spacing:.075em;color:#526d68}.roster-toolbar select,.roster-toolbar input,.roster-date-control,.dashboard-roster-date input,.roster-overview-controls select,.roster-overview-controls input{min-height:42px;padding:9px 12px;font-size:12.5px;font-weight:700}.roster-view-date[hidden]{display:none}.roster-period-state strong{min-height:37px;align-items:center;font-size:11.5px}.roster-toolbar-actions{align-items:center}.roster-toolbar-actions .btn{min-height:42px}.roster-planner-panel>.panel-head{align-items:flex-start}.roster-legend span{min-height:28px;padding:6px 10px;font-size:10px}.roster-legend .leave{background:#fff0dc;color:#8a5b00}.roster-legend .training{background:#e9f0ff;color:#365fa8}
.monthly-roster-scroll{max-height:68vh}.monthly-roster-table th,.monthly-roster-table td{height:58px;padding:7px;min-width:116px}.monthly-roster-table thead th{font-size:10px}.monthly-roster-table thead th b{font-size:12px}.monthly-roster-table thead th small{font-size:9.5px;opacity:.9}.monthly-roster-table .employee-no{min-width:112px;max-width:112px}.monthly-roster-table .employee-name{left:112px;min-width:215px;max-width:215px}.monthly-roster-table .employee-position{left:327px;min-width:195px;max-width:195px}.monthly-roster-table .employee-name strong{font-size:12.5px;line-height:1.35}.monthly-roster-table .employee-name small{font-size:10px;line-height:1.35}.monthly-roster-table .employee-position{font-size:11.5px;line-height:1.4}.roster-cell select{min-height:38px;padding:8px 7px;font-size:11px}.roster-cell>small{max-width:112px;font-size:9px;line-height:1.35}.roster-cell.changed:after{font-size:8px}.roster-code-table th,.roster-code-table td{min-width:44px;height:43px;text-align:center}.roster-code-table .employee-no,.roster-code-table .employee-name,.roster-code-table .employee-position{text-align:left}.roster-code-table .employee-position{left:327px}.roster-code{font-size:11.5px;font-weight:800;letter-spacing:.03em}.roster-code.code-day{background:#e8f5f2;color:#087f75}.roster-code.code-night{background:#e9e7fa;color:#554590}.roster-code.code-call{background:#e7f1ff;color:#2866a3}.roster-code.code-evening{background:#fff2dc;color:#8a5b00}.roster-code.code-leave{background:#fff0dc;color:#8a5b00}.roster-code.code-training{background:#e9f0ff;color:#365fa8}.roster-all-stack{display:grid;gap:18px;padding:18px;background:#eef6f3}.roster-department-block{border:1px solid rgba(91,137,130,.24);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 7px 22px rgba(20,63,59,.06)}.roster-department-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:linear-gradient(120deg,#eaf7f3,#fff);border-bottom:1px solid #dce9e6}.roster-department-title strong{font:800 14px Manrope;color:#123f3a}.roster-department-title span{font-size:10.5px;color:#5c7470}.roster-daily-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px;background:#eef6f3}.roster-daily-grid.single{grid-template-columns:1fr;padding:0;background:transparent}.roster-overview-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.roster-overview-controls label{display:grid;gap:5px;min-width:170px}.roster-overview-controls .roster-date-control{max-width:none}.daily-department-card{border-radius:14px;box-shadow:0 7px 20px rgba(20,63,59,.06)}.daily-department-head{padding:14px 16px}.daily-department-head strong{font-size:14px}.daily-department-head small{font-size:10.5px;line-height:1.4}.daily-shift-columns>section{padding:13px}.daily-shift-columns header{margin-bottom:10px}.daily-shift-columns header strong{font-size:11.5px}.daily-shift-columns header span{padding:5px 8px;font-size:10px}.daily-shift-columns ul{gap:8px}.daily-shift-columns li{padding:9px 10px}.daily-shift-columns li span{font-size:11.5px;line-height:1.35}.daily-shift-columns li small{font-size:9.5px;line-height:1.4}.roster-warning-list strong,.roster-warning-list p{font-size:10.5px}.roster-safe strong,.roster-availability-note strong{font-size:11.5px}.roster-safe p,.roster-availability-note p{font-size:10.5px}.roster-history-list strong{font-size:11px}.roster-history-list p,.roster-history-list small{font-size:9.5px}.roster-block{font-size:9.5px}.roster-scope-note{padding:12px 16px;background:#e8f5f2;border:1px solid #cce7e1;border-radius:11px;color:#315e58;font-size:11px;line-height:1.5;margin:0 18px 18px}
@media(max-width:1100px){.roster-daily-grid{grid-template-columns:1fr}.roster-toolbar-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.roster-toolbar label{min-width:0}}
@media(max-width:760px){.roster-toolbar-fields{grid-template-columns:1fr}.roster-overview-controls{display:grid;grid-template-columns:1fr;width:100%}.roster-overview-controls label{min-width:0}.roster-daily-grid,.roster-all-stack{padding:12px}.monthly-roster-table .employee-name{left:0;min-width:180px;max-width:180px}.monthly-roster-table .employee-no,.monthly-roster-table .employee-position{display:none}}
