/* Propsoon: the Firms list (firms.html) and the firm pages (firms/<id>.html). Built from the Firms and Firm boards. */
:root{
  --watch-ink:#6B4A00;
  --g1:#BFE8D5; --g2:#DDF3EA; --g3:#EEF7F2; --gx:var(--tint);
  --in-bg:#DDF3EA; --in-fg:#0E7A55;
  --rv-bg:#FBE4E1; --rv-fg:#B3261E;
  --bd-bg:#FBF1DC; --bd-fg:#6B4A00;
  --out-bg:#E9EEF5; --out-fg:#44546A;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --watch-ink:#E0A63A;
    --g1:#1C5241; --g2:#183E35; --g3:#152C2C;
    --in-bg:#123A2E; --in-fg:#5BDDA8;
    --rv-bg:#3E1D1A; --rv-fg:#F58A7E;
    --bd-bg:#3A2E14; --bd-fg:#E8B65A;
    --out-bg:#1C2C45; --out-fg:#B5C1D3;
  }
}
:root[data-theme="dark"]{
  --watch-ink:#E0A63A;
  --g1:#1C5241; --g2:#183E35; --g3:#152C2C;
  --in-bg:#123A2E; --in-fg:#5BDDA8;
  --rv-bg:#3E1D1A; --rv-fg:#F58A7E;
  --bd-bg:#3A2E14; --bd-fg:#E8B65A;
  --out-bg:#1C2C45; --out-fg:#B5C1D3;
}

/* ---------- shared bits ---------- */
.note{ margin:0; font:400 13.5px/1.45 var(--f-ui); color:var(--ink-3); }
.muted{ color:var(--ink-3); font-weight:500; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 18px; border-radius:10px;
  border:1px solid var(--rule-2); background:var(--surface); color:var(--ink); text-decoration:none; cursor:pointer;
  font:600 15.5px/1.1 var(--f-ui); }
.btn:hover{ color:var(--ink); background:var(--tint); }
.btn.pri{ background:var(--accent); border-color:var(--accent); color:var(--on-ink); }
.btn.pri:hover{ background:var(--accent-hover); border-color:var(--accent-hover); color:var(--on-ink); }
.btn svg{ flex:none; }
.sec-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 24px;
  border-top:2px solid var(--ink); padding-top:12px; margin-bottom:16px; }
.sec-head h2{ margin:0; font:600 32px/1.1 var(--f-display); color:var(--ink); }
.sec-head p{ margin:0; max-width:78ch; font:500 14.5px/1.35 var(--f-ui); color:var(--ink-3); }
.fp-sec{ padding-top:0; padding-bottom:40px; }
.lane{ white-space:nowrap; }
.lane i{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:1px; background:var(--ink-3); }
.lane.allowed i{ background:var(--lane-allowed); }
.lane.approval i, .lane.conditional i{ background:var(--lane-approval); }
.lane.banned i{ background:var(--lane-banned); }
.lane.unknown i{ background:transparent; box-shadow:inset 0 0 0 1.5px var(--ink-3); }
.notice{ margin:0; padding:10px 13px; border-radius:10px; background:var(--tint); box-shadow:inset 3px 0 0 var(--warn);
  font:400 15px/1.5 var(--f-body); color:var(--ink-2); max-width:72ch; }
.notice.bad{ box-shadow:inset 3px 0 0 var(--bad); }
.notice b{ color:var(--ink); font-weight:600; }
.badge{ display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:999px; white-space:nowrap;
  font:600 12.5px/1.15 var(--f-ui); }
.badge i, .tile .tl i{ display:inline-block; flex:none; width:7px; height:7px; border-radius:50%; }
.st-in.badge, .pill.st-in{ background:var(--in-bg); color:var(--in-fg); }
.st-review.badge, .pill.st-review{ background:var(--rv-bg); color:var(--rv-fg); }
.st-border.badge, .pill.st-border{ background:var(--bd-bg); color:var(--bd-fg); }
.st-out.badge, .pill.st-out{ background:var(--out-bg); color:var(--out-fg); }
.badge.st-in i, .tile.st-in .tl i{ background:var(--money); }
.badge.st-review i, .tile.st-review .tl i{ background:var(--bad); }
.badge.st-border i, .tile.st-border .tl i{ background:var(--warn); }
.badge.st-out i, .tile.st-out .tl i{ background:var(--surface); box-shadow:inset 0 0 0 1.5px var(--bad); }
.tile.st-all .tl i{ background:var(--ink); }
.tw{ min-width:0; }

/* ---------- the list ---------- */
.fl .page-head .fresh a{ font-weight:600; }
.filters{ padding-top:14px; padding-bottom:8px; display:flex; flex-direction:column; gap:16px; }
.tiles{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap:10px; }
.tile{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:14px 16px 13px; border-radius:14px;
  border:1.5px solid var(--rule); background:var(--tint); color:var(--ink); text-align:left; cursor:pointer; }
.tile:hover{ border-color:var(--rule-2); }
.tile[aria-pressed="true"]{ border-color:var(--ink); background:var(--surface); }
.tile .tl{ display:inline-flex; align-items:center; gap:7px; font:600 14.5px/1.2 var(--f-ui); }
.tile.st-in .tl{ color:var(--in-fg); } .tile.st-review .tl{ color:var(--rv-fg); }
.tile.st-border .tl{ color:var(--bd-fg); } .tile.st-out .tl{ color:var(--out-fg); }
.tile .tc{ font:600 40px/1 var(--f-display); font-variant-numeric:tabular-nums; }
.tile .ts{ font:400 13.5px/1.35 var(--f-ui); color:var(--ink-2); }
.frow{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; }
.mchips{ display:flex; flex-wrap:wrap; gap:6px; }
.mchip{ min-height:44px; padding:0 14px; border-radius:999px; border:1px solid var(--rule-2); background:var(--surface);
  color:var(--ink); font:500 15px/1 var(--f-ui); cursor:pointer; }
.mchip .mc{ margin-left:7px; color:var(--ink-3); font-variant-numeric:tabular-nums; }
.mchip[aria-pressed="true"]{ background:var(--ink); border-color:var(--ink); color:var(--surface); }
.mchip[aria-pressed="true"] .mc{ color:inherit; opacity:.8; }
.find{ display:flex; align-items:center; gap:10px; }
.find label{ font:500 14px/1 var(--f-ui); color:var(--ink-3); }
.find input{ width:240px; min-height:44px; padding:8px 12px; border-radius:10px; border:1px solid var(--rule-2);
  background:var(--surface); color:var(--ink); font:500 15px/1.2 var(--f-ui); }
.find input::placeholder{ color:var(--ink-3); }

.grp{ padding-top:22px; padding-bottom:8px; }
.grp-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 24px;
  border-top:2px solid var(--ink); padding-top:12px; margin-bottom:14px; }
.grp-head h2{ margin:0; display:flex; align-items:baseline; gap:10px; font:600 32px/1.1 var(--f-display); color:var(--ink); }
.pill{ font:600 15px/1 var(--f-ui); border-radius:999px; padding:5px 10px; font-variant-numeric:tabular-nums; }
.grp-head p{ margin:0; max-width:70ch; font:500 14.5px/1.35 var(--f-ui); color:var(--ink-3); }
.grp .empty{ margin:0 0 12px; padding:18px; border:1px dashed var(--rule-2); border-radius:12px;
  font:500 15px/1.4 var(--f-ui); color:var(--ink-3); }
.grp .tw{ border:1px solid var(--rule); border-radius:14px; background:var(--surface); overflow:hidden; }
.ft{ width:100%; border-collapse:collapse; table-layout:fixed; font:400 14px/1.35 var(--f-ui); font-variant-numeric:tabular-nums; }
.ft thead th{ text-align:left; vertical-align:bottom; padding:12px 10px 10px; border-bottom:1.5px solid var(--ink);
  font:600 13.5px/1.2 var(--f-ui); color:var(--ink-2); }
.ft thead th:first-child{ padding-left:16px; }
.ft thead th:last-child{ padding-right:16px; }
.ft tbody tr{ border-bottom:1px solid var(--tint-2); }
.ft tbody tr:last-child{ border-bottom:0; }
.ft tbody th, .ft tbody td{ padding:11px 10px; vertical-align:middle; text-align:left; color:var(--ink-2); font-weight:400; overflow-wrap:anywhere; }
.ft tbody th{ padding-left:16px; }
.ft tbody td:last-child{ padding-right:16px; }
.ft .c-firm a{ display:flex; flex-direction:column; text-decoration:none; }
.ft .c-firm b{ font:600 16px/1.2 var(--f-ui); color:var(--accent); }
.ft .c-firm a:hover b{ text-decoration:underline; }
.ft .c-firm .h{ display:block; margin-top:2px; font-size:12.5px; line-height:1.3; color:var(--ink-3); }
.ft .c-firm b.nm-out{ display:block; font:600 16px/1.2 var(--f-ui); color:var(--ink); }
.ft td b{ display:block; font-weight:600; color:var(--ink); }
.ft td .s{ display:block; margin-top:1px; font-size:12.5px; line-height:1.3; color:var(--ink-3); }
.ft .badge + .s{ margin-top:4px; }
.ft .w{ display:flex; align-items:flex-start; gap:7px; color:var(--watch-ink); }
.ft .w i{ flex:none; width:7px; height:7px; margin-top:6px; border-radius:50%; background:var(--warn); }
.ft .c-why p{ margin:0; color:var(--ink-2); }
.ft .c-why p + p{ margin-top:4px; }
.ft .src-l{ color:var(--ink-3); font-weight:500; }
.ft-in thead th:nth-child(1){ width:20%; } .ft-in thead th:nth-child(2){ width:11%; } .ft-in thead th:nth-child(3){ width:12%; }
.ft-in thead th:nth-child(4){ width:14%; } .ft-in thead th:nth-child(5){ width:16%; } .ft-in thead th:nth-child(6){ width:27%; }
.ft .c-firm .hu{ margin-top:7px; font:500 12.5px/1.3 var(--f-ui); }
.ft td .badge + .hu{ margin-top:7px; font-size:12.5px; line-height:1.3; }
.ft td b.t-word{ font-size:13.5px; line-height:1.25; }
.ft td .s.unsafe{ color:var(--watch-ink); }
.ft-review thead th:nth-child(1), .ft-border thead th:nth-child(1){ width:16%; }
.ft-review thead th:nth-child(2), .ft-border thead th:nth-child(2){ width:9%; }
.ft-review thead th:nth-child(3), .ft-border thead th:nth-child(3){ width:10%; }
.ft-review thead th:nth-child(4), .ft-border thead th:nth-child(4){ width:11%; }
.ft-review thead th:nth-child(5), .ft-border thead th:nth-child(5){ width:12%; }
.ft-review thead th:nth-child(6), .ft-border thead th:nth-child(6){ width:10%; }
.ft-out thead th:nth-child(1){ width:22%; } .ft-out thead th:nth-child(2){ width:17%; }
.grp-more{ margin-top:12px; }
.how-g{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap:24px 32px;
  font:400 15.5px/1.55 var(--f-body); color:var(--ink-2); }
.how-g h3{ margin:0 0 4px; font:600 18px/1.2 var(--f-ui); }
.how-g h3.st-in{ color:var(--in-fg); } .how-g h3.st-review{ color:var(--rv-fg); }
.how-g h3.st-border{ color:var(--bd-fg); } .how-g h3.st-out{ color:var(--out-fg); }
.how-g p{ margin:0; }
.fl .how{ padding-top:34px; padding-bottom:20px; }

/* ---------- a firm ---------- */
.fp-bar{ padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 24px; }
.crumbs{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; font:500 14px/1.2 var(--f-ui); color:var(--ink-3); }
.crumbs a{ color:var(--ink-2); text-decoration:none; }
.crumbs a:hover{ text-decoration:underline; }
.crumbs [aria-current]{ color:var(--ink); }
.fp-bar .fresh{ font-size:13.5px; }
.fp-hero{ padding-top:14px; padding-bottom:30px; display:grid; grid-template-columns:repeat(auto-fit, minmax(min(520px, 100%), 1fr));
  gap:24px 48px; align-items:start; }
.fp-intro{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.fp-intro h1{ margin:0; font:600 clamp(46px, 5.4vw, 72px)/0.95 var(--f-display); letter-spacing:-0.01em; color:var(--ink);
  overflow-wrap:anywhere; text-wrap:balance; }
.fp-lede{ margin:0; max-width:62ch; font:400 18px/1.5 var(--f-body); color:var(--ink-2); text-wrap:pretty; }
.chips{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.chip{ display:inline-flex; align-items:center; padding:7px 12px; border-radius:999px; background:var(--surface);
  border:1px solid var(--rule); font:500 14px/1.15 var(--f-ui); color:var(--ink-2); }
.chip.lane i{ margin-right:7px; }
.fp-cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.fp-cta .btn{ min-height:48px; font-size:16px; }
.fp-only{ margin-top:-6px; }
.kstats{ margin:0; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); border-top:2px solid var(--ink); }
.ks{ padding:14px 14px 14px 0; border-bottom:1px solid var(--rule); min-width:0; }
.ks:nth-child(odd){ border-right:1px solid var(--rule); }
.ks:nth-child(even){ padding-left:16px; padding-right:0; }
.ks dt{ font:600 13.5px/1.2 var(--f-ui); color:var(--ink-3); }
.ks.t-soon dt{ color:var(--money-ink); }
.ks.t-cush dt{ color:var(--accent); }
.ks.t-cheap dt{ color:var(--ink); }
.ks-v{ margin:4px 0; font:600 38px/1 var(--f-display); color:var(--ink); font-variant-numeric:tabular-nums; }
.ks-v small{ margin-left:5px; font:500 16px/1 var(--f-ui); color:var(--ink-2); }
.ks-v .v-txt{ display:block; font:600 22px/1.15 var(--f-display); }
.ks-s{ margin:0; font:400 13.5px/1.35 var(--f-ui); color:var(--ink-2); }
.ks-s .flag{ display:block; margin-top:6px; padding:1px 0 1px 9px; border-left:3px solid var(--warn); color:var(--ink-2); }
.over{ color:var(--bad); font-weight:600; }

.p-tabs{ margin:0 0 18px; padding:0; list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap:10px; }
.p-tabs li{ display:flex; }
.tab{ flex:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; min-height:64px;
  padding:11px 16px; border-radius:12px; border:1.5px solid var(--rule-2); background:var(--surface); color:var(--ink);
  text-decoration:none; text-align:left; }
.tab:hover{ color:var(--ink); border-color:var(--ink-3); }
.tab .t-n{ font:600 18px/1.15 var(--f-ui); overflow-wrap:anywhere; }
.tab .t-s{ font:500 13.5px/1.25 var(--f-ui); color:var(--ink-2); }
.tab[aria-selected="true"]{ background:var(--ink); border-color:var(--ink); color:var(--surface); }
.tab[aria-selected="true"] .t-s{ color:inherit; opacity:.85; }
.panels{ display:flex; flex-direction:column; gap:18px; }
.panel{ background:var(--surface); border:1px solid var(--rule); border-radius:16px; padding:22px 24px 24px;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(min(560px, 100%), 1fr)); gap:26px 36px; scroll-margin-top:12px; }
.panel > *{ min-width:0; }
.p-head, .panel > .notice, .p-sizes, .p-prose{ grid-column:1 / -1; }
.panel > .notice{ max-width:none; }
.p-head{ display:flex; flex-direction:column; gap:10px; }
.p-head h3{ margin:0; font:600 26px/1.1 var(--f-display); color:var(--ink); }
.p-type{ margin:0; font:500 14.5px/1.35 var(--f-ui); color:var(--ink-3); }
.p-code{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.code{ padding:7px 11px; border-radius:8px; border:1.5px dashed var(--accent); background:var(--accent-soft); color:var(--accent-hover);
  font:600 16px/1 var(--f-ui); letter-spacing:.06em; }
.code-t{ font:500 15px/1.35 var(--f-ui); color:var(--ink-2); max-width:80ch; }
.conf{ display:inline-flex; align-items:center; gap:7px; font:500 13.5px/1.3 var(--f-ui); color:var(--ink-2); }
.conf i{ flex:none; width:8px; height:8px; border-radius:50%; background:var(--lane-allowed); }
.conf.third-party i{ background:var(--warn); } .conf.unverified i{ background:var(--bad); }
.conf.mixed i{ background:transparent; box-shadow:inset 0 0 0 1.5px var(--ink-3); } .conf.rc i{ background:var(--accent); }
.p-link{ margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; font:600 15px/1.3 var(--f-ui); }
.p-link a{ display:inline-flex; align-items:center; gap:6px; }
.p-link .note{ font-weight:400; }
.panel h4{ margin:0 0 10px; font:600 17px/1.2 var(--f-ui); color:var(--ink); }
.t-sizes{ width:100%; border-collapse:collapse; font:400 14.5px/1.35 var(--f-ui); font-variant-numeric:tabular-nums; }
.t-sizes th, .t-sizes td{ padding:11px 8px; text-align:right; vertical-align:baseline; border-bottom:1px solid var(--rule); color:var(--ink); }
.t-sizes thead th{ padding:8px; border-bottom:1.5px solid var(--ink); font:600 13.5px/1.2 var(--f-ui); color:var(--ink-2); vertical-align:bottom; }
.t-sizes .l{ text-align:left; }
.t-sizes th:first-child{ padding-left:0; } .t-sizes th:last-child, .t-sizes td:last-child{ padding-right:0; }
.t-sizes tbody th b{ font:600 17px/1.2 var(--f-ui); }
.t-sizes td b{ font-weight:600; font-size:16px; }
.t-sizes s{ font-size:13px; color:var(--ink-3); }
.t-sizes .u, .th-s{ font-size:13px; color:var(--ink-3); font-weight:400; }
.th-s{ display:block; margin-top:2px; font-size:12px; font-weight:500; }
.p-speed .note{ margin-bottom:12px; }
.t-speed{ width:100%; border-collapse:separate; border-spacing:4px; margin:-4px; table-layout:fixed;
  font:400 13px/1.25 var(--f-ui); font-variant-numeric:tabular-nums; }
.t-speed thead th{ padding:4px 6px; text-align:left; font-weight:600; color:var(--ink-2); }
.t-speed thead th:first-child{ width:21%; }
.t-speed tbody th{ text-align:left; vertical-align:middle; padding:4px 4px 4px 0; font:600 15px/1.15 var(--f-ui); color:var(--ink); }
.t-speed tbody th b{ display:block; font-weight:600; overflow-wrap:anywhere; }
.t-speed .sp-ev{ display:block; margin-top:3px; font:400 12.5px/1.25 var(--f-ui); color:var(--ink-3); }
.t-speed td{ padding:8px 9px; border-radius:8px; vertical-align:middle; color:var(--ink-2); }
.t-speed td b{ display:block; font-size:14.5px; font-weight:600; color:var(--ink); }
.t-speed td span{ display:block; margin-top:2px; }
.t-speed td .sp-x{ font-size:12.5px; color:var(--ink-2); }
.t-speed td.g1, .legend .g1{ background:var(--g1); } .t-speed td.g2, .legend .g2{ background:var(--g2); }
.t-speed td.g3, .legend .g3{ background:var(--g3); }
.t-speed td.gx, .legend .gx{ background:var(--gx); box-shadow:inset 0 0 0 1px var(--rule); }
.t-speed td.gx b{ color:var(--ink-3); }
.legend{ margin:10px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px 16px; font:500 12.5px/1.2 var(--f-ui); color:var(--ink-2); }
.legend li{ display:inline-flex; align-items:center; gap:6px; }
.legend i{ display:inline-block; width:12px; height:12px; border-radius:3px; }
.p-side{ display:flex; flex-direction:column; gap:22px; }
.p-net .note{ margin-bottom:12px; }
.netbars{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.netbars li{ display:grid; grid-template-columns:minmax(52px, auto) minmax(60px, 1fr) 70px; grid-template-rows:auto auto; align-items:center;
  gap:2px 10px; font:500 14px/1 var(--f-ui); font-variant-numeric:tabular-nums; }
.nm-s{ font-weight:600; grid-row:1 / 3; }
.nm-b{ display:block; height:14px; border-radius:4px; background:var(--tint-2); }
.nm-b i{ display:block; height:100%; border-radius:4px; background:var(--money); }
.netbars b{ text-align:right; font-weight:600; }
.nm-t{ grid-column:2 / 4; font:400 12.5px/1.2 var(--f-ui); color:var(--ink-3); }
.kv{ display:grid; grid-template-columns:max-content minmax(0, 1fr); gap:8px 14px; margin:0; font:400 14.5px/1.45 var(--f-ui); color:var(--ink); }
.kv dt{ font-weight:500; font-size:13.5px; color:var(--ink-3); max-width:150px; }
.kv dd{ margin:0; overflow-wrap:anywhere; }
.bysize{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:5px; }
.bysize b{ font-weight:600; }
.p-prose{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap:20px 36px; border-top:1px solid var(--rule); padding-top:20px; }
.p-prose h4{ margin-bottom:8px; }
.p-prose p{ margin:0; max-width:72ch; font:400 15px/1.55 var(--f-body); color:var(--ink); overflow-wrap:anywhere; }
.p-prose .flag{ border-left:3px solid var(--warn); padding:2px 0 2px 12px; }

.as-list{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(440px, 100%), 1fr)); gap:16px; }
.as-prog{ background:var(--surface); border:1px solid var(--rule); border-radius:14px; padding:18px 20px; min-width:0; }
.as-prog h3{ margin:0 0 4px; font:600 19px/1.2 var(--f-ui); }
.as-prog h3 a{ color:var(--ink); text-decoration-color:var(--rule-2); }
.as-prog h3 a:hover{ color:var(--accent); }
.as-n{ margin:0 0 10px; font:500 13.5px/1.35 var(--f-ui); color:var(--ink-3); }
.as-prog h4{ margin:12px 0 6px; font:600 14px/1.2 var(--f-ui); color:var(--ink-2); }
.marks{ margin:0; padding:0 0 0 18px; font:400 14.5px/1.45 var(--f-body); color:var(--ink); }
.marks li + li{ margin-top:4px; }
.marks.rests{ list-style:none; padding:0; }
.marks.rests b{ font-weight:600; }
.as-sizes{ margin:0; display:flex; flex-direction:column; gap:10px; }
.as-sizes > div{ padding:10px 12px; border-radius:10px; background:var(--tint); }
.as-sizes dt{ font:600 14px/1.3 var(--f-ui); color:var(--ink); margin-bottom:4px; }
.as-sizes dd{ margin:0; }

.fp-two{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(460px, 100%), 1fr)); gap:28px 48px; }
.fp-two .sec-head h2{ font-size:28px; }
.fp-two > div{ min-width:0; }
.brief{ margin:0; padding:0; list-style:none; font:400 15px/1.5 var(--f-body); color:var(--ink-2); }
.brief li{ padding:10px 0; border-bottom:1px solid var(--rule); overflow-wrap:anywhere; }
.brief b{ color:var(--ink); font-weight:600; }
.src-n{ margin-bottom:6px; }
.src-list{ margin:0; padding:0; list-style:none; font:400 14.5px/1.4 var(--f-ui); }
.src-list li{ padding:8px 0; border-bottom:1px solid var(--rule); display:flex; justify-content:space-between; align-items:baseline; gap:4px 12px; }
.src-list a{ min-width:0; overflow-wrap:anywhere; }
.src-m{ flex:none; max-width:45%; text-align:right; font-size:13px; color:var(--ink-3); overflow-wrap:anywhere; }
.src-more{ margin-top:10px; }
.sims{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(270px, 100%), 1fr)); gap:14px; }
.sim{ display:flex; flex-direction:column; gap:6px; padding:16px 18px; border-radius:14px; background:var(--surface); border:1px solid var(--rule);
  color:var(--ink); text-decoration:none; }
.sim:hover{ border-color:var(--rule-2); color:var(--ink); }
.sim b{ font:600 16.5px/1.2 var(--f-ui); color:var(--accent); }
.sim:hover b{ text-decoration:underline; }
.sim > span{ font:400 14px/1.35 var(--f-ui); color:var(--ink-2); }
.sim .sim-t{ font:500 12.5px/1.25 var(--f-ui); color:var(--ink-3); }
.sim .st-review{ color:var(--rv-fg); } .sim .st-border{ color:var(--bd-fg); } .sim .unsafe{ color:var(--watch-ink); }
.peers{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.peers a{ display:inline-flex; align-items:center; min-height:40px; padding:0 13px; border-radius:999px; background:var(--surface);
  border:1px solid var(--rule); font:500 14.5px/1.2 var(--f-ui); text-decoration:none; }
.peers a:hover{ border-color:var(--rule-2); text-decoration:underline; }
.fp-more .sec-head h2{ font-size:28px; }
.fp-more .sec-head p{ font-weight:600; }

@media screen{ .off{ display:none !important; } }

/* ---------- narrower screens: tables become cards ---------- */
@media (max-width: 1080px){
  .ft thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .ft, .ft tbody{ display:block; }
  .ft tbody tr{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap:10px 18px; padding:14px 16px; }
  .ft tbody th, .ft tbody td{ display:block; padding:0 !important; }
  .ft tbody th{ grid-column:1 / -1; }
  .ft .c-note, .ft .c-why{ grid-column:1 / -1; }
  .ft tbody td::before{ content:attr(data-l); display:block; margin-bottom:2px; font:600 12px/1.2 var(--f-ui); color:var(--ink-3); }
}
@media (max-width: 760px){
  .t-sizes thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .t-sizes, .t-sizes tbody{ display:block; }
  .t-sizes tbody tr{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px 14px; padding:12px 0; border-bottom:1px solid var(--rule); }
  .t-sizes tbody th, .t-sizes tbody td{ display:block; padding:0; border:0; text-align:left; }
  .t-sizes tbody th{ grid-column:1 / -1; }
  .t-sizes tbody td::before{ content:attr(data-l); display:block; margin-bottom:2px; font:600 12px/1.2 var(--f-ui); color:var(--ink-3); }
  .panel{ padding:18px 16px 20px; }
}
@media (max-width: 640px){
  .sec-head h2, .grp-head h2{ font-size:28px; }
  .find{ flex:1 1 100%; }
  .find input{ flex:1; width:auto; min-width:0; }
  .tiles{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .tile{ padding:12px 13px 11px; }
  .tile .tc{ font-size:34px; }
  .kstats{ grid-template-columns:minmax(0, 1fr); }
  .ks{ padding:12px 0 !important; border-right:0 !important; }
  .ks-v{ font-size:34px; }
  .p-tabs{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:6px; }
  .tab{ min-height:52px; padding:8px 11px; }
  .tab .t-n{ font-size:15.5px; }
  .tab .t-s{ font-size:12.5px; }
  .t-speed{ font-size:12.5px; }
  .t-speed thead th:first-child{ width:24%; }
  .t-speed td{ padding:7px 7px; }
  .t-speed td b{ font-size:13.5px; }
  .kv{ grid-template-columns:minmax(0, 1fr); gap:2px; }
  .kv dt{ max-width:none; margin-top:8px; }
  .src-list li{ flex-direction:column; }
  .src-m{ max-width:none; text-align:left; }
  .fp-intro h1{ font-size:44px; }
  .fp-lede{ font-size:17px; }
}
@media (max-width: 420px){
  .t-speed thead th:first-child{ width:27%; }
  .t-speed td span{ overflow-wrap:anywhere; }
}

/* ---------- print: every program, no controls ---------- */
@media print{
  .filters, .grp-more, .src-more, .fp-cta, .fp-only, .p-tabs, .fp-more{ display:none !important; }
  .panel, .as-prog, .grp .tw{ break-inside:auto; border-color:#999; }
  .panel{ display:block; }
  .panel > * + *{ margin-top:18px; }
  .sec-head{ border-top-color:#000; }
  a{ color:inherit; }
  .t-speed td{ print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
