/* ==== report-tables.css ==== */
/* Quiet spreadsheet structure: stable labels, tabular numbers, selective color. */
.report-grid-wrap{position:relative;max-height:70vh;isolation:isolate;scrollbar-gutter:stable;border:1px solid #dce2e5;border-radius:10px;overscroll-behavior-x:contain}
.report-grid-wrap:focus-visible{outline:2px solid #2f637b;outline-offset:3px}
table.report-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:0!important;color:#17252e}
.report-grid>caption{text-align:left;padding:12px 16px;font-size:14px;font-weight:650;background:#f5f7f8}
.report-grid>thead>tr>th{position:sticky;top:0;z-index:3;background:#edf1f4;color:#374c5b;border-bottom:1px solid #cbd5dc;font-size:14px;line-height:1.4;letter-spacing:0;text-transform:none;font-weight:650;text-align:right;vertical-align:middle;padding:12px 20px 12px 14px;white-space:normal;overflow-wrap:anywhere}
.report-grid>thead>tr>th:first-child{text-align:left;left:0;z-index:4}
.report-grid>tbody>tr>th,.report-grid>tbody>tr>td,.report-grid>tfoot>tr>th,.report-grid>tfoot>tr>td{font-size:14px;line-height:1.5;padding:11px 14px!important;border:0;border-bottom:1px solid #e5e9ec;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}
.report-grid>tbody>tr>th:first-child,.report-grid>tfoot>tr>th:first-child{position:sticky;left:0;z-index:2;background:#fff;text-align:left;font-weight:550;text-transform:none;letter-spacing:0;border-right:1px solid #e0e6eb;color:#263c49}
.report-grid>tbody>tr:nth-child(even)>td:not(.cue-cell){background:#fafbfc}
.report-grid td.numeric{font-family:var(--font);font-variant-numeric:tabular-nums lining-nums;font-weight:550;text-align:right;white-space:nowrap}
.report-grid .cell-action{font:inherit;color:inherit;text-decoration:none;max-width:100%;line-height:1.4;width:auto;white-space:normal;overflow-wrap:anywhere}
.report-grid .cell-action:hover{text-decoration:underline;text-underline-offset:3px}
.report-grid>tbody>tr:hover>th,.report-grid>tbody>tr:hover>td{box-shadow:inset 0 1px #afc2ce,inset 0 -1px #afc2ce}
.report-grid>tfoot>tr>th,.report-grid>tfoot>tr>td,.report-grid .history-total{background:#edf3f8!important;font-weight:750!important;border-top:1px solid #c7d6e2!important;color:#1d3b50}
.report-grid>tfoot>tr>th,.report-grid>tfoot>tr>td{position:sticky;bottom:0;z-index:2}
.report-grid>tfoot>tr>th:first-child{z-index:3;background:#edf3f8}
.report-grid>tbody>tr[data-report-expansion]>td{background:#f7f9fa;padding:18px!important}
.report-grid .coverage-mark{font-weight:650;color:#73531c;font-size:14px}



.report-colors-off .report-grid .cue-cell{background:transparent;color:inherit}
.report-colors-off .report-grid>tbody>tr:nth-child(even)>.cue-cell{background:#fafbfc}
@media(pointer:coarse){.column-resizer{display:none}}
@media(max-width:600px){.top{padding:12px 16px;gap:8px}.top .wordmark img{width:124px;height:auto}.top .wordmark span{display:none}.header-actions{gap:6px;min-width:0}.top .admin-menu summary{max-width:134px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top #signout{font-size:13px;padding:8px}.top .wordmark{flex-shrink:0}.page-view,.page-detail,[data-history-results]{min-width:0;max-width:100%}}
.report-table-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:12px 0 8px;flex-wrap:wrap;font-size:14px;color:#526571}
.report-table-tools button{min-height:36px;padding:5px 10px;font-size:14px;border:1px solid #dce2e5;background:#fff;border-radius:7px;font-weight:500;white-space:nowrap}
.report-table-tools .table-color-toggle[aria-pressed=true]{border-color:#a7bfb2;background:#f0f6f3;color:#24523e}
.report-color-key{margin-right:auto;font-size:14px}
.column-resizer{position:absolute;right:-1px;top:0;bottom:0;width:13px;cursor:col-resize;touch-action:none;z-index:5;border:0}
.column-resizer::after{content:'';position:absolute;top:25%;bottom:25%;left:6px;width:1px;background:#b9c6ce}
.column-resizer:hover::after,.column-resizer:focus-visible::after{width:3px;background:#336780}
.column-resizer:focus-visible{outline:2px solid #336780;outline-offset:-2px}
.resizing-column,.resizing-column *{cursor:col-resize!important;user-select:none!important}
.report-grid .sort-column{justify-content:flex-end;text-align:right;width:100%;padding-right:4px;font-size:14px}
.report-grid th:first-child .sort-column{justify-content:flex-start;text-align:left}
.page-view .history-view{margin-bottom:12px}.page-view .history-panel{margin-top:12px;padding-top:12px}
@media(max-width:600px){.report-grid-wrap{max-height:65vh}.report-grid>thead>tr>th{padding:10px 18px 10px 12px}.report-color-key{flex-basis:100%;font-size:14px}.report-table-tools{gap:6px}.page-detail{padding:14px}.report-grid col:first-child{width:clamp(120px,45vw,164px)!important}.report-grid>thead>tr>th:first-child,.report-grid>tbody>tr>th:first-child,.report-grid>tfoot>tr>th:first-child{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.report-grid-wrap{scroll-behavior:auto}}
/* Schedule-edit drill-down (2026-09-24) */
.history-table .schedule-detail-open{font:inherit;color:inherit;min-height:0;padding:0;text-align:right;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}
.history-table .schedule-detail-open[aria-expanded=true]{text-decoration-style:solid;font-weight:700}
.schedule-detail{margin-top:20px;padding-top:16px;border-top:1px solid var(--line,#ddd)}
.schedule-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.schedule-detail-head h3{margin:0;font-size:18px;overflow-wrap:anywhere}
.schedule-detail-actions{display:flex;gap:8px;flex-wrap:wrap}
.schedule-detail-status{font-size:14px;color:var(--muted,#555);margin:10px 0}
.schedule-detail-table{max-height:70vh}
.schedule-detail-table table{min-width:1080px}
.schedule-detail-table td{white-space:normal;vertical-align:top;overflow-wrap:anywhere}
.schedule-detail-table td:first-child{white-space:nowrap}
/* Hour/day shape follows the Labor Windows MTO matrix; colors use fixed counts. */
.mto-forecast-table{max-height:70vh;overflow:auto;isolation:isolate;border:1px solid var(--line,#ddd);border-radius:10px;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.mto-forecast-table table{width:100%;min-width:680px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.mto-forecast-table th,.mto-forecast-table td{padding:0;border:0;border-right:1px solid #fff;border-bottom:1px solid #fff;text-align:center;font-size:13px;letter-spacing:0;text-transform:none;white-space:nowrap}
.mto-forecast-table thead th{position:sticky;top:0;z-index:3;height:36px;background:#C05B33;color:#fff;font-weight:650}
.mto-forecast-table th:first-child{width:72px;position:sticky;left:0;z-index:2;background:#fff;color:var(--ink,#111);font-weight:600}
.mto-forecast-table thead th:first-child{z-index:4;background:#fff;color:var(--muted,#555)}
.mto-forecast-table tbody th{height:32px}
.mto-forecast-table .mto-total,.mto-forecast-table tfoot th{background:#e5efe9;color:#1c3a2d;font-weight:700;height:32px}
.mto-forecast-table .mto-total.numeric{padding:0 10px}.mto-forecast-table .mto-cell.numeric{text-align:center}
.mto-cell button{display:block;width:100%;min-height:32px;padding:4px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;line-height:1.2;text-align:center;font-weight:550}
.mto-cell button:hover,.mto-cell button:focus-visible{box-shadow:inset 0 0 0 2px #1c3a2d;outline:0}
.mto-zero{background:#FAF8F3}.mto-low{background:#F4E0D6}.mto-medium{background:#EAC0AF}.mto-high{background:#DBA084}.mto-peak{background:#C05B33;color:#fff}
.mto-unknown{background:repeating-linear-gradient(135deg,#faf8f3 0 5px,#eee8dc 5px 6px);color:#65766d}.mto-held{background:#f3f3f0;color:#65766d}.mto-closed,.mto-not-occurring{background:#f6f4ef;color:#888}
.mto-reliability,.mto-cell-detail,.mto-source,.mto-legend{font-size:12px;line-height:1.5;color:var(--muted,#555);margin:8px 0}
.mto-legend{display:flex;gap:5px 14px;flex-wrap:wrap}.mto-legend i{display:inline-block;width:13px;height:13px;border-radius:2px;margin-right:4px;vertical-align:-2px}.mto-source summary{cursor:pointer;min-height:32px}.mto-source p{font-size:12px;margin:4px 0}.mto-controls{margin:8px 0;gap:8px}.mto-controls label{font-size:12px}.mto-controls select{font-size:14px}.mto-cell-detail{min-height:18px}
@media(max-width:560px){.mto-forecast-table{max-height:65vh}.mto-forecast-table table{min-width:648px}.mto-forecast-table th:first-child{width:64px}.mto-forecast-table th,.mto-forecast-table td{font-size:12px}.mto-controls select{max-width:100%}}
@media(pointer:coarse){.mto-cell button{min-height:44px}}
.mto-local{margin:8px 0 20px;padding:12px 0 4px;border-top:1px solid var(--line,#ddd)}.mto-local h4{margin:0 0 6px;font-size:15px;display:flex;gap:8px;align-items:center}.mto-local-badge{font-size:11px;font-weight:650;padding:2px 8px;border-radius:999px;background:#FFF4D6;color:#6B4E00;border:1px solid #E8D28A}

.report-grid>tbody>tr>th,.report-grid>tbody>tr>td,.report-grid>tfoot>tr>th,.report-grid>tfoot>tr>td{padding:5px 12px!important;line-height:1.35}.report-grid>thead>tr>th{padding-top:7px;padding-bottom:7px}
.mto-local-table{max-height:70vh;overflow:auto;isolation:isolate;border:1px solid var(--line,#ddd);border-radius:10px;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.mto-local-table table{width:100%;min-width:680px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.mto-local-table th,.mto-local-table td{padding:0 4px;height:32px;border:0;border-right:1px solid #fff;border-bottom:1px solid #fff;text-align:center;font-size:13px;letter-spacing:0;text-transform:none;white-space:nowrap}
.mto-local-table thead th{position:sticky;top:0;z-index:3;height:36px;background:#C05B33;color:#fff;font-weight:650}
.mto-local-table th:first-child{width:84px;position:sticky;left:0;z-index:2;background:#fff;color:var(--ink,#111);font-weight:600}
.mto-local-table thead th:first-child{z-index:4;background:#fff;color:var(--muted,#555)}
.mto-local-table .mto-local-total,.mto-local-table tfoot th{background:#e5efe9;color:#1c3a2d;font-weight:700}
.mto-local-table td.numeric{text-align:center;vertical-align:middle}
.mto-local-meta,.mto-local-legend{font-size:12px;line-height:1.5;color:var(--muted,#555);margin:8px 0}.mto-local-legend{display:flex;gap:5px 14px;flex-wrap:wrap}
@media(max-width:560px){.mto-local-table{max-height:65vh}.mto-local-table table{min-width:648px}.mto-local-table th:first-child{width:72px}.mto-local-table th,.mto-local-table td{font-size:12px}}

.mto-local-outside{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.mto-local-outside button{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--line,#ccc);background:#fff;cursor:pointer}
.hv-week{display:flex;align-items:center;gap:10px;margin:0 0 8px}.hv-week select{min-height:44px}
.hv-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hv-status,.hv-flag{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.8125rem;font-weight:700;background:#e6e9ec;color:#3b4650}
.hv-status[data-state=good]{background:#CFE8D5;color:#155C33}.hv-status[data-state=watch],.hv-flag{background:#F6E3B4;color:#7A4B00}
.hv-cell .hv-pair,.hv-cell .hv-pct{display:block;white-space:nowrap}.hv-cell .hv-pct{font-size:.75rem;opacity:.8}.hv-flag{margin-top:2px}

/* Schedule & MTOs: two day x hour tables, click a day for hourly bars beside shift lines. */
.schedule-mto h3{margin:0 0 8px;font-size:1.125rem}.schedule-mto h4{margin:14px 0 6px;font-size:.9375rem}
.sm-tables{display:grid;gap:4px 24px;grid-template-columns:repeat(2,minmax(0,1fr))}.sm-tables>div{min-width:0}
@media(max-width:1100px){.sm-tables{grid-template-columns:1fr}}
.sm-table{max-height:60vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overscroll-behavior-x:contain}
.sm-table table{width:100%;min-width:580px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.sm-table th,.sm-table td{padding:0 2px;height:30px;border:0;border-right:1px solid #fff;border-bottom:1px solid #fff;text-align:center;vertical-align:middle;color:#14202b;font-size:12.5px;font-weight:500;white-space:nowrap;text-transform:none;letter-spacing:0}
.sm-table thead th{position:sticky;top:0;z-index:2;height:auto;background:#1d3b50;color:#fff;font-weight:650;padding:0}
.sm-table th:first-child{width:46px;position:sticky;left:0;z-index:1;background:var(--surface);color:var(--ink);font-weight:600}
.sm-table thead th:first-child{background:var(--surface);color:var(--muted);z-index:3}
.sm-day{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:100%;min-height:28px;padding:2px 1px;cursor:pointer;font-size:10px;line-height:1.05;text-align:center;color:inherit}.sm-dow{font-weight:700;font-size:10.5px;white-space:nowrap}.sm-date{font-size:11px;white-space:nowrap}.sm-md{font-size:12.5px}.sm-src{font-size:8px;line-height:1.05;max-width:100%;font-weight:600;opacity:.9;white-space:normal;overflow-wrap:anywhere}
.sm-table thead th .sm-day:hover{background:rgba(255,255,255,.16);color:#fff}.sm-dow{margin-bottom:1px}.sm-actuals-note{margin:8px 0 0}
.sm-day:focus-visible{outline:2px solid #fff;outline-offset:-3px}.sm-table thead th.sm-selected{background:#0c2233}.sm-table thead th.sm-total-head{width:52px;font-size:11.5px}.sm-table .sm-none,.sm-table .sm-withheld{color:#5d6770;background:#f4f5f6}
.sm-cell{cursor:pointer}.sm-cell.sm-selected{box-shadow:inset 0 0 0 2px var(--ink)}
.sm-table .sm-today{border-left:2px solid #a95c00!important}.sm-table thead th.sm-today{background:#7b4a12}.sm-table .sm-actual{font-size:inherit;font-weight:inherit;color:inherit}.sm-pair-sep{color:#7a8790}.sm-pair-note{margin:0 0 5px;font-size:.75rem}
.schedule-mto-wrap{box-sizing:border-box;width:100%;min-width:0;max-width:100%;margin-inline:0;overflow:hidden}
@media(min-width:1280px){.sm-day .sm-dow{font-size:10.5px}.sm-day .sm-src{font-size:8px}}
.sm-table tfoot th,.sm-total{background:#edf3f8;color:#14202b;font-weight:700}
.sm-hint{margin:10px 0 0}
.sm-detail{margin:16px 0 8px;padding:14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.sm-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sm-detail-head h4{margin:0;font-size:1rem;outline:none}
.sm-detail-sub{margin:4px 0 10px;color:var(--muted);font-size:.875rem}
.sm-chart-wrap{overflow-x:auto;overscroll-behavior-x:contain}.sm-chart{display:block;max-width:none;font-family:var(--font)}
.sm-grid{stroke:var(--line);stroke-width:1}.sm-axis{font-size:11px;fill:var(--muted)}.sm-title{font-size:11px;font-weight:700;fill:var(--ink-2)}
.sm-bar{fill:#2f6f8f}.sm-bar-label{font-size:11px;font-weight:650;fill:var(--ink)}.sm-bar-label.sm-bar-in{fill:#fff}
.sm-role-mum{--role:#603D87}.sm-role-manager{--role:#193C63}.sm-role-lead{--role:#A64B00}.sm-role-barista{--role:#007F73}.sm-role-other{--role:#6B7480}.sm-swatch{background:var(--role,#6B7480)}.sm-shift{stroke:var(--role,#6B7480);stroke-width:8;stroke-linecap:round;opacity:.92}.sm-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;padding:0;font-size:.875rem}.sm-legend li,.sm-shift-list i{display:inline-flex;align-items:center;gap:6px}.sm-legend i,.sm-shift-list i{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.sm-shift-list li>span:first-child{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.sm-shift-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:4px 16px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));font-size:.875rem}.sm-shift-list li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:3px 0}.sm-shift-list span{color:var(--muted);white-space:nowrap}

/* Schedule page: the generic table/chart controls hide when Schedule & MTOs is chosen; hours rows read Worked over Scheduled. */
[data-schedule-generic][hidden],.schedule-mto-wrap[hidden],[data-schedule-filters][hidden]{display:none!important}
.schedule-filters-toggle{align-self:end;min-height:44px}
.schedule-edit-kinds{margin:0 0 8px}
.schedule-edit-number{font:inherit;font-variant-numeric:tabular-nums;text-decoration:underline;text-underline-offset:2px}
.hv-mto-number{font:inherit;font-variant-numeric:tabular-nums;text-decoration:underline;text-underline-offset:2px}
.hv-two-row .hv-kind{text-transform:none;letter-spacing:0;font-weight:500;font-size:.8125rem;color:var(--muted);text-align:left;white-space:nowrap}
.hv-two-row tbody tr[data-hv-row=scheduled]>*{border-bottom:1px solid var(--line)}
.hv-two-row .hv-var{vertical-align:middle;text-align:right}.hv-two-row .hv-var .hv-pct,.hv-two-row .hv-var .hv-flag{display:block}
.sm-table td.numeric,.sm-table th.numeric{text-align:center;vertical-align:middle}
/* P29-15/16: numbers and their headers share one edge (right); the first column (region / leader / store) is left. Only the grid's own cells: the inline drill table keeps the shared drill-grid alignment. */
.schedule-centered>table>tbody>tr:not([data-detail-below])>td,.schedule-centered>table>tfoot>tr>td{text-align:right;vertical-align:middle;color:#14202b}
.schedule-centered>table>thead>tr>th{text-align:right;vertical-align:middle}.schedule-centered>table>thead>tr>th:first-child{text-align:left}
.schedule-centered{max-height:70vh;overflow:auto;position:relative;isolation:isolate}
.schedule-centered>table{border-collapse:separate;border-spacing:0}
.schedule-centered>table>thead>tr>th{position:sticky;top:0;z-index:3;background:var(--surface,#fff)}
.schedule-centered>table>thead>tr>th:first-child{left:0;z-index:4}
.schedule-centered>table>tbody>tr>th:first-child{position:sticky;left:0;z-index:2;background:var(--surface,#fff)}
.schedule-centered.hv-two-row>table>tbody>tr>th.hv-kind{position:static}
.dh-dow,.dh-md{display:block;line-height:1.2}.dh-dow{font-weight:700}
/* Region / leader / store indent on Schedule tables. A class, not a style attribute: the page CSP (style-src 'self') drops inline styles. */
th.hier-indent-0,.report-grid>tbody>tr>th.hier-indent-0{padding-left:8px!important}th.hier-indent-1,.report-grid>tbody>tr>th.hier-indent-1{padding-left:24px!important}th.hier-indent-2,.report-grid>tbody>tr>th.hier-indent-2{padding-left:40px!important}th.hier-indent-3,.report-grid>tbody>tr>th.hier-indent-3{padding-left:56px!important}th.hier-indent-4,.report-grid>tbody>tr>th.hier-indent-4{padding-left:72px!important}th.hier-indent-5,.report-grid>tbody>tr>th.hier-indent-5{padding-left:88px!important}th.hier-indent-6,.report-grid>tbody>tr>th.hier-indent-6{padding-left:104px!important}

.lto-table th.lto-depth-1{padding-left:24px}.lto-table th.lto-depth-2{padding-left:44px}.lto-table tr.lto-region>th,.lto-table tr.lto-region>td,.lto-table tr.lto-total>th,.lto-table tr.lto-total>td{font-weight:700}.lto-table tr.lto-leader>th{font-weight:600}.lto-table td.numeric,.lto-table thead th:not(:first-child){text-align:right}

/* Collapsible region / leader / store rows on report pages (collapsible-rows.js): the toggle reads as row text, like Snapshot. */
.collapsible-toggle{all:unset;box-sizing:border-box;display:inline-flex;gap:6px;align-items:center;cursor:pointer;font:inherit;font-weight:700;color:inherit;padding:3px 0;line-height:1.4;text-transform:none;letter-spacing:0;white-space:normal;text-align:left;border-radius:6px}
.collapsible-toggle:focus-visible{outline:2px solid var(--focus,#1c3a2d);outline-offset:2px}
th.collapsible-store{text-transform:none;letter-spacing:0;font-weight:500}
th.collapsible-depth-1{padding-left:24px!important}th.collapsible-depth-2{padding-left:44px!important}
.capture-table td.numeric,.capture-table thead th:not(:first-child){text-align:right}.capture-table tr.capture-total>th,.capture-table tr.capture-total>td{font-weight:700}.capture-table td.capture-na{color:var(--muted,#5b6b62)}
.lto-brand-title{margin:18px 0 8px;font-size:17px}.lto-brand+.lto-brand{margin-top:22px}
/* ACS donations report (acs-panel.js). */
.acs-table td.numeric,.acs-table thead th:not(:first-child){text-align:right}.acs-table tr.acs-total>th,.acs-table tr.acs-total>td,.acs-table td.acs-total-cell{font-weight:700}.acs-section-title{margin:18px 0 8px;font-size:1rem}

/* P27c: shared drill-table helper (data-table-key). Sticky header, aligned headings, top scrollbar, draggable columns. */
.drill-grid-wrap,.drill-top-scroll{scroll-behavior:auto}
.drill-grid-wrap{overflow:auto;max-height:60vh;position:relative;scrollbar-gutter:stable}
.drill-grid>thead>tr>th{position:sticky;top:0;z-index:3;background:#edf1f4;color:#374c5b;box-shadow:inset 0 -1px #cbd5dc}
.drill-grid>thead>tr>th.drill-right,.drill-grid>thead>tr>th.drill-right .sort-column{text-align:right;justify-content:flex-end}
.drill-grid>thead>tr>th.drill-left,.drill-grid>thead>tr>th.drill-left .sort-column{text-align:left;justify-content:flex-start}
.drill-grid>thead>tr>th.drill-center,.drill-grid>thead>tr>th.drill-center .sort-column{text-align:center;justify-content:center}
.drill-grid>thead>tr>th.drill-reorderable{cursor:grab}
.drill-grid>thead>tr>th.drill-dragging{opacity:.5}
.drill-grid>thead>tr>th.drill-drop-target{box-shadow:inset 3px 0 #2f637b,inset 0 -1px #cbd5dc}
.drill-grid-frame{max-width:100%;min-width:0}
.drill-top-scroll{overflow-x:auto;overflow-y:hidden;height:14px;max-width:100%;margin-bottom:2px}
.drill-top-scroll[hidden]{display:none}
.drill-top-scroll-inner{height:1px}

/* P35: Schedule no longer widens main (it was 2200px). Every page keeps the standard content width (grove.css main); wide tables scroll inside their own frame (.sm-table, .detail-table, .drill-grid-wrap). */
/* P29-17 / N3: a numeric header reads on the same right edge as its numbers (same horizontal padding as the cells). */
.report-grid>thead>tr>th.numeric{text-align:right}
.report-grid>thead>tr>th{padding-left:12px;padding-right:12px}
.hv-two-row .hv-var .hv-flag{width:max-content;margin-left:auto}
/* P35: flat schedule tables separate Total with the same thin grey rule as every other table (only the grouped table keeps heavy rules). */
.schedule-centered:not(.hv-two-row)>table td.history-total,.schedule-centered:not(.hv-two-row)>table th.history-total{border-left:1px solid #e0e6eb}
/* P29-10: the inline drill sits in a row of the sideways-scrolling grid. Pin it to the visible width of the grid frame (container units) so its text wraps inside the screen at 390 instead of running off the right edge. */
.schedule-centered.report-grid-wrap{container-type:inline-size;width:100%;max-width:100%}
.schedule-centered .detail-below-row>td>*{position:sticky;left:12px;box-sizing:border-box;width:calc(100cqw - 24px);max-width:calc(100cqw - 24px)}

/* P37: page width is 1200px everywhere. grove.css sets main to 1440px and loads after this file, so the selector is more specific. */
body main{max-width:1200px}

/* Compact seven-day views fit a desktop card; intrinsic content still scrolls on phones. */
.schedule-centered>table,.daily-measure-matrix>table{min-width:760px;width:100%;table-layout:auto}
.schedule-centered>table>thead>tr>th,.schedule-centered>table>tbody>tr>td,.schedule-centered>table>tbody>tr>th,.daily-measure-matrix>table>thead>tr>th,.daily-measure-matrix>table>tbody>tr>td,.daily-measure-matrix>table>tfoot>tr>td{padding:9px 6px;letter-spacing:0}
.schedule-centered>table>thead>tr>th:first-child,.daily-measure-matrix>table>thead>tr>th:first-child{white-space:normal;max-width:190px}
.schedule-centered .cell-action,.daily-measure-matrix .cell-action{padding:4px 0;min-height:32px}
.daily-measure-matrix>table>thead>tr>th:not(:first-child),.daily-measure-matrix>table td.numeric{text-align:right}
.daily-measure-matrix>table>tbody>tr>th{text-transform:none;letter-spacing:0}
.daily-measure-matrix details{min-width:0}
.daily-measure-matrix .report-expansion{min-width:320px}

.schedule-centered>table.report-grid>tbody>tr>th,.schedule-centered>table.report-grid>tbody>tr>td,.schedule-centered>table.report-grid>thead>tr>th{padding:9px 6px!important}

.sm-table .sm-cell{user-select:none;cursor:crosshair}.sm-table .sm-range{box-shadow:inset 0 0 0 2px #193c63;background:#d9e9f7!important}.sm-cell:focus-visible{outline:2px solid #193c63;outline-offset:-3px}.dl-wage-rate{font-size:.78em;font-weight:500;white-space:nowrap}

/* Status is also visible in text, tooltip and accessible shift labels. */
.sm-shift.sm-draft{stroke-dasharray:4 3;stroke-linecap:butt}
/* ==== trend-matrix.css ==== */
/* P12 trend matrix (stores x dates, headline cells, component rows). Layout hooks for P13 (mobile) live here:
   .trend-matrix-wrap (outer), .trend-matrix (scroll box), .tm-table, .tm-row/.tm-group/.tm-store/.tm-total, .tm-component,
   .tm-label / .tm-component-label (sticky first column), .tm-total-col (period total), .tm-note. */
.trend-matrix-wrap{--tm-grid:#e8e8e8;--tm-head-bg:#1d3b50;--tm-head-ink:#fff;--tm-subtotal-bg:#e8f1f8;--tm-total-bg:#dbe8f3;--tm-component-ink:#4a5d6b;--tm-first-col:220px;margin:0 0 12px}
.trend-matrix{position:relative;max-width:100%;max-height:min(75vh,900px);overflow:auto;overscroll-behavior-x:contain;border:1px solid var(--tm-grid);background:#fff}
.trend-matrix>.tm-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}
.tm-table th,.tm-table td{border-right:1px solid var(--tm-grid);border-bottom:1px solid var(--tm-grid);padding:6px 10px;white-space:nowrap}
.tm-table td.numeric{text-align:right}
/* Sticky header row and sticky first column (the corner sits above both). */
.tm-table>thead>tr>th{position:sticky;top:0;z-index:3;background:var(--tm-head-bg);color:var(--tm-head-ink);font-weight:650;text-align:center;vertical-align:middle;white-space:normal}
.tm-table>thead>tr>th.tm-corner{left:0;z-index:4;text-align:left;min-width:var(--tm-first-col)}
.tm-table>tbody>tr>th,.tm-table>tfoot>tr>th{position:sticky;left:0;z-index:2;background:#fff;text-align:left;min-width:var(--tm-first-col);max-width:320px;overflow:hidden;text-overflow:ellipsis}
.tm-table .tm-total-col,.tm-table td:last-child{border-left:2px solid #b8c4cc;font-weight:600}
/* Subtotal (region / district) and grand-total rows: bold, light-blue fill, per FORMAT_PREFERENCES rollup rows. */
.tm-table tr.tm-group>th,.tm-table tr.tm-group>td:not([data-heat]){background:var(--tm-subtotal-bg)}
.tm-table tr.tm-group>*{font-weight:650}
.tm-table>tfoot>tr.tm-total>th,.tm-table>tfoot>tr.tm-total>td:not([data-heat]){background:var(--tm-total-bg)}
.tm-table>tfoot>tr.tm-total>*{font-weight:700;border-top:2px solid #b8c4cc}
/* Component rows sit under their row, same columns, quieter type (schedule worked-vs-scheduled pattern). */
.tm-table tr.tm-component>th,.tm-table tr.tm-component>td{color:var(--tm-component-ink);font-size:.8125rem;background:#fafbfc;font-weight:500}
.tm-table tr.tm-component>th{padding-left:28px}
.tm-table td.negative{color:#b42318}
.tm-toggle{font:inherit;font-weight:inherit;text-align:left;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.tm-toggle:focus-visible{outline:2px solid #1d6fb8;outline-offset:2px}
.tm-caret{display:inline-block;width:1em}
.tm-note{margin-top:6px}
/* Win over the generic .detail-table / history table th rules (centered, uppercase) for the row-label column. */
.trend-matrix-wrap .trend-matrix>.tm-table>tbody>tr>th,.trend-matrix-wrap .trend-matrix>.tm-table>tfoot>tr>th{text-align:left;text-transform:none;letter-spacing:0;font-size:.875rem}
.trend-matrix-wrap .trend-matrix>.tm-table>tbody>tr.tm-component>th{font-size:.8125rem;font-weight:500;padding-left:32px}
.trend-matrix-wrap .trend-matrix>.tm-table>thead>tr>th{text-transform:none;letter-spacing:0}
/* ==== trend-matrix.mobile.css ==== */
/* P13 trend matrix, mobile. Breakpoints: <640 | 640-1100 | >1100 (this file only uses the first).
   Portrait <640px: cards (.tm-cards) replace the table. Landscape or >=640px: the P12 table with horizontal scroll. */
.trend-matrix-wrap .tm-cards{display:none}
.tm-card{border:1px solid var(--tm-grid,#e8e8e8);background:#fff;margin:0 0 10px;border-radius:10px;overflow:hidden}
.tm-card-group{background:var(--tm-subtotal-bg,#e8f1f8)}
.tm-card-total{background:var(--tm-total-bg,#dbe8f3)}
.tm-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;min-height:44px;padding:10px 12px;font:inherit;font-weight:650;text-align:left;background:none;border:0;border-bottom:1px solid var(--tm-grid,#e8e8e8);cursor:pointer;color:inherit}
.tm-card-head:focus-visible{outline:2px solid #1d6fb8;outline-offset:-2px}
.tm-card-name{min-width:0;overflow-wrap:anywhere}
.tm-card-total{flex:none;font-variant-numeric:tabular-nums;font-weight:700;background:none}
.tm-card-total-label{font-size:.75rem;font-weight:500;color:var(--tm-component-ink,#4a5d6b);margin-right:4px}
.tm-tiles{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--tm-grid,#e8e8e8)}
.tm-tile{display:flex;flex-direction:column;gap:2px;padding:8px 12px;background:#fff;font-variant-numeric:tabular-nums}
.tm-tile[data-heat]{background:var(--tm-heat,#fff)}
.tm-tile-date{font-size:.75rem;color:#33434f}
.tm-tile-val{font-weight:650}
.tm-tile-why{display:block;margin-top:2px;font-size:11px;line-height:1.25;font-weight:400;color:#5f655c}
.tm-tile.negative .tm-tile-val{color:#b42318}
.tm-crows{padding:4px 12px 8px;background:#fafbfc}
.tm-crow{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--tm-grid,#e8e8e8);font-size:.875rem;color:var(--tm-component-ink,#4a5d6b);font-variant-numeric:tabular-nums}
.tm-crow:last-child{border-bottom:0}
.tm-crow-val{font-weight:650;color:#1b2a35;text-align:right}
/* U6 (UI2): opening a region or store greys every other card too (feedback 6). */
.tm-card.row-dim,.tm-card.row-dim .tm-tile{background:#e9ebe5!important;color:#8b9187!important}
.tm-card.row-dim .tm-crow-val,.tm-card.row-dim .tm-tile-val{color:#8b9187}
@media (max-width:639.98px) and (orientation:portrait){
 .trend-matrix-wrap .trend-matrix{display:none}
 .trend-matrix-wrap .tm-cards{display:block}
 .trend-matrix-wrap.scoped-point .trend-matrix{display:block}
 .trend-matrix-wrap.scoped-point .tm-cards{display:none}
 .trend-matrix-wrap.store-rows .trend-matrix{display:block}
 .trend-matrix-wrap.store-rows .tm-cards{display:none}
 .trend-matrix-wrap.single-date .trend-matrix>.tm-table{width:100%;min-width:0;table-layout:fixed}
 .trend-matrix-wrap.single-date .tm-table th,.trend-matrix-wrap.single-date .tm-table td{white-space:normal;overflow-wrap:anywhere;padding:6px 4px}
 .trend-matrix-wrap.single-date .tm-table>thead>tr>.tm-corner,
 .trend-matrix-wrap.single-date .tm-table>tbody>tr>th,
 .trend-matrix-wrap.single-date .tm-table>tfoot>tr>th{width:48%;min-width:0;max-width:none;overflow-wrap:anywhere;text-overflow:clip}
 .trend-matrix-wrap.single-date .tm-table>thead>tr>:nth-child(2),
 .trend-matrix-wrap.single-date .tm-table>tbody>tr>:nth-child(2),
 .trend-matrix-wrap.single-date .tm-table>tfoot>tr>:nth-child(2){width:26%}
 .trend-matrix-wrap.single-date:not(.no-total-column) .tm-table>thead>tr>:nth-child(3),
 .trend-matrix-wrap.single-date:not(.no-total-column) .tm-table>tbody>tr>:nth-child(3),
 .trend-matrix-wrap.single-date:not(.no-total-column) .tm-table>tfoot>tr>:nth-child(3){width:26%}
 .trend-matrix-wrap.single-date.no-total-column .tm-table>thead>tr>:nth-child(2),
 .trend-matrix-wrap.single-date.no-total-column .tm-table>tbody>tr>:nth-child(2),
 .trend-matrix-wrap.single-date.no-total-column .tm-table>tfoot>tr>:nth-child(2){width:52%}
}
