/* Studios — Team view (people, workload, cities, availability). Tokens only; every class prefixed tm-.
   Martian Mono is never below 10.5px here; tighter labels use the body face. */
.tm{display:flex;flex-direction:column;gap:14px;min-width:0}
.tm-hide{display:none!important}
.tm .num,.tm-sum .num{font-variant-numeric:tabular-nums}

/* ---------- summary strip ---------- */
.tm-sum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.tm-tile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px 13px;border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;text-align:left;color:var(--ink);min-width:0;transition:border-color .15s,box-shadow .15s,background .15s}
.tm-tile:hover{border-color:var(--line);background:var(--surface-2)}
.tm-tile.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.tm-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tm-tk{display:flex;align-items:center;gap:6px;min-width:0}
.tm-tk .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-tv{font:800 30px/1.05 var(--display);letter-spacing:-.02em;margin-top:2px}
.tm-ts{font-size:11.5px;color:var(--muted);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tm-mk{width:10px;height:10px;flex:none;display:inline-block}
.tm-mk.mk-in{border-radius:50%;background:var(--ok)}
.tm-mk.mk-leave{border-radius:50%;background:linear-gradient(to bottom,transparent 40%,var(--surface) 40% 60%,transparent 60%) center/64% 100% no-repeat,var(--crit)}
.tm-mk.mk-over{border-radius:3px;background:var(--ld-over);position:relative}
.tm-mk.mk-free{border-radius:3px;background:var(--ld-light);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 45%,transparent)}

.tm-loadp{display:flex;flex-direction:column;gap:9px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);min-width:0}
.tm-loadp-h{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.tm-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted);align-items:center}
.tm-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.tm-legend b{color:var(--ink-2);font-weight:600}
.tm-lg{width:11px;height:11px;border-radius:3px;background:var(--lc);display:inline-block;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
.tm-lg.b-off{background:repeating-linear-gradient(-45deg,var(--ld-off) 0 2px,transparent 2px 4px)}
.tm-stack{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden;background:var(--surface-3);min-width:0}
.tm-stack>i{display:block;height:100%;background:var(--lc);flex:none;min-width:3px}
.tm-stack>i.b-off{background:repeating-linear-gradient(-45deg,var(--ld-off) 0 3px,var(--surface-3) 3px 6px)}
.tm-stack.lg{height:14px;border-radius:7px}
.tm-stack.sm{height:8px;width:110px;flex:none}
.tm-assign-k{font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* ---------- toolbar ---------- */
.tm-bar{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.tm-bar-r{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-width:0}
.tm-tabs{align-self:flex-start}
.tm-whob{flex:none;color:var(--ink-2)}
.tm-whob .ic{color:var(--muted)}
.tm-tabs button{height:30px;padding:0 12px}
.tm-tabn{font:500 10.5px var(--mono);opacity:.7}
.tm-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.tm-search{flex:1 1 280px;max-width:420px}
.tm-search .input{height:34px;padding-right:32px}
.tm-search .input::-webkit-search-cancel-button{margin-right:18px}
.tm-kbd{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none;background:var(--surface)}
.tm-search .input:focus~.tm-kbd,.tm-search .input:not(:placeholder-shown)~.tm-kbd{display:none}
.tm-sel{width:auto;min-width:0;max-width:210px;flex:0 1 auto;height:34px}
.tm-tools .chip{height:34px;border-radius:8px}
.tm-tools .chip .ic{flex:none}
.tm-sortl{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;color:var(--muted)}
.tm-sortl .select{min-width:112px}
.tm-setup{margin:0 0 12px;align-items:flex-start;flex-wrap:wrap}
.tm-setup>.ic{margin-top:2px;flex:none}
.tm-setup .grow{flex:1 1 260px}
.tm-setup-b{gap:6px}
.tm-resline{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:2px 2px 8px}
.tm-resline b{color:var(--ink);font-weight:700}

/* ---------- list ---------- */
.tm-list{border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);min-width:0}
.tm-list>:first-child{border-top-left-radius:var(--r-lg);border-top-right-radius:var(--r-lg)}
.tm-list>:last-child{border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:var(--r-lg)}
.tm-gone{margin-top:10px}
.tm-lh,.tm-row{display:grid;grid-template-columns:minmax(0,1.1fr) 150px 172px 132px minmax(0,1.2fr) 16px;column-gap:16px;align-items:center;padding:11px 16px}
.tm-lh{position:sticky;top:var(--top);z-index:3;padding-top:8px;padding-bottom:7px;background:var(--surface-2);border-bottom:1px solid var(--line-2);font:500 10.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);align-items:end}
.tm-lh-days{display:grid;grid-template-columns:repeat(7,22px);gap:3px;text-align:center;letter-spacing:0;text-transform:none}
.tm-lh-days>span{display:flex;flex-direction:column;align-items:center;line-height:1.15;font:600 11px var(--body);color:var(--ink-2)}
.tm-lh-days b{font:600 9.5px var(--body);color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.tm-lh-days .today b{color:var(--accent-text);font-weight:600}
.tm-lh-days .today{justify-content:flex-end}

/* rows off screen skip layout and paint until scrolled to (53+ rows, ~120 nodes each) */
.tm-row{content-visibility:auto;contain-intrinsic-size:auto 84px;border-top:1px solid var(--line-2);cursor:pointer;position:relative;transition:background .12s;min-width:0}
.tm-lh+.tm-row,.tm-gh+.tm-row{border-top-color:transparent}
.tm-row:hover{background:var(--surface-2)}
.tm-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}
.tm-row.is-off .tm-c-who .tm-nm{color:var(--ink-2)}
.tm-chev{color:var(--faint);opacity:0;transition:opacity .12s,transform .12s;display:grid;place-items:center}
.tm-chev::before{content:"";width:7px;height:7px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(-45deg);margin-left:-3px}
.tm-row:hover .tm-chev,.tm-row:focus-visible .tm-chev{opacity:1;transform:translateX(2px)}

.tm-c-who{display:flex;align-items:flex-start;gap:11px;min-width:0}
.tm-id{display:flex;flex-direction:column;gap:1px;min-width:0}
.tm-nmrow{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap;row-gap:3px}
.tm-nm{font-weight:650;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%}
.tm-nick{display:inline-flex;align-items:center;height:18px;font:500 10.5px var(--mono);color:var(--accent-text);background:var(--accent-soft);padding:0 7px;border-radius:10px;white-space:nowrap}
.tm-title{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tm-dotsep{margin:0 5px;color:var(--faint)}
.tm-skills{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;align-items:center}
.tm-skills .tag,.tm-dh-b .tag{height:18px;font-size:10.5px;padding:0 6px}
.tm-shootmk{display:inline-grid;place-items:center;width:20px;height:18px;border-radius:4px;background:color-mix(in srgb,var(--st-shoot) 15%,transparent);color:var(--st-shoot)}

/* avatar + today's availability dot (colour + shape) */
.tm-av{position:relative;display:inline-flex;flex:none;border-radius:50%}
.tm-av>i{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);background:var(--ok);box-sizing:border-box}
.tm-av.s-unset>i{display:none}
.tm-av.s-half>i{background:linear-gradient(90deg,var(--warn) 50%,var(--surface-3) 50%)}
.tm-av.s-leave>i{background:linear-gradient(to bottom,transparent 38%,var(--surface) 38% 62%,transparent 62%) center/62% 100% no-repeat,var(--crit)}
.tm-av.s-off>i{background:var(--surface);box-shadow:inset 0 0 0 2px var(--faint)}
.tm-row:hover .tm-av>i{border-color:var(--surface-2)}

/* access badges: shape + colour + text */
.tm-badge{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:4px;font:600 10.5px/1 var(--body);white-space:nowrap;letter-spacing:.01em}
.tm-badge.head{background:var(--ink);color:var(--surface)}
.tm-badge.coord{background:var(--accent);color:var(--accent-ink)}
.tm-badge.lead{background:var(--accent-soft);color:var(--accent-text)}
.tm-badge.ipl{border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent-text);background:transparent}
.tm-badge.shoot{background:color-mix(in srgb,var(--st-shoot) 15%,transparent);color:color-mix(in srgb,var(--st-shoot) 80%,var(--ink))}
.tm-badge.gone{background:var(--surface-3);color:var(--muted)}

/* today */
.tm-c-today,.tm-c-month,.tm-c-on{min-width:0}
.tm-ldrow{display:flex;align-items:baseline;gap:3px;min-width:0}
.tm-ldrow b{font:700 15px/1.1 var(--display);color:var(--ink)}
.tm-cap{font-size:11.5px;color:var(--muted);white-space:nowrap}
.tm-bandlbl{margin-left:auto;padding-left:4px;font:500 10.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tm-half{color:var(--warn);font-weight:600}
.tm-bandlbl.b-free,.tm-bandlbl.b-light{color:var(--ok)}
.tm-bandlbl.b-full{color:var(--warn)}
.tm-bandlbl.b-over{color:var(--crit);font-weight:600}
.tm-meter{display:flex;gap:2px;align-items:center;margin:5px 0 4px;--mc:color-mix(in srgb,var(--ld-light) 45%,var(--ok))}
.tm-meter>i{flex:1 1 0;height:6px;border-radius:2px;background:linear-gradient(90deg,var(--mc) var(--f),var(--surface-3) var(--f));min-width:3px}
.tm-meter.b-busy{--mc:color-mix(in srgb,var(--ld-busy) 55%,var(--warn))}
.tm-meter.b-full{--mc:color-mix(in srgb,var(--ld-full) 60%,var(--warn))}
.tm-meter.b-over{--mc:color-mix(in srgb,var(--ld-over) 55%,var(--crit))}
.tm-meter>em{font:600 10.5px var(--mono);color:var(--crit);font-style:normal;margin-left:4px;white-space:nowrap}
.tm-sub{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tm-sub.ok{color:var(--ok)} .tm-sub.warn{color:var(--warn)} .tm-sub.crit{color:var(--crit)}
.tm-none{color:var(--faint)}
.tm-od{color:var(--crit);font-weight:600}
.tm-away{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;margin-bottom:4px}
.tm-away.leave{background:var(--crit-soft);color:var(--crit)}
.tm-away.off{background:repeating-linear-gradient(-45deg,var(--surface-3) 0 4px,var(--surface-2) 4px 8px);color:var(--ink-2)}

/* 7-day heat strip */
.tm-heat{display:grid;grid-template-columns:repeat(7,22px);gap:3px}
.tm-hc{position:relative;height:26px;border-radius:5px;background:var(--lc);display:grid;place-items:center;font:650 11px var(--body);color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);font-variant-numeric:tabular-nums}
.tm-hc.b-free{color:var(--faint)}
.tm-hc.b-off{background:repeating-linear-gradient(-45deg,var(--ld-off) 0 3px,transparent 3px 6px);color:var(--muted)}
.tm-hc.lv{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--crit) 24%,transparent) 0 3px,transparent 3px 6px);color:var(--crit);border-color:color-mix(in srgb,var(--crit) 30%,transparent)}
.tm-hc.b-over::after{content:"";position:absolute;top:-1px;right:-1px;width:0;height:0;border-style:solid;border-width:0 8px 8px 0;border-color:transparent var(--crit) transparent transparent;border-top-right-radius:5px}
.tm-hc.today{box-shadow:0 0 0 1.5px var(--surface),0 0 0 3px var(--ink-2)}
.tm-hc::before{content:attr(data-d);display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);font:600 9px/1 var(--body);text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:0}
.tm-hc.today::before{color:var(--accent-text);font-weight:600}

/* score column (private: only rows the viewer may see) */
.tm-mlbl{display:none;font:500 10.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.tm-sc{min-width:0}
.tm-mrow{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0;margin-bottom:3px}
.tm-mrow b{font:700 17px/1.1 var(--display);color:var(--ink)}
.tm-scv{white-space:nowrap}
.tm-scv.warn b{color:var(--warn)} .tm-scv.crit b{color:var(--crit)}
.tm-scb{font:500 10.5px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tm-scb.warn{color:var(--warn);font-weight:600} .tm-scb.crit{color:var(--crit);font-weight:600}
.tm-mrow b.tm-wait{color:var(--faint);letter-spacing:.1em;animation:tmPulse 1.2s ease-in-out infinite}
@keyframes tmPulse{50%{opacity:.35}}
@media (prefers-reduced-motion: reduce){.tm-mrow b.tm-wait{animation:none}}
.tm-sc-priv{min-height:1px}

/* working on */
.tm-now{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);min-width:0;margin-bottom:5px}
.tm-now-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}
.tm-now-n{font:500 10.5px var(--mono);color:var(--muted);white-space:nowrap;flex:none}
.tm-sdot{width:8px;height:8px;border-radius:2px;background:var(--c);flex:none}
.tm-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.tm-chip{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px 0 6px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);font-size:11px;font-weight:500;color:var(--ink-2);white-space:nowrap;max-width:100%;min-width:0}
.tm-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cc,var(--faint));flex:none}
.tm-chip.ip{--cc:var(--accent)}
.tm-chip.ip.lead::before{border-radius:1px;transform:rotate(45deg);width:6px;height:6px}
.tm-chip.cl{--cc:var(--st-design)}
.tm-chip.cp{--cc:var(--st-shoot)}
.tm-chip.more{padding:0 7px}
.tm-chip.more::before{display:none}
.tm-cn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:130px}
.tm-chip>b{font:500 10.5px var(--mono);color:var(--muted)}
.tm-lgdot{width:7px;height:7px;border-radius:50%;background:var(--cc);display:inline-block;flex:none}
.tm-lgdot.ip{--cc:var(--accent)} .tm-lgdot.ip.lead{border-radius:1px;transform:rotate(45deg)} .tm-lgdot.cl{--cc:var(--st-design)} .tm-lgdot.cp{--cc:var(--st-shoot)}

/* group headers */
.tm-gh{display:flex;align-items:center;gap:8px;width:100%;padding:11px 16px 9px;border:0;border-top:1px solid var(--line-2);background:var(--surface-2);cursor:pointer;text-align:left;color:var(--ink);min-width:0;font:inherit}
.tm-lh+.tm-gh{border-top:0}
.tm-gh:hover{background:var(--surface-3)}
.tm-gh:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tm-gh-chev{color:var(--muted);display:grid;place-items:center;flex:none}
.tm-gh-ic{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2);flex:none}
.tm-gh-t{font:700 13.5px var(--display);white-space:nowrap}
.tm-gh-n{font:500 10.5px var(--mono);color:var(--ink-2);background:var(--surface-3);padding:1px 7px;border-radius:10px;flex:none}
.tm-gh-note{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tm-gh-sum{font-size:11.5px;color:var(--ink-2);white-space:nowrap;flex:none}
.tm-grow-row{display:flex;align-items:center;gap:10px;padding:9px 16px;border-top:1px solid var(--line-2);cursor:pointer}
.tm-grow-row:hover{background:var(--surface-2)}
.tm-grow-row .tm-id{flex:1 1 auto}

.tm-source{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;color:var(--muted);margin:6px 2px 0}
.tm-source .ic{margin-top:2px;flex:none}
.tm-source b{color:var(--ink-2);font-weight:600}

/* ---------- Who's free? ---------- */
.tm-find{display:flex;flex-direction:column;gap:12px;min-width:0}
.tm-fq{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.tm-fq-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:8px 12px;align-items:center}
.tm-fq-l{font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.tm-fin{width:150px}
.tm-ftimes{display:inline-flex;align-items:center;gap:6px}
.tm-ftimes .input{width:112px}
.tm-chip-t{font:500 10.5px var(--mono);opacity:.7}
.tm-fshoot{white-space:nowrap}
.tm-fres{display:flex;flex-direction:column;gap:10px;min-width:0}
.tm-f-sum{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap;margin:2px 2px 0}
.tm-f-big{font:800 30px/1 var(--display);letter-spacing:-.02em;color:var(--ok)}
.tm-f-of{font-weight:600;color:var(--ink)}
.tm-f-ctx{font:500 11px var(--mono);color:var(--muted)}
.tm-fwarn{margin:0}
.tm-f-gh{display:flex;align-items:center;gap:8px;margin:6px 2px 0}
.tm-flist{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);min-width:0;overflow:hidden}
.tm-frow-id .tm-skills{margin-top:3px}
.tm-frow{content-visibility:auto;contain-intrinsic-size:auto 60px;display:grid;grid-template-columns:auto minmax(0,1fr) fit-content(48%) 180px;gap:12px;align-items:center;padding:10px 16px;border:0;border-top:1px solid var(--line-2);background:none;text-align:left;cursor:pointer;width:100%;color:var(--ink);font:inherit;min-width:0}
.tm-frow:first-child{border-top:0}
.tm-frow:hover{background:var(--surface-2)}
.tm-frow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tm-frow.no{background:color-mix(in srgb,var(--surface-2) 50%,var(--surface))}
.tm-frow.no .tm-nm{color:var(--ink-2)}
.tm-frow-id{display:flex;flex-direction:column;min-width:0}
.tm-frow-why{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:0}
.tm-frow-why .pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tm-frow-ld{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0}
.tm-frow-ld .tm-meter{margin:0 0 3px}
.tm-frow-h{font:500 10.5px var(--mono);color:var(--muted);text-align:right}
.tm-frow-ld .tm-away{align-self:flex-end;margin:0}

/* ---------- person drawer ---------- */
.tm-dh{display:flex;gap:13px;align-items:flex-start;min-width:0}
.tm-dh .tm-av>i{width:14px;height:14px}
.tm-dh-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.tm-dh-n{font-size:20px;line-height:1.2;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.tm-dh-s{font-size:13px;color:var(--ink-2)}
.tm-dh-b{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px;align-items:center}
.tm-checkin{margin:0;flex-wrap:wrap}
.tm-checkin-b{gap:6px}
.tm-contact{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface-2);min-width:0}
.tm-ci{display:flex;align-items:center;gap:10px;padding:7px 8px 7px 12px;min-height:40px;min-width:0}
.tm-ci+.tm-ci{border-top:1px solid var(--line-2)}
.tm-ci-k{display:grid;place-items:center;color:var(--muted);flex:none}
.tm-ci-v{flex:1 1 auto;font-size:13.5px;font-weight:600;color:var(--ink);overflow-wrap:anywhere;min-width:0;font-variant-numeric:tabular-nums}
.tm-ci-v .muted{font-weight:400;font-size:12.5px}
.tm-selall{-webkit-user-select:all;user-select:all;cursor:text}
.tm-copy{flex:none}
.tm-dacts{display:flex;flex-wrap:wrap;gap:8px}
.tm-snap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tm-snap.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.tm-snap-b{text-align:left;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .12s,background .12s}
.tm-snap-b:hover{border-color:var(--line);background:var(--surface-2)}
.tm-snap-b:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tm-snap-v.warn{color:var(--warn)} .tm-snap-v.crit{color:var(--crit)}
.tm-priv{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:0;padding:9px 12px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2)}
.tm-priv>.ic{flex:none;color:var(--muted)}
.tm-priv>span{flex:1 1 220px;min-width:0}

/* score breakdown (drawer) */
.tm-score{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface)}
.tm-score-h{display:flex;align-items:center;gap:14px;min-width:0}
.tm-score-v{font:800 34px/1 var(--display);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.tm-score-v small{font:600 13px var(--body);letter-spacing:0;color:var(--muted);margin-left:2px}
.tm-score-v.warn{color:var(--warn)} .tm-score-v.crit{color:var(--crit)}
.tm-score-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.tm-score-t b{font-weight:700;font-size:14px}
.tm-score-t b.warn{color:var(--warn)} .tm-score-t b.crit{color:var(--crit)}
.tm-score-t span{font-size:12px;color:var(--muted)}
.tm-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.tm-pill-r{display:grid;grid-template-columns:96px minmax(0,1fr) 28px;align-items:center;gap:8px;font-size:12px;min-width:0}
.tm-pill-l{font-weight:600;color:var(--ink-2);white-space:nowrap}
.tm-pill-l em{font:500 10.5px var(--mono);font-style:normal;color:var(--muted);margin-left:5px}
.tm-pill-b{display:block;height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.tm-pill-b i{display:block;height:100%;background:var(--ink-2);border-radius:3px}
.tm-pill-r b{font-weight:700;text-align:right;color:var(--ink)}
.tm-pill-r.na{opacity:.55}
.tm-score-x{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:12px;color:var(--muted);line-height:1.45}
.tm-score-x .ic{flex:none;margin-top:2px}
.tm-how{display:flex;flex-direction:column;gap:10px}
.tm-how p{font-size:13px;line-height:1.55;color:var(--ink-2);margin:0}
.tm-how b{color:var(--ink);font-weight:650;margin-right:6px;white-space:nowrap}
.tm-how .tm-hint{font-size:12px}

/* "Who sees what" */
.tm-who{display:flex;flex-direction:column;gap:14px}
.tm-who h4{font-size:12.5px;margin:0 0 4px}
.tm-who p{font-size:12.5px;line-height:1.5;color:var(--ink-2);margin:0}
.tm-who-you{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border-radius:var(--r);background:var(--accent-soft);color:var(--accent-text)!important;font-weight:600}
.tm-who-you .ic{flex:none;margin-top:2px}
.tm-who-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tm-who-l li{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-top:1px solid var(--line-2);min-width:0}
.tm-who-l li:first-child{border-top:0}
.tm-who-l li>span:last-child{display:flex;flex-direction:column;min-width:0}
.tm-who-l b{font-weight:650;font-size:13px}
.tm-who-l li>span:last-child>span{font-size:12px;color:var(--muted);line-height:1.4}
.tm-who-all{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--muted);flex:none}
.tm-who-a{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12.5px;color:var(--ink-2)}
.tm-who-a b{color:var(--ink);font-weight:600}
.tm-snap-c{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);min-width:0}
.tm-snap-v{font:800 20px/1.15 var(--display);letter-spacing:-.01em;color:var(--ink)}
.tm-snap-v small{font-size:13px;font-weight:600;color:var(--muted)}
.tm-snap-c .tm-meter{margin:2px 0 1px}
.tm-sec{display:flex;flex-direction:column;gap:10px;min-width:0;padding-top:4px}
.tm-sec-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.tm-sec-h h3{font-size:14.5px}
.tm-sec-h h4{font-size:12.5px}
.tm-sec-sub{font-size:11.5px;color:var(--muted)}
.tm-hint{font-size:11.5px;color:var(--muted);margin:0}
.tm-quiet{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface-2);font-size:12.5px;color:var(--muted)}
.tm-quiet .ic{flex:none;color:var(--faint)}

/* 14-day availability grid */
.tm-avkey{display:flex;gap:4px;flex-wrap:wrap}
.tm-avkey .k{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:4px;font:500 10.5px var(--mono);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line-2);box-shadow:inset 0 2px 0 var(--sc,transparent)}
.tm-avkey .k.cam{color:var(--st-shoot)}
.tm-avgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.tm-avc{--sc:transparent;display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);overflow:hidden;min-width:0;box-shadow:inset 0 3px 0 var(--sc)}
:is(.tm-avc,.tm-avkey .k,.tm-avn).s-in{--sc:var(--ok)} :is(.tm-avc,.tm-avkey .k,.tm-avn).s-half{--sc:var(--warn)} :is(.tm-avc,.tm-avkey .k,.tm-avn).s-leave{--sc:var(--crit)} :is(.tm-avc,.tm-avkey .k,.tm-avn).s-off{--sc:var(--faint)}
.tm-avc.s-unset{border-style:dashed;border-color:var(--line)}
.tm-avc.s-leave{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--crit) 10%,var(--surface)) 0 4px,var(--surface) 4px 8px)}
.tm-avc.s-off{background:repeating-linear-gradient(-45deg,var(--surface-2) 0 4px,var(--surface) 4px 8px)}
.tm-avc.s-half .tm-avc-main{background:linear-gradient(180deg,transparent 50%,color-mix(in srgb,var(--warn) 8%,transparent) 50%)}
.tm-avc.today{border-color:var(--ink-2);border-style:solid}
.tm-avc-main{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 6px;border:0;background:none;color:var(--ink);font:inherit;min-width:0;width:100%}
button.tm-avc-main{cursor:pointer;transition:background .12s}
button.tm-avc-main:hover{background:var(--surface-2)}
button.tm-avc-main:focus-visible,.tm-avc-cam:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.tm-avc .d{font:600 10px var(--body);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.tm-avc.today .d{color:var(--accent-text);font-weight:600}
.tm-avc .n{font:700 16px/1.1 var(--display)}
.tm-avc .s{font-size:10.5px;font-weight:700;color:color-mix(in srgb,var(--sc) 80%,var(--ink));white-space:nowrap}
.tm-avc.s-unset .s{color:var(--faint)}
.tm-avc .ld{margin-top:3px;font:600 10px var(--body);font-variant-numeric:tabular-nums;padding:1px 4px;border-radius:3px;background:var(--lc);color:var(--ink);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tm-avc .ld:empty{display:none}
.tm-avc .nt{position:absolute;top:5px;right:5px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.tm-avc-cam{display:grid;place-items:center;height:22px;border:0;border-top:1px solid var(--line-2);background:color-mix(in srgb,var(--st-shoot) 9%,transparent);color:var(--st-shoot);position:relative;font:inherit;padding:0}
button.tm-avc-cam{cursor:pointer}
button.tm-avc-cam:hover{background:color-mix(in srgb,var(--st-shoot) 18%,transparent)}
.tm-avc-cam.no{background:transparent;color:var(--faint)}
.tm-avc-cam.no::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:currentColor;transform:translate(-50%,-50%) rotate(-40deg);border-radius:1px}

.tm-avnotes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.tm-avn{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;padding:6px 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line-2);box-shadow:inset 3px 0 0 var(--sc,var(--line));font-size:12.5px;min-width:0}
.tm-avn-d{font-weight:600;color:var(--ink);white-space:nowrap}
.tm-avn-s{color:color-mix(in srgb,var(--sc,var(--muted)) 80%,var(--ink));font-weight:600;font-size:12px;white-space:nowrap}
.tm-avn-n{color:var(--ink-2);min-width:0;overflow-wrap:anywhere;flex:1 1 160px}

/* queue & shoots */
.tm-queue{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.tm-queue .irow:last-child{border-bottom:0}
.tm-more{align-self:flex-start}
.tm-shlist{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.tm-shrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 12px;border:0;border-top:1px solid var(--line-2);background:none;text-align:left;color:var(--ink);width:100%;font:inherit;min-width:0}
.tm-shrow:first-child{border-top:0}
button.tm-shrow{cursor:pointer}
button.tm-shrow:hover{background:var(--surface-2)}
.tm-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;background:color-mix(in srgb,var(--st-shoot) 12%,var(--surface));color:color-mix(in srgb,var(--st-shoot) 75%,var(--ink));line-height:1}
.tm-date b{font:800 16px var(--display)}
.tm-date span{font:700 9.5px var(--body);text-transform:uppercase;letter-spacing:.03em;margin-top:2px}
.tm-sh-t{display:flex;flex-direction:column;min-width:0}
.tm-sh-p{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.tm-sh-why{font-size:12px;color:var(--ink-2);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;margin-top:1px}

/* metrics */
.tm-mhead{display:flex;align-items:center;gap:14px}
.tm-mhead-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.tm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tm-kp{display:flex;flex-direction:column;gap:1px;padding:9px 11px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);min-width:0}
.tm-kp .v{font:800 18px/1.15 var(--display);letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-kp .l{font-size:11.5px;font-weight:600;color:var(--ink-2)}
.tm-kp .s{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-kp.ok .v{color:var(--ok)} .tm-kp.warn .v{color:var(--warn)} .tm-kp.crit .v{color:var(--crit)}
.tm-kp.crit{border-color:color-mix(in srgb,var(--crit) 30%,var(--line-2));background:color-mix(in srgb,var(--crit-soft) 45%,var(--surface))}
.tm-wkbox{display:flex;flex-direction:column;gap:8px;padding:12px 14px 10px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface)}
.tm-wk-trend{display:inline-flex;align-items:center;gap:6px;font:500 10.5px var(--mono);color:var(--ink-2)}
.tm-weeks{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;height:124px;align-items:stretch}
.tm-wk{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.tm-wk-v{font:500 10.5px var(--mono);color:var(--ink-2);white-space:nowrap}
.tm-wk-bar{position:relative;display:block;width:100%;max-width:30px;height:calc(var(--t,0) * 72px);min-height:3px;background:var(--surface-3);border-radius:4px 4px 2px 2px;overflow:hidden;flex:none}
.tm-wk-bar>i{position:absolute;left:0;right:0;bottom:0;height:var(--dh);background:var(--accent);border-radius:3px 3px 0 0}
.tm-wk.ok .tm-wk-bar>i{background:var(--ok)} .tm-wk.warn .tm-wk-bar>i{background:var(--warn)} .tm-wk.crit .tm-wk-bar>i{background:var(--crit)}
.tm-wk.crit .tm-wk-v{color:var(--crit)} .tm-wk.warn .tm-wk-v{color:var(--warn)}
.tm-wk.cur .tm-wk-bar>i{background:repeating-linear-gradient(-45deg,var(--accent) 0 3px,color-mix(in srgb,var(--accent) 55%,transparent) 3px 6px)}
.tm-wk.cur .tm-wk-v{color:var(--accent-text);font-weight:600}
.tm-wk-l{display:flex;flex-direction:column;align-items:center;font:500 10.5px var(--mono);color:var(--muted);line-height:1.2;height:24px}
.tm-wk-l em{font:600 9px var(--body);font-style:normal;text-transform:uppercase;color:var(--faint)}
.tm-wk.cur .tm-wk-l{color:var(--accent-text);font-weight:600}

/* involvement */
.tm-inv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tm-inv-c{display:flex;flex-direction:column;gap:4px;min-width:0}
.tm-inv-h{display:flex;align-items:center;gap:6px;font:600 12px var(--body);color:var(--ink-2);padding:0 2px 2px}
.tm-inv-h .ic{color:var(--muted)}
.tm-inv-r{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line-2);border-radius:7px;background:var(--surface-2);cursor:pointer;text-align:left;width:100%;color:var(--ink);font:inherit;font-size:12.5px;min-width:0;flex-wrap:wrap}
.tm-inv-r:hover{border-color:var(--line);background:var(--surface-3)}
.tm-inv-n{font-weight:600;min-width:0;flex:1 1 90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-inv-m{font:500 10.5px var(--mono);color:var(--muted);white-space:nowrap}
.tm-inv-r .stage{height:20px;font-size:11px}
.tm-inv-e{font-size:12px;color:var(--muted);padding:8px 9px;border:1px dashed var(--line);border-radius:7px;margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tm-dsrc{margin-top:0;padding-top:12px;border-top:1px solid var(--line-2)}

/* edit form */
.tm-fs{border:0;padding:0;margin:0;min-width:0}
.tm-fs legend{padding:0;margin-bottom:6px}
.tm-skpick{display:flex;flex-wrap:wrap;gap:6px}
.tm-skc{position:relative;display:inline-flex;cursor:pointer}
.tm-skc input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.tm-skc span{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:20px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:500;color:var(--ink-2);transition:background .12s,border-color .12s,color .12s}
.tm-skc:hover span{border-color:var(--faint);color:var(--ink)}
.tm-skc input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.tm-skc input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.tm-eform [aria-invalid="true"]{border-color:var(--crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 16%,transparent)}
.tm-eform .tm-bad .tm-skc span{border-color:color-mix(in srgb,var(--crit) 55%,var(--line))}
.tm-err{display:block;font-size:11.5px;font-weight:600;color:var(--crit);margin-top:2px}
.tm-b-s{flex-wrap:wrap}
.tm-b-s button{height:30px}
/* aligned on the days being marked: said up front, before the reason step */
.tm-b-on{display:flex;align-items:flex-start;gap:7px;margin:0;padding:8px 10px;border-radius:8px;background:var(--warn-soft,var(--surface-2));color:var(--ink);font-size:12.5px;line-height:1.45}
.tm-b-on[hidden]{display:none}
.tm-b-on>.ic{flex:none;margin-top:2px;color:var(--warn)}
/* drop-out reason (leave / week off / no shoots on a day you're aligned): category chips + what clashes and when */
.tm-oo{display:flex;flex-direction:column;gap:12px}
.tm-oo-lead{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45}
.tm-oo-req{font:600 11px var(--body);color:var(--muted)}
.tm-oo-ok{display:inline-flex;align-items:center;gap:5px}
.tm-oo-ok.ok{color:var(--ok);font-weight:600}
.tm-oo .textarea[aria-invalid="true"]{border-color:var(--crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 14%,transparent)}
.tm-oo-err{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;background:var(--crit-soft);color:var(--ink);font-size:12.5px;line-height:1.45;box-shadow:inset 3px 0 0 var(--crit)}
.tm-oo-err[hidden]{display:none}
.tm-oo-err>.ic{flex:none;color:var(--crit);margin-top:2px}
.tm-oo-tell{display:flex;align-items:flex-start;gap:7px;margin:0;padding:9px 11px;border-radius:9px;background:var(--surface-2);font-size:12.5px;color:var(--ink-2);line-height:1.45}
.tm-oo-tell>.ic{flex:none;margin-top:2px;color:var(--muted)}

/* ---------- cities ---------- */
.tm-tline{display:flex;align-items:center;gap:6px;min-width:0}
.tm-title-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-city{display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 7px 0 5px;border-radius:9px;font-size:11px;font-weight:600;color:var(--ink-2);background:var(--surface-3);white-space:nowrap;flex:none;line-height:1}
.tm-city .ic{color:var(--muted);flex:none}
.tm-city.home{background:transparent;color:var(--muted);padding-left:0}
.tm-city.away{background:var(--info-soft);color:var(--info)}
.tm-city.away .ic{color:var(--info)}
.tm-dh-s{display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px}
.tm-cities{display:flex;align-items:center;flex-wrap:wrap;gap:5px 6px;padding-top:9px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ink-2)}
.tm-cities-k{display:inline-flex;align-items:center;gap:6px;color:var(--muted);margin-right:4px}
.tm-cityc{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.tm-cityc b{font-weight:700;color:var(--ink)}
.tm-cityc:hover{border-color:var(--faint);color:var(--ink)}
.tm-cityc.away{border-color:color-mix(in srgb,var(--info) 45%,var(--line))}
.tm-cityc.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.tm-cityc.on b{color:var(--surface)}
.tm-cityc.z{cursor:default;border-style:dashed;color:var(--muted)}
.tm-cities-n{font-size:11.5px;color:var(--muted);margin-left:auto}
.tm-fcity{width:150px}
.tm-avc .ct{position:absolute;top:4px;left:4px;display:grid;color:var(--info)}

/* ---------- workload: people × next 7 days ---------- */
.tm-wl-hint{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.tm-wl-hint .ic{flex:none}
.tm-wl-wrap{overflow:auto;max-height:min(760px,calc(100vh - 200px));max-height:min(760px,calc(100dvh - 200px));border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.tm-wl{border-collapse:separate;border-spacing:0;width:100%;min-width:760px;table-layout:fixed;font-size:12px}
.tm-wl-hn{width:196px}
.tm-wl-hw{width:108px}
.tm-wl thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);border-bottom:1px solid var(--line-2);padding:8px 3px 7px;font-weight:500;text-align:center;vertical-align:bottom}
.tm-wl-hn,.tm-wl-n{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left}
.tm-wl thead .tm-wl-hn{z-index:3;background:var(--surface-2)}
.tm-wl-dn{display:block;font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tm-wl-hd b{display:block;font:700 15px/1.2 var(--display);color:var(--ink-2)}
.tm-wl-hd.t .tm-wl-dn,.tm-wl-hd.t b{color:var(--accent-text)}
.tm-wl-hd.t{box-shadow:inset 0 -2px 0 var(--accent)}
.tm-wl-hd.s b{color:var(--muted)}
.tm-wl-dc{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;margin-top:4px}
.tm-wl-dc em{font-style:normal;font-size:10.5px;font-weight:650;padding:0 5px;border-radius:8px;line-height:16px;white-space:nowrap}
.tm-wl-dc em.o{background:var(--crit-soft);color:var(--crit)}
.tm-wl-dc em.f{background:var(--ok-soft);color:var(--ok)}
.tm-wl-hw{font:500 10.5px var(--mono)!important;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:right!important;padding-right:12px!important}
.tm-wl td{padding:2px;border-top:1px solid var(--line-2)}
.tm-wl-n{padding:2px 6px 2px 4px;border-top:1px solid var(--line-2);font-weight:400}
.tm-wl-nb{display:flex;align-items:center;gap:8px;width:100%;min-width:0;border:0;background:none;padding:5px 6px;border-radius:7px;cursor:pointer;text-align:left;color:var(--ink);font:inherit}
.tm-wl-nb:hover{background:var(--surface-2)}
.tm-wl-nb:hover b{color:var(--accent-text)}
.tm-wl-nb:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tm-wl-nt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.tm-wl-nt b{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-wl-nt>span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-wl-city{font-style:normal;color:var(--info);font-weight:600}
.tm-wc{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;height:46px;border-radius:7px;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:var(--lc);color:var(--ink);cursor:pointer;padding:0 3px;font:inherit;overflow:hidden;transition:box-shadow .12s}
.tm-wc:hover{box-shadow:0 0 0 2px var(--ink-2)}
.tm-wc:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.tm-wc b{font:700 13.5px/1.1 var(--display);font-variant-numeric:tabular-nums}
.tm-wc-s{font-size:10.5px;font-weight:500;color:color-mix(in srgb,var(--ink) 72%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tm-wc.b-free{background:color-mix(in srgb,var(--ld-free) 70%,var(--surface))}
.tm-wc.b-free b{color:var(--faint)}
.tm-wc.b-free .tm-wc-s{color:var(--muted)}
.tm-wc.b-off{background:repeating-linear-gradient(-45deg,var(--ld-off) 0 4px,transparent 4px 8px);color:var(--muted)}
.tm-wc.lv{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--crit) 18%,transparent) 0 4px,transparent 4px 8px);color:var(--crit);border-color:color-mix(in srgb,var(--crit) 30%,transparent)}
.tm-wc.b-off b,.tm-wc.lv b{font:700 11px var(--body);text-transform:uppercase;letter-spacing:.05em}
.tm-wc.lv .tm-wc-s{color:var(--crit)}
.tm-wc.b-over{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--crit) 65%,transparent)}
.tm-wc.b-over:hover{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--crit) 65%,transparent),0 0 0 2px var(--ink-2)}
.tm-wc-sh{position:absolute;top:0;right:0;width:0;height:0;border-top:10px solid var(--st-shoot);border-left:10px solid transparent}
.tm-wc-half{position:absolute;left:7px;right:7px;bottom:3px;height:2px;border-radius:1px;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--ink) 55%,transparent) 0 3px,transparent 3px 5px)}
.tm-wc-od{position:absolute;top:3px;left:3px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--crit);color:var(--on-strong);font:700 10px/15px var(--body);font-style:normal;text-align:center}
.tm-wc-city{position:absolute;bottom:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--info);box-shadow:0 0 0 1.5px var(--surface)}
.tm-wl td.tm-wl-w{padding:2px 12px 2px 8px}
.tm-wl-wv{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;text-align:right}
.tm-wl-wv b{font:700 13px var(--display);color:var(--ink)}
.tm-wl-wb{display:block;height:5px;border-radius:3px;background:var(--surface-3);overflow:hidden;margin-top:5px}
.tm-wl-wb i{display:block;height:100%;background:var(--ok)}
.tm-wl-wb i.f{background:var(--warn)} .tm-wl-wb i.o{background:var(--crit)}
.tm-wl-g th{padding:12px 0 5px;background:var(--surface-2);border-top:1px solid var(--line-2);text-align:left}
.tm-wl tbody:first-of-type .tm-wl-g th{border-top:0}
.tm-wl-gs{position:sticky;left:10px;display:inline-flex;align-items:center;gap:8px}
.tm-wl-gb{display:inline-flex;align-items:center;gap:6px;border:0;background:none;font:600 10.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);cursor:pointer;padding:2px 4px 2px 0;border-radius:4px;white-space:nowrap}
.tm-wl-gb:hover{color:var(--ink)}
.tm-wl-gb em{font-style:normal;color:var(--muted);font-weight:500}
.tm-wl-gt{font:600 10.5px/16px var(--mono);padding:0 6px;border-radius:8px;background:var(--surface-3);color:var(--muted);white-space:nowrap}
.tm-wl-gt.o{background:var(--crit-soft);color:var(--crit)}
.tm-wl-foot{margin-top:10px}
.tm-lg-sh{display:inline-block;width:0;height:0;border-top:9px solid var(--st-shoot);border-left:9px solid transparent}
.tm-lg-half{display:inline-block;width:12px;height:2px;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--ink) 55%,transparent) 0 3px,transparent 3px 5px)}
.tm-lg-od{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--crit);color:var(--on-strong);font:700 10px var(--body);font-style:normal}
.tm-lg-city{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--info)}

/* ---------- one person's day (drawer) ---------- */
.tm-dnav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface-2)}
.tm-dnav-m{display:flex;justify-content:center;min-width:0}
.tm-dnav-m .tm-meter{width:100%;max-width:300px;margin:0}
.tm-dnav-m .tm-away{margin:0}
.tm-dts{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.tm-dt{display:flex;align-items:center;gap:8px;padding-right:10px;border-top:1px solid var(--line-2);min-width:0}
.tm-dt:first-child{border-top:0}
.tm-dt.od{box-shadow:inset 3px 0 0 var(--crit)}
.tm-dt-main{flex:1;display:flex;align-items:center;gap:10px;min-width:0;padding:9px 4px 9px 12px;border:0;background:none;text-align:left;cursor:pointer;color:var(--ink);font:inherit}
.tm-dt-main:hover .tm-dt-t b{color:var(--accent-text)}
.tm-dt-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.tm-dt-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.tm-dt-src{font:500 10.5px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-dt-t>b{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-dt-m{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.tm-dt-hand{flex:none}

/* ---------- person drawer: jump bar ---------- */
.tm-jump{position:sticky;top:-16px;z-index:4;flex:none;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:-6px -20px -4px;padding:8px 20px;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-2)}
.tm-jump::-webkit-scrollbar{display:none}
.tm-jump-b{flex:none;height:26px;padding:0 10px;border-radius:13px;border:1px solid var(--line-2);background:var(--surface);font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.tm-jump-b:hover{border-color:var(--faint);color:var(--ink)}
.tm-sec{scroll-margin-top:52px}

/* ---------- this week's report ---------- */
.tm-rep-x{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:12px;color:var(--ink-2)}
.tm-rep-x b{font-weight:650;color:var(--ink);margin-right:4px}
.tm-rep-flag{display:inline-flex;align-items:center;gap:5px;border:0;background:var(--crit-soft);color:var(--crit);font:inherit;font-size:12px;font-weight:600;padding:3px 9px;border-radius:11px;cursor:pointer}
span.tm-rep-flag{cursor:default}
.tm-rep-lw{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--muted);padding:7px 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line-2);margin:0}
.tm-rep-lw .ic{margin-top:2px;flex:none;color:var(--ok)}
.tm-rep-lw b{color:var(--ink-2);font-weight:650}
.tm-rep-lw>span{flex:1 1 auto;min-width:0}
button.tm-rep-lw{width:100%;text-align:left;font:inherit;font-size:12px;cursor:pointer;transition:border-color .12s,background .12s}
button.tm-rep-lw:hover{border-color:var(--line);background:var(--surface)}
button.tm-rep-lw .tm-rep-go{margin-top:2px;flex:none;color:var(--faint)}
button.tm-rep-lw:hover .tm-rep-go{color:var(--ink-2)}

/* ---------- 9 AM email preview ---------- */
.tm-env{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);overflow:hidden;box-shadow:inset 3px 0 0 var(--info)}
.tm-env.hot{box-shadow:inset 3px 0 0 var(--crit)}
.tm-env-r{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:8px 12px 8px 14px;border-bottom:1px solid var(--line-2);font-size:13px}
.tm-env-k{font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tm-env-v{min-width:0;overflow-wrap:anywhere}
b.tm-env-v{font-weight:650}
.tm-env-t{font:500 10.5px var(--mono);color:var(--muted);white-space:nowrap}
.tm-env-c{display:flex;flex-wrap:wrap;gap:5px;padding:9px 12px 10px 14px}
.tm-env-b{padding:2px 14px 14px;border-top:1px dashed var(--line);font-size:13px;color:var(--ink-2);display:flex;flex-direction:column;gap:8px}
.tm-env-b>p:first-child{margin-top:10px}
.tm-env-lead{color:var(--ink)}
.tm-env-s{--t:var(--muted);display:flex;flex-direction:column;gap:3px}
.tm-env-s[data-tone=crit]{--t:var(--crit)} .tm-env-s[data-tone=warn]{--t:var(--warn)} .tm-env-s[data-tone=info]{--t:var(--info)}
.tm-env-sh{display:flex;align-items:center;gap:6px;font:600 10.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--t);margin-top:4px}
.tm-env-sh b{font-weight:600;color:var(--muted)}
.tm-env-s ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
.tm-env-row{display:flex;flex-direction:column;width:100%;text-align:left;padding:5px 8px;border:0;border-left:2px solid color-mix(in srgb,var(--t) 45%,transparent);background:none;color:var(--ink);font:inherit;font-size:12.5px;border-radius:0 6px 6px 0;min-width:0}
button.tm-env-row{cursor:pointer}
button.tm-env-row:hover{background:var(--surface-2)}
.tm-env-row b{font-weight:600;overflow-wrap:anywhere}
.tm-env-row span{font-size:11.5px;color:var(--muted)}
.tm-env-more{font-size:11.5px;color:var(--muted);padding-left:10px}
.tm-env-foot{font-size:11.5px;color:var(--muted);border-top:1px solid var(--line-2);padding-top:8px}

/* ---------- attendance & remarks ---------- */
.tm-att{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.tm-att-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tm-att-c{display:flex;gap:4px;flex-wrap:wrap}
.tm-ver{font:600 10.5px var(--mono);padding:1px 5px;border-radius:4px;background:var(--warn-soft);color:var(--warn);vertical-align:1px}
.tm-sh-p .ack-chip{height:20px}
.tm-wk-load{display:flex;align-items:center;gap:6px}
.tm-rms{display:flex;flex-direction:column;gap:6px}
.tm-rm{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);text-align:left;color:var(--ink);font:inherit;width:100%;min-width:0}
button.tm-rm{cursor:pointer}
button.tm-rm:hover{background:var(--surface-2);border-color:var(--line)}
.tm-rm.complaint{box-shadow:inset 3px 0 0 var(--crit)} .tm-rm.praise{box-shadow:inset 3px 0 0 var(--ok)}
.tm-rm .pill{flex:none;margin-top:1px}
.tm-rm-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.tm-rm-x{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.tm-rm-m{font-size:11.5px;color:var(--muted)}

/* ---------- compact density ---------- */
:root[data-density="compact"] .tm-row{padding-top:7px;padding-bottom:7px}
:root[data-density="compact"] .tm-skills{margin-top:2px}
:root[data-density="compact"] .tm-wc{height:34px}
:root[data-density="compact"] .tm-wc-s{display:none}
:root[data-density="compact"] .tm-wl-nb{padding:3px 6px}
:root[data-density="compact"] .tm-frow{padding-top:7px;padding-bottom:7px}
:root[data-density="compact"] .tm-dt-main{padding-top:6px;padding-bottom:6px}
:root[data-density="compact"] .tm-tile{padding:9px 12px 10px}
:root[data-density="compact"] .tm-tv{font-size:24px}

/* ---------- responsive ---------- */
@media (max-width:1320px){
  .tm-lh,.tm-row{grid-template-columns:minmax(0,1fr) 146px 172px 124px minmax(0,1fr) 12px;column-gap:14px}
}
@media (max-width:1180px) and (min-width:761px){
  /* two lines per person: who · today · 7 days on top, what they're on · month progress below */
  .tm-lh,.tm-row{grid-template-columns:minmax(0,1fr) 140px 172px 12px;grid-template-areas:"who today heat chev" "on on month chev";row-gap:8px}
  .tm-lh{grid-template-areas:"who today heat chev"}
  .tm-lh>span:nth-child(1){grid-area:who} .tm-lh>span:nth-child(2){grid-area:today} .tm-lh>span:nth-child(3){grid-area:heat} .tm-lh>span:nth-child(6){grid-area:chev}
  .tm-lh>span:nth-child(4),.tm-lh-on{display:none}
  .tm-c-who{grid-area:who} .tm-c-today{grid-area:today} .tm-c-heat{grid-area:heat} .tm-c-month{grid-area:month} .tm-c-on{grid-area:on;padding-left:47px} .tm-chev{grid-area:chev}
  .tm-mlbl{display:block}
  .tm-row{contain-intrinsic-size:auto 150px}
  .tm-sum{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .tm-tile{padding:10px 12px}
  .tm-tv{font-size:26px}
  .tm-gh-note{display:none}
}
@media (max-width:980px){
  .tm-sum{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tm-sum .tm-tile:first-child{grid-row:span 2;justify-content:center}
  .tm-frow{grid-template-columns:auto minmax(0,1fr) 150px;grid-template-areas:"av id ld" "av why why"}
  .tm-frow>.tm-av{grid-area:av;align-self:start} .tm-frow-id{grid-area:id} .tm-frow-why{grid-area:why;justify-content:flex-start} .tm-frow-ld{grid-area:ld}
}
@media (max-width:760px){
  .tm{gap:12px}
  .tm-sum{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .tm-sum .tm-tile:first-child{grid-column:1/-1;grid-row:auto;flex-direction:row;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:4px 10px}
  .tm-row.no-month .tm-c-month{display:none}
  .tm-sum .tm-tile:first-child .tm-tv{margin-top:0}
  .tm-tile{padding:10px 12px;box-shadow:none}
  .tm-tv{font-size:24px}
  .tm-loadp{padding:11px 12px;box-shadow:none}
  .tm-search{flex:1 1 100%;max-width:none}
  .tm-kbd{display:none}
  .tm-sel{flex:1 1 0;max-width:none}
  .tm-tools .chip{flex:1 1 auto;justify-content:center}
  .tm-tools .spacer{display:none}
  .tm-sortl{flex:1 1 100%}
  .tm-sortl .select{flex:1 1 auto}
  .tm-whob span{display:none}
  .tm-pills{grid-template-columns:minmax(0,1fr)}
  .tm-score-v{font-size:30px}
  .tm-list{background:transparent;border:0;box-shadow:none;display:flex;flex-direction:column;gap:8px}
  .tm-lh{display:none}
  .tm-gh{border:0;background:transparent;padding:10px 2px 2px;border-radius:0}
  .tm-gh:hover{background:transparent}
  .tm-gh .tm-stack.sm{width:56px}
  .tm-gh-note,.tm-gh-sum{display:none}
  .tm-gh-t{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .tm-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who who" "today heat" "month month" "on on";gap:10px 14px;padding:12px 12px 12px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}
  .tm-lh+.tm-row,.tm-gh+.tm-row{border-top-color:var(--line-2)}
  .tm-row{contain-intrinsic-size:auto 270px}
  .tm-frow{contain-intrinsic-size:auto 80px}
  .tm-row:hover{background:var(--surface)}
  .tm-c-who{grid-area:who;padding-right:18px} .tm-c-today{grid-area:today} .tm-c-heat{grid-area:heat;align-self:start} .tm-c-month{grid-area:month;padding-top:9px;border-top:1px solid var(--line-2)} .tm-c-on{grid-area:on}
  .tm-chev{position:absolute;top:14px;right:10px;opacity:1}
  .tm-heat{grid-template-columns:repeat(7,20px);gap:2px}
  .tm-heat{margin-bottom:13px}
  .tm-hc::before{display:block}
  .tm-hc{height:24px}
  .tm-grow-row{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);margin-top:6px}
  .tm-gone{background:transparent;border:0;box-shadow:none}
  .tm-fq{padding:12px}
  .tm-fq-row{grid-template-columns:minmax(0,1fr);gap:6px}
  .tm-fin{width:100%}
  .tm-ftimes .input{flex:1 1 0;width:auto;min-width:0}
  .tm-ftimes{display:flex}
  .tm-frow{grid-template-columns:auto minmax(0,1fr) 92px;grid-template-areas:"av id ld" "av why why";gap:6px 10px;padding:10px 12px}
  .tm-frow-id .tm-skills,.tm-frow-tk{display:none}
  .tm-frow-ld .tm-away{align-self:flex-end}
  .tm-fq .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:1px 12px 3px;-webkit-overflow-scrolling:touch}
  .tm-fq .chips::-webkit-scrollbar{display:none}
  .tm-fq .chip{flex:none}
  .tm-snap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .tm-snap-c:first-child{grid-column:1/-1}
  .tm-snap.two .tm-snap-c:first-child{grid-column:auto}
  .tm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-inv{grid-template-columns:minmax(0,1fr)}
  .tm-avgrid{gap:3px}
  .tm-avc .d{font-size:9px;letter-spacing:0}
  .tm-avc .n{font-size:14px}
  .tm-avc .s{font-size:9.5px}
  .tm-avc .ld{font-size:9px;padding:1px 2px}
  .tm-avkey{display:none}
  .tm-shrow{grid-template-columns:auto minmax(0,1fr);}
  .tm-sh-p{grid-column:2;justify-content:flex-start}
  .tm-cities-n{flex-basis:100%;margin-left:0}
  .tm-wl{min-width:620px}
  .tm-wl-hn{width:132px}
  .tm-wl-hw{width:84px}
  .tm-wl-nb .av{display:none}
  .tm-wc{height:40px}
  .tm-wc-s{display:none}
  .tm-wl-hint{flex-basis:100%}
  .tm-env-r{grid-template-columns:56px minmax(0,1fr)}
  .tm-env-t{display:none}
  .tm-dt{flex-wrap:wrap;padding:0 10px 8px 0}
  .tm-dt-hand{margin-left:56px}
  .tm-fcity{width:100%}
}
@media (max-width:400px){
  .tm-heat{grid-template-columns:repeat(7,18px)}
  .tm-hc{font-size:10px}
  .tm-row{column-gap:10px}
}
