.overview-table th:first-child{width:24%}.overview-table th.dayhead{width:19%}
.overview-table td:nth-child(2),.overview-table th:nth-child(2){position:static;box-shadow:none}
.overview-table .date-link{width:100%;min-height:36px;color:var(--text)}
.overview-table .date-link:hover{color:var(--green)}
.daily-table th:first-child{width:19%}.daily-table th:nth-child(2){width:29%}.daily-table th.rate-column{width:17%}.daily-table th:nth-child(4){width:16%}.daily-table th:nth-child(5){width:19%}
.daily-table td{height:50px}.daily-table td:nth-child(2){white-space:normal}
.daily-person{max-width:100%;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;padding:10px 0;vertical-align:middle}
.daily-table .driver{margin-left:5px}.daily-rate{font-size:12px;min-height:40px;white-space:nowrap;padding:0}
.daily-status{display:inline-block;font-size:11px}.daily-status.staffed{color:#c5e8cd}.daily-status.unfilled{color:#c2cdc4}
.daily-approval{font-size:11px;min-height:40px;text-align:left;padding:0}.daily-approval.requested{color:#f3ce80}.daily-approval.approved{color:#abc9b5}
#backOverview{font-size:11px;padding:8px 10px;margin-right:10px}#backOverview[hidden]{display:none}.toolbar>div{flex:1}
.daytabs{padding:0 16px 12px;gap:6px}.daytabs button{padding:8px 14px;border-radius:5px;font-size:12px}.daytabs .selected{background:var(--green);color:#122619}
@media(max-width:650px){
 .overview-table th:first-child{width:24%}.overview-table th.dayhead{width:19%}
 .overview-table .coverage-label{font-size:10px}.overview-table .cell.coverage-booked .coverage-label{font-size:10px}.overview-table .cell.coverage-booked .coverage-label:before{content:none}
 .daily-table th:first-child{width:18%}.daily-table th:nth-child(2){width:27%}.daily-table th.rate-column{width:18%}.daily-table th:nth-child(4){width:15%}.daily-table th:nth-child(5){width:22%}
 .daily-person,.daily-rate,.daily-approval,.daily-status{font-size:10px}.daily-table th{font-size:9px;letter-spacing:0}.daily-table td{padding:0 4px}
 .toolbar{flex-wrap:wrap;gap:9px}.toolbar h2{font-size:13px}#backOverview{font-size:10px;margin-right:0}.toolbar .primary{font-size:10px;padding:8px}
 .daytabs{padding:0 12px 12px}.daytabs button{font-size:11px;padding:8px 5px;flex:1}
}

.vehicle-row{border-top:1px solid #516052}.vehicle-row button{white-space:normal;font-size:11px;text-align:left;max-width:100%}.vehicle-coverage{color:#abc9b5;padding:10px 2px}.vehicle-coverage.needs-driver{color:#f3ce80}.vehicle-fields{border:1px solid #516052;border-radius:6px;padding:12px;margin:12px 0}.vehicle-row small{color:#acb9ad}@media(max-width:650px){.vehicle-row button{font-size:9px}}

.driver-toggle{font-size:11px;min-height:40px;padding:4px 2px;color:#aab7ad;white-space:nowrap}.driver-toggle.selected{color:#c5e8cd;font-weight:600}.driver-toggle:hover{color:#fff}.driver-toggle:focus-visible{outline:2px solid #c5e8cd;outline-offset:1px}@media(max-width:650px){.driver-toggle{font-size:10px}}

#addRole[hidden]{display:none}#editMode{white-space:nowrap;font-size:11px}#editMode[aria-pressed="true"]{border-color:#a6c7ad;color:#c5e8cd}

.overview-table .cell{flex-direction:column;gap:2px}.overview-table .coverage-person{display:block;font-size:10px;line-height:1.2;font-weight:400;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b9d5c1}.overview-table .cell .request-marker{position:absolute;right:4px;top:3px}@media(max-width:650px){.overview-table .coverage-person{font-size:9px}}

/* Production requests stay distinct even with a crew assignment. */
.overview-table .cell.pending-approval{border:1px dashed #df9a47;background:#392b1d;color:#ffd49b;box-shadow:none;padding-top:6px}
.overview-table .cell.pending-approval .coverage-person{color:#e8c69e}
.stats .stat:nth-child(3) strong{color:#efab59}
.legend .request-swatch{border:1px dashed #df9a47;background:#392b1d}
.overview-table .coverage-person{width:100%;min-width:0;text-overflow:clip}
.coverage-name-text{display:inline-block;white-space:nowrap;max-width:none}
.scrolling-name{text-align:left}
.scrolling-name .coverage-name-text{animation:crew-name-pan var(--name-duration,6s) ease-in-out infinite alternate}
@keyframes crew-name-pan{0%,20%{transform:translateX(0)}80%,100%{transform:translateX(var(--name-travel,0px))}}
@media(prefers-reduced-motion:reduce){.scrolling-name .coverage-name-text{animation:none}.overview-table .coverage-person.scrolling-name{overflow-x:auto}}

.overview-table .cell.pending-approval .coverage-label{white-space:normal;font-size:11px;line-height:1.2}.overview-table .cell.pending-approval .coverage-label:before{content:none}@media(max-width:650px){.overview-table .cell.pending-approval .coverage-label{font-size:9px}}

.overview-table .cell.pending-approval .coverage-label{white-space:nowrap}
.overview-table .coverage-person{text-align:left;overflow:hidden}
.coverage-person .coverage-name-text{display:flex;width:max-content;animation:crew-name-loop var(--name-duration,12s) linear infinite}
.name-loop-group{display:flex;flex:none;min-width:var(--name-width,0px);justify-content:space-around}
.name-loop-group>span{display:block;padding-right:20px;flex:none}
.name-loop-group .name-repeat{opacity:.65}
@keyframes crew-name-loop{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.coverage-person .coverage-name-text{animation:none}.name-loop-group:nth-child(2),.name-loop-group .name-repeat{display:none}.overview-table .coverage-person{overflow-x:auto}}

.daily-table tr.needs-crew-row td{background:#293529;border-top:1px dashed #81966b;border-bottom:1px dashed #81966b}
.daily-table tr.needs-crew-row td:first-child{border-left:3px solid #a8c083}
.daily-table tr.needs-crew-row td:last-child{border-right:1px dashed #81966b}
.daily-table tr.needs-crew-row .daily-person{color:#d6e8b9;font-weight:650}
.daily-table tr.needs-crew-row:hover td{background:#33422f}

.overview-table th.dayhead{width:var(--day-width,19%)}
.scenario-picker{display:flex;gap:10px;align-items:center;margin:0 0 16px;font-size:12px;color:#b4c0b7;flex-wrap:wrap}.scenario-picker select{background:#1b261f;color:#dce8df;border:1px solid #526557;border-radius:5px;padding:8px}
#weekNavigation{padding:0 16px 12px}#weekNavigation[hidden]{display:none}.week-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;margin-bottom:8px}.week-controls button{padding:8px}.week-controls button:disabled{opacity:.35;cursor:default}.week-summary{display:flex;flex-wrap:wrap;gap:6px}.week-summary button{flex:1 1 100px;min-width:0;text-align:left;border:1px solid #46584b;border-radius:5px;padding:8px;color:#b6c4ba;background:#17221b}.week-summary button[aria-pressed="true"]{border-color:#9bbc82;background:#2a392b}.week-summary b,.week-summary small{display:block}.week-summary small{font-size:10px;margin-top:3px;white-space:normal}
@media(max-width:650px){.overview-table th.dayhead{width:var(--day-width,19%)}#weekNavigation{padding:0 10px 10px}.week-controls{font-size:10px}.week-summary button{padding:6px}.week-summary small{font-size:9px}}

.overview-table.weekly-table th.dayhead{width:14.2857%}.weekly-table .role-heading th{width:auto!important;text-align:left;padding:6px 8px;background:#1b261f;height:auto;position:static;box-shadow:none}.weekly-table .role-heading .rolebutton{padding:3px 0;min-height:28px;justify-content:flex-start;gap:8px}.weekly-table .inactive-day{background:#131b16}.weekly-table .date-link:disabled{opacity:.45;cursor:default}.daytabs button:disabled{opacity:.4;cursor:default}
@media(max-width:650px){.overview-table.weekly-table th.dayhead{width:14.2857%}.weekly-table th.dayhead{padding:5px 1px}.weekly-table .cell .coverage-label,.weekly-table .cell.pending-approval .coverage-label{font-size:8px}.weekly-table td.daycell{padding:2px 1px}}

.job-day-field{display:flex;align-items:center;gap:6px;margin:8px 0}.job-day-field input,.job-day-field select{min-width:0;padding:8px;border:1px solid #526557;background:#17221b;color:#dce8df;border-radius:4px}.job-day-field input{flex:1}.job-day-field select{width:90px}.job-day-field button{font-size:11px}#jobDateDetails{margin:12px 0}

.dark-day-button{width:100%;min-height:44px;color:#718575;font-size:15px}.dark-day-button:hover,.dark-day-button:focus-visible{background:#233328;color:#c5e8cd}.weekly-table .date-link{cursor:pointer}

select.daily-approval{width:100%;min-width:0;max-width:100%;border:1px solid #4a5c4e;border-radius:4px;background:#1b261f;padding:4px 2px;cursor:pointer}select.daily-approval option{background:#1b261f;color:#dce8df}@media(max-width:650px){select.daily-approval{font-size:9px}}

.date-view-toggle{display:flex;gap:6px;margin:10px 0}.date-view-toggle button{padding:8px 14px;border:1px solid #4a5c4e;border-radius:5px}.date-view-toggle button[aria-pressed="true"]{background:#30452f;color:#d9eccb;border-color:#9bbc82}.month-navigation{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.month-navigation button{padding:8px 14px}.job-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.job-month-grid>small{text-align:center;font-size:10px;color:#aab9ae;padding:5px 0}.job-calendar-day{min-width:0;min-height:50px;border:1px solid #36463a;border-radius:5px;background:#18231c;color:#a9b8ad;padding:5px 1px}.job-calendar-day small{display:block;font-size:9px;margin-top:3px}.job-calendar-day[aria-pressed="true"]{background:#304a33;border-color:#95b47e;color:#e3efd9}.job-calendar-day:hover{border-color:#d0dfa8}#jobDayFields[hidden],#jobDateCalendar[hidden],#addJobDay[hidden]{display:none}

/* Compact role labels between weekly day rows. */
.overview-table.weekly-table .role-heading th{padding:1px 6px;height:auto;line-height:1.1}
.weekly-table .role-heading .rolebutton{min-height:22px;height:auto;padding:2px 0;font-size:11px;line-height:1.1}
.weekly-table .role-heading button[data-vehicles]{min-height:22px;padding:2px 0;font-size:11px;line-height:1.1}

.week-summary button.week-needs-attention{border:1px dashed #df9a47;background:#30261b}
.week-summary button.week-needs-attention[aria-pressed="true"]{border-color:#f4b568;background:#40301f;box-shadow:inset 0 0 0 1px #df9a47}

.job-calendar-cell{min-width:0;border:1px solid #36463a;border-radius:5px;background:#18231c;overflow:hidden}.job-calendar-cell.selected{background:#304a33;border-color:#95b47e}.job-calendar-cell .job-calendar-day{width:100%;border:0;border-radius:0;min-height:32px;background:transparent}.job-calendar-cell:not(.selected) .job-calendar-day{min-height:56px}.calendar-day-type{display:block;width:100%;min-width:0;max-width:100%;font-size:10px;padding:4px 0;background:#263e29;color:#e3efd9;border:0;border-top:1px solid #526b45;border-radius:0;cursor:pointer}.calendar-day-type:focus-visible{outline:2px solid #d8ebaf;outline-offset:-2px}

/* Shared status colors: green for coverage, orange for approval/conflicts. */
.overview-table .cell.coverage-open:not(.pending-approval){border:1px dashed #94b878;background:#233225;box-shadow:none;color:#d6e8b9}
.week-summary button.week-needs-crew{border:1px dashed #94b878;background:#233225}
.week-summary button.week-needs-crew[aria-pressed="true"]{border-color:#b6d999;background:#30432c;box-shadow:inset 0 0 0 1px #94b878}
.vehicle-coverage.needs-driver{border:1px dashed #94b878;border-radius:4px;background:#233225;color:#d6e8b9}
.daily-table tr.needs-crew-row td{border-top:1px dashed #94b878;border-bottom:1px dashed #94b878}
.daily-table tr.needs-crew-row td:first-child{border-left:1px dashed #94b878}
.daily-table tr.needs-crew-row td:last-child{border-right:1px dashed #94b878}
.daily-table tr.attention-row td{background:#392b1d;border-top:1px dashed #df9a47;border-bottom:1px dashed #df9a47}
.daily-table tr.attention-row td:first-child{border-left:1px dashed #df9a47}.daily-table tr.attention-row td:last-child{border-right:1px dashed #df9a47}.daily-table tr.attention-row .daily-person{color:#ffd49b}
.crewoption.crew-conflict{border:1px dashed #df9a47;background:#392b1d;color:#ffd49b}
.legend .open-swatch{border:1px dashed #94b878;background:#233225}

.calendar-day-type{appearance:none;-webkit-appearance:none;background-image:none;text-align:center;padding:4px 1px}


.overview-table .date-link.day-tone-open,.daytabs button.day-tone-open{border:1px dashed #94b878;background:#233225;color:#d6e8b9;border-radius:4px}
.overview-table .date-link.day-tone-attention,.daytabs button.day-tone-attention{border:1px dashed #df9a47;background:#392b1d;color:#ffd49b;border-radius:4px}
.daytabs button.selected.day-tone-open{box-shadow:inset 0 0 0 1px #94b878}.daytabs button.selected.day-tone-attention{box-shadow:inset 0 0 0 1px #df9a47}

/* Keep day geometry stable across dates, selection and status borders. */
.overview-table th.dayhead{vertical-align:middle}
.overview-table .date-link{box-sizing:border-box;height:48px;min-height:48px;max-height:48px;border:1px solid transparent;padding:4px 1px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;overflow:hidden}
.date-number-line{display:block;white-space:nowrap;line-height:1.2;font-variant-numeric:tabular-nums}
.overview-table .date-link small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;margin:0}
.overview-table .cell,.overview-table .dark-day-button{box-sizing:border-box;height:46px;min-height:46px;max-height:46px}
.daytabs button{box-sizing:border-box;flex:1 1 0;min-width:0;height:36px;min-height:36px;border:1px solid transparent;white-space:nowrap;padding:4px 1px;font-variant-numeric:tabular-nums}
.job-calendar-cell{box-sizing:border-box;height:62px}.job-calendar-cell .job-calendar-day{box-sizing:border-box;height:34px;min-height:34px;white-space:nowrap;font-variant-numeric:tabular-nums}.job-calendar-cell:not(.selected) .job-calendar-day{height:60px;min-height:60px}.job-calendar-cell .calendar-day-type{box-sizing:border-box;height:26px;white-space:nowrap}
@media(max-width:650px){.overview-table .date-number-line{font-size:9px;letter-spacing:0}.overview-table .date-number-line b{font-size:inherit}.overview-table .date-link small{font-size:8px;letter-spacing:0}.daytabs button{font-size:10px}}

.name-loop-group{justify-content:flex-start}.name-loop-group>span{padding-right:5px;font-weight:650}.name-loop-group .name-repeat{font-weight:400;opacity:1}


.coverage-name-text .name-loop-group>span{font-weight:800;font-synthesis:weight}.coverage-name-text .name-loop-group>.name-repeat{font-weight:400}


.job-hub-actions,.jobs-actions{display:flex;gap:8px;margin-bottom:14px;align-items:center}.jobs-actions .search{min-width:0;flex:1;margin:0}.job-card{display:block;width:100%;text-align:left;padding:12px;border:1px solid #46584b;border-radius:6px;margin:8px 0;background:#17221b}.job-card b,.job-card span,.job-card small{display:block;overflow-wrap:anywhere}.job-card span{font-size:12px;margin:5px 0}.job-card small{font-size:11px;color:#b4c6b8}.job-card.open{border:1px dashed #94b878}.job-card.attention{border:1px dashed #df9a47}.creation-window{display:flex;flex-wrap:wrap;gap:6px;align-items:end;margin:10px 0}.creation-window label{flex:1;min-width:110px;font-size:11px}.creation-window input{display:block;width:100%;min-width:0}.creation-window input,.creation-window select,.starter-role select{background:#17221b;color:#dce8df;border:1px solid #526557;padding:8px;border-radius:4px}.creation-window .remove-window{padding:8px}.creation-details{margin:18px 0}.starter-role{border:1px solid #46584b;border-radius:5px;padding:8px;margin:10px 0;display:flex;flex-wrap:wrap;gap:8px}.starter-role label{width:100%}.starter-person{flex:1;min-width:0;max-width:100%}#reset[hidden]{display:none}

#creationCrewEditor[hidden]{display:none}#creationCrewEditor{border:1px solid #526557;border-radius:6px;padding:12px;margin-top:12px}.add-creation-crew{font-size:11px;padding:6px}

@media(max-width:650px){#removeSavedJob{display:block;width:100%;min-height:48px;margin-top:20px;padding:12px 16px;border:1px solid #b76d61;border-radius:6px;background:#34221f;color:#f0b6ab;font-size:14px;font-weight:600;text-align:center;touch-action:manipulation}#removeSavedJob:active{background:#482b25}}
#dialogActions .primary.danger{background:#efaa63;color:#27180d;border:1px solid #efaa63;min-height:48px;font-weight:700}
#dialogActions .primary.danger:hover{background:#ffc185;border-color:#ffc185;color:#27180d}
#dialogActions .primary.danger:active{background:#d98a40;border-color:#d98a40;color:#27180d}
#dialogActions .primary.danger:focus-visible{outline:2px solid #ffe0bb;outline-offset:3px}
#exportDialog{width:min(1050px,96vw);max-width:1050px;padding:20px;max-height:94dvh;box-sizing:border-box}
#schedulePreview{display:block;width:100%;height:62dvh;border:1px solid #526557;background:#fff;border-radius:4px}
.export-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.export-controls button,.export-controls select{min-height:44px}.export-controls select{background:#17221b;color:#e8f0e9;border:1px solid #526557;padding:8px;max-width:100%}.export-controls a{color:#c8e2d0}
.heading{flex-wrap:wrap;gap:10px}#productionExport{min-height:44px}
@media(max-width:650px){#exportDialog{padding:12px}.export-controls{gap:10px}#schedulePreview{height:52dvh}}
#schedulePreview[hidden],#exportData[hidden]{display:none}
#copyTablePreview{max-height:52dvh;overflow:auto;background:#fff;color:#202820;border:1px solid #758075;margin-top:10px}
#copyTablePreview table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}
#copyTablePreview th,#copyTablePreview td{border:1px solid #a7afa8;padding:8px;white-space:nowrap;color:#202820;background:white}
#copyTablePreview th{background:#e7e9e3;font-weight:700;position:sticky;top:0}
#copyTablePreview pre{background:white;color:#202820;white-space:pre-wrap;overflow-wrap:anywhere;padding:10px}
#exportData .export-controls{margin-top:10px}


.trash-card{border:1px solid #526557;border-radius:6px;padding:12px;margin:10px 0}.trash-card b,.trash-card small{display:block;overflow-wrap:anywhere}.trash-card small{margin:6px 0 12px;color:#b4c0b7;font-size:11px}.trash-card button,#openTrash,#backToJobs{min-height:44px}
.crewoption:has(input:checked){background:#233e2b;border-color:#b8f18e;box-shadow:inset 3px 0 #b8f18e}
#rateScaleDetails{margin-bottom:18px}#rateScaleDetails summary{font-weight:700;color:#b8f18e}#rateScaleDetails .field{margin:10px 0}
.crew-count-row{display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #3c4c42}.crew-count-row>select{grid-column:1/-1;width:100%;min-height:40px}.crew-stepper{display:flex;align-items:center;gap:10px}.crew-stepper button{min-width:44px;min-height:44px;padding:4px;background:#26392e;color:#c4f39f;border:1px solid #597253;border-radius:6px;font-size:22px}.crew-stepper output{min-width:22px;text-align:center;font-variant-numeric:tabular-nums}#startingCrewTotal{font-size:13px;color:#a8b9aa}#creationAssignments fieldset{border:1px solid #4c6152;border-radius:6px;margin:12px 0;padding:10px}#creationAssignments select{max-width:100%;width:100%}#createCalendar{margin-bottom:16px}
/* Progress first; secondary counts only appear when actionable. */
#stats{display:flex;align-items:stretch;gap:8px;margin:14px 0}#stats .stat[hidden]{display:none!important}#stats .staffing-progress{flex:1;min-width:0;position:relative;overflow:hidden;background:linear-gradient(90deg,#315b3c 0%,#315b3c var(--staffed),#19221e var(--staffed),#19221e 100%);border-color:#49604f;padding:12px 16px;transition:background .2s}#stats .staffing-progress strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:25px;color:#e7f4e9}#stats .staffing-progress b{font-size:12px;color:#b9cdbe}#stats .staffing-open{flex:0 0 auto;background:transparent;padding:10px 14px}#stats .staffing-requests{flex:0 0 auto;background:#332b1b;border:1px solid #655333;padding:8px 12px}#stats .staffing-requests strong{font-size:17px;color:#e0bd80}#stats .staffing-requests b{font-size:11px;color:#d3bc93}
.job-hub-actions{gap:8px;padding-bottom:12px;border-bottom:1px solid #2b3a31;margin-bottom:18px}.job-hub-actions button{min-height:44px;font-size:12px}#masterLog{margin-left:auto;background:transparent;border-color:transparent;color:#a7b9ad}.heading{align-items:center;gap:12px}.heading>div:first-child{flex:1;min-width:0}#jobActions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}#jobActions button{min-height:44px;font-size:12px;padding:9px 12px;margin:0}#projectLog{background:transparent;border-color:transparent;color:#acbeb1}#staffingActions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}#staffingActions button{min-height:40px;font-size:12px;padding:8px 11px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.toolbar>div:first-child{min-width:0}.toolbar #backOverview{min-height:40px}
@media(max-width:650px){#stats{flex-wrap:wrap}#stats .staffing-progress{padding:11px 12px}#stats .staffing-progress strong{font-size:24px}#stats .staffing-open{flex:0 0 auto;padding:8px 10px}#stats .staffing-requests{flex:0 0 auto;padding:6px 10px}#jobActions{flex-basis:100%;width:100%;padding-top:4px;gap:6px}#jobActions button{flex:1;white-space:nowrap;padding:8px 6px;font-size:11px}.heading>div:first-child{flex-basis:100%}#staffingActions{gap:5px}#staffingActions button{font-size:11px;padding:8px}.toolbar h2{font-size:14px}.job-hub-actions button{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){#stats .staffing-progress{transition:none}}

/* Dashboard sections share the existing job summary components. */
.dashboard-active main>.heading,.dashboard-active main>#stats,.dashboard-active main>.work,.dashboard-active main>.lower,.dashboard-active main>.job-hub-actions,.dashboard-active main>.scenario-picker,.dashboard-active .top .sandbox{display:none!important}
#dashboard[hidden]{display:none!important}.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.dashboard-heading h1{font-size:28px;margin:5px 0}.dashboard-heading p{font-size:12px;color:#a8bbad;margin:5px 0}.dashboard-heading button{min-height:44px;white-space:nowrap}.dashboard-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.dashboard-metrics>div{display:flex;align-items:baseline;gap:12px;padding:15px;background:#1b2821;border:1px solid #35493c;border-radius:6px}.dashboard-metrics strong{font-size:26px;color:#c6e8b0;font-variant-numeric:tabular-nums}.dashboard-metrics span{font-size:12px;color:#aec0b2}.dashboard-section{padding:16px;border:1px solid #35493c;border-radius:7px;background:#17211b;margin-bottom:16px}.dashboard-section h2{font-size:15px;margin:0}.dashboard-section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}.dashboard-section-title>span{font-size:11px;color:#9bad9f}.dashboard-section button.secondary{min-height:44px;font-size:12px}.dashboard-jobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-jobs .job-card{margin:0}.dashboard-activity{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-activity p{margin-bottom:0}@media(max-width:650px){.dashboard-jobs{grid-template-columns:1fr}.dashboard-metrics>div{display:block;padding:12px}.dashboard-metrics span{display:block;margin-top:4px}.dashboard-heading h1{font-size:24px}.dashboard-section{padding:12px}.dashboard-heading button{font-size:12px;padding:8px 10px}}
/* Shared staffing summary for the job and Jobs list. */
.staffing-summary{width:100%;min-width:0}.staffing-summary .staffing-progress,#stats .staffing-summary .staffing-progress{display:flex;align-items:baseline;gap:10px;border:1px solid #49604f;border-radius:5px;padding:10px 12px;background:linear-gradient(90deg,#315b3c 0%,#315b3c var(--staffed),#19221e var(--staffed),#19221e 100%);overflow:hidden}.staffing-summary .staffing-progress strong{font-size:22px;color:#e7f4e9;white-space:nowrap;font-variant-numeric:tabular-nums}.staffing-summary .staffing-progress span{font-size:12px;color:#c1d2c5;margin:0}.staffing-breakdown{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:7px;font-size:11px;color:#9eafa3}.staffing-breakdown span{display:inline!important;margin:0!important;font-size:11px!important}.staffing-breakdown .staffing-gap{color:#b8df9c}.staffing-breakdown .staffing-pending{color:#e0bd80}.job-card .staffing-summary{margin-top:10px}.job-card .staffing-progress{padding:7px 10px}.job-card .staffing-progress strong{font-size:18px}.job-card .staffing-progress span{display:inline}.job-card .staffing-breakdown{gap:5px 12px}

#staffingMenu{position:relative}#staffingMenu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 12px;box-sizing:border-box;border:1px solid #526557;border-radius:5px;background:#202c24;color:#c5d5c9;font-size:12px;white-space:nowrap}#staffingMenu summary::-webkit-details-marker{display:none}#staffingMenu summary:focus-visible{outline:2px solid #b8f18e;outline-offset:2px}.staffing-menu-items{position:absolute;right:0;top:calc(100% + 5px);z-index:30;min-width:170px;padding:5px;background:#1b2921;border:1px solid #526557;border-radius:6px;box-shadow:0 8px 24px #0007}#staffingActions .staffing-menu-items button{display:block;width:100%;min-height:44px;text-align:left;background:transparent;border:0;padding:10px 12px}.staffing-menu-items button:hover{background:#304235!important}#staffingActions button[hidden]{display:none!important}#staffingActions #finishStaffingAction{min-height:44px;color:#c4edab;border-color:#729362}

.dashboard-metrics .completed-metric{display:block;text-align:left;padding:15px;background:#1b2821;border:1px solid #52694f;border-radius:6px;cursor:pointer;min-height:88px}.completed-metric span,.completed-metric small{display:block;margin-top:4px}.completed-metric small{color:#91ad83;font-size:10px}.completed-metric:hover{background:#26382b}.stat-number{display:block;font-size:32px;color:#c6e8b0;font-variant-numeric:tabular-nums;margin-bottom:10px}.stats-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:18px}.stats-controls label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;color:#adbfaf}.stats-controls label:last-child{flex:1}.stats-controls select{min-height:44px;max-width:100%;background:#1b2821;color:#d1e4d4;border:1px solid #526557;border-radius:4px;padding:8px;font-size:16px}

.dashboard-completed{grid-template-columns:1fr;margin-top:20px}.dashboard-completed .completed-metric{min-height:0}.top #accountMenu{position:relative;margin-left:auto;order:10}#accountMenu summary{display:flex;align-items:center;justify-content:center;list-style:none;width:44px;height:44px;cursor:pointer;border:1px solid #455b4b;border-radius:5px;background:#1a2720;color:#c1d6c7;font-size:22px}#accountMenu summary::-webkit-details-marker{display:none}#accountMenu summary:focus-visible{outline:2px solid #b8f18e;outline-offset:2px}#accountMenu .account{position:absolute;right:0;top:calc(100% + 8px);z-index:100;width:min(300px,calc(100vw - 32px));box-sizing:border-box;padding:14px;display:flex;flex-direction:column;align-items:stretch;gap:8px;background:#1b2921;border:1px solid #526557;border-radius:6px;box-shadow:0 8px 24px #0007}#accountName{overflow-wrap:anywhere;line-height:1.5;margin-bottom:6px}#accountMenu .account button{text-align:left}.top .save{margin-left:0}@media(max-width:650px){.top{gap:6px;padding-left:12px;padding-right:12px}.top .brand .brand-wordmark{width:150px;height:50px}.top .save{font-size:10px;max-width:90px;padding:4px}.top #accountMenu{flex-shrink:0}}

.staffing-breakdown .staffing-driver{color:#f0ae62}.staffing-summary .staffing-progress.staffing-wrapped,#stats .staffing-summary .staffing-progress.staffing-wrapped{background:#141d18;border:1px solid #83b66c;justify-content:center;align-items:center}.staffing-summary .staffing-progress.staffing-wrapped strong,#stats .staffing-summary .staffing-progress.staffing-wrapped strong{color:#9fc88c;font-size:14px;letter-spacing:.12em;line-height:1.8}

.staffing-breakdown .staffing-pending{color:#f2db65}.staffing-breakdown .staffing-driver-urgent{color:#ff7777;font-weight:700}

.project-log-compact{margin-top:16px;border-top:1px solid #344239;padding-top:8px;font-family:ui-monospace,Consolas,monospace}.project-log-open{display:flex;width:100%;align-items:center;justify-content:space-between;background:transparent;border:0;color:#b9cbbf;padding:8px 0;font-size:12px}.project-log-open small{color:#819789}.project-log-lines{display:grid;gap:2px}.project-log-line{display:flex;gap:12px;min-width:0;text-align:left;border:0;background:#152019;color:#a8bbaf;font:11px/1.5 ui-monospace,Consolas,monospace;padding:7px 9px}.project-log-line time{flex:none;color:#748d7c}.project-log-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-readonly #staffingActions,.job-readonly #selectDates,.job-readonly #inviteBest,.job-readonly .role-menu-mark{display:none!important}.job-readonly .gridwrap button:disabled{opacity:1;cursor:default}.account-member #createJob,.account-member #newJob,.account-member [data-home-action="create"]{display:none!important}

.ingest-entry,.ingest-review{padding:12px;background:#18261e;border:1px solid #435b49;border-radius:6px;margin-bottom:16px}.ingest-entry summary{cursor:pointer;color:#b8dc9d}.ingest-review li{font-size:12px;color:#d8ce91;margin:5px 0}.ingest-source{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;font:12px/1.5 ui-monospace,Consolas,monospace}.ingest-entry textarea{font-size:16px}

/* Pending production positions use teal; conflicts retain amber. */
.overview-table .cell.pending-approval,.legend .request-swatch{border:1px dashed #56c9c1;background:#163b39;color:#9ee9e1}.overview-table .cell.pending-approval .coverage-person{color:#a4d8d3}.daily-approval.requested,.staffing-breakdown .staffing-pending{color:#70dad1}.daily-table tr.pending-row td{background:#163b39;border-top:1px dashed #56c9c1;border-bottom:1px dashed #56c9c1}.daily-table tr.pending-row td:first-child{border-left:1px dashed #56c9c1}.daily-table tr.pending-row td:last-child{border-right:1px dashed #56c9c1}.daily-table tr.pending-row .daily-person{color:#9ee9e1}.overview-table .date-link.day-tone-pending,.daytabs button.day-tone-pending,.week-summary button.week-pending{border:1px dashed #56c9c1;background:#163b39;color:#9ee9e1;border-radius:4px}.daytabs button.selected.day-tone-pending,.week-summary button.week-pending[aria-pressed="true"]{box-shadow:inset 0 0 0 1px #56c9c1}.job-card.attention{border-color:#56c9c1}.overview-table .cell.conflict-position{border:1px dashed #df9a47;background:#392b1d;color:#ffd49b}
.staffing-summary .staffing-progress{position:relative;isolation:isolate}.staffing-summary .staffing-progress>.staffing-pending-segment{position:absolute;z-index:-1;box-sizing:border-box;top:0;bottom:0;left:var(--staffed);width:var(--pending);border:1px dashed #56c9c1;background:#19433f;pointer-events:none}.staffing-summary .staffing-progress>strong,.staffing-summary .staffing-progress>span{position:relative;z-index:1}

.staffing-summary .staffing-progress>.staffing-open-segment{position:absolute;z-index:-1;box-sizing:border-box;top:0;bottom:0;left:var(--staffed);width:var(--open);border:1px dashed #94b878;background:#233225;pointer-events:none}.staffing-summary .staffing-progress>.staffing-pending-segment{left:auto;right:0}
