/* 2026-08-24 主管フィードバック対応（FB-04/05/08/09/12/13）の表示レイヤー。
   既存レイアウトを壊さないよう、追加した要素だけに限定して定義する。 */

/* ── 受付五段階（FB-04 / FB-05） ───────────────────────────── */
.reception-case-row { cursor: pointer; }
.reception-case-row:hover { background: #f4f8fd; }
.reception-case-row.open { background: #eef5ff; }

/* 受付一覧は列数が多く、最後の受付状況列が0幅に潰れて段組みが崩れる。
   列幅を明示し、五段階は折り返さず1行に収める。 */
.reception-detail-scroll table { width: 100%; table-layout: fixed; }
.reception-detail-scroll th,
.reception-detail-scroll .reception-case-row > td {
    padding: 3px 6px; vertical-align: middle;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.reception-detail-scroll th:nth-child(1), .reception-case-row > td:nth-child(1) { width: 40px; }
.reception-detail-scroll th:nth-child(2), .reception-case-row > td:nth-child(2) { width: 104px; }
.reception-detail-scroll th:nth-child(4), .reception-case-row > td:nth-child(4) { width: 46px; }
.reception-detail-scroll th:nth-child(5), .reception-case-row > td:nth-child(5) { width: 52px; }
.reception-detail-scroll th:nth-child(6), .reception-case-row > td:nth-child(6) { width: 74px; }
.reception-detail-scroll th:nth-child(7), .reception-case-row > td:nth-child(7) { width: 172px; }

.reception-steps { display: flex; flex-wrap: nowrap; gap: 2px; }
.reception-step {
    font-size: 10px; line-height: 1.4; padding: 0 4px; border-radius: 8px;
    border: 1px solid transparent; white-space: nowrap;
}
.reception-step.is-done    { background: #e8f6ee; border-color: #9bd3b4; color: #1f7a45; }
.reception-step.is-waiting { background: #fff6e5; border-color: #f0c877; color: #97650d; }
.reception-step.is-error   { background: #fdecea; border-color: #eba49c; color: #b23c2c; }
.reception-step.is-pending { background: #f2f4f7; border-color: #d6dbe2; color: #7c8794; }
.reception-step.is-unknown { background: #f4f0fa; border-color: #cdbde6; color: #6a4a9c; }

.reception-attention {
    display: block; color: #b23c2c; font-size: 10px; line-height: 1.3;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.reception-step-detail > td { background: #fafcff; padding: 8px 10px; }
.reception-step-list { display: flex; flex-direction: column; gap: 4px; }
.reception-step-line {
    display: grid; grid-template-columns: 150px 60px 120px 170px 1fr;
    gap: 8px; align-items: baseline; font-size: 12px;
    padding: 4px 8px; border-left: 3px solid #d6dbe2; background: #fff;
}
.reception-step-line.is-done    { border-left-color: #35a667; }
.reception-step-line.is-waiting { border-left-color: #e4b728; }
.reception-step-line.is-error   { border-left-color: #c95549; }
.reception-step-line.is-unknown { border-left-color: #8d56c5; }
.reception-step-line b { font-weight: 600; }
.reception-step-line time,
.reception-step-line em { color: #6b7683; font-style: normal; }
.reception-step-line .reception-step-state { font-weight: 600; }
.reception-step-line.is-error .reception-step-state { color: #b23c2c; }
.reception-step-line.is-waiting .reception-step-state { color: #97650d; }
.reception-step-line .reception-step-reason { color: #4a5561; }

@media (max-width: 1100px) {
    .reception-step-line { grid-template-columns: 1fr; gap: 2px; }
}

/* ── 見積・排程の予定納期入力（FB-09） ─────────────────────── */
.schedule-sheet .planned-datetime {
    width: 138px; font-size: 12px; padding: 2px 4px;
    border: 1px solid #b9c4d0; border-radius: 3px;
}
.schedule-sheet .planned-datetime:focus { outline: 2px solid #3678d4; outline-offset: -1px; }

/* ── 個人面板が空のときの説明（FB-15） ─────────────────────── */
.fw-empty .fw-empty-reason {
    margin-top: 6px; font-size: 12px; color: #97650d;
    background: #fff6e5; border: 1px solid #f0c877; border-radius: 4px; padding: 6px 10px;
}

/* ── 進捗看板：状態別グループ廃止後の行境界（FB-08） ────────── */
.progress-board-table tbody .case-row.date-break > td { border-top: 2px solid #c9d4e2; }

/* 4.3.2: 見積・排程の順番は日付グループを持たない連番。 */
.schedule-sheet .schedule-continuous-seq { padding-top: 3px !important; }
.schedule-sheet .schedule-continuous-seq > b { display: inline-block; min-width: 24px; }

/* 4.3.2: 排程結果は顧客看板編集の下部で予定納期まで確認する。 */
.customer-board-schedule-result .calendar-case-deadline {
    display: block;
    overflow: hidden;
    margin-top: 3px;
    color: #61758c;
    font-size: 8px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 4.3.3: 日历移動後の人員分配一覧は残りの画面高を使い、表内でスクロールする。 */
.personnel-v41 { display: flex; flex-direction: column; height: calc(100vh - 24px); min-height: 560px; }
.personnel-v41 > .card { margin-bottom: 8px; }
.personnel-v41 .personnel-list-section { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; margin-bottom: 0; }
.personnel-v41 .personnel-table-scroll {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto !important;
}
.personnel-table .personnel-continuous-seq { padding-top: 3px !important; }
.personnel-table .personnel-continuous-seq > b { display: inline-block; min-width: 24px; }
.personnel-legend,.schedule-legend { display:inline-flex; align-items:center; gap:5px; border:1px solid #ccd6e3; border-radius:12px; padding:3px 9px; font-size:11px; }
.personnel-legend-open,.schedule-legend-unplanned { background:#fff0c7; border-color:#d7a93a; color:#74520a; }
.personnel-legend-confirmed,.schedule-legend-scheduled { background:#dff3e7; border-color:#65ad7c; color:#1f6a3b; }
.schedule-save-notice { display:inline-flex; align-items:center; min-height:23px; padding:2px 9px; border:1px solid #65ad7c; border-radius:12px; background:#e7f7ed; color:#176437; font-size:11px; font-weight:800; }
.personnel-table tbody tr.personnel-row-confirmed > td { background:#f1faf4; }
.personnel-table tbody tr.personnel-row-unassigned > td,
.personnel-table tbody tr.personnel-row-preassigned > td { background:#fffbef; }

/* 4.3.26 responsive density and workflow clarity */
:root{--es-fluid-font:clamp(10px,.32vw + 7px,14px)}
body,button,input,select,textarea{font-size:var(--es-fluid-font)}
.btn{font-size:clamp(10px,.28vw + 7px,13px)}
.page-heading h2{font-size:clamp(20px,1.15vw,28px)}
.schedule-control-row{align-items:stretch}
.schedule-filter-stack{display:grid;grid-template-columns:1fr;gap:5px}
.schedule-business-level,.schedule-usage-level{display:grid!important;grid-template-columns:72px minmax(190px,1fr) minmax(260px,1.35fr);gap:6px;align-items:center}
.business-slot,.usage-subgroup{display:flex;gap:5px;flex-wrap:wrap;min-width:0}
.schedule-live-total{padding:4px 9px;border-radius:14px;font-weight:700;background:#eef3f8;color:#315889}
.schedule-live-total.exact{background:#e7f6ec;color:#237453}.schedule-live-total.under{background:#fff6dc;color:#9b6a00}.schedule-live-total.over{background:#fff0ee;color:#b54338}
.schedule-sheet-v4326{table-layout:fixed;min-width:1450px}
.schedule-sheet-v4326 .seq-col{width:38px}.schedule-sheet-v4326 .schedule-request-col{width:145px}.schedule-sheet-v4326 .schedule-project-col{width:235px}.schedule-sheet-v4326 .preassign-col{width:92px}
.schedule-sheet-v4326 td:nth-child(2),.schedule-sheet-v4326 td:nth-child(3){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.personnel-filter-table{table-layout:fixed;min-width:1320px}.personnel-filter-table .seq-col{width:42px}.personnel-filter-table .personnel-request-col{width:150px}.personnel-filter-table .personnel-project-col{width:270px}
.personnel-filter-table th:nth-child(4){width:100px}.personnel-filter-table th:nth-child(5){width:62px}.personnel-filter-table th:nth-child(6){width:95px}.personnel-filter-table th:nth-child(7){width:64px}.personnel-filter-table th:nth-child(8),.personnel-filter-table th:nth-child(9){width:115px}.personnel-filter-table th:nth-child(10){width:110px}.personnel-filter-table th:nth-child(11){width:125px}
.personnel-filter-table th select,.progress-board-table th select{width:100%;min-width:0;border:0;background:#edf3f8;font-weight:700;font-size:inherit;padding:2px}
.personnel-row-unassigned>td{background:#fff0d6!important}.personnel-row-preassigned>td{background:#fff9e9!important}.personnel-row-confirmed>td{background:#e7f6ed!important}.personnel-row-editing>td{background:#dcecff!important;box-shadow:inset 0 2px #2f67a5,inset 0 -2px #2f67a5}
.personnel-actions .btn:disabled{background:#dce2e8!important;color:#89939d!important;border-color:#d3dbe3!important;cursor:not-allowed}
.formal-monthly-table tr:has(.badge-cancelled)>td,.progress-board-table tr[style*="c95549"]>td{background:#eeeeee!important;color:#777;text-decoration-color:#aaa}
.dashboard-adjustment-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:8px 0}.dashboard-adjustment-filters label{display:flex;gap:5px;align-items:center}.dashboard-adjustment-filters input,.dashboard-adjustment-filters select{height:30px;border:1px solid #cfd9e3;border-radius:4px;padding:3px 7px}
.dashboard-adjustment-table{max-height:260px;overflow:auto}.dashboard-adjustment-table table{width:100%;border-collapse:collapse}.dashboard-adjustment-table th,.dashboard-adjustment-table td{padding:6px 9px;border-bottom:1px solid #dce4ec;text-align:left}.dashboard-adjustment-table th{position:sticky;top:0;background:#edf3f8}
@media(max-width:1280px){:root{--es-fluid-font:10px}.schedule-business-level,.schedule-usage-level{grid-template-columns:58px 1fr 1.45fr}.schedule-sheet-v4326{min-width:1250px}.personnel-filter-table{min-width:1180px}}

/* 月内の操作一覧は状態が変わっても同じ行を残す。 */
.schedule-sheet tbody tr.schedule-state-scheduled:not(.editing) > td { background:#e1f3e7!important; border-bottom-color:#afd5bc; }
.schedule-sheet tbody tr.schedule-state-unplanned:not(.editing) > td { background:#fff0c9!important; border-bottom-color:#e4c66f; }
.schedule-sheet tbody tr.schedule-state-scheduled:not(.editing):hover > td { background:#d3ebdc!important; }
.schedule-sheet tbody tr.schedule-state-unplanned:not(.editing):hover > td { background:#ffe7aa!important; }
.schedule-sheet tbody tr.editing > td { background:#dcecff!important; }
.schedule-state-level>button { min-width:76px; }
.schedule-state-level>button.schedule-filter-unplanned { background:#fff0c9; border-color:#e4c66f; color:#684b05; }
.schedule-state-level>button.schedule-filter-scheduled { background:#e1f3e7; border-color:#afd5bc; color:#1f6338; }
.schedule-state-level>button.schedule-filter-unplanned.active { background:#ffe3a0!important; border-color:#b98200!important; color:#5c4100!important; box-shadow:inset 0 0 0 2px #d3a32f; }
.schedule-state-level>button.schedule-filter-scheduled.active { background:#cfead8!important; border-color:#368a55!important; color:#18542e!important; box-shadow:inset 0 0 0 2px #69ae80; }
/* 別行クリックで現行を保存して次行へ移れるよう、旧ロックCSSのクリック遮断を解除。 */
.schedule-sheet tbody tr.locked { pointer-events:auto!important; }
.schedule-sheet th.schedule-day-col,.schedule-sheet td:nth-child(n+9):nth-child(-n+15) { width:64px; min-width:64px; }
.schedule-sheet th.estimate-col,.schedule-sheet th.unplanned-col { width:52px; min-width:52px; }
.schedule-sheet th.planned-deadline-col,.schedule-sheet td.planned-deadline-cell { width:154px; min-width:154px; }
.planned-segments { display:flex; align-items:center; gap:2px; white-space:nowrap; }
.planned-segments span { color:#475569; font-variant-numeric:tabular-nums; }
.planned-segments input { width:27px !important; min-width:27px !important; padding:4px 2px !important; text-align:center; font-variant-numeric:tabular-nums; }
.formal-monthly-table th:nth-child(1){width:4%!important}.formal-monthly-table th:nth-child(2){width:10%!important}.formal-monthly-table th:nth-child(3){width:16%!important}.formal-monthly-table th:nth-child(4){width:8%!important}.formal-monthly-table th:nth-child(5){width:8%!important}.formal-monthly-table th:nth-child(6){width:7%!important}.formal-monthly-table th:nth-child(7){width:6%!important}.formal-monthly-table th:nth-child(8){width:12%!important}.formal-monthly-table th:nth-child(9){width:4%!important}.formal-monthly-table th:nth-child(10){width:7%!important}.formal-monthly-table th:nth-child(11){width:8%!important}.formal-monthly-table th:nth-child(12){width:10%!important}
.formal-monthly-table tr.formal-row-focus > td { background:#eef5ff; box-shadow:inset 0 1px #8eb4e4,inset 0 -1px #8eb4e4; }

/* 個人パネル：作図・検図を分離し、大画面でも操作を見失わない密度にする。 */
.my-work-card { padding-top:10px; }
.my-work-role-tabs { display:flex; gap:8px; margin-bottom:8px; }
.my-work-card .fw-task { display:grid; grid-template-columns:minmax(0,3fr) minmax(260px,1fr); align-items:center; min-height:58px; padding:8px 12px; }
.my-work-card .fw-task-main { min-width:0; }
.my-work-card .fw-task-role { flex:0 0 28px; min-width:28px; justify-content:center; padding:3px 4px; white-space:nowrap; }
.my-work-card .fw-task-main > div { display:grid; grid-template-columns:minmax(260px,1fr) minmax(430px,1.35fr) auto; align-items:center; column-gap:12px; min-width:0; }
.my-work-card .fw-task-main b,.my-work-card .fw-task-main small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.my-work-card .fw-task-title { display:flex; align-items:center; gap:7px; min-width:0; }
.my-work-card .fw-task-request { flex:0 0 76px; width:76px; overflow:hidden; font-family:var(--font-mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.my-work-card .fw-task-project { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.my-work-card .fw-task-meta { display:grid!important; grid-template-columns:minmax(138px,1fr) minmax(138px,1fr) minmax(65px,.55fr) minmax(95px,.75fr); align-items:center; gap:5px; }
.my-work-card .fw-task-meta>span { display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:3px; min-width:0; }
.my-work-card .fw-task-meta em { overflow:hidden; color:#7b8796; font-size:9px; font-style:normal; white-space:nowrap; }
.my-work-card .fw-task-meta time { overflow:hidden; color:var(--text-muted); font-size:9px; font-variant-numeric:tabular-nums; text-overflow:ellipsis; white-space:nowrap; }
.my-work-card .fw-task-actions { display:flex; justify-content:flex-start; gap:8px; padding-left:18px; }
.my-work-card .fw-task-actions .btn { min-width:74px; min-height:32px; font-weight:700; }
@media (max-width:1200px) { .my-work-card .fw-task-main > div { grid-template-columns:1fr; row-gap:4px; } .my-work-card .fw-task-meta { grid-template-columns:repeat(2,minmax(135px,1fr)); } }
.progress-board-table .daily-seq { white-space: nowrap; text-align: right; }
.progress-board-table .daily-seq small { display: block; color: #6b7683; font-size: 10px; text-align: left; }
.progress-board-table .daily-seq b { font-variant-numeric: tabular-nums; }
.delivery-export-progress{margin:10px 0 12px;padding:10px 12px;border:1px solid #b9cbe0;border-radius:8px;background:#f7fbff}.delivery-export-progress-head{display:flex;gap:12px;align-items:center;margin-bottom:9px}.delivery-export-progress-head span{color:#52657b}.delivery-export-progress-head em{margin-left:auto;color:#b24836;font-style:normal}.delivery-export-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.delivery-export-step{display:flex;align-items:center;gap:6px;min-height:34px;padding:5px 7px;border-radius:6px;background:#e8edf3;color:#647386}.delivery-export-step i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;font-style:normal;font-weight:700}.delivery-export-step b{font-size:11px}.delivery-export-step small{margin-left:auto}.delivery-export-step.done{background:#dff3e7;color:#237448}.delivery-export-step.active{background:#dce9f8;color:#214f86;box-shadow:inset 0 0 0 1px #6f98c7}.delivery-export-step.error{background:#f8dfdb;color:#a7382d}

/* 4.3.11: 件名登録で新規/修正を確認でき、既存の分件も計画図を先頭表示する。 */
.confirmation-table th:nth-child(1){width:4%!important}.confirmation-table th:nth-child(2){width:13%!important}.confirmation-table th:nth-child(3){width:13%!important}.confirmation-table th:nth-child(4){width:7%!important}.confirmation-table th:nth-child(5){width:9%!important}.confirmation-table th:nth-child(6){width:7%!important}.confirmation-table th:nth-child(7){width:7%!important}.confirmation-table th:nth-child(8){width:5%!important}.confirmation-table th:nth-child(9){width:12%!important}.confirmation-table th:nth-child(10){width:12%!important}.confirmation-table th:nth-child(11){width:11%!important}
.formal-monthly-table th:nth-child(1){width:4%!important}.formal-monthly-table th:nth-child(2){width:9%!important}.formal-monthly-table th:nth-child(3){width:15%!important}.formal-monthly-table th:nth-child(4){width:8%!important}.formal-monthly-table th:nth-child(5){width:6%!important}.formal-monthly-table th:nth-child(6){width:7%!important}.formal-monthly-table th:nth-child(7){width:6%!important}.formal-monthly-table th:nth-child(8){width:7%!important}.formal-monthly-table th:nth-child(9){width:12%!important}.formal-monthly-table th:nth-child(10){width:4%!important}.formal-monthly-table th:nth-child(11){width:7%!important}.formal-monthly-table th:nth-child(12){width:7%!important}.formal-monthly-table th:nth-child(13){width:8%!important}
.new-revision-cell{text-align:center}.new-revision-toggle{min-width:58px}.new-revision-toggle button{padding:2px!important;font-size:8px!important}.new-revision-badge{display:inline-block;min-width:34px;padding:2px 5px;border:1px solid #aab6c3;border-radius:10px;background:#f1f4f7;color:#687482;font-size:9px;font-weight:700;text-align:center}.new-revision-badge.is-new{border-color:#71b489;background:#e3f5e9;color:#1f7040}.new-revision-badge.is-revision{border-color:#dfa24d;background:#fff0d9;color:#8c560a}.new-revision-badge.is-unknown{border-color:#b8c1cb;background:#f1f3f5;color:#6f7882}

/* 4.3.19: 登録済み件名の月内順番を直接入力して永続化する。 */
.formal-order-hint{color:#617184;font-size:10px;font-weight:600;white-space:nowrap}
.formal-monthly-table .formal-order-input{width:42px!important;min-width:42px;height:23px!important;padding:1px 2px!important;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.formal-monthly-table .formal-order-input{-moz-appearance:textfield;appearance:textfield}
.formal-monthly-table .formal-order-input::-webkit-inner-spin-button,.formal-monthly-table .formal-order-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.formal-monthly-table .formal-order-input:disabled{opacity:.55;cursor:wait}

/* 4.3.27: 契約能力の工数拡大と、案件別の時間外を分離する。 */
.adjustment-horizontal{grid-template-columns:auto minmax(155px,1.15fr) minmax(150px,1fr) 76px 88px 76px 78px!important;align-content:start}
.adjustment-date-add{display:flex;gap:4px}.adjustment-date-add input{min-width:112px}.adjustment-date-add .btn{height:27px;white-space:nowrap}
.adjustment-date-chips{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:4px;min-height:20px}
.adjustment-date-chips span,.adjustment-list span{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid #b9cbe0;border-radius:10px;background:#fff;color:#31506f;white-space:nowrap}
.adjustment-date-chips i,.adjustment-list i{color:#b33b32;font-style:normal;font-weight:800;cursor:pointer}
.adjustment-horizontal .adjustment-list{grid-column:2/-1!important}
.schedule-sheet-v4326{min-width:1530px}
.schedule-sheet-v4326 .overtime-col{width:68px!important;min-width:68px!important}
.schedule-overtime{text-align:center;font-weight:700;color:#687789}.schedule-overtime.active{background:#fff0df!important;color:#b34a2f!important}
.delivery-derived-overtime{background:#f3f6f9;color:#2d4f73;font-weight:700;text-align:right}
@media(max-width:1280px){.adjustment-horizontal{grid-template-columns:auto minmax(140px,1fr) minmax(135px,1fr) 68px 78px 68px 72px!important}.schedule-sheet-v4326{min-width:1390px}}

/* 4.3.28: 日別入力直後の差分値と、担当者からの属地自動判定。 */
.schedule-sheet-v4326{min-width:1595px}
.schedule-sheet-v4326 .balance-col{width:64px!important;min-width:64px!important}
.schedule-balance{padding:0 4px!important;text-align:center;font-weight:900;font-variant-numeric:tabular-nums}
.schedule-balance.under{background:#fff1ca!important;color:#985f00}.schedule-balance.exact{background:#def3e6!important;color:#1f7547}.schedule-balance.over{background:#fee3df!important;color:#b13e32}
.personnel-site-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}
.personnel-site-groups>section{padding:9px;border:1px solid #cfdae6;border-radius:7px;background:#f8fafc;min-width:0}
.personnel-site-groups h4{margin:0 0 7px;color:#294f7b}.personnel-site-groups label{display:block;margin:7px 0 4px;color:#51667d;font-size:11px;font-weight:700}
.personnel-selection-summary{margin-top:10px;padding:7px 10px;border-radius:5px;background:#edf4fb;color:#294f7b;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1280px){.schedule-sheet-v4326{min-width:1450px}.personnel-site-groups{grid-template-columns:1fr}}

/* 1021: keep dates readable and display complete case identities. */
.schedule-sheet th.planned-deadline-col,.schedule-sheet td.planned-deadline-cell{width:205px!important;min-width:205px!important}
.planned-segments{width:max-content;min-width:190px;flex-wrap:nowrap}
.planned-segments input{flex:0 0 32px!important;width:32px!important;min-width:32px!important;box-sizing:border-box}
.schedule-sheet td:nth-child(2),.schedule-sheet td:nth-child(3),.progress-board-table td:nth-child(2),.progress-board-table td:nth-child(3){white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;line-height:1.5}
.schedule-sheet td:nth-child(3) b,.progress-board-table td:nth-child(3) strong{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}

.schedule-workbench-v41 .schedule-sheet-scroll{overflow-x:auto!important}
.schedule-sheet.schedule-sheet-v4326{min-width:1595px!important}
.progress-board-table{min-width:1700px!important;max-width:none}
.progress-board-table th:nth-child(2),.progress-board-table td:nth-child(2){width:150px!important}
.progress-board-table th:nth-child(3),.progress-board-table td:nth-child(3){width:240px!important}
.progress-board-scroll{overflow-x:auto!important}

/* Cancelled rows stay visible; completed rows are read-only in scheduling. */
.formal-table tr.assignment-cancelled-row>td,.schedule-sheet tr.assignment-cancelled-row>td,.progress-board-table tr.status-cancelled>td{background:#b7bec5!important;color:#26323b!important}
.schedule-sheet tr.assignment-delivered-row>td{background:#edf7f1}

.formal-monthly-table .row-actions{white-space:normal!important}.formal-monthly-table .row-actions .btn{display:inline-block;margin:2px 2px 2px 0;white-space:nowrap}

/* Cancellation takes precedence over scheduled / selected row colours. */
.schedule-sheet tbody tr.assignment-cancelled-row:not(.editing)>td,
.schedule-sheet tbody tr.assignment-cancelled-row:not(.editing):hover>td {background:#d1d5db!important;color:#303b45!important;}
.schedule-selection-actions {display:flex;align-items:center;gap:12px;padding:8px 12px;}
.progress-board-table td.book1-date {white-space:pre-line!important;min-width:108px;overflow:visible;line-height:1.4;}
.progress-board-table td.book1-notes {min-width:180px;max-width:260px;white-space:normal;}
.book1-notes button {text-align:left;white-space:normal;border:0;background:none;color:inherit;}
.progress-board-table th button {border:0;background:transparent;color:inherit;cursor:pointer;}
.progress-page-v41 .progress-board-table {min-width:2100px!important;}
.progress-page-v41 .progress-board-table th:nth-child(10),.progress-page-v41 .progress-board-table td:nth-child(10),
.progress-page-v41 .progress-board-table th:nth-child(17),.progress-page-v41 .progress-board-table td:nth-child(17){width:120px!important;}
.progress-page-v41 .progress-board-table th:nth-child(18),.progress-page-v41 .progress-board-table td:nth-child(18){width:220px!important;}
.progress-page-v41 .progress-board-table th:nth-child(19),.progress-page-v41 .progress-board-table td:nth-child(19){width:150px!important;white-space:normal;}
.cancellation-mask .modal{padding:24px;}
.cancellation-mask p{margin:14px 0;line-height:1.7;}
.cancellation-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;background:#f3f6f5;padding:14px;margin:12px 0;}
.cancellation-facts dd{text-align:right;font-variant-numeric:tabular-nums;}
.cancellation-mask .modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;}

.personnel-table tr.assignment-cancelled-row>td{background:#e5e7e8!important;color:#64706f;}

.schedule-status-badge{display:inline-block;margin:4px 0 0 8px;padding:2px 6px;border:1px solid #6b7280;border-radius:4px;font-size:11px;white-space:nowrap;background:#fff;color:#374151}.schedule-status-badge.delivered{border-color:#39876b;color:#24634e}
