/* ===== v98 · Visibility, whole-site loop 1 (2026-10-03 — _reviews/2026-10-03-visibility/FIX.md VS3) =====
   The Website kit (styles/v92-website.css W5–W8) on the six Visibility pages: SEO Search (.seo), AI Search (.sv.ai), Local (.lc), Mentions (.mn),
   Competitors (.cps, and a competitor's own page .cp) and Topics (.tx). No new colours.
   W8 · ONE card system: every card is padded 22 px on both sides at every width, so at 1280 (sidebar open) the cards' leading icons and row text start at
   card + 23, the titles at card + 56, and every rule — the card header's and each row's — at card + 15 (the rows' 8 px hover bleed, shared by the header). */

/* ---------- W8: 22 px card padding, on the page and inside the two-up rows ---------- */
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .sec.panel:not(.fd-sec),
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > :is(.sv-two, div) > .sec.panel:not(.fd-sec){padding-left:22px;padding-right:22px}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .sec.panel.mn-att,
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .sec.panel.mn-loop{padding-top:16px;padding-bottom:12px}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .fp-panel{padding-top:16px;padding-bottom:18px}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .fd-sec:not(.is-fold){padding:20px 22px 22px}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .fd-sec.is-fold > .fold-hd,
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > div > .fd-sec.is-fold > .fold-hd{padding:0 18px 0 22px}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .fd-sec.is-fold.is-open > .fd-bd,
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > div > .fd-sec.is-fold.is-open > .fd-bd{padding:4px 22px 0}
/* the top number strips: the cards' side padding too */
:is(.seo .sv-top, .sv.ai .ai-top, .mn .mn-top, .tx .tx-top, .cps .cp-top){padding-left:22px;padding-right:22px}
/* the card header (ptools cardHd, and the cards that keep their own header): its rule starts where the rows' rules start */
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) .sec.panel > .sec-hd{margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}
.sv-one .sec-hd.pt-hd .n{white-space:normal}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) > .sec.panel.pt-card.sv-one{padding-top:14px;padding-bottom:14px}
/* a card in a two-up row: the sub-line goes under the title, so the header never squeezes it into three lines beside Export and the link */
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) .sv-two .sec-hd.pt-hd{flex-wrap:wrap;row-gap:0}
:is(.seo, .sv.ai, .lc, .mn, .cps, .cp, .tx) .sv-two .sec-hd.pt-hd > .n{order:5;flex:1 0 100%;padding-left:33px;margin-top:-2px}
/* a sub-header inside a card (AI Search's "Impressions by page") keeps the card's rule line */
.sv.ai .ai-sf-h{margin:18px -8px 4px;padding:0 8px 8px}
.sv.ai .ai-sf-h h3{font-size:var(--t-hl);font-weight:var(--w-semibold);color:var(--fg)}

/* ---------- W2 · VS4: the proof line and the alerts line under the head sentence ---------- */
.pl-s > .pt-proof:first-of-type{margin-top:8px}
.pl-s > .pt-proof + .pt-proof{margin-top:4px}
.vx-al > svg{color:var(--fg-4)}
.pl-s .vx-cd{vertical-align:-5px;margin-left:2px}

/* ---------- rows: two controls in the button cell (Open in Actions · Remind me) ---------- */
.vx-btns{display:inline-flex;align-items:center;gap:4px}
.vx-rmw{display:inline-flex}
.menu-btn.vx-rm{width:28px;height:26px;padding:0;justify-content:center}
.menu-btn.vx-rm .mb-l,.menu-btn.vx-rm .mb-cv{display:none}
.menu-btn.vx-rm.is-set svg{color:var(--link-tint,var(--link))}
.sv.ai .ai-att .mn-g{grid-template-columns:150px minmax(0,1fr) auto 14px}

/* ---------- AI Search ---------- */
/* AI visits: the one sentence that says bots live in Agent Readiness (VS8 — no second pointer card) */
.vx-arline{display:flex;align-items:flex-start;gap:7px;margin:16px 2px 0;text-wrap:pretty}
.vx-arline > svg{flex:none;margin-top:2px;color:var(--fg-4)}
.vx-arline a{color:var(--link-tint,var(--link));font-weight:var(--w-medium)}
/* Google's AI surfaces: the market's part — "UK part 65,213" with the whole site under it */
.ai-sf .ai-rate > span{white-space:nowrap}
/* AI-5: "Where people ask vs who sends visitors" never cut — under 1100 px the five columns share the width and the bars give their room to the numbers */
@media (max-width:1100px){
  .sv.ai .ai-mixt{--tc:minmax(104px,1.15fr) repeat(4,minmax(0,1fr)) !important}
  .sv.ai .ai-mixt .tbl-h{height:auto;min-height:32px;padding-top:6px;padding-bottom:6px;align-items:end}
  .sv.ai .ai-mixt .tbl-h > span{white-space:normal;text-wrap:balance}
  .sv.ai .ai-mixt .ai-mbar{display:none}
}

/* ---------- Local: the locations table at 6 columns (LOC-2) and its questions per location (VS7) ---------- */
.lc .lc-locs .vx-pos{display:block;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);font-weight:var(--w-regular,400)}
.lc .vx-qs .tbl-r{align-items:start;padding-top:9px;padding-bottom:9px}
.lc .vx-qs .tbl-r.is-own .k{font-weight:var(--w-semibold)}
.lc .vx-qs .lc-who{white-space:normal}
.lc .vx-qhd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 2px}
.lc .vx-qhd .sv-cap{margin:0}
.lc .vx-meter{display:inline-flex;align-items:center;gap:8px;flex:none;white-space:nowrap;font-size:var(--t-co);color:var(--fg-3);font-variant-numeric:tabular-nums}
.lc .vx-meter i{display:inline-block;width:96px;height:6px;border-radius:var(--r-full);background:var(--bg-4);overflow:hidden}
.lc .vx-meter i > b{display:block;height:100%;background:var(--fg-3);border-radius:inherit}
.lc .vx-added{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.lc .vx-added > svg{color:var(--pos,var(--fg-3))}

/* the method line under a number strip: a long sentence wraps beside its icon, the link keeps the right edge */
:is(.seo, .sv.ai, .lc, .mn, .tx) .ai-mline{flex-wrap:nowrap;align-items:flex-start}
:is(.seo, .sv.ai, .lc, .mn, .tx) .ai-mline > svg{margin-top:2px}
:is(.seo, .sv.ai, .lc, .mn, .tx) .ai-mline > span{flex:1 1 auto;text-wrap:pretty}
/* Oct 7 review (D13): at phone width the link drops under the sentence (it was squeezed to a 108px column, 19 lines long) */
@media (max-width:600px){
  :is(.seo, .sv.ai, .lc, .mn, .tx) .ai-mline{flex-wrap:wrap;row-gap:4px}
  :is(.seo, .sv.ai, .lc, .mn, .tx) .ai-mline > span{flex-basis:calc(100% - 19px)}
  :is(.seo, .sv.ai, .lc, .mn, .tx) .ai-mline > .ai-mlink{margin-left:19px}
}

/* ---------- Topics: the move word is a quiet word, never a button (TX-3) ---------- */
.tx .tx-mv{border:0;background:none;padding:0;height:auto;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-3);font-weight:var(--w-medium)}   /* the neutral word (.mn-type) */

/* ---------- 900 px ---------- */
@media (max-width:900px){
  .pl-s .vx-cd{vertical-align:baseline}
  .sv.ai .ai-att .mn-g{grid-template-columns:minmax(0,1fr) auto 14px;grid-template-areas:"st b ch" "k k ch";row-gap:4px}
  .sv.ai .ai-att .mn-g > .mn-g-st{grid-area:st}.sv.ai .ai-att .mn-g > .k2{grid-area:k}.sv.ai .ai-att .mn-g > .mn-g-b{grid-area:b}.sv.ai .ai-att .mn-g > svg{grid-area:ch}
}

/* ===== v101 (Visibility loop 2) — Topics: links inside a topic (V2-8), the site-wide check (TX2-6) ===== */
.tx-ln-lead{margin:2px 0 10px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg-2);text-wrap:pretty;max-width:120ch}
.tx-ln-lead b{font-weight:var(--w-semibold);color:var(--fg)}
.tx-lns .tbl-r .num .lk{font-weight:var(--w-semibold)}
.tx-top .tx-breadth{margin-top:6px}

/* ===== v101 (Visibility loop 2) — Mentions: outcomes (V2-6), the unlinked pipeline and follow-ups (V2-7), outlets AI cites (V2-9) ===== */
.mn-unl .mn-gl,.mn-out .mn-gl,.mn-pitch .mn-gl{margin-top:2px}
/* the batch sheet — inside the card, under its rows */
.mn-bt{margin:12px -8px 0;padding:14px 8px 4px;border-top:1px solid var(--ln-2);display:flex;flex-direction:column;gap:14px}
.mn-bt-lead{display:flex;gap:7px;align-items:flex-start;margin:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2);text-wrap:pretty;max-width:120ch}
.mn-bt-lead svg{flex:none;margin-top:2px;color:var(--fg-3)}
.mn-bt-i{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:var(--r-12);background:var(--bg-2);border:1px solid var(--bd-tl)}
.mn-bt-h{font-size:var(--t-body);line-height:var(--lh-body);color:var(--fg)}
.mn-bt-h b{font-weight:var(--w-semibold)}
.mn-bt-t,.mn-fu-t{margin:0;max-height:none;white-space:pre-wrap}
.mn-fu{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.mn-fu b{font-weight:var(--w-semibold);color:var(--fg)}
.mn-bt-b{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mn-bt-b > .grow{flex:1 1 0;min-width:8px}
/* follow-ups on a mention's page */
.mn-fu-w{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-top:12px;border-top:1px solid var(--ln-2)}
.mn-fu-l{display:flex;gap:7px;align-items:flex-start;margin:0;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.mn-fu-l svg{flex:none;margin-top:2px;color:var(--fg-3)}
.mn-fu-i{display:flex;flex-direction:column;gap:6px}
.mn-fu-b{display:flex;gap:6px}
.mn-fu-done{margin-top:8px}
/* the pitch list: a row opens its draft beneath it */
.mn-pt-w{display:flex;flex-direction:column}
.mn-pt-d{display:flex;flex-direction:column;gap:8px;margin:0 -8px;padding:10px 8px 14px 172px;border-bottom:1px solid var(--ln-2)}
.mn-g.mn-pt{cursor:default}
@media (max-width:900px){.mn-pt-d{padding-left:8px}}
/* v101 (CP2-16 · MN2-6): the reason and the money on a row are the point — they wrap to a second line instead of being cut */
.cps .cp-wya .mn-g .u,.cps .cp-res .mn-g .u,.mn .mn-out .mn-g .u,.mn .mn-pitch .mn-g .u,.cps .cw-ans-r .u{white-space:normal;overflow:visible;text-overflow:clip;text-wrap:pretty}
/* v101 (MN2-6): a tile's sub-line wraps to a second line instead of losing its last words (1280 and 900) */
.mn .mn-top .mn-kp .kp-s{white-space:normal;overflow:visible;text-overflow:clip;text-wrap:pretty}
.mn .mn-cov .bl-nm span,.mn .mn-cov .tbl-r .k.bl-nm > span:last-child{white-space:normal}   /* the second beats v93's nowrap — "Discord, Slack, Nextdoor, WhatsApp" wraps */
/* night fix (C1 · B1): the only line on a chart says it can't come off — no pointer, no hover change; a section state stands where a card would;
   the research box's error sits on its own line under the box */
:is(.sv-line,.sv.ai .kp)[aria-disabled=true]{cursor:default}
@media (hover:hover){.sv-line[aria-disabled=true]:hover{color:var(--fg);background:var(--selected)}}
.vz-ss{margin-top:16px}
.sv-rs-card > .sv-rs{flex-wrap:wrap}
.sv-rs-card > .sv-rs > .fb-err{order:9;flex-basis:100%;margin:0}
.sv-rs-q > input[aria-invalid="true"].fb-invalid{box-shadow:none}   /* the pill shows the error, not a box inside it */
.sv-rs-q:has(> input[aria-invalid="true"]){border-color:var(--neg-ink);box-shadow:inset 0 0 0 1px var(--neg-ink)}

/* ===== fix round 1 (Oct 8 night, visibility fixer) — each rule names the finding it closes ===== */
/* inline icons the global "img, svg {display:block}" pushed onto their own line: the (i) after the "Never" sentence, "Show all ⌄", the catalog icon */
.lc .la-flow dd .ib.sv-i{display:inline-grid;vertical-align:-2px;margin-block:-4px}
.lc .more.rl-all{display:inline-flex;align-items:center;gap:4px;align-self:flex-start}
.sv.ai p.ai-cat{display:flex;align-items:center;gap:6px}
.sv.ai p.ai-cat > svg{flex:none;color:var(--fg-3)}
/* Local "From seen to visited": three boxes of one height (the last has no sub-line); stacked, arrows down, on a phone */
.lc .ai-chain.lc-flow2{align-items:stretch}
.lc .ai-chain.lc-flow2 > .ai-ch-ar{align-self:center}
/* SEO page detail: "Page record ›" — the chevron on the text's centre, as .sv-foot .more */
.seo p.sv-rec .more{align-items:center;gap:2px}
/* SEO Positions: "Not ranking" is the sixth row — an outlined swatch (it has no place to shade) */
.seo .pd-bar i.is-5{background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fg) 32%,var(--bg))}
.seo .sv-pos-r i.is-5{background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fg) 40%,var(--bg))}
/* SEO "Worth your attention": the method in a fold under the rows (the (i) says one sentence) */
.seo .sv-att > .sv-est{margin-top:8px}
.seo .sv-att > .sv-est > .sv-cap{margin:6px 0 0;max-width:120ch;text-wrap:pretty}
/* SEO keyword page: no close search — one line under the 12-month chart */
.seo .sv-like0{margin:8px 0 0}
/* Topics, Links inside the topic: a dash in a number column keeps the column's right edge (as Competitors' .num.u) */
.tx .tbl .num.u{text-align:right}
/* P6 V5: Topics list "Vs last year" — the move word with its year-on-year pair under it, at the column's left edge */
.tx-tbl .tx-yoy{align-items:flex-start}
.tx-tbl .tx-yoy small{white-space:nowrap}
/* P6 V7: Local Reviews — the replies rule in one line above its queue; "Rule details" opens the full card in its place */
.lc > .la-rline{display:flex;flex-direction:row;align-items:center;gap:10px;padding:12px 16px;scroll-margin-top:72px}
.la-rline > .sec-ic{flex:none}
.la-rline .la-rl-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;font-size:var(--t-co);line-height:var(--lh-co);color:var(--fg-2)}
.la-rline .la-rl-n{font-size:var(--t-body);line-height:var(--lh-body);font-weight:var(--w-semibold);color:var(--fg)}
.la-rline .la-rl-v{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 6px}
.la-rl-tg{flex:none;gap:4px}
@media (max-width:760px){
  .lc > .la-rline{flex-wrap:wrap;align-items:flex-start;row-gap:8px}
  .la-rline > .sec-ic{margin-top:1px}
  .la-rline .la-rl-main{flex:1 1 calc(100% - 40px)}
  .la-rline > .la-rl-tg{margin-left:23px}
}
/* P6 V9: Local Profile checks — one heading row per group (Moves map rankings · Helps people choose · Lets Dottpace measure) */
.lc-prof > .tbl-r.lc-pgrp{min-height:0;padding-top:18px;padding-bottom:6px;border-bottom:1px solid var(--ln);border-radius:0}
.lc-prof > .tbl-h + .tbl-r.lc-pgrp{padding-top:12px}
.lc-pgrp-h{grid-column:1 / -1;display:flex;align-items:baseline;gap:8px;font-size:var(--t-co);line-height:var(--lh-co);font-weight:var(--w-semibold);color:var(--fg)}
.lc-pgrp-h small{font-size:var(--t-sh);line-height:var(--lh-sh);font-weight:var(--w-regular);color:var(--fg-3)}
/* P6 V10: Competitor profile — the traffic estimate calibrated against your own clicks, one line under the numbers */
.cp-nums .cp-cal{display:flex;align-items:flex-start;gap:7px;margin:12px 0 18px;max-width:120ch;text-wrap:pretty}
.cp-nums .cp-cal > svg{flex:none;margin-top:2px;color:var(--fg-3)}
/* P6 V12: SEO Search ↔ Topics — the "Topic: …" label on a search or a page opens the topic; in Research "topic: …" is a quiet underlined link */
.fd-labels a.sv-tlink{text-decoration:none;cursor:pointer}
.fd-labels a.sv-tlink > svg:last-child{margin-left:1px;opacity:.7}
@media (hover:hover){.fd-labels a.sv-tlink:hover{color:var(--fg);box-shadow:inset 0 0 0 1px var(--ln)}}
.seo .k2 .u a.sv-tl{color:var(--fg-2);font-weight:inherit;text-decoration:underline;text-decoration-color:var(--ln);text-underline-offset:3px}
@media (hover:hover){.seo .k2 .u a.sv-tl:hover{color:var(--fg);text-decoration-color:currentColor}}
/* P6 V13: AI Search "Week by week" — the Why popover opens inside the card (the Dashboard's .db-wy.is-day place), which is tall enough to hold it;
   the card keeps its clipping (the chart's last day column reaches past the plot) */
.sv.ai .sec.ai-wk{position:relative}
.sv.ai .ai-whyb{gap:5px}
.ai-wy .wy-btns{flex-wrap:wrap;row-gap:4px}   /* "Investigate these days" + two more do not fit 380px on one line */
/* P6 V16: Mentions — "Replied within a week" under the rows that need you */
.mn-att > .mn-rw,.mn-feed > .mn-rw{margin:10px 0 0;max-width:120ch;text-wrap:pretty}
/* P6 V18: AI Search › AI visits — the outcome rate beside the visits, and "Where AI visitors land" as its own block under the referring sites */
.sv.ai .ai-land{margin-top:18px;padding-top:16px;border-top:1px solid var(--ln-2)}
.sv.ai .ai-land-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 6px}
.sv.ai .ai-land-h > b{font-size:var(--t-body);line-height:var(--lh-body);font-weight:var(--w-semibold);color:var(--fg)}
.sv.ai .ai-land-more{margin-top:8px}
.sv.ai .ai-land > .sv-cap{margin-top:6px}
.sv.ai .ai-land-t .ai-land-o .k{color:var(--fg-2)}
@media (max-width:600px){.sv.ai .ai-vis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}}   /* four numbers in two rows on a phone */
/* Competitor page, "You have no page for it": the questions sit in their bullet at the list's own size */
.cp-why .ci-qs{margin:6px 0 2px;font-size:inherit;line-height:inherit}
/* Mentions inbox: the orange "needs you" dot hangs in the row's gutter, so every name starts on one line */
.mn .mn-tbl .tbl-r.is-need .k2:first-child .k{position:relative}
.mn .mn-tbl .tbl-r.is-need .k2:first-child .k::before{position:absolute;left:-12px;top:calc(.5lh - 3px);margin:0;vertical-align:0}

@media (max-width:760px){
  /* Local finding banner: the chip goes under the sentence, which takes the full width (it was 170 px beside the chip, 12 lines) */
  .lc .lc-story{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;row-gap:6px}
  .lc .lc-story > .lc-story-i{grid-column:1;grid-row:1}
  .lc .lc-story > .lc-story-t{grid-column:2;grid-row:1}
  .lc .lc-story > .lc-story-s{grid-column:2;grid-row:2;justify-self:start;margin-top:0}
  .lc .lc-story > svg{grid-column:3;grid-row:1}
  /* Local funnel: one box per line, the arrows pointing down */
  .lc .ai-chain.lc-flow2{flex-direction:column;flex-wrap:nowrap;gap:4px}
  .lc .ai-chain.lc-flow2 > .ai-ch{flex:none}
  .lc .ai-chain.lc-flow2 > .ai-ch-ar{transform:rotate(90deg)}
  /* AI Search "Reach — can assistants get in?" (and every one-line pointer card): the icon and the words first, the link under them */
  .sv.ai .sec.ai-lanes{flex-wrap:wrap;align-items:flex-start;row-gap:6px}
  .sv.ai .ai-lanes > svg{margin-top:2px}
  .sv.ai .ai-lanes > .grow{flex:1 1 calc(100% - 28px)}
  .sv.ai .ai-lanes > .more{margin-left:28px}
  /* SEO "How the change splits (model)": the title and its (i) on one line, the sub-line under them at the full width */
  .seo .sv-why-h{flex-wrap:wrap;row-gap:2px}
  .seo .sv-why-h > .sv-cap{order:9;flex-basis:100%}
}
@media (max-width:600px){
  /* Local "Who is in the pack": the name and its line take the full width; the bar and the share go under them */
  .lc .ai-cmp-r{grid-template-columns:minmax(0,1fr) 56px 0;row-gap:4px}
  .lc .ai-cmp-r > .grow{grid-column:1 / -1}
}

/* ---------- night fix round 1 (A11Y-C1): SEO Search's note and group forms name their fields in words, not only in a placeholder ---------- */
.seo .sv-lbl{font-size:var(--t-co);color:var(--fg-2);white-space:nowrap}
.seo .sv-note > input + .sv-lbl{margin-left:6px}
@media (max-width:600px){
  .seo .sv-note{flex-wrap:wrap;row-gap:8px}
  .seo .sv-note > .sv-lbl[for="sv-note-t"]{flex-basis:100%;margin:0 0 -4px}
  .seo .sv-note > input[type="text"]{flex:1 1 100%}
}

/* ---------- night fix round 1 (AI Search question page, "Sources used for this question"): a long URL wraps inside its own column, never over the
   answer count; on a phone the count goes under the URL, lined up with it (96 px type + 10 px gap) ---------- */
.sv.ai .ai-src-r > .grow{min-width:0;overflow-wrap:anywhere}
@media (max-width:600px){
  .sv.ai .ai-src-r{flex-wrap:wrap;row-gap:2px}
  .sv.ai .ai-src-r > .grow{flex:1 1 calc(100% - 106px)}
  .sv.ai .ai-src-r > .ai-src-n{flex-basis:100%;padding-left:106px}
}

/* ---------- night fix round 1 (AI Search answers on a phone): the stacked answer rows read from one left edge — the answer's prose under its
   label, left-aligned; every short value (Assistant, Names you, Cites your site) on its label's line at the right. The sticky chip row scrolls
   sideways instead of wrapping to two lines under the top bar ---------- */
@container pg (max-width:760px){
  .sv.ai .ai-ansr > .ai-ansc{text-align:left;align-items:stretch}
  .sv.ai .ai-ansr > .ai-ansc .ai-anst{text-align:left}
  .sv.ai .ai-ansr > .k2:not(:first-child){flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;column-gap:8px}
}
@media (max-width:600px){
  .sv.ai .pl-status.ai-stick > .pl-chips{flex:1 1 100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:2px;margin:-2px}
  .sv.ai .pl-status.ai-stick > .pl-chips::-webkit-scrollbar{display:none}
  .sv.ai .pl-status.ai-stick > .pl-chips > .pl-chip{flex:none}
}

/* ---------- night fix round 1 (AI Search Questions → Export CSV): the "Cited instead" tag in a row's sub-line is plain inline text with an inline
   icon — a block icon made the export read "… on Google · · Cited instead" ---------- */
.sv.ai .tbl .u > .aig-tag{display:inline}
.sv.ai .tbl .u > .aig-tag > svg{display:inline-block;vertical-align:-1px;margin-right:4px}

/* ---------- night fix round 1 (Local: the 7-field summary before Approve, in its sheet): two columns at every width, under the draft ---------- */
.ap-facts.la-apv-sum{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}
.la-apv-sum + .rs-fh{margin-top:10px}
@media (max-width:600px){.ap-facts.la-apv-sum{grid-template-columns:minmax(0,1fr)}}

/* ---------- night fix round 1 (Local on a phone): the review queue's group header keeps its icon, title and count on one line, the caption under
   them; a rule's countdown chip wraps inside its card instead of running past the padding ---------- */
@media (max-width:600px){
  .lc .la-qh{display:grid;grid-template-columns:22px minmax(0,1fr) auto;column-gap:8px;row-gap:4px;align-items:start}
  .lc .la-qh > .la-qi{grid-column:1;grid-row:1}
  .lc .la-qh > b{grid-column:2;grid-row:1}
  .lc .la-qh > .la-qn{grid-column:3;grid-row:1}
  .lc .la-qh > .la-qsub{grid-column:2 / -1}
  .lc .la-qh > .grow{display:none}
  .lc .la-qh > :is(.m-cd, .rl-cd, .btn){grid-column:2 / -1;justify-self:start}
  .lc .rl-cd{max-width:100%;white-space:normal;height:auto;min-height:22px;padding-top:2px;padding-bottom:2px;border-radius:var(--r-12);align-items:flex-start;text-wrap:pretty}
  .lc .rl-cd > svg{margin-top:2px}
}

/* ---------- night fix round 1 (Mentions › Sources on a phone): a source's status chip sits on its name's line, at the right — not alone on a line of
   its own (the stacked table keeps one column, so the two share its first row) ---------- */
@container pg (max-width:760px){
  .mn .tbl.mn-cov > .tbl-r > :first-child{grid-row:1;grid-column:1;padding-right:132px}
  .mn .tbl.mn-cov > .tbl-r > :nth-child(2){grid-row:1;grid-column:1;justify-self:end;align-self:start}
}

/* ---------- night fix round 1 (Competitors): a row list with no status in any row drops the status column (glOf → .mn-gl.is-nost) ---------- */
@media (min-width:901px){
  .mn-gl.is-nost > .mn-g{grid-template-columns:minmax(0,1fr) auto 14px}
  .mn-gl.is-nost > .mn-g > .mn-g-st{display:none}
}
