/* Scheduling (B2, DEV-330 round 2). Scoped under .gch-m-scheduling (the tool) and .sd-pop (its popovers).
   Job layer: toolbar, notices, grid | divider | Gantt | side panel, footer. Company/division layer: Milestones across
   jobs. Gantt colours: blue activities; the critical path in heavier ink with the word "critical" (not red: a plan
   whose critical path is intact is not a job on fire); orange for the today line, the selected path and anything
   that needs a decision (open roadblocks, lead times); red only for late against the baseline or today and for
   entries that failed. Hairlines, no shadows, no rounded corners; chamfer only on the save chip. */

.gch-m-scheduling{--sd-row:30px;--sd-head:44px;--g-bar:#3f7fc4;--g-prog:#8fbdf0;--g-off:var(--bg2);--g-off-o:.9}
html[data-theme="light"] .gch-m-scheduling{--g-bar:#2b5f9e;--g-prog:#16437a;--g-off:var(--line);--g-off-o:.45}
.gch-m-scheduling .mid{color:var(--mid)}
.gch-m-scheduling .num{font-variant-numeric:tabular-nums}
.gch-m-scheduling .hint{font-size:12.5px;color:var(--mid);line-height:1.45}
.gch-m-scheduling .sd-late{color:var(--danger);font-weight:600}
.gch-m-scheduling .sd-ahead,.gch-m-scheduling .ms-ahead{color:var(--ok);font-weight:600}
.gch-m-scheduling .sd-crit-w{color:var(--ink);font-weight:700}
.gch-m-scheduling .sd-attn{color:var(--o-txt);font-weight:600}
.gch-m-scheduling.is-full{overflow:hidden}
.gch-m-scheduling .sd-lnk{padding:0;background:none;border:0;font:inherit;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:2px;cursor:pointer;text-align:left}
.gch-m-scheduling .sd-lnk:hover{text-decoration-color:var(--ink)}
.gch-m-scheduling a{color:inherit}

/* ------------------------------------------------------------------ toolbar */
.gch-m-scheduling .sd-top{flex:none;border-bottom:1px solid var(--line2)}
.gch-m-scheduling .sd-bar{display:flex;align-items:center;gap:2px var(--s1);flex-wrap:wrap;padding:var(--s1) var(--gut)}
.gch-m-scheduling .sd-mi{position:relative;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 10px;background:none;border:1px solid transparent;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;white-space:nowrap}
.gch-m-scheduling .sd-mi::after{content:"";position:absolute;left:0;right:0;top:50%;height:var(--tap);transform:translateY(-50%)}
.gch-m-scheduling .sd-mi .mid{font-weight:400;font-size:13px}
.gch-m-scheduling .sd-mi .car{width:14px;height:14px;color:var(--mid)}
.gch-m-scheduling .sd-mi:hover,.gch-m-scheduling .sd-mi[aria-expanded="true"]{border-color:var(--edge);background:var(--bg3)}
.gch-m-scheduling .sd-mi.is-on{box-shadow:inset 0 -2px 0 var(--o)}
.gch-m-scheduling .sd-mi:focus-visible{outline:1px solid var(--o);outline-offset:-1px}
.gch-m-scheduling .sd-sep{width:1px;height:24px;margin:0 var(--s2);background:var(--line)}
.gch-m-scheduling .sd-ps{display:inline-flex;align-items:center;gap:var(--s2);font-size:13px;color:var(--ink2);white-space:nowrap}
.gch-m-scheduling .sd-ps input{min-height:32px;height:32px;padding:0 var(--s2);font-size:13px}
.gch-m-scheduling .sd-details{border-color:var(--line2);font-variant-numeric:tabular-nums}
.gch-m-scheduling .sd-find{flex:0 1 240px;min-width:160px;margin-left:auto}

/* notices (alerts, banners, context line) */
.gch-m-scheduling .sd-notices:empty{display:none}
.gch-m-scheduling .sd-notices > p{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin:0;padding:6px var(--gut);font-size:13px;color:var(--ink2);border-top:1px solid var(--line)}
.gch-m-scheduling .sd-notices > p > .i{flex:none;width:16px;height:16px;color:var(--mid)}
.gch-m-scheduling .sd-notices > p > span{flex:1 1 320px;min-width:0}
.gch-m-scheduling .sd-notices > p > span.gch-marker{flex:none}
.gch-m-scheduling .sd-side .btn:not(.btn-p):not(.btn-q),.gch-m-scheduling .sd-opt .btn:not(.btn-p),.gch-m-scheduling .sd-notices .btn:not(.btn-p):not(.btn-q){border-color:var(--line2)}
.gch-m-scheduling .sd-side .btn:not(.btn-p):not(.btn-q):hover,.gch-m-scheduling .sd-opt .btn:not(.btn-p):hover{border-color:var(--edge)}
.gch-m-scheduling .sd-notices b{color:var(--ink);font-weight:600}
.gch-m-scheduling .sd-alert{background:var(--danger-tint);box-shadow:inset 3px 0 0 var(--danger)}
.gch-m-scheduling .sd-alert > .i{color:var(--danger) !important}
.gch-m-scheduling .sd-alert.is-info{background:var(--bg2);box-shadow:inset 3px 0 0 var(--edge)}
.gch-m-scheduling .sd-alert.is-info > .i{color:var(--ink2) !important}
.gch-m-scheduling .sd-banner{background:var(--o-tint);box-shadow:inset 3px 0 0 var(--o)}
.gch-m-scheduling .sd-note{background:var(--bg2)}
.gch-m-scheduling .sd-context{font-size:12.5px !important;color:var(--mid) !important}
.gch-m-scheduling .sd-q{margin-left:auto;padding:0;background:none;border:0;font:inherit;font-size:13px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap}
.gch-m-scheduling .sd-q:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}

/* ------------------------------------------------------------------ workspace */
.gch-m-scheduling .sd-wrap{flex:1;min-height:0;display:flex}
.gch-m-scheduling .sd-split{flex:1;min-width:0;min-height:0;display:flex}
.gch-m-scheduling .sd-gpane{flex:none;width:var(--gw,720px);max-width:75%;min-width:0;overflow:scroll;background:var(--bg);outline:0}
.gch-m-scheduling .sd-divider{flex:none;width:6px;background:var(--line);cursor:col-resize;touch-action:none;border-left:1px solid var(--line2)}
.gch-m-scheduling .sd-divider:hover,.gch-m-scheduling .sd-divider:focus-visible{background:var(--o);outline:0}
.gch-m-scheduling .sd-cpane{flex:1;min-width:0;overflow:scroll;background:var(--bg)}
.gch-m-scheduling .sd-split.is-sheet .sd-gpane{flex:1;width:auto;max-width:none}
.gch-m-scheduling .sd-split.is-sheet .sd-divider,.gch-m-scheduling .sd-split.is-sheet .sd-cpane{display:none}
.gch-m-scheduling.is-rowdrag,.gch-m-scheduling.is-rowdrag *{cursor:grabbing !important}

/* grid */
.gch-m-scheduling .sd-grid{position:relative;min-width:100%}
.gch-m-scheduling .sd-ghead{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:var(--cols);height:var(--sd-head);background:var(--bg);border-bottom:1px solid var(--line2)}
.gch-m-scheduling .sd-hc{position:relative;display:flex;align-items:center;min-width:0;padding:0 8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);white-space:nowrap;cursor:pointer;user-select:none;outline:0}
.gch-m-scheduling .sd-hc .t{overflow:hidden;text-overflow:ellipsis}
.gch-m-scheduling .sd-hc.is-num{justify-content:flex-end}
.gch-m-scheduling .sd-hc.is-calc .t{font-style:italic}
.gch-m-scheduling .sd-hc:hover{color:var(--ink)}
.gch-m-scheduling .sd-hc:focus-visible{box-shadow:inset 0 0 0 1px var(--o)}
.gch-m-scheduling .sd-hc.is-drag{background:var(--o-tint);color:var(--ink)}
.gch-m-scheduling .sd-hc.c-num{position:sticky;left:0;z-index:5;justify-content:flex-end;background:var(--bg);cursor:default}
.gch-m-scheduling .sd-rs{position:absolute;right:-3px;top:8px;bottom:8px;width:7px;cursor:col-resize;touch-action:none;z-index:2;border-right:1px solid var(--line)}
.gch-m-scheduling .sd-rs:hover,.gch-m-scheduling .sd-rs:focus-visible{background:var(--o);outline:0}
.gch-m-scheduling .sd-gbody{position:relative}
.gch-m-scheduling .sd-row{display:grid;grid-template-columns:var(--cols);height:var(--sd-row);border-bottom:1px solid var(--line);background:var(--bg);font-size:13px}
.gch-m-scheduling .sd-c{position:relative;display:flex;align-items:center;gap:5px;min-width:0;padding:0 8px;overflow:hidden;white-space:nowrap;color:var(--ink2);font-variant-numeric:tabular-nums;outline:0;cursor:cell}
.gch-m-scheduling .sd-c.is-num{justify-content:flex-end}
.gch-m-scheduling .sd-c.c-title{color:var(--ink)}
.gch-m-scheduling .sd-c .tx{min-width:0;overflow:hidden;text-overflow:ellipsis}
.gch-m-scheduling .sd-c.is-ro{color:var(--mid);cursor:default}
.gch-m-scheduling .sd-c:focus{box-shadow:inset 0 0 0 1px var(--o)}
.gch-m-scheduling .sd-c.is-cs{background:var(--o-tint)}
.gch-m-scheduling .sd-c.is-cut{outline:1px dashed var(--o);outline-offset:-3px}
.gch-m-scheduling .sd-c.is-err{box-shadow:inset 0 -2px 0 var(--danger);color:var(--danger)}
.gch-m-scheduling .sd-c.is-editing{padding:0;box-shadow:inset 0 0 0 1px var(--o);background:var(--field)}
.gch-m-scheduling .sd-c.is-editing.c-title{padding-left:8px}
.gch-m-scheduling .sd-in{flex:1;width:100%;min-width:0;height:100%;min-height:0;padding:0 7px;border:0;background:transparent;font-size:13px;color:var(--ink);outline:0}
.gch-m-scheduling select.sd-in{padding-right:24px;background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%}
.gch-m-scheduling .sd-in[aria-invalid="true"]{color:var(--danger)}
.gch-m-scheduling .c-num{position:sticky;left:0;z-index:2;padding:0;background:inherit}
.gch-m-scheduling .sd-num{display:flex;align-items:center;justify-content:flex-end;gap:4px;width:100%;height:100%;padding:0 8px 0 4px;background:none;border:0;font:inherit;font-size:12.5px;color:var(--mid);font-variant-numeric:tabular-nums;cursor:grab}
.gch-m-scheduling .sd-num:hover{color:var(--ink);background:var(--bg3)}
.gch-m-scheduling .sd-num:focus-visible{outline:1px solid var(--o);outline-offset:-1px}
.gch-m-scheduling .sd-num .dia{display:inline-block;width:6px;height:6px;background:var(--ink2);transform:rotate(45deg)}
.gch-m-scheduling .sd-ind{flex:none;display:inline-block}
.gch-m-scheduling .sd-tw,.gch-m-scheduling .sd-tw-s{flex:none;display:inline-grid;place-items:center;width:18px;height:18px}
.gch-m-scheduling .sd-tw{padding:0;background:none;border:1px solid var(--line2);font:inherit;font-size:13px;line-height:1;color:var(--ink2);cursor:pointer}
.gch-m-scheduling .sd-tw:hover{border-color:var(--edge);color:var(--ink)}
.gch-m-scheduling .sd-flag{flex:none;display:inline-grid;place-items:center;width:16px;height:16px;margin-left:auto;background:var(--o);color:var(--on-o);font-size:11px;font-weight:700;line-height:1}
.gch-m-scheduling .sd-task{flex:none;display:inline-grid;place-items:center;width:20px;height:20px;padding:0;background:none;border:1px solid var(--line2);color:var(--ink2);cursor:pointer}
.gch-m-scheduling .sd-task:hover{border-color:var(--edge);color:var(--ink)}
.gch-m-scheduling .sd-task .i{width:13px;height:13px}
.gch-m-scheduling .sd-task.is-off{border-style:dashed;color:var(--mid);cursor:default}
.gch-m-scheduling .sd-flag + .sd-task{margin-left:0}
.gch-m-scheduling .sd-gen{flex:none;display:inline-flex;color:var(--o-txt)}
.gch-m-scheduling .sd-gen .i{width:13px;height:13px}
.gch-m-scheduling .sd-cons{text-decoration:underline dotted var(--mid);text-underline-offset:3px}
.gch-m-scheduling .sd-row .lk{flex:none;width:14px;height:14px;color:var(--mid)}
.gch-m-scheduling .sd-row:hover{background:var(--bg2)}
.gch-m-scheduling .sd-row.is-sum{background:var(--bg2)}
.gch-m-scheduling .sd-row.is-sum .sd-c{color:var(--ink);font-weight:600}
.gch-m-scheduling .sd-row.is-sum .sd-c.is-ro{color:var(--ink2)}
.gch-m-scheduling .sd-row.is-crit .c-num{box-shadow:inset 3px 0 0 var(--ink)}
.gch-m-scheduling .sd-row.is-crit .sd-num{color:var(--ink);font-weight:700}
.gch-m-scheduling .sd-row.is-pred,.gch-m-scheduling .sd-row.is-succ{background:color-mix(in srgb,var(--o) 5%,var(--bg))}
.gch-m-scheduling .sd-row.is-pred .c-num,.gch-m-scheduling .sd-row.is-succ .c-num{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--o) 55%,transparent)}
.gch-m-scheduling .sd-row.is-sel{background:var(--bg3)}
.gch-m-scheduling .sd-row.is-sel .c-num{box-shadow:inset 3px 0 0 var(--o)}
.gch-m-scheduling .sd-row.is-rowsel{background:var(--o-tint)}
.gch-m-scheduling .sd-row.is-rowsel .sd-num{color:var(--o-txt);font-weight:700}
.gch-m-scheduling .sd-row.is-cutrow{opacity:.55}
.gch-m-scheduling .sd-row.is-invalid .c-num{box-shadow:inset 3px 0 0 var(--danger)}
.gch-m-scheduling .sd-row.is-grp{display:flex;background:var(--bg2)}
.gch-m-scheduling .sd-row.is-grp .c-grp{flex:1;position:sticky;left:0;gap:8px;padding-left:12px;color:var(--ink);cursor:default;overflow:visible}
.gch-m-scheduling .sd-row.is-grp .c-grp b{font-weight:600}
.gch-m-scheduling .sd-row.is-grp .c-grp .mid{font-size:12.5px}
.gch-m-scheduling .sd-row.is-proc .sd-c{cursor:pointer}
.gch-m-scheduling .sd-row.is-proc .sd-num{cursor:pointer}
.gch-m-scheduling .sd-sublink{color:var(--ink);text-decoration:none;font-weight:500}
.gch-m-scheduling .sd-sublink:hover{text-decoration:underline;text-underline-offset:2px}
.gch-m-scheduling .sd-empty-row{padding:var(--s6) var(--s4);color:var(--mid);font-size:13.5px}
.gch-m-scheduling .c-week,.gch-m-scheduling .c-bd{font-size:12.5px}

/* Gantt (SVG) */
.gch-m-scheduling .sd-chead{position:sticky;top:0;z-index:3;height:var(--sd-head);background:var(--bg);border-bottom:1px solid var(--line2)}
.gch-m-scheduling .sd-chead svg,.gch-m-scheduling .sd-cbody svg{display:block;font-family:var(--sans);user-select:none}
.gch-m-scheduling .g-tick{stroke:var(--line);stroke-width:1}
.gch-m-scheduling .g-t1{fill:var(--ink);font-size:12px;font-weight:600}
.gch-m-scheduling .g-t2{fill:var(--ink2);font-size:11px;font-variant-numeric:tabular-nums}
.gch-m-scheduling .g-todaycol{fill:var(--o-tint)}
.gch-m-scheduling .g-off{fill:var(--g-off);opacity:var(--g-off-o)}
.gch-m-scheduling .g-rowline{stroke:var(--line);stroke-width:1}
.gch-m-scheduling .g-band{fill:var(--bg2)}
.gch-m-scheduling .g-today{stroke:var(--o);stroke-width:1.5}
.gch-m-scheduling .g-hit{fill:transparent;cursor:pointer}
.gch-m-scheduling .sd-trow.is-sel .g-hit{fill:var(--o-tint)}
.gch-m-scheduling .g-link{fill:none;stroke:var(--ink2);stroke-width:1.25;pointer-events:none}
.gch-m-scheduling .g-link.is-crit{stroke:var(--ink);stroke-width:2}
.gch-m-scheduling .g-link.is-path{stroke:var(--o);stroke-width:2}
.gch-m-scheduling .g-ah{fill:var(--ink2)}
.gch-m-scheduling .g-ah.is-crit{fill:var(--ink)}
.gch-m-scheduling .g-ah.is-path{fill:var(--o)}
.gch-m-scheduling .g-bar{fill:var(--g-bar)}
.gch-m-scheduling .g-bar.is-crit{fill:var(--ink);stroke:var(--ink);stroke-width:3}
.gch-m-scheduling .g-bar.is-done{fill:var(--mid);stroke:none}
.gch-m-scheduling .g-bar.is-manual{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 2}
.gch-m-scheduling .g-prog{fill:var(--g-prog);pointer-events:none}
.gch-m-scheduling .g-prog.is-crit{fill:var(--bg);opacity:.45}
.gch-m-scheduling .sd-trow .g-bar.is-done + .g-prog{fill:var(--ink2);opacity:.6}
.gch-m-scheduling .g-ms{fill:var(--ink)}
.gch-m-scheduling .g-ms.is-crit{fill:var(--ink);stroke:var(--ink);stroke-width:3}
.gch-m-scheduling .g-ms.is-done{fill:var(--mid)}
.gch-m-scheduling .g-sum{fill:var(--ink)}
.gch-m-scheduling .g-sum.is-linked{fill:var(--ink2)}
.gch-m-scheduling .g-bl{fill:var(--ink2);opacity:.55;pointer-events:none}
.gch-m-scheduling .g-bl-ms{fill:none;stroke:var(--ink2);stroke-width:1;opacity:.8;pointer-events:none}
.gch-m-scheduling .sd-trow.is-sel .g-bar,.gch-m-scheduling .sd-trow.is-sel .g-ms{stroke:var(--o);stroke-width:2}
.gch-m-scheduling .sd-trow.is-pred .g-bar,.gch-m-scheduling .sd-trow.is-pred .g-ms{stroke:var(--o);stroke-width:1.5;stroke-dasharray:3 2}
.gch-m-scheduling .sd-trow.is-succ .g-bar,.gch-m-scheduling .sd-trow.is-succ .g-ms{stroke:var(--o);stroke-width:1.5}
.gch-m-scheduling .g-lb{fill:var(--ink2);font-size:11.5px;pointer-events:none}
.gch-m-scheduling .g-lb.is-b{fill:var(--ink);font-weight:600}
.gch-m-scheduling .g-lb.is-attn{fill:var(--o-txt)}
.gch-m-scheduling .g-crit-w{fill:var(--ink);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.gch-m-scheduling .g-handle{fill:transparent;cursor:ew-resize}
.gch-m-scheduling .g-body.is-editable .g-bar[data-bar],.gch-m-scheduling .g-body.is-editable .g-ms[data-bar]{cursor:grab}
.gch-m-scheduling .g-proc{fill:url(#g-hatch);stroke:var(--edge);stroke-width:1;stroke-dasharray:3 2}
.gch-m-scheduling .g-proc.is-rel{stroke-dasharray:none}
.gch-m-scheduling .g-proc.is-attn{stroke:var(--o);stroke-dasharray:none}
.gch-m-scheduling .g-proc-pr{fill:var(--ink2);opacity:.45;pointer-events:none}
.gch-m-scheduling .g-hatch-bg{fill:var(--bg)}
.gch-m-scheduling .g-hatch-ln{stroke:var(--line2);stroke-width:2}
.gch-m-scheduling .g-appr{fill:var(--bg);stroke:var(--ink2);stroke-width:1.5}
.gch-m-scheduling .g-appr.is-done{fill:var(--ink2)}
.gch-m-scheduling .g-tie{stroke:var(--mid);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}
.gch-m-scheduling .g-tie.is-attn{stroke:var(--o)}

/* ------------------------------------------------------------------ side panel: inspector, AI draft, procurement */
.gch-m-scheduling .sd-side{flex:none;width:var(--panel-w);min-height:0;overflow-y:auto}
.gch-m-scheduling .sd-side .gp-head{position:sticky;top:0;z-index:2;background:var(--bg2)}
.gch-m-scheduling .sd-side .gp-title:focus{outline:0}
.gch-m-scheduling .sd-side .gp-title:focus-visible{outline:1px solid var(--o);outline-offset:2px}
.gch-m-scheduling .sd-side .gp-state{align-items:center}
.gch-m-scheduling .sd-side .gp-tools .btn span{margin-left:2px}
.gch-m-scheduling .sd-lock{display:inline-flex;color:var(--mid)}
.gch-m-scheduling .sd-lock .i{width:15px;height:15px}
.gch-m-scheduling .sd-side .gp-body p + p{margin-top:6px}
.gch-m-scheduling .sd-side .gp-body ul{margin:6px 0;padding-left:18px}
.gch-m-scheduling .sd-side .gp-body li{margin:3px 0}
.gch-m-scheduling .sd-side .gp-body li .mid{margin-left:var(--s2);font-size:12.5px}
.gch-m-scheduling .sd-side h4{margin:var(--s4) 0 var(--s2);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mid)}
.gch-m-scheduling .sd-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3) var(--s3);margin:var(--s1) 0 var(--s2)}
.gch-m-scheduling .sd-fl{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px;color:var(--mid)}
.gch-m-scheduling .sd-fl.is-wide,.gch-m-scheduling .sd-fields .is-wide{grid-column:1 / -1}
.gch-m-scheduling .sd-fl input,.gch-m-scheduling .sd-fl select,.gch-m-scheduling .sd-fl textarea{width:100%;min-width:0;min-height:34px;font-size:13.5px}
.gch-m-scheduling .sd-fl textarea{padding:var(--s2) var(--s3);resize:vertical}
.gch-m-scheduling .sd-fl input[aria-invalid="true"]{border-bottom-color:var(--danger);color:var(--danger)}
.gch-m-scheduling .sd-fl input:disabled,.gch-m-scheduling .sd-fl select:disabled,.gch-m-scheduling .sd-fl textarea:disabled{opacity:.7;cursor:not-allowed}
.gch-m-scheduling .sd-ferr{font-size:12px;font-weight:600;color:var(--danger)}
.gch-m-scheduling .sd-check{display:inline-flex;align-items:center;gap:var(--s2);min-height:32px;font-size:13.5px;color:var(--ink);cursor:pointer}
.gch-m-scheduling .sd-computed{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);margin:0;padding-top:var(--s2);border-top:1px solid var(--line)}
.gch-m-scheduling .sd-computed dt{font-size:11.5px;color:var(--mid)}
.gch-m-scheduling .sd-computed dd{margin:2px 0 0;font-size:13.5px;font-variant-numeric:tabular-nums}
.gch-m-scheduling .sd-taskline .btn{max-width:100%}
.gch-m-scheduling .sd-taskline .btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gch-m-scheduling .sd-conflicts{margin:0;padding:var(--s2) var(--s6);background:var(--danger-tint);box-shadow:inset 3px 0 0 var(--danger);font-size:13px}
.gch-m-scheduling .sd-conflicts:empty{display:none}
.gch-m-scheduling .sd-conflicts p{display:flex;gap:var(--s2);align-items:flex-start;margin:2px 0}
.gch-m-scheduling .sd-conflicts .i{flex:none;width:15px;height:15px;color:var(--danger);margin-top:1px}
.gch-m-scheduling .sd-dep{display:grid;grid-template-columns:minmax(0,1fr) 72px 104px auto;align-items:end;gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.gch-m-scheduling .sd-dep .nm{align-self:center;font-size:13.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gch-m-scheduling .sd-dep label{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--mid)}
.gch-m-scheduling .sd-dep select,.gch-m-scheduling .sd-dep input{width:100%;min-height:30px;height:30px;font-size:13px}
.gch-m-scheduling .sd-addlink{display:flex;gap:var(--s2);margin-top:var(--s2)}
.gch-m-scheduling .sd-addlink select{flex:1;min-width:0;min-height:32px;font-size:13px}
.gch-m-scheduling .sd-succ{list-style:none;padding:0 !important}
.gch-m-scheduling .sd-sub{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2) var(--s3);align-items:end;padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.gch-m-scheduling .sd-sub .btn{justify-self:start}
.gch-m-scheduling .sd-sub + .btn,.gch-m-scheduling .gp-body > .btn{margin-top:var(--s2)}
.gch-m-scheduling .sd-insp-foot{padding:var(--s4) var(--s6) var(--s8)}
.gch-m-scheduling .sd-danger{color:var(--danger);border-color:var(--danger)}
.gch-m-scheduling .sd-danger:hover{background:var(--danger-tint);color:var(--danger);border-color:var(--danger)}
.gch-m-scheduling .sd-ai .gp-head{padding-bottom:var(--s3)}
.gch-m-scheduling .sd-ai-status{margin-top:var(--s2);font-size:13px;color:var(--ink2);line-height:1.45}
.gch-m-scheduling .sd-ai-body{padding:var(--s4) var(--s6) var(--s8);font-size:13.5px}
.gch-m-scheduling .sd-ai-body > p{margin:var(--s2) 0}
.gch-m-scheduling .sd-ai-body ul{margin:6px 0;padding-left:18px}
.gch-m-scheduling .sd-prop{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
.gch-m-scheduling .sd-prop > p{margin:var(--s2) 0}
.gch-m-scheduling .sd-prop-bar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin:var(--s2) 0}
.gch-m-scheduling .sd-prop-bar .mid{margin-left:auto;font-size:12.5px}
.gch-m-scheduling .sd-changes{list-style:none;margin:0 !important;padding:0 !important}
.gch-m-scheduling .sd-change{margin:0 0 var(--s2);padding:var(--s2) var(--s3);background:var(--bg);border:1px solid var(--line)}
.gch-m-scheduling .sd-change.is-on{border-color:var(--edge);box-shadow:inset 2px 0 0 var(--o)}
.gch-m-scheduling .sd-change.is-blocked{opacity:.8}
.gch-m-scheduling .sd-change .sd-check{align-items:flex-start;width:100%}
.gch-m-scheduling .sd-change .sd-check input{margin-top:3px}
.gch-m-scheduling .sd-change .sd-check > span:nth-child(2){flex:1;min-width:0}
.gch-m-scheduling .sd-dec{flex:none;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mid)}
.gch-m-scheduling .sd-change.is-on .sd-dec{color:var(--o-txt)}
.gch-m-scheduling .sd-ba{margin:2px 0 4px 24px;font-variant-numeric:tabular-nums}
.gch-m-scheduling .sd-ba .b{color:var(--mid);text-decoration:line-through}
.gch-m-scheduling .sd-basis{margin:2px 0 0 24px;color:var(--ink2)}
.gch-m-scheduling .sd-change ul,.gch-m-scheduling .sd-change > p:not(.sd-ba):not(.sd-basis){margin-left:24px !important;font-size:13px;color:var(--ink2)}
.gch-m-scheduling .sd-det{margin:var(--s2) 0}
.gch-m-scheduling .sd-det summary{cursor:pointer;font-size:13px;color:var(--ink2)}
.gch-m-scheduling .sd-det pre{max-height:220px;overflow:auto;margin:var(--s2) 0;padding:var(--s2);background:var(--bg);border:1px solid var(--line);font-size:12px;white-space:pre-wrap}
.gch-m-scheduling .sd-prop-apply{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s3) !important}
.gch-m-scheduling .sd-past{list-style:none;padding:0 !important;font-size:12.5px;color:var(--ink2)}
.gch-m-scheduling .sd-past li{padding:4px 0;border-bottom:1px solid var(--line)}

/* ------------------------------------------------------------------ footer */
.gch-m-scheduling .sd-foot{flex:none;border-top:1px solid var(--line2);background:var(--bg)}
.gch-m-scheduling .sd-f1{display:flex;align-items:center;flex-wrap:wrap;gap:4px var(--s4);padding:6px var(--gut) 0;font-size:12.5px;color:var(--ink2)}
.gch-m-scheduling .sd-sum{font-variant-numeric:tabular-nums;color:var(--ink)}
.gch-m-scheduling .sd-msg{color:var(--ink2)}
.gch-m-scheduling .sd-msg:empty,.gch-m-scheduling [data-status="selection"]:empty{display:none}
.gch-m-scheduling .sd-legend{display:flex;flex-wrap:wrap;gap:4px var(--s3);margin:0 0 0 auto;padding:0;list-style:none;font-size:12px;color:var(--mid)}
.gch-m-scheduling .sd-legend li{display:inline-flex;align-items:center;gap:5px}
.gch-m-scheduling .sd-legend i{display:inline-block;width:16px;height:9px}
.gch-m-scheduling .lg-bar{background:var(--g-bar)}
.gch-m-scheduling .lg-progress{background:var(--g-prog)}
.gch-m-scheduling .lg-critical{height:13px !important;background:var(--ink)}
.gch-m-scheduling .lg-milestone{width:9px !important;height:9px !important;background:var(--ink);transform:rotate(45deg)}
.gch-m-scheduling .lg-baseline{height:3px !important;background:var(--ink2);opacity:.6}
.gch-m-scheduling .lg-path{height:2px !important;background:var(--o)}
.gch-m-scheduling .lg-today{width:2px !important;height:12px !important;background:var(--o)}
.gch-m-scheduling .sd-f2{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);padding:4px var(--gut) 6px;font-size:12.5px}
.gch-m-scheduling .sd-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 10px 0 8px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;clip-path:var(--chamfer);background:var(--pill-pending-bg);color:var(--pill-pending-fg)}
.gch-m-scheduling .sd-chip[data-state="saved"]{background:var(--pill-ok-bg);color:var(--pill-ok-fg)}
.gch-m-scheduling .sd-chip[data-state="dirty"],.gch-m-scheduling .sd-chip[data-state="saving"]{background:var(--o-tint);color:var(--o-txt)}
.gch-m-scheduling .sd-chip[data-state="error"]{background:var(--pill-danger-bg);color:var(--pill-danger-fg)}
.gch-m-scheduling .sd-chip[data-state="readonly"]{background:var(--pill-info-bg);color:var(--pill-info-fg)}
.gch-m-scheduling .sd-note-in{flex:0 1 280px;min-width:160px;min-height:30px;height:30px;font-size:13px}
.gch-m-scheduling .sd-pend{font-size:12.5px;color:var(--ink2)}
.gch-m-scheduling .sd-pend:empty{display:none}
.gch-m-scheduling .sd-f2r{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin-left:auto}
.gch-m-scheduling .sd-keys{display:none;padding:0 var(--gut) 6px}

/* ------------------------------------------------------------------ empty schedule */
.gch-m-scheduling .sd-emptyp{padding:var(--s8) var(--gut);max-width:1180px}
.gch-m-scheduling .sd-emptyh h2{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.01em}
.gch-m-scheduling .sd-emptyh p{margin-top:var(--s2);font-size:14px}
.gch-m-scheduling .sd-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s6)}
.gch-m-scheduling .sd-opt{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3);padding:var(--s4);background:var(--bg2);border:1px solid var(--line2)}
.gch-m-scheduling .sd-opt h3{display:flex;align-items:center;gap:var(--s2);font-size:15px;font-weight:600}
.gch-m-scheduling .sd-opt h3 .i{width:18px;height:18px;color:var(--mid)}
.gch-m-scheduling .sd-opt p{flex:1;font-size:13.5px;color:var(--ink2);line-height:1.5}
.gch-m-scheduling .sd-opt.is-busy{box-shadow:inset 0 2px 0 var(--o)}
.gch-m-scheduling .sd-opt.is-busy h3 .i{color:var(--o-txt)}
.gch-m-scheduling .sd-opt.is-off h3{color:var(--ink2)}
.gch-m-scheduling .sd-opt label.btn{cursor:pointer}
.gch-m-scheduling .sd-opt label.btn.is-off{opacity:.5;cursor:not-allowed}
.gch-m-scheduling .sd-emptyp .sd-msg{margin-top:var(--s4);font-size:13.5px}

/* ------------------------------------------------------------------ popovers (menus and footer tools) */
.sd-pop{padding:0}
.sd-pop .sd-mp{display:flex;flex-direction:column;padding:var(--s1) 0}
.sd-pop .sd-mform{padding:var(--s2) var(--s3);gap:var(--s2)}
.sd-pop h3{margin:var(--s1) 0 var(--s2);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mid)}
.sd-pop .sd-mitem{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-height:44px;padding:4px var(--s4);background:none;border:0;font:inherit;font-size:14px;color:var(--ink);text-align:left;cursor:pointer;width:100%}
.sd-pop .sd-mitem small{font-size:12px;color:var(--mid)}
.sd-pop .sd-mitem:hover:not([disabled]),.sd-pop .sd-mitem:focus-visible{background:var(--bg3);outline:0}
.sd-pop .sd-mitem[disabled],.sd-pop .sd-mitem.is-off{color:var(--mid);cursor:not-allowed}
.sd-pop .sd-mitem[aria-pressed="true"]{box-shadow:inset 0 -2px 0 var(--o);font-weight:600}
.sd-pop .sd-mform .sd-mitem{padding:4px var(--s2)}
.sd-pop .sd-msec{border-bottom:1px solid var(--line);margin-bottom:var(--s1)}
.sd-pop .sd-file{flex-direction:column}
.sd-pop .sd-file:focus-within{background:var(--bg3);box-shadow:inset 2px 0 0 var(--o)}
.sd-pop .sd-mnote{margin:0;padding:4px var(--s4);font-size:12px;color:var(--mid);line-height:1.45}
.sd-pop .sd-mform .sd-mnote{padding:0}
.sd-pop .sd-fl{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mid)}
.sd-pop .sd-fl select,.sd-pop .sd-fl input,.sd-pop .sd-fl textarea{width:100%;min-height:40px;font-size:14px}
.sd-pop .sd-fl textarea{padding:var(--s2) var(--s3)}
.sd-pop .sd-check{display:flex;align-items:center;gap:var(--s2);min-height:44px;font-size:14px;color:var(--ink);cursor:pointer}
.sd-pop .sd-mform .sd-check.sd-mitem{flex-direction:row;justify-content:flex-start}
.sd-pop .sd-mcap{font-size:12px;color:var(--mid);padding-top:var(--s1)}
.sd-pop .sd-zoom{display:flex;gap:0;border:1px solid var(--line2)}
.sd-pop .sd-zoom .sd-mitem{flex:1;align-items:center;border-right:1px solid var(--line2)}
.sd-pop .sd-zoom .sd-mitem:last-child{border-right:0}
.sd-pop .sd-colfind{flex:none;min-width:0}
.sd-pop .sd-colist{max-height:340px;overflow-y:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sd-pop .sd-colrow{display:flex;align-items:center;gap:2px;padding:0 var(--s1)}
.sd-pop .sd-colrow .sd-check{flex:1;min-width:0;min-height:36px;font-size:13.5px}
.sd-pop .sd-arrowbtn{flex:none;width:32px;height:32px;padding:0;background:none;border:1px solid transparent;color:var(--ink2);cursor:pointer;font-size:14px}
.sd-pop .sd-arrowbtn:hover,.sd-pop .sd-arrowbtn:focus-visible{border-color:var(--edge);background:var(--bg3);outline:0}
.sd-pop .sd-days{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s3)}
.sd-pop .sd-ferr{font-size:12.5px;font-weight:600;color:var(--danger)}
.sd-pop .sd-hist{padding:var(--s2) var(--s3)}
.sd-pop .sd-hist ol{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}
.sd-pop .sd-hist li{display:grid;grid-template-columns:auto 1fr auto;gap:2px var(--s3);align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--line);font-size:13px}
.sd-pop .sd-hist .rv{font-weight:600;font-variant-numeric:tabular-nums}
.sd-pop .sd-hist .rs{grid-column:1 / 3;color:var(--ink2)}
.sd-pop .sd-hist .btn,.sd-pop .sd-hist .pill{grid-column:3;grid-row:1 / 3;justify-self:end}
.sd-pop .sd-keysp{padding:var(--s2) var(--s3)}
.sd-pop .sd-keysp dl{margin:0;display:grid;gap:4px}
.sd-pop .sd-keysp dl > div{display:grid;grid-template-columns:170px 1fr;gap:var(--s2);align-items:center;font-size:13px}
.sd-pop .sd-keysp dd{margin:0;color:var(--ink2)}
.gch-dlg .sd-scopedl{margin:0;display:grid;gap:var(--s2)}
.gch-dlg .sd-scopedl dt{font-size:12px;color:var(--mid)}
.gch-dlg .sd-scopedl dd{margin:0;font-size:14px}

/* ------------------------------------------------------------------ milestones across jobs */
.gch-m-scheduling .ms-wrap{padding:0 var(--gut) var(--s8)}
.gch-m-scheduling .gch-phead .meta .sd-late{font-weight:600}
.gch-m-scheduling .ms-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);padding-bottom:var(--s3);font-size:13px;color:var(--ink2)}
.gch-m-scheduling .ms-nav{display:inline-flex;align-items:center;gap:var(--s1)}
.gch-m-scheduling .ms-win{font-weight:600;color:var(--ink);padding:0 var(--s1);font-variant-numeric:tabular-nums}
.gch-m-scheduling .ms-chk{display:inline-flex;align-items:center;gap:var(--s2);cursor:pointer}
.gch-m-scheduling .ms-key{margin-left:auto;display:flex;flex-wrap:wrap;gap:var(--s3);font-size:12px;color:var(--mid)}
.gch-m-scheduling .ms-key span{display:inline-flex;align-items:center;gap:6px}
.gch-m-scheduling .ms-key i{display:inline-block;width:9px;height:9px;transform:rotate(45deg);background:var(--ink)}
.gch-m-scheduling .ms-key .k-done{background:var(--mid)}
.gch-m-scheduling .ms-key .k-slip{background:var(--danger)}
.gch-m-scheduling .ms-key .k-base{background:none;border:1px dashed var(--mid)}
.gch-m-scheduling .ms-key .k-today{transform:none;width:2px;height:12px;background:var(--o)}
.gch-m-scheduling .ms-table{border-top:1px solid var(--line2);background:var(--bg2)}
.gch-m-scheduling .ms-head,.gch-m-scheduling .ms-row{display:grid;grid-template-columns:minmax(200px,270px) minmax(170px,240px) 116px 120px minmax(0,1fr)}
.gch-m-scheduling .ms-head{height:52px;background:var(--bg);border-bottom:1px solid var(--line2);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mid)}
.gch-m-scheduling .ms-head > span{display:flex;align-items:center;padding:0 12px}
.gch-m-scheduling .ms-head > .num{justify-content:flex-end;text-align:right}
.gch-m-scheduling .ms-row > .num{align-items:flex-end;text-align:right}
.gch-m-scheduling .ms-head .ms-scale{position:relative;display:block;padding:0;text-transform:none;letter-spacing:0}
.gch-m-scheduling .ms-months,.gch-m-scheduling .ms-weeks{position:absolute;left:0;right:0}
.gch-m-scheduling .ms-months{top:4px;height:22px}
.gch-m-scheduling .ms-weeks{bottom:2px;height:20px}
.gch-m-scheduling .ms-mon{position:absolute;top:0;bottom:0;padding:3px 0 0 6px;border-left:1px solid var(--line2);font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden}
.gch-m-scheduling .ms-wk{position:absolute;top:0;bottom:0;padding:3px 0 0 3px;border-left:1px solid var(--line);font-size:11px;font-weight:500;color:var(--mid);font-variant-numeric:tabular-nums}
.gch-m-scheduling .ms-grp{padding:10px 12px 6px;background:var(--bg);border-bottom:1px solid var(--line);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink2)}
.gch-m-scheduling .ms-row{min-height:66px;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer}
.gch-m-scheduling .ms-row:hover{background:var(--bg3)}
.gch-m-scheduling .ms-row > span{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:6px 12px;font-size:13.5px}
.gch-m-scheduling .ms-row small{display:block;margin-top:2px;font-size:12px;color:var(--mid)}
.gch-m-scheduling .ms-job a{text-decoration:none}
.gch-m-scheduling .ms-job a:hover .jobref{text-decoration:underline;text-underline-offset:2px}
.gch-m-scheduling .ms-next b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gch-m-scheduling .ms-row .jobref.is-short{max-width:100%}
.gch-m-scheduling .ms-row > .ms-tl{position:relative;display:block;padding:0;overflow:hidden}
.gch-m-scheduling .ms-vl{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.gch-m-scheduling .ms-today{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--o);z-index:1}
.gch-m-scheduling .ms-dia{position:absolute;top:13px;width:12px;height:12px;margin-left:-6px;background:var(--ink);transform:rotate(45deg);z-index:2}
.gch-m-scheduling .ms-dia:hover,.gch-m-scheduling .ms-dia:focus-visible{outline:2px solid var(--o);outline-offset:2px}
.gch-m-scheduling .ms-dia.is-next{width:14px;height:14px;margin-left:-7px;top:12px}
.gch-m-scheduling .ms-dia.is-done{background:var(--mid)}
.gch-m-scheduling .ms-dia.is-slip{background:var(--danger)}
.gch-m-scheduling .ms-base{position:absolute;top:14px;width:10px;height:10px;margin-left:-5px;border:1px dashed var(--mid);transform:rotate(45deg);z-index:1}
.gch-m-scheduling .ms-lbl{position:absolute;top:31px;margin-left:-6px;font-size:11.5px;line-height:1.3;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:2;pointer-events:none}
.gch-m-scheduling .ms-lbl.is-b{top:45px}
.gch-m-scheduling .ms-lbl.is-next{color:var(--ink);font-weight:600}
.gch-m-scheduling .ms-foot{margin-top:var(--s3);font-size:12.5px}

/* ------------------------------------------------------------------ narrow */
@media (max-width:1280px){
  .gch-m-scheduling .sd-legend{display:none}
  .gch-m-scheduling .sd-side{width:420px}
}
@media (max-width:1100px){
  .gch-m-scheduling .sd-opts{grid-template-columns:1fr}
}
@media (max-width:759px){
  .gch-m-scheduling .sd-bar{padding:var(--s1) var(--s3)}
  .gch-m-scheduling .sd-sep{display:none}
  .gch-m-scheduling .sd-ps{flex:1 1 100%}
  .gch-m-scheduling .sd-ps input{flex:1}
  .gch-m-scheduling .sd-find{flex:1 1 100%;margin:4px 0 0}
  .gch-m-scheduling .sd-details{display:none}
  .gch-m-scheduling .sd-notices > p{padding:6px var(--s3)}
  .gch-m-scheduling .sd-divider,.gch-m-scheduling .sd-cpane{display:none}
  .gch-m-scheduling .sd-gpane{flex:1;width:auto;max-width:none}
  .gch-m-scheduling .sd-wrap.has-side .sd-split{display:none}
  .gch-m-scheduling .sd-side{flex:1;width:auto !important;border-left:0}
  .gch-m-scheduling .sd-side .gp-head,.gch-m-scheduling .sd-side .gp-body,.gch-m-scheduling .sd-ai-body,.gch-m-scheduling .sd-insp-foot{padding-left:var(--s4);padding-right:var(--s4)}
  .gch-m-scheduling .sd-side .gp-sec > summary{padding:0 var(--s4)}
  .gch-m-scheduling .sd-fields,.gch-m-scheduling .sd-sub{grid-template-columns:1fr}
  .gch-m-scheduling .sd-computed{grid-template-columns:1fr 1fr}
  .gch-m-scheduling .sd-dep{grid-template-columns:1fr 1fr}
  .gch-m-scheduling .sd-dep .nm{grid-column:1 / -1}
  .gch-m-scheduling .sd-f1{padding:6px var(--s3) 0}
  .gch-m-scheduling .sd-f2{padding:4px var(--s3) 6px}
  .gch-m-scheduling .sd-note-in,.gch-m-scheduling [data-status="selection"],.gch-m-scheduling .sd-f2r [data-act="keys"],.gch-m-scheduling .sd-f2r [data-act="calendar"]{display:none}
  .gch-m-scheduling .sd-f2r{margin-left:0}
  .gch-m-scheduling .sd-emptyp{padding:var(--s4) var(--s3)}
  .gch-m-scheduling .ms-wrap{padding:0 var(--s3) var(--s8)}
  .gch-m-scheduling .ms-head,.gch-m-scheduling .ms-row{grid-template-columns:minmax(0,1fr) 150px}
  .gch-m-scheduling .ms-head .ms-fin,.gch-m-scheduling .ms-head .ms-var,.gch-m-scheduling .ms-head .ms-scale,.gch-m-scheduling .ms-row .ms-fin{display:none}
  /* DEV-334: the phone keeps the finish against the contract (or the bid due) under the job; the date stays on a laptop. */
  .gch-m-scheduling .ms-row > .ms-job{grid-column:1;grid-row:1}
  .gch-m-scheduling .ms-row > .ms-next{grid-column:2;grid-row:1 / span 2}
  .gch-m-scheduling .ms-row > .ms-var{grid-column:1;grid-row:2;justify-content:flex-start;align-items:flex-start;text-align:left;padding-top:0}
  .gch-m-scheduling .ms-var [data-k="finish"]::before{content:'Finish: ';font-weight:400;color:var(--mid)}
  .gch-m-scheduling .ms-var [data-k="bid"]::before{content:'Bid due ';color:var(--mid)}
  /* DEV-356 WS6-E: the milestone lane is left out on a phone (its labels collide); the row names the next milestone. */
  .gch-m-scheduling .ms-row > .ms-tl{display:none}
  .gch-m-scheduling .ms-key{display:none}
}

/* ------------------------------------------------------------------ round 3: what an outside party reads; Job column */
.gch-m-scheduling .sd-ps b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.gch-m-scheduling .sd-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3) var(--s4);margin:var(--s1) 0 var(--s2)}
.gch-m-scheduling .sd-facts dt{font-size:12px;color:var(--mid)}
.gch-m-scheduling .sd-facts dd{margin:2px 0 0;font-size:13.5px;font-variant-numeric:tabular-nums}
.gch-m-scheduling .sd-rbl{list-style:none;margin:0 !important;padding:0 !important}
.gch-m-scheduling .sd-rbl li{display:flex;flex-direction:column;gap:2px;padding:var(--s2) 0;border-bottom:1px solid var(--line);box-shadow:inset 2px 0 0 var(--o);padding-left:var(--s3)}
.gch-m-scheduling .sd-rbl li .mid{margin-left:0 !important}
.gch-m-scheduling .sd-rbl b{font-weight:600}
.gch-m-scheduling .sd-job{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.gch-m-scheduling .ms-job a:hover .sd-job{text-decoration:underline;text-underline-offset:2px}

/* FX2 (laptop width): a month too narrow for its name shows what fits with an ellipsis, never a year cut in half */
.gch-m-scheduling .ms-mon{text-overflow:ellipsis}
