/* Timesheets hub, review, multi-person sheets, overlays and AWR rate change. */
/* ---------- Timesheets hub + AWR rate change (part B) ---------- */
.tsx-src{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;border-radius:99px;font-size:11.5px;font-weight:600;line-height:1.4;white-space:nowrap;vertical-align:middle}
.tsx-src .i{width:13px;height:13px}
.tsx-src.wa{background:var(--ok-soft);color:var(--ok)}
.tsx-src.em{background:var(--info-soft);color:var(--info)}
.tsx-src.on{background:var(--accent-soft);color:var(--accent)}
.tsx-src.up{background:var(--off-soft);color:var(--off)}
.tsx-feeds{display:grid;gap:12px;padding:14px 16px;margin-bottom:16px}
.tsx-feed-row{display:grid;gap:12px 20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.tsx-feed{display:flex;gap:10px;align-items:flex-start;min-width:0}
.tsx-feed > div{display:grid;gap:1px;min-width:0;font-size:13px}
.tsx-feed b{font-size:13.5px;overflow-wrap:anywhere}
.tsx-feed span{color:var(--muted)}
.tsx-feed-i{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center}
.tsx-feed-i .i{width:17px;height:17px}
.tsx-feed-i.wa{background:var(--ok-soft);color:var(--ok)} .tsx-feed-i.em{background:var(--info-soft);color:var(--info)}
.tsx-feed-i.on{background:var(--accent-soft);color:var(--accent)} .tsx-feed-i.up{background:var(--off-soft);color:var(--off)}
.tsx-rule{margin:0;display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;padding-top:12px;border-top:1px solid var(--line)}
.tsx-rule .i{stroke:var(--accent);flex:none;margin-top:1px;width:16px;height:16px}
.tsx-tb{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
.tsx-tb-sel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:900px){.tsx-tb{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}
.tsx-list{display:grid;gap:10px}
.tsx-card{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 16px 10px 10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;font-family:var(--f-body);color:var(--ink);width:100%}
.tsx-card:hover{border-color:var(--line-strong);background:var(--surface-2)}
.tsx-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tsx-thumb{width:60px;height:78px;border-radius:6px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;border:1px solid var(--line);position:relative;flex:none;color:var(--accent)}
.tsx-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.tsx-thumb > .i{width:24px;height:24px}
.tsx-thumb.on{background:var(--accent-soft);border-color:transparent}
.tsx-pg{position:absolute;right:3px;bottom:3px;font:600 10px/1 var(--f-mono);background:var(--ink);color:var(--bg);padding:2px 4px;border-radius:4px}
.ts-item .tsx-thumb-m{width:64px;height:84px}
.tsx-meta{display:grid;gap:3px;min-width:0;font-size:13px;color:var(--muted)}
.tsx-meta > b{font-size:15px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsx-l{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.tsx-go{display:grid;gap:5px;justify-items:end;text-align:right;font-size:12.5px;color:var(--muted);max-width:220px}
@media (max-width:600px){.tsx-card{grid-template-columns:52px minmax(0,1fr);gap:12px}.tsx-thumb{width:52px;height:68px}.tsx-go{grid-column:1/-1;justify-items:start;text-align:left;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;max-width:none}}
.tsx-group{padding:14px 16px;display:grid;gap:12px;margin-bottom:12px}
.tsx-g-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;align-items:flex-start}
.tsx-g-head h3{margin:0 0 2px;font-family:var(--f-display);font-size:17px;font-weight:700}
.tsx-miss{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;align-items:center;padding-top:12px;border-top:1px solid var(--line)}
.tsx-miss > div:first-child{display:grid;gap:3px;min-width:0;font-size:13px;justify-items:start}
.tsx-sent{display:inline-flex;gap:5px;align-items:center;color:var(--accent);font-weight:600;font-size:12.5px}
.tsx-sent .i{width:14px;height:14px}
.tsx-wk{margin-bottom:10px;overflow:hidden}
.tsx-wk > summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:14px 16px 14px 38px;align-items:baseline;position:relative}
.tsx-wk > summary::-webkit-details-marker{display:none}
.tsx-wk > summary::before{content:"";position:absolute;left:17px;top:21px;width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
.tsx-wk[open] > summary::before{transform:rotate(45deg);top:18px}
.tsx-wk > summary b{font-family:var(--f-display);font-size:16px}
.tsx-wk > summary > span{font-size:13px}
.tsx-wk[open] > summary{border-bottom:1px solid var(--line)}
.tsx-tbl tbody tr{cursor:pointer}
.tsx-hist{min-width:520px}
@media (max-width:520px){.tsx-hist{min-width:0}.tsx-hist .c-m,.tsx-hist .c-src{display:none}.tsx-hist td.wrap{min-width:110px}}
.tsx-hist td{white-space:nowrap;vertical-align:top}
.tsx-hist td.wrap{white-space:normal;min-width:150px}
.tsx-hist tbody tr[data-act]{cursor:pointer}
.tsx-hist tbody tr[data-act]:hover td{background:var(--surface-2)}
.tsx-hist .pill{font-size:11.5px}
.flag.info{background:var(--info-soft)} .flag.ok{background:var(--ok-soft)}
.flag > .i,.flag > .fa{width:15px;height:15px;flex:none}
.tsx-mini{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--muted)}
.tsx-mini > span{display:inline-flex;align-items:center;gap:6px}
.tsx-mini b{color:var(--ink);font-size:14px}
/* Review modal */
.tsx-hp{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.tsx-doc{display:grid;gap:10px;min-width:0;align-content:start}
.tsx-mail{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px;font-size:13px;background:var(--surface-2)}
.tsx-mail dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px}
.tsx-mail dt{color:var(--muted)} .tsx-mail dd{margin:0;min-width:0;overflow-wrap:anywhere}
.tsx-mail p{margin:2px 0 0;white-space:pre-line;line-height:1.45}
.tsx-att{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tsx-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line-strong);border-radius:8px;padding:4px 9px;font-size:12.5px;background:var(--surface);max-width:100%;min-width:0;color:var(--ink)}
.tsx-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tsx-chip .i{width:14px;height:14px;flex:none}
.ts-zoom.tsx-scan{background:var(--surface-2);border:1px solid var(--line)}
.tsx-onl{display:grid;gap:8px;justify-items:start;padding:16px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--surface-2);font-size:13.5px;line-height:1.45}
.tsx-onl .tsx-feed-i{width:40px;height:40px}
.tsx-onl .tsx-feed-i .i{width:20px;height:20px}
.tsx-q{font-style:italic}
.tsx-note{margin:0;padding:10px 12px;border-radius:10px;background:var(--accent-soft);font-size:13px;line-height:1.45;display:flex;gap:8px;align-items:flex-start}
.tsx-note .i{stroke:var(--accent);flex:none;width:16px;height:16px;margin-top:1px}
.ts-match.warnbg{background:var(--warn-soft)}
.ts-match.warnbg .i{stroke:var(--warn);flex:none;width:16px;height:16px;margin-top:2px}
.tsx-pk[aria-pressed="true"]{background:var(--accent-soft)}
.tsx-pk .nb-dist .fa{width:13px;height:13px;color:var(--ok)}
/* Multi-person sheet */
@media (min-width:980px){.m-body.tsm{grid-template-columns:330px minmax(0,1fr);align-items:start}.m-body.tsm .tsx-doc{position:sticky;top:0}}
.tsm-thumbs{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.tsm-thumbs .hint{flex:1 1 100%}
.tsm-th{all:unset;cursor:pointer;flex:0 1 84px;border-radius:6px;overflow:hidden;border:2px solid var(--line);position:relative;background:var(--surface-2)}
.tsm-th[aria-pressed="true"]{border-color:var(--brand)}
.tsm-th:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tsm-th img{display:block;width:100%;height:auto}
.tsm-th span{position:absolute;left:4px;bottom:4px;font:600 10.5px/1 var(--f-mono);background:var(--ink);color:var(--bg);padding:2px 5px;border-radius:4px}
.tsm-read{gap:10px}
.tsm-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13.5px;color:var(--muted)}
.tsm-steps li{display:flex;gap:8px;align-items:center}
.tsm-steps li span{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--off-soft)}
.tsm-steps li.done{color:var(--ink)} .tsm-steps li.done span{background:var(--ok-soft);color:var(--ok)}
.tsm-steps li.cur{color:var(--ink);font-weight:600} .tsm-steps li.cur span{background:var(--brand)}
.tsm-rows{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.tsm-hd,.tsm-row{display:grid;grid-template-columns:24px minmax(0,1.35fr) minmax(0,2fr) 48px 118px;gap:6px 10px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line)}
.tsm-hd{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding-block:7px}
.tsm-hd .r{text-align:right}
.tsm-dh{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.tsm-row:last-child{border-bottom:0}
.tsm-row.st-ok{background:color-mix(in srgb,var(--ok-soft) 50%,var(--surface))}
.tsm-row.st-skip .tsm-who,.tsm-row.st-skip .tsm-days,.tsm-row.st-skip .tsm-tot{opacity:.55}
.tsm-row.flagged{box-shadow:inset 3px 0 0 var(--warn)}
.tsm-row.bad{box-shadow:inset 3px 0 0 var(--danger)}
.tsm-n{font:500 12px var(--f-mono);color:var(--muted)}
.tsm-who{display:grid;gap:1px;min-width:0;font-size:12px}
.tsm-who > b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsm-who .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsm-unk{color:var(--danger)}
.tsm-pick{min-height:32px !important;padding:4px 8px !important;font-size:13px;margin-top:4px}
.tsm-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;font:500 12.5px var(--f-mono);text-align:center}
.tsm-days span{display:grid;gap:0;padding:2px 0;border-radius:4px}
.tsm-days i{display:none;font-style:normal;font-size:9.5px;color:var(--muted);font-family:var(--f-body);font-weight:600}
.tsm-days .z{color:var(--muted)}
.tsm-days .hot{background:var(--warn-soft);color:var(--warn);font-weight:600}
.tsm-tot{font:600 14px var(--f-mono);text-align:right}
.tsm-tot s{display:block;font-size:11px;color:var(--danger);font-weight:500}
.tsm-act{display:flex;justify-content:flex-end;gap:8px;align-items:center;flex-wrap:wrap}
.tsm-act .btn .fa{width:11px;height:11px}
.tsm-flags{grid-column:2/-1;list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:12.5px;line-height:1.35}
.tsm-flags li{display:flex;gap:6px;align-items:flex-start}
.tsm-flags li::before{content:"!";flex:none;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--warn-soft);color:var(--warn)}
.tsm-flags li.bad::before{content:"✕";background:var(--danger-soft);color:var(--danger)}
.tsm-none{margin:10px;border:0}
.tsm-prog{font-size:13px;color:var(--muted)}
@media (max-width:760px){
  .tsm-hd{display:none}
  .tsm-row{grid-template-columns:22px minmax(0,1fr) auto auto;column-gap:8px}
  .tsm-days{grid-column:2/-1;grid-row:2}
  .tsm-days i{display:block}
  .tsm-tot{grid-column:3;grid-row:1}
  .tsm-act{grid-column:4;grid-row:1;flex-direction:column;align-items:flex-end;gap:2px}
  .tsm-act .btn{padding:0 9px}
}
@media (max-width:979px){.m-body.tsm .tsx-doc .ts-photo{display:none}.m-body.tsm .tsx-doc .ts-photo.zoom{display:grid}}
/* Overlays: client approval and online timesheet */
.tsx-ap-sub{margin:-4px 0 0;font-size:13.5px;color:var(--muted)}
.tsx-ap-tbl tr.off td{color:var(--muted)}
.tsx-ap-item .note-types{gap:8px}
.tsx-ap-item .nt span{padding:7px 14px;font-size:14px}
.tsx-on-grid{display:grid;gap:8px}
.tsx-on-row{display:grid;grid-template-columns:92px repeat(2,minmax(0,1fr)) 78px 52px;gap:8px;align-items:center}
.tsx-on-row.hd{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.tsx-on-row .r{text-align:right}
.tsx-on-day{display:grid;line-height:1.2}
.tsx-on-day b{font-size:14px}
.tsx-on-row output{font:600 14px var(--f-mono)}
.tsx-on-row input{min-width:0}
.tsx-on-row input[type="time"]{padding-inline:6px}
.tsx-on-tot{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line);font-weight:600}
@media (max-width:520px){
  .tsx-on-row{grid-template-columns:repeat(2,minmax(0,1fr)) 64px 44px;row-gap:4px}
  .tsx-on-day{grid-column:1/-1;display:flex;gap:8px;align-items:baseline;margin-top:4px}
  .tsx-on-row.hd .tsx-on-day{display:none}
}
.reg-form.tsx-on.wide{width:min(920px,100%)}
.tsx-oc-wrap{overflow-x:auto;margin-inline:-4px}
.tsx-oc{min-width:640px}
.tsx-oc th[scope="row"]{display:grid;gap:1px;min-width:150px;font-weight:400;text-align:left;font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink);white-space:normal}
.tsx-oc th[scope="row"] .muted{font-size:11.5px}
.tsx-oc input{width:56px;min-height:34px;padding:4px 6px;text-align:right}
.tsx-oc td{padding:4px}
/* AWR rate change */
.awr-flow{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px}
.awr-flow-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.awr-flow-h h3{margin:0;font-size:14px;font-weight:700}
.awr-flow ol{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.awr-fs{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:6px 10px;align-items:center}
.awr-fn{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 12.5px var(--f-mono);background:var(--off-soft);color:var(--muted)}
.awr-fs.cur .awr-fn{background:var(--brand);color:var(--brand-ink)}
.awr-fs.done .awr-fn{background:var(--ok-soft);color:var(--ok)}
.awr-fn .fa{width:11px;height:11px}
.awr-ft{display:grid;gap:1px;min-width:0;font-size:12.5px;color:var(--muted)}
.awr-ft b{font-size:13.5px;color:var(--ink)}
.awr-fs.todo .awr-ft b{color:var(--muted)}
.awr-fs .btn .i{width:15px;height:15px}
@media (max-width:560px){.awr-fs{grid-template-columns:26px minmax(0,1fr)}.awr-fs .btn{grid-column:2;justify-self:start}}
.awr-seg{flex-wrap:wrap}
.awr-c-m{margin:0;font-size:13px;padding:8px 10px;border-radius:8px;background:var(--surface-2)}
.awr-c-m.warn{background:var(--warn-soft)}
.tsx-drop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:var(--scrim);pointer-events:none;padding:24px}
.tsx-drop[hidden]{display:none}
