/* ===== v92 · Website section, round 2 (2026-10-02 night — _reviews/2026-10-02-website-round2/FIX.md) =====
   Fixer W-A: the shared page-tools kit (ui/ptools.js) and the section-wide rules W5–W8 — scoped to Health (.hx, not Experience's .hx.ex),
   Pages (.wx), Content (.cn) and Agent Readiness (.ag). Experience keeps its own until its fix round. No new colours.
   W8 · ONE card system: every card is padded 22 px on both sides at every width, so on every page (1280, sidebar open) the cards' leading icons and
   row text start at x = card + 23, the titles at card + 56, and every rule — the card header's and each row's — starts at card + 15 (the rows' 8 px
   hover bleed, which the header rule now shares). */

/* ---------- W8: 22 px card padding everywhere in the section ---------- */
:is(.hx:not(.ex), .wx, .cn, .ag) > .sec.panel:not(.fd-sec):not(.hx-top){padding-left:22px;padding-right:22px}
:is(.hx:not(.ex), .wx, .cn, .ag) > .sec.panel.mn-att{padding-top:16px;padding-bottom:12px}
:is(.hx:not(.ex), .wx, .cn, .ag) > .fd-sec:not(.is-fold){padding:20px 22px 22px}
:is(.hx:not(.ex), .wx, .cn, .ag) > .fd-sec.is-fold > .fold-hd{padding:0 18px 0 22px}
/* night fix (Oct 8): on a phone a fold's header that wraps keeps 12px above and below — its icon never touches the card's edge */
@media (max-width:640px){:is(.hx, .wx, .cn, .ag):is(.page) > .fd-sec.is-fold > .fold-hd{padding-top:12px;padding-bottom:12px}}
:is(.hx:not(.ex), .wx, .cn, .ag) > .fd-sec.is-fold.is-open > .fd-bd{padding:4px 22px 0}
.hx:not(.ex) .hx-top{padding:16px 22px}
.hx:not(.ex) > .hx-around{padding:16px 22px 8px}
/* a fold's body now has the cards' padding — its rows start where the cards' rows start (HX19's extra bleed is no longer needed) */
.hx:not(.ex) .is-fold .hx-fl{margin-left:0;margin-right:0}
/* the card header (ptools cardHd): leading icon · title · one sub-line · tools — its rule starts where the rows' rules start */
:is(.hx:not(.ex), .wx, .cn, .ag) .sec.panel > .sec-hd{margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}
.sec-hd.pt-hd{gap:9px}
.sec-hd.pt-hd .n{min-width:0;white-space:normal;text-wrap:pretty}
.sec-hd.pt-hd > .sec-ic{flex:none}
.sec-hd.pt-hd > .grow{flex:1 1 0;min-width:0}
.sec-hd.pt-hd > :is(.menu-btn, .more, .ib){flex:none}
.sv-one .sec-hd.pt-hd{flex-wrap:nowrap}
.sv-one .sec-hd.pt-hd .n{flex:0 1 auto}
:is(.hx:not(.ex), .wx) > .sec.panel.pt-card.sv-one{padding-top:14px;padding-bottom:14px}
/* the header's own rule only where a list or table follows it */
.pt-notes .sec-hd.pt-hd{margin-bottom:6px}

/* ---------- W8: a 24–32 px gutter between a right-aligned count and the left-aligned words after it ---------- */
.wx-types .tbl-h > :nth-child(3),.wx-types .tbl-r > :nth-child(3){padding-left:12px}
.hx-keys .tbl-h > :nth-child(4),.hx-keys .tbl-r > :nth-child(4){padding-left:12px}
.hx-pg .tbl-h > :nth-child(4),.hx-pg .tbl-r > :nth-child(4){padding-left:12px}
.hx-pg .tbl-h > :nth-child(3) + span:not(.r){padding-left:12px}

/* ---------- W5: the head tools — Ask · Share · the period · the market, one look ---------- */
.pt-tools{gap:4px;flex-wrap:nowrap}
.pt-tools > .btn.ghost{height:var(--h-head);padding:0 10px}
.menu-btn.pt-mb{gap:6px}
.menu-btn.pt-mb .mb-l{font:inherit}
.menu-btn.btn.ghost.pt-mb{padding:0 9px 0 10px}
.fd-acts .menu-btn.pt-mb .mb-cv,.ap-acts .menu-btn.pt-mb .mb-cv{display:grid}
.sec-hd .menu-btn.pt-mb{height:var(--h-sm);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}   /* Oct 7 review (D10): a row button is 28px, not 26 */
.sec-hd .menu-btn.pt-mb svg{color:var(--fg-3)}
/* one look for the head tools on Content and Agent Readiness too (their buttons are ghost buttons, like Health's and Pages') */
:is(.cn, .ag) > .pl-hd > .hm-tools > .btn:not(.pri):not(.ghost){background:transparent;color:var(--fg-2)}
@media (hover:hover){:is(.cn, .ag) > .pl-hd > .hm-tools > .btn:not(.pri):not(.ghost):hover{background:var(--hover);color:var(--fg)}}
/* Pages: the search sits at the right end of the tab row (never pushing the head sentence to 3 lines) */
.wx .pl-bar > .pl-q{width:220px;flex:none}

/* ---------- W2: the proof line under the head ---------- */
.pt-proof{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.pt-proof > svg{flex:none;color:var(--fg-4)}
.pt-proof .ag-in{color:var(--link-tint,var(--link));font-weight:var(--w-medium)}
@media (hover:hover){.pt-proof .ag-in:hover{text-decoration:underline}}

/* ---------- the client view (Share → Client view) ---------- */
.pt-client a{margin-left:auto;font-weight:var(--w-medium);color:var(--link-tint,var(--link));white-space:nowrap}
.pt-ask{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border:1px solid var(--ln);border-radius:var(--r-full);font-size:var(--t-co);line-height:var(--lh-co);font-weight:var(--w-medium);color:var(--fg-2);white-space:nowrap;background:transparent}
.pt-ask > svg{color:var(--fg-4)}

/* ---------- notes (Add a note) ---------- */
.sec.panel.pt-note{padding:14px 22px 14px;display:flex;flex-direction:column;gap:10px}
:is(.hx, .wx) > .pt-note{margin-top:12px}
.pt-note-r{display:flex;align-items:center;gap:10px}
.pt-note-in{flex:1;min-width:0}
.pt-note-c{flex:none;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);font-variant-numeric:tabular-nums}
.pt-note-b{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.pt-note-b > .sv-cap{flex:1 1 320px;min-width:0;text-wrap:pretty}
.pt-nr{display:grid;grid-template-columns:150px minmax(0,1fr) auto;column-gap:16px;align-items:start;padding:9px 0;border-bottom:1px solid var(--ln-2)}
.pt-nr:last-child{border-bottom:0}
.pt-nc{display:inline-flex;align-items:center;gap:4px;justify-self:start;height:20px;padding:0 7px;border:1px solid var(--ln);border-radius:var(--r-full);font-size:var(--t-sh);line-height:var(--lh-sh);font-weight:var(--w-medium);color:var(--fg-2);white-space:nowrap}
.pt-nc > svg{color:var(--fg-4)}
.pt-nt{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:var(--t-body);line-height:20px;color:var(--fg);overflow-wrap:anywhere}
.pt-nt .sv-cap{margin:0}
.pt-nx{font:inherit;font-size:var(--t-co);color:var(--fg-3);background:none;border:0;padding:2px 0;cursor:pointer}
@media (hover:hover){.pt-nx:hover{color:var(--fg);text-decoration:underline}}

/* ---------- Health (W6, W10) ---------- */
.hx-crawls .tbl-r{min-height:44px}
.hx-crawls .k2{padding:5px 0}
.hx-gb .hx-ar{grid-template-columns:150px minmax(0,1fr)}
.hx-gb .hx-ar:first-child{padding-top:2px}
.hx:not(.ex) .hx-around .hx-ar:first-of-type{margin-top:2px}


/* ---------- Pages (W9) ---------- */
/* the record's head: the words on the left, the page as our crawl drew it on the right (PG-P3) */
.wx-hd{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:start}
.wx-hd > .fd-acts{grid-column:1 / -1}
.wx-thumb{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}
.wx-thumb .cg-phone{width:118px;padding:7px;gap:4px;border-radius:14px}
.wx-thumb .cg-blk{min-height:16px;padding:2px 6px;font-size:9px;line-height:1.25;border-radius:5px}
.wx-thumb .cg-blk.is-big{min-height:38px}
.wx-thumb figcaption{font-size:var(--t-sh);line-height:var(--lh-sh);color:var(--fg-3);white-space:nowrap}
.wx-h .cg-vis{margin-top:8px}
.wx-hn .pt-nr{grid-template-columns:auto minmax(0,1fr) auto;padding:0;border:0;column-gap:10px}
.wx-ptr{display:flex;align-items:flex-start;gap:8px}
.wx-ptr + .wx-ptr{margin-top:8px}
.wx-ptr > svg{flex:none;margin-top:3px;color:var(--fg-4)}
@media (max-width:900px){.wx-hd{grid-template-columns:1fr}.wx-thumb{align-items:flex-start;flex-direction:row;gap:10px}}

/* ---------- 900 px and below ---------- */
@media (max-width:900px){
  .pt-tools{flex-wrap:wrap;row-gap:6px}
  .pt-nr{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.pt-nr > .pt-nc{grid-column:1 / -1}
  .hx-crawls .tbl-h{display:none}
  .hx-crawls .tbl-r{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:4px;padding-top:8px;padding-bottom:8px}
  .hx-crawls .tbl-r > .k2{grid-column:1 / -1}
  .hx-crawls .tbl-r > .num{text-align:left}
  .hx-crawls .tbl-r > .num::before{display:block;font-size:var(--t-sh);line-height:1.3;color:var(--fg-4);font-weight:var(--w-medium)}
  .hx-crawls .tbl-r > .num:nth-child(2)::before{content:"Costing"}.hx-crawls .tbl-r > .num:nth-child(3)::before{content:"To watch"}.hx-crawls .tbl-r > .num:nth-child(4)::before{content:"Tidy-ups"}
  .hx-crawls .tbl-r > .num:nth-child(5)::before{content:"New"}.hx-crawls .tbl-r > .num:nth-child(6)::before{content:"Fixed"}
  .hx-gb .hx-ar{grid-template-columns:minmax(0,1fr)}
  .sec-hd.pt-hd,.sv-one .sec-hd.pt-hd{flex-wrap:wrap;row-gap:4px}.sec-hd.pt-hd > .n,.sv-one .sec-hd.pt-hd .n{order:2;flex:1 0 100%;padding-left:33px}
  /* night fix (Oct 8): title, subtitle, then the header's controls on one row under them — never a button between the title and its subtitle */
  .sec-hd.pt-hd > :not(.sec-ic):not(h2):not(h3):not(.n){order:3}
}

/* ===== Fixer W-B (2026-10-02 night): Agent Readiness (W12–W14) and Content (W11) adopt the kit — the same row grid as Health's lists ===== */
/* ---------- Agent Readiness: the kit's row grid (state 150 · words · the one control · chevron), as Health's lists ---------- */
.ag .ag-gl .mn-g{grid-template-columns:150px minmax(0,1fr) auto 14px}
.ag .ag-gl .mn-g .u{white-space:normal;overflow:visible;text-overflow:clip;text-wrap:pretty;line-height:20px}
.ag .ag-gl .mn-g .k{white-space:normal;text-wrap:pretty}
.ag .ag-gl .mn-g.is-static{cursor:default}
@media (hover:hover){.ag .ag-gl .mn-g.is-static:hover{background:transparent}}
.ag .ag-gl > .hm-mf,.ag .ag-gl > .ag-change{margin:4px 0 10px}
.ag .ag-gl > .ag-grp{border-bottom:0;padding:14px 0 4px}
.ag .ag-gl > .ag-grp:first-child{padding-top:4px}
.ag .ag-same{white-space:nowrap}
.ag .ag-st{gap:4px}
.ag .ag-st > svg{color:var(--fg-4)}
.ag .ag-see{font:inherit;color:var(--link-tint,var(--link));font-weight:var(--w-medium);background:none;border:0;padding:0;cursor:pointer}
@media (hover:hover){.ag .ag-see:hover{text-decoration:underline;text-underline-offset:2px}}
/* closing round L (#82): Readiness on a phone — the status chip goes under the words, so the facts use the row's width (never a 159px column) */
@media (max-width:640px){
  .ag .ag-rd{grid-template-columns:28px minmax(0,1fr) 14px;row-gap:6px}
  .ag .ag-rd > .ag-rd-s{grid-column:2;grid-row:2;justify-content:flex-start}
  .ag .ag-rd > svg{grid-column:3;grid-row:1}
}
@media (max-width:1320px){.ag .ag-gl .mn-g{grid-template-columns:130px minmax(0,1fr) auto 14px}}
/* the readiness rows: icon · question and one sentence · the chip; the agency line under them */
.ag .ag-since{display:flex;align-items:flex-start;gap:7px;margin:10px 0 2px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3)}
.ag .ag-since > svg{flex:none;margin-top:1px;color:var(--fg-4)}
.ag .ag-since b{color:var(--fg-2);font-weight:var(--w-medium)}
/* the change a fix makes — two layers: live (a check) and the verdict (the outcome) */
.ag .ag-layers{display:flex;flex-direction:column;gap:3px}
.ag .ag-layers p{margin:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.ag .ag-layers b{color:var(--fg);font-weight:var(--w-semibold)}
/* the lane tile's pointer to Health */
.ag .ag-kp .ag-kp-eng{color:var(--fg-3)}
/* the bots table: filter chips · problems · one row per bot under its maker's line */
.ag .ag-seg{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px;padding:0;background:transparent;box-shadow:none;border-radius:0}
.ag .ag-seg > button{display:inline-flex;align-items:center;gap:6px;height:26px;margin:0;padding:0 11px;border:1px solid var(--ln);border-radius:var(--r-full);background:transparent;color:var(--fg-2);font-size:var(--t-co);line-height:var(--lh-co);font-weight:var(--w-medium);box-shadow:none}
.ag .ag-seg > button .n{color:var(--fg-4);font-variant-numeric:tabular-nums;font-weight:var(--w-regular,400)}
@media (hover:hover){.ag .ag-seg > button:hover{background:var(--hover-solid);color:var(--fg)}}
.ag .ag-seg > button.is-on{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.ag .ag-seg > button.is-on .n{color:color-mix(in srgb,var(--bg) 70%,transparent)}
.ag .ag-probs{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
.ag .ag-probs .ag-means{margin:0}
.ag .ag-means-w{color:var(--fg-3)}
.ag .ag-bots .ag-mk{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 0 6px}
.ag .ag-bots .tbl-h + .ag-mk{padding-top:10px}
.ag .ag-bots .ag-mk > span:first-child{min-width:0;text-wrap:pretty}
.ag .ag-bots .ag-mk-s{flex:none;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2);white-space:nowrap}
.ag .ag-bots .ag-mk-n{display:flex;align-items:flex-start;gap:6px;padding:6px 0;border-bottom:1px solid var(--ln-2);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.ag .ag-bots .ag-mk-n > svg{flex:none;margin-top:2px;color:var(--fg-4)}
.ag .ag-bots .tbl-r.is-ptr .k{color:var(--fg-2)}
.ag .ag-bots .k .ag-claim{width:24px;height:24px;margin:-3px -3px -3px -5px;color:var(--fg-4)}   /* WL3-15 (H3-17): a 24×24 target (WCAG 2.2 SC 2.5.8); the negative margin keeps the row's height and the name's place */
.ag .ag-bots .k2 .u{white-space:normal;text-wrap:pretty}
.ag .ag-bot-m{display:none}
.ag .ag-door{color:var(--fg-3);font-size:var(--t-co)}
.ag .ag-came{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px 6px;max-width:100%}   /* v105 (no-cut): the count drops under the chip in a narrow column — never past the card's edge */
.ag .ag-came small{font-size:var(--t-co);color:var(--fg-2);font-variant-numeric:tabular-nums}
.ag .ag-foot{display:block;margin-top:12px;text-wrap:pretty}
/* the training choice */
.ag .ag-tr .tbl-r{align-items:center}
.ag .ag-tr-card .sv-cap{margin-top:10px;text-wrap:pretty}
.ag .ag-tr-card .sv-cap b{color:var(--fg-2);font-weight:var(--w-semibold)}
.ag .ag-tr-fix{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--ln-2)}
.ag .ag-tr-fix > p{margin:0;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.ag .ag-tr-fix > p b{color:var(--fg);font-weight:var(--w-semibold)}
.ag .ag-tr-fix > .ag-change,.ag .ag-tr-fix > .hm-mf{grid-column:1 / -1;margin:10px 0 0}
/* the site checks: one group line per group; the JavaScript pages under their row, at the words' column */
.ag .ag-cks-card .sec-hd .ag-more{font:inherit;font-size:var(--t-co);color:var(--fg-3);font-weight:var(--w-medium);background:none;border:0;cursor:pointer;padding:0 2px;flex:none}
@media (hover:hover){.ag .ag-cks-card .sec-hd .ag-more:hover{color:var(--fg)}}
.ag .ag-gl > .ag-cg{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);text-wrap:pretty}
.ag .ag-jsp{display:flex;flex-direction:column;gap:4px;margin:-2px 0 10px 164px}
.ag .ag-jsp-r{display:grid;grid-template-columns:minmax(220px,max-content) minmax(0,1fr);column-gap:16px;font-size:var(--t-co);line-height:var(--lh-co)}
.ag .ag-basics{display:flex;align-items:flex-start;gap:7px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--ln-2);font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.ag .ag-basics > svg{flex:none;margin-top:1px;color:var(--fg-4)}
.ag .ag-basics b{font-weight:var(--w-semibold);color:var(--fg)}
.ag .ag-ptr{display:flex;align-items:flex-start;gap:6px}
.ag .ag-ptr > svg{flex:none;margin-top:2px;color:var(--fg-4)}
@media (max-width:1320px){.ag .ag-jsp{margin-left:144px}}
@media (max-width:900px){
  .ag .ag-gl .mn-g{grid-template-columns:minmax(0,1fr) 14px;grid-template-areas:"st ch" "k ch" "b ch";row-gap:6px}
  .ag .ag-gl .mn-g > .mn-g-st{display:flex;grid-area:st}
  .ag .ag-gl .mn-g > .mn-g-st:empty,.ag .ag-gl .mn-g > .mn-g-b:empty{display:none}
  .ag .ag-gl .mn-g > .k2{grid-area:k}
  .ag .ag-gl .mn-g > .mn-g-b{display:flex;grid-area:b;justify-content:flex-start}
  .ag .ag-gl .mn-g > :last-child{grid-area:ch}
  .ag .ag-jsp{margin-left:0}
  .ag .ag-jsp-r{grid-template-columns:minmax(0,1fr)}
  /* AR3 at 900: Bot · Allowed? · State — the purpose and the fetches ride under the bot's name */
  .ag .ag-bots .tbl-r,.ag .ag-bots .tbl-h{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr)}
  .ag .ag-bots .tbl-r > .ag-c2,.ag .ag-bots .tbl-r > .ag-c4,.ag .ag-bots .tbl-h > :nth-child(2),.ag .ag-bots .tbl-h > :nth-child(4){display:none}
  .ag .ag-bot-m{display:block}
  .ag .ag-bots .ag-mk{flex-wrap:wrap;row-gap:2px}
  .ag .ag-tr-fix{grid-template-columns:minmax(0,1fr);row-gap:8px}
}
/* ---------- Content (W11, the kit) ---------- */
/* "New document" is a head tool: grey, beside Ask (W5, W7) */
.cn > .pl-hd > .hm-tools > .cn-new{height:var(--h-head);padding:0 10px;background:transparent;color:var(--fg-2)}
@media (hover:hover){.cn > .pl-hd > .hm-tools > .cn-new:hover{background:var(--hover);color:var(--fg)}}
/* the client view reads everything and changes nothing — a disabled fieldset keeps its layout */
fieldset.pt-ro{border:0;margin:0;padding:0;min-width:0}
fieldset.pt-ro :is(input,textarea,select){opacity:1;cursor:default;background:var(--bg-2)}
.pt-rw{display:contents}
/* the editor: the client's comment box (a preview — nothing is sent from it) */
.edp .dp-cmt{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--ln);border-radius:var(--r-12);background:var(--lvl-0,var(--bg))}
.edp .dp-cmt textarea{width:100%;min-height:56px;resize:none;padding:8px 10px;border:1px solid var(--ln);border-radius:var(--r-8);background:var(--bg-2);color:var(--fg-3);font:inherit;font-size:var(--t-body)}
.edp .dp-cmt .sv-cap{margin:0}
.edp > .pt-client{margin-bottom:14px}
.pv-leg .ib.sv-i{width:20px;height:20px;margin-left:2px;color:var(--fg-4)}
/* the readiness rows bleed 8 px, like the kit's rows — their rule starts at card + 15, the icon at card + 23 (was 2 px off) */
.ag .ag-rd{margin:0 -8px;padding:10px 8px}
/* ---------- loop 2 (2026-10-03, Website loop-2 fixer) ---------- */
/* WL2-9: Agent Readiness — what AI crawlers read, by page type: a thin share bar, the number right */
.ag .ag-types .ag-bar{display:flex;align-items:center;gap:10px;min-width:0}
.ag .ag-types .ag-barl{flex:1;height:6px;border-radius:var(--r-full);background:var(--bg-4);overflow:hidden;min-width:40px}
.ag .ag-types .ag-barl i{display:block;height:100%;border-radius:inherit;background:var(--c-blue)}
.ag .ag-types .ag-bar .num{width:38px;text-align:right;color:var(--fg-3);font-variant-numeric:tabular-nums}
/* WL2-4: the grey pointer to the work's home — the same size as the blue control it replaces */
.ag .ag-ptr.btn{white-space:nowrap;align-items:center}   /* night fix (Oct 8): the button variant centres its label (the pointer row aligns to the top) */
.ag .ag-ptr.btn > svg{margin-top:0}
/* WL2-1: Pages' record — "Next to touch this page": the quiet window in the header, rows like the history */
.wx .wx-ntq{font-weight:var(--w-medium);color:var(--fg-2)}
.wx .wx-nt .wx-h-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* the Insert sheet: a source inside its quiet window, said before the approval */
.ln-quiet{display:flex;align-items:flex-start;gap:6px;color:var(--fg-2)}
.ln-quiet svg{flex:none;margin-top:3px;color:var(--c-orange)}
/* WL2-7: Changes → Alerts — each alert's speed on its right, the "How fast" choice and the incident note */
.cg-alerts-pop .menu-i .cg-lv{margin-left:auto;padding-left:14px;font-size:var(--t-co);color:var(--fg-4);white-space:nowrap}
.cg-alerts-pop .menu-i .cg-lv.is-high{color:var(--fg-2);font-weight:var(--w-medium)}
.cg-alerts-pop .menu-note{display:flex;align-items:flex-start;gap:6px;margin:2px 10px 6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);max-width:340px}
.cg-alerts-pop .menu-note svg{flex:none;margin-top:2px}
/* ---------- loop 3 (2026-10-03, Website loop-3 fixer) ---------- */
/* WL3-1: the approval sheet's "Page calendar" — one line per window, freeze or waiting work, its icon beside the first line */
.pg-cal{display:flex;flex-direction:column;gap:5px;min-width:0}
.pg-cal-l{display:flex;align-items:flex-start;gap:6px;min-width:0;overflow-wrap:anywhere}
.pg-cal-l svg{flex:none;margin-top:3px;color:var(--fg-3)}
.pg-cal-l.is-in svg,.pg-cal-l.is-freeze svg{color:var(--c-orange)}
.pg-cal-l.is-free svg{color:var(--c-green)}
.pg-cal .hm-mf-s{display:block;margin-top:2px}
.hm-mf dl > .pg-cal-row{grid-column:1 / -1;order:99}   /* night fix (Oct 8): the full-width calendar row goes last, so the short facts fill their row */
/* WL3-1 (H3-25): the quiet window's clock on a page's record */
.wx .wx-ntm{max-width:440px;margin:0 0 12px}
/* WL3-3 (H3-3, H3-5, H3-22): no "…" anywhere in Website — table names and sub-lines, list rows and fold summaries wrap instead of cutting
   (the Competitors rule, linear.css:2482). Content (its own fixer) is not under .hx/.wx/.ag. */
:is(.hx,.wx,.ag) .tbl .k,:is(.hx,.wx,.ag) .tbl .u,:is(.hx,.wx,.ag) .tbl .k > :first-child,:is(.hx,.wx,.ag) .mn-g .u,:is(.hx,.wx,.ag) .hx-keys .k,:is(.hx,.wx,.ag) .hx-pg .k,:is(.hx,.wx,.ag) .fold-s{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;min-width:0;text-wrap:pretty}
:is(.hx,.wx,.ag) .tbl .k bdi,:is(.hx,.wx,.ag) .tbl .u bdi{overflow-wrap:anywhere}
/* a fold's header at phone width: the icon, the title and the chevron on one line, the summary under the title (it was squeezed into a ~40 px column) */
@media (max-width:640px){
  :is(.hx,.wx,.ag) .fold-hd{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:9px;row-gap:2px;align-items:center;padding-top:12px;padding-bottom:12px}
  :is(.hx,.wx,.ag) .fold-hd > h2{grid-column:2;grid-row:1;white-space:normal}
  :is(.hx,.wx,.ag) .fold-hd > .fold-s{grid-column:2;grid-row:2}
  :is(.hx,.wx,.ag) .fold-hd > svg{grid-column:3;grid-row:1}
  /* the proof line's check icon stays beside its words (H3-22) */
  :is(.hx,.wx,.ag) .pt-proof{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:6px;row-gap:2px;align-items:start}
  :is(.hx,.wx,.ag) .pt-proof > svg{margin-top:3px}
  :is(.hx,.wx,.ag) .pt-proof > :not(svg):not(:nth-child(2)){grid-column:2}
}
/* a card's title wraps rather than running past its card at phone width ("“Safe fixes” paused itself — …" on Vale's issue pages) */
@media (max-width:640px){
  :is(.hx,.wx,.ag) .sec-hd h2{white-space:normal;flex:0 1 auto;min-width:0;text-wrap:pretty}
  :is(.hx,.wx,.ag) .sec-hd.pt-hd{flex-wrap:wrap;row-gap:4px}
}
@media (max-width:640px){
  /* a countdown chip with a long sentence wraps inside its card (Rotaly's "Nothing new — the open fixes are…" ran 34 px past it) */
  :is(.hx,.wx,.ag) .m-cd{max-width:100%;white-space:normal;height:auto;min-height:22px;padding-top:3px;padding-bottom:3px;border-radius:var(--r-12);align-items:flex-start}
  :is(.hx,.wx,.ag) .m-cd > svg{margin-top:3px}
}
/* WL3-14: "Until" under the reasons of an ignore */
.hx-igu{display:flex;flex-direction:column;gap:0;margin-top:2px}
.hx-igl{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);font-weight:var(--w-medium)}
.hx-igu .hx-igr{margin-top:6px}
/* WL3-6: the checkout watch on a phone — the countdown, the last runs (one mark a day), what it checks, one phone frame per step */
.ag-watch .ag-wtop{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:2px 0 12px;font-size:var(--t-body);color:var(--fg-2)}
.ag-wruns{display:inline-flex;gap:3px;margin-left:auto}
.ag-wruns i{display:block;width:10px;height:18px;border-radius:3px;background:var(--bg-4)}
.ag-wruns i.is-ok{background:var(--c-green)}
.ag-wruns i.is-bad{background:var(--c-red)}
.ag-watch .ag-wchk{margin:0 0 12px}
.ag-watch .ag-wchk .fd-k{margin-bottom:4px}
.ag-wfs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px;list-style:none;margin:0 0 12px;padding:0}
.ag-wf{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg)}
.ag-wf b{font-weight:var(--w-medium)}
.ag-wf .sv-cap{margin:0;overflow-wrap:break-word}
.ag-ph{position:relative;display:grid;place-items:center;width:46px;aspect-ratio:393/852;border:1.5px solid var(--ln);border-radius:8px;background:var(--bg-2);color:var(--fg-4);margin-bottom:4px}
.ag-ph i{position:absolute;top:3px;left:50%;width:14px;height:3px;margin-left:-7px;border-radius:2px;background:var(--ln)}
.ag-wf.is-stop .ag-ph{border-color:var(--c-orange);color:var(--c-orange)}
@media (max-width:640px){.ag-wruns{margin-left:0}}
.ag-watch .ag-wnote{display:flex;align-items:flex-start;gap:6px}
.ag-watch .ag-wnote > svg{flex:none;margin-top:3px}
/* WL3-7: the accessibility fold — the four principles, each with its counted lines */
.hx-a11y{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}
.hx-a11y > .sv-cap{grid-column:1 / -1;margin:0}
.hx-a11y-p{display:flex;flex-direction:column;gap:6px;min-width:0;padding-top:10px;border-top:1px solid var(--ln-3)}
.hx-a11y-h{display:flex;flex-direction:column;gap:1px}
.hx-a11y-h b{font-size:var(--t-body);font-weight:var(--w-semibold);color:var(--fg)}
.hx-a11y-h .sv-cap{margin:0}
.hx-a11y-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.hx-a11y-l li{display:flex;align-items:flex-start;gap:7px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2)}
.hx-a11y-l li > svg{flex:none;margin-top:4px;color:var(--c-orange)}
.hx-a11y-0{margin:0}
@media (max-width:640px){.hx-a11y{grid-template-columns:1fr}}
/* WL3-8: Content Signals — the line as robots.txt says it, the three signals, the prepared change */
.ag-sig .ag-sigl{margin:0 0 6px}
.ag-sig .ag-sigp{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:10px 0 4px;padding:10px 12px;border-radius:var(--r-12);background:var(--bg-2);font-size:var(--t-body);color:var(--fg-2)}
.ag-sig .ag-sigp > svg{flex:none;color:var(--fg-3)}
.ag-sig .ag-sigp .grow{min-width:220px}
/* WL3-10: speed over 40 weeks — one row per page group: the name, the shape, today's number, the ledger's markers */
.hx-hist{display:flex;flex-direction:column}
.hx-hist-r{display:grid;grid-template-columns:minmax(140px,.8fr) 270px 120px minmax(0,1.4fr);column-gap:16px;align-items:center;padding:10px 0;border-top:1px solid var(--ln-3)}
.hx-hist-r:first-child{border-top:0}
.hx-hist-k,.hx-hist-v{display:flex;flex-direction:column;gap:1px;min-width:0}
.hx-hist-k .sv-cap,.hx-hist-v .sv-cap{margin:0}
.hx-hist-v b{font-variant-numeric:tabular-nums;font-weight:var(--w-semibold)}
.hx-hist-v b.is-poor{color:var(--neg)}
.hx-hist-m{font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2);min-width:0;text-wrap:pretty}
.hx-spark{display:block;max-width:100%;height:auto}
.hx-spark-p{stroke:var(--c-blue);stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}
.hx-spark-ln{stroke:var(--fg-4);stroke-width:1;stroke-dasharray:3 3}
.hx-spark-mk{stroke:var(--c-orange);stroke-width:1;opacity:.75}
.hx-spark-now{fill:var(--c-blue)}
@media (max-width:900px){.hx-hist-r{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}.hx-hist-c{grid-column:1 / -1}.hx-hist-m{grid-column:1 / -1}}
/* WL3-10: where a slow tap's time goes — one bar per script, the share on its left */
.hx-inpw{list-style:none;margin:6px 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}
.hx-inpw li{display:grid;grid-template-columns:120px 44px minmax(0,1fr);align-items:center;column-gap:10px;font-size:var(--t-body);color:var(--fg-2)}
.hx-inpw li b{font-variant-numeric:tabular-nums;color:var(--fg);text-align:right}
.hx-inpw-b{height:6px;border-radius:var(--r-full);background:var(--bg-4);overflow:hidden}
.hx-inpw-b i{display:block;height:100%;background:var(--c-orange);border-radius:inherit}
@media (max-width:640px){.hx-inpw li{grid-template-columns:72px 40px minmax(0,1fr)}}
/* WL3-13: the counters of a fix being measured — the window's clock and the sample meter, side by side */
.ex-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:8px 0 10px;max-width:760px}
@media (max-width:640px){.ex-meters{grid-template-columns:1fr}}
.ex-fn .ex-sig{display:flex;align-items:flex-start;gap:4px;color:var(--fg-2)}
.ex-fn .ex-sig > svg{flex:none;margin-top:3px;color:var(--c-orange)}
/* WL3-15 (H3-15): Pages' stacked type rows at ≤ 900 — every value starts on the same line (the 3rd cell's desktop padding drifted it 12 px) */
@media (max-width:900px){ .wx .wx-tbl .tbl-r > .wx-cl{padding-left:0} }
