/* v100 (LF-A, 3 Oct 2026) — the loop pages, round 2: Actions + the shared parts (_reviews/2026-10-03-loop-pages/FIX.md).
   The card kit's numbers (22px padding, rules at +15, icons at +23, titles at +56) come from ui/ptools.js kitCard; this file only adds what the
   round needs: the waiting clock, the approval queue (6 columns), the approver steps, the bulk summary, the keys sheet, the rules lane, the
   calendar agenda and the boards at 900px. Tokens only — light and dark. No new colours: orange = waiting, red = past due, gray = calm. */

/* ---------- the waiting clock (LP2): words first, the colour only repeats them ---------- */
.wt-chip{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2);font-variant-numeric:tabular-nums}
.wt-chip > svg{flex:none;color:var(--fg-3)}
.wt-chip > span{min-width:0;overflow-wrap:break-word;text-wrap:pretty}
.wt-chip.is-over,.wt-chip.is-over > svg{color:var(--warn)}
.wt-chip.is-late,.wt-chip.is-late > svg{color:var(--neg)}
.wt-chip.is-paused,.wt-chip.is-paused > svg{color:var(--fg-3)}
.wt-acts{display:inline-flex;align-items:center;gap:4px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);white-space:nowrap}
.ap-hd .wt-chip{margin-right:6px}
.ap-card .ap-hd{height:auto;min-height:48px;flex-wrap:wrap;row-gap:4px}   /* D08: an approval card's head grows with its parts — never over the title (the Ask panel's .ap-hd is 48px fixed) */
.ap-hd .wt-acts{margin-right:10px}
.ap-hd .f-age{white-space:nowrap}

/* ---------- board cards (LP1, LP8, LP14, LP21) ---------- */
.kb-w.is-warn{color:var(--warn)}
.kb-w.kb-clk{display:block;overflow:visible;-webkit-line-clamp:unset}
.kb-w.kb-clk .m-clock.is-compact{margin-top:0}
.kb-apv{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--fg-2)}
.kb-apv > svg{flex:none;color:var(--fg-3)}
.kb-apv > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- who approves (LP1) ---------- */
.ap-apv{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--r-12);background:var(--bg-2);font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.ap-apv > svg{flex:none;margin-top:3px;color:var(--fg-3)}
.ap-apv b{font-weight:var(--w-medium);color:var(--fg)}
.ap-apv .ap-set{flex:none;font-size:var(--t-co)}
.apv-steps{display:flex;flex-wrap:wrap;gap:4px 16px;margin:4px 0 0;padding:0;list-style:none;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.apv-steps li{display:inline-flex;align-items:center;gap:6px}
.apv-steps .apv-d{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:var(--r-full);box-shadow:inset 0 0 0 1.5px var(--ln-4);flex:none}
.apv-steps li.is-done{color:var(--fg-2)}
.apv-steps li.is-done .apv-d{background:var(--fg-2);box-shadow:none;color:var(--bg)}
.apv-steps li.is-next{color:var(--fg)}
.apv-steps li.is-next .apv-d{box-shadow:inset 0 0 0 1.5px var(--c-orange)}
.ap-cant.ap-whol{color:var(--fg-2)}
.ap-tried.is-warn,.ap-tried.is-warn svg{color:var(--warn)}
.ap-stk{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.ap-shared{color:var(--fg-3)}
.ap-why.is-full{display:block;-webkit-line-clamp:unset;overflow:visible}
.ap-acts .ap-open{margin-left:auto}

/* ---------- the approval queue (LP5): Priority · Fix · At stake · Expected / minimum · Waiting · Approver ---------- */
.apq{display:flex;flex-direction:column;margin-top:4px}
/* D08 (7 Oct): the fix's name starts on one x, the numbers' column is wider than its label, the waiting clock and the approver on fixed axes, the chevron at a fixed end */
.apq-h,.apq-row{display:grid;grid-template-columns:22px 68px minmax(0,2.4fr) minmax(0,1fr) minmax(0,1.25fr) minmax(0,.9fr) minmax(0,.9fr) 16px;column-gap:14px;align-items:center;margin:0 -8px;padding:0 8px}
.apq-h{min-height:32px;font-size:var(--t-sh);line-height:var(--lh-sh);font-weight:var(--w-medium);color:var(--fg-3);border-bottom:1px solid var(--ln-2)}
.apq-row{min-height:64px;padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--ln-2);border-radius:var(--r-8);cursor:pointer;transition:var(--tr-ui)}
@media (hover:hover){.apq-row:hover{background:var(--hover-solid)}}
.apq-row.is-open{background:var(--bg-2);border-bottom-color:transparent;border-radius:var(--r-8) var(--r-8) 0 0}
.apq-row.is-sel{background:color-mix(in srgb,var(--c-blue) 7%,var(--bg))}
.apq-row .k2{display:flex;flex-direction:column;min-width:0}
.apq-row .k2 .k{min-width:0;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg);font-weight:var(--w-medium);overflow:hidden;text-overflow:ellipsis}
.apq-row .k2 .u{min-width:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.apq-row .apq-fix .k{white-space:normal;color:var(--fg)}
@media (hover:hover){.apq-row .apq-fix a.k:hover{text-decoration:underline}}
.apq-row .apq-fix .u{white-space:normal;color:var(--fg-2)}
.apq-row .apq-who .k{font-weight:var(--w-regular)}
.apq-chev{display:inline-flex;color:var(--fg-3)}
.apq-ck{position:relative;display:inline-grid;place-items:center;width:24px;height:24px;cursor:pointer}   /* v103 (AX9): a 24px target */
.apq-ck input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.apq-ck .tk-box{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:var(--r-4);box-shadow:inset 0 0 0 1.5px var(--ln-4);color:var(--bg)}
.apq-row.is-sel .apq-ck .tk-box{background:var(--c-blue);box-shadow:none}
.apq-ck input:focus-visible + .tk-box{outline:2px solid var(--ring);outline-offset:2px}
.apq-pack{margin:0 -8px 8px;padding:4px 8px 14px;border-radius:0 0 var(--r-8) var(--r-8);background:var(--bg-2);border-bottom:1px solid var(--ln-2)}
.apq-pack .ap-card.is-pack{padding:6px 14px 4px;border:0;box-shadow:none;background:transparent;gap:12px}
.apq-bulk{display:flex;align-items:center;gap:8px;margin:2px -8px 8px;padding:8px 10px;border-radius:var(--r-8);background:color-mix(in srgb,var(--c-blue) 8%,var(--bg));font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.apq-bulk b{color:var(--fg);font-weight:var(--w-medium)}
.apq-g{display:flex;align-items:center;gap:8px;margin:10px -8px 0;padding:8px 8px 6px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-3);border-bottom:1px solid var(--ln-2)}
.apq-g b{color:var(--fg);font-weight:var(--w-semibold)}
.apq-tile{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:var(--r-4);color:var(--on-fill);font-size:11px;font-weight:var(--w-semibold)}
.apq.is-ws .apq-row{cursor:pointer}
@media (max-width:1180px){.apq-h,.apq-row{grid-template-columns:22px 64px minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 16px}.apq-h > :nth-child(4),.apq-row > :nth-child(4){display:none}}
@media (max-width:960px){.apq-h,.apq-row{grid-template-columns:22px 64px minmax(0,1fr) minmax(0,.9fr) minmax(0,.9fr) 16px}.apq-h > :nth-child(5),.apq-row > :nth-child(5){display:none}}

/* ---------- Ask for changes, snooze ---------- */
.ap-chg-l svg{color:var(--fg-3)}
.snz-opts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.snz-opts .btn.is-on{background:var(--bg-4);color:var(--fg)}
.snz-d{color:var(--fg-3)}

/* ---------- the bulk approval summary (LP4) ---------- */
.bk-list{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.bk-r{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--ln-2)}
.bk-r:last-child{border-bottom:0}
.bk-t{display:flex;align-items:center;gap:8px;font-size:var(--t-body);line-height:var(--lh-body)}
.bk-t b{font-weight:var(--w-medium);color:var(--fg)}
.bk-m{display:flex;align-items:flex-start;gap:4px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.bk-m > svg{flex:none;margin-top:2px}
.bk-out{margin-top:12px;padding:10px 12px;border-radius:var(--r-12);background:var(--bg-2);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.bk-out ul{margin:6px 0 0;padding:0 0 0 18px}
.bk-out li{margin:2px 0}
.bk-out b{font-weight:var(--w-medium);color:var(--fg)}
.bk-h{display:flex;align-items:center;gap:4px;font-weight:var(--w-medium);color:var(--fg)}
.rs-sheet.is-md{width:min(640px,calc(100vw - 32px))}

/* ---------- the keys sheet (LP3) ---------- */
.ky-btn{color:var(--fg-3)}
.ky-list{display:grid;gap:2px}
.ky-list.is-off{margin-top:14px;padding-top:10px;border-top:1px solid var(--ln-2)}
.ky-h{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);margin-bottom:4px}
.ky-r{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:30px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg)}
.ky-r.is-off{color:var(--fg-3)}
.ky-ks{display:inline-flex;align-items:center;gap:4px}
.ky-k{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-6);background:var(--bg-3);box-shadow:inset 0 -1px 0 var(--ln-3);font:500 12px/1 var(--mono,ui-monospace),monospace;color:var(--fg-2)}
.ky-or{color:var(--fg-3);font-size:var(--t-co)}
.ky-na{font-size:var(--t-co);color:var(--fg-4)}
.is-kf.kb-card,.is-kf.r-row,.is-kf.ap-card{outline:2px solid var(--ring);outline-offset:-2px}

/* ---------- the rules lane (LP12) ---------- */
.rl-lane .rl-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1.3fr) auto;column-gap:16px;align-items:center;margin:0 -8px;padding:10px 8px;border-bottom:1px solid var(--ln-2)}
.rl-lane .rl-row:last-child{border-bottom:0}
.rl-lane .k2{display:flex;flex-direction:column;min-width:0}
.rl-lane .k2 .k{font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg);font-weight:var(--w-medium)}
.rl-lane .k2 .u{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.rl-lane .rl-st{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rl-lane .rl-why{grid-column:1/-1;display:flex;align-items:center;gap:6px;margin-top:6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--warn)}
.rl-lane .rl-bt{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:0;list-style:none}
.rl-lane .rl-b{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 10px;border-radius:var(--r-8);background:var(--bg-2);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.rl-lane .rl-b b{font-weight:var(--w-medium);color:var(--fg);white-space:nowrap}
.rl-lane .rl-b.is-wait{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-orange) 45%,transparent)}
.rl-lane .rl-b.is-wait b{color:var(--warn)}
.rl-lane .rl-b > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rl-lane .rl-ic{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:var(--r-6);background:var(--bg-3);color:var(--fg-2);flex:none}
.rl-lane .rl-name{display:flex;align-items:center;gap:10px;min-width:0}
@media (max-width:1100px){.rl-lane .rl-row{grid-template-columns:minmax(0,1fr) auto}.rl-lane .rl-row > :nth-child(2),.rl-lane .rl-row > :nth-child(3){grid-column:1/-1}}

/* ---------- the calendar's agenda (F13, F24) ---------- */
.cal-ag{margin-top:16px;padding-top:12px;border-top:1px solid var(--ln-2)}
.cal-ag-h{display:flex;align-items:baseline;gap:8px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2);margin-bottom:6px}
.cal-ag-h b{color:var(--fg);font-weight:var(--w-semibold)}
.cal-ag-l{display:grid;gap:0;margin:0;padding:0;list-style:none}
.cal-ag-r{display:grid;grid-template-columns:96px 120px minmax(0,1fr);gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--ln-2);font-size:var(--t-body);line-height:var(--lh-body)}
.cal-ag-r:last-child{border-bottom:0}
.cal-ag-r .d{color:var(--fg-3);font-variant-numeric:tabular-nums}
.cal-ag-r .w{display:inline-flex;align-items:center;gap:6px;color:var(--fg-2)}
.cal-ag-r a{color:var(--fg);min-width:0}
@media (hover:hover){.cal-ag-r a:hover{text-decoration:underline}}
.cal-ag-r .cal-ag-c{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:start;color:var(--fg);font-size:inherit;line-height:inherit;font-weight:inherit}   /* loop fix (N1): "Same page" — one line; the day's panel has every pair */
@container cal (max-width:600px){.cal-ag-r{grid-template-columns:auto minmax(0,1fr);gap:2px 12px}.cal-ag-r a,.cal-ag-r .cal-ag-c{grid-column:1/-1;display:block;min-height:24px}}   /* night (Oct 8): on a phone the day and kind sit over the name, never three squeezed columns */

/* ---------- 900px: the boards keep their headers and labels (F12) — D09 (7 Oct): the columns keep 264px and the board scrolls sideways (linear.css) ---------- */
@media (max-width:1100px){
  .kb-colh b{white-space:nowrap}
  .pl-bar .prop .label,.pl-bar .prop > span{white-space:nowrap}
}

/* ---------- the tab row keeps its labels (F12): tools never shrink into "Fil…" — the search gives way first, then the row wraps ---------- */
.pl-bar > .menu-btn,.pl-bar > .prop,.pl-bar > .pl-vsw,.pl-bar > button{flex:none}
.pl-bar > .pl-q{flex:0 1 220px;min-width:150px}
.pl-bar .mb-l{max-width:none;overflow:visible}
.kb-card .kb-hd{flex-wrap:wrap;row-gap:4px}
.kb-card .kb-hd .wt-chip{max-width:none}
.hm-tools .ky-btn{margin-left:2px}
.r-clk{margin-top:4px}
.r-clk .m-clock.is-compact{margin-top:0}
/* the queue's sub-lines wrap — written short, never cut with "…" (F13) */
.apq-row .k2 .u{white-space:normal;overflow:visible;text-overflow:clip}
.apq-row .k2 .k{white-space:normal}
.fd-apv{margin-top:2px}
.fd-labels .wt-chip{margin-left:4px}
.fd-labels .wt-acts{margin-left:8px}
.rl-lane .k2 > .m-cd,.rl-lane .k2 > .rl-mks{align-self:flex-start}
.rl-lane .k2 > .rl-mks{margin-top:6px}
/* the card kit's header rule at +15 on the loop pages too (the Website section's W8 rule, v92-website.css) — icon +23, title +56, rows +15 */
.pl .sec.panel.pt-card > .sec-hd{margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}
/* the record pages (a fix, a finding, a change): the same card numbers — 22px, the rule at +15, the icon at +23, the title at +56 */
.fp.fd .fd-sec:not(.is-fold){padding-left:22px;padding-right:22px}
.fp.fd .fd-sec:not(.is-fold) > .sec-hd{margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}
.fp.fd .fd-sec.is-fold > .fold-hd{padding-left:22px;padding-right:22px}
.fp.fd .fd-sec.is-fold.is-open > .fd-bd{padding-left:22px;padding-right:22px}
.apq-g .more{white-space:nowrap}

/* ======================================================================  v100 (LF-B) — Findings, round 2  ======================================================================
   The board's holder (the tick and the "Create the action" button sit beside the card's link, never inside it), the bulk bar, "Came back", the Hide and
   Close sheets, the weekly counts, the finding's waiting line, "Seen in", the stake's (i). Tokens only — light and dark; no new colours. */
/* ---------- the board: a card in its holder (LP4, F7) ---------- */
.kb-it{position:relative;display:flex;flex-direction:column;min-width:0}
.kb-it > .kb-card{flex:1 1 auto}
.kb-it .kb-hd{padding-right:0}
/* loop fix (round 1 · visual): the head keeps room for the tick only while the tick shows — "Verdict Oct 2" ends where the footer's date ends */
.kb-it:hover .kb-hd,.kb-it:focus-within .kb-hd,.fl-bd.has-sel .kb-it .kb-hd,.kb-it.is-sel .kb-hd{padding-right:24px}
@media (hover:none){.kb-it .kb-hd{padding-right:24px}}
.kb-ck{position:absolute;top:9px;right:9px;display:inline-grid;place-items:center;width:24px;height:24px;cursor:pointer;opacity:0;transition:opacity var(--dur-1) var(--ease-out)}
.kb-ck input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.kb-ck .tk-box{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:var(--r-4);background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--ln-4);color:var(--bg)}
.kb-it:hover .kb-ck,.kb-it:focus-within .kb-ck,.fl-bd.has-sel .kb-ck,.kb-it.is-sel .kb-ck{opacity:1}
.kb-it.is-sel .kb-ck .tk-box{background:var(--c-blue);box-shadow:none}
.kb-ck input:focus-visible + .tk-box{outline:2px solid var(--ring);outline-offset:2px}
.kb-it.is-sel > .kb-card{border-color:color-mix(in srgb,var(--c-blue) 55%,var(--bd-tl));box-shadow:0 0 0 1px color-mix(in srgb,var(--c-blue) 35%,transparent)}
/* a card with nothing to approve yet: the holder is the card, the link fills its top, the button sits under it */
.kb-it.has-cta{border-radius:var(--r-12);background:var(--bg);border:1px solid var(--bd-tl);box-shadow:var(--sh-tiny);transition:var(--tr-ui)}
@media (hover:hover){.kb-it.has-cta:hover{border-color:var(--bd);box-shadow:var(--sh-low)}}
.kb-it.has-cta > .kb-card{border:0;box-shadow:none;background:transparent;padding-bottom:8px}
@media (hover:hover){.kb-it.has-cta > .kb-card:hover{box-shadow:none}}
.kb-it.has-cta.is-sel{border-color:color-mix(in srgb,var(--c-blue) 55%,var(--bd-tl))}
.kb-cta{display:flex;padding:0 14px 12px}
.kb-nofix{display:flex;align-items:flex-start;gap:6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.kb-nofix svg{flex:none;margin-top:2px;color:var(--fg-3)}
.kb-who{display:flex;align-items:flex-start;gap:6px;min-width:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.kb-who svg{flex:none;margin-top:2px;color:var(--fg-3)}
.kb-rm{display:inline-flex;color:var(--fg-3)}
/* F13: the why, the "After:" line and "Same fix as" are written short (≤ 140 characters) — shown whole, never cut with "…" */
.fl-bd .kb-w,.fl-bd .kb-after span,.fl-bd .kb-same span{display:block;-webkit-line-clamp:unset;overflow:visible}
.fl-bd .kb-n span{display:block;-webkit-line-clamp:unset;overflow:visible}
/* ---------- the ticked findings (LP4) ---------- */
.fl-bulk{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 10px 8px 12px;border-radius:var(--r-12);background:color-mix(in srgb,var(--c-blue) 8%,var(--bg));font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.fl-bulk > svg{flex:none;color:var(--c-blue)}
.fl-bulk b{color:var(--fg);font-weight:var(--w-medium)}
/* ---------- "Came back" (LP7): Website → Health's word and look — a dashed outline ---------- */
.lbl.fl-back{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px dashed var(--ln-4);color:var(--fg)}
.lbl.fl-back svg{color:var(--fg-3)}
.fd-backbox{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;padding:12px 14px;border-radius:var(--r-12);background:var(--bg-2);border:1px dashed var(--ln-4);color:var(--fg)}
.fd-backbox > svg{flex:none;margin-top:2px;color:var(--fg-3)}
.fd-backbox b{font-weight:var(--w-semibold)}
.fd-backbox p{margin:2px 0 0;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.fd-backl{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px;font-size:var(--t-co);line-height:var(--lh-co)}
.fd-backl .lk{display:inline-flex;align-items:center;gap:3px}
.tl-act.is-back .tl-dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--fg-3)}
.tl-act.fl-note{grid-template-columns:auto minmax(0,1fr) auto auto}
/* ---------- the Hide and Close sheets: one click per choice ---------- */
.fl-opts{display:grid;gap:6px}
.fl-opt{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;border-radius:var(--r-12);background:var(--bg-2);border:1px solid var(--bd-tl);text-align:left;cursor:pointer;color:var(--fg);transition:var(--tr-ui)}
@media (hover:hover){.fl-opt:hover:not([disabled]){background:var(--bg-3);border-color:var(--bd)}}
.fl-opt[disabled]{cursor:default;color:var(--fg-3)}
.fl-opt b{display:block;font-size:var(--t-body);line-height:var(--lh-body);font-weight:var(--w-medium)}
.fl-opt .grow > span{display:block;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.fl-opt-ic{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;border-radius:var(--r-6);background:var(--bg);color:var(--fg-2)}
.fl-wd{margin-top:12px}
.fl-sv{display:inline-flex;align-items:center;gap:5px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
/* Oct 7 review: a card's three facts (data · cause · fix) wrap between facts, never inside one */
.fl-3f > span{white-space:nowrap}
/* ---------- Activity: each week (LP7) ---------- */
.fl-wk{display:grid;margin-top:2px;max-width:720px}   /* loop fix (round 1): the numbers sit beside their week — never 1,300px away at 1920 */
.fl-wk-r{display:grid;grid-template-columns:minmax(0,1fr) 80px 80px 96px;column-gap:16px;align-items:center;min-height:36px;margin:0 -8px;padding:0 8px;border-bottom:1px solid var(--ln-2);font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg);font-variant-numeric:tabular-nums}
.fl-wk-r:last-child{border-bottom:0}
.fl-wk-r.is-h{min-height:30px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.fl-wk-r .r{text-align:right}
.fl-wk-r.is-now{font-weight:var(--w-medium)}
.fl-wk-r .is-back{color:var(--warn)}
.fl-wkc{margin-bottom:14px}
/* ---------- a finding: its waiting fix (LP1, LP2), the meter (LP8), "Seen in" (LP18), the stake's (i) (F15) ---------- */
.fd-fix-w{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px}
.fd-fix-ap{display:inline-flex;align-items:center;gap:5px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.fd-fix-ap svg{color:var(--fg-3)}
.fd-fix-w .apv-steps{margin:0}
.fd-fix-clk{margin-top:6px;max-width:320px}
/* Oct 7 review (D05): a finding's summary shows its result sentence; "Show details" opens the rest in place (pages/lfindings.js sumFold) */
.fd-sum .fd-sum-x{display:inline;font-size:var(--t-co);white-space:nowrap}
.fd-stk{display:inline-flex;align-items:flex-start;gap:4px}
.fd-i{width:20px;height:20px;flex:none;color:var(--fg-3)}
.fd-seen > span{display:flex;flex-direction:column;gap:1px}
.fd-seen .lk{display:inline-flex;align-items:flex-start;gap:5px}
.fd-seen .lk svg{flex:none;margin-top:3px}
@media (max-width:1100px){.fl-wk-r{grid-template-columns:minmax(0,1fr) 56px 56px 80px;column-gap:10px}}
/* F5: a fix the board has no card for, counted in its column — a quiet line that opens it in Actions */
.kb-extra{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:var(--r-12);border:1px dashed var(--ln-3);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.kb-extra-h{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.kb-extra-h svg{flex:none}
.kb-extra-r{display:flex;flex-direction:column;padding:4px 0;color:inherit}
.kb-extra-t{font-size:var(--t-body);line-height:var(--lh-body);font-weight:var(--w-medium);color:var(--fg)}
@media (hover:hover){.kb-extra-r:hover .kb-extra-t{text-decoration:underline}}
/* F13: a card's title is shown whole — never cut with "…" (titles are written short) */
.fl-bd .kb-t,.fl-bd .kb-card.is-compact .kb-t{display:block;-webkit-line-clamp:unset;overflow:visible}

/* =====================================================================  v100 (LF-C, 3 Oct 2026) — Changes: the ledger, the week, the investigation  =====================================================================
   _reviews/2026-10-03-loop-pages/FIX.md (LF-C). The card kit's numbers come from ui/ptools.js (22px · rule +15 · icon +23 · title +56). Tokens only. */
.cl-newk{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font:inherit;color:var(--fg-2);cursor:pointer;text-decoration:underline;text-decoration-color:var(--ln-2);text-underline-offset:3px}
.cl-newk.is-on{color:var(--fg);text-decoration-color:currentColor;font-weight:var(--w-medium)}@media (hover:hover){.cl-newk:hover{color:var(--fg);text-decoration-color:currentColor}}
.cl-newk.is-tag{text-decoration:none;cursor:default;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2);margin-left:4px}
.cl-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:var(--r-full);background:var(--c-blue);vertical-align:middle}
.f-t > .cl-dot{margin:-2px 7px 0 0}
.cl-seen{color:var(--fg-3)}
.cl-revd{display:inline-flex;align-items:center;gap:5px;margin-left:4px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
/* F5: the verdicts by whose they are — three groups that wrap as groups */
.cl-tally{align-items:flex-start;flex-wrap:nowrap}
.cl-tally > svg{margin-top:2px}
.cl-tgs{display:inline-flex;flex-wrap:wrap;align-items:baseline;column-gap:18px;row-gap:2px;min-width:0;flex:1 1 auto}
.cl-tg{display:inline;white-space:normal}
.cl-tgk{margin-right:6px;color:var(--fg-2);font-weight:var(--w-medium)}
.cl-tally .ag-in{white-space:nowrap}

/* LP17: This week — four columns in golden-path order; two at 1100px, one at phone width */
.wk-card .sec-hd .ib.wk-tog{margin-right:-6px}
.wk-card.is-folded{padding-bottom:12px}
.wk-card.is-folded > .sec-hd{border-bottom:0;padding-bottom:0;margin-bottom:0}
.wk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:8px 0 2px}
.wk-col{min-width:0;padding:8px 18px 6px;border-left:1px solid var(--ln-2)}
.wk-col:first-child{padding-left:0;border-left:0}
.wk-col:last-child{padding-right:0}
.wk-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.wk-h > svg{flex:none;align-self:center;color:var(--fg-3)}
.wk-h b{color:var(--fg);font-weight:var(--w-semibold,600)}
.wk-l{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.wk-l li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:start;font-size:var(--t-co);line-height:var(--lh-co)}
.wk-k{color:var(--fg-3);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:1px}
.wk-l li.is-v{grid-template-columns:minmax(0,1fr)}
.wk-v{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.wk-tag{font-size:var(--t-co);color:var(--fg-3)}
.wk-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.wk-tt{color:var(--fg)}
.wk-s{color:var(--fg-3)}
.wk-e{margin:10px 0 0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.wk-w{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.wk-col .pt-ask{margin-top:10px}
@media (max-width:1100px){.wk-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.wk-col:nth-child(3){padding-left:0;border-left:0}.wk-col:nth-child(2){padding-right:0}}
@media (max-width:640px){.wk-grid{grid-template-columns:minmax(0,1fr)}.wk-col{padding-left:0;padding-right:0;border-left:0}}

/* the lanes row keeps its labels; the search gives way first */
.cl-bar{flex-wrap:nowrap}
.sec + .cl-bar{margin-top:24px}   /* Oct 7 review (D04): the tab row stands apart from the "This week" card above it (it touched it, 0px) */
.cl-bar .pl-views{flex-wrap:wrap;min-width:0}
@media (max-width:1100px){.cl-bar{flex-wrap:wrap}.cl-bar > .grow{display:none}.cl-bar > .pl-q{width:100%;order:5}}

/* the list card: the filter row (types · made by · result · page type · Compare with), the rows, the weeks' folds */
.cl-card > .f-list{margin-top:6px}
.cl-types{display:flex;align-items:center;flex-wrap:wrap;gap:6px 6px;padding:10px 0 8px;border-bottom:1px solid var(--ln-2)}
.cl-types .prop{height:30px}
.cl-tys{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.cl-tk{margin-right:6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.cl-ty{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 8px;border:0;border-radius:var(--r-ctl);background:none;font:inherit;font-size:var(--t-co);color:var(--fg-2);cursor:pointer}   /* Oct 7 review (D10): a filter button, 8px corners */
.cl-ty b{font-weight:var(--w-regular);color:var(--fg-3);font-variant-numeric:tabular-nums}
@media (hover:hover){.cl-ty:hover{background:var(--hover-solid);color:var(--fg)}}
.cl-ty.is-on{background:var(--bg-3);color:var(--fg);font-weight:var(--w-medium)}
.cl-ty.is-on b{color:var(--fg-2)}
.cl-card .cl-head{margin-top:8px}
.cl-who{display:flex;align-items:center;gap:8px;min-width:0}
.cl-who > .lbl{min-width:0;max-width:100%;white-space:normal;height:auto;min-height:22px;padding-top:2px;padding-bottom:2px;text-align:left}   /* v105 (no-cut): the who chip wraps, never "…" */
.cl-ck{display:inline-grid;place-items:center;flex:none;width:16px;height:16px;padding:0;border:0;border-radius:var(--r-4);box-shadow:inset 0 0 0 1.5px var(--ln-4);background:var(--bg);color:var(--bg);cursor:pointer}
.cl-ck.is-on{background:var(--fg);box-shadow:none}
.cl-row.is-sel{background:var(--bg-2)}
.cl-row.is-kf{outline:2px solid var(--ring);outline-offset:-2px}
.cl-row .f-s .f-why{display:block;overflow:visible;-webkit-line-clamp:unset;white-space:normal}
.cl-row .cl-meta{white-space:normal;overflow:visible}
.cl-row.is-fold{background:var(--bg-2);border-radius:0}
.cl-seln{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2);font-weight:var(--w-medium);margin-right:4px}
.cl-wk{display:flex;align-items:center;gap:10px;width:calc(100% + 16px);margin:6px -8px;padding:10px 8px;border:0;border-radius:var(--r-8);background:var(--bg-2);font:inherit;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);text-align:left;cursor:pointer}
.cl-wk > svg{flex:none;color:var(--fg-3)}
.cl-wk b{color:var(--fg-2);font-weight:var(--w-medium)}
@media (hover:hover){.cl-wk:hover{color:var(--fg-2)}}
.cl-wk-a{display:inline-flex;align-items:center;gap:3px;flex:none;color:var(--link-tint,var(--link));font-weight:var(--w-medium)}
.cg-range{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cg-rf{display:flex;flex-direction:column;gap:6px;font-size:var(--t-co);color:var(--fg-3)}

/* LP9: the investigation — the strip of six steps under the title, each section's answer in its header */
.inv-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 16px;padding:0;list-style:none;border-radius:var(--r-card);background:var(--bg);box-shadow:var(--sh-tiny);border:1px solid var(--bd-tl);overflow:hidden}
.inv-strip > li{min-width:0;border-left:1px solid var(--ln-2);border-top:1px solid var(--ln-2)}
.inv-strip.is-3 > li:nth-child(3n+1),.inv-strip.is-2 > li:nth-child(2n+1),.inv-strip > li:first-child{border-left:0}
.inv-strip.is-3 > li:nth-child(-n+3),.inv-strip.is-4 > li,.inv-strip.is-2 > li:nth-child(-n+2),.inv-strip.is-1 > li{border-top:0}
.inv-strip.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.inv-strip.is-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.inv-strip.is-1{grid-template-columns:minmax(0,1fr)}
.inv-s{display:flex;align-items:flex-start;gap:10px;width:100%;height:100%;padding:12px 14px;border:0;background:none;font:inherit;text-align:left;color:inherit;cursor:pointer;text-decoration:none}
@media (hover:hover){.inv-s:hover{background:var(--hover-solid)}}
.inv-n{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;border-radius:var(--r-full);background:var(--bg-3);font-size:11px;font-weight:var(--w-medium);color:var(--fg-2);font-variant-numeric:tabular-nums}
.inv-t{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:var(--t-co);line-height:var(--lh-co)}
.inv-t b{color:var(--fg-3);font-weight:var(--w-regular)}
.inv-t span{color:var(--fg)}
.inv-strip > li.is-open .inv-n{box-shadow:inset 0 0 0 1.5px var(--fg-3);background:none}
.inv.is-compact .inv-hd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:var(--t-body)}
.inv.is-compact .inv-hd span{font-size:var(--t-co);color:var(--fg-3)}
.inv.is-compact .inv-strip{grid-template-columns:minmax(0,1fr);box-shadow:none}
.inv.is-compact .inv-strip > li{border-left:0;border-top:1px solid var(--ln-2)}
.inv.is-compact .inv-strip > li:first-child{border-top:0}
.inv-sec .sec-hd .inv-ans{flex:1 1 auto;min-width:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){.inv-sec .sec-hd{flex-wrap:wrap}.inv-sec .sec-hd .inv-ans{flex:1 1 100%;text-align:left;white-space:normal;overflow:visible;text-overflow:clip}}
.inv-xs{display:flex;flex-direction:column}
.inv-g{margin:12px 0 2px;font-size:var(--t-co);line-height:var(--lh-co);font-weight:var(--w-medium);color:var(--fg-3)}
.inv-g:first-child{margin-top:2px}
.inv-x{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;padding:8px 0;border-bottom:1px solid var(--ln-2)}
.inv-x:last-child{border-bottom:0}
.inv-m{display:inline-grid;place-items:center;width:22px;height:20px;color:var(--fg-3)}
.inv-x.is-held .inv-m{color:var(--c-green)}
.inv-x.is-out .inv-m{color:var(--fg-3)}   /* P6 L2: "Not supported" is neutral — never the green of a pass */
.inv-x.is-cause .inv-m{color:var(--c-blue)}
.inv-x.is-open .inv-m{color:var(--fg-2)}
.inv-xt{display:flex;flex-direction:column;gap:2px;min-width:0}
.inv-xh{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg)}
.inv-xh > .lbl{align-self:center}
.inv-xw{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.inv-foot{margin-top:10px}
.inv-clock{margin-top:12px;max-width:520px}
.cg-case .noteform,.cg-case .pt-note{margin:0 0 16px}
/* the side: notes and history (LP10, LP11) */
.cg-side-sec{padding-bottom:10px}
.cg-side-sec > .fd-gh{display:flex;align-items:center;gap:8px}
.cg-side-sec > .fd-gh .lk{font-size:var(--t-co);font-weight:var(--w-regular)}
.cg-notes{display:flex;flex-direction:column;gap:8px}
.cg-notes .pt-nr{grid-template-columns:auto minmax(0,1fr);row-gap:4px}
.cg-hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.cg-hist li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}
.cg-hd{color:var(--fg-3);font-variant-numeric:tabular-nums}
@media (max-width:640px){.inv-strip{grid-template-columns:minmax(0,1fr)}.inv-strip > li{border-left:0;border-top:1px solid var(--ln-2)}.inv-strip > li:first-child{border-top:0}}
/* F17: the decision after "Can't tell" — the words on one line, the three answers under them */
.inv-sec .ap-after{margin-top:12px}
.inv-sec .ap-after > .grow{flex:1 1 100%}
/* F13: a change's title wraps — written short, never cut with "…" */
.cl-row .f-t{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
/* LP7 on a fix's row: the problem came back */
.cl-back{display:flex;align-items:flex-start;gap:5px;color:var(--fg-2)}
.cl-back > svg{flex:none;margin-top:3px;color:var(--fg-3)}

/* v103 (Dashboard it.2 · DF-D 3, design-system D6 + D3): the board's columns lose the grey fill — the cards' own 8% edge separates them (Linear) —
   and a finding's kind ("Issue", "Drop", "Win") is a word in text-3, not a red or green chip; impact is the neutral bars (pages/dashboard.js impChip).
   State chips (Waiting for approval, In progress…) keep their colour: colour is for state and direction only. */
.kb-col{background:transparent;padding-left:0;padding-right:0}
.kb-card:not(.is-compact) .kb-hd > .lbl.imp + .lbl.tint{background:none;box-shadow:none;padding:0;color:var(--text-3);font-weight:400}
.kb-card:not(.is-compact) .kb-hd > .lbl.imp + .lbl.tint > .ld{display:none}

/* night C6 (Oct 8) — the action page's parts table ("The parts and how each is judged", pages/lactions.js table3). The columns share the width and the
   state chip stays on one line; when the table itself is narrower than 640px (the action page's left column at 860–1100px windows) the chip moves
   under its row, so no header is cut and no word breaks mid-word. Under 760px of page the shared card layout (styles/v103-a11y.css) takes over —
   there the Expected cell gets the same "label  value" line as the other cells. */
.tbl.ev-tbl{container:evt / inline-size}
.ev-tbl > .tbl-r > .ev-st{align-items:flex-start}
.ev-tbl > .tbl-r > .ev-st > .lbl{white-space:nowrap}
@container pg (min-width:761px){
  @container evt (max-width:639px){
    .ev-tbl > .tbl-h,.ev-tbl > .tbl-r{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.8fr) minmax(56px,.5fr)}
    .ev-tbl > .tbl-h > :last-child{display:none}
    .ev-tbl > .tbl-r{row-gap:2px;padding-bottom:8px}
    .ev-tbl > .tbl-r > :last-child{grid-column:1 / -1;justify-self:start}
  }
}
@container pg (max-width:760px){
  .ev-tbl > .tbl-r > .u:not(:first-child){display:flex}
}

/* loop fix (B5 · visual): "Who does it" is its own block — the section gap above it, and after the evidence line it starts at that line's text
   (13px icon + 7px gap), never 20px to its left; on a phone the one-option row stacks its reason under the choice */
.ap-evd + .who-pick{margin-top:12px;padding-left:20px}
.apv-sum + .who-pick{margin-top:12px}
@media (max-width:600px){.who-pick.is-one .wp-o{flex-wrap:wrap;row-gap:0}.who-pick.is-one .wp-o .wp-s{flex-basis:100%;padding-left:19px}}
/* loop fix (C2): the stake in the approval panel takes the full row — its sentence wrapped in a third of the width beside empty space */
.hm-mf dl > .hm-mf-wide{grid-column:1 / -1}
.hm-mf dl > .hm-mf-wide .hm-mf-s{max-width:72ch}

/* loop fix (D5 · UX2-07): Findings and Actions skeletons (pages/lfindings.js boardSkeleton) — the board's own columns and cards, spaced */
.lb-sk{gap:0}
.lb-sk-hd{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.lb-sk-tools{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.lb-sk-tabs{display:flex;gap:24px;padding:4px 0 12px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.lb-sk-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:start;overflow:hidden}
.lb-sk-board.is-5{grid-template-columns:repeat(5,minmax(200px,1fr))}
.lb-sk-col{display:flex;flex-direction:column;gap:10px;min-width:0;padding:10px;border-radius:var(--r-12);background:var(--bg-2)}
.lb-sk-colh{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 6px}
.lb-sk-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-12)}
.lb-sk-ch,.lb-sk-cf{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lb-sk-cf{margin-top:2px}
.lb-sk .sk.lb-sk-pill{border-radius:var(--r-full)}
.lb-sk .sk.lb-sk-ctl{border-radius:var(--r-ctl)}
@container pg (max-width:640px){.lb-sk-tools > .sk:nth-child(n+3){display:none}.lb-sk-board,.lb-sk-board.is-5{grid-template-columns:minmax(0,1fr)}.lb-sk-col:nth-child(n+2){display:none}}
/* loop fix (C6 · A14): the keyboard-shortcuts button is no use on a touch phone and was under the 40px floor — hidden there on Findings, Actions and a
   finding's head (the shortcuts still work with a keyboard; "?" opens them) */
@container pg (max-width:760px){.fp .ky-btn,.fd-nav .ky-btn{display:none}}
@media (pointer:coarse){.fp .ky-btn,.fd-nav .ky-btn{display:none}}
/* loop fix (C6 · phone): the page tabs fit a 390 screen — no "Results" cut at the edge, no "lan 5" — a smaller gap and no icons under 440px */
@container pg (max-width:440px){.fp .pl-tabs{gap:16px}.fp .pl-tab > svg{display:none}}
/* loop fix (C6 · phone): the Plan toolbar is two rows, not three — under 440px the sort button shows its icon only (its name stays in its label) */
@container pg (max-width:440px){.fp .pl-bar #af-sort .mb-l,.fp .pl-bar #af-sort .mb-cv{display:none}.fp .pl-bar #af-sort{min-width:40px;justify-content:center}}
/* loop fix (D1): the text to copy when the browser refused — monospace-free, full width, scrolls inside */
.fd-copy-ta{width:100%;min-height:180px;max-height:50vh;resize:vertical;font:inherit;font-size:var(--t-co);line-height:var(--lh-co);white-space:pre-wrap}
/* loop fix (I3): a button fold's body enters like a details fold — once, when it opens (pages/lfindings.js fold) */
@keyframes fd-fold-in{from{opacity:0;translate:0 calc(var(--rise) / -2)}}
.fd-sec.is-fold > .fd-bd.is-entering{animation:fd-fold-in var(--dur-2) var(--ease-out) both}
@media (prefers-reduced-motion:reduce){.fd-sec.is-fold > .fd-bd.is-entering{animation:none}}
/* loop fix (I3 · I4): the approval summary rises in once when it opens (pages/dashboard.js approvalSheet) — never on a redraw */
.hm-mf.is-entering{animation:dp-rise var(--dur-2) var(--ease-out) both}
@media (prefers-reduced-motion:reduce){.hm-mf.is-entering{animation:none}}

/* ---------- P6 L9: Results › Made under a standing rule — one row per rule, its weeks folded under it (pages/lactions.js groupRow) ---------- */
.rs-rule{border-bottom:1px solid var(--ln-2)}
.rs-rule:last-child{border-bottom:0}
.rs-rule > .r-row{border-bottom:0}
.rs-mks{flex-wrap:wrap;margin-top:2px}
.rs-weeks > summary{display:inline-flex;align-items:center;gap:4px;margin:0 0 10px 148px;padding:2px 6px;border-radius:var(--r-ctl);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);cursor:pointer;list-style:none}
.rs-weeks > summary::-webkit-details-marker{display:none}
.rs-weeks > summary svg{flex:none;transition:transform .15s ease}
.rs-weeks[open] > summary svg{transform:rotate(90deg)}
@media (hover:hover){.rs-weeks > summary:hover{background:var(--bg);color:var(--fg-2)}}
.rs-weeks > .f-list{margin:0 0 10px;padding-left:12px;border-left:2px solid var(--ln-2)}
.rs-weeks > .f-list > .r-row:last-child{border-bottom:0}
@media (max-width:1320px){.rs-weeks > summary{margin-left:126px}}
@container pg (max-width:760px){.rs-weeks > summary{margin-left:0}.rs-weeks > .f-list{padding-left:8px}}
@media (prefers-reduced-motion:reduce){.rs-weeks > summary svg{transition:none}}

/* ---------- P6 L10: what next after a verdict — one line under a result (Results) or in its Result section (pages/lactions.js nextLine) ---------- */
.r-row.has-next .f-tl{color:inherit;text-decoration:none;border-radius:var(--r-4)}
@media (hover:hover){.r-row.has-next .f-tl:hover{text-decoration:underline;text-underline-offset:2px}}
.rs-next{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:8px 0 0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.rs-next:not(.is-page) > .rs-nb:first-child{margin-left:-8px}   /* the ghost button's label lines up with the words above it */
.rs-next b{color:var(--fg-2);font-weight:var(--w-semibold)}
.rs-next.is-set > svg{flex:none;color:var(--pos-ink)}
.rs-next .rs-nb > svg{flex:none}
.rs-next.is-page{margin:12px 0 0;padding:10px 12px;border-radius:var(--r-12);background:var(--bg-2);font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.rs-next.is-page b{color:var(--fg)}
.rs-next.is-page > .rs-nw{flex:1 1 280px;min-width:0}
/* P6 L17: the finding's way back to the chat it came from (pages/lfindings.js chatLink) */
.fd-labels .fd-chat{display:inline-flex;align-items:center;gap:4px;font-size:var(--t-co);line-height:var(--lh-co)}
.fd-labels .fd-chat svg{flex:none}
/* P6 L19: "Not judged" in the ledger is quiet — muted words, no chip (colour is a secondary cue; the judged rows keep theirs) */
.cl-v .cl-nj{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}

/* ---------- loop fix (round 1, Oct 8): the approval summary on ONE grid — the seven fields and the sheet's own facts share their columns and their
   left edge (no inset well inside the panel); the lock line starts at its first line; the three clocks and the page calendar are folds ---------- */
.hm-mf .apv-sum{padding:0;background:none;gap:12px 16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.hm-mf > dl{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px}   /* auto-fill: the same tracks in both grids at any width, so their columns line up */
.hm-mf > .hm-mf-h{align-items:flex-start}
.hm-mf-h > svg{margin-top:3px}
.hm-mf-more > summary,.pg-cal-more > summary{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.hm-mf-more > .hx-clkb{margin-top:6px}
.pg-cal-sum{display:flex;align-items:flex-start;gap:6px;min-width:0}
.pg-cal-sum > svg{flex:none;margin-top:3px;color:var(--fg-3)}
.pg-cal-sum.is-open > svg{color:var(--c-orange)}
.pg-cal-more{margin-top:2px}
.pg-cal-more > .pg-cal{margin-top:6px}
/* on a finding's or an action's page the open summary is one decision — its own card, never loose text on the grey page */
.fd .hm-mf{background:var(--surface-1);border:1px solid var(--line);padding:16px 18px}
/* loop fix (round 1 · UX5-12): "+3 made inside Website pages — see Results" is one line with its chevron */
.kb-extra.kb-own{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;color:var(--fg-3);text-decoration:none}
.kb-own > .kb-extra-h{margin:0}
.kb-own > svg{flex:none}
@media (hover:hover){.kb-extra.kb-own:hover{color:var(--fg)}}
/* loop fix (round 1): on a phone the approval summary's buttons stack full width — the primary first, Cancel last (never the primary alone under Cancel) */
@media (max-width:640px){.hm-mf-f{flex-direction:column-reverse;align-items:stretch}.hm-mf-f > .grow{display:none}.hm-mf-f > .btn{justify-content:center}}
/* loop fix (round 1 · density): the folded "This week" says the week in one line */
.wk-sum{margin:0;padding:2px 0 4px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);text-wrap:pretty}
/* loop fix (round 1 · visual): Changes' four filters are one group — they wrap together and stay right-aligned, never one left alone under the chips */
.cl-fbtns{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;min-width:0}
.cl-au{font-size:var(--t-co);line-height:var(--lh-co);font-weight:var(--w-medium);color:var(--fg-2);overflow-wrap:anywhere}
/* an empty ledger's one line keeps a reading measure, its button right after it */
.cl-card .sys-ss > .sys-ss-t{flex:0 1 auto;max-width:72ch}
/* loop fix (round 1 · change detail rail): at 1600px and wider the "This change" rail has room — 340px, and its labels a fixed 96px — so dates,
   keys like ACM-482 and "How Dottpace knows" never break mid-word */
@media (min-width:1600px){.cg-case .fd-grid{grid-template-columns:minmax(0,1fr) 340px}.cg-case .fd-side .fd-f{grid-template-columns:96px minmax(0,1fr)}}
.cg-case .fd-side dd{overflow-wrap:normal;word-break:normal;hyphens:manual}
/* loop fix (round 1): on a phone every step of the case strip has its divider (the is-3 / is-2 rules took them off steps 1–3); a 5-step strip's last
   step takes the empty sixth cell */
@media (max-width:640px){.inv-strip[class] > li:not(:first-child){border-top:1px solid var(--ln-2);border-left:0}}
@media (min-width:641px){.inv-strip.is-3 > li:last-child:nth-child(3n+2){grid-column:span 2}}
/* the number's investigation: each finding's compact case reads in three columns where there is room */
@container pg (min-width:900px){
  .iv-page .inv.is-compact .inv-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .iv-page .inv.is-compact .inv-strip > li{border-top:0;border-left:1px solid var(--ln-2)}
  .iv-page .inv.is-compact .inv-strip > li:nth-child(3n+1){border-left:0}
  .iv-page .inv.is-compact .inv-strip > li:nth-child(n+4){border-top:1px solid var(--ln-2)}
}
.hm-mf > dl > .hm-mf-w2{grid-column:span 2}
@media (max-width:640px){.hm-mf > dl > .hm-mf-w2{grid-column:auto}}
