@font-face {
  font-family: "Source Sans 3";
  src: url("/assets/fonts/SourceSans3VF-Upright-3.052R.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 900;
  font-display: block;
}

:root {
  color-scheme: light;
  --ink: #17191c;
  --muted: #667078;
  --line: #d8dde0;
  --surface: #ffffff;
  --canvas: #f4f6f5;
  --nav: #17191c;
  --green: #147a55;
  --green-soft: #e5f3ed;
  --amber: #a35c00;
  --amber-soft: #fff0d7;
  --red: #b23838;
  --red-soft: #fbe9e9;
  --blue: #176a8f;
  --blue-soft: #e6f2f7;
  --series-a: #147a55;
  --series-a-soft: #e5f3ed;
  --series-b: #b4542f;
  --series-b-soft: #faece6;
  --radius: 6px;
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif;
  font-size: 15px;
  letter-spacing: 0;
}

* { box-sizing: border-box; }
html { background: var(--canvas); }
body { margin: 0; color: var(--ink); background: var(--canvas); min-height: 100vh; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }

.staff-shell { display: block; }
.app-header { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; height: 40px; padding: 0 8px; background: var(--nav); color: #fff; }
.app-brand { display: grid; place-items: center; flex: 0 0 32px; height: 40px; text-decoration: none; }
.app-brand .brand-mark { width: 28px; height: 28px; font-size: 12px; }
.app-logout-form { flex: 0 0 auto; height: 40px; margin: 0; }
.app-logout, .app-hard-refresh { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; height: 40px; padding: 0 10px; border: 0; border-radius: 4px; background: transparent; color: #e4e8ea; font-size: 13px; cursor: pointer; white-space: nowrap; }
.app-navigation { position: relative; display: flex; flex: 1 1 0; align-items: center; gap: 2px; min-width: 0; height: 40px; padding: 0 2px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
.app-navigation::-webkit-scrollbar { display: none; }
.app-navigation a { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; height: 40px; padding: 0 10px; border-radius: 4px; color: #cbd2d5; text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap; }
.app-navigation a:hover, .app-navigation a.active, .app-logout:hover, .app-hard-refresh:hover { background: #2b3034; color: #fff; }
.quality-issue-badge { display: inline-flex; flex: 0 0 30px; align-items: center; justify-content: center; width: 30px; height: 30px; margin-left: 6px; border-radius: 50%; background: #c62935; color: #fff; font-size: 10px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; }
.app-navigation a:focus-visible, .app-brand:focus-visible, .app-logout:focus-visible, .app-hard-refresh:focus-visible { outline: 2px solid #f5c84b; outline-offset: -2px; }
.brand-lockup { display: flex; align-items: center; gap: 11px; }
.brand-lockup > div { display: grid; gap: 1px; }
.brand-lockup strong { font-size: 16px; }
.brand-lockup small { color: #aeb8bd; font-size: 12px; }
.brand-mark { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; background: #f5c84b; color: #17191c; font-weight: 700; border-radius: 4px; }
.workspace { width: 100%; min-width: 0; padding: 24px 24px 64px; }
.standalone { min-height: 100vh; display: grid; place-items: center; padding: 24px; }

.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.page-header h1 { font-size: 30px; line-height: 1.15; margin: 3px 0 0; }
.page-header p { margin: 6px 0 0; color: var(--muted); }
.eyebrow { text-transform: uppercase; font-size: 11px; font-weight: 700; color: var(--green) !important; }
.back-link { color: var(--blue); text-decoration: none; font-size: 13px; font-weight: 600; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 39px; padding: 0 15px; border: 1px solid transparent; border-radius: 5px; font-weight: 700; text-decoration: none; cursor: pointer; white-space: nowrap; }
.button.primary { background: var(--green); color: #fff; }
.button.secondary { background: #fff; border-color: #b8c0c4; color: var(--ink); }
.button.danger { background: var(--red); color: #fff; }
.button.small { min-height: 32px; padding: 0 10px; font-size: 13px; }
.button.wide { width: 100%; }
.button:hover { filter: brightness(.95); }
.button:disabled { cursor: not-allowed; opacity: .46; filter: none; }
.icon-button { width: 34px; height: 34px; border: 0; background: transparent; font-size: 25px; cursor: pointer; }

.flash { padding: 12px 15px; margin: 0 0 18px; border-left: 4px solid var(--green); background: var(--green-soft); border-radius: 3px; }
.flash.error { border-color: var(--red); background: var(--red-soft); }
.flash.warning { border-color: var(--amber); background: var(--amber-soft); }
.production-banner { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 18px; padding: 12px 15px; border: 1px solid #9bc9b6; border-left: 4px solid var(--green); border-radius: 4px; background: var(--green-soft); }
.production-banner span { color: #285b47; font-size: 13px; }
.filter-notice { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.filter-notice .text-link { margin-left: auto; }

.filter-bar, .inline-form { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.dashboard-filter-bar { padding: 14px; border: 1px solid var(--line); background: #f8f9f9; }
.dashboard-comparison-form { display: grid; gap: 14px; margin-bottom: 20px; }
.dashboard-range-grid { display: grid; grid-template-columns: minmax(280px, 1fr) auto minmax(280px, 1fr); align-items: stretch; gap: 12px; }
.comparison-range { display: flex; align-items: end; gap: 10px; min-width: 0; margin: 0; padding: 11px 13px 13px; border: 1px solid var(--line); background: #fff; }
.comparison-range legend { padding: 0 5px; color: #465158; font-size: 13px; font-weight: 700; }
.comparison-range legend i, .comparison-range-legend i, .employment-chart-readout-period > i { display: inline-block; width: 9px; height: 9px; margin-right: 6px; background: currentColor; vertical-align: 0; }
.comparison-range-a { border-top: 3px solid var(--series-a); }
.comparison-range-a legend, .comparison-range-legend .series-a { color: var(--series-a); }
.comparison-range-b { border-top: 3px solid var(--series-b); }
.comparison-range-b legend, .comparison-range-legend .series-b { color: var(--series-b); }
.comparison-range .field { flex: 1 1 150px; min-width: 0; }
.comparison-range input { width: 100%; }
.comparison-versus { align-self: center; color: #707a80; font-size: 12px; font-weight: 700; }
.dashboard-shared-filters { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }
.dashboard-shared-filters .dashboard-reset { display: inline-flex; align-items: center; min-height: 40px; }
.dashboard-filter-bar .field { min-width: 128px; }
.dashboard-filter-bar .field:has(select[name="coordinator"]), .dashboard-filter-bar .field:has(select[name="recruiter"]) { min-width: 170px; }
.comparison-range-legend { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 5px 14px; color: var(--muted); font-size: 12px; font-weight: 600; text-align: right; }
.comparison-range-legend b { white-space: nowrap; }
.segmented-control { display: inline-flex; min-height: 40px; padding: 2px; border: 1px solid #bcc4c8; border-radius: 4px; background: #fff; }
.segmented-control label { position: relative; display: flex; margin: 0; }
.segmented-control input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
.segmented-control span { display: grid; place-items: center; min-width: 70px; padding: 7px 10px; border-radius: 2px; color: var(--muted); font-size: 13px; font-weight: 600; cursor: pointer; }
.segmented-control input:checked + span { background: var(--ink); color: #fff; }
.segmented-control input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 1px; }
.field { display: grid; gap: 6px; min-width: 155px; }
.field > span, .settings-card > label:not(.check-field) { font-size: 12px; font-weight: 600; color: #4f575d; }
input, select, textarea { min-height: 40px; border: 1px solid #bcc4c8; border-radius: 4px; background: #fff; padding: 8px 10px; color: var(--ink); max-width: 100%; }
input:focus, select:focus, textarea:focus { outline: 3px solid #bce3d3; border-color: var(--green); }
textarea { min-height: 108px; resize: vertical; }
select[multiple] { min-height: 126px; }
.multi-select { position: relative; min-width: 175px; }
.multi-select > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; border: 1px solid #bcc4c8; border-radius: 4px; background: #fff; padding: 8px 10px; color: var(--ink); cursor: pointer; list-style: none; }
.multi-select > summary::-webkit-details-marker { display: none; }
.multi-select > summary::after { content: ""; width: 7px; height: 7px; flex: 0 0 auto; border-right: 2px solid #687177; border-bottom: 2px solid #687177; transform: rotate(45deg) translateY(-2px); }
.multi-select[open] > summary { outline: 3px solid #bce3d3; border-color: var(--green); }
.multi-select[open] > summary::after { transform: rotate(225deg) translate(-1px, -1px); }
.multi-select > summary span { max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-select-menu { position: absolute; z-index: 30; top: calc(100% + 5px); left: 0; width: max(100%, 250px); max-width: min(360px, 90vw); border: 1px solid #aeb7bb; border-radius: 4px; background: #fff; box-shadow: 0 12px 28px rgb(18 30 37 / 14%); padding: 7px; }
.multi-select-menu-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 5px 7px; border-bottom: 1px solid var(--line); }
.multi-select-menu-header small { color: var(--muted); }
.multi-select-menu-header button { border: 0; background: transparent; padding: 3px 4px; color: var(--green); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.multi-select-options { display: grid; gap: 2px; max-height: 280px; overflow-y: auto; padding-top: 5px; }
.multi-select-options label { display: flex; align-items: center; gap: 9px; min-height: 34px; border-radius: 3px; padding: 5px 7px; cursor: pointer; }
.multi-select-options label:hover { background: #f1f4f3; }
.multi-select-options input { width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; accent-color: var(--green); }
.work-status-filter .multi-select-options input { flex: 0 0 16px; width: 16px; }
.multi-select-options span { min-width: 0; overflow-wrap: anywhere; }
.filter-bar input[name="q"] { width: min(360px, 70vw); }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(170px, 1fr)); gap: 14px; align-items: end; }
.form-grid > header { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; }
.form-grid > .button { justify-self: start; }
.form-fieldset { display: contents; border: 0; padding: 0; margin: 0; }
.form-fieldset:disabled { opacity: .72; }
#departure .form-grid { grid-template-columns: minmax(170px, 1fr) minmax(220px, 2fr) minmax(100px, .6fr); align-items: start; }
#departure .field, #departure select { min-width: 0; width: 100%; }
#departure [hidden] { display: none !important; }
#departure small { overflow-wrap: anywhere; color: var(--muted); }
#departure [data-departure-status][data-state="error"] { color: var(--red); }
@media (max-width: 700px) { #departure .form-grid { grid-template-columns: minmax(0, 1fr); } }
.check-field { display: flex; gap: 8px; align-items: center; min-height: 40px; font-weight: 600; }
.check-field input { min-height: auto; width: 17px; height: 17px; }
.termination-initiator { border: 0; padding: 0; margin: 0; min-width: 0; }
.termination-initiator legend { font-size: 12px; font-weight: 600; color: #4f575d; margin-bottom: 4px; }
.termination-initiator-options { display: flex; gap: 24px; flex-wrap: wrap; }
.filter-checkbox { min-height: 40px; padding: 0 11px; border: 1px solid #bcc4c8; border-radius: 4px; background: #fff; }
.filter-checkbox span { white-space: nowrap; }
.input-pair { display: grid; grid-template-columns: 100px 1fr; }
.input-pair > * { border-radius: 0; }
.input-pair > :first-child { border-radius: 4px 0 0 4px; }
.input-pair > :last-child { border-radius: 0 4px 4px 0; }
.divided { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 18px; }

.metric-comparison { display: flex; align-items: baseline; gap: 6px; color: #536167; font-size: 12px; font-style: normal; font-weight: 600; }
.metric-comparison > span { color: #68747a; font-size: 10px; text-transform: uppercase; }
.metric-comparison > b { color: var(--ink); font-size: 14px; }
.metric-comparison.is-unavailable { color: var(--muted); font-weight: 400; }
.metric-comparison small { padding: 0; border: 0; color: inherit; font-size: 10px; font-weight: 400; }

.employment-chart-band { padding-top: 24px; }
.employment-chart-heading { align-items: flex-start; }
.employment-chart-heading > div:first-child { max-width: 820px; }
.employment-chart { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.employment-chart-readout { display: grid; grid-template-columns: minmax(80px, .5fr) minmax(220px, 1fr) minmax(220px, 1fr); align-items: center; gap: 16px; min-height: 54px; padding: 10px 16px; border-bottom: 1px solid #e7eaec; background: #f8f9f9; }
.employment-chart-readout > span { color: var(--muted); font-size: 13px; }
.employment-chart-readout-period { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: 0 6px; }
.employment-chart-readout-period.series-a { color: var(--series-a); }
.employment-chart-readout-period.series-b { color: var(--series-b); }
.employment-chart-readout-period > i { grid-row: 1 / span 2; align-self: center; }
.employment-chart-readout-period time { color: #657078; font-size: 12px; }
.employment-chart-readout-period strong { grid-column: 2 / -1; color: var(--ink); font-size: 17px; }
.employment-chart-scroll { overflow-x: auto; }
.employment-chart-svg { display: block; width: 100%; min-width: 680px; height: auto; background: #fff; }
.employment-chart-svg text { fill: #69737a; font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif; font-size: 12px; letter-spacing: 0; }
.employment-chart-y-tick line { stroke: #e4e8ea; stroke-width: 1; vector-effect: non-scaling-stroke; }
.employment-chart-x-tick line { stroke: #aeb7bb; stroke-width: 1; vector-effect: non-scaling-stroke; }
.employment-chart-area { fill: var(--green-soft); }
.employment-chart-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.employment-chart-line.series-a { stroke: var(--series-a); }
.employment-chart-line.series-b { stroke: var(--series-b); }
.employment-chart-cursor-line { stroke: #68747a; stroke-width: 1; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.employment-chart-cursor-point { fill: #fff; stroke-width: 3; vector-effect: non-scaling-stroke; }
.employment-chart-cursor-point.series-a { stroke: var(--series-a); }
.employment-chart-cursor-point.series-b { stroke: var(--series-b); }
.employment-chart-hitarea { fill: transparent; cursor: crosshair; touch-action: pan-y; }
.employment-chart-hitarea:focus { outline: none; }
.employment-chart-hitarea:focus-visible { stroke: var(--green); stroke-width: 3; vector-effect: non-scaling-stroke; }
.employment-chart-footer { display: flex; justify-content: space-between; gap: 16px; padding: 10px 16px; border-top: 1px solid #e7eaec; color: var(--muted); font-size: 12px; }
.stage-comparison-table th.series-a, .stage-comparison-table td.series-a { color: var(--series-a); background: color-mix(in srgb, var(--series-a-soft) 65%, #fff); }
.stage-comparison-table th.series-b, .stage-comparison-table td.series-b { color: var(--series-b); background: color-mix(in srgb, var(--series-b-soft) 65%, #fff); }
.stage-comparison-table tbody th { min-width: 190px; text-align: left; }
.stage-comparison-table td { min-width: 115px; }
.dashboard-kpi-table td small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.dashboard-kpi-table .dashboard-kpi-link { color: #174f59; font-weight: 600; text-decoration: underline; text-decoration-color: #a9c2c6; text-underline-offset: 3px; }
.dashboard-kpi-table .dashboard-kpi-link:hover { color: #0c353c; text-decoration-color: currentColor; }
.dashboard-table-title { margin: 20px 0 9px; font-size: 15px; font-weight: 600; }
.departure-seasonality { display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.departure-seasonality article { display: grid; grid-template-columns: 130px minmax(160px, 1fr) 80px 150px; align-items: center; gap: 14px; min-height: 54px; padding: 10px 13px; background: #fff; }
.departure-seasonality article > div:first-child { display: grid; gap: 2px; }
.departure-seasonality article small { color: var(--muted); font-size: 11px; font-weight: 400; }
.departure-seasonality article > span { display: grid; gap: 2px; }
.departure-seasonality .dashboard-kpi-link { color: #174f59; font-weight: 600; text-underline-offset: 3px; }
.departure-seasonality-bar { height: 12px; overflow: hidden; background: #e8ecec; }
.departure-seasonality-bar i { display: block; height: 100%; background: var(--green); }
.tenure-histogram { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.tenure-histogram-row { display: grid; grid-template-columns: 95px minmax(120px, 1fr) 80px; align-items: center; gap: 12px; min-height: 38px; }
.tenure-histogram-row > span { color: var(--muted); font-size: 12px; }
.tenure-histogram-bars { display: grid; gap: 3px; background: transparent; }
.tenure-histogram-row i { display: block; height: 7px; min-width: 0; }
.tenure-histogram-row i.series-a { background: var(--series-a); }
.tenure-histogram-row i.series-b { background: var(--series-b); }
.tenure-histogram-row strong { display: flex; justify-content: flex-end; gap: 9px; text-align: right; font-size: 12px; }
.tenure-histogram-row strong b:first-child { color: var(--series-a); }
.tenure-histogram-row strong b:last-child { color: var(--series-b); }
.dashboard-coverage dl { display: grid; grid-template-columns: repeat(6, minmax(110px, 1fr)); gap: 1px; margin: 0; background: var(--line); border: 1px solid var(--line); }
.dashboard-coverage dl > div { min-width: 0; padding: 13px; background: #fff; }
.dashboard-coverage dt { min-height: 34px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.dashboard-coverage dd { margin: 4px 0 0; font-size: 21px; font-weight: 600; }

.work-status-toolbar { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: stretch; gap: 20px; margin-bottom: 16px; }
.work-status-toolbar-controls { min-width: 0; }
.work-status-toolbar .page-header { margin-bottom: 10px; }
.work-status-toolbar .work-status-filter { margin: 0; }
.work-status-toolbar .work-status-summary { margin: 0; }
.section-note.work-status-reference { margin: 0 0 12px; }
@media (max-width: 1000px) {
  .work-status-toolbar { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .work-status-toolbar-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 10px 24px; }
  .work-status-toolbar .page-header { margin: 0; }
}
.work-status-summary { display: grid; grid-template-columns: repeat(3, minmax(190px, 1fr)); margin: 0 0 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.work-status-summary > div { min-height: 112px; display: grid; grid-template-columns: 1fr auto; align-content: start; gap: 4px 14px; padding: 15px 17px; border-left: 4px solid var(--line); }
.work-status-summary > div + div { border-top: 0; }
.work-status-summary dt { color: #4f595f; font-size: 12px; font-weight: 600; }
.work-status-summary dd { grid-row: 1 / span 2; grid-column: 2; margin: 0; font-size: 28px; line-height: 1; font-weight: 700; }
.work-status-summary small { grid-column: 1 / -1; color: var(--muted); font-size: 12px; line-height: 1.4; }
.work-status-summary .is-active { border-left-color: var(--green); }
.work-status-summary .is-unscheduled { border-left-color: var(--amber); }
.work-status-summary .is-absent { border-left-color: var(--red); }
.work-status-warning { display: grid; gap: 3px; margin-bottom: 18px; }
.work-status-warning span { line-height: 1.45; }
.work-status-search-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.work-status-search-input { flex: 1; max-width: 420px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; font: inherit; font-size: 14px; background: #fff; }
.work-status-search-input:focus { outline: 2px solid var(--green); outline-offset: -1px; border-color: var(--green); }
.work-status-search-count { font-size: 13px; color: var(--muted); white-space: nowrap; }
.work-status-tabs { display: flex; gap: 2px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.work-status-tab { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; min-height: 48px; padding: 0 14px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font: inherit; font-weight: 600; white-space: nowrap; cursor: pointer; }
.work-status-tab:hover { background: #f6f8f8; color: var(--ink); }
.work-status-tab[aria-selected="true"] { border-bottom-color: var(--green); background: #f6f8f8; color: var(--ink); }
.work-status-tab:focus-visible { outline: 3px solid #bce3d3; outline-offset: -3px; }
.work-status-tab-label { min-width: 0; }
.work-status-tab-count { flex: 0 0 auto; min-width: 24px; padding: 2px 7px; border-radius: 999px; background: #e8ecee; color: #4f595f; font-size: 11px; line-height: 1.4; text-align: center; }
.work-status-panel { border-top: 0; }
.work-status-panel[hidden] { display: none; }
.section-note { max-width: 820px; margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; font-weight: 400; }
.work-absent-band .section-heading h2 { color: var(--red); }
.work-status-table { min-width: 820px; }
.work-absent-table { min-width: 1320px; }
.offboarding-note-cell { min-width: 300px; }
.offboarding-note { width: 100%; min-height: 72px; resize: vertical; }
.departure-reason-editor { display: grid; gap: 6px; min-width: 0; max-width: 760px; margin-bottom: 12px; }
.departure-reason-editor .field, .departure-reason-editor select { min-width: 0; width: 100%; }
.departure-reason-editor small { overflow-wrap: anywhere; font-size: 12px; color: var(--muted); }
.departure-reason-editor [hidden] { display: none !important; }
.termination-departure-editor { max-width: none; }
.termination-departure-fields { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 24px; align-items: start; }
@media (max-width: 700px) { .termination-departure-fields { grid-template-columns: minmax(0, 1fr); gap: 12px; } }
.offboarding-note-cell .departure-reason-editor { width: 320px; max-width: 100%; }
.offboarding-save-status[data-state="saving"] { color: var(--amber); }
.offboarding-save-status[data-state="saved"] { color: var(--green); }
.offboarding-save-status[data-state="error"] { color: var(--red); font-weight: 600; }
.offboarding-action-cell { min-width: 220px; }
.termination-readiness { display: block; max-width: 260px; margin-top: 7px; color: var(--muted); line-height: 1.25; }
.termination-readiness.is-blocked { color: var(--red); }
.termination-contact { max-width: 340px; margin: 0; color: var(--muted); line-height: 1.4; overflow-wrap: anywhere; white-space: normal; }
.termination-contact a { color: var(--ink); text-decoration: underline; }
.attendance-table { min-width: 980px; }
.attendance-issue-table { min-width: 1160px; }
.attendance-issues-band .section-heading h2 { color: var(--red); }
.attendance-result { display: grid; justify-items: start; gap: 3px; min-width: 170px; }
.attendance-result small { max-width: 280px; margin-top: 0 !important; white-space: normal; line-height: 1.35; }
.attendance-review-note-cell { min-width: 300px; }
.attendance-review-note { width: 100%; min-height: 72px; resize: vertical; }
.attendance-review-save-status[data-state="saving"] { color: var(--amber); }
.attendance-review-save-status[data-state="saved"] { color: var(--green); }
.attendance-review-save-status[data-state="error"] { color: var(--red); font-weight: 600; }
.staff-shell:has(> .workspace > :is(.people-filter-bar, .contracts-filter-bar)) { display: flex; flex-direction: column; height: 100vh; height: 100dvh; overflow: hidden; }
.staff-shell:has(> .workspace > :is(.people-filter-bar, .contracts-filter-bar)) > .app-header { flex-shrink: 0; }
.workspace:has(> :is(.people-filter-bar, .contracts-filter-bar)) { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 6px 0; }
.workspace:has(> :is(.people-filter-bar, .contracts-filter-bar)) > .flash { flex-shrink: 0; }
.workspace:has(> :is(.people-filter-bar, .contracts-filter-bar)) > .pagination { flex-shrink: 0; padding: 6px 0 0; }
.people-filter-bar, .contracts-filter-bar { flex-shrink: 0; gap: 8px; margin: 0 24px 6px; }
.people-filter-bar .people-count { margin-left: auto; color: var(--muted); font-size: 13px; align-self: center; }
.people-filter-bar .people-export { align-self: center; font-size: 13px; white-space: nowrap; }
.people-table-wrap, .contracts-table-wrap { flex: 1; min-height: 0; overscroll-behavior: contain; }
.contracts-table-wrap { position: relative; }
.contracts-table { min-width: 960px; }
.people-table { min-width: 1220px; }
.platform-activity-compact { display: grid; grid-template-columns: repeat(2, max-content); gap: 2px 14px; min-width: 205px; }
.platform-activity-compact > span { display: grid; gap: 1px; }
.platform-activity-compact strong { font-size: 13px; font-weight: 600; white-space: nowrap; }
.platform-activity-compact small { margin: 0 !important; font-size: 11px; line-height: 1.25; }
.platform-activity-compact > small { grid-column: 1 / -1; }
.platform-activity-compact.is-empty { display: grid; grid-template-columns: 1fr; min-width: 175px; color: var(--muted); }
.platform-activity-compact.is-empty strong { white-space: normal; }

.content-band { border-top: 1px solid var(--line); padding: 22px 0 28px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 16px; }
.section-heading h1, .section-heading h2 { margin: 0; font-size: 18px; }
.section-heading span { color: var(--muted); font-size: 13px; }
.work-status-panel > .section-heading { flex-wrap: wrap; }
.work-status-panel > .section-heading > :first-child { flex: 1 1 280px; }
.work-status-export-actions { display: flex; flex: 0 1 auto; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.work-status-export-actions .button { white-space: nowrap; }
.work-status-export-status:empty { display: none; }
.work-status-export-status { flex-basis: 100%; max-width: 320px; color: var(--red); }
.tabs { display: flex; gap: 18px; border-bottom: 1px solid var(--line); margin-bottom: 2px; overflow-x: auto; }
.tabs a { padding: 11px 0; color: var(--muted); font-weight: 600; text-decoration: none; white-space: nowrap; }
.tabs a:hover { color: var(--ink); }

.table-wrap, .schedule-scroll { overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.schedule-scroll { contain: paint; max-width: 100%; }
table { border-collapse: collapse; width: 100%; }
.data-table th, .data-table td { padding: 11px 12px; border-bottom: 1px solid #e7eaec; text-align: left; vertical-align: middle; }
.data-table th { position: sticky; top: 0; background: #f8f9f9; color: #4d565c; font-size: 11px; text-transform: uppercase; z-index: 1; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table td small, .record-row small { display: block; margin-top: 3px; color: var(--muted); }
.entity-link, .text-link { color: var(--blue); font-weight: 600; text-decoration: none; }
.entity-link:hover, .text-link:hover { text-decoration: underline; }
.empty-cell { padding: 28px !important; color: var(--muted); text-align: center !important; }

.recruitment-toolbar { display: flex; align-items: center; gap: 18px; height: 40px; min-width: 0; margin-bottom: 12px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
.recruitment-toolbar::-webkit-scrollbar { display: none; }
.recruitment-tabs { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; height: 36px; }
.recruitment-tabs a { display: flex; align-items: center; height: 36px; padding: 0 10px; border-bottom: 2px solid transparent; color: var(--muted); font-size: 14px; text-decoration: none; }
.recruitment-tabs a[aria-current="page"] { border-color: #b69b26; color: var(--ink); font-weight: 600; }
.recruitment-tabs a:hover { background: #f5f6f7; }
.recruitment-statistics-filters { align-items: end; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.filter-bar.recruitment-statistics-filters > .field { flex: 0 1 auto; width: auto; min-width: 0; }
.recruitment-statistics-filters select { width: 215px; max-width: 100%; }
.recruitment-statistics-filters input[type="date"] { width: 148px; }
.recruitment-statistics-filters .text-link { align-self: center; font-size: 13px; }
.recruitment-interval { display: flex; padding: 0; border: 0; margin: 0; min-width: 0; }
.recruitment-interval legend { font-size: 12px; color: var(--muted); margin-bottom: 5px; }
.recruitment-interval label { position: relative; cursor: pointer; }
.recruitment-interval input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.recruitment-interval span { display: flex; align-items: center; justify-content: center; height: 38px; padding: 0 12px; border: 1px solid #dce1e3; background: #fff; font-size: 13px; }
.recruitment-interval label + label span { border-left: 0; }
.recruitment-interval input:checked + span { background: #f6eaa2; color: #353420; }
.recruitment-interval input:focus-visible + span { outline: 2px solid #287eb6; outline-offset: 2px; }
.recruitment-statistics-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin: 0 0 12px; }
.recruitment-statistics-heading h2 { font-size: 18px; margin: 0; }
.recruitment-statistics-heading > span, .recruitment-statistics-note { color: var(--muted); font-size: 12px; }
.recruitment-statistics-chart { border-bottom: 1px solid #e1e5e7; padding-bottom: 16px; margin-bottom: 24px; min-width: 0; }
.recruitment-chart-legend { display: flex; flex-wrap: wrap; gap: 10px 20px; font-size: 13px; margin-bottom: 8px; }
.recruitment-chart-legend > span { display: flex; align-items: center; gap: 6px; }
.recruitment-chart-legend svg { flex: 0 0 10px; }
.recruitment-chart-scroll { width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.recruitment-chart-scroll > svg { display: block; font-size: 12px; font-family: inherit; fill: #637077; }
.recruitment-chart-total { fill: #47545a; font-size: 11px; font-weight: 600; pointer-events: none; }
.recruitment-chart-segment-value { fill: #101a20; font-weight: 600; paint-order: stroke fill; stroke: #fff; stroke-width: 1px; stroke-opacity: 0.8; stroke-linejoin: round; pointer-events: none; }
.recruitment-chart-grid { stroke: #e4e8ea; stroke-width: 1; }
.recruitment-chart-hit { fill: transparent; stroke: transparent; stroke-width: 1.5; }
[data-recruitment-chart-bar] { cursor: pointer; outline: none; }
[data-recruitment-chart-bar]:focus-visible .recruitment-chart-hit, [data-recruitment-chart-bar].is-selected .recruitment-chart-hit { stroke: #3479aa; }
.recruitment-chart-readout { min-height: 48px; margin: 8px 0 0; font-size: 13px; color: #47545a; overflow-wrap: anywhere; }
.recruitment-statistics-note { margin: 8px 0; }
.recruitment-statistics-empty { padding: 24px 0; }
.recruitment-statistics-cities { margin: 20px 0 28px; }
.recruitment-city-table { min-width: 0; }
.recruitment-city-table tr.is-below-threshold th, .recruitment-city-table tr.is-below-threshold td { background: var(--red-soft); color: var(--red); font-weight: 600; }
.recruitment-pivot { margin-top: 20px; }
.recruitment-pivot h3 { font-size: 16px; font-weight: 600; margin: 0 0 8px; text-transform: none; }
.recruitment-statistics-table { min-width: 600px; width: 100%; table-layout: fixed; }
.recruitment-statistics-table th, .recruitment-statistics-table td { text-align: right; padding: 10px 12px; font-variant-numeric: tabular-nums; }
.recruitment-statistics-table th:first-child { width: 180px; text-align: left; }
.recruitment-statistics-table tbody th { background: #fff; font-weight: 400; font-size: 13px; text-transform: none; }
.recruitment-statistics-table thead th { white-space: normal; font-weight: 600; line-height: 1.3; }
.recruitment-statistics-table thead .status-signed { background: #e2f0e7; }
.recruitment-statistics-table thead .status-resigned { background: #fae5e5; }
.recruitment-statistics-table thead .status-sent { background: #fbf3c9; }
.recruitment-statistics-table tfoot { background: #f0f3f4; font-weight: 600; }
.recruitment-statistics-sum { font-weight: 600; }
.recruitment-report-tabs { display: flex; gap: 4px; margin: 0 0 16px; border-bottom: 1px solid #d5dddf; }
.recruitment-report-tabs a { padding: 8px 14px; color: var(--muted); border-bottom: 2px solid transparent; text-decoration: none; }
.recruitment-report-tabs a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--green); font-weight: 600; }
.recruitment-resignations { margin-bottom: 24px; }
.recruitment-resignation-table { min-width: 580px; }
.recruitment-resignation-table th:first-child { width: 52%; overflow-wrap: anywhere; }
.recruitment-resignations .flash { display: block; line-height: 1.5; }
@media (max-width: 600px) {
  .recruitment-statistics-filters { gap: 10px; }
  .filter-bar.recruitment-statistics-filters > .field:first-of-type { width: 100%; }
  .recruitment-statistics-filters select { width: 100%; }
  .recruitment-statistics-table th:first-child { width: 135px; }
  .recruitment-resignation-table { min-width: 0; }
  .recruitment-resignation-table th:first-child { width: 46%; }
  .recruitment-resignation-table th, .recruitment-resignation-table td { padding: 8px 6px; }
  .recruitment-statistics-toolbar { gap: 8px; }
  .recruitment-statistics-toolbar .recruitment-meta > span:last-child { display: none; }
  .recruitment-chart-readout { min-height: 88px; }
}
@media (max-width: 360px) {
  .recruitment-statistics-toolbar .recruitment-meta { display: none; }
}
.recruitment-title { display: flex; flex-direction: column; flex: 0 0 auto; white-space: nowrap; }
.recruitment-title > .eyebrow { margin: 0; line-height: 12px; }
.recruitment-title > h1 { margin: 0; font-size: 22px; line-height: 26px; }
.recruitment-toolbar .filter-bar { flex: 0 0 auto; flex-wrap: nowrap; align-items: center; gap: 8px; margin: 0; }
.recruitment-toolbar .filter-bar > .field { display: flex; align-items: center; gap: 8px; width: auto; min-width: 0; }
.recruitment-toolbar .field > span { white-space: nowrap; }
.recruitment-toolbar .filter-bar select { width: 210px; height: 36px; min-height: 36px; }
.recruitment-toolbar .filter-bar .button { width: auto; height: 36px; min-height: 36px; }
.recruitment-toolbar .filter-bar input.recruitment-search { width: 260px; height: 36px; min-height: 36px; }
.recruitment-meta { display: flex; flex: 0 0 auto; align-items: center; gap: 16px; margin-left: auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.recruitment-meta .button.small { height: 28px; min-height: 28px; padding: 0 10px; font-size: 12px; }
.recruitment-band { min-width: 0; padding-bottom: 28px; }
.recruitment-table-wrap { max-height: calc(100vh - 180px); min-height: 330px; border-radius: 4px; }
/* Safari on macOS hides overlay scrollbars until the user scrolls, so a wide table looked unscrollable.
   Styling the WebKit scrollbar makes both bars permanent in Safari (and Chrome). */
.recruitment-table-wrap::-webkit-scrollbar { width: 12px; height: 12px; }
.recruitment-table-wrap::-webkit-scrollbar-track { background: #eef1f2; }
.recruitment-table-wrap::-webkit-scrollbar-thumb { background: #b3bdc1; border: 3px solid #eef1f2; border-radius: 8px; }
.recruitment-table-wrap::-webkit-scrollbar-thumb:hover { background: #8e9a9f; }
.recruitment-table-wrap::-webkit-scrollbar-corner { background: #eef1f2; }
.recruitment-table { width: max-content; min-width: 0; table-layout: fixed; border-collapse: separate; border-spacing: 0; }
.recruitment-table th, .recruitment-table td { height: 34px; padding: 0; border-right: 1px solid #e4e8e9; background: #fff; }
.recruitment-table th { height: 54px; padding: 7px 8px; color: #343b3f; line-height: 1.18; white-space: normal; }
.recruitment-table th:last-child, .recruitment-table td:last-child { border-right: 0; }
.recruitment-table input[type="date"].recruitment-date-empty:not(:focus) { color: transparent; }
.recruitment-table input:not([type="checkbox"]), .recruitment-table select { display: block; width: 100%; min-width: 0; height: 33px; min-height: 0; margin: 0; border: 0; border-radius: 0; padding: 0 6px; background: transparent; font-size: 13px; text-wrap: wrap;}
.recruitment-table input:not([type="checkbox"]):focus, .recruitment-table select:focus, .recruitment-checkbox:focus-within { outline: 2px solid var(--green); outline-offset: -2px; }
.recruitment-table th:nth-child(1), .recruitment-table td:nth-child(1) { position: sticky; left: 0; width: 50px; min-width: 50px; max-width: 50px; text-align: center; }
.recruitment-table th:nth-child(1) { z-index: 4; }
.recruitment-table td:nth-child(1) { z-index: 2; }
.recruitment-table th:nth-child(2), .recruitment-table td:nth-child(2) { position: sticky; left: 50px; width: 48px; min-width: 48px; max-width: 48px; text-align: center; }
.recruitment-table th:nth-child(2) { padding-right: 2px; padding-left: 2px; }
.recruitment-table th:nth-child(3), .recruitment-table td:nth-child(3) { position: sticky; left: 98px; width: 184.5px; min-width: 184.5px; max-width: 184.5px; box-shadow: 4px 0 7px rgb(34 43 48 / 7%); }
.recruitment-table th:nth-child(2), .recruitment-table th:nth-child(3) { z-index: 4; }
.recruitment-table td:nth-child(2), .recruitment-table td:nth-child(3) { z-index: 2; }
.recruitment-table th:nth-child(4), .recruitment-table td:nth-child(4) { width: 220px; min-width: 220px; }
.recruitment-table th:nth-child(5), .recruitment-table td:nth-child(5) { width: 92px; min-width: 92px; max-width: 92px; }
.recruitment-table th:nth-child(6), .recruitment-table td:nth-child(6) { width: 100px; min-width: 100px; max-width: 100px; }
.recruitment-table th:nth-child(7), .recruitment-table td:nth-child(7) { width: 160px; min-width: 160px; max-width: 152px; }
.recruitment-table th:nth-child(8), .recruitment-table td:nth-child(8) { width: 90px; min-width: 90px; max-width: 90px; }
.recruitment-table th:nth-child(9), .recruitment-table td:nth-child(9),
.recruitment-table th:nth-child(14), .recruitment-table td:nth-child(14),
.recruitment-table .recruitment-checklist-cell { width: 94px; min-width: 94px; text-align: center; }
.recruitment-table th:nth-child(30), .recruitment-table td:nth-child(30) { width: 150px; min-width: 150px; text-align: center; }
.recruitment-table th:nth-child(13), .recruitment-table td:nth-child(13),
.recruitment-table th:nth-child(20), .recruitment-table td:nth-child(20) { width: 320px; min-width: 320px; text-align: center; }
.recruitment-table th:nth-child(10), .recruitment-table td:nth-child(10) { width: 135px; min-width: 135px; }
.recruitment-table th:nth-child(11), .recruitment-table td:nth-child(11),
.recruitment-table th:nth-child(15), .recruitment-table td:nth-child(15),
.recruitment-table th:nth-child(16), .recruitment-table td:nth-child(16),
.recruitment-table th:nth-child(17), .recruitment-table td:nth-child(17) { width: 128px; min-width: 128px; }
.recruitment-table th:nth-child(31), .recruitment-table td:nth-child(31) { width: 120px; min-width: 120px; }
.recruitment-table th:nth-child(12), .recruitment-table td:nth-child(12),
.recruitment-table th:nth-child(19), .recruitment-table td:nth-child(19) { width: 220px; min-width: 220px; }
.recruitment-table th:nth-child(18), .recruitment-table td:nth-child(18) { width: 100px; min-width: 100px; }
.recruitment-table th:nth-child(29), .recruitment-table td:nth-child(29) { width: 184px; min-width: 184px; }
.recruitment-table th:nth-child(32), .recruitment-table td:nth-child(32) { width: 280px; min-width: 280px; }
.recruitment-table th:nth-child(33), .recruitment-table td:nth-child(33) { width: 128px; min-width: 128px; }
.recruitment-table th:nth-child(34), .recruitment-table td:nth-child(34),
.recruitment-table th:nth-child(35), .recruitment-table td:nth-child(35) { width: 128px; min-width: 128px; }
.recruitment-heading-base { background: #eef1f2 !important; }
.recruitment-heading-recruiter { background: #dcecf5 !important; }
.recruitment-heading-coordinator { background: #f8e7d8 !important; }
.recruitment-heading-platform { background: #f7dddd !important; }
.recruitment-heading-contract { background: #f2e1ec !important; }
.recruitment-heading-training { background: #dfeee4 !important; }
.recruitment-sequence { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.recruitment-days { color: #475158; font-size: 13px; font-variant-numeric: tabular-nums; }
.recruitment-checkbox { position: relative; display: grid; width: 100%; height: 33px; place-items: center; cursor: pointer; }
.recruitment-checkbox input { width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; accent-color: var(--green); }
.recruitment-checkbox input:indeterminate { accent-color: #929a9e; }
.recruitment-checkbox input:focus { outline: none; }
.recruitment-add-button { display: grid; place-items: center; width: 28px; height: 28px; min-height: 0; margin: auto; padding: 0; border: 0; border-radius: 3px; background: var(--green); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.recruitment-add-button:disabled { opacity: .35; cursor: default; }
.recruitment-add-button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.recruitment-row:hover td { background: #fbfcfc; }
.recruitment-table td:focus-within { background: #f0f8f4; }
.recruitment-new-row td, .recruitment-new-row td:nth-child(1), .recruitment-new-row td:nth-child(2) { background: #edf7f2; border-top: 2px solid #98c7b3; }
.recruitment-column-heading { display: flex; align-items: center; min-height: 40px; }
.recruitment-table th[data-recruitment-column] { padding: 2px; }
.recruitment-column-heading > a { display: flex; align-items: center; flex: 1; min-width: 0; align-self: stretch; gap: 2px; padding: 3px; color: inherit; text-decoration: none; font-size: 11px; }
.recruitment-column-heading > a > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.recruitment-sort-indicator { flex-shrink: 0; color: #087653; font-size: 12px; }
.recruitment-column-filter { align-self: stretch; flex: 0 0 17px; width: 17px; min-height: 30px; border: 0; padding: 0; border-radius: 0; background: transparent; color: #48515a; cursor: pointer; }
.recruitment-column-filter.is-filtered { background: #d2ebdf; color: #07523c; box-shadow: inset 0 -3px #16865e; }
.recruitment-column-heading a:hover, .recruitment-column-filter:hover { background: rgb(255 255 255 / 45%); }
.recruitment-column-heading a:focus-visible, .recruitment-column-filter:focus-visible { outline: 2px solid var(--green); outline-offset: -2px; }
.recruitment-table th:nth-child(1) .recruitment-column-heading, .recruitment-table th:nth-child(2) .recruitment-column-heading { flex-wrap: wrap; }
.recruitment-table th:nth-child(1) .recruitment-column-filter, .recruitment-table th:nth-child(2) .recruitment-column-filter { min-height: 17px; flex: 1 0 100%; border-left: 0; }
.recruitment-popup { position: fixed; z-index: 1000; width: min(310px, calc(100vw - 16px)); max-height: calc(100dvh - 16px); overflow: auto; padding: 12px; background: #fff; color: #20292d; border: 1px solid #c7ced1; border-radius: 4px; box-shadow: 0 5px 20px rgb(0 0 0 / 16%); }
.recruitment-popup[hidden] { display: none; }
.recruitment-popup form { display: grid; gap: 10px; }
.recruitment-popup strong { font-size: 13px; overflow-wrap: anywhere; }
.recruitment-popup input[type="search"] { width: 100%; height: 34px; min-height: 34px; padding: 5px 8px; }
.recruitment-filter-tools, .recruitment-filter-actions { display: flex; justify-content: space-between; gap: 8px; }
.recruitment-filter-tools button { padding: 0; border: 0; background: transparent; color: #176e50; font-size: 11px; cursor: pointer; }
.recruitment-filter-values { max-height: min(300px, 45dvh); overflow-y: auto; }
.recruitment-filter-values label { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 12px; }
.recruitment-filter-values label[hidden] { display: none; }
.recruitment-filter-values input { width: 15px; height: 15px; min-height: 0; margin: 0; flex-shrink: 0; }
.recruitment-filter-values label > span { overflow-wrap: anywhere; min-width: 0; }
.recruitment-filter-values small { margin-left: auto; color: var(--muted); }
.recruitment-filter-actions { border-top: 1px solid #e1e6e4; padding-top: 10px; }
.recruitment-color-popup { width: 210px; }
.recruitment-color-option { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 34px; padding: 5px 8px; background: #fff; border: 0; text-align: left; border-radius: 2px; cursor: pointer; }
.recruitment-color-option:hover, .recruitment-color-option[aria-pressed="true"] { background: #edf2f0; }
.recruitment-color-trigger { display: grid; place-items: center; width: 100%; height: 33px; padding: 0; background: transparent; border: 0; border-radius: 0; cursor: pointer; }
.recruitment-swatch { display: inline-block; flex: 0 0 17px; width: 17px; height: 17px; border: 1px solid #8c9599; border-radius: 3px; background: #fff; }
.recruitment-swatch[data-color="green"] { background: #6aa84f; }
.recruitment-swatch[data-color="red"] { background: #e77878; }
.recruitment-swatch[data-color="yellow"] { background: #f2d75b; }
.recruitment-swatch[data-color="orange"] { background: #f1a660; }
.recruitment-swatch[data-color="blue"] { background: #76b7e8; }
.recruitment-swatch[data-color="violet"] { background: #b798d4; }
.recruitment-swatch[data-color="light-yellow-3"] { background: #fff2cc; }
.recruitment-swatch[data-color="light-green-2"] { background: #b6d7a8; }
.recruitment-swatch[data-color="light-green-3"] { background: #d9ead3; }
.recruitment-row[data-row-color="green"] { --recruitment-row-fill: #6aa84f; }
.recruitment-row[data-row-color="green"] .recruitment-sequence, .recruitment-row[data-row-color="green"] .recruitment-days { color: #172315; }
.recruitment-row[data-row-color="light-yellow-3"] { --recruitment-row-fill: #fff2cc; }
.recruitment-row[data-row-color="light-green-2"] { --recruitment-row-fill: #b6d7a8; }
.recruitment-row[data-row-color="light-green-3"] { --recruitment-row-fill: #d9ead3; }
.recruitment-row[data-row-color="red"] { --recruitment-row-fill: #fbe8e8; }
.recruitment-row[data-row-color="yellow"] { --recruitment-row-fill: #fff8d7; }
.recruitment-row[data-row-color="orange"] { --recruitment-row-fill: #fff0e0; }
.recruitment-row[data-row-color="blue"] { --recruitment-row-fill: #e7f2fc; }
.recruitment-row[data-row-color="violet"] { --recruitment-row-fill: #f1eaf8; }
.recruitment-table .recruitment-row[data-row-color]:not([data-row-color=""]) td { background: var(--recruitment-row-fill); }
.recruitment-table .recruitment-row[data-row-color]:not([data-row-color=""]) td:focus-within { box-shadow: inset 0 0 0 2px var(--green); }
.recruitment-table td { position: relative; }
.recruitment-row.is-active-row > td::after { content: ""; position: absolute; inset: 0; z-index: 3; border-top: 2px solid #2478e8; border-bottom: 2px solid #2478e8; pointer-events: none; }
.recruitment-row.is-active-row > td:first-child::after { border-left: 2px solid #2478e8; }
.recruitment-row.is-active-row > td:last-child::after { border-right: 2px solid #2478e8; }
.recruitment-table td.is-copy-selected { outline: none; }
.recruitment-table td.is-copy-selected::before { content: ""; position: absolute; inset: 0; z-index: 4; background: rgb(36 120 232 / 15%); box-shadow: inset 0 0 0 2px #2478e8; pointer-events: none; }
.recruitment-table.is-selecting-cells, .recruitment-table.is-selecting-cells * { cursor: cell; user-select: none; -webkit-user-select: none; }
.status-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; background: #eceff0; color: #4e575d; font-size: 11px; font-weight: 700; white-space: nowrap; }
.status-badge.active, .status-badge.signed, .status-badge.completed, .status-badge.quality-a { background: var(--green-soft); color: var(--green); }
.status-badge.warning, .status-badge.sent, .status-badge.partially_signed, .status-badge.planned, .status-badge.quality-b { background: var(--amber-soft); color: var(--amber); }
.status-badge.ended { background: #e5e8e9; color: #3f474c; }
.status-badge.unscheduled { background: var(--amber-soft); color: var(--amber); }
.status-badge.cancelled, .status-badge.expired, .status-badge.rejected, .status-badge.no_show, .status-badge.quality-c, .status-badge.absent { background: var(--red-soft); color: var(--red); }

.record-row, .issue-row, .audit-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 58px; border-bottom: 1px solid #e6eaeb; padding: 10px 0; }
.record-row > div { display: grid; justify-items: start; }
.record-row > div:last-child { justify-items: end; gap: 5px; }
.record-actions, .resolution-form { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.autenti-profile-summary { margin: -5px 0 14px; }
.autenti-document { border-bottom: 1px solid #e6eaeb; padding: 14px 0; }
.autenti-document > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.autenti-document > header > div { min-width: 0; display: grid; gap: 3px; }
.autenti-document > header small { color: var(--muted); }
.autenti-signature-list { list-style: none; margin: 12px 0 0; padding: 0 0 0 14px; border-left: 2px solid var(--line); }
.autenti-signature-row { display: grid; grid-template-columns: 30px minmax(180px, 1fr) auto 165px; align-items: center; gap: 12px; min-height: 48px; padding: 7px 0; border-top: 1px solid #edf0f1; }
.autenti-signature-row:first-child { border-top: 0; }
.autenti-signature-row > div { min-width: 0; display: grid; justify-items: start; gap: 2px; }
.autenti-signature-row small { color: var(--muted); overflow-wrap: anywhere; }
.autenti-signature-row time { color: var(--muted); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.autenti-signature-order { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #eef1f2; color: #4d565c; font-size: 12px; font-weight: 700; }
.selection-list { margin-bottom: 20px; }
.docusign-draft-form header > div { display: grid; gap: 2px; }
.docusign-draft-form header small { color: var(--muted); }
.dispatch-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; min-height: 74px; padding: 12px 0; border-bottom: 1px solid #e6eaeb; }
.dispatch-main { min-width: 0; display: grid; gap: 3px; }
.dispatch-main small { color: var(--muted); overflow-wrap: anywhere; }
.dispatch-main .error-text { color: var(--red); }
.dispatch-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.dispatch-actions form { margin: 0; }
.confirmation-form { display: flex; align-items: center; gap: 6px; }
.confirmation-form input { width: 92px; min-height: 32px; padding: 5px 8px; font-size: 13px; }
.integration-status { display: grid; grid-template-columns: repeat(3, minmax(190px, 1fr)) auto; align-items: center; gap: 18px; }
.integration-status > div { display: grid; gap: 5px; }
.integration-status small { color: var(--muted); }
.batch-people-table { max-height: 480px; }
.batch-people-table input[type="checkbox"] { min-height: auto; width: 17px; height: 17px; }
.batch-selection-summary { display: flex; justify-content: flex-end; margin: 0 0 8px; color: var(--muted); font-size: 13px; }
.preview-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 14px; }
.record-actions select, .resolution-form select { min-height: 34px; width: auto; max-width: 240px; }
.episode-editor { display: grid; grid-template-columns: minmax(180px, 1fr) 190px 145px 145px auto; align-items: center; gap: 9px; border-bottom: 1px solid #e6eaeb; padding: 10px 0; }
.episode-editor > div { display: grid; }
.episode-editor small, .issue-people { color: var(--muted); margin-top: 3px; }
.issue-people { display: flex; gap: 8px; flex-wrap: wrap; }
.audit-row { display: grid; grid-template-columns: 145px 1fr 220px; }
.audit-row time, .audit-row small { color: var(--muted); }
.audit-row > * { min-width: 0; }
.audit-row small { overflow-wrap: anywhere; }
.issue-row { border-left: 4px solid var(--line); padding-left: 12px; }
.issue-row.severity-high, .issue-row.severity-critical { border-left-color: var(--red); }
.issue-row.severity-medium { border-left-color: var(--amber); }
.issue-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.page-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.page-header-actions form { margin: 0; }
.duplicate-comparison-wrap { overflow-x: auto; }
.duplicate-comparison-table { min-width: 1120px; table-layout: fixed; }
.duplicate-comparison-table th:nth-child(1), .duplicate-comparison-table th:nth-child(2) { width: 36%; }
.duplicate-comparison-table th:nth-child(3) { width: 28%; }
.duplicate-comparison-table td { vertical-align: top; white-space: normal; }
.duplicate-profile { display: grid; gap: 4px; min-width: 0; }
.duplicate-profile > .entity-link { justify-self: start; font-size: 15px; font-weight: 700; }
.duplicate-profile > code { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.duplicate-profile dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 15px; margin: 8px 0 0; }
.duplicate-profile dl > div { min-width: 0; }
.duplicate-profile dl > .duplicate-profile-wide { grid-column: 1 / -1; }
.duplicate-profile dt { color: var(--muted); font-size: 10px; font-weight: 600; text-transform: uppercase; }
.duplicate-profile dd { margin: 2px 0 0; line-height: 1.35; overflow-wrap: anywhere; }
.duplicate-decision { display: grid; gap: 10px; }
.duplicate-decision > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.duplicate-evidence { display: flex; flex-wrap: wrap; gap: 5px; }
.comparison-tag { display: inline-flex; align-items: center; min-height: 23px; padding: 2px 7px; border: 1px solid var(--line); border-radius: 3px; background: #f3f5f5; color: #566167; font-size: 10px; font-weight: 600; }
.comparison-tag.is-match { border-color: #a8d8c3; background: var(--green-soft); color: #17694f; }
.comparison-tag.is-conflict { border-color: #e2b2ad; background: var(--red-soft); color: #8b342d; }
.duplicate-merge-actions { display: grid; gap: 6px; margin-top: 2px; }
.duplicate-merge-actions form { margin: 0; }
.duplicate-merge-actions .button { width: 100%; min-height: 36px; white-space: normal; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 16px 0; color: var(--muted); }
.empty-state { min-height: 72px; display: grid; place-items: center; color: var(--muted); border: 1px dashed #cbd1d4; border-radius: var(--radius); padding: 15px; text-align: center; }

.modal { width: min(850px, calc(100vw - 28px)); border: 0; border-radius: 7px; padding: 22px; box-shadow: 0 20px 70px rgba(0, 0, 0, .25); }
.modal::backdrop { background: rgba(10, 13, 15, .55); }
.credential-banner { background: #fff5cc; border: 1px solid #d5b94c; padding: 14px; border-radius: var(--radius); margin-bottom: 18px; }
.credential-banner > div { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.credential-banner code { background: #fff; border: 1px solid #d8c77f; padding: 7px 9px; border-radius: 3px; overflow-wrap: anywhere; }
.header-badges { display: flex; justify-content: flex-end; align-items: center; gap: 7px; flex-wrap: wrap; }
.person-offboarding-band { border-left: 4px solid var(--red); }
.person-offboarding-controls { display: grid; grid-template-columns: minmax(280px, 1fr) auto; align-items: end; gap: 16px; }
.person-offboarding-controls .offboarding-note { min-height: 84px; }
.profile-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin: 0 0 18px; border-block: 1px solid var(--line); }
.profile-facts > div { min-width: 0; padding: 14px 16px; }
.profile-facts dt { color: var(--muted); font-size: 12px; }
.profile-facts dd { margin: 3px 0 0; font-size: 16px; font-weight: 600; overflow-wrap: anywhere; }
.profile-facts small { display: block; margin-top: 3px; color: var(--muted); }
.employment-status-band { border-left: 4px solid #656e73; }
.employment-status-band.pending { border-left-color: var(--amber); }
.employment-status-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px; }
.employment-status-details > div { min-width: 0; }
.employment-status-details span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 11px; }
.employment-status-details strong, .employment-status-details a { display: block; overflow-wrap: anywhere; }
.platform-activity-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 14px; border-block: 1px solid var(--line); }
.platform-activity-facts > div { min-width: 0; padding: 16px 18px; }
.platform-activity-facts > div + div { border-left: 1px solid var(--line); }
.platform-activity-facts dt { color: var(--muted); font-size: 12px; }
.platform-activity-facts dd { margin: 3px 0 0; font-size: 22px; font-weight: 600; }
.platform-activity-facts small, .sync-stamp { color: var(--muted); font-size: 11px; }
.sync-stamp { display: block; margin-top: 8px; }

.access-vault-filter input[name="search"] { width: min(390px, 70vw); }
.access-vault-source { margin: 0 0 10px auto; }
.city-coordinator-band { margin-bottom: 20px; }
.staff-access-band { margin-bottom: 20px; scroll-margin-top: 52px; }
.staff-access-editor { margin-bottom: 14px; scroll-margin-top: 52px; }
.staff-access-editor > summary { width: fit-content; max-width: 100%; padding: 8px 0; color: var(--green); cursor: pointer; overflow-wrap: anywhere; }
.staff-access-editor .form-grid { padding: 10px 0; }
.staff-access-editor .multi-select { min-width: 0; }
.staff-access-editor .multi-select > summary span { max-width: calc(100% - 24px); }
.staff-access-flags { display: grid; gap: 8px; }
.staff-access-editor .action-bar { grid-column: 1 / -1; margin: 0; display: flex; gap: 12px; align-items: center; }
.staff-access-table { min-width: 900px; width: 100%; table-layout: fixed; }
.staff-access-table th:nth-child(1) { width: 17%; }
.staff-access-table th:nth-child(2) { width: 24%; }
.staff-access-table th:nth-child(3), .staff-access-table th:nth-child(4) { width: 20%; }
.staff-access-table th:nth-child(5) { width: 10%; }
.staff-access-table th:nth-child(6) { width: 9%; }
.staff-access-table td { overflow-wrap: anywhere; }
.staff-access-table .staff-group-heading th { background: #e9efec; color: var(--ink); padding: 8px 12px; }
.staff-group-heading small { margin-left: 8px; color: var(--muted); font-weight: 400; }
.settlements-header { align-items: center; gap: 16px; }
.settlements-filter { margin: 0; padding: 0; border: 0; }
.settlements-band > .section-note { margin: 8px 0 16px; }
.settlements-table { width: 100%; min-width: 430px; table-layout: fixed; }
.settlements-table th:first-child { width: 55%; }
.settlements-table td:first-child { overflow-wrap: anywhere; }
.settlements-table th:not(:first-child), .settlements-table td:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.settlements-table tfoot { background: #e9efec; font-weight: 600; }
.settlements-table .settlement-unmatched { color: #87561c; }
.city-coordinator-table { min-width: 720px; }
.city-coordinator-table th:first-child { width: 22%; }
.city-coordinator-table td:nth-child(2) { width: 30%; }
.city-coordinator-table select { width: 100%; }
.city-coordinator-table td:last-child span, .city-coordinator-table td:last-child small { display: block; }
.city-coordinator-table td:last-child span { font-weight: 600; }
.city-coordinator-table td:last-child small { margin-top: 3px; color: var(--muted); }
.access-vault-list { display: grid; gap: 12px; }
.access-vault-entry { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 16px; }
.access-vault-entry > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 13px; border-bottom: 1px solid #e6e9ea; }
.access-vault-entry > header > div { min-width: 0; }
.access-vault-entry h2 { margin: 5px 0 0; font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
.access-platform { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 4px; background: #e9edef; color: #31383c; font-size: 11px; font-weight: 700; }
.access-platform.uber { background: #17191c; color: #fff; }
.access-platform.bolt { background: #dff4e8; color: #12623f; }
.access-platform.inne { background: var(--blue-soft); color: #165774; }
.access-secret-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 16px; padding: 14px 0 10px; }
.access-secret { min-width: 0; }
.access-secret > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 600; }
.access-secret > div { display: flex; align-items: stretch; min-height: 38px; }
.access-secret code { flex: 1; min-width: 0; display: flex; align-items: center; border: 1px solid #d2d8db; border-radius: 4px 0 0 4px; background: #f7f8f8; padding: 7px 9px; color: #202427; font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; white-space: pre-wrap; }
.access-secret code.is-empty { border-radius: 4px; color: #899196; }
.access-secret .button { flex: 0 0 auto; min-height: 38px; border-left: 0; border-radius: 0 4px 4px 0; }
.access-qr-list { display: flex; gap: 16px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid #e6e9ea; }
.access-qr-list figure { width: min(260px, 100%); margin: 0; }
.access-qr-list img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: contain; border: 1px solid var(--line); background: #fff; }
.access-qr-list figcaption { margin-top: 5px; color: var(--muted); font-size: 11px; }
.access-vault-entry > footer { padding-top: 10px; color: var(--muted); font-size: 11px; }

.vehicle-strip { display: flex; gap: 7px; flex-wrap: wrap; }
.vehicle-strip span { border: 1px solid var(--line); background: #fff; padding: 5px 8px; border-radius: 4px; font-weight: 600; }
.vehicle-editor-list { display: grid; gap: 7px; }
.vehicle-editor { display: grid; grid-template-columns: 100px minmax(180px, 1fr) minmax(160px, 1fr) 100px auto; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); padding: 7px 0; }
.vehicle-editor input { min-height: 36px; }
.schedule-table { min-width: 1320px; }
.schedule-table th, .schedule-table td { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 7px; vertical-align: top; }
.schedule-table thead th { background: #f2f4f4; font-size: 12px; }
.schedule-table tbody > tr > th { position: sticky; left: 0; background: #fff; z-index: 1; min-width: 95px; }
.shift-cell { display: grid; grid-template-columns: 42px minmax(118px, 1fr); align-items: center; gap: 5px; padding: 3px; }
.shift-cell + .shift-cell { border-top: 1px solid #e5e8e9; margin-top: 4px; padding-top: 7px; }
.shift-cell span { font-size: 10px; color: var(--muted); font-weight: 700; }
.shift-cell select { min-height: 34px; padding: 5px; font-size: 12px; width: 100%; }
.shift-cell.has-warning { background: var(--amber-soft); }
.warning-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.warning-list span { background: var(--amber-soft); color: #6d430a; padding: 5px 8px; border-radius: 4px; font-size: 11px; }
.action-bar { display: flex; justify-content: flex-end; margin-top: 15px; }
.status-form select { min-height: 33px; }

.availability-list { display: grid; gap: 10px; }
.availability-row { display: grid; grid-template-columns: 210px minmax(700px, 1fr); align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 11px; overflow-x: auto; }
.availability-row header { display: grid; }
.availability-row header small { color: var(--muted); margin-top: 3px; }
.availability-save-status[data-state="saving"] { color: var(--amber); }
.availability-save-status[data-state="saved"] { color: var(--green); }
.availability-save-status[data-state="error"] { color: var(--red); font-weight: 600; }
.availability-days { display: grid; grid-template-columns: repeat(7, minmax(85px, 1fr)); gap: 5px; }
.availability-days fieldset { border: 1px solid #dfe3e5; padding: 5px; margin: 0; min-width: 85px; }
.availability-days legend { font-size: 10px; font-weight: 600; }
.availability-days label { font-size: 11px; }
.availability-days input { min-height: auto; }

.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(300px, 1fr)); gap: 12px; }
.settings-card { display: grid; gap: 10px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; padding: 14px; }
.settings-card h3 { margin: 0; font-size: 15px; overflow-wrap: anywhere; }
.settings-card > label:not(.check-field) { display: grid; gap: 5px; }

.auth-panel, .driver-auth { width: min(430px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 7px; padding: 30px; }
.auth-panel h1, .driver-auth h1 { margin: 28px 0 20px; font-size: 27px; }
.auth-domain { color: var(--muted); font-size: 12px; margin: 18px 0 0; text-align: center; }
.pin-form { display: grid; gap: 12px; }
.pin-form input { height: 58px; text-align: center; font-size: 27px; letter-spacing: 8px; font-weight: 700; }

.driver-shell { background: #f1f3f2; }
.driver-shell .standalone { display: block; width: min(920px, 100%); margin: 0 auto; padding: 22px; }
.driver-shell .standalone:has([data-driver-schedule]) { width: 100%; }
.driver-week-schedule { width: 100%; min-width: 0; max-width: 100%; }
.driver-header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 22px; }
.driver-section { background: #fff; border: 1px solid var(--line); border-radius: 7px; padding: 18px; margin-bottom: 14px; width: 100%; box-sizing: border-box; }
.driver-availability { display: grid; grid-template-columns: repeat(7, minmax(88px, 1fr)); gap: 8px; }
.driver-availability fieldset { border: 1px solid var(--line); border-radius: 4px; padding: 8px; margin: 0; }
.driver-availability legend { font-weight: 700; font-size: 12px; }
.driver-availability label { display: block; margin-top: 7px; font-size: 12px; }
.driver-availability input { min-height: auto; }
.driver-availability .button { grid-column: 1 / -1; }
.driver-availability .driver-availability-wide { grid-column: 1 / -1; margin: 0; font-size: 13px; }
.driver-availability .driver-availability-wide input, .driver-availability .driver-availability-wide textarea { min-height: 40px; width: 100%; }
.driver-availability .driver-availability-wide textarea { min-height: 76px; }
.driver-availability .driver-availability-wide small { color: var(--muted); font-size: 12px; }
.driver-availability-details, .availability-row-details { display: grid; gap: 4px; margin: 0; }
.driver-availability-details { margin-bottom: 12px; }
.driver-availability-details div, .availability-row-details div { display: grid; gap: 1px; }
.driver-availability-details dt, .availability-row-details dt { color: var(--muted); font-size: 11px; font-weight: 600; }
.driver-availability-details dd, .availability-row-details dd { margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.availability-row-details { margin-top: 6px; }
.receipt-grid, .driver-shifts { display: grid; grid-template-columns: repeat(7, minmax(100px, 1fr)); gap: 8px; }
.receipt-grid article, .driver-shifts article { display: grid; gap: 5px; border: 1px solid var(--line); border-radius: 5px; padding: 10px; min-height: 88px; }
.receipt-grid span, .driver-shifts span, .driver-shifts time { color: var(--muted); font-size: 12px; }

.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

@media (max-width: 1180px) {
  .dashboard-range-grid { grid-template-columns: minmax(240px, 1fr) auto minmax(240px, 1fr); }
  .form-grid { grid-template-columns: repeat(2, 1fr); }
  .availability-row { grid-template-columns: 180px 700px; }
  .access-secret-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
}

@media (max-width: 760px) {
  .workspace { padding: 20px 14px 45px; }
  .people-filter-bar, .contracts-filter-bar { margin-inline: 14px; }
  .page-header { align-items: flex-start; }
  .page-header h1 { font-size: 24px; }
  .dashboard-coverage dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .work-status-summary { grid-template-columns: 1fr; }
  .work-status-summary > div + div { border-top: 1px solid var(--line); border-left-width: 4px; }
  .work-status-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .work-status-tab { flex-direction: column; justify-content: center; gap: 4px; min-width: 0; min-height: 76px; padding: 7px 5px; font-size: 12px; line-height: 1.2; text-align: center; white-space: normal; }
  .work-status-tab-label { overflow-wrap: anywhere; }
  .dashboard-range-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-versus { display: none; }
  .comparison-range { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
  .comparison-range-legend { justify-content: flex-start; text-align: left; }
  .employment-chart-heading { display: grid; }
  .employment-chart-readout { grid-template-columns: 1fr 1fr; }
  .employment-chart-readout > [data-employment-readout-day] { grid-column: 1 / -1; }
  .employment-chart-footer { display: grid; gap: 5px; }
  .departure-seasonality article { grid-template-columns: 95px minmax(100px, 1fr) 55px; gap: 9px; }
  .departure-seasonality article > span { grid-column: 2 / -1; }
  .form-grid { grid-template-columns: 1fr; }
  .docusign-draft-form > span:empty { display: none; }
  .production-banner, .dispatch-row { align-items: flex-start; }
  .production-banner { display: grid; }
  .dispatch-row { grid-template-columns: 1fr; }
  .dispatch-actions { justify-content: flex-start; }
  .integration-status { grid-template-columns: 1fr; }
  .preview-actions { justify-content: flex-start; flex-wrap: wrap; }
  .settings-grid { grid-template-columns: 1fr; }
  .employment-status-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .platform-activity-facts { grid-template-columns: 1fr; }
  .platform-activity-facts > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .access-vault-entry > header { display: grid; }
  .audit-row { grid-template-columns: 1fr; gap: 3px; }
  .record-row, .issue-row { align-items: flex-start; }
  .autenti-document > header { display: grid; }
  .autenti-signature-row { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .autenti-signature-row time { grid-column: 2 / -1; text-align: left; }
  .episode-editor { grid-template-columns: 1fr 1fr; }
  .vehicle-editor { grid-template-columns: minmax(0, 1fr) auto; min-width: 0; }
  .vehicle-editor > strong { grid-column: 1; grid-row: 1; }
  .vehicle-editor > input[name="pickupContact"] { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .vehicle-editor > input[name="tags"] { grid-column: 1 / -1; grid-row: 3; width: 100%; }
  .vehicle-editor > .check-field { grid-column: 1; grid-row: 4; }
  .vehicle-editor > .button { grid-column: 2; grid-row: 1; }
  .driver-availability, .receipt-grid, .driver-shifts { grid-template-columns: repeat(2, 1fr); }
  .recruitment-table th:nth-child(2), .recruitment-table td:nth-child(2) { width: 36px; min-width: 36px; max-width: 36px; }
  .recruitment-table th:nth-child(3), .recruitment-table td:nth-child(3) { left: 86px; width: 139.5px; min-width: 139.5px; max-width: 139.5px; }
}

@media (max-width: 430px) {
  .settlements-table { min-width: 0; }
  .settlements-table th:first-child { width: 46%; }
  .settlements-table th, .settlements-table td { padding: 10px 6px; }
  .settlements-table th { font-size: 10px; overflow-wrap: anywhere; }
  .settlements-band .section-heading { align-items: start; flex-wrap: wrap; }
  .dashboard-coverage dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-range-grid { grid-template-columns: 1fr; }
  .comparison-range { grid-template-columns: 1fr; }
  .metric-comparison { flex-wrap: wrap; }
  .employment-chart-readout { grid-template-columns: 1fr; }
  .employment-chart-readout > [data-employment-readout-day] { grid-column: auto; }
  .page-header { display: grid; }
  .filter-bar > .field, .filter-bar input, .filter-bar select, .filter-bar .button, .filter-bar .multi-select { width: 100%; }
  .multi-select-menu { width: 100%; max-width: 100%; }
  .driver-shell .standalone { padding: 12px; }
  .driver-section { padding: 13px; }
  .driver-availability, .receipt-grid, .driver-shifts { grid-template-columns: 1fr; }
  .credential-banner > div { display: grid; }
  .episode-editor { grid-template-columns: 1fr; }
  .vehicle-add-form > input:not([type="hidden"]), .vehicle-add-form > .button { width: 100%; }
  .access-secret-grid { grid-template-columns: 1fr; }
  .employment-status-details { grid-template-columns: 1fr; }
  .person-offboarding-controls { grid-template-columns: 1fr; }
  .person-offboarding-controls .button { justify-self: start; }
  .access-vault-source { margin-left: 0; }
}

/* ── Async work status loading ── */
/* ── SPA navigation loading indicator ── */
@keyframes nav-progress {
  0% { transform: scaleX(0); transform-origin: left; }
  50% { transform: scaleX(0.7); transform-origin: left; }
  100% { transform: scaleX(1); transform-origin: left; }
}
.nav-loading::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--color-primary, #2563eb);
  z-index: 9999;
  animation: nav-progress 1.5s ease-in-out infinite;
}

/* ── Payroll page ── */
.payroll-page { max-width: 1400px; margin: 0 auto; }
.payroll-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 24px; margin-bottom: 16px; }
.payroll-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 0.875rem; color: var(--muted); }
.payroll-meta-item { padding: 4px 10px; background: #f8f9f9; border-radius: 4px; border: 1px solid var(--line); }
.payroll-meta-item strong { color: var(--ink); }
.payroll-count-ok strong { color: var(--green); }
.payroll-count-err strong { color: var(--red, #b23730); }
.payroll-filter-btn { cursor: pointer; font: inherit; font-size: 0.875rem; transition: background 0.15s, box-shadow 0.15s; }
.payroll-filter-btn:hover { background: #fee2e2; }
.payroll-filter-active { background: #fee2e2 !important; box-shadow: inset 0 0 0 2px #b23730; }

.payroll-import {
  border: 2px dashed var(--line);
  border-radius: 12px;
  padding: 48px 24px;
  text-align: center;
  background: #f8faf9;
  transition: border-color 0.15s, background 0.15s;
  cursor: pointer;
}
.payroll-import-dragover { border-color: var(--green); background: var(--green-soft); }
.payroll-import-icon { font-size: 48px; margin-bottom: 12px; }
.payroll-import-text { color: var(--muted); margin-bottom: 16px; }

.payroll-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 16px; padding: 12px 14px; background: #f8f9f9; border: 1px solid var(--line); border-radius: 6px; }
.payroll-send-status { font-size: 0.875rem; color: var(--muted); }

.payroll-progress { margin-bottom: 12px; display: flex; align-items: center; gap: 12px; }
.payroll-progress-bar { flex: 1; height: 8px; background: #e8ebed; border-radius: 4px; overflow: hidden; }
.payroll-progress-fill { height: 100%; background: var(--green); transition: width 0.3s ease; border-radius: 4px; width: 0; }
.payroll-pct-5 { width: 5%; } .payroll-pct-10 { width: 10%; } .payroll-pct-15 { width: 15%; } .payroll-pct-20 { width: 20%; }
.payroll-pct-25 { width: 25%; } .payroll-pct-30 { width: 30%; } .payroll-pct-35 { width: 35%; } .payroll-pct-40 { width: 40%; }
.payroll-pct-45 { width: 45%; } .payroll-pct-50 { width: 50%; } .payroll-pct-55 { width: 55%; } .payroll-pct-60 { width: 60%; }
.payroll-pct-65 { width: 65%; } .payroll-pct-70 { width: 70%; } .payroll-pct-75 { width: 75%; } .payroll-pct-80 { width: 80%; }
.payroll-pct-85 { width: 85%; } .payroll-pct-90 { width: 90%; } .payroll-pct-95 { width: 95%; } .payroll-pct-100 { width: 100%; }
.payroll-progress-text { font-size: 0.875rem; color: var(--muted); white-space: nowrap; }

.payroll-confirm-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 9999; }
.payroll-confirm-modal { background: #fff; border-radius: 10px; padding: 28px 32px; max-width: 420px; width: 90%; box-shadow: 0 8px 32px rgba(0,0,0,0.2); }
.payroll-confirm-modal h3 { margin: 0 0 12px; font-size: 1.1rem; color: var(--ink); }
.payroll-confirm-modal p { margin: 0 0 8px; font-size: 0.875rem; color: var(--muted); }
.payroll-confirm-phrase { font-size: 1.5rem; font-weight: 700; letter-spacing: 3px; text-align: center; color: var(--green); margin: 16px 0; }
.payroll-confirm-input { width: 100%; padding: 10px 14px; font-size: 1rem; font-family: inherit; border: 2px solid var(--line); border-radius: 6px; text-align: center; letter-spacing: 2px; font-weight: 600; }
.payroll-confirm-input:focus { outline: none; border-color: var(--green); }
.payroll-confirm-actions { display: flex; gap: 10px; margin-top: 20px; justify-content: flex-end; }
.payroll-confirm-send:disabled { opacity: 0.4; cursor: not-allowed; }

.payroll-email-section { margin-bottom: 16px; border: 1px solid var(--line); border-radius: 6px; padding: 12px 14px; background: #f8f9f9; }
.payroll-email-section summary { cursor: pointer; font-size: 0.875rem; font-weight: 600; color: var(--ink); padding: 4px 0; }
.payroll-email-body { width: 100%; font-family: inherit; font-size: 0.875rem; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; resize: vertical; margin-top: 8px; background: #fff; }
.payroll-email-body:focus { outline: 2px solid var(--green); outline-offset: -1px; border-color: var(--green); }

.payroll-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 6px; }
.payroll-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }
.payroll-table th { text-align: left; padding: 8px 10px; background: var(--green); color: #fff; border-bottom: 2px solid var(--green); font-weight: 600; white-space: nowrap; position: sticky; top: 0; z-index: 1; }
.payroll-table td { padding: 5px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; white-space: nowrap; }
.payroll-table tbody tr:hover { background: var(--green-soft); }

.payroll-row-error { background: #fef2f2 !important; }
.payroll-row-sent { background: #f0fdf4 !important; }
.payroll-cell-error { background: #fee2e2 !important; }

.payroll-inline-input {
  border: 1px solid transparent;
  background: transparent;
  padding: 2px 4px;
  font-family: inherit;
  font-size: inherit;
  border-radius: 4px;
  transition: border-color 0.15s;
}
.payroll-input-pesel { width: 110px; }
.payroll-input-email { width: 260px; }
.payroll-inline-input:focus { border-color: var(--green); background: #fff; outline: none; }
.payroll-cell-error .payroll-inline-input { border-color: #b23730; background: #fef2f2; }

.payroll-col-collapse { max-width: 60px; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.payroll-col-expanded { max-width: none; overflow: visible; }

.payroll-money { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.payroll-negative { color: #b23730; }

.payroll-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 0.75rem; font-weight: 600; white-space: nowrap; }
.payroll-badge-ok { background: var(--green-soft); color: var(--green); }
.payroll-badge-error { background: #fee2e2; color: #991b1b; }
.payroll-issue-text { color: #991b1b; font-size: 0.75rem; line-height: 1.4; }
.payroll-block-warn { display: block; font-size: 0.7rem; font-weight: 600; color: #991b1b; margin-top: 4px; }
.payroll-ignored-ok { color: var(--green); }
.payroll-ignore-btn { display: inline-block; margin-top: 4px; padding: 2px 8px; font-size: 0.7rem; font-weight: 600; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); cursor: pointer; transition: background 0.15s; }
.payroll-ignore-btn:hover { background: #f0f2f4; }
.payroll-badge-sent { background: var(--green-soft); color: var(--green); }

.payroll-status { padding: 12px 16px; border-radius: 6px; margin-top: 16px; font-size: 0.875rem; }
.payroll-status-loading { background: var(--green-soft); color: var(--green); }
.payroll-status-error { background: #fef2f2; color: #991b1b; }

.person-kpi-block { margin-top: 20px; }
.person-kpi-block h3 { font-size: 16px; font-weight: 600; margin: 0 0 8px; text-transform: none; }
.person-kpi-block h3 small { display: inline; margin-left: 6px; color: var(--muted); font-weight: 400; }
.person-kpi-meta { margin: 0 0 8px; font-size: 13px; }
.person-kpi-table { margin-bottom: 12px; table-layout: fixed; width: 100%; }
.person-kpi-table th:first-child, .person-kpi-table td:first-child { width: 40%; }
.person-kpi-table th:nth-child(2), .person-kpi-table td:nth-child(2) { width: 30%; }
.person-kpi-metrics th:nth-child(2), .person-kpi-metrics td:nth-child(2) { width: 60%; }
.person-kpi-table small { display: block; color: var(--muted); font-size: 12px; }
.person-kpi-missing { color: var(--amber); }
.person-kpi-note { margin: 12px 0 0; }

.recruitment-settings { max-width: 760px; }
.recruitment-settings-default { max-width: 320px; margin-bottom: 12px; }
.recruitment-settings-table { table-layout: fixed; width: 100%; margin-bottom: 4px; }
.recruitment-settings-table th, .recruitment-settings-table td { text-align: left; }
.recruitment-settings-table th { font-weight: 400; text-transform: none; font-size: 14px; }
.recruitment-settings-table input { width: 160px; }
.recruitment-settings .button { margin-top: 12px; }

.contract-order-form fieldset { border: 0; margin: 0 0 16px; padding: 0; }
.contract-order-form legend { font-size: 15px; font-weight: 600; padding: 0; margin-bottom: 10px; }
.contract-order-form .field.has-error input, .contract-order-form .field.has-error select { border-color: var(--red); background: var(--red-soft); }
.field-error { display: block; color: var(--red); font-size: 12px; margin-top: 4px; font-weight: 600; }
.field-hint { display: block; color: var(--muted); font-size: 12px; margin-top: 4px; }
.contract-orders-table th small, .contract-orders-table td small { display: block; color: var(--muted); font-size: 12px; font-weight: 400; }
.contract-order-message { display: block; font-size: 13px; margin-bottom: 6px; overflow-wrap: anywhere; }
.contract-order-actions, .contract-order-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.contract-order-actions form { margin: 0; }
.contract-order-summary th { width: 32%; text-align: left; font-weight: 600; text-transform: none; }
.contract-order-summary td { overflow-wrap: anywhere; }
.contract-order-confirm { margin-top: 12px; display: grid; gap: 12px; }
.contract-order-form .form-grid { align-items: start; }
.contract-orders-table tbody th { background: #fff; font-weight: 600; font-size: 14px; text-transform: none; letter-spacing: 0; text-align: left; }
.contract-orders-table td { vertical-align: top; }
.contract-order .section-note { margin-bottom: 16px; }

.candidate-sources { --source-1: #2a78d6; --source-2: #eb6834; --source-3: #1baf7a; --source-4: #eda100; --source-5: #e87ba4; --source-hatch-bg: #f0efec; --source-hatch-line: #9a9a94; }
.candidate-sources-body { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.candidate-sources-graphic { flex: 0 1 380px; min-width: 0; }
.source-pie { display: block; width: 100%; max-width: 380px; height: auto; overflow: visible; }
.source-slice { stroke: var(--surface); stroke-width: 2; cursor: default; transition: opacity .12s; }
.source-slice:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.source-pie:has(.is-selected) .source-slice:not(.is-selected) { opacity: .55; }
.source-slice.is-selected { stroke: var(--ink); }
.source-pie-label { font-size: 12px; font-weight: 600; fill: var(--ink); }
.source-hatch-bg { fill: var(--source-hatch-bg); }
.source-hatch-line { stroke: var(--source-hatch-line); stroke-width: 2; }
.source-1 { fill: var(--source-1); background: var(--source-1); } .source-2 { fill: var(--source-2); background: var(--source-2); }
.source-3 { fill: var(--source-3); background: var(--source-3); } .source-4 { fill: var(--source-4); background: var(--source-4); }
.source-5 { fill: var(--source-5); background: var(--source-5); }
path.source-unknown { fill: url(#source-hatch); }
path.source-unknown, rect.source-unknown { fill: url(#source-hatch); }
span.source-unknown { background: repeating-linear-gradient(45deg, var(--source-hatch-bg) 0 3px, var(--source-hatch-line) 3px 5px); }
.candidate-sources-readout { min-height: 22px; margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.candidate-sources-legend { list-style: none; margin: 0; padding: 0; flex: 1 1 260px; display: grid; gap: 8px; }
.candidate-sources-legend li { display: grid; grid-template-columns: 14px 1fr auto 44px; gap: 10px; align-items: center; font-size: 14px; }
.candidate-sources-legend small { color: var(--muted); text-align: right; }
.source-swatch { width: 14px; height: 14px; border-radius: 3px; }
.source-pie.source-bar { max-width: 380px; margin: 8px 0; }
.candidate-sources-table { margin-top: 14px; }
.candidate-sources-table summary { cursor: pointer; font-size: 14px; color: var(--muted); }

/* Bar widths come from data-w because the CSP blocks inline style attributes. */
.tenure-histogram-row i[data-w="0"], .departure-seasonality-bar i[data-w="0"] { width: 0%; }
.tenure-histogram-row i[data-w="1"], .departure-seasonality-bar i[data-w="1"] { width: 1%; }
.tenure-histogram-row i[data-w="2"], .departure-seasonality-bar i[data-w="2"] { width: 2%; }
.tenure-histogram-row i[data-w="3"], .departure-seasonality-bar i[data-w="3"] { width: 3%; }
.tenure-histogram-row i[data-w="4"], .departure-seasonality-bar i[data-w="4"] { width: 4%; }
.tenure-histogram-row i[data-w="5"], .departure-seasonality-bar i[data-w="5"] { width: 5%; }
.tenure-histogram-row i[data-w="6"], .departure-seasonality-bar i[data-w="6"] { width: 6%; }
.tenure-histogram-row i[data-w="7"], .departure-seasonality-bar i[data-w="7"] { width: 7%; }
.tenure-histogram-row i[data-w="8"], .departure-seasonality-bar i[data-w="8"] { width: 8%; }
.tenure-histogram-row i[data-w="9"], .departure-seasonality-bar i[data-w="9"] { width: 9%; }
.tenure-histogram-row i[data-w="10"], .departure-seasonality-bar i[data-w="10"] { width: 10%; }
.tenure-histogram-row i[data-w="11"], .departure-seasonality-bar i[data-w="11"] { width: 11%; }
.tenure-histogram-row i[data-w="12"], .departure-seasonality-bar i[data-w="12"] { width: 12%; }
.tenure-histogram-row i[data-w="13"], .departure-seasonality-bar i[data-w="13"] { width: 13%; }
.tenure-histogram-row i[data-w="14"], .departure-seasonality-bar i[data-w="14"] { width: 14%; }
.tenure-histogram-row i[data-w="15"], .departure-seasonality-bar i[data-w="15"] { width: 15%; }
.tenure-histogram-row i[data-w="16"], .departure-seasonality-bar i[data-w="16"] { width: 16%; }
.tenure-histogram-row i[data-w="17"], .departure-seasonality-bar i[data-w="17"] { width: 17%; }
.tenure-histogram-row i[data-w="18"], .departure-seasonality-bar i[data-w="18"] { width: 18%; }
.tenure-histogram-row i[data-w="19"], .departure-seasonality-bar i[data-w="19"] { width: 19%; }
.tenure-histogram-row i[data-w="20"], .departure-seasonality-bar i[data-w="20"] { width: 20%; }
.tenure-histogram-row i[data-w="21"], .departure-seasonality-bar i[data-w="21"] { width: 21%; }
.tenure-histogram-row i[data-w="22"], .departure-seasonality-bar i[data-w="22"] { width: 22%; }
.tenure-histogram-row i[data-w="23"], .departure-seasonality-bar i[data-w="23"] { width: 23%; }
.tenure-histogram-row i[data-w="24"], .departure-seasonality-bar i[data-w="24"] { width: 24%; }
.tenure-histogram-row i[data-w="25"], .departure-seasonality-bar i[data-w="25"] { width: 25%; }
.tenure-histogram-row i[data-w="26"], .departure-seasonality-bar i[data-w="26"] { width: 26%; }
.tenure-histogram-row i[data-w="27"], .departure-seasonality-bar i[data-w="27"] { width: 27%; }
.tenure-histogram-row i[data-w="28"], .departure-seasonality-bar i[data-w="28"] { width: 28%; }
.tenure-histogram-row i[data-w="29"], .departure-seasonality-bar i[data-w="29"] { width: 29%; }
.tenure-histogram-row i[data-w="30"], .departure-seasonality-bar i[data-w="30"] { width: 30%; }
.tenure-histogram-row i[data-w="31"], .departure-seasonality-bar i[data-w="31"] { width: 31%; }
.tenure-histogram-row i[data-w="32"], .departure-seasonality-bar i[data-w="32"] { width: 32%; }
.tenure-histogram-row i[data-w="33"], .departure-seasonality-bar i[data-w="33"] { width: 33%; }
.tenure-histogram-row i[data-w="34"], .departure-seasonality-bar i[data-w="34"] { width: 34%; }
.tenure-histogram-row i[data-w="35"], .departure-seasonality-bar i[data-w="35"] { width: 35%; }
.tenure-histogram-row i[data-w="36"], .departure-seasonality-bar i[data-w="36"] { width: 36%; }
.tenure-histogram-row i[data-w="37"], .departure-seasonality-bar i[data-w="37"] { width: 37%; }
.tenure-histogram-row i[data-w="38"], .departure-seasonality-bar i[data-w="38"] { width: 38%; }
.tenure-histogram-row i[data-w="39"], .departure-seasonality-bar i[data-w="39"] { width: 39%; }
.tenure-histogram-row i[data-w="40"], .departure-seasonality-bar i[data-w="40"] { width: 40%; }
.tenure-histogram-row i[data-w="41"], .departure-seasonality-bar i[data-w="41"] { width: 41%; }
.tenure-histogram-row i[data-w="42"], .departure-seasonality-bar i[data-w="42"] { width: 42%; }
.tenure-histogram-row i[data-w="43"], .departure-seasonality-bar i[data-w="43"] { width: 43%; }
.tenure-histogram-row i[data-w="44"], .departure-seasonality-bar i[data-w="44"] { width: 44%; }
.tenure-histogram-row i[data-w="45"], .departure-seasonality-bar i[data-w="45"] { width: 45%; }
.tenure-histogram-row i[data-w="46"], .departure-seasonality-bar i[data-w="46"] { width: 46%; }
.tenure-histogram-row i[data-w="47"], .departure-seasonality-bar i[data-w="47"] { width: 47%; }
.tenure-histogram-row i[data-w="48"], .departure-seasonality-bar i[data-w="48"] { width: 48%; }
.tenure-histogram-row i[data-w="49"], .departure-seasonality-bar i[data-w="49"] { width: 49%; }
.tenure-histogram-row i[data-w="50"], .departure-seasonality-bar i[data-w="50"] { width: 50%; }
.tenure-histogram-row i[data-w="51"], .departure-seasonality-bar i[data-w="51"] { width: 51%; }
.tenure-histogram-row i[data-w="52"], .departure-seasonality-bar i[data-w="52"] { width: 52%; }
.tenure-histogram-row i[data-w="53"], .departure-seasonality-bar i[data-w="53"] { width: 53%; }
.tenure-histogram-row i[data-w="54"], .departure-seasonality-bar i[data-w="54"] { width: 54%; }
.tenure-histogram-row i[data-w="55"], .departure-seasonality-bar i[data-w="55"] { width: 55%; }
.tenure-histogram-row i[data-w="56"], .departure-seasonality-bar i[data-w="56"] { width: 56%; }
.tenure-histogram-row i[data-w="57"], .departure-seasonality-bar i[data-w="57"] { width: 57%; }
.tenure-histogram-row i[data-w="58"], .departure-seasonality-bar i[data-w="58"] { width: 58%; }
.tenure-histogram-row i[data-w="59"], .departure-seasonality-bar i[data-w="59"] { width: 59%; }
.tenure-histogram-row i[data-w="60"], .departure-seasonality-bar i[data-w="60"] { width: 60%; }
.tenure-histogram-row i[data-w="61"], .departure-seasonality-bar i[data-w="61"] { width: 61%; }
.tenure-histogram-row i[data-w="62"], .departure-seasonality-bar i[data-w="62"] { width: 62%; }
.tenure-histogram-row i[data-w="63"], .departure-seasonality-bar i[data-w="63"] { width: 63%; }
.tenure-histogram-row i[data-w="64"], .departure-seasonality-bar i[data-w="64"] { width: 64%; }
.tenure-histogram-row i[data-w="65"], .departure-seasonality-bar i[data-w="65"] { width: 65%; }
.tenure-histogram-row i[data-w="66"], .departure-seasonality-bar i[data-w="66"] { width: 66%; }
.tenure-histogram-row i[data-w="67"], .departure-seasonality-bar i[data-w="67"] { width: 67%; }
.tenure-histogram-row i[data-w="68"], .departure-seasonality-bar i[data-w="68"] { width: 68%; }
.tenure-histogram-row i[data-w="69"], .departure-seasonality-bar i[data-w="69"] { width: 69%; }
.tenure-histogram-row i[data-w="70"], .departure-seasonality-bar i[data-w="70"] { width: 70%; }
.tenure-histogram-row i[data-w="71"], .departure-seasonality-bar i[data-w="71"] { width: 71%; }
.tenure-histogram-row i[data-w="72"], .departure-seasonality-bar i[data-w="72"] { width: 72%; }
.tenure-histogram-row i[data-w="73"], .departure-seasonality-bar i[data-w="73"] { width: 73%; }
.tenure-histogram-row i[data-w="74"], .departure-seasonality-bar i[data-w="74"] { width: 74%; }
.tenure-histogram-row i[data-w="75"], .departure-seasonality-bar i[data-w="75"] { width: 75%; }
.tenure-histogram-row i[data-w="76"], .departure-seasonality-bar i[data-w="76"] { width: 76%; }
.tenure-histogram-row i[data-w="77"], .departure-seasonality-bar i[data-w="77"] { width: 77%; }
.tenure-histogram-row i[data-w="78"], .departure-seasonality-bar i[data-w="78"] { width: 78%; }
.tenure-histogram-row i[data-w="79"], .departure-seasonality-bar i[data-w="79"] { width: 79%; }
.tenure-histogram-row i[data-w="80"], .departure-seasonality-bar i[data-w="80"] { width: 80%; }
.tenure-histogram-row i[data-w="81"], .departure-seasonality-bar i[data-w="81"] { width: 81%; }
.tenure-histogram-row i[data-w="82"], .departure-seasonality-bar i[data-w="82"] { width: 82%; }
.tenure-histogram-row i[data-w="83"], .departure-seasonality-bar i[data-w="83"] { width: 83%; }
.tenure-histogram-row i[data-w="84"], .departure-seasonality-bar i[data-w="84"] { width: 84%; }
.tenure-histogram-row i[data-w="85"], .departure-seasonality-bar i[data-w="85"] { width: 85%; }
.tenure-histogram-row i[data-w="86"], .departure-seasonality-bar i[data-w="86"] { width: 86%; }
.tenure-histogram-row i[data-w="87"], .departure-seasonality-bar i[data-w="87"] { width: 87%; }
.tenure-histogram-row i[data-w="88"], .departure-seasonality-bar i[data-w="88"] { width: 88%; }
.tenure-histogram-row i[data-w="89"], .departure-seasonality-bar i[data-w="89"] { width: 89%; }
.tenure-histogram-row i[data-w="90"], .departure-seasonality-bar i[data-w="90"] { width: 90%; }
.tenure-histogram-row i[data-w="91"], .departure-seasonality-bar i[data-w="91"] { width: 91%; }
.tenure-histogram-row i[data-w="92"], .departure-seasonality-bar i[data-w="92"] { width: 92%; }
.tenure-histogram-row i[data-w="93"], .departure-seasonality-bar i[data-w="93"] { width: 93%; }
.tenure-histogram-row i[data-w="94"], .departure-seasonality-bar i[data-w="94"] { width: 94%; }
.tenure-histogram-row i[data-w="95"], .departure-seasonality-bar i[data-w="95"] { width: 95%; }
.tenure-histogram-row i[data-w="96"], .departure-seasonality-bar i[data-w="96"] { width: 96%; }
.tenure-histogram-row i[data-w="97"], .departure-seasonality-bar i[data-w="97"] { width: 97%; }
.tenure-histogram-row i[data-w="98"], .departure-seasonality-bar i[data-w="98"] { width: 98%; }
.tenure-histogram-row i[data-w="99"], .departure-seasonality-bar i[data-w="99"] { width: 99%; }
.tenure-histogram-row i[data-w="100"], .departure-seasonality-bar i[data-w="100"] { width: 100%; }

.platform-links { display: inline-flex; flex-wrap: wrap; gap: 4px 6px; }
.header-badges .platform-links { margin-right: 4px; }

/* Panel wskaźników KPI: jedna tabela zamiast kart */
.kpi-table { width: 100%; table-layout: fixed; }
.kpi-table thead th:nth-child(1) { width: 34%; }
.kpi-table thead th:nth-child(2), .kpi-table thead th:nth-child(3) { width: 19%; }
.kpi-table thead th:nth-child(4) { width: 16%; }
.kpi-table thead th:nth-child(5) { width: 12%; }
.kpi-table th, .kpi-table td { padding: 9px 12px; vertical-align: top; }
.kpi-table thead th { text-transform: none; font-size: 12px; }
.kpi-table .kpi-num { text-align: right; font-variant-numeric: tabular-nums; }
.kpi-table .kpi-period { border-top: 3px solid currentColor; }
.kpi-table .kpi-period.series-a { color: var(--series-a); }
.kpi-table .kpi-period.series-b { color: var(--series-b); }
.kpi-table .kpi-period > span { color: var(--ink); font-weight: 700; }
.kpi-table .kpi-period > small { display: block; margin-top: 2px; color: var(--muted); font-weight: 400; }
.kpi-table .kpi-period i { display: inline-block; width: 8px; height: 8px; margin-right: 3px; border-radius: 50%; background: currentColor; }
.kpi-table tbody th { position: static; text-transform: none; }
.kpi-table .kpi-group-row th { padding: 12px 12px 7px; background: #f1f4f3; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 13px; }
.kpi-table .kpi-group-row small { display: block; max-width: 900px; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.4; text-transform: none; }
.kpi-table .kpi-row > th { color: var(--ink); font-size: 14px; font-weight: 600; background: var(--surface); }
.kpi-value-cell strong { display: block; font-size: 17px; line-height: 1.25; overflow-wrap: anywhere; }
.kpi-value-cell strong a { color: inherit; text-decoration: underline; text-decoration-color: #a9c2c6; text-underline-offset: 3px; }
.kpi-value-cell strong a:hover { text-decoration-color: currentColor; }
.kpi-value-cell .metric-sample { display: block; margin-top: 1px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.3; }
.kpi-table .kpi-missing strong, .kpi-table span.kpi-missing { color: var(--muted); font-size: 14px; font-weight: 400; }
.kpi-delta { font-weight: 600; }
.kpi-relative { color: var(--muted); }
.kpi-info summary { cursor: pointer; }
.kpi-info summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.kpi-info p, .kpi-info dl { max-width: 460px; margin: 8px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.45; }
.kpi-info dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; }
.kpi-info dt { font-weight: 700; color: #4b555b; }
.kpi-info dd { margin: 0; }
.kpi-info .kpi-sources a { color: #236a75; font-weight: 600; text-underline-offset: 2px; }
@media (max-width: 720px) {
  .kpi-table thead th:nth-child(1) { width: 37%; }
  .kpi-table thead th:nth-child(2), .kpi-table thead th:nth-child(3) { width: 22%; }
  .kpi-table thead th:nth-child(4) { width: 19%; }
  .kpi-table thead th:nth-child(5), .kpi-table .kpi-relative { display: none; }
  .kpi-table th, .kpi-table td { padding: 8px 8px; }
  .kpi-table .kpi-row > th { font-size: 13px; }
  .kpi-value-cell strong { font-size: 15px; }
  .kpi-table .kpi-period > small { display: none; }
}
.kpi-table tbody tr:last-child > th { border-bottom: 0; }

/* Grafik tygodnia: układ z arkusza koordynatorów — wiersz to dzień i zmiana, kolumna to auto. */
/* Relative: bez tego etykiety dla czytników ekranu (position: absolute) uciekają poza kontener
   i rozpychają całą stronę, gdy tabela jest przewinięta w prawo. */
.week-schedule-wrap { position: relative; max-height: calc(100vh - 230px); }
.week-table { width: max-content; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.week-table th, .week-table td { height: 30px; padding: 3px 7px; border-right: 1px solid #e4e8e9; border-bottom: 1px solid #eceff0; background: #fff; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.week-table thead th { position: sticky; top: 0; z-index: 3; height: 34px; background: #f8f9f9; color: #4d565c; font-size: 11px; text-transform: none; }
.week-table th.week-day { position: sticky; left: 0; z-index: 2; width: 92px; min-width: 92px; max-width: 92px; background: #f4f6f6; color: #343b3f; font-weight: 600; text-align: left; vertical-align: middle; }
.week-table thead th.week-day { z-index: 4; }
.week-table th.week-shift { position: sticky; left: 92px; z-index: 2; width: 34px; min-width: 34px; max-width: 34px; background: #f4f6f6; color: #626d72; font-weight: 700; text-align: center; box-shadow: 3px 0 6px rgb(34 43 48 / 6%); }
.week-table thead th.week-shift { z-index: 4; }
.week-table th.week-plate { width: 118px; min-width: 118px; max-width: 118px; font-weight: 700; color: #343b3f; letter-spacing: .02em; }
.week-table th.week-plate:has(.week-own-label) { background: #d9f3e6; color: #104a32; box-shadow: inset 0 -3px 0 #1f8a59; }
.week-own-label { display: block; margin-top: 2px; color: #145c3c; font-size: 10px; font-weight: 600; line-height: 12px; letter-spacing: 0; }
.week-table td.week-slot { width: 118px; min-width: 118px; max-width: 118px; color: var(--ink); }
.week-table tr.week-day { --shift-bg: #ffff00; --shift-hover: #f2f200; --shift-line: #d4bd00; --shift-ink: #302a16; --shift-muted: #6a5926; --shift-label-bg: #ffff00; --shift-label-ink: #302a16; }
.week-table tr.week-night { --shift-bg: #ff9900; --shift-hover: #f28f00; --shift-line: #ce7c00; --shift-ink: #302414; --shift-muted: #503000; --shift-label-bg: #ff9900; --shift-label-ink: #302414; }
.week-table tr.week-row td.week-slot { background: var(--shift-bg); color: var(--shift-ink); border-right-color: var(--shift-line); border-bottom-color: var(--shift-line); }
.week-table tr.week-row th.week-shift { background: var(--shift-label-bg); color: var(--shift-label-ink); border-color: var(--shift-line); }
.week-table tr.week-night td.week-slot, .week-table tr.week-night th.week-shift { border-bottom: 2px solid #9b6500; }
.week-table tr.week-day th.week-day { border-bottom: 2px solid #9b6500; }
.week-table tr.week-row td.week-free { color: var(--shift-muted); text-align: center; }
.week-table tr.week-row .week-contact { color: var(--shift-muted); }
.week-table tr.week-row:hover td.week-slot { background: var(--shift-hover); }
@media (max-width: 720px) {
  .week-table th.week-day { width: 74px; min-width: 74px; max-width: 74px; }
  .week-table th.week-shift { left: 74px; }
  .week-table th.week-plate, .week-table td.week-slot { width: 104px; min-width: 104px; max-width: 104px; }
}

/* Edycja grafiku bezpośrednio w siatce */
.week-table td.week-slot:has(.week-cell) { padding: 0; }
.week-cell { display: block; width: 100%; min-height: 29px; padding: 3px 7px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 12px; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.week-free .week-cell { color: inherit; text-align: center; }
.week-cell:hover { background: var(--shift-hover); }
.week-cell:focus-visible { outline: 2px solid #245fbd; outline-offset: -2px; }
.driver-claim-form { margin: 0; height: 100%; }
.week-unavailable { box-shadow: inset 0 0 0 1px #aab5ae; color: #59645d; font-size: 12px; }
.week-table td.week-unavailable { --shift-bg: #e4e9e6; --shift-hover: #d6ddd8; --shift-line: #b5bdb8; --shift-ink: #59645d; --shift-muted: #59645d; }
.week-unavailable > .week-unavailable-label { display: block; padding: 8px 4px; }
.week-cell.driver-claim-button { color: #073c20; background: #9ee4b4; box-shadow: inset 0 0 0 2px #268047; font-size: 12px; font-weight: 600; cursor: pointer; }
.week-cell.driver-claim-button:hover:not(:disabled) { background: #77d895; }
.week-cell.driver-claim-button:focus-visible { outline: 3px solid #174a87; outline-offset: -3px; }
.week-cell.driver-claim-button:disabled { color: #59645d; background: #e4e9e6; box-shadow: inset 0 0 0 1px #aab5ae; cursor: not-allowed; }
.driver-release-confirmation > summary { list-style: none; }
.driver-release-warning { padding: 8px; margin-top: 6px; border: 1px solid #d4a044; background: #fff6de; border-radius: 4px; font-size: 13px; }
.driver-release-warning p { margin: 6px 0; }
.driver-release-warning form { display: flex; gap: 6px; flex-wrap: wrap; }
.driver-release-warning button { white-space: normal; }
.week-table td.week-selected { outline: 3px solid #245fbd; outline-offset: -3px; }
.week-table td.week-saved { box-shadow: inset 0 0 0 2px var(--green); }
.week-schedule > .section-heading { flex-wrap: wrap; }
.week-counters { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.week-counters > span { white-space: nowrap; }
.week-table td.week-slot { position: relative; }
.week-cell[data-filled] { padding-right: 25px; }
.week-drag-handle { position: absolute; top: 0; right: 0; width: 20px; height: 27px; padding: 0; border: 0; color: #263b49; background: #ffffffb3; cursor: grab; touch-action: none; opacity: 0; font-size: 20px; }
.week-drag-handle[hidden] { display: none; }
.week-slot:hover .week-drag-handle, .week-slot:focus-within .week-drag-handle { opacity: 1; }
.week-dragging { user-select: none; cursor: grabbing; }
.week-table td.week-drop-target { outline: 3px solid #156ac4; outline-offset: -3px; }
.week-table td.week-swapped { animation: week-swap-flash 800ms ease-out; }
@keyframes week-swap-flash { 0%, 45% { box-shadow: inset 0 0 0 4px #1263b5; } 100% { box-shadow: inset 0 0 0 2px #26924b; } }
@media (pointer: coarse) { .week-drag-handle { opacity: 1; width: 25px; height: 30px; } .week-cell[data-filled] { padding-right: 25px; } }
@media (max-width: 600px) { .week-counters { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .week-table td.week-swapped { animation: none; } }
.week-table td.week-saving { box-shadow: inset 0 -3px 0 #b47712; }
.week-picker { position: fixed; z-index: 50; width: 260px; padding: 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); box-shadow: 0 8px 24px rgb(20 25 28 / 16%); }
.week-picker-where { display: block; margin: 0 2px 6px; color: var(--muted); font-size: 11px; font-weight: 600; }
.week-picker-input { width: 100%; height: 32px; padding: 0 9px; border: 1px solid #c9d1d5; border-radius: 4px; font-size: 13px; }
.week-picker-input:focus { outline: 2px solid var(--green); outline-offset: -1px; }
.week-picker-list { max-height: 264px; margin: 6px 0 0; padding: 0; overflow-y: auto; list-style: none; }
.week-picker-option { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 6px 8px; border-radius: 4px; font-size: 13px; cursor: pointer; }
.week-picker-option small { color: var(--muted); font-size: 11px; }
.week-picker-option.is-active { background: #e3eeec; }
.week-picker-option.is-clear { color: var(--red); }
.week-picker-empty { padding: 8px; color: var(--muted); font-size: 12px; }
.week-picker-error { margin: 6px 2px 0; color: var(--red); font-size: 12px; }
.schedule-vehicles > summary { display: flex; align-items: baseline; gap: 10px; cursor: pointer; }
.schedule-vehicles > summary span { font-size: 18px; font-weight: 600; }
.schedule-vehicles > summary small { color: var(--muted); font-size: 12px; }
.schedule-vehicles[open] > summary { margin-bottom: 16px; }
.week-picker-option.is-action { font-weight: 600; }
.week-picker-option.is-last-action { margin-bottom: 4px; border-bottom: 1px solid #eceff0; border-radius: 4px 4px 0 0; }
.week-picker-note { margin: 6px 2px 0; color: #5a4a12; font-size: 12px; line-height: 1.4; }

/* Logowanie kierowcy: imię i nazwisko + PIN, wygodnie na telefonie */
.driver-login-form { display: grid; gap: 14px; }
.driver-login-form input { height: 48px; font-size: 17px; }
.driver-login-form input[name="pin"] { text-align: center; letter-spacing: 10px; font-weight: 700; font-size: 22px; }
.driver-auth-help { margin: 16px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.driver-access-form { align-items: flex-end; flex-wrap: wrap; gap: 10px; }
.driver-access-form > p { flex-basis: 100%; margin: 0; }
.driver-access-form .button { max-width: 100%; white-space: normal; text-align: center; }

.driver-pickup-address { font-size: 16px; font-weight: 600; margin: 0 0 6px; overflow-wrap: anywhere; }
.driver-pickup p { margin: 0 0 6px; }
.driver-pickup-map { margin: 0; align-self: end; }
.driver-notice-initiative { border: 0; padding: 0; margin: 0; display: grid; gap: 6px; }
.driver-notice-initiative legend { font-size: 12px; font-weight: 600; margin-bottom: 4px; }
.driver-notice-initiative label { display: flex; gap: 6px; align-items: baseline; }
.driver-notice-initiative small { color: var(--muted); }
.driver-notice-form { grid-template-columns: minmax(200px, 240px) minmax(0, 1fr) minmax(150px, 180px) minmax(130px, 160px) auto; align-items: start; }
.driver-notice-form > * { min-width: 0; }
.driver-notice-form select, .driver-notice-form input[type="number"] { width: 100%; }
.driver-notice-initiative input { min-height: auto; }
.driver-notice-form .button.danger { align-self: start; margin-top: 21px; }
@media (max-width: 900px) { .driver-notice-form { grid-template-columns: 1fr; } .driver-notice-form .button.danger { margin-top: 0; justify-self: start; } }
.week-driver { display: block; overflow: hidden; text-overflow: ellipsis; }
.week-driver-claim { display: block; width: fit-content; max-width: 100%; margin-top: 2px; padding: 1px 4px; border: 1px solid #aac5e8; border-radius: 3px; background: #eaf2ff; color: #174a87; font-size: 9px; font-weight: 600; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; }
.recruitment-docusign { font-size: 10px; color: #53666c; }
.recruitment-docusign summary { cursor: pointer; padding: 2px 4px; }
.recruitment-docusign-warning { color: #925400; }
.recruitment-docusign-details { padding: 6px; white-space: normal; overflow-wrap: anywhere; }
.recruitment-docusign-details p { margin: 4px 0; }
.recruitment-docusign-details article { display: grid; gap: 3px; padding: 6px 0; border-top: 1px solid #d8e0e3; }
.week-contact { display: block; color: var(--muted); font-size: 10px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; }
.week-table td.week-slot:has(.week-contact) { vertical-align: top; }
.schedule-availability-table th[scope="row"] { min-width: 180px; font-weight: 500; font-size: 13px; text-transform: none; letter-spacing: normal; color: var(--ink); background: #fff; }
.schedule-availability-table td.availability-choice { text-align: center; font-weight: 600; min-width: 44px; }
.schedule-availability-table td.availability-choice-none { color: #b3bcc1; font-weight: 400; }
.schedule-availability-table td.availability-choice-any { color: var(--green); }
.schedule-availability-table td.availability-note { min-width: 180px; max-width: 320px; white-space: normal; }
.schedule-availability-table td.availability-sent { white-space: nowrap; font-size: 12px; color: var(--muted); }
.schedule-availability-table td.availability-sent small { display: block; }
.schedule-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.schedule-availability-table td.availability-plan { white-space: nowrap; font-size: 12px; font-weight: 600; }
.schedule-availability-table tr.availability-planned > * { background: var(--green-soft); }
.schedule-availability-table tr.availability-planned td.availability-plan { color: var(--green); }
.schedule-availability-table tr.availability-partial > * { background: #fff4b8; }
.schedule-availability-table tr.availability-partial td.availability-plan { color: #805000; }
.schedule-availability-table tr.availability-unplanned > * { background: var(--red-soft); }
.schedule-availability-table tr.availability-unplanned td.availability-plan { color: var(--red); }
.schedule-availability-table tr td.availability-choice-unassigned { background: #ffd2d2; color: #922828; box-shadow: inset 0 0 0 1px #d78080; }
.week-table th.week-plate span { display: inline-block; max-width: calc(100% - 24px); overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.week-plate-clear { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; min-height: 0; margin-left: 4px; padding: 0; border: 1px solid #d5dbde; border-radius: 4px; background: #fff; color: var(--muted); vertical-align: middle; cursor: pointer; }
.week-plate-clear svg { display: block; }
.week-plate-clear:hover, .week-plate-clear:focus-visible { border-color: var(--red); color: var(--red); background: #fdf1f1; }
.week-plate-clear:disabled { opacity: .5; cursor: wait; }
.recruitment-filter-values .recruitment-filter-month { font-weight: 600; margin-top: 4px; border-top: 1px solid #e7eaec; padding-top: 4px; }
.recruitment-filter-values .recruitment-filter-month:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.recruitment-filter-values .recruitment-filter-day { padding-left: 20px; }
.recruitment-table textarea.recruitment-note { display: block; width: 100%; min-width: 0; height: 42px; min-height: 0; margin: 0; border: 0; border-radius: 0; padding: 4px 6px; resize: none; overflow: hidden; line-height: 17px; font-size: 13px; background: transparent; color: inherit; }
.recruitment-table textarea.recruitment-note:focus { white-space: pre-wrap; overflow-wrap: anywhere; outline: 2px solid var(--green); outline-offset: -2px; position: relative; z-index: 1; }
