
#rosterDraftContent{min-width:0;color:var(--ink,#243347)}
#rosterDraftContent .row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}
#rosterDraftContent .between{justify-content:space-between}
#rosterDraftContent .scroll,#rosterDraftContent .timeline-scroll{overflow:auto;max-width:100%}
#rosterDraftContent button,#rosterDraftContent input,#rosterDraftContent select{font:inherit;border:1px solid var(--border,#dce3e9);border-radius:10px;padding:10px 13px;min-height:44px;background:white;color:inherit}
#rosterDraftContent button{cursor:pointer}#rosterDraftContent button:disabled{opacity:.5;cursor:not-allowed}
#rosterDraftContent button:focus-visible,#rosterDraftContent input:focus-visible,#rosterDraftContent select:focus-visible{outline:3px solid var(--teal,#2a7d8c);outline-offset:2px}
#rosterDraftContent .primary{background:var(--teal,#2a7d8c);color:white}
#rosterDraftContent [data-staff-period][aria-pressed="true"]{background:var(--teal,#2a7d8c);color:white}
#rosterDraftContent .staff-shift-state{font-weight:600}
#rosterDraftContent label{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:14px}
#rosterDraftContent table{border-collapse:collapse;width:100%;background:white}
#rosterDraftContent th,#rosterDraftContent td{border:1px solid var(--border,#dce3e9);padding:10px;vertical-align:top;text-align:left}
#rosterDraftContent td:first-child{min-width:145px}#rosterDraftContent td{min-width:130px}
#rosterDraftContent .shift{display:block;width:100%;border-left:4px solid var(--teal,#2a7d8c);text-align:left;margin:5px 0;line-height:1.55;font-size:13px}
#rosterDraftContent .shift strong,#rosterDraftContent .shift span{display:block}
#rosterDraftContent .shift.draft{border-left-color:var(--gold,#c8a96e);background:#fffaf0}
#rosterDraftContent .shift.cancelled{border-left-color:#ab4656;background:#fff2f3}
#rosterDraftContent .panel{padding:18px;border:1px solid var(--border,#dce3e9);border-radius:14px;background:white;margin:14px 0}
#rosterDraftContent .portal-roster-hero{display:none}
#rosterDraftContent .portal-roster-hero h1{font-size:26px}#rosterDraftContent .badge{border-radius:20px;background:#e4f0f1;padding:8px 12px}
#rosterDraftContent .portal-roster-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
#rosterDraftContent .portal-roster-stat{background:white;border:1px solid var(--border,#dce3e9);border-radius:14px;padding:16px}
#rosterDraftContent .portal-roster-stat strong{font-size:26px;display:block}#rosterDraftContent .portal-roster-stat span{font-size:13px}
#rosterDraftContent [data-roster-message]{white-space:pre-wrap;margin:12px 0}#rosterDraftContent [role=alert]{color:#a22138}
#rosterDraftContent .instructions{white-space:pre-wrap}#rosterDraftContent .staff-shifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
#rosterDraftContent .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:14px 0;align-items:start}
#rosterDraftContent .fields>label{display:flex;flex-direction:column;align-items:stretch;gap:6px}
#rosterDraftContent .fields>.check{flex-direction:row;align-items:center}
#rosterDraftContent input,#rosterDraftContent select,#rosterDraftContent textarea{box-sizing:border-box;min-width:0;max-width:100%}
#rosterDraftContent textarea{width:100%;min-height:110px;border:1px solid var(--border,#dce3e9);border-radius:10px;padding:12px;font:inherit;background:white;color:inherit}
#rosterDraftContent input[type=checkbox]{min-height:18px;width:18px;height:18px;flex-shrink:0}#rosterDraftContent label.check{min-height:44px}
#rosterDraftContent .position{border:1px solid #dce3e9;border-radius:12px;padding:16px;background:#f7f8fa}
#rosterDraftContent .position .series-scope{grid-column:1/-1}#rosterDraftContent .series-scope{border-top:1px solid #dce3e9;padding-top:12px;margin-top:12px}
#rosterDraftContent .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#rosterDraftContent fieldset{min-width:0;border:1px solid #dce3e9;border-radius:10px}
#rosterDraftContent .series-instructions{white-space:pre-wrap}#rosterDraftContent .series-worker{margin:12px 0;padding:10px;background:#f7f8fa;border-radius:10px}
#rosterDraftContent .month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:1000px}
#rosterDraftContent .month-day{border:1px solid #dce3e9;padding:8px;min-height:120px}#rosterDraftContent .outside{opacity:.6}
#rosterDraftContent .timeline{min-width:1500px}#rosterDraftContent .timeline-row{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid #dce3e9}
#rosterDraftContent .timeline-track,#rosterDraftContent .timeline-axis{position:relative}#rosterDraftContent .timeline-axis{height:36px}#rosterDraftContent .timeline-axis span{position:absolute}
#rosterDraftContent .timeline-bar{position:absolute;overflow:hidden;background:#e4f0f1;border:1px solid #2a7d8c;border-radius:8px}
#rosterDraftContent .timeline-open{width:100%;height:64px;text-align:left;overflow:hidden}#rosterDraftContent .timeline-open span{display:block}
@media(max-width:700px){#rosterDraftContent .portal-roster-stats{grid-template-columns:repeat(2,1fr)}#rosterDraftContent .staff-shifts{display:block}#rosterDraftContent .fields,#rosterDraftContent .two{grid-template-columns:minmax(0,1fr)}#rosterDraftContent .panel,#rosterDraftContent .position{padding:12px}}

#rosterDraftContent [hidden]{display:none!important}
#rosterDraftContent .timeline-bar{height:72px}
#rosterDraftContent .timeline-open{height:100%;padding:3px 20px 30px;white-space:nowrap;font-size:12px}
#rosterDraftContent .timeline-open strong,#rosterDraftContent .timeline-open span{overflow:hidden;text-overflow:ellipsis}
#rosterDraftContent .time-handle{position:absolute;bottom:0;min-height:28px;height:28px;padding:0;border:0;border-radius:3px;background:var(--teal,#2a7d8c);color:white;touch-action:none;cursor:ew-resize}
#rosterDraftContent .time-handle.start{left:0;width:20px}#rosterDraftContent .time-handle.end{right:0;width:20px}
#rosterDraftContent .time-handle.translate{left:calc(50% - 18px);width:36px;cursor:grab}
#rosterDraftContent .timeline-bar.draft{background:#fff3d9}#rosterDraftContent .timeline-bar.cancelled{background:#fff2f3}

#rosterDraftContent [data-roster-section][aria-current=page]{background:var(--teal,#2a7d8c);border-color:var(--teal,#2a7d8c);color:white}

#rosterDraftContent [data-note-message], #rosterDraftContent [aria-label="Retained note copy"] { font-size:16px; line-height:1.5; min-height:180px; width:100%; box-sizing:border-box; }

#rosterDraftContent [data-note-reason]{font-size:16px;line-height:1.5}
#rosterDraftContent .note-version-entry{margin:12px 0;padding:14px;border:1px solid var(--border,#dce3e9);border-radius:10px;background:var(--bg,#f7f9fb);overflow-wrap:anywhere}
#rosterDraftContent .note-version-entry h5{font-size:14px;margin:0 0 8px}
#rosterDraftContent .note-version-entry p{margin:6px 0;line-height:1.5}

@media(max-width:600px){
 #rosterDraftContent .partial-cover-preview{display:block;min-width:0;width:100%}
 #rosterDraftContent .partial-cover-preview thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #rosterDraftContent .partial-cover-preview tbody{display:grid;gap:12px}
 #rosterDraftContent .partial-cover-preview tr{display:block;border:1px solid var(--border,#dce3e9);border-radius:10px;padding:8px;background:var(--bg,#f7f9fb)}
 #rosterDraftContent .partial-cover-preview td{display:block;width:auto;min-width:0;border:0;padding:5px 4px;white-space:normal}
 #rosterDraftContent .partial-cover-preview td::before{content:attr(data-label);display:block;font-weight:600;color:var(--teal,#2a7d8c);font-size:12px}
}
/* Staff attendance stays inside the existing portal card and button styles. */
#rosterDraftContent [data-native-clock] { margin-block: 16px; }
#rosterDraftContent .native-clock-position { padding: 16px; margin-block: 12px; border: 1px solid var(--border, #dedbd4); border-radius: 12px; overflow-wrap: anywhere; }
#rosterDraftContent .native-clock-position h4 { margin-top: 0; }
#rosterDraftContent .native-clock-position p { margin-block: 8px; }
#rosterDraftContent [data-native-clock] button { min-height: 44px; max-width: 100%; white-space: normal; }
#rosterDraftContent .roster-attendance-list [data-native-attendance-cell]{min-width:300px;white-space:normal}
@media(max-width:700px){
 #rosterDraftContent .roster-attendance-list{display:block;min-width:0;width:100%}
 #rosterDraftContent .roster-attendance-list thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #rosterDraftContent .roster-attendance-list tbody{display:grid;gap:16px}
 #rosterDraftContent .roster-attendance-list tr{display:block;min-width:0;border:1px solid var(--border,#dce3e9);border-radius:12px;padding:10px;background:var(--card,#fff)}
 #rosterDraftContent .roster-attendance-list td{display:block;width:auto;min-width:0;max-width:100%;border:0;padding:8px 2px;white-space:normal;overflow-wrap:anywhere}
 #rosterDraftContent .roster-attendance-list [data-native-attendance-cell]{min-width:0}
 #rosterDraftContent .roster-attendance-list td::before{content:attr(data-label);display:block;font-weight:600;color:var(--teal,#2a7d8c);margin-bottom:6px}
 #rosterDraftContent .roster-attendance-list button{max-width:100%;white-space:normal}
}

#rosterDraftContent .availability-tile.blocked{background:#fff0f1;color:#8b2035;border:1px solid #d98b99;border-left:4px solid #b7334d;display:block;width:100%;text-align:left;margin:5px 0;padding:8px;font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
#rosterDraftContent .availability-tile.pending{background:#fff6dc;color:#735314;border:1px dashed #c39a37;display:block;width:100%;text-align:left;margin:5px 0;font-size:12px}
#rosterDraftContent .availability-tile.available{background:#e7f5ee;color:#245c41;display:block;width:100%;text-align:left;margin:5px 0;font-size:12px}
#rosterDraftContent .availability-day-blocked{background:repeating-linear-gradient(135deg,#ffe1e5 0,#ffe1e5 9px,#fff0f2 9px,#fff0f2 18px)}
#rosterDraftContent .availability-day-partial{background:#fff6f7;box-shadow:inset 0 3px #d98b99}
#rosterDraftContent .availability-legend{font-size:13px;line-height:1.6;padding:12px 14px;border:1px solid #e5c1c8;border-radius:10px;background:#fff6f7;color:#712438}
#rosterDraftContent .availability-band{position:absolute;top:0;bottom:0;pointer-events:none;border-left:1px solid #c9687b;border-right:1px solid #c9687b;background:repeating-linear-gradient(135deg,#f9d6dd 0,#f9d6dd 8px,#fce8ec 8px,#fce8ec 16px);z-index:0}
#rosterDraftContent .availability-band.pending{background:repeating-linear-gradient(135deg,#fff1c5 0,#fff1c5 8px,#fff9e8 8px,#fff9e8 16px);border-color:#c39a37}
#rosterDraftContent .timeline-bar{z-index:1}
#rosterDraftContent .shift.availability-clash,#rosterDraftContent .timeline-bar.availability-clash{border:2px solid #b7334d;border-left:5px solid #b7334d}
#rosterDraftContent .availability-conflict{display:block;font-weight:600;color:#94263d;white-space:normal}

/* Shift details stay in the existing portal and above the unchanged calendar. */
#rosterDraftContent .shift-detail-modal{box-sizing:border-box;width:min(1120px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid #d5dfe7;border-radius:18px;background:var(--bg,#f6f8fa);color:var(--ink,#243347);box-shadow:0 24px 80px #10223955;overflow:hidden;margin:auto}
#rosterDraftContent .shift-detail-modal[open]{display:flex;flex-direction:column}
#rosterDraftContent .shift-detail-modal::backdrop{background:#10223988;backdrop-filter:blur(2px)}
#rosterDraftContent .shift-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:white;border-bottom:1px solid #dce3e9;flex-shrink:0}
#rosterDraftContent .shift-modal-header h2{margin:0;font-size:20px;outline:none}
#rosterDraftContent .shift-modal-header button{white-space:nowrap}
#rosterDraftContent .shift-modal-message:has([data-roster-message]:empty){display:none}
#rosterDraftContent .shift-modal-message{padding:0 20px;background:white;flex-shrink:0}
#rosterDraftContent .shift-modal-body{padding:16px 20px 20px;overflow:auto;overscroll-behavior:contain;min-height:0}
#rosterDraftContent .shift-detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
#rosterDraftContent .shift-detail-layout>.shift-summary,#rosterDraftContent .shift-detail-layout>.shift-modal-back,#rosterDraftContent .shift-detail-layout>[aria-label="Record cancellation"],#rosterDraftContent .shift-detail-layout>[aria-label="Care records and reports"]:has([data-my-note-editor]),#rosterDraftContent .shift-detail-layout>[aria-label="Replacement cover"]:has(form){grid-column:1/-1}
#rosterDraftContent .shift-detail-layout:has(#editor){display:block}
#rosterDraftContent .shift-detail-layout .panel,#rosterDraftContent [data-shift-clock] .panel{padding:14px;margin:0;border-radius:12px}
#rosterDraftContent [data-shift-clock]:not(:empty){margin-bottom:12px}
#rosterDraftContent .shift-detail-layout h2{font-size:21px;margin:0 0 5px}
#rosterDraftContent .shift-detail-layout h3,#rosterDraftContent .shift-detail-layout h4{font-size:15px;margin:10px 0 6px}
#rosterDraftContent .shift-detail-layout p{margin:6px 0;font-size:13px;line-height:1.5}
#rosterDraftContent .shift-detail-layout .row{gap:8px;margin:8px 0}
#rosterDraftContent .shift-detail-layout button{font-size:13px;padding:8px 11px}
#rosterDraftContent .shift-modal-back{justify-self:start}
#rosterDraftContent .shift-summary-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:18px;margin:12px 0}
#rosterDraftContent .shift-client-list{display:flex;gap:7px;flex-wrap:wrap;padding:0;margin:0;list-style:none}
#rosterDraftContent .shift-client-list li{padding:5px 9px;border-radius:8px;background:#e9f3f4;font-size:13px}
#rosterDraftContent [data-current-positions]{list-style:none;padding:0;margin:0;display:grid;gap:5px}
#rosterDraftContent [data-current-positions] li{padding:5px 8px;background:#f1f4f7;border-radius:7px;font-size:13px}
#rosterDraftContent .shift-detail-help{color:#576a7c}
#rosterDraftContent .shift-summary .instructions{padding:9px 11px;background:#f6f8fa;border-radius:8px}
@media(max-width:700px){
 #rosterDraftContent .shift-detail-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:14px}
 #rosterDraftContent .shift-modal-header{padding:10px 12px}
 #rosterDraftContent .shift-modal-body{padding:12px}
 #rosterDraftContent .shift-detail-layout,#rosterDraftContent .shift-summary-columns{grid-template-columns:minmax(0,1fr)}
 #rosterDraftContent .shift-detail-layout .panel{padding:12px}
 #rosterDraftContent .shift-detail-layout textarea{font-size:16px}
}

#rosterDraftContent .shift-modal-header .shift-modal-back{margin-left:auto}
#rosterDraftContent .shift-detail-layout:not(:has([data-cover-form]))>[aria-label="Care records and reports"]:not(:has([data-my-note-editor])){grid-row:span 2}
@media(max-width:700px){#rosterDraftContent .shift-modal-header{gap:8px}#rosterDraftContent .shift-modal-header h2{font-size:17px}#rosterDraftContent .shift-modal-header button{font-size:12px;padding:8px}#rosterDraftContent .shift-detail-layout>[aria-label="Care records and reports"]{grid-row:auto!important}}

#rosterDraftContent .calendar-tile{box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-start;gap:3px;width:112px;min-width:112px;max-width:112px;height:112px;min-height:112px;max-height:112px;aspect-ratio:1;border-radius:8px;padding:8px;margin:4px 0;line-height:1.25;overflow:hidden;text-align:left}
#rosterDraftContent .calendar-tile strong,#rosterDraftContent .calendar-tile span{display:block;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:1.3}
#rosterDraftContent .calendar-tile .tile-hours{font-size:12px;font-weight:700;overflow:visible}
#rosterDraftContent .calendar-tile .tile-hours small{font-size:9px}
#rosterDraftContent .calendar-tile .tile-state{font-size:10px;text-transform:capitalize}
#rosterDraftContent .calendar-tile .tile-warning{color:#94263d;font-size:10px;font-weight:700;margin-top:auto}
#rosterDraftContent .shift-hover-preview{position:fixed;z-index:9000;box-sizing:border-box;width:min(390px,calc(100vw - 16px));max-height:min(680px,calc(100dvh - 16px));overflow:auto;overscroll-behavior:contain;padding:16px 18px;border:1px solid #b8cbd4;border-radius:14px;background:#fff;color:#243347;box-shadow:0 12px 42px #10223944;text-align:left;font:inherit;font-size:13px;line-height:1.45;white-space:normal}
#rosterDraftContent .shift-hover-preview[hidden]{display:none!important}
#rosterDraftContent .shift-hover-preview h3{font-size:17px;margin:0 0 5px;font-weight:700;color:#153e50}
#rosterDraftContent .shift-hover-preview h4{font-size:13px;margin:12px 0 5px;font-weight:700}
#rosterDraftContent .shift-hover-preview p{font-size:12px;line-height:1.5;margin:5px 0}
#rosterDraftContent .shift-hover-preview ul{margin:0;padding-left:17px}
#rosterDraftContent .shift-hover-preview .preview-workers{list-style:none;padding:0;display:grid;gap:6px}
#rosterDraftContent .shift-hover-preview .preview-workers li{padding:7px 9px;border-radius:7px;background:#f1f5f7;font-size:12px}
#rosterDraftContent .shift-hover-preview .preview-workers .preview-selected{background:#e5f2f3;border-left:3px solid #2a7d8c}
#rosterDraftContent .shift-hover-preview .preview-warning{color:#94263d;background:#fff0f2;border-radius:6px;padding:7px 9px;font-weight:600}
#rosterDraftContent .shift-hover-preview .preview-instructions{white-space:pre-wrap;overflow-wrap:anywhere}
#rosterDraftContent .shift-hover-preview .preview-hint{margin-top:12px;padding-top:9px;border-top:1px solid #e0e6eb;color:#5c6c7d;font-size:11px}

#rosterDraftContent .roster-drop-active{outline:3px solid #258d89;outline-offset:-3px;background:#e8f5f3!important;}
#rosterDraftContent .worker-drop-target{cursor:default;}
#rosterDraftContent [data-roster-message]{scroll-margin-top:16px;}
#rosterDraftContent .roster-calendar-scroll{max-height:65vh;min-height:280px;overscroll-behavior:contain;overflow-anchor:none;scroll-behavior:auto;border:1px solid var(--border,#dce3e9);border-radius:10px}
#rosterDraftContent .roster-calendar-scroll thead th{position:sticky;top:0;z-index:3;background:#102238;color:white}
#rosterDraftContent .roster-calendar-scroll table{overflow:visible}
#rosterDraftContent .roster-calendar-scroll td:first-child{position:sticky;left:0;z-index:2;background:#fff}
#rosterDraftContent .roster-calendar-scroll thead th:first-child{left:0;z-index:4}
#rosterDraftContent .roster-move-tools{height:58px;box-sizing:border-box;display:flex;align-items:center;gap:12px;white-space:nowrap;overflow:auto;margin:10px 0}
#rosterDraftContent .roster-move-tools>*{flex-shrink:0}
#rosterDraftContent .roster-move-notice,#rosterDraftContent .roster-move-confirm{position:fixed;right:20px;bottom:24px;z-index:9500;width:min(420px,calc(100vw - 32px));max-height:55vh;overflow:auto;box-sizing:border-box;background:white;border:1px solid #adc6ce;border-radius:12px;padding:14px 16px;box-shadow:0 8px 30px #10223833;margin:0}
#rosterDraftContent .roster-move-notice{display:flex;align-items:center;gap:12px}
#rosterDraftContent .roster-move-notice span{flex:1;overflow-wrap:anywhere}
#rosterDraftContent .roster-move-notice[role="alert"]{border-color:#bd6171;color:#94263d}
@media(max-width:700px){#rosterDraftContent .roster-move-notice,#rosterDraftContent .roster-move-confirm{bottom:80px;right:16px}}

/* Compact roster controls, scoped away from care forms and shift details. */
/* Simple settings share compact rows in both the shift builder and editor. */
#rosterDraftContent #editor .editor-checks{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;margin:6px 0 12px;padding:0;border:0;background:none}
#rosterDraftContent #editor .editor-checks .check{display:flex;flex-direction:row;align-items:center;gap:7px;min-height:32px;margin:0;font-size:13px;font-weight:500;width:auto}
#rosterDraftContent #editor .editor-worker-checks{grid-column:1/-1;margin:0}
#rosterDraftContent #editor .editor-options-help{font-size:12px;color:#586879}
#rosterDraftContent #editor .editor-options-help summary{cursor:pointer;padding:7px 0;color:#256e7a}
#rosterDraftContent #editor .editor-options-help p{font-size:12px;line-height:1.5;margin:5px 0;max-width:480px}
#rosterDraftContent #editor .fields{gap:10px 12px;margin:10px 0}
@media(max-width:700px){#rosterDraftContent #editor .editor-checks{column-gap:14px}#rosterDraftContent #editor .editor-checks .check,#rosterDraftContent #editor .editor-options-help summary{min-height:44px}}
#rosterDraftContent .shift-sleepover-panel{grid-column:1/-1;border-color:#b6d9de;background:#f4fafb}
#rosterDraftContent [data-sleepover-position]{border-color:#2a7d8c;color:#1e6370;font-weight:600}
#rosterDraftContent .roster-control-hint{font-size:11px;line-height:1.5;color:#586879;margin:6px 2px}
#rosterDraftContent .roster-controls-guide{margin:6px 0;font-size:12px;line-height:1.6}
#rosterDraftContent .roster-controls-guide summary{cursor:pointer;min-height:32px;display:list-item;align-content:center;font-weight:600;color:var(--teal,#2a7d8c);width:fit-content;padding:3px 5px;border-radius:5px}
#rosterDraftContent .roster-controls-guide summary:focus-visible{outline:3px solid var(--teal,#2a7d8c);outline-offset:2px}
#rosterDraftContent .roster-controls-guide[open]{padding:10px 14px;border:1px solid var(--border,#dce3e9);border-radius:10px;background:#fff}
#rosterDraftContent .roster-controls-guide p{font-size:12px;line-height:1.6;margin:8px 0}
#rosterDraftContent .roster-controls-guide dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:14px 0}
#rosterDraftContent .roster-controls-guide dt{font-weight:600;color:var(--ink,#243347)}
#rosterDraftContent .roster-controls-guide dd{margin:3px 0 0;color:#586879}
@media(max-width:700px){#rosterDraftContent .roster-controls-guide summary{min-height:44px}#rosterDraftContent .roster-controls-guide dl{grid-template-columns:minmax(0,1fr)}}
#rosterDraftContent nav[aria-label$="roster tools" i],#rosterDraftContent nav[aria-label="Roster tools"]{gap:4px;margin:0 0 12px;padding:4px;background:#edf2f4;border:1px solid var(--border,#dce3e9);border-radius:10px}
#rosterDraftContent [data-roster-section]{font-size:12px;font-weight:600;min-height:34px;padding:6px 10px;border-color:transparent;border-radius:7px;background:transparent}
#rosterDraftContent [data-roster-section]:hover{background:#dfeaec}
#rosterDraftContent .portal-roster-stats{display:flex;flex-wrap:wrap;gap:8px 24px;margin:10px 0;padding:8px 0;border-bottom:1px solid var(--border,#dce3e9)}
#rosterDraftContent .portal-roster-stat{display:flex;align-items:baseline;gap:6px;padding:0;border:0;border-radius:0;background:transparent}
#rosterDraftContent .portal-roster-stat strong{display:inline;font-size:18px;line-height:1.3;color:var(--ink,#243347)}
#rosterDraftContent .portal-roster-stat span{font-size:12px;color:#586879}
#rosterDraftContent .roster-range-controls{display:flex;align-items:end;flex-wrap:wrap;gap:8px 12px;padding:12px;margin:12px 0;border:1px solid var(--border,#dce3e9);border-radius:10px;background:white}
#rosterDraftContent .roster-range-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;min-width:0}
#rosterDraftContent .roster-range-controls input,#rosterDraftContent .roster-range-controls button{min-height:34px;padding:6px 10px;font-size:12px;border-radius:7px}
#rosterDraftContent .roster-range-controls p{flex-basis:100%;font-size:12px;margin:0;color:#586879}
#rosterDraftContent #calendar-range-error{color:#a52121}
#rosterDraftContent #calendar-range-error:empty{display:none}
@media(max-width:700px){#rosterDraftContent .roster-range-controls label{flex:1 1 120px}#rosterDraftContent .roster-range-controls input,#rosterDraftContent .roster-range-controls button{min-height:44px;font-size:16px;max-width:100%;box-sizing:border-box}}
#rosterDraftContent .roster-calendar-toolbar{gap:8px;margin:10px 0}
#rosterDraftContent .roster-calendar-toolbar h2{font-size:18px;line-height:1.4;margin:0}
#rosterDraftContent .roster-calendar-toolbar>.row{gap:5px;margin:0}
#rosterDraftContent .roster-calendar-toolbar button,#rosterDraftContent .roster-refinements button,#rosterDraftContent .roster-move-tools button{min-height:34px;font-size:12px;padding:6px 10px;border-radius:7px}
#rosterDraftContent .roster-calendar-toolbar #previous,#rosterDraftContent .roster-calendar-toolbar #next{width:34px;padding:0;font-size:23px;line-height:1}
#rosterDraftContent .roster-refinements{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:10px 12px;margin:0;padding:12px;background:white;border:1px solid var(--border,#dce3e9);border-radius:10px 10px 0 0}
#rosterDraftContent .roster-refinements>label{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;font-size:11px;font-weight:600;color:#586879}
#rosterDraftContent .roster-refinements input,#rosterDraftContent .roster-refinements select,#rosterDraftContent .roster-drag-options select{width:100%;min-height:34px;height:34px;padding:5px 8px;border-radius:6px;font-size:12px;font-weight:400;color:var(--ink,#243347)}
#rosterDraftContent .roster-drag-options{gap:8px 18px;margin:0;padding:8px 12px;background:#f8fafb;border:1px solid var(--border,#dce3e9);border-top:0;border-radius:0 0 10px 10px}
#rosterDraftContent .roster-drag-options label{gap:6px;font-size:11px;flex-wrap:nowrap;min-width:0}
#rosterDraftContent .roster-drag-options select{width:auto;max-width:210px;min-width:0;height:30px;min-height:30px}
#rosterDraftContent .roster-drag-options input[type=checkbox]{margin:0;width:16px;height:16px;min-height:16px;padding:0}
#rosterDraftContent .roster-calendar-summary{font-size:11px;line-height:1.5;margin:8px 0;color:#586879}
#rosterDraftContent .availability-legend{font-size:11px;line-height:1.5;margin:6px 0;padding:7px 10px;border-radius:7px}
#rosterDraftContent .roster-move-tools{height:42px;gap:8px;margin:6px 0;font-size:11px}
@media(max-width:700px){
 #rosterDraftContent nav[aria-label$="roster tools" i],#rosterDraftContent nav[aria-label="Roster tools"]{flex-wrap:nowrap;overflow:auto;max-width:100%}
 #rosterDraftContent [data-roster-section]{flex-shrink:0;min-height:44px}
 #rosterDraftContent .portal-roster-stats{gap:6px 14px}
 #rosterDraftContent .portal-roster-stat{flex:1 1 40%}
 #rosterDraftContent .roster-calendar-toolbar h2{font-size:16px}
 #rosterDraftContent .roster-calendar-toolbar>.row{width:100%}
 #rosterDraftContent .roster-calendar-toolbar button,#rosterDraftContent .roster-refinements button,#rosterDraftContent .roster-move-tools button{min-height:44px}
 #rosterDraftContent .roster-refinements{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}
 #rosterDraftContent .roster-refinements input,#rosterDraftContent .roster-refinements select,#rosterDraftContent .roster-drag-options select{height:44px;min-height:44px;font-size:16px}
 #rosterDraftContent .roster-drag-options{gap:6px;padding:8px 10px}
 #rosterDraftContent .roster-drag-options label{width:100%;min-height:44px;justify-content:space-between}
 #rosterDraftContent .roster-drag-options label:has([data-instant]){justify-content:flex-start}
 #rosterDraftContent .roster-drag-options select{max-width:65%;font-size:12px}
 #rosterDraftContent .roster-move-tools{height:50px}
}

/* Compact office reference review; horizontal overflow stays inside its table. */
.office-review{min-width:0}.office-review h2{margin:0 auto 0 0}.office-filters{gap:8px!important;align-items:end}.office-filters label{font-size:12px}.office-filters input,.office-filters select{padding:6px 8px!important;min-height:32px!important}.office-check{display:flex;align-items:center;gap:6px;padding-bottom:6px}.office-check input{width:auto!important;min-height:0!important}.office-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px}.office-totals>div{padding:10px;border:1px solid #d9e4e9;border-radius:8px;background:#f6f9fb}.office-totals small{display:block;color:#526673}.office-totals strong{display:block;font-size:19px;margin-top:4px}.office-caption,.office-help{font-size:12px;line-height:1.6}.office-table-wrap{width:100%;max-width:100%;overflow-x:auto;border:1px solid #d9e4e9;border-radius:8px}.office-table{width:100%;min-width:850px;border-collapse:collapse;font-size:12px}.office-table th,.office-table td{padding:10px;text-align:left;vertical-align:top;border-bottom:1px solid #e2eaef}.office-table th{background:#f2f6f8}.office-table small{font-weight:400;color:#526673}.office-table button{padding:4px 7px!important;font-size:11px!important;min-height:27px!important}.office-table .row{gap:5px!important;margin-top:5px}.office-attention{color:#8a4d05}.office-help{margin-top:12px}.office-help summary{cursor:pointer;font-weight:600}

#rosterDraftContent .office-table th{color:#17324d;text-transform:none;letter-spacing:normal}#rosterDraftContent .office-table th small{color:#526673}

#rosterDraftContent .shift.sil-shift:not(.cancelled):not(.availability-clash),#rosterDraftContent .timeline-bar.sil-shift:not(.cancelled):not(.availability-clash){border-left:4px solid #218f91;background:linear-gradient(120deg,#e5f5f1,#f5faf8);color:#143c43}#rosterDraftContent .sil-badge{font-size:9px;letter-spacing:.06em;color:#176c70}.editor-checks{gap:10px}#editor [hidden]{display:none!important}

.note-photo-gallery{display:flex;gap:10px;flex-wrap:wrap}.note-photo-gallery figure{margin:0;max-width:150px}.note-photo-gallery img{width:140px;height:110px;object-fit:contain;border-radius:7px;background:#f1f5f6}.note-photo-gallery figcaption{font-size:11px}.shift-client-tasks .row{padding:8px 0;border-bottom:1px solid #e0e8ec}.shift-client-tasks .row>span{flex:1}

#rosterDraftContent #editor h2{font-size:15px;margin:18px 0 8px}#rosterDraftContent #editor .editor-advanced{grid-column:1/-1;font-size:12px}#rosterDraftContent #editor .editor-advanced>summary,#rosterDraftContent .shift-task-builder>summary{cursor:pointer;font-weight:600;padding:7px 0;color:#36586c}#rosterDraftContent #editor .editor-advanced>.fields{margin-top:8px}#rosterDraftContent #editor .position{padding:12px;border:1px solid #dbe5e9;border-radius:8px;margin-bottom:8px}#rosterDraftContent .shift-task-builder{margin:14px 0}#rosterDraftContent .shift-quick-actions{gap:6px}#rosterDraftContent .shift-quick-actions button{font-size:12px;padding:7px 10px;min-height:34px}

/* Everyday shift controls: strong primary action, lighter secondary settings. */
#rosterDraftContent .polished-builder .builder-main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px}
#rosterDraftContent .polished-builder .builder-block{min-width:0}#rosterDraftContent .polished-builder .builder-block>h2:first-child{margin-top:0;font-size:18px}
#rosterDraftContent .polished-builder .fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}#rosterDraftContent .polished-builder .fields>label:has([name=facilityId]),#rosterDraftContent .polished-builder .fields>label:has([name=kind]){grid-column:span 1}
#rosterDraftContent .polished-builder input:not([type=checkbox]),#rosterDraftContent .polished-builder select,#rosterDraftContent .polished-builder textarea{border:1px solid #dce5ea;border-radius:8px;background:#f8fafb;box-shadow:none;padding:9px 10px;min-height:38px;font-size:13px}
#rosterDraftContent .polished-builder input:focus,#rosterDraftContent .polished-builder select:focus,#rosterDraftContent .polished-builder textarea:focus{outline:2px solid #25868b;outline-offset:1px;background:white}
#rosterDraftContent .polished-builder label{font-size:12px;color:#445e71}#rosterDraftContent .polished-builder .editor-checks{margin:14px 0;gap:10px}#rosterDraftContent .polished-builder .editor-checks .check{border:0;background:transparent;padding:0}
#rosterDraftContent #editor.polished-builder .position{background:#f4f8f9;border:0;padding:12px}#rosterDraftContent #editor.polished-builder .position>label:first-child{grid-column:1/-1}#rosterDraftContent #editor.polished-builder .position>label:first-child select{background:white;font-weight:600}
#rosterDraftContent .builder-client-picker{position:relative;margin:8px 0 18px}#rosterDraftContent .client-selected{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;font-size:12px;color:#63798a}
#rosterDraftContent button.client-chip{min-height:28px;padding:4px 9px;border:0;background:#e6f2f1;color:#185e63;font-size:12px;border-radius:20px;white-space:normal}
#rosterDraftContent .client-options{position:absolute;top:64px;left:0;right:0;z-index:12;background:#fff;border:1px solid #d4e2e6;border-radius:10px;box-shadow:0 10px 28px #17324d22;max-height:250px;overflow:auto;display:flex;flex-direction:column;align-items:stretch;padding:6px;gap:0}
#rosterDraftContent .client-options label{padding:10px;border-radius:6px;font-size:13px;display:flex;align-items:center;gap:9px}#rosterDraftContent .client-options label:hover{background:#eff7f7}#rosterDraftContent .client-options input{accent-color:#21868b}#rosterDraftContent .client-search-status{font-size:12px;margin:5px 0}
#rosterDraftContent .shift-address-editor{margin:14px 0}#rosterDraftContent .shift-address-editor>label{display:block}#rosterDraftContent .address-help,#rosterDraftContent .repeat-preview,#rosterDraftContent [data-monthly-help]{font-size:11px;line-height:1.5;color:#63798a;margin:6px 0}#rosterDraftContent [data-monthly-help]{grid-column:1/-1}
#rosterDraftContent .polished-builder .builder-footer{position:sticky;bottom:-1px;z-index:4;padding:14px 0 4px;margin-top:16px;border-top:1px solid #e4ebef;background:white;gap:8px}#rosterDraftContent .builder-footer [data-roster-now]{order:-1;background:#173c50;border-color:#173c50;color:white;min-width:140px;padding:11px 22px;font-weight:650;border-radius:8px}#rosterDraftContent .builder-footer .button-secondary{background:#edf3f6;border:0;border-radius:8px}#rosterDraftContent .button-quiet,#rosterDraftContent .polished-builder #add-position,#rosterDraftContent .polished-builder [data-add-builder-task]{border:0;background:transparent;color:#246b78;padding:7px 0;min-height:30px}
#rosterDraftContent .shift-address-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#edf6f5;border-radius:8px;margin:12px 0}#rosterDraftContent .shift-address-card p{margin:0}#rosterDraftContent .directions-button{background:#176d77;color:white;padding:9px 12px;border-radius:8px;text-decoration:none;white-space:nowrap;font-size:13px}
@media(max-width:800px){#rosterDraftContent .polished-builder .builder-main-grid{grid-template-columns:1fr;gap:20px}#rosterDraftContent .polished-builder input:not([type=checkbox]),#rosterDraftContent .polished-builder select{font-size:16px;min-height:44px}#rosterDraftContent .polished-builder .fields{grid-template-columns:repeat(2,minmax(0,1fr))}#rosterDraftContent .client-options{top:68px}#rosterDraftContent .shift-address-card{align-items:flex-start;flex-direction:column}#rosterDraftContent .builder-footer button{min-height:44px}}

#rosterDraftContent .polished-builder .client-search-label,#rosterDraftContent .polished-builder .shift-address-editor>label{display:flex;flex-direction:column;align-items:stretch;gap:6px}#rosterDraftContent .polished-builder [data-client-search],#rosterDraftContent .polished-builder [name=addressText]{width:100%;box-sizing:border-box}#rosterDraftContent .client-options{top:68px}

/* Familiar section-based shift builder, using the portal palette. */
#roster .main:has(#editor.sectioned-builder):not(:has(.shift-detail-modal)){overflow:visible}
#rosterDraftContent .panel.builder-surface{padding:0;border:0;background:#f3f6f8;border-radius:14px;overflow:visible}
#rosterDraftContent .sectioned-builder .builder-header{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px;background:#fff;border-bottom:1px solid #dce6ea;border-radius:14px 14px 0 0;box-shadow:0 3px 12px #173c5007}
#rosterDraftContent .builder-eyebrow{display:block;color:#398185;font-size:10px;font-weight:750;letter-spacing:.12em}
#rosterDraftContent .builder-heading h1{font-size:23px;line-height:1.2;margin:3px 0 0;color:#183c50}
#rosterDraftContent .sectioned-builder .builder-footer{position:static;margin:0;padding:0;border:0;background:transparent;gap:7px}
#rosterDraftContent .sectioned-builder .builder-footer #editor-back{order:-2}
#rosterDraftContent .sectioned-builder .builder-footer [data-roster-now]{order:2;min-width:116px;padding:10px 17px;background:#216f78;border:1px solid #216f78}
#rosterDraftContent .sectioned-builder .builder-main-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;padding:20px}
#rosterDraftContent .builder-column{display:flex;flex-direction:column;gap:16px;min-width:0}
#rosterDraftContent .builder-card{background:#fff;border:1px solid #e1e9ec;border-radius:11px;padding:17px 19px;min-width:0;box-shadow:0 2px 4px #173c5003}
#rosterDraftContent #editor.sectioned-builder .builder-card>h2{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid #edf1f3;display:flex;align-items:center;gap:9px;font-size:15px;color:#193e50;font-weight:700}
#rosterDraftContent .builder-card>h2:before{content:'';width:6px;height:16px;border-radius:4px;background:#62a7a5}
#rosterDraftContent .builder-hint{font-size:12px;color:#68808e;line-height:1.5;margin:-4px 0 14px}
#rosterDraftContent .sectioned-builder .builder-setting{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:center;flex-wrap:nowrap;margin:10px 0}
#rosterDraftContent .sectioned-builder .builder-key-setting select{font-weight:650;color:#193e50;background:#f4f9f9;border-color:#bed9d9}
#rosterDraftContent .sectioned-builder .builder-client-picker{margin-bottom:0}
#rosterDraftContent .sectioned-builder .client-search-label{font-size:0;gap:0}
#rosterDraftContent .sectioned-builder .client-options{top:42px}
#rosterDraftContent .sectioned-builder .client-search-status:empty{display:none}
#rosterDraftContent .sectioned-builder .builder-allowance{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;font-size:12px;color:#445e71;padding:5px 0}
#rosterDraftContent .sectioned-builder .builder-allowance .check{gap:7px;flex-wrap:nowrap;font-weight:500;font-size:13px;min-height:32px}
#rosterDraftContent .sectioned-builder input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:#247f85;flex-shrink:0}
#rosterDraftContent .sectioned-builder .builder-group{border-top:1px solid #edf1f3;margin-top:10px;padding-top:4px}
#rosterDraftContent .sectioned-builder .builder-group>summary{font-weight:400;font-size:11px;color:#647c8b}
#rosterDraftContent .sectioned-builder .builder-group .builder-hint{margin:10px 0 0}
#rosterDraftContent .sectioned-builder .builder-instructions{display:block;font-size:12px}
#rosterDraftContent .sectioned-builder .builder-instructions textarea{margin-top:8px;min-height:100px;resize:vertical;font-size:13px}
#rosterDraftContent #editor.sectioned-builder .shift-task-builder{border-top:1px solid #edf1f3;margin:12px 0 0;padding-top:7px;font-size:12px}
#rosterDraftContent #editor.sectioned-builder .position{background:#f7fafb;border:1px solid #e8eef1;border-radius:8px;padding:12px}
#rosterDraftContent .sectioned-builder .builder-review{padding:14px 18px;background:#eaf4f3;border-left:3px solid #388a89;border-radius:8px;color:#325e67;font-size:12px}
#rosterDraftContent .builder-review p{margin:5px 0 0;line-height:1.6}
#rosterDraftContent .sectioned-builder .builder-repeat-fields{padding-top:10px;border-top:1px solid #edf1f3}
#rosterDraftContent .shift-type-label{font-size:13px;font-weight:650;color:#247c81;margin:4px 0 10px}
#rosterDraftContent .sectioned-builder input,#rosterDraftContent .sectioned-builder select,#rosterDraftContent .sectioned-builder textarea{scroll-margin-top:100px}
@media(max-width:1050px){#rosterDraftContent .sectioned-builder .builder-main-grid{grid-template-columns:1fr}#rosterDraftContent .sectioned-builder .builder-header{flex-wrap:wrap;gap:12px}#rosterDraftContent .sectioned-builder .builder-footer{margin-left:auto}}
@media(max-width:600px){#rosterDraftContent .sectioned-builder .builder-main-grid{padding:10px;gap:12px}#rosterDraftContent .sectioned-builder .builder-header{padding:12px;gap:10px}#rosterDraftContent .builder-heading h1{font-size:21px}#rosterDraftContent .sectioned-builder .builder-footer{width:100%;justify-content:flex-end;gap:6px}#rosterDraftContent .sectioned-builder .builder-footer button{font-size:12px;padding:9px 12px;min-height:44px}#rosterDraftContent .builder-card{padding:14px}#rosterDraftContent .sectioned-builder .builder-setting{grid-template-columns:1fr;gap:6px}#rosterDraftContent .sectioned-builder .builder-allowance{grid-template-columns:80px 1fr;gap:6px}#rosterDraftContent .sectioned-builder .client-options{top:47px}#rosterDraftContent .sectioned-builder .builder-instructions textarea{font-size:16px}}
@media(max-width:800px){#rosterDraftContent .sectioned-builder .builder-header{top:78px}#rosterDraftContent .sectioned-builder input,#rosterDraftContent .sectioned-builder select,#rosterDraftContent .sectioned-builder textarea{scroll-margin-top:220px}}
#rosterDraftContent .shift-detail-modal .sectioned-builder .builder-header{top:0}
#rosterDraftContent .builder-same-hours{grid-column:1/-1;font-size:12px;gap:7px}
#rosterDraftContent .builder-advice-status{font-size:11px;color:#637b8b;line-height:1.5;margin:0 0 12px}
#rosterDraftContent .builder-conflicts{grid-column:1/-1;color:#a13b42;font-size:12px;line-height:1.5;margin:7px 0}
#rosterDraftContent .builder-conflicts.builder-clear{color:#356e70}
#rosterDraftContent .builder-setups{margin:12px 20px 0;padding:10px 14px;background:white;border:1px solid #dce7ea;border-radius:8px;font-size:12px}
#rosterDraftContent .builder-setups summary,#rosterDraftContent .builder-staff-preview summary,#rosterDraftContent .builder-repeat-calendar summary{cursor:pointer;color:#256c75;font-size:12px;font-weight:600;padding:5px 0}
#rosterDraftContent .builder-setups .row{gap:8px}#rosterDraftContent .builder-setups button{font-size:12px;min-height:34px;padding:7px 10px}#rosterDraftContent .builder-setups .builder-hint{margin:8px 0}
#rosterDraftContent .builder-favorites{display:flex;flex-wrap:wrap;gap:6px;padding:12px 20px 0}#rosterDraftContent .builder-favorites button{font-size:12px;min-height:34px;padding:6px 12px;border-radius:20px;background:#e3f1ef;color:#216d71;border-color:#c8e2df}
#rosterDraftContent .builder-staff-preview{padding:12px 16px;background:#fff;border:1px solid #dce7ea;border-radius:10px;font-size:13px}
#rosterDraftContent [data-preview-content]{margin-top:12px;padding:14px;border-radius:8px;background:#f3f8f8}#rosterDraftContent [data-preview-content] p{margin:6px 0;line-height:1.5}
#rosterDraftContent .builder-repeat-calendar{margin:8px 0;padding:9px 12px;border:1px solid #e0e9ed;border-radius:8px;background:#fbfcfd}
#rosterDraftContent .builder-repeat-calendar .row{margin:5px 0}#rosterDraftContent .builder-repeat-calendar button{padding:3px 10px;min-height:30px}#rosterDraftContent .builder-repeat-calendar .builder-hint{margin:6px 0 10px;font-size:11px}
#rosterDraftContent [data-date-grid]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}#rosterDraftContent [data-date-grid]>small{color:#6c7f8c;padding:4px}
#rosterDraftContent label.builder-date{position:relative;justify-content:center;border-radius:6px;min-height:34px;margin:0;background:#f2f5f6;color:#9aa8b0;cursor:default}
#rosterDraftContent label.builder-date.candidate{background:#e3f2ef;color:#236b70;cursor:pointer;font-weight:600}
#rosterDraftContent label.builder-date.conflict{background:#fbe9e9;color:#943a43}#rosterDraftContent label.builder-date.skipped{background:#f2f5f6;color:#82909a;text-decoration:line-through}
#rosterDraftContent .builder-date.candidate:not(.skipped):after{content:'✓';position:absolute;right:3px;top:1px;font-size:9px;pointer-events:none}
#rosterDraftContent .builder-date input[type=checkbox]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}#rosterDraftContent .builder-date:has(input:focus-visible){outline:2px solid #217c84;outline-offset:2px}
#rosterDraftContent .builder-more-actions{order:3;position:relative;color:#216d74}#rosterDraftContent .builder-more-actions>summary{display:flex;align-items:center;justify-content:center;cursor:pointer;list-style:none;width:32px;height:42px;border:1px solid #c5dadd;border-radius:7px;background:#f1f7f7}
#rosterDraftContent .builder-more-actions[open]>button{position:absolute;top:48px;right:0;z-index:20;white-space:nowrap;padding:12px 16px;background:white;box-shadow:0 8px 24px #14344922;color:#216d74;font-size:13px}
@media(max-width:600px){#rosterDraftContent .builder-setups{margin:10px 10px 0}#rosterDraftContent .builder-favorites{padding:10px 10px 0}#rosterDraftContent .builder-more-actions>summary{height:44px}#rosterDraftContent .builder-date{min-height:40px!important}}
/* Common work first; the full toolset remains in labelled disclosures. */
#rosterDraftContent nav.simple-roster-nav{display:flex;flex-wrap:wrap;overflow:visible;align-items:center;gap:5px;padding:5px;background:#edf3f4}
#rosterDraftContent .simple-roster-nav>button,#rosterDraftContent .simple-roster-nav>.roster-more>summary{min-height:40px;padding:9px 18px;font-size:13px;border-radius:8px}
#rosterDraftContent .roster-more{position:relative;margin-left:auto}
#rosterDraftContent :is(.roster-more,.roster-filter-menu,.roster-settings-menu,.shift-more-actions,.staff-shift-more,.note-more)>summary{list-style:none;cursor:pointer;color:#285868;font-weight:600;padding:10px 14px;border-radius:8px;background:#f2f6f7}
#rosterDraftContent :is(.roster-more,.roster-filter-menu,.roster-settings-menu,.shift-more-actions,.staff-shift-more,.note-more)>summary:after{content:'⌄';margin-left:9px}
#rosterDraftContent .roster-more-items,#rosterDraftContent .shift-more-actions[open],#rosterDraftContent .staff-shift-more[open],#rosterDraftContent .note-more[open]{background:white;border:1px solid #dbe6e9;border-radius:9px;box-shadow:0 8px 24px #183b4920;padding:6px}
#rosterDraftContent .roster-more-items{position:absolute;right:0;top:44px;z-index:35;min-width:210px;display:grid;gap:3px}
#rosterDraftContent .roster-more-items button{width:100%;text-align:left;padding:10px 12px;min-height:40px;white-space:normal}
#rosterDraftContent .roster-review-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
#rosterDraftContent .roster-review-tabs button{font-size:12px;padding:8px 12px;min-height:36px}
#rosterDraftContent .simple-calendar-fields{grid-template-columns:1fr 1fr 1.6fr auto;border-radius:10px;position:relative}
#rosterDraftContent .roster-filter-menu{align-self:end}
#rosterDraftContent .roster-filter-fields{position:absolute;top:100%;right:0;z-index:30;width:min(600px,100%);padding:16px;background:white;border:1px solid #dbe6e9;box-shadow:0 8px 24px #183b4920;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
#rosterDraftContent .roster-filter-fields label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:12px}
#rosterDraftContent .roster-settings-menu{margin:8px 0;font-size:12px}
#rosterDraftContent .roster-settings-menu>summary{display:inline-block;background:transparent;padding:8px 0}
#rosterDraftContent .roster-settings-menu .roster-drag-options{border-radius:8px;border-top:1px solid #dbe6e9}
#rosterDraftContent .roster-colour-help{font-size:11px;margin:8px 0;color:#5b727d}
#rosterDraftContent .roster-colour-help>summary{cursor:pointer}
#rosterDraftContent .shift-more-actions,#rosterDraftContent .staff-shift-more,#rosterDraftContent .note-more{position:relative;font-size:12px}
#rosterDraftContent :is(.shift-more-actions,.staff-shift-more,.note-more)>button{display:block;width:100%;margin:4px 0;text-align:left;min-height:40px}
#rosterDraftContent .staff-shift-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0 16px;position:sticky;top:0;z-index:8;background:#f5f8fa}
#rosterDraftContent .staff-shift-actions>button{flex:1;min-height:44px;padding:10px 12px;font-size:13px}
#rosterDraftContent .staff-shift-summary{padding:16px;margin-bottom:0}
#rosterDraftContent .staff-shift-summary h2{font-size:21px;margin:0 0 5px}
#rosterDraftContent .staff-shift-summary h3{font-size:13px;margin:12px 0 6px}
#rosterDraftContent .staff-shift-summary>p{font-size:13px;margin:6px 0}
#rosterDraftContent .shift-worker-details{font-size:12px;margin-top:8px}
#rosterDraftContent .compact-clock{padding:10px 14px;margin-bottom:10px}
#rosterDraftContent .compact-clock>h3{font-size:13px;margin:0 0 6px}
#rosterDraftContent .compact-clock .native-clock-position{padding:8px 0;margin:5px 0;border:0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px}
#rosterDraftContent .compact-clock .native-clock-position h4{font-size:12px;margin:0;grid-column:1}
#rosterDraftContent .compact-clock .native-clock-position>button{grid-column:2;grid-row:1/3;min-height:44px}
#rosterDraftContent .compact-clock .native-clock-position>p{grid-column:1/-1}
#rosterDraftContent .compact-clock .clock-times{grid-column:1;font-size:12px;color:#53727d}
#rosterDraftContent .compact-clock .clock-times p{font-size:12px}
#rosterDraftContent .compact-clock .clock-help{font-size:11px;color:#6a7c87}
#rosterDraftContent .compact-clock [data-clock-message]:empty{display:none}
#rosterDraftContent .simple-note-editor .note-actions{display:flex;align-items:start;gap:8px;margin-top:14px}
#rosterDraftContent .simple-note-editor .note-actions>[data-note-submit]{min-height:46px;flex:1;font-size:14px;font-weight:600}
#rosterDraftContent .simple-note-editor [data-note-message]{min-height:160px;max-height:40vh;font-size:16px}
#rosterDraftContent .simple-note-editor [data-note-photos]{margin:12px 0;padding:12px;border:1px solid #dbe6e9;border-radius:9px;background:#f9fbfc}
#rosterDraftContent .simple-note-editor [data-note-photos] h4{margin:0 0 6px;font-size:13px}
#rosterDraftContent .simple-note-editor [data-note-photos]>p{font-size:12px}
#rosterDraftContent [aria-label="My client shift notes"] [aria-pressed=true]{background:#207c86;color:white}
#rosterDraftContent [aria-label="My client shift notes"],#rosterDraftContent [data-mileage-editor],#rosterDraftContent [aria-label="Shift incidents"]{scroll-margin-top:100px}
@media(max-width:600px){
 #rosterDraftContent nav.simple-roster-nav{flex-wrap:wrap;overflow:visible;gap:3px}
 #rosterDraftContent .simple-roster-nav>button,#rosterDraftContent .simple-roster-nav>.roster-more>summary{padding:10px 11px;min-height:44px;font-size:12px}
 #rosterDraftContent .roster-more-items{max-width:calc(100vw - 44px)}
 #rosterDraftContent .simple-calendar-fields{grid-template-columns:1fr 1fr}
 #rosterDraftContent .simple-calendar-fields>label:has(#search){grid-column:1}
 #rosterDraftContent .roster-filter-fields{grid-template-columns:1fr}
 #rosterDraftContent .staff-shift-actions{gap:6px;display:grid;grid-template-columns:1fr 1fr}
 #rosterDraftContent .staff-shift-actions>button{font-size:12px;padding:10px 8px}
 #rosterDraftContent .staff-shift-more>summary{min-height:44px;text-align:center;box-sizing:border-box}
 #rosterDraftContent .staff-shift-summary .shift-summary-columns{gap:4px}
 #rosterDraftContent .compact-clock .clock-help{margin:4px 0}
}

/* The creation guide highlights existing controls without hiding features. */
#rosterDraftContent .sectioned-builder .builder-header:has(.builder-guide){flex-wrap:wrap;gap:8px 16px}
#rosterDraftContent .builder-guide{flex-basis:100%;min-width:0;border-top:1px solid #dce8e9;padding-top:10px;font-size:12px}
#rosterDraftContent .builder-guide-top,#rosterDraftContent .builder-guide-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}
#rosterDraftContent .builder-guide button{min-height:36px;padding:7px 11px;font-size:12px}
#rosterDraftContent .builder-guide-top button{border:0;background:transparent;color:#356b75}
#rosterDraftContent .builder-guide-steps{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
#rosterDraftContent .builder-guide-steps button{border:0;background:#f0f5f6;color:#536d78;flex:1;white-space:nowrap}
#rosterDraftContent .builder-guide-steps button[aria-current=step]{background:#d5eeeb;color:#155f68;font-weight:700;box-shadow:inset 0 -3px #25828a}
#rosterDraftContent .builder-guide-steps .guide-reviewed{color:#216e64}
#rosterDraftContent .builder-guide-bottom p{margin:0;max-width:65%;line-height:1.4;color:#536d78}
#rosterDraftContent .builder-guide-bottom>div{display:flex;gap:5px}
#rosterDraftContent [data-guide-error]{color:#a12e39;margin:6px 0 0}
#rosterDraftContent .builder-guide-highlight{outline:3px solid #2a9d9a!important;outline-offset:5px;box-shadow:0 0 0 8px #2a9d9a12;scroll-margin-top:300px}
#rosterDraftContent .builder-guide[hidden],#rosterDraftContent .builder-guide [hidden]{display:none!important}
@media(max-width:600px){#rosterDraftContent .builder-guide-steps{gap:3px}#rosterDraftContent .builder-guide-steps button{padding:6px 4px;font-size:11px;min-height:38px}#rosterDraftContent .builder-guide-bottom{align-items:flex-start}#rosterDraftContent .builder-guide-bottom p{font-size:11px;max-width:56%}#rosterDraftContent .builder-guide-bottom>div{flex-wrap:wrap;justify-content:flex-end}#rosterDraftContent .builder-guide button{min-height:40px}}

/* Staff shift: client notes first; optional records open on request. */
#rosterDraftContent .staff-notes-first{min-width:0}
#rosterDraftContent .staff-notes-first .panel{box-sizing:border-box;min-width:0;padding:12px;margin:0 0 10px;overflow-wrap:anywhere}
#rosterDraftContent .staff-notes-first .staff-shift-summary h2{font-size:19px;margin:0 0 3px}
#rosterDraftContent .staff-notes-first .staff-shift-summary p{font-size:12px;margin:5px 0;line-height:1.4}
#rosterDraftContent .staff-notes-first .staff-shift-summary h3{font-size:12px;margin:8px 0 4px}
#rosterDraftContent .staff-notes-first .staff-shift-summary .instructions{padding:8px;margin-bottom:0}
#rosterDraftContent .staff-notes-first ul{padding-left:18px;margin:5px 0;list-style-position:outside}
#rosterDraftContent .staff-notes-first li{margin:4px 0;overflow-wrap:anywhere}
#rosterDraftContent .staff-notes-first .shift-summary-columns{display:block}
#rosterDraftContent .staff-notes-first .shift-client-list{display:block;list-style:none;padding:0}
#rosterDraftContent .staff-notes-first .shift-client-list li{display:block;background:none;border:0;padding:4px 0}
#rosterDraftContent .staff-notes-first .staff-shift-actions{position:static;display:flex;gap:5px;padding:0 0 10px;background:transparent}
#rosterDraftContent .staff-notes-first .staff-shift-actions>button{min-height:38px;font-size:12px;padding:8px 10px;flex:1}
#rosterDraftContent .staff-notes-first .staff-shift-more>summary{min-height:38px;padding:8px 10px;font-size:12px}
#rosterDraftContent .staff-notes-first .staff-notes-back{flex-basis:100%!important;text-align:left;border:0;background:transparent;color:#276976}
#rosterDraftContent .staff-notes-first [hidden]{display:none!important}
#rosterDraftContent .staff-client-notes>h4{margin:0 0 8px;font-size:15px}
#rosterDraftContent .staff-client-notes [aria-label="Required client notes"]>p{display:none}
#rosterDraftContent .staff-client-notes [data-client-note-completion]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;font-size:11px}
#rosterDraftContent .staff-client-notes [data-client-note-completion]>p{margin:0;flex:1}
#rosterDraftContent .staff-client-notes [data-client-note-completion]>button{font-size:11px;min-height:32px;border:0;background:transparent;padding:5px}
#rosterDraftContent .staff-note-client-list{display:flex;flex-direction:column;gap:0;border:1px solid #dce6e9;border-radius:8px;overflow:hidden}
#rosterDraftContent .staff-note-client-list [data-my-note]{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:42px;margin:0;padding:10px;border:0;border-bottom:1px solid #e2eaed;border-radius:0;text-align:left;background:#fff;font-size:13px}
#rosterDraftContent .staff-note-client-list [data-my-note]:last-child{border-bottom:0}
#rosterDraftContent .staff-note-client-list small{font-size:11px;white-space:nowrap;color:#357981}
#rosterDraftContent .staff-note-client-list [aria-pressed=true] small{color:inherit}
#rosterDraftContent .staff-notes-first .simple-note-editor>h4{display:none}
#rosterDraftContent .staff-notes-first .simple-note-editor>p{font-size:12px;margin:6px 0}
#rosterDraftContent .staff-notes-first .simple-note-editor [data-note-message]{min-height:120px;max-height:32vh}
#rosterDraftContent .staff-notes-first [data-my-note-editor]>h4{font-size:13px;margin:12px 0 6px}
#rosterDraftContent .staff-notes-first .staff-optional-panel{border:1px solid #dce6e9;border-radius:9px;padding:12px;background:#fff}
#rosterDraftContent .staff-notes-first .staff-optional-panel>h4{margin-top:0}
#rosterDraftContent .staff-notes-first .optional-panel-back{margin-top:12px;min-height:36px}
#rosterDraftContent .staff-notes-first .compact-clock{padding:8px 12px}
#rosterDraftContent .staff-notes-first .compact-clock>h3{font-size:12px}

#rosterDraftContent .staff-notes-first .staff-note-client-list [data-my-note][aria-pressed=true]{background:#e3f2f0;color:#174f59;font-weight:600}
#rosterDraftContent .staff-notes-first .simple-note-editor [data-note-message]{height:140px}
#rosterDraftContent .shift-modal-body:has(.staff-notes-first) [data-native-clock]{padding:8px 12px;margin-bottom:8px}
#rosterDraftContent .shift-modal-body:has(.staff-notes-first) .compact-clock>h3{font-size:12px;margin:0 0 3px}
#rosterDraftContent .shift-modal-body:has(.staff-notes-first) .compact-clock .native-clock-position{margin:3px 0;padding:5px 0}
#rosterDraftContent .shift-modal-body:has(.staff-notes-first) .compact-clock .clock-help{font-size:10px;margin:0}

/* Optional entries expand in the same shift; notes remain mounted and visible. */
#rosterDraftContent .staff-notes-first .staff-optional-panel{position:relative}
#rosterDraftContent .staff-notes-first .optional-panel-close{float:right;min-height:36px;padding:5px 8px;border:0;background:transparent;font-size:12px}
#rosterDraftContent .staff-notes-first .staff-optional-panel>h3,#rosterDraftContent .staff-notes-first .staff-optional-panel>h4{margin:5px 0 10px;font-size:15px}
#rosterDraftContent .staff-notes-first .staff-shift-actions button[aria-expanded=true]{background:#e3f2f0;color:#17515b;border-color:#7fb9b9}
#rosterDraftContent .compact-shift-mileage .mileage-quick-form{padding:0;border:0;background:transparent;box-shadow:none;margin:0}
#rosterDraftContent .compact-shift-mileage .mileage-quick-form>h4{font-size:13px;margin:6px 0}
#rosterDraftContent .compact-shift-mileage .fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
#rosterDraftContent .compact-shift-mileage label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px}
#rosterDraftContent .compact-shift-mileage input:not([type=checkbox]),#rosterDraftContent .compact-shift-mileage select,#rosterDraftContent .compact-shift-mileage textarea{box-sizing:border-box;min-width:0;width:100%;max-width:100%;min-height:44px;font-size:16px;padding:9px 10px}
#rosterDraftContent .compact-shift-mileage textarea{height:66px;min-height:66px;resize:vertical}
#rosterDraftContent .compact-shift-mileage [name=distance_km]{font-weight:650}
#rosterDraftContent .compact-shift-mileage fieldset{box-sizing:border-box;min-width:0;width:100%;padding:9px 10px;border:1px solid #dce6e9;border-radius:8px;margin:10px 0}
#rosterDraftContent .compact-shift-mileage legend{font-size:12px;padding:0 4px}
#rosterDraftContent .compact-shift-mileage fieldset label{flex-direction:row;align-items:center;gap:8px;min-height:36px;margin:0;font-size:13px}
#rosterDraftContent .compact-shift-mileage fieldset input{flex:none;width:18px;height:18px}
#rosterDraftContent .compact-shift-mileage .mileage-client-help{font-size:11px;margin:5px 0 0;color:#56717a}
#rosterDraftContent .compact-shift-mileage [data-mileage-draft-status],#rosterDraftContent .compact-shift-mileage [data-mileage-message]{font-size:12px;line-height:1.4;margin:8px 0}
#rosterDraftContent .compact-shift-mileage [data-mileage-message]:empty{display:none}
#rosterDraftContent .compact-shift-mileage .mileage-quick-form>.row{display:flex;gap:8px;align-items:center;margin:8px 0}
#rosterDraftContent .compact-shift-mileage [data-mileage-submit]{flex:1;min-height:44px;font-size:14px}
#rosterDraftContent .compact-shift-mileage .mileage-context-help,#rosterDraftContent .compact-shift-mileage .mileage-form-options,#rosterDraftContent .compact-shift-mileage .mileage-saved-trips{font-size:11px;color:#526f7b}
#rosterDraftContent .compact-shift-mileage summary{cursor:pointer;min-height:28px;padding:5px 0;box-sizing:border-box}
#rosterDraftContent .compact-shift-mileage .mileage-saved-trips{margin-top:10px;padding-top:8px;border-top:1px solid #e0e9ed}
#rosterDraftContent .compact-shift-mileage .mileage-saved-trips .row{flex-wrap:wrap}
#rosterDraftContent .compact-shift-mileage .mileage-form-options[open]{padding:5px;border:1px solid #dce6e9;border-radius:7px}
@media(max-width:600px){#rosterDraftContent .compact-shift-mileage label:has(input[type=datetime-local]){grid-column:1/-1}#rosterDraftContent .compact-shift-mileage [data-trip] .row>button{min-height:44px}#rosterDraftContent .staff-notes-first .staff-shift-actions>button{min-height:44px}#rosterDraftContent .staff-notes-first .staff-shift-more>summary{min-height:44px}}

#rosterDraftContent .compact-shift-mileage label{text-align:left}
#rosterDraftContent .compact-shift-mileage .mileage-quick-form>.row{position:sticky;bottom:0;background:#fff;padding:8px 0 2px;z-index:3;border-top:1px solid #e3eaed}
@media(max-width:600px){#rosterDraftContent .compact-shift-mileage [name=distance_km]::-webkit-inner-spin-button{appearance:none}}

/* Dedicated coordinator phone roster and sick-call cover. */
#rosterDraftContent .coordinator-phone,#rosterDraftContent .phone-calendar-return,#rosterDraftContent .phone-cover-picker,#rosterDraftContent .cover-reason-chips,#rosterDraftContent .phone-cover-context{display:none}
@media(max-width:600px){
 #rosterDraftContent .coordinator-phone{display:block}#rosterDraftContent .coordinator-calendar{display:none}
 #rosterDraftContent .phone-calendar-selected .coordinator-phone{display:none}#rosterDraftContent .phone-calendar-selected .coordinator-calendar{display:block}#rosterDraftContent .phone-calendar-return{display:block;margin-bottom:10px}
 #rosterDraftContent .coordinator-phone button,#rosterDraftContent .coordinator-phone input,#rosterDraftContent .coordinator-phone select{min-height:44px;box-sizing:border-box}
 #rosterDraftContent .coordinator-phone input,#rosterDraftContent .coordinator-phone select{font-size:16px;min-width:0;width:100%}
 #rosterDraftContent .phone-roster-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:14px 0}
 #rosterDraftContent .phone-roster-heading h2{font-size:20px;margin:0}#rosterDraftContent .phone-roster-heading p{font-size:12px;margin:5px 0}
 #rosterDraftContent .phone-roster-heading button{font-size:12px;padding:8px 12px;white-space:nowrap}
 #rosterDraftContent .phone-date-row{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:end}
 #rosterDraftContent .coordinator-phone label{font-size:12px;display:flex;flex-direction:column;gap:4px;min-width:0}
 #rosterDraftContent .phone-roster-shortcuts{display:flex;gap:5px;margin:8px 0}#rosterDraftContent .phone-roster-shortcuts button{flex:1;font-size:11px;padding:6px 5px}
 #rosterDraftContent .phone-roster-filter{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:end;margin:10px 0}#rosterDraftContent .phone-roster-filter>label{grid-column:1/-1}
 #rosterDraftContent .coordinator-phone button[aria-pressed=true],#rosterDraftContent [data-cover-worker][aria-pressed=true]{background:#def0ed;color:#165664;border-color:#52a6a6}
 #rosterDraftContent .phone-shift-card{padding:12px;margin:10px 0;background:#fff;border:1px solid #dfe7eb;border-radius:10px}
 #rosterDraftContent .phone-shift-card.phone-sil{border-left:4px solid #27989a}
 #rosterDraftContent .phone-shift-card header,#rosterDraftContent .phone-worker{display:flex;align-items:center;justify-content:space-between;gap:8px}
 #rosterDraftContent .phone-shift-card header p{margin:4px 0;font-size:12px}#rosterDraftContent .phone-shift-card button{font-size:12px;padding:8px 10px;white-space:nowrap}
 #rosterDraftContent .phone-shift-clients{font-size:12px;color:#57717d;line-height:1.5}
 #rosterDraftContent .phone-worker{padding:10px 0;border-top:1px solid #e6ecef}#rosterDraftContent .phone-worker:last-child{padding-bottom:0}
 #rosterDraftContent .phone-worker strong{font-size:13px}#rosterDraftContent .phone-worker small{display:block;margin:3px 0;font-size:11px}
 #rosterDraftContent .phone-cover-warning{display:block;color:#a62e3c;font-size:11px}#rosterDraftContent .phone-status{font-size:12px;color:#91602a}
 #rosterDraftContent .phone-cover-edit>:not(.phone-cover-panel){display:none!important}#rosterDraftContent .shift-modal-body:has(.phone-cover-edit) [data-shift-clock]{display:none}
 #rosterDraftContent .phone-cover-panel{padding:12px;margin:0}#rosterDraftContent .phone-cover-panel h3{font-size:18px;margin:8px 0}
 #rosterDraftContent .phone-cover-context{display:block;font-size:12px;line-height:1.5;color:#486a79}
 #rosterDraftContent .phone-cover-form>label{display:flex;flex-direction:column;gap:5px;margin:10px 0;font-size:12px}
 #rosterDraftContent .phone-cover-form input,#rosterDraftContent .phone-cover-form select,#rosterDraftContent .phone-cover-form textarea{width:100%;min-width:0;box-sizing:border-box;font-size:16px;min-height:44px}
 #rosterDraftContent .phone-cover-form textarea{height:70px;min-height:70px}
 #rosterDraftContent .phone-cover-picker{display:block;margin:12px 0}#rosterDraftContent .phone-cover-form.cover-advice-ready>label:has(select[name=staffId]){display:none}
 #rosterDraftContent .phone-cover-picker>p{font-size:11px;margin:6px 0}#rosterDraftContent .phone-cover-picker label{display:flex;flex-direction:column;gap:5px;font-size:12px}
 #rosterDraftContent [data-cover-candidates]{display:grid;gap:5px;max-height:260px;overflow:auto}
 #rosterDraftContent [data-cover-worker]{display:flex;flex-direction:column;text-align:left;gap:3px;padding:10px;min-height:50px;font-size:13px}
 #rosterDraftContent [data-cover-worker] small,#rosterDraftContent [data-cover-worker] span{font-size:11px}#rosterDraftContent [data-cover-worker]:disabled{opacity:.65}
 #rosterDraftContent [data-cover-vacant]{margin:8px 0;min-height:44px;width:100%}
 #rosterDraftContent .cover-reason-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}#rosterDraftContent .cover-reason-chips button{min-height:38px;padding:6px 8px;font-size:11px}
 #rosterDraftContent .phone-cover-form>button[type=submit]{width:100%;min-height:46px;position:sticky;bottom:0;z-index:3}
 #rosterDraftContent .phone-cover-form [data-discard-cover]{width:100%;min-height:40px;margin-top:6px}
}

@media(max-width:600px){
 #roster main:has(.coordinator-phone) .page-header{display:none}
 #roster [aria-label="Local preview controls"]{padding:8px!important;margin:6px 0 10px!important;font-size:11px}
 #roster [aria-label="Local preview controls"] label{margin:5px 0!important}
 #rosterDraftContent .coordinator-phone label,#rosterDraftContent .phone-cover-form label{text-align:left}
 #rosterDraftContent .phone-cover-form>button[type=submit]{background:#236f78;color:white;border-color:#236f78}
}

@media(max-width:600px){
 #rosterDraftContent .coordinator-phone label{margin:0!important}
 #rosterDraftContent .phone-label{display:none}
 #rosterDraftContent .phone-roster-search{display:block}
 #rosterDraftContent .phone-house-filter{grid-column:1/-1;border:0;padding:0;margin:0}
 #rosterDraftContent .phone-house-filter summary{font-size:12px;min-height:32px;padding:8px 2px;cursor:pointer}
 #rosterDraftContent .phone-roster-filter{margin:8px 0 2px}
 #rosterDraftContent .cover-reason-chips button{min-height:44px}
}
#rosterDraftContent [data-trial-panel]{max-width:680px;padding:24px;border-radius:18px;box-shadow:0 4px 18px #17394a06}
#rosterDraftContent .trial-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;padding:0;color:inherit}
#rosterDraftContent .trial-heading h2{font-size:22px;margin:4px 0 0;line-height:1.25}
#rosterDraftContent .trial-eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal,#2a7d8c)}
#rosterDraftContent .trial-count{flex:none;border-radius:20px;background:#eaf3f3;color:#285868;padding:6px 11px;font-size:12px;font-weight:600}
#rosterDraftContent .trial-intro{font-size:14px;color:#526778;margin:12px 0 20px;line-height:1.5}
#rosterDraftContent .trial-search{display:flex;flex-direction:column;align-items:stretch;gap:7px;font-size:12px;font-weight:600;margin-bottom:14px}
#rosterDraftContent .trial-search input{width:100%;max-width:100%;box-sizing:border-box;font-size:16px;font-weight:400;background:#f7f9fa;border-color:#dfe7ea;border-radius:11px}
#rosterDraftContent .trial-list{display:grid;gap:5px}
#rosterDraftContent .trial-person{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;padding:10px 12px;min-height:60px;margin:0;border:1px solid transparent;border-radius:11px;box-sizing:border-box}
#rosterDraftContent label.trial-person{cursor:pointer;background:#f7f9fa}
#rosterDraftContent label.trial-person:hover{background:#eef4f5}
#rosterDraftContent .trial-person.is-selected{background:#eaf4f3;border-color:#bed9d8}
#rosterDraftContent .trial-person input[type=checkbox]{appearance:auto;accent-color:var(--teal,#2a7d8c);width:19px;height:19px;min-height:19px;margin:0;padding:0;flex:none;cursor:pointer}
#rosterDraftContent .trial-person-name{flex:1;min-width:0;overflow-wrap:anywhere}
#rosterDraftContent .trial-person strong{font-size:14px;font-weight:600;line-height:1.35}
#rosterDraftContent .trial-person small{display:block;color:#607482;font-size:12px;margin-top:2px}
#rosterDraftContent .trial-automatic{padding-block:8px;min-height:52px}
#rosterDraftContent .trial-fixed{font-size:11px;color:#607482;flex:none}
#rosterDraftContent label.trial-person.is-unavailable{background:transparent;color:#687b87;cursor:default}
#rosterDraftContent .trial-footer{padding:16px 0 0;margin-top:16px;border-top:1px solid #e5ebee;background:none;text-align:left}
#rosterDraftContent [data-trial-status]{font-size:12px;color:#526778;margin:0 0 12px;line-height:1.5}
#rosterDraftContent .trial-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#rosterDraftContent .trial-actions button{font-size:13px;font-weight:500;border-radius:10px}
#rosterDraftContent .trial-actions .primary{padding-inline:22px}
#rosterDraftContent .trial-actions .trial-reload{margin-left:auto;background:transparent;border-color:transparent;color:#526778;font-size:12px;padding-inline:6px}
#rosterDraftContent .trial-help{margin-top:14px;font-size:12px;color:#526778}
#rosterDraftContent .trial-help summary{cursor:pointer;padding:7px 0;font-weight:500}
#rosterDraftContent .trial-help p{line-height:1.6;margin:8px 0 0}
#rosterDraftContent .trial-empty{padding:20px 10px;text-align:center;color:#607482;font-size:14px}
@media(max-width:600px){#rosterDraftContent [data-trial-panel]{padding:16px;border-radius:14px}#rosterDraftContent .trial-heading h2{font-size:20px}#rosterDraftContent .trial-count{font-size:11px;padding:6px 9px}#rosterDraftContent .trial-person{padding:9px 10px}#rosterDraftContent .trial-person strong{font-size:13px}#rosterDraftContent .trial-fixed{font-size:10px}#rosterDraftContent .trial-actions{gap:6px}#rosterDraftContent .trial-actions button{padding:10px 12px}#rosterDraftContent .trial-actions .primary{flex:1;padding-inline:14px}#rosterDraftContent .trial-actions .trial-reload{padding-inline:4px}}
#rosterDraftContent .shift-typed-time{min-width:0;display:flex;flex-direction:column;gap:6px}
#rosterDraftContent .shift-time-label{font-size:13px;color:#365469}
#rosterDraftContent .shift-time-inputs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#rosterDraftContent .shift-time-inputs>input{flex:1;min-width:80px;width:80px;font-size:16px}
#rosterDraftContent .shift-time-period{display:flex;gap:0}
#rosterDraftContent .shift-time-period button{min-width:44px;min-height:44px;font-size:12px;padding:8px;border-radius:0}
#rosterDraftContent .shift-time-period button:first-child{border-radius:10px 0 0 10px}
#rosterDraftContent .shift-time-period button:last-child{border-radius:0 10px 10px 0}
#rosterDraftContent .shift-time-period [aria-pressed=true]{background:#e3f0f0;border-color:#8ebdbf;color:#185d69}
#rosterDraftContent .shift-time-error{font-size:12px;color:#993746;line-height:1.4}
#rosterDraftContent .mileage-shift-date{display:block;font-size:12px;color:#607482;margin:0 0 12px}
#rosterDraftContent .mileage-quick-form fieldset{display:flex;flex-wrap:wrap;gap:6px 14px;border:0;padding:0;margin:10px 0}
#rosterDraftContent .mileage-quick-form fieldset label{min-height:44px;margin:0;font-size:13px}
#rosterDraftContent .mileage-quick-form input[type=checkbox]{min-height:19px;width:19px;height:19px;padding:0;accent-color:var(--teal,#2a7d8c)}
#rosterDraftContent .incident-quick-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(132px,.8fr);gap:12px;max-width:720px}
#rosterDraftContent .incident-quick-form>*,#rosterDraftContent .incident-extra-details>*{min-width:0;box-sizing:border-box}
#rosterDraftContent .incident-quick-form>*{grid-column:1/-1;margin:0}
#rosterDraftContent .incident-quick-form>label:has([name=type_label]),#rosterDraftContent .incident-quick-form>label:has([name=severity]){grid-column:auto}
#rosterDraftContent .incident-quick-form label{font-size:13px;line-height:1.4}
#rosterDraftContent .incident-quick-form input,#rosterDraftContent .incident-quick-form select,#rosterDraftContent .incident-quick-form textarea{max-width:100%;width:100%;box-sizing:border-box;font-size:16px}
#rosterDraftContent .incident-quick-form textarea{min-height:76px;resize:vertical}
#rosterDraftContent .incident-extra-details{border-top:1px solid #e3e9ed;padding-top:4px}
#rosterDraftContent .incident-extra-details summary{cursor:pointer;font-size:13px;color:#526778;padding:10px 0;min-height:44px;box-sizing:border-box}
#rosterDraftContent .incident-extra-details label{margin:8px 0}
#rosterDraftContent [data-incident-context],#rosterDraftContent .incident-date-hint{font-size:12px;color:#607482;line-height:1.5;margin:0 0 12px;display:block}
#rosterDraftContent [data-incident-reload],#rosterDraftContent [data-incident-close]{background:transparent;border-color:transparent;font-size:12px}
#rosterDraftContent [data-incident-status]:empty,#rosterDraftContent .incident-date-hint:empty,#rosterDraftContent [data-incident-recovery]:empty{display:none}

/* Compact shift editor, retaining every control and its validation. */
#rosterDraftContent .sectioned-builder .builder-header{padding:12px 16px}
#rosterDraftContent .builder-eyebrow{display:none}
#rosterDraftContent .sectioned-builder .builder-main-grid{gap:12px;padding:14px}
#rosterDraftContent .builder-column{gap:12px}
#rosterDraftContent .builder-card{padding:12px 14px;box-shadow:none}
#rosterDraftContent #editor.sectioned-builder .builder-card>h2{margin-bottom:9px;padding-bottom:8px}
#rosterDraftContent .builder-hint:empty{display:none}
#rosterDraftContent .builder-guide-highlight{outline-width:2px!important;outline-offset:2px;box-shadow:none}
#rosterDraftContent .builder-guide-instructions{font-weight:600}
#rosterDraftContent .builder-guide-instructions>summary{cursor:pointer;min-height:44px;align-content:center}
#rosterDraftContent .builder-guide-instructions>p{font-weight:400;color:var(--muted,#526778);line-height:1.5;max-width:480px}
@media(min-width:1051px){#rosterDraftContent .builder-time-card{grid-row:span 2}#rosterDraftContent .builder-staff-preview{grid-column:2}}
@media(max-width:650px){
 #rosterDraftContent .sectioned-builder .builder-main-grid{display:flex;flex-direction:column;padding:10px;gap:10px}
 #rosterDraftContent .builder-column{display:contents}
 #rosterDraftContent .builder-clients-card{order:1}
 #rosterDraftContent .builder-staff-card{order:2}
 #rosterDraftContent .builder-details-card{order:3}
 #rosterDraftContent .builder-instructions-card{order:4}
 #rosterDraftContent .builder-time-card{order:5}
 #rosterDraftContent .builder-review,#rosterDraftContent .builder-main-grid .series-scope{order:6}
 #rosterDraftContent .builder-staff-preview{order:7}
 #rosterDraftContent .builder-surface{padding-bottom:90px}
 #rosterDraftContent .sectioned-builder .builder-header{position:sticky;top:calc(60px + env(safe-area-inset-top));padding:10px;gap:6px;background:var(--card,#fff)}
 #rosterDraftContent .builder-heading h1{font-size:19px;margin:0}
 #rosterDraftContent .sectioned-builder .builder-footer{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom));left:0;right:0;width:auto;padding:9px 12px;margin:0;z-index:35;background:var(--card,#fff);border-top:1px solid var(--border,#dfe7ea);box-shadow:0 -3px 16px #17394a10;flex-wrap:nowrap;justify-content:flex-end}
 #rosterDraftContent .sectioned-builder .builder-footer button{min-height:44px;white-space:nowrap}
 #rosterDraftContent .builder-guide{padding-top:5px;display:grid;grid-template-columns:1fr;gap:3px}
 #rosterDraftContent .builder-guide-top{gap:4px}
 #rosterDraftContent .builder-guide-top strong{font-size:12px}
 #rosterDraftContent .builder-guide .builder-guide-steps{display:none}
 #rosterDraftContent .builder-guide-bottom{justify-content:flex-end}
 #rosterDraftContent .builder-guide-bottom>p{display:none}
 #rosterDraftContent .builder-guide button{min-height:44px}
 #rosterDraftContent .builder-guide-bottom>div{flex-wrap:nowrap}
 #rosterDraftContent .builder-card{padding:10px}
 #rosterDraftContent .sectioned-builder .builder-setting{grid-template-columns:1fr;gap:5px}
 #rosterDraftContent .builder-more-actions[open]>button{top:auto;bottom:48px}
}

/* Per-client task controls stay compact while making the requirement explicit. */
#rosterDraftContent .builder-task-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);gap:10px 12px;padding:14px 0;border-bottom:1px solid #e3eae7;align-items:start}
#rosterDraftContent #editor .builder-task-row>label:not(.builder-task-required){display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;margin:0;font-size:12px;line-height:18px}
#rosterDraftContent #editor .builder-task-row>label:not(.builder-task-required)>input,#rosterDraftContent #editor .builder-task-row>label>select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:48px;min-height:48px;margin:0;padding:10px 12px;font-size:14px;line-height:20px}
#rosterDraftContent #editor .builder-task-required{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:44px;margin:0}
#rosterDraftContent #editor .builder-task-required input[type=checkbox]{appearance:none;-webkit-appearance:none;box-sizing:border-box;position:relative;flex:0 0 40px;width:40px;min-width:40px;max-width:40px;height:24px;min-height:24px;max-height:24px;padding:0;margin:0;border:1px solid #a6b9b4;border-radius:20px;background:#dde7e4;cursor:pointer}
#rosterDraftContent #editor .builder-task-required input::after{content:'';position:absolute;width:18px;height:18px;top:2px;left:2px;border-radius:50%;background:white;box-shadow:0 1px 3px #17394a40;transition:transform .12s ease}
#rosterDraftContent #editor .builder-task-required input:checked{background:#087f80;border-color:#087f80}
#rosterDraftContent #editor .builder-task-required input:checked::after{transform:translateX(16px)}
#rosterDraftContent #editor .builder-task-required input:focus-visible{outline:2px solid #087f80;outline-offset:3px}
#rosterDraftContent .builder-task-row>button{justify-self:end;min-height:44px}
@media(max-width:650px){#rosterDraftContent .builder-task-row{grid-template-columns:minmax(0,1fr) auto;gap:12px}#rosterDraftContent .builder-task-row>label:not(.builder-task-required){grid-column:1/-1}#rosterDraftContent #editor .builder-task-row>label:not(.builder-task-required)>input,#rosterDraftContent #editor .builder-task-row>label>select{font-size:16px}}

#rosterDraftContent .builder-task-added-heading{font-weight:600;font-size:12px;margin:14px 0 8px}
#rosterDraftContent .builder-task-added-heading span{display:inline-block;border-radius:12px;background:#eaf4f3;padding:2px 7px;margin-left:4px}
#rosterDraftContent .builder-added-task{border:1px solid #dce8e4;border-radius:8px;margin:8px 0;background:#f7faf9;overflow-wrap:anywhere;min-width:0}
#rosterDraftContent .builder-added-task>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;cursor:pointer;min-height:44px;box-sizing:border-box;list-style:none}
#rosterDraftContent .builder-added-task summary small{display:block;margin-top:4px;font-size:11px;color:#60756f;font-weight:400}
#rosterDraftContent .builder-task-edit-hint{font-size:12px;color:#247f85;flex-shrink:0}
#rosterDraftContent .builder-added-task .builder-task-row{padding:12px;margin:0;border-top:1px solid #dce8e4;border-bottom:0}
#rosterDraftContent #editor .builder-task-entry>button.primary{min-height:44px;min-width:88px;padding:10px 14px;white-space:nowrap;background:#216f78;color:#fff;border-color:#216f78}

.builder-task-presets{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 0;border-bottom:1px solid #e3eae7}
#rosterDraftContent #editor .builder-task-presets label{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin:0;min-width:0}
#rosterDraftContent .builder-task-presets select{width:100%;box-sizing:border-box;min-height:44px}
#rosterDraftContent .builder-task-presets button{min-height:44px;align-self:end;font-size:12px;padding:8px 10px}
.builder-task-presets small,.builder-task-presets p{grid-column:1/-1;font-size:11px;margin:0;color:#617984}.builder-task-presets p:empty{display:none}
.builder-task-presets .builder-remove-preset{background:transparent;border:0;justify-self:end}.builder-save-task-preset{grid-column:1/-1;font-size:12px;justify-self:start!important}
#rosterDraftContent .builder-task-entry>[data-save-preset]{grid-column:1/-1;justify-self:start;border:0;background:transparent;color:#216f78;padding:4px 0;min-height:32px;font-size:12px}
.builder-task-presets [hidden]{display:none!important}
#rosterDraftContent .builder-duration{position:relative;margin-left:auto;font-weight:400}
#rosterDraftContent .builder-duration summary{list-style:none;cursor:help;font-size:16px;min-width:32px;min-height:32px;display:grid;place-items:center;color:#216f78}
#rosterDraftContent .builder-duration span{position:absolute;right:0;top:36px;z-index:30;width:240px;max-width:70vw;padding:12px;background:#173c50;color:white;font-size:12px;line-height:1.5;border-radius:8px;box-shadow:0 6px 20px #173c5026}
.builder-restore-banner{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#edf6f2;padding:10px 12px;border-radius:9px;margin:12px 0;font-size:13px}.builder-restore-banner span{flex:1}
.roster-empty-create{cursor:pointer}.roster-empty-create:hover::after,.roster-empty-create:focus-visible::after{content:'+ Create shift';font-size:12px;color:#216f78;align-self:center;margin:auto}
.builder-conflicts details{margin:10px 0}.builder-conflicts details p{margin:6px 0;font-size:12px}
@media(max-width:450px){.builder-task-presets{grid-template-columns:1fr 1fr}.builder-task-presets>label{grid-column:1/-1}}

/* Repeat settings follow the order managers make the decisions. */
#rosterDraftContent .builder-repeat-section{margin:18px 0;padding-top:16px;border-top:1px solid #dde7e5;min-width:0}#rosterDraftContent .builder-repeat-section h3{font-size:15px;margin:0 0 6px;color:#173b38}#rosterDraftContent .sectioned-builder .builder-repeat-fields{border:0;padding:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0}#rosterDraftContent .builder-repeat-weekdays{gap:6px;margin:10px 0 14px;flex-wrap:wrap}#rosterDraftContent .builder-repeat-weekdays>strong{flex-basis:100%;font-size:12px}#rosterDraftContent .builder-repeat-weekdays label{display:flex;align-items:center;gap:5px;border:1px solid #dbe5e1;border-radius:7px;padding:8px;margin:0;min-height:40px;box-sizing:border-box}#rosterDraftContent .builder-repeat-weekdays label:has(:checked){background:#eef7f2;border-color:#7aa998}#rosterDraftContent .builder-repeat-end{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,1fr);gap:10px;align-items:center;margin:12px 0}#rosterDraftContent .builder-repeat-end small{font-size:11px;color:#60756f;line-height:1.5}#rosterDraftContent .builder-repeat-summary{background:#f0f6f3;border-radius:9px;padding:12px;margin:12px 0;font-size:12px;line-height:1.55}#rosterDraftContent .builder-repeat-summary p{margin:4px 0 0}#rosterDraftContent .builder-repeat-summary.has-error{background:#fff0ee;color:#992f36}#rosterDraftContent .builder-repeat-section [hidden]{display:none!important}#rosterDraftContent .builder-repeat-section .monthly-options{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){#rosterDraftContent .builder-repeat-weekdays label{min-height:44px}#rosterDraftContent .builder-repeat-end{grid-template-columns:minmax(0,1fr)}#rosterDraftContent .builder-repeat-section .builder-repeat-fields{grid-template-columns:minmax(0,1fr)}}
