.flow-note{font-size:var(--text-xs);color:var(--fg-3)}.month-nav{display:flex;align-items:center;gap:6px}.month-nav input{width:auto;min-width:10rem}.month-nav button{flex:none;white-space:nowrap}.xtab{border-collapse:separate;border-spacing:0;font-size:var(--text-2xs)}.xtab th,.xtab td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0 6px;text-align:left;white-space:nowrap;background:var(--card);color:var(--fg-2)}.xtab thead th{position:sticky;top:0;z-index:2;height:var(--h-pill);color:var(--muted);font-weight:600}.xtab .xt-stick{position:sticky;left:0;z-index:1;width:var(--w-stickycol);min-width:var(--w-stickycol);box-shadow:1px 0 0 var(--line)}.xtab thead th.xt-stick{z-index:3}.xtab.by-staff .xt-stick{width:var(--w-stickycol-staff);min-width:var(--w-stickycol-staff)}.xtab tbody tr.group-start td{box-shadow:inset 0 2px 0 var(--border-default)}.xtab td.xt-stick{background:var(--card)}.xtab .xt-daycol{width:var(--w-daycol);min-width:var(--w-daycol);text-align:center;padding:0}.xtab thead th.spill,.xtab td.spill{background:var(--bg-subtle)}.xtab thead th.weekend,.xtab thead th.holiday{background:var(--day-sun);color:var(--day-ink-light);font-weight:700}.xtab tbody tr:hover td:not(.xt-cell){background:var(--primary-soft)}.xt-cell{position:relative;height:var(--h-pill);text-align:center;font-weight:700;font-size:var(--text-2xs)}.xt-cell.empty{background:var(--card)}.xt-cell.has-work{background:var(--warn-bg)}.xt-cell button{position:absolute;inset:0;width:100%;height:auto;margin:0;padding:0;border:none;border-radius:0;background:transparent;color:inherit;font-weight:700;font-size:var(--text-2xs)}.xt-cell.d-mon,.xt-sw.d-mon{background:var(--day-mon);color:var(--day-ink)}.xt-cell.d-tue,.xt-sw.d-tue{background:var(--day-tue);color:var(--day-ink)}.xt-cell.d-wed,.xt-sw.d-wed{background:var(--day-wed);color:var(--day-ink)}.xt-cell.d-thu,.xt-sw.d-thu{background:var(--day-thu);color:var(--day-ink)}.xt-cell.d-fri,.xt-sw.d-fri{background:var(--day-fri);color:var(--day-ink)}.xt-cell.d-sat,.xt-sw.d-sat{background:var(--day-sat);color:var(--day-ink-light)}.xt-cell.d-sun,.xt-sw.d-sun{background:var(--day-sun);color:var(--day-ink)}.xt-cell.k-travel,.xt-sw.k-travel{background:var(--kind-travel-solid);color:var(--day-ink-light)}.xt-cell.k-setup,.xt-sw.k-setup{background:var(--kind-setup-solid);color:var(--day-ink-light)}.xt-cell.no-colour{background:var(--slate-300);color:var(--slate-900)}.xtab thead th.xt-today{box-shadow:inset 0 0 0 2px var(--primary)}.xtab td.xt-cell.xt-today:before{content:"";position:absolute;inset:0;border-left:2px solid var(--primary);border-right:2px solid var(--primary);pointer-events:none}.xt-cell.started{outline:2px solid var(--slate-900);outline-offset:-2px}.xt-cell.done:after{content:"✓";position:absolute;right:2px;top:0;line-height:var(--lh-none);font-size:var(--text-2xs)}.xt-cell.done{position:relative}.xt-cell.dead{opacity:.45;background-image:repeating-linear-gradient(45deg,rgb(15 23 42 / 45%) 0 2px,transparent 2px 5px)}.xt-cell.unconfirmed{outline:2px dashed rgb(15 23 42 / 55%);outline-offset:-3px}.xt-cell.unstaffed{outline:1px solid rgb(15 23 42 / 40%);outline-offset:-2px}.xt-cell.dim{opacity:.18}.xtab .sumrow td{background:var(--bg-subtle);color:var(--fg-2);font-weight:700;text-align:center;position:sticky;top:var(--h-pill);height:var(--h-pill);z-index:2}.xtab .sumrow td.xt-stick{background:var(--bg-subtle);text-align:left;left:0;z-index:3}.xtab.sumtop .sumrow td{top:0}.xtab.sumtop thead th{top:var(--h-pill)}.xtab tbody tr.catrow td{background:var(--slate-700);color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:.18em;font-size:calc(var(--text-2xs) * 2);white-space:normal;overflow-wrap:anywhere;line-height:var(--lh-tight);text-align:left;padding:.35rem .6rem}.xtab .xt-wide{white-space:normal;min-width:11rem;max-width:14rem;padding:6px;line-height:var(--lh-tight);overflow-wrap:anywhere}.xtab .xt-qno{white-space:normal;min-width:8rem;max-width:11rem;padding:6px;line-height:var(--lh-tight);overflow-wrap:anywhere}.xtab .sub{color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;font-size:var(--text-2xs);color:var(--fg-2)}.legend .xt-sw{display:inline-block;width:var(--h-tick);height:var(--h-tick);border-radius:var(--radius-sm);border:1px solid var(--line);vertical-align:middle;margin-right:.3rem}.xt-cell-panel{border-left:4px solid var(--primary)}.xt-cell-panel dl{max-width:48rem;display:grid;grid-template-columns:8rem 1fr;gap:6px 12px;margin:0 0 .75rem;font-size:var(--text-sm)}.xt-cell-panel dt{color:var(--muted)}.xt-cell-panel dd{margin:0}.xtab td.xt-wide.st-confirmed{background:var(--xt-bg-confirmed);color:var(--xt-ink-on-light)}.xtab td.xt-wide.st-draft{background:var(--xt-bg-draft);color:var(--xt-ink-on-light)}.xtab td.xt-wide.st-cancelled{background:var(--xt-bg-cancelled);color:var(--xt-ink-on-dark)}.xtab td.xt-wide[class*=st-] .sub,.xtab td.xt-wide[class*=st-] .muted{color:inherit;opacity:.85}.xtab .equiprow td{background:color-mix(in srgb,var(--bg-subtle) 92%,var(--primary) 8%);color:var(--fg-2);font-weight:700;text-align:center;position:sticky;top:calc(var(--h-pill) * 2);height:var(--h-pill);z-index:2}.xtab .equiprow td.xt-stick{background:color-mix(in srgb,var(--bg-subtle) 92%,var(--primary) 8%);text-align:left;left:0;z-index:3}.xt-modal-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:4vh 1rem;overflow-y:auto;background:#0f172a73}.xt-modal{width:min(52rem,100%);max-height:92vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 18px 48px #0f172a47;padding:1rem 1.15rem}.xt-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.xt-modal-head h2{margin:0;font-size:var(--text-md)}.client-ditto{color:inherit;opacity:.85;letter-spacing:.12em}.xtab td.xt-cell.has-analysis{position:relative}.xtab td.xt-cell.has-analysis:after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-top:7px solid var(--slate-700);border-left:7px solid transparent;pointer-events:none}
