/* ============ 4b. BONUS COMPONENTS (generated from the 08.10.2026 catalog) ============
   The GEO blocks in src/data/template-geo use bespoke class names that had no CSS.
   Every rule is wrapped in :where(.tpl-geo) so the hand-written .tpl-geo rules above win. */
:where(.tpl-geo) table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.5; }
:where(.tpl-geo) th, :where(.tpl-geo) td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border-2); }
:where(.tpl-geo) th { background: var(--bg-cool); color: var(--ink); font-size: 12.5px; font-weight: 700; letter-spacing: 0.03em; }
:where(.tpl-geo) tr:last-child td { border-bottom: 0; }
:where(.tpl-geo) [class$='-matrix'] { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border); border-radius: 12px; background: #fff; margin: 0 0 20px; }
:where(.tpl-geo) [class$='-matrix'] > table { margin: 0; }
:where(.tpl-geo) [class$='__note'] { display: block; padding: 10px 12px; font-size: 12.5px; color: var(--faint); }
:where(.tpl-geo) [class$='-extras'] h4 { font-size: 15.5px; font-weight: 700; color: var(--ink); margin: 0 0 6px; }
:where(.tpl-geo) [class$='-extras'] ul, :where(.tpl-geo) [class$='-extras'] ol { padding-left: 22px; margin: 6px 0 14px; }
:where(.tpl-geo) [class$='-extras'] li { font-size: 15px; line-height: 1.6; color: var(--ink-2); margin-bottom: 6px; }
:where(.tpl-geo) [class$='-extras'] input { padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; font: inherit; font-size: 15px; background: #fff; color: var(--ink); width: 100%; box-sizing: border-box; }
:where(.tpl-geo) [class$='-extras'] label { font-size: 13px; font-weight: 600; color: var(--ink-2); }
:where(.tpl-geo) :is(.ab-extras__eyebrow,.als-extras__eyebrow,.anp-extras__eyebrow,.bc-extras__eyebrow,.cd-extras__eyebrow,.cdd-extras__eyebrow,.cla-extras__eyebrow,.ct-extras__eyebrow,.cwl-extras__eyebrow,.dal-extras__eyebrow,.dl-extras__eyebrow,.dli-extras__eyebrow,.hcd-extras__eyebrow,.hw-extras__eyebrow,.iou-extras__eyebrow,.iv-extras__eyebrow,.jpl-extras__eyebrow,.llc-extras__eyebrow,.loe-extras__eyebrow,.loi-extras__eyebrow,.lr-extras__eyebrow,.lsl-extras__eyebrow,.lsp-extras__eyebrow,.maf-extras__eyebrow,.mca-extras__eyebrow,.mtd-extras__eyebrow,.nt-extras__eyebrow,.ool-extras__eyebrow,.pca-extras__eyebrow,.ppa-extras__eyebrow,.ptp-extras__eyebrow,.rvl-extras__eyebrow,.se-extras__eyebrow,.ss-extras__eyebrow,.tla-extras__eyebrow,.uw-extras__eyebrow,.wpl-extras__eyebrow,.ws-extras__eyebrow) { font-size: 12.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--info); margin: 0 0 6px; }
:where(.tpl-geo) :is(.ab-lede,.als-lede,.anp-lede,.bc-lede,.bonus-lede,.cd-lede,.cdd-lede,.cla-lede,.cr-anti__lede,.ct-lede,.cwl-extras__lede,.dal-lede,.dl-lede,.dli-lede,.hcd-lede,.hl-factor__sub,.hw-lede,.iou-clause-intro,.iou-lede,.iv-lede,.jpl-lede,.llc-lede,.loe-lede,.loi-lede,.lr-lede,.lsl-lede,.lsp-lede,.maf-lede,.mca-lede,.mtd-lede,.nt-exceptions-intro,.nt-lede,.ool-lede,.pca-lede,.ppa-lede,.ptp-lede,.rvl-lede,.se-lede,.ss-lede,.tla-lede,.uw-lede,.wpl-lede,.ws-lede) { font-size: 15.5px; line-height: 1.6; color: var(--muted); margin: 0 0 16px; max-width: 70ch; }
:where(.tpl-geo) :is(.ab-matrix,.als-matrix,.ct-matrix,.dl-matrix,.dli-math__table,.form-matrix,.hw-matrix,.iou-compare,.ip-calc__schedule,.iv-matrix,.llc-matrix,.loi-matrix,.nt-matrix,.pca-matrix,.ptp-compare,.se-matrix,.ss-matrix,.ws-matrix) { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 20px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
:where(.tpl-geo) :is(.ab-mistakes,.afr-callout,.als-mistakes,.anp-effect,.cd-risks,.cr-anti,.ct-dontdo,.dl-mistakes,.hl-callout--warn,.ip-calc__error,.ip-disambig,.iv-mistakes,.llc-mistakes,.loi-mistakes,.lr-dontdo,.lsp-mistakes,.maf-mistakes,.mca-mistakes,.nt-mistakes,.ool-classification,.ool-mistakes,.ptp-mistakes,.se-mistakes,.ss-mistakes,.wpl-consequences,.ws-mistakes) { display: block; padding: 14px 18px; background: var(--warn-tint); border: 1px solid color-mix(in srgb, var(--warn) 25%, transparent); border-radius: 12px; margin: 14px 0; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
:where(.tpl-geo) .ab-mistakes:has(> svg),
:where(.tpl-geo) .afr-callout:has(> svg),
:where(.tpl-geo) .als-compare:has(> svg),
:where(.tpl-geo) .als-mistakes:has(> svg),
:where(.tpl-geo) .anp-effect:has(> svg),
:where(.tpl-geo) .bars-box:has(> svg),
:where(.tpl-geo) .cd-attorney:has(> svg),
:where(.tpl-geo) .cd-risks:has(> svg),
:where(.tpl-geo) .cr-anti:has(> svg),
:where(.tpl-geo) .ct-dontdo:has(> svg),
:where(.tpl-geo) .dl-mistakes:has(> svg),
:where(.tpl-geo) .gabs-county:has(> svg),
:where(.tpl-geo) .gl-tree__output:has(> svg),
:where(.tpl-geo) .hcd-escalation:has(> svg),
:where(.tpl-geo) .hl-callout:has(> svg),
:where(.tpl-geo) .hl-callout--good:has(> svg),
:where(.tpl-geo) .hl-callout--warn:has(> svg),
:where(.tpl-geo) .ip-calc__error:has(> svg),
:where(.tpl-geo) .ip-disambig:has(> svg),
:where(.tpl-geo) .ir-annot__why:has(> svg),
:where(.tpl-geo) .iv-mistakes:has(> svg),
:where(.tpl-geo) .llc-mistakes:has(> svg),
:where(.tpl-geo) .loi-mistakes:has(> svg),
:where(.tpl-geo) .lr-dontdo:has(> svg),
:where(.tpl-geo) .lsl-steps:has(> svg),
:where(.tpl-geo) .lsp-mistakes:has(> svg),
:where(.tpl-geo) .maf-mistakes:has(> svg),
:where(.tpl-geo) .mca-decides:has(> svg),
:where(.tpl-geo) .mca-mistakes:has(> svg),
:where(.tpl-geo) .mtd-standard:has(> svg),
:where(.tpl-geo) .nt-mistakes:has(> svg),
:where(.tpl-geo) .ool-classification:has(> svg),
:where(.tpl-geo) .ool-mistakes:has(> svg),
:where(.tpl-geo) .ptp-mistakes:has(> svg),
:where(.tpl-geo) .se-2026:has(> svg),
:where(.tpl-geo) .se-mistakes:has(> svg),
:where(.tpl-geo) .ss-callout:has(> svg),
:where(.tpl-geo) .ss-mistakes:has(> svg),
:where(.tpl-geo) .uex-fee:has(> svg),
:where(.tpl-geo) .uw-states:has(> svg),
:where(.tpl-geo) .wl-tree__node:has(> svg),
:where(.tpl-geo) .wl-tree__output:has(> svg),
:where(.tpl-geo) .wpl-consequences:has(> svg),
:where(.tpl-geo) .ws-mistakes:has(> svg) { display: flex; gap: 12px; align-items: flex-start; }
:where(.tpl-geo) .ab-mistakes > svg,
:where(.tpl-geo) .afr-callout > svg,
:where(.tpl-geo) .als-mistakes > svg,
:where(.tpl-geo) .anp-effect > svg,
:where(.tpl-geo) .cd-risks > svg,
:where(.tpl-geo) .cr-anti > svg,
:where(.tpl-geo) .ct-dontdo > svg,
:where(.tpl-geo) .dl-mistakes > svg,
:where(.tpl-geo) .hl-callout--warn > svg,
:where(.tpl-geo) .ip-calc__error > svg,
:where(.tpl-geo) .ip-disambig > svg,
:where(.tpl-geo) .iv-mistakes > svg,
:where(.tpl-geo) .llc-mistakes > svg,
:where(.tpl-geo) .loi-mistakes > svg,
:where(.tpl-geo) .lr-dontdo > svg,
:where(.tpl-geo) .lsp-mistakes > svg,
:where(.tpl-geo) .maf-mistakes > svg,
:where(.tpl-geo) .mca-mistakes > svg,
:where(.tpl-geo) .nt-mistakes > svg,
:where(.tpl-geo) .ool-classification > svg,
:where(.tpl-geo) .ool-mistakes > svg,
:where(.tpl-geo) .ptp-mistakes > svg,
:where(.tpl-geo) .se-mistakes > svg,
:where(.tpl-geo) .ss-mistakes > svg,
:where(.tpl-geo) .wpl-consequences > svg,
:where(.tpl-geo) .ws-mistakes > svg { color: var(--warn); margin-top: 2px; }
:where(.tpl-geo) :is(.ab-variant,.ab-variant--foreign,.ab-variant--late,.ab-variant--natz,.ab-variant--realid,.ab-variant--school,.ab-variant--uscis,.als-clause,.als-clause--character,.als-clause--family,.als-clause--hardship,.als-clause--marriage,.als-clause--support,.anp-clause,.anp-clause--identity,.anp-clause--notary,.anp-clause--relationship,.anp-clause--request,.anp-clause--voluntary,.audience-card,.bm-calc__card,.cd-variant,.cd-variant--contract,.cd-variant--debt,.cd-variant--defamation,.cd-variant--harassment,.cd-variant--ip,.cd-variant--social,.cdd-clause,.cdd-clause--elements,.cdd-clause--retraction,.cdd-clause--statements,.cr-judge,.ct-howto__step,.dal-clause,.dal-clause--noexcuses,.dal-clause--respect,.dal-clause--responsibility,.dal-clause--steps,.dl-variant,.dl-variant--breach,.dl-variant--deposit,.dl-variant--ip,.dl-variant--payment,.dl-variant--refund,.dl-variant--services,.dli-clause,.dli-clause--damages,.dli-clause--deadline,.dli-clause--demand,.dli-clause--facts,.dli-clause--injuries,.dli-clause--liability,.dli-math,.gl-compare__card,.gl-tree__node,.gl-usecase__card,.gmc-pos-item,.gmc-pos-item--neutral,.hcd-clause,.hcd-clause--conduct,.hcd-clause--consequences,.hcd-clause--deadline,.hcd-clause--demand,.hl-chooser__card,.hl-ev-card,.hl-factor,.hl-sample,.hw-groups,.ip-example,.ip-example--car,.ip-example--dental,.ip-example--p2p,.ir-annot__row,.ir-routing__card,.iv-variant,.iv-variant--business,.iv-variant--family,.iv-variant--medical,.iv-variant--student,.iv-variant--tourist,.iv-variant--work,.jpl-clause,.jpl-clause--ask,.jpl-clause--ready,.jpl-clause--role,.jpl-clause--wins,.kit,.kit-card,.letter-type,.llc-series,.loe-clause,.loe-clause--atwill,.loe-clause--binding,.loe-clause--comp,.loe-clause--contingent,.loe-clause--position,.loi-variant,.loi-variant--admission,.loi-variant--employment,.loi-variant--ma,.loi-variant--partnership,.loi-variant--realestate,.loi-variant--scholarship,.loi-variant--supplier,.lp-chooser__card,.lp-sample,.lr-audience__card,.lr-audience__card--bank,.lr-audience__card--employer,.lr-audience__card--family,.lr-audience__card--medical,.lr-audience__card--school,.lsl-clause,.lsp-clause,.lsp-clause--binding,.lsp-clause--contingencies,.lsp-clause--deposit,.lsp-clause--price,.lsp-clause--property,.lsp-clause--timeline,.maf-clause,.maf-clause--facts,.maf-clause--knowledge,.maf-clause--oath,.maf-clause--relationship,.mca-clause,.mca-clause--agreement,.mca-clause--refusal,.mca-clause--scope,.mtd-clause,.mtd-clause--claim,.mtd-clause--join,.mtd-clause--jurisdiction,.mtd-clause--service,.mtd-clause--venue,.nt-audience__card,.nt-audience__card--landlord,.nt-audience__card--tenant,.nt-default,.ool-clause,.ool-clause--chargeback,.ool-clause--comp,.ool-clause--control,.ool-clause--escrow,.ool-clause--insurance,.ool-clause--receipts,.pca-clause,.pca-clause--caretaker,.pca-clause--expenses,.pca-clause--schedule,.pca-clause--vet,.ppa-clause,.ppa-clause--communication,.ppa-clause--custody,.ppa-clause--decisions,.ppa-clause--dispute,.ppa-clause--exchange,.ppa-clause--schedule,.psl-tree__card,.ptp-clause,.ptp-clause--amount,.ptp-clause--default,.ptp-clause--interest,.ptp-clause--schedule,.ptp-clause--waiver,.rvl-clause,.rvl-clause--occupancy,.rvl-clause--rent,.rvl-clause--rules,.rvl-clause--space,.rvl-clause--term,.rvl-clause--termination,.se-recipient,.se-recipient--benefits,.se-recipient--court,.se-recipient--landlord,.se-recipient--mortgage,.se-recipient--sba,.se-recipient--uscis,.ss-checklist__group,.ss-sample,.ss-variant,.ss-variant--construction,.ss-variant--court,.ss-variant--hr,.ss-variant--immigration,.ss-variant--insurance,.ss-variant--military,.timeline-card,.tla-clause,.tla-clause--default,.tla-clause--identify,.tla-clause--insurance,.tla-clause--maintain,.tla-clause--rent,.tla-clause--return,.tla-clause--term,.tla-clause--use,.tn-pdfs__card,.tn-use,.usecase-card,.uw-clause,.uw-clause--consequences,.uw-clause--expectations,.uw-clause--incident,.uw-clause--plan,.uw-clause--policy,.wl-chooser__card,.wpl-clause,.wpl-clause--parties,.wpl-clause--reason,.wpl-clause--receipt,.wpl-clause--request,.wpl-clause--signature,.writer-pill,.ws-compare__col,.ws-howto__step) { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; background: #fff; border: 1px solid var(--border); border-radius: 14px; margin: 0 0 12px; list-style: none; }
:where(.tpl-geo) :is(.ab-variant__header,.ab-variant__title,.als-clause__header,.als-clause__title,.anp-clause__header,.anp-clause__title,.audience-card__h,.bars-box__title,.cd-variant__header,.cd-variant__title,.cdd-clause__header,.cdd-clause__title,.dal-clause__header,.dal-clause__title,.dl-variant__header,.dl-variant__title,.dli-clause__header,.dli-clause__title,.gl-compare__title,.gl-usecase__title,.h-rung__head,.h-rung__label,.hcd-clause__header,.hcd-clause__title,.hl-callout__title,.hl-chooser__title,.hl-ev-card__title,.hl-factor__head,.hl-sample__head,.ir-annot__label,.ir-routing__title,.iv-variant__header,.iv-variant__title,.jpl-clause__header,.jpl-clause__title,.loe-clause__header,.loe-clause__title,.loi-variant__header,.loi-variant__title,.lp-chooser__title,.lp-sample__head,.lr-audience__header,.lr-audience__title,.lsl-clause__header,.lsl-clause__title,.lsp-clause__header,.lsp-clause__title,.maf-clause__header,.maf-clause__title,.mca-clause__header,.mca-clause__title,.mtd-clause__header,.mtd-clause__title,.nt-audience__header,.nt-audience__title,.nt-default__head,.nt-default__title,.ool-clause__header,.ool-clause__title,.pca-clause__header,.pca-clause__title,.ppa-clause__header,.ppa-clause__title,.psl-tree__title,.ptp-clause__header,.ptp-clause__title,.pyramid__label,.pyramid__tier-name,.rung__head,.rung__label,.rvl-clause__header,.rvl-clause__title,.se-recipient__header,.se-recipient__title,.ss-checklist__title,.ss-sample__head,.ss-variant__header,.ss-variant__title,.timeline-card__title,.tla-clause__header,.tla-clause__title,.tn-pdfs__title,.tn-use__head,.uex-fee__title,.usecase-card__h,.uw-clause__header,.uw-clause__title,.wl-chooser__title,.wpl-clause__header,.wpl-clause__title,.writer-pill__name) { display: block; font-size: 15.5px; font-weight: 700; line-height: 1.35; color: var(--ink); margin: 0; }
:where(.tpl-geo) :is(.ab-variant__list,.ab-variant__use,.als-clause__list,.als-clause__use,.anp-clause__list,.anp-clause__use,.audience-card__sub,.bm-calc__hint,.bm-ladder__body,.cd-variant__list,.cd-variant__use,.cdd-clause__use,.dal-clause__list,.dal-clause__use,.dl-variant__list,.dl-variant__use,.dli-clause__use,.gl-compare__body,.gl-usecase__body,.h-rung__why,.hcd-clause__use,.hl-chooser__hint,.hl-ev-card__desc,.ip-example__row,.ip-example__use,.ir-routing__hint,.iv-variant__use,.jpl-clause__list,.jpl-clause__use,.kit-card__doc,.loe-clause__use,.loi-variant__list,.loi-variant__use,.lp-chooser__hint,.lp-sample__when,.lsl-clause__list,.lsl-clause__use,.lsp-clause__use,.maf-clause__list,.maf-clause__use,.mca-clause__list,.mca-clause__use,.mtd-clause__list,.mtd-clause__use,.ool-clause__use,.pca-clause__list,.pca-clause__use,.ppa-clause__list,.ppa-clause__use,.psl-tree__hint,.ptp-clause__use,.pyramid__body,.rung__why,.rvl-clause__list,.rvl-clause__use,.se-recipient__list,.se-recipient__use,.ss-variant__list,.ss-variant__use,.tla-clause__use,.tn-pdfs__hint,.tn-use__body,.uex-fee__body,.uex-fee__text,.usecase-card__sub,.uw-clause__list,.uw-clause__use,.wl-chooser__hint,.wpl-clause__use) { display: block; font-size: 14.5px; line-height: 1.55; color: var(--ink-2); margin: 0; }
:where(.tpl-geo) :is(.ab-variant__sample,.als-clause__sample,.anp-clause__sample,.bc-clause,.cd-variant__sample,.cdd-clause__sample,.cla-clause,.cr-clause,.cwl-clause,.dal-clause__sample,.dl-variant__sample,.dli-clause__sample,.hcd-clause__sample,.iou-clause,.ir-annot__sample,.iv-variant__sample,.jpl-clause__sample,.kit__doc,.loe-clause__sample,.loi-variant__sample,.lr-audience__sample,.lsl-clause__sample,.lsp-clause__sample,.maf-clause__sample,.mca-clause__sample,.mtd-clause__sample,.nt-audience__sample,.ool-clause__sample,.pca-clause__sample,.ppa-clause__sample,.ptp-clause__sample,.rvl-clause__sample,.se-recipient__sample,.ss-sample__body,.ss-variant__sample,.tla-clause__sample,.uw-clause__sample,.wpl-clause__sample) { display: block; padding: 12px 16px; background: #fff; border: 1px solid var(--border-2); border-radius: 10px; font-size: 14.5px; line-height: 1.6; color: var(--ink-2); margin: 8px 0; }
:where(.tpl-geo) :is(.ab-variant__tag,.afr-stamp,.als-clause__tag,.anp-clause__tag,.audience-card__venue,.audience-card__weight,.cd-variant__tag,.cdd-clause__tag,.cr-states__chip,.dal-clause__tag,.discretion-col__label,.dl-variant__tag,.dli-clause__tag,.gl-compare__tag,.h-rung__verdict,.hcd-clause__tag,.hl-chooser__tag,.ir-routing__tag,.iv-variant__tag,.jpl-clause__tag,.letter-type__label,.letter-type__label--self,.letter-type__label--third,.llc-series__list,.loe-clause__tag,.loi-variant__tag,.lp-chooser__tag,.lr-audience__tone,.lsl-clause__tag,.lsp-clause__tag,.maf-clause__tag,.mca-clause__tag,.mtd-clause__tag,.nt-audience__tag,.nt-default__label,.nt-state,.ool-clause__tag,.pca-clause__tag,.ppa-clause__tag,.psl-chip,.psl-tree__tag,.ptp-clause__tag,.pyramid__tier-num,.rung__verdict,.rvl-clause__tag,.se-recipient__tag,.ss-variant__tag,.tla-clause__tag,.tn-chip,.tn-pdfs__avail,.tn-pdfs__icon,.usecase-card__form,.uw-clause__tag,.wl-chooser__tag,.wpl-clause__tag,.writer-pill__weight,.ws-compare__label) { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; width: fit-content; padding: 3px 10px; border-radius: 999px; background: var(--bg-cool); color: var(--ink-2); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: 0.02em; }
:where(.tpl-geo) :is(.ab-variants,.als-scenarios,.anp-clauses,.audience-grid,.bc-clauses,.bm-calc,.cd-variants,.cdd-clauses,.cla-clauses,.dal-clauses,.dl-variants,.dli-clauses,.gl-usecase,.gmc-pos-grid,.hcd-clauses,.hl-chooser,.hl-evidence,.ip-calc__summary,.ip-examples,.ir-annot,.ir-routing,.iv-variants,.jpl-clauses,.letter-types,.loe-clauses,.loi-variants,.lp-chooser,.lr-audience,.lsl-clauses,.lsp-clauses,.maf-clauses,.mca-clauses,.mtd-clauses,.ool-clauses,.ppa-clauses,.psl-tree,.rvl-clauses,.se-recipients,.ss-variants,.tla-clauses,.tn-pdfs,.usecase-grid,.uw-clauses,.wl-chooser,.wpl-clauses,.writer-row) { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 14px 0 20px; padding: 0; list-style: none; }
:where(.tpl-geo) :is(.als-compare,.bars-box,.cd-attorney,.gabs-county,.hcd-escalation,.ir-annot__why,.lsl-steps,.mca-decides,.mtd-standard,.se-2026,.ss-callout,.uw-states) { display: block; padding: 14px 18px; background: var(--info-tint); border: 1px solid color-mix(in srgb, var(--info) 25%, transparent); border-radius: 12px; margin: 14px 0; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
:where(.tpl-geo) .als-compare > svg,
:where(.tpl-geo) .bars-box > svg,
:where(.tpl-geo) .cd-attorney > svg,
:where(.tpl-geo) .gabs-county > svg,
:where(.tpl-geo) .hcd-escalation > svg,
:where(.tpl-geo) .ir-annot__why > svg,
:where(.tpl-geo) .lsl-steps > svg,
:where(.tpl-geo) .mca-decides > svg,
:where(.tpl-geo) .mtd-standard > svg,
:where(.tpl-geo) .se-2026 > svg,
:where(.tpl-geo) .ss-callout > svg,
:where(.tpl-geo) .uw-states > svg { color: var(--info); margin-top: 2px; }
:where(.tpl-geo) .anatomy-mini { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 18px; padding: 0; list-style: none; }
:where(.tpl-geo) :is(.anatomy-mini__item,.ct-howto,.gl-tree,.indicia-grid,.indicia-item,.jpl-structure,.wl-tree,.ws-howto) { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; background: #fff; border: 1px solid var(--border); border-radius: 10px; list-style: none; }
:where(.tpl-geo) .anatomy-mini__item--good { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; background: var(--good-tint); border: 1px solid var(--border); border-radius: 10px; list-style: none; }
:where(.tpl-geo) .anatomy-mini__item--warn { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; background: var(--warn-tint); border: 1px solid var(--border); border-radius: 10px; list-style: none; }
:where(.tpl-geo) :is(.anatomy-mini__num,.bm-ladder__num,.ct-howto__num,.hl-factor__num,.indicia-num,.ws-howto__num) { flex: none; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 13px; font-weight: 700; line-height: 1; }
:where(.tpl-geo) .anatomy-mini__txt { flex: 1; min-width: 0; font-size: 15px; line-height: 1.55; color: var(--ink-2); }
:where(.tpl-geo) :is(.anp-extras,.azbs-extras,.azla-extras,.bc-extras,.cabs-extras,.cala-extras,.cdd-extras,.cla-extras,.cobs-extras,.cola-extras,.ct-extras,.ctcca-extras,.ctcfl-extras,.ctcil-extras,.ctcny-extras,.ctctx-extras,.ctcwa-extras,.cwl-extras,.dal-extras,.dl-extras,.dlca-extras,.dlfl-extras,.dli-extras,.dlil-extras,.dlny-extras,.dltx-extras,.dlwa-extras,.flbs-extras,.flla-extras,.gabs-extras,.gala-extras,.gmc-extras,.hcd-extras,.hw-extras,.ilbs-extras,.illa-extras,.iou-extras,.iv-extras,.jpl-extras,.llc-extras,.loe-extras,.loi-extras,.lr-extras,.lrnca-extras,.lrnfl-extras,.lrnil-extras,.lrnny-extras,.lrntx-extras,.lrnwa-extras,.lsl-extras,.lsp-extras,.maf-extras,.mca-extras,.mibs-extras,.mila-extras,.mtd-extras,.nt-extras,.ntvca-extras,.ntvfl-extras,.ntvil-extras,.ntvny-extras,.ntvtx-extras,.ntvwa-extras,.nybs-extras,.nyla-extras,.ohbs-extras,.ohla-extras,.ool-extras,.pca-extras,.ppa-extras,.ptp-extras,.rvl-extras,.ss-extras,.tgca-extras,.tgfl-extras,.tgil-extras,.tgny-extras,.tgtx-extras,.tgwa-extras,.tla-extras,.txbs-extras,.txla-extras,.uw-extras,.vabs-extras,.vala-extras,.wabs-extras,.wpl-extras,.ws-extras) { display: block; margin: 0 0 20px; }
:where(.tpl-geo) :is(.audience-card__weight--high,.writer-pill__weight--high) { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; width: fit-content; padding: 3px 10px; border-radius: 999px; background: var(--accent-tint); color: var(--accent); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: 0.02em; }
:where(.tpl-geo) :is(.audience-card__weight--mid,.writer-pill__weight--mid) { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; width: fit-content; padding: 3px 10px; border-radius: 999px; background: var(--amber-tint); color: var(--amber); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: 0.02em; }
:where(.tpl-geo) ul.bad { list-style: none; padding-left: 0; }
:where(.tpl-geo) ul.bad > li { position: relative; padding-left: 24px; }
:where(.tpl-geo) ul.bad > li::before { content: '\2715'; position: absolute; left: 2px; top: 0; color: var(--warn); font-weight: 700; }
:where(.tpl-geo) :is(.bc-checklist,.cwl-compare,.hw-checklist,.jpl-checklist,.maf-evidence,.mtd-note,.ss-checklist,.ss-compare) { display: block; margin: 8px 0 16px; }
:where(.tpl-geo) :is(.bm-calc__big,.ip-calc__stat-value) { display: block; font-size: 24px; font-weight: 800; line-height: 1.2; color: var(--accent); font-variant-numeric: tabular-nums; }
:where(.tpl-geo) .bm-calc__rows { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; margin: 0; }
:where(.tpl-geo) :is(.bm-ladder,.evidence-builder,.humanize,.ladder,.pyramid,.uw-sequence) { padding: 22px 22px 18px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 16px; margin: 0 0 24px; }
:where(.tpl-geo) :is(.bm-ladder__step,.h-rung,.pyramid__tier,.rung) { padding: 14px 16px; background: #fff; border: 1px solid color-mix(in srgb, var(--border) 30%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.bonus-h3,.ptp-clause-heading) { font-family: 'Source Serif 4', Georgia, serif; font-size: 20px; font-weight: 600; line-height: 1.3; color: var(--ink); margin: 28px 0 10px; }
:where(.tpl-geo) :is(.cell-high,.dl-high,.llc-high,.loi-binding,.nt-90) { background: var(--accent-tint); color: var(--accent); font-weight: 700; }
:where(.tpl-geo) :is(.cell-low,.dl-low,.llc-low,.loi-nonbinding,.nt-30) { background: var(--bg-cool); color: var(--muted); font-weight: 700; }
:where(.tpl-geo) :is(.cell-med,.dl-mid,.llc-mid,.loi-mixed,.nt-60) { background: var(--amber-tint); color: var(--amber); font-weight: 700; }
:where(.tpl-geo) :is(.cr-states,.legend-row,.nt-states-list,.psl-states,.tn-states) { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
:where(.tpl-geo) :is(.dal-dodont,.dal-dodont__grid,.discretion-split,.gl-compare,.hl-callouts,.nt-audience,.ws-compare) { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 14px 0 20px; }
:where(.tpl-geo) :is(.dal-dodont__col,.discretion-col) { padding: 16px 18px; background: #fff; border: 1px solid var(--border); border-radius: 12px; }
:where(.tpl-geo) :is(.dal-dodont__col--do,.discretion-col--moves) { padding: 16px 18px; background: var(--good-tint); border: 1px solid color-mix(in srgb, var(--good) 25%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.dal-dodont__col--dont,.discretion-col--doesnt) { padding: 16px 18px; background: var(--warn-tint); border: 1px solid color-mix(in srgb, var(--warn) 25%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.dli-clause__list,.hcd-clause__list,.hl-factor__list,.iv-variant__list,.loe-clause__list,.lr-audience__list,.lsp-clause__list,.pyramid__items,.wpl-clause__list) { list-style: none; padding-left: 0; margin: 8px 0 16px; }
:where(.tpl-geo) .dli-clause__list > li,
:where(.tpl-geo) .hcd-clause__list > li,
:where(.tpl-geo) .hl-factor__list > li,
:where(.tpl-geo) .iv-variant__list > li,
:where(.tpl-geo) .loe-clause__list > li,
:where(.tpl-geo) .lr-audience__list > li,
:where(.tpl-geo) .lsp-clause__list > li,
:where(.tpl-geo) .pyramid__items > li,
:where(.tpl-geo) .wpl-clause__list > li { position: relative; padding-left: 24px; margin-bottom: 6px; }
:where(.tpl-geo) .dli-clause__list > li::before,
:where(.tpl-geo) .hcd-clause__list > li::before,
:where(.tpl-geo) .hl-factor__list > li::before,
:where(.tpl-geo) .iv-variant__list > li::before,
:where(.tpl-geo) .loe-clause__list > li::before,
:where(.tpl-geo) .lr-audience__list > li::before,
:where(.tpl-geo) .lsp-clause__list > li::before,
:where(.tpl-geo) .pyramid__items > li::before,
:where(.tpl-geo) .wpl-clause__list > li::before { content: '\2713'; position: absolute; left: 2px; color: var(--good); font-weight: 700; }
:where(.tpl-geo) :is(.evidence-builder__head,.humanize__head,.kit-card__head,.kit__head,.ladder__head) { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 14px; }
:where(.tpl-geo) :is(.evidence-builder__icon,.faq-cta__icon,.humanize__icon,.kit-card__icon,.kit__icon,.ladder__icon) { flex: none; width: 40px; height: 40px; border-radius: 10px; background: var(--accent-tint); color: var(--accent); display: grid; place-items: center; }
:where(.tpl-geo) :is(.evidence-builder__sub,.faq-cta__sub,.humanize__sub,.kit-card__sub,.kit__sub,.ladder__sub) { font-size: 14.5px; line-height: 1.55; color: var(--muted); margin: 4px 0 0; }
:where(.tpl-geo) :is(.evidence-builder__title,.faq-cta__title,.humanize__title,.kit-card__title,.kit__title,.ladder__title) { font-family: 'Source Serif 4', Georgia, serif; font-size: 20px; font-weight: 600; line-height: 1.3; color: var(--ink); margin: 0; }
:where(.tpl-geo) .faq-card__citation { font-size: 13px; color: var(--muted); text-decoration: underline; text-underline-offset: 2px; }
:where(.tpl-geo) :is(.faq-card__sub,.faq-section__related,.hl-sample__who,.ir-routing__links,.nt-state-hint,.ptp-compare__note,.ss-matrix__note,.ss-sample__who) { display: block; font-size: 13px; line-height: 1.5; color: var(--faint); margin: 8px 0 0; }
:where(.tpl-geo) .faq-cta__copy { flex: 1; min-width: 0; }
:where(.tpl-geo) :is(.gl-tree__output,.hl-callout--good,.uex-fee,.wl-tree__output) { display: block; padding: 14px 18px; background: var(--good-tint); border: 1px solid color-mix(in srgb, var(--good) 25%, transparent); border-radius: 12px; margin: 14px 0; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
:where(.tpl-geo) .gl-tree__output > svg,
:where(.tpl-geo) .hl-callout--good > svg,
:where(.tpl-geo) .uex-fee > svg,
:where(.tpl-geo) .wl-tree__output > svg { color: var(--good); margin-top: 2px; }
:where(.tpl-geo) .gmc-pos-icon { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; width: fit-content; padding: 3px 10px; border-radius: 999px; background: var(--good-tint); color: var(--good); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: 0.02em; }
:where(.tpl-geo) :is(.h-rung--abstract,.rung--bad) { padding: 14px 16px; background: var(--warn-tint); border: 1px solid color-mix(in srgb, var(--warn) 30%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.h-rung--sensory,.rung--good) { padding: 14px 16px; background: var(--good-tint); border: 1px solid color-mix(in srgb, var(--good) 30%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.h-rung--specific,.pyramid__tier--T2,.rung--mid) { padding: 14px 16px; background: var(--amber-tint); border: 1px solid color-mix(in srgb, var(--amber) 30%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.h-rung__sample,.hl-factor__sample,.hl-sample__body,.lp-sample__body,.rung__sample,.tn-use__sample) { display: block; padding: 12px 16px; background: #fff; border: 1px solid var(--border-2); border-radius: 10px; font-size: 14.5px; line-height: 1.6; color: var(--ink-2); margin: 8px 0; font-style: italic; }
:where(.tpl-geo) :is(.hl-callout,.wl-tree__node) { display: block; padding: 14px 18px; background: var(--accent-mist); border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent); border-radius: 12px; margin: 14px 0; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
:where(.tpl-geo) .hl-callout > svg,
:where(.tpl-geo) .wl-tree__node > svg { color: var(--accent); margin-top: 2px; }
:where(.tpl-geo) .hl-ev-card__link { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
:where(.tpl-geo) :is(.humanize__rungs,.ladder__rungs) { display: flex; flex-direction: column; gap: 10px; }
:where(.tpl-geo) .ip-calc { padding: 22px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 16px; margin: 0 0 24px; }
:where(.tpl-geo) .ip-calc__field { display: flex; flex-direction: column; gap: 6px; }
:where(.tpl-geo) .ip-calc__inputs { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 12px 0 16px; }
:where(.tpl-geo) :is(.ip-calc__stat,.uex-fee__badge) { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; background: #fff; border: 1px solid var(--border); border-radius: 12px; }
:where(.tpl-geo) .ip-calc__stat-label { display: block; font-size: 12.5px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
:where(.tpl-geo) :is(.kit-card__print,.kit__print) { display: inline-flex; align-self: flex-start; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--accent-tint); background: #fff; color: var(--accent); font-size: 13.5px; font-weight: 700; text-decoration: none; }
:where(.tpl-geo) .legend-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
:where(.tpl-geo) .legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
:where(.tpl-geo) .legend-high { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: var(--accent-tint); color: var(--accent); font-size: 12.5px; font-weight: 700; }
:where(.tpl-geo) .legend-low { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: var(--bg-cool); color: var(--muted); font-size: 12.5px; font-weight: 700; }
:where(.tpl-geo) .legend-med { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: var(--amber-tint); color: var(--amber); font-size: 12.5px; font-weight: 700; }
:where(.tpl-geo) .pyramid__tier--T1 { padding: 14px 16px; background: var(--accent-tint); border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent); border-radius: 12px; }
:where(.tpl-geo) :is(.pyramid__tier--T3,.pyramid__tier--T4) { padding: 14px 16px; background: var(--bg-cool); border: 1px solid color-mix(in srgb, var(--muted) 30%, transparent); border-radius: 12px; }
:where(.tpl-geo) .timeline { display: block; margin: 12px 0 18px; }
:where(.tpl-geo) .timeline__row { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border-2); }
:where(.tpl-geo) .timeline__what { font-size: 14.5px; line-height: 1.55; color: var(--ink-2); }
:where(.tpl-geo) .timeline__when { font-size: 13px; font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; }
:where(.tpl-geo) .writer-pill__weight--low { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; width: fit-content; padding: 3px 10px; border-radius: 999px; background: var(--bg-cool); color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: 0.02em; }
:where(.tpl-geo) .ws-compare__col--bad { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; background: var(--warn-tint); border: 1px solid var(--border); border-radius: 14px; margin: 0 0 12px; list-style: none; border-color: color-mix(in srgb, var(--warn) 30%, transparent); }
:where(.tpl-geo) .ws-compare__col--good { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; background: var(--good-tint); border: 1px solid var(--border); border-radius: 14px; margin: 0 0 12px; list-style: none; border-color: color-mix(in srgb, var(--good) 30%, transparent); }

/* Cards that carry lists or long copy read better full width. */
:where(.tpl-geo) :is(.ab-variants,.als-scenarios,.anp-clauses,.audience-grid,.bc-clauses,.bm-calc,.cd-variants,.cdd-clauses,.cla-clauses,.dal-clauses,.dl-variants,.dli-clauses,.gl-usecase,.gmc-pos-grid,.hcd-clauses,.hl-chooser,.hl-evidence,.ip-calc__summary,.ip-examples,.ir-annot,.ir-routing,.iv-variants,.jpl-clauses,.letter-types,.loe-clauses,.loi-variants,.lp-chooser,.lr-audience,.lsl-clauses,.lsp-clauses,.maf-clauses,.mca-clauses,.mtd-clauses,.ool-clauses,.ppa-clauses,.psl-tree,.rvl-clauses,.se-recipients,.ss-variants,.tla-clauses,.tn-pdfs,.usecase-grid,.uw-clauses,.wl-chooser,.wpl-clauses,.writer-row):has(> * ul, > * ol, > * > ul, > * > ol) { grid-template-columns: 1fr; }

/* Empty live-region / error boxes stay hidden until they have text. */
:where(.tpl-geo) [class*='__error']:empty { display: none; }
