/* /tools page proposal styles. Layers on the site's tokens.css + components.css + persona.css.
   Uses only existing tokens plus a few status tones defined here (with Teen dark overrides). */
:root{--tp-warn-bg:#FFF1D6;--tp-warn:#7A4F00;--tp-good-bg:#E3F4EA;--tp-good:#1A6640;--tp-unk-bg:#ECE6FB;--tp-unk:#4A2FA3;--tp-age-bg:var(--surface-sunken);--tp-chip-bg:var(--surface-sunken)}
:root[data-persona="teen"]{--tp-warn-bg:#3A2F14;--tp-warn:#F6C25A;--tp-good-bg:#14301F;--tp-good:#7EE2A0;--tp-unk-bg:#2A2350;--tp-unk:#D3C8FF;--tp-age-bg:#0B0D10;--tp-chip-bg:#0B0D10}
:root[data-persona="senior"]{--tp-warn:#6B4500;--tp-good:#155C39;--tp-unk:#432A96}

.gb-nav__links a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px;text-decoration-color:var(--primary)}
.tp-ico{width:20px;height:20px;flex:none}
:root[data-persona="senior"] .tp-ico{width:24px;height:24px}
.tp-muted{color:var(--ink-muted)}

/* ---------- hero ---------- */
.tp-page{max-width:var(--content-max);margin:0 auto;padding:var(--space-7) var(--space-6) 0}
.tp-hero{max-width:760px;margin:0 0 var(--space-6)}
.tp-eyebrow{display:inline-block;font:700 var(--text-label-size)/var(--text-label-line) var(--font-body);color:var(--primary-text);text-transform:uppercase;letter-spacing:.08em;margin:0 0 var(--space-3)}
.tp-hero h1{font-family:var(--font-display);font-weight:var(--heading-weight);font-size:48px;line-height:54px;letter-spacing:-.015em;margin:0 0 var(--space-4);color:var(--ink)}
.tp-hero__lead{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);margin:0 0 var(--space-3);color:var(--ink)}
.tp-hero__how{margin:0;color:var(--ink-muted)}
.tp-hero__how a{color:var(--primary-text);font-weight:700}
:root[data-persona="teen"] .tp-eyebrow{border:2px solid #C6FF4D;color:#C6FF4D;padding:0 var(--space-3)}
:root[data-persona="teen"] .tp-hero h1{text-transform:uppercase;font-weight:1000;font-size:64px;line-height:64px;letter-spacing:-.03em}
:root[data-persona="teen"] .tp-hero h1 em{font-style:normal;background:#C6FF4D;color:#121417;padding:0 .12em;display:inline-block;transform:rotate(-2deg)}
:root[data-persona="parent"] .tp-hero h1 em{font-style:normal;border-bottom:4px solid var(--secondary)}
:root[data-persona="senior"] .tp-hero{margin-left:auto;margin-right:auto;text-align:center}
:root[data-persona="senior"] .tp-hero h1{font-size:50px;line-height:62px;letter-spacing:0}
:root[data-persona="senior"] .tp-hero h1 em{font-style:italic;color:var(--primary-text)}
:root[data-persona="senior"] .tp-eyebrow{color:var(--senior-text);font-size:22px}

/* ---------- filters (shared) ---------- */
.tp-filters{margin:0 0 var(--space-5)}
.tp-filters fieldset{border:0;margin:0;padding:0;min-width:0}
.tp-filters legend,.tp-flabel{font:700 var(--text-label-size)/var(--text-label-line) var(--font-body);color:var(--ink);padding:0;margin:0 0 var(--space-2)}
.tp-chipset{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tp-filters label.gb-chip input[type=checkbox]+.gb-tick,.tp-filters label.gb-chip .gb-tick{font-weight:900}
.tp-select,.tp-search{min-height:var(--tap-target);border:2px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink);font:400 var(--text-label-size)/1.2 var(--font-body);padding:0 var(--space-3)}
.tp-search{width:100%}
:root[data-persona="teen"] .tp-select,:root[data-persona="teen"] .tp-search{background:#0B0D10}
.tp-countbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 0}
.tp-count{margin:0;font-weight:700;color:var(--ink)}
.tp-linkbtn{background:none;border:0;padding:0 var(--space-2);min-height:var(--tap-target);font:700 var(--text-label-size)/1 var(--font-body);color:var(--primary-text);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tp-ftoggle{display:none}
.tp-ghost{background:var(--surface-raised);color:var(--ink);border:2px solid var(--line-strong)}

/* Option A: horizontal filter bar */
.tp-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-5) var(--space-6);padding:var(--space-5);background:var(--surface-raised);border:var(--border-w) solid var(--line);border-radius:var(--radius-md)}
.tp-fpanel{display:contents}
.tp-bar__sort{display:flex;flex-direction:column}
.tp-bar__search{flex:1 1 220px;display:flex;flex-direction:column}
:root[data-persona="senior"] .tp-bar{flex-direction:column;align-items:stretch;gap:var(--space-5);max-width:820px;margin:0 auto;border-width:2px}
:root[data-persona="senior"] .tp-countbar{max-width:820px;margin-left:auto;margin-right:auto}

/* ---------- Option A: cards ---------- */
.tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-5);align-items:start}
:root[data-persona="teen"] .tp-grid{gap:var(--space-6)}
:root[data-persona="senior"] .tp-grid{grid-template-columns:1fr;max-width:820px;margin:0 auto;gap:var(--space-6)}
.tp-card{background:var(--surface-raised);border:var(--border-w) solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);color:var(--ink)}
:root[data-persona="parent"] .tp-card{box-shadow:none}
:root[data-persona="senior"] .tp-card{box-shadow:none;border:2px solid var(--line);padding:var(--space-6);border-radius:var(--radius-lg)}
.tp-card--ph{border-style:dashed}
.tp-card__top{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.tp-tag{display:inline-flex;align-items:center;min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);font:700 15px/1 var(--font-body);background:var(--surface-sunken);color:var(--ink);border:1px solid var(--line-strong)}
.tp-tag--price{background:var(--secondary-soft);color:#5C3D00;border-color:#C9A24E}
:root[data-persona="teen"] .tp-tag{background:#0B0D10;border-color:#9AA1AC;color:#F5F2EA}
:root[data-persona="teen"] .tp-tag--price{background:#3A2F14;color:#F6C25A;border-color:#F6C25A}
:root[data-persona="senior"] .tp-tag{font-size:18px;min-height:34px}
.tp-tested{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--ink);color:var(--surface);font:800 15px/1 var(--font-body);margin-left:auto}
.tp-card__name{font-family:var(--font-display);font-weight:var(--heading-weight);font-size:26px;line-height:32px;margin:var(--space-1) 0 0}
:root[data-persona="teen"] .tp-card__name{text-transform:uppercase;font-weight:1000;letter-spacing:-.01em}
:root[data-persona="senior"] .tp-card__name{font-size:32px;line-height:40px}
.tp-card__meta{margin:0;font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:var(--ink-muted)}
.tp-card__why{margin:0;font-size:var(--text-body-size);line-height:var(--text-body-line)}
.tp-card__row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);align-items:center;margin:0}
.tp-price{font-weight:700;font-size:var(--text-label-size)}
.tp-skill{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:var(--text-label-size);color:var(--primary-text)}
:root[data-persona="senior"] .tp-skill{color:var(--ink)}

.tp-flag{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font:700 var(--text-label-size)/var(--text-label-line) var(--font-body);background:var(--tp-unk-bg);color:var(--tp-unk);border:2px solid currentColor}
.tp-flag--stop{background:var(--tp-warn-bg);color:var(--tp-warn)}
.tp-card--restricted .tp-card__name{opacity:.92}

/* privacy strip */
.tp-strip{display:grid;grid-template-columns:1fr;gap:6px;margin:var(--space-1) 0 0}
.tp-strip__item{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--tp-age-bg);color:var(--ink);border:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 var(--space-3)}
:root[data-persona="teen"] .tp-strip__item{border-width:2px}
.tp-strip dt{font:700 15px/20px var(--font-body);color:inherit;margin:0}
.tp-strip dd{margin:0;display:flex;align-items:center;gap:6px;font-size:var(--text-label-size)}
.tp-strip dd.tp-strip__note{display:block;grid-column:1/-1;font-size:15px;line-height:20px;margin-top:2px;color:inherit;font-weight:400}
.tp-s--warn{background:var(--tp-warn-bg)!important;color:var(--tp-warn)!important}
.tp-s--ok{background:var(--tp-good-bg)!important;color:var(--tp-good)!important}
.tp-s--unk{background:var(--tp-unk-bg)!important;color:var(--tp-unk)!important}
.tp-strip .tp-s--warn,.tp-strip .tp-s--ok,.tp-strip .tp-s--unk{border-color:currentColor}
:root[data-persona="senior"] .tp-strip{grid-template-columns:1fr}
:root[data-persona="senior"] .tp-strip__item{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:center;gap:var(--space-1) var(--space-4);padding:var(--space-3) var(--space-4);border-width:2px}
:root[data-persona="senior"] .tp-strip dt{font-size:20px;line-height:28px;margin:0}
:root[data-persona="senior"] .tp-strip dd{font-size:22px}
:root[data-persona="senior"] .tp-strip dd.tp-strip__note{grid-column:1/-1;font-size:19px;line-height:27px}

.tp-collects__h{font:700 var(--text-label-size)/var(--text-label-line) var(--font-body);margin:var(--space-2) 0 var(--space-2)}
.tp-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.tp-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);background:var(--tp-chip-bg);border:1px solid var(--line-strong);font-size:15px;line-height:20px}
.tp-chip .tp-ico{width:18px;height:18px}
:root[data-persona="teen"] .tp-chip{border-radius:4px}
:root[data-persona="senior"] .tp-chip{font-size:19px;line-height:26px;padding:6px 14px}
:root[data-persona="senior"] .tp-chip .tp-ico{width:22px;height:22px}

.tp-card__foot{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-2);border-top:1px solid var(--line);padding-top:var(--space-3);margin-top:var(--space-1)}
:root[data-persona="teen"] .tp-card__foot{border-top:2px dashed #9AA1AC}
.tp-sources{flex:1 1 220px;font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:var(--ink-muted)}
.tp-sources summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:var(--tap-target);cursor:pointer;list-style:none}
.tp-sources summary::-webkit-details-marker{display:none}
.tp-sources__more{color:var(--primary-text);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.tp-sources ul{margin:0 0 var(--space-2);padding-left:1.2em}.tp-sources a{color:var(--primary-text);font-weight:700;overflow-wrap:anywhere}
.tp-sources p{margin:0}
.tp-stale{color:var(--tp-warn)}
.tp-visit{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap-target);padding:0 var(--space-4);border-radius:var(--radius-pill);border:2px solid var(--line-strong);color:var(--ink);font-weight:700;text-decoration:none;font-size:var(--text-label-size)}
.tp-visit:hover{background:var(--surface-sunken)}
:root[data-persona="senior"] .tp-visit{min-height:var(--control-height);padding:0 var(--space-5)}

.tp-held{margin-top:var(--space-6);border:2px dashed var(--line-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5)}
.tp-held>summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-height:var(--tap-target);font-weight:800;cursor:pointer}
.tp-held[open]>summary{margin-bottom:var(--space-4)}

/* ---------- Option B: sidebar + comparison list ---------- */
.tp-two{display:grid;grid-template-columns:280px 1fr;gap:var(--space-6);align-items:start}
.tp-side{position:sticky;top:var(--space-4);background:var(--surface-raised);border:var(--border-w) solid var(--line);border-radius:var(--radius-md);padding:var(--space-5)}
.tp-side .tp-fpanel{display:flex;flex-direction:column;gap:var(--space-5)}
.tp-side .tp-chipset{flex-direction:column;align-items:stretch}
.tp-side label.gb-chip{justify-content:flex-start;border-radius:var(--radius-sm)}
.tp-side .tp-countbar{margin-top:var(--space-5);flex-direction:column;align-items:flex-start;gap:0}
.tp-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface-raised);border:var(--border-w) solid var(--line);border-radius:var(--radius-md);overflow:hidden;color:var(--ink)}
.tp-table thead th{text-align:left;font:700 14px/18px var(--font-body);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3);background:var(--surface-sunken);border-bottom:var(--border-w) solid var(--line)}
:root[data-persona="teen"] .tp-table thead th{color:#C6FF4D;background:#0B0D10}
.tp-table td,.tp-table th[scope=row]{padding:var(--space-3);border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}
.tp-table td.tp-s--warn,.tp-table td.tp-s--ok,.tp-table td.tp-s--unk{font-weight:700}
.tp-c-name{min-width:200px}
.tp-row__name{display:block;font:var(--heading-weight) 20px/26px var(--font-display)}
.tp-row__meta{display:block;font-size:15px;line-height:20px;color:var(--ink-muted);font-weight:400}
.tp-row .tp-flag{margin-top:var(--space-2);font-size:14px;line-height:18px}
.tp-row .tp-tested{margin:var(--space-1) 0 0}
.tp-val{display:inline-flex;align-items:center;gap:6px}
.tp-more{min-height:var(--tap-target);min-width:var(--tap-target);padding:0 var(--space-3);border-radius:var(--radius-pill);border:2px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font:700 15px/1 var(--font-body);cursor:pointer}
.tp-more[aria-expanded="true"]{background:var(--ink);color:var(--surface)}
.tp-detail td{background:var(--surface-sunken)}
.tp-detail__in{display:flex;flex-direction:column;gap:var(--space-3);max-width:760px;padding:var(--space-2) 0}
.tp-row--restricted th,.tp-row--restricted td{background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(154,161,172,.10) 10px 20px)}
.tp-bside-note{margin:var(--space-4) 0 0;font-size:var(--text-caption-size);color:var(--ink-muted)}

/* Stacked list mode: B on phones, and B for Seniors at every width (22px type doesn't fit 7 columns) */
@media (max-width:1150px){
 .tp-two{grid-template-columns:1fr}
 .tp-side{position:static}
}
@media (max-width:1150px){ .tp-stack-at-mobile{display:block} }
:root[data-persona="senior"] .tp-two{grid-template-columns:1fr;max-width:860px;margin:0 auto}
:root[data-persona="senior"] .tp-side{position:static;border-width:2px}
:root[data-persona="senior"] .tp-side .tp-chipset{flex-direction:row}
@media (max-width:1150px){
 body[data-layout="list"] .tp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 body[data-layout="list"] .tp-table,body[data-layout="list"] .tp-table tbody,body[data-layout="list"] .tp-table tr,body[data-layout="list"] .tp-table td,body[data-layout="list"] .tp-table th[scope=row]{display:block}
 body[data-layout="list"] .tp-table{border:0;background:none;overflow:visible}
 body[data-layout="list"] .tp-row{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--space-2);background:var(--surface-raised);border:var(--border-w) solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-4)}
 body[data-layout="list"] .tp-row>*{border:0!important;padding:0!important;background:none}
 body[data-layout="list"] .tp-row th[scope=row]{grid-column:1/-1}
 body[data-layout="list"] .tp-row td[data-label]{padding:var(--space-2) var(--space-3)!important;border-radius:var(--radius-sm);background:var(--tp-age-bg)}
 body[data-layout="list"] .tp-row td.tp-s--warn,body[data-layout="list"] .tp-row td.tp-s--ok,body[data-layout="list"] .tp-row td.tp-s--unk{background:revert-layer}
 body[data-layout="list"] .tp-row td[data-label]::before{content:attr(data-label);display:block;font:700 13px/17px var(--font-body);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
 body[data-layout="list"] .tp-row .tp-c-more{grid-column:1/-1}
 body[data-layout="list"] .tp-more{width:100%}
 body[data-layout="list"] .tp-detail{background:var(--surface-sunken);border-radius:0 0 var(--radius-md) var(--radius-md);margin-top:-8px;padding:var(--space-4)}
 body[data-layout="list"] .tp-detail td{background:none;padding:0;border:0}
 body[data-layout="list"] .tp-row--restricted{background:repeating-linear-gradient(135deg,var(--surface-raised) 0 10px,var(--surface-sunken) 10px 20px)}
}
/* Seniors: same stacked treatment at all widths, bigger */
:root[data-persona="senior"] body[data-layout="list"] .tp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:root[data-persona="senior"] body[data-layout="list"] .tp-table,:root[data-persona="senior"] body[data-layout="list"] .tp-table tbody,:root[data-persona="senior"] body[data-layout="list"] .tp-table tr,:root[data-persona="senior"] body[data-layout="list"] .tp-table td,:root[data-persona="senior"] body[data-layout="list"] .tp-table th[scope=row]{display:block}
:root[data-persona="senior"] body[data-layout="list"] .tp-table{border:0;background:none;overflow:visible}
:root[data-persona="senior"] body[data-layout="list"] .tp-row{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--space-3);background:var(--surface-raised);border:2px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-5)}
:root[data-persona="senior"] body[data-layout="list"] .tp-row>*{border:0!important;padding:0!important}
:root[data-persona="senior"] body[data-layout="list"] .tp-row th[scope=row]{grid-column:1/-1;background:none}
:root[data-persona="senior"] body[data-layout="list"] .tp-row td[data-label]{padding:var(--space-3) var(--space-4)!important;border-radius:var(--radius-sm);background:var(--tp-age-bg);font-size:22px}
:root[data-persona="senior"] body[data-layout="list"] .tp-row td[data-label]::before{content:attr(data-label);display:block;font:700 18px/24px var(--font-body);margin-bottom:2px}
:root[data-persona="senior"] body[data-layout="list"] .tp-row .tp-c-more{grid-column:1/-1}
:root[data-persona="senior"] body[data-layout="list"] .tp-more{width:100%;min-height:var(--control-height);font-size:20px}
:root[data-persona="senior"] body[data-layout="list"] .tp-row__name{font-size:30px;line-height:38px}
:root[data-persona="senior"] body[data-layout="list"] .tp-row__meta{font-size:19px;line-height:27px}
:root[data-persona="senior"] body[data-layout="list"] .tp-detail td{background:none;padding:var(--space-5)}
:root[data-persona="senior"] body[data-layout="list"] .tp-detail{background:var(--surface-sunken);border-radius:var(--radius-lg)}

/* ---------- bottom CTA ---------- */
.tp-cta{margin:var(--space-8) 0 0;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-sunken);display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:space-between}
.tp-cta p{margin:0;font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);max-width:52ch}
:root[data-persona="teen"] .tp-cta{background:#2A2350;border:3px solid #C6FF4D}
:root[data-persona="senior"] .tp-cta{max-width:820px;margin-left:auto;margin-right:auto;flex-direction:column;align-items:stretch;text-align:center}
.tp-cta .gb-btn--primary{color:var(--on-primary)}
.gb-empty{color:var(--ink)}
.tp-empty__h{font-size:var(--text-body-lg-size)}
.gb-empty .gb-btn{margin:var(--space-1)}

/* ---------- mobile ---------- */
@media (max-width:760px){
 .tp-page{padding:var(--space-6) var(--space-4) 0}
 .tp-hero h1{font-size:36px;line-height:42px}
 :root[data-persona="teen"] .tp-hero h1{font-size:40px;line-height:42px}
 :root[data-persona="senior"] .tp-hero h1{font-size:38px;line-height:48px}
 .tp-grid{grid-template-columns:1fr}
 .tp-strip{grid-template-columns:1fr}
 .tp-strip__item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 var(--space-3)}
 .tp-strip dt{margin:0}.tp-strip dd.tp-strip__note{grid-column:1/-1}
 .tp-bar{padding:var(--space-4);gap:var(--space-4)}
 /* Filters beyond Category fold behind one button (only when JS is on; without JS everything shows) */
 .js .tp-ftoggle{display:inline-flex}
 .js .tp-fpanel{display:none}
 .js .tp-fpanel.is-open{display:flex;flex-direction:column;gap:var(--space-4);width:100%}
 .tp-bar__search{flex:none;width:100%}
}
/* overflow guards */
.tp-grid>*,.tp-two>*{min-width:0}
:root[data-persona="senior"] .tp-grid{grid-template-columns:minmax(0,1fr)}
:root[data-persona="senior"] .tp-two{grid-template-columns:minmax(0,1fr)}
@media (max-width:1150px){.tp-two{grid-template-columns:minmax(0,1fr)}}
.tp-filters label.gb-chip{white-space:normal;min-height:var(--tap-target);padding-top:6px;padding-bottom:6px}
:root[data-persona="senior"] .tp-strip__item{grid-template-columns:minmax(0,1fr) auto}
@media (max-width:760px){
 :root[data-persona="senior"] .tp-card{padding:var(--space-5) var(--space-4)}
 :root[data-persona="senior"] .tp-side{padding:var(--space-4)}
 :root[data-persona="senior"] body[data-layout="list"] .tp-row{grid-template-columns:minmax(0,1fr);padding:var(--space-4)}
 :root[data-persona="senior"] body[data-layout="list"] .tp-detail td{padding:var(--space-4)}
}
.tp-held{grid-column:1/-1}
.tp-tag{white-space:nowrap}
.tp-side .tp-bar__search{flex:none}
.tp-table .tp-val{white-space:nowrap}
.tp-table td.tp-s--unk .tp-val{white-space:normal;max-width:9ch}

/* ===== real-data additions ===== */
@media (max-width:440px){}
.tp-tag--free{background:var(--tp-good-bg);color:var(--tp-good);border-color:currentColor}
.tp-tag--unk{background:var(--tp-unk-bg);color:var(--tp-unk);border-color:currentColor;white-space:normal}
.tp-s--ok{background:var(--tp-good-bg)!important;color:var(--tp-good)!important}
.tp-s--warn{background:var(--tp-warn-bg)!important;color:var(--tp-warn)!important}
.tp-s--unk{background:var(--tp-unk-bg)!important;color:var(--tp-unk)!important}
.tp-strip .tp-s--ok,.tp-strip .tp-s--warn,.tp-strip .tp-s--unk{border-color:currentColor}
.tp-strip dd.tp-strip__src,.tp-strip__src{grid-column:1/-1;margin:0;font-size:14px;line-height:19px}
:root[data-persona="senior"] .tp-strip dd.tp-strip__src,:root[data-persona="senior"] .tp-strip__src{font-size:18px;line-height:26px}
a.tp-src{display:inline-flex;align-items:center;min-height:48px;color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.tp-sources a.tp-src{color:var(--primary-text)}
.tp-caution{display:flex;gap:var(--space-2);align-items:flex-start;margin:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--tp-warn-bg);color:var(--tp-warn);border:2px solid currentColor;font-weight:700}
.tp-caution .tp-ico{margin-top:3px}
.tp-chips__label{display:flex;align-items:center;gap:6px;margin:var(--space-2) 0 6px;font-size:15px;font-weight:700;color:var(--ink-muted)}
:root[data-persona="senior"] .tp-chips__label{font-size:19px}
.tp-chip--unk{background:var(--tp-unk-bg);color:var(--tp-unk);border:1px dashed currentColor}
.tp-chip--ns{background:transparent;color:var(--ink-muted);border:1px dashed var(--line-strong)}
.tp-collects .tp-strip__src{margin-top:var(--space-2);color:var(--ink-muted)}
.tp-facts{margin:var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-3);color:var(--ink)}
.tp-facts dt{font-weight:800}.tp-facts dd{margin:0}.tp-facts p,.tp-facts ul{margin:2px 0}.tp-facts ul{padding-left:1.2em}
.tp-status{display:inline-block;margin-left:6px;padding:0 8px;border-radius:var(--radius-pill);background:var(--tp-unk-bg);color:var(--tp-unk);font-size:14px;font-weight:700}
.tp-factsrc{font-size:14px;color:var(--ink-muted)}
:root[data-persona="senior"] .tp-factsrc{font-size:18px}
.tp-factsrc a.tp-src{margin-right:var(--space-2)}
.tp-collect-list{padding-left:1.2em;margin:0 0 var(--space-3)}
.tp-sources>p,.tp-sources>.tp-collect-list{color:var(--ink)}
.tp-pricecell{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.tp-held .tp-table{margin-top:var(--space-2)}
.tp-legal{margin:var(--space-3) 0 0;font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:var(--ink-muted)}
.tp-cta .tp-legal{margin-top:var(--space-3)}
/* Tap targets >= 48px on the tools pages (site-wide header controls are 32-40px today; see report) */
.gb-seg button{min-height:48px!important}
@media (min-width:861px){.gb-nav__links a:not(.gb-btn){display:inline-flex;align-items:center;min-height:48px}}
.gb-logo{min-height:48px;display:inline-flex;align-items:center}
.tp-hero__how a,.tp-legal a{display:inline-flex;align-items:center;min-height:48px}
.gb-footer__links a{min-height:48px}
.gb-nav__links .gb-btn{min-height:48px!important}

.tp-sources,.tp-facts,.tp-facts *,.tp-collect-list,.tp-detail__in,.tp-strip__src{min-width:0;overflow-wrap:anywhere}
.tp-card__foot>*{min-width:0}
.tp-table{table-layout:auto}
.tp-detail td{max-width:0}
@media (min-width:1151px){:root:not([data-persona="senior"]) .tp-two{grid-template-columns:240px minmax(0,1fr)}}
.tp-table .tp-val,.tp-table .tp-tag,.tp-table .tp-skill{white-space:normal}
.tp-table td,.tp-table th[scope=row]{padding:var(--space-3) var(--space-2)}
.tp-table .tp-tag{min-height:0;padding:3px 8px;line-height:18px}
.tp-c-name{min-width:150px}
.tp-table .tp-flag{font-size:14px;line-height:18px;padding:2px 8px}
@media (max-width:1150px){
 body[data-layout="list"] .tp-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 body[data-layout="list"] .tp-c-name{min-width:0}
 body[data-layout="list"] .tp-detail td{max-width:none}
}
:root[data-persona="senior"] body[data-layout="list"] .tp-c-name{min-width:0}
:root[data-persona="senior"] body[data-layout="list"] .tp-detail td{max-width:none}
@media (max-width:480px){
 body[data-layout="list"] .tp-row,:root[data-persona] body[data-layout="list"] .tp-row{grid-template-columns:minmax(0,1fr)}
 body[data-layout="list"] .tp-row .tp-tag{white-space:normal}
}
/* one page: Seniors persona uses the card grid inside the same filter shell */
body[data-layout="cards"] .tp-bside-note{display:none}
:root[data-persona="senior"] .tp-side .tp-fpanel{gap:var(--space-5)}
:root[data-persona="senior"] .tp-grid{max-width:none}
/* ===== static prerender + headings (spec-tools-static-html, Oct 18 2026) ===== */
h3.tp-row__name{margin:0;letter-spacing:normal}
.tp-sr-h{margin:-1px!important;padding:0!important;border:0!important;clip-path:inset(50%)}
html:not(.js) .tp-detail[hidden]{display:table-row}
@media (max-width:1150px){html:not(.js) body[data-layout="list"] .tp-detail[hidden]{display:block}}
html:not(.js) .tp-more,html:not(.js) .tp-fpanel{display:none}
html.js:not([data-persona="parent"]) #results:not(.is-ready) .tp-static{visibility:hidden}
.tp-noscript{margin:0 0 var(--space-3)}
@media (max-width:1150px){html.js body[data-layout="list"] .tp-table tr.tp-detail[hidden]{display:none}} /* optional details-fix: closed Details rows stay closed in the stacked list */
/* Long price labels (e.g. "billed yearly") wrap inside the card instead of running off narrow screens. Oct 21, 2026 */
.tp-card__top .tp-tag--price{white-space:normal;max-width:100%;line-height:1.2;padding-top:4px;padding-bottom:4px}
