/* Map interface typography: component-owned standard/large pairs.
 * Loaded after map base styles, precached by sw.js.
 * Do not remap --fs-N: coordinates, canvases, print output and constrained rows
 * retain their existing contracts. Attribution is always 10px.
 * Mode values inherit through the magnifier shadow host.
 */
/* A zone: map-only component typography. No --fs-N changes.
   Inheritable variables support the magnifier shadow copy. */
:root {
  --fsc-tab: 12.5px; --fsc-tab-pad: 6px 11.5px; --fsc-tab-line: 17px;
  --fsc-menu: 14.5px; --fsc-menu-pad: 10px 11px;
  --fsc-a-chip: 13.5px; --fsc-a-chip-py: 6.5px;
  --fsc-attribution: 10px;
  --fsc-a-swatch-std: 13.5px; --fsc-a-swatch-large: 15px;
  --fsc-a-search-pad: 13.5px;
  --fsc-a-title: 18px; --fsc-a-title-sm: 17px;
  --fsc-a-strong: 15.5px; --fsc-a-body: 14.5px;
  --fsc-a-action: 13.5px; --fsc-a-note: 14px;
  --fsc-a-sub: 13px; --fsc-a-meta: 12.5px;
  --fsc-a-caption: 12px; --fsc-a-tiny: 11.5px;
  --fsc-a-cs: 12.5px;
  --fsc-a-cs-head: 13.5px; --fsc-a-cs-note: 11.5px;
  --fsc-a-perm-title: 14.5px; --fsc-a-perm-sub: 12px;
  --fsc-a-layer-legend: 12.5px; --fsc-a-layer-action: 13.5px;
  --fsc-a-guide-title: 17px; --fsc-a-guide-body: 14.5px;
  --fsc-a-oob-name: 13.5px; --fsc-a-oob-title: 14.5px;
}
html.pk-fs-large {
  --fsc-tab: 15px; --fsc-tab-pad: 4px 9px; --fsc-tab-line: 21px;
  --fsc-menu: 17px; --fsc-menu-pad: 8.5px 11px;
  --fsc-a-chip: 15px; --fsc-a-chip-py: 6px;
  --fsc-a-search-pad: 13px;
  --fsc-a-title: 19px; --fsc-a-title-sm: 18.5px;
  --fsc-a-strong: 17px; --fsc-a-body: 16px;
  --fsc-a-action: 15px; --fsc-a-note: 15.5px;
  --fsc-a-sub: 15px; --fsc-a-meta: 14.5px;
  --fsc-a-caption: 14px; --fsc-a-tiny: 13.5px;
  --fsc-a-cs: 14px;
  --fsc-a-cs-head: 14.5px; --fsc-a-cs-note: 13.5px;
  --fsc-a-perm-title: 15.5px; --fsc-a-perm-sub: 13.5px;
  --fsc-a-layer-legend: 14px; --fsc-a-layer-action: 14.5px;
  --fsc-a-guide-title: 18.5px; --fsc-a-guide-body: 16px;
  --fsc-a-oob-name: 14.5px; --fsc-a-oob-title: 16px;
}

/* Fixed header footprints: only horizontal/vertical internal room is reclaimed. */
#topbar #modeseg button { line-height: var(--fsc-tab-line); }
#btn-saved { font-size: var(--fsc-a-chip); padding: var(--fsc-a-chip-py) 9px; }
/* Tracking capsule and mobile installation button retain their original fonts:
   the real header fitter has no spare room at 320/375 when installation is shown. */
#pk-toolmenu .pktm-sec { font-size: var(--fsc-a-tiny); }
#pk-toolmenu .pktm-item .st { font-size: var(--fsc-a-caption); }

/* Attribution is the user's explicit small-text exception, in both modes. */
#sin-at { font-size: var(--fsc-attribution); }
#route-attribution .maplibregl-ctrl-attrib { font-size: var(--fsc-attribution); }

/* A-owned modal headers and search surface. Do not change shared .pkl-head globally. */
:is(#pkloc-modal,#lyrp-modal,#bm-modal,#hls-modal,#exp-modal,#ew-modal,#rgp-modal) .pkl-head h3,
#sheet h2 { font-size: var(--fsc-a-title); }
#pkloc-modal .pkl-search { font-size: max(16px,var(--fsc-a-strong)); }
#pkloc-modal .pkl-search::placeholder { font-size: var(--fsc-a-action); }
#pkloc-modal .pkl-sub { font-size: var(--fsc-a-caption); }
#pkloc-modal :is(.pkl-go,.pkl-empty) { font-size: var(--fsc-a-action); }
#pkloc-modal .pkl-go { padding-left: var(--fsc-a-search-pad); padding-right: var(--fsc-a-search-pad); }
/* Search names stay at their existing 15px: the existing ellipsis must not worsen. */

/* Offline sheet: keep the outer sheet, cards, 38px icons and action heat areas. */
#sheet .ou-meta > b { font-size: var(--fsc-a-body); }
#sheet .ou-meta span { font-size: var(--fsc-a-caption); }
#sheet .ou-btn { font-size: var(--fsc-a-action); }
#sheet .ou-hero b, #ou-permgrp .ou-grp-hd b { font-size: var(--fsc-a-strong); }
#sheet .ou-hero span { font-size: var(--fsc-a-sub); }
#sheet .ou-hero .chip { font-size: var(--fsc-a-meta); }
#ou-permgrp .ou-grp-hd .gst { font-size: var(--fsc-a-body); }
#ou-permgrp .ou-meta > b { font-size: var(--fsc-a-perm-title); }
#ou-permgrp .ou-meta span { font-size: var(--fsc-a-perm-sub); }
#ou-permgrp .ou-card { column-gap: 8px; padding-left: 10px; padding-right: 10px; }
#ou-permgrp .ou-btn { padding-left: 12px; padding-right: 12px; }
#sheet .ou-note { font-size: var(--fsc-a-action); line-height: 1.4; }
#sheet .ou-card.ou-slim .ou-meta > b,
#sheet .ou-card.ou-slim .ou-meta span { font-size: var(--fsc-a-sub); line-height: 1.4; }
#sheet .ou-card.ou-slim .ou-btn { font-size: var(--fsc-a-meta); }
#sheet .ou-maint-menu button { font-size: var(--fsc-a-body); }
#sheet .ou-jp-link b { font-size: var(--fsc-a-action); }
#sheet .ou-jp-link small, #ou-acct-del { font-size: var(--fsc-a-caption); }
#sheet .ou-jp-entry, #sheet .ou-fs-sub, #sheet .ou-sub-h, #sheet .ou-sec,
#sheet .ou-noterow .ou-btn, #sheet .ou-noterow .ou-del { font-size: var(--fsc-a-meta); }
#sheet .ou-adv-t { font-size: var(--fsc-a-action); }
/* Each swatch previews its own mode, independent of the current mode. */
#sheet #ou-fs-std { font-size: var(--fsc-a-swatch-std); }
#sheet #ou-fs-large { font-size: var(--fsc-a-swatch-large); }
#ou-fs-row .ou-note { padding-left: 6px; padding-right: 6px; }
#sheet .annc-it .tx b { font-size: var(--fsc-a-action); }
#sheet .annc-it .tx span { font-size: var(--fsc-a-caption); }
#sheet .annc-it .tx .dt { font-size: var(--fsc-a-tiny); }
/* Source/license prose in .ou-src is intentionally untouched. */

/* Layer footer has only 280px at a 320px viewport; conservative local values. */
#lyrp-modal .lyrp-row .lyrp-nm { font-size: var(--fsc-a-body); }
#lyrp-modal .lyrp-row .lyrp-sub { font-size: var(--fsc-a-caption); }
#lyrp-modal .lyrp-legend { font-size: var(--fsc-a-layer-legend); }
#lyrp-modal .lyrp-foot .ou-btn { font-size: var(--fsc-a-layer-action); padding-left: 11px; padding-right: 11px; }

/* Bottom-map list, overlay list, satellite picker and Japan regions. */
#bm-modal :is(.bm-ovl-head,.ovl-sec) { font-size: var(--fsc-a-body); }
#bm-modal .bm-ovl-head span { font-size: var(--fsc-a-caption); }
#bm-modal .cs-entry-sub, #bm-modal .bm-dl { font-size: var(--fsc-a-meta); }
#bm-modal .cs-entry .st { font-size: var(--fsc-a-tiny); }
/* Both list renderers emit an inline --fs-12 font-size on this exact subtitle.
   Scoped !important is required until that renderer migrates to a semantic class. */
#bm-modal :is(.bm-row,.ovl-row) .pkl-row-main > span { font-size: var(--fsc-a-meta) !important; }
#bm-modal .bm-row > span { font-size: var(--fsc-a-action) !important; }
#bm-modal .ovl-cat { font-size: var(--fsc-a-sub); }
#bm-modal .ovl-cat span { font-size: var(--fsc-a-caption); }
#bm-modal .pkl-row-main > b, #hls-modal .pkl-row-main > b { font-size: max(16px,var(--fsc-a-strong)); }
#hls-modal .hls-sub { font-size: var(--fsc-a-meta); }
#hls-modal .hls-note { font-size: var(--fsc-a-action); }
#hls-modal .hls-foot { font-size: var(--fsc-a-caption); }
#rgp-modal :is(.rg-nm) { font-size: var(--fsc-a-body); }
#rgp-modal :is(.rg-sub,.rgp-warn,.rgp-leg,.rgp-selh,.rg-msg,.rg-graph,.rg-line,.rgp-foot) { font-size: var(--fsc-a-caption); }
#rgp-modal :is(.rg-size,.rg .ou-btn.sm,.rg .ou-del) { font-size: var(--fsc-a-meta); }
#rgp-modal :is(.rgp-seg button,.rgp-grp,.rg-confirm) { font-size: var(--fsc-a-sub); }
#rgp-modal .rg-prog { font-size: var(--fsc-a-tiny); }
#jp-view-title { font-size: var(--fsc-a-title); }
#jp-view-dialog :is(#jp-view-info,.ou-btn) { font-size: var(--fsc-a-action); }

/* CS is width-constrained: do not enlarge the 34px numeric slot or fixed segment controls. */
#cs-card .rc-head b { font-size: var(--fsc-a-cs-head); }
#cs-card .cs-lab { font-size: var(--fsc-a-cs); }
#cs-card :is(.cs-note,.cs-key) { font-size: var(--fsc-a-cs-note); }
/* Satellite date, bm-chip and map-edge labels stay unchanged pending geometry work. */

/* Peek settings: keep the fixed 272/300px shell and existing scrolling. */
#peek-pop .pp-row { font-size: var(--fsc-a-body); }
#peek-pop #peek-pct { font-size: var(--fsc-a-action); }
#peek-pop .pp-hint { font-size: var(--fsc-a-note); line-height: 1.4; }
#peek-pop #peek-close { font-size: var(--fsc-a-strong); }
#peek-pop #peek-layers .ou-btn { font-size: var(--fsc-a-meta); }

/* Exploration text, including the still-active guide independent of story-strip. */
:is(#exp-modal,#ew-modal) .expl-head { font-size: var(--fsc-a-note); }
:is(#exp-modal,#ew-modal) :is(.expl-head b,.expl-swrow .nm) { font-size: var(--fsc-a-strong); }
:is(#exp-modal,#ew-modal) :is(.expl-sec,.expl-swrow .sb,.expl-mate .meta) { font-size: var(--fsc-a-meta); }
:is(#exp-modal,#ew-modal) .expl-line { font-size: var(--fsc-a-body); }
:is(#exp-modal,#ew-modal) :is(.expl-mute,.expl-legend,.ou-btn) { font-size: var(--fsc-a-action); }
:is(#exp-modal,#ew-modal) .expl-mate .nm { font-size: var(--fsc-a-strong); }
:is(#exp-modal,#ew-modal) .expl-upd { font-size: var(--fsc-a-note); }
:is(#exp-modal,#ew-modal) .expl-foot { font-size: var(--fsc-a-caption); }
#story-guide-tt { font-size: var(--fsc-a-guide-title); }
#story-guide-tx { font-size: var(--fsc-a-guide-body); }
#story-guide-go { font-size: var(--fsc-a-strong); }
#story-guide-later { font-size: var(--fsc-a-body); }

/* OOB selector preserves its small-map geometry and two-column region list. */
#oob-hint { font-size: var(--fsc-a-action); }
#oob-hint > b, #oob-hint .oob-tile i { font-size: var(--fsc-a-oob-title); }
#oob-hint > span, #oob-hint .oob-q > i { font-size: var(--fsc-a-sub); }
#oob-hint .oob-bs button { font-size: var(--fsc-a-note); }
#oob-hint .oob-list button { font-size: var(--fsc-a-oob-name); }
#oob-hint.oob-jp { padding-top: 12px; padding-bottom: 6px; }
/* Small-map SVG, numbered dots, captions remain at the existing geometry contract. */

/* Only hand-card controls, never generated art or SVG output. */
#sc-card .sc-btns button, #story-summary .ss-ok { font-size: var(--fsc-a-strong); }
#sc-card .sc-note { font-size: var(--fsc-a-tiny); }
#sc-export .se-note { font-size: var(--fsc-a-caption); }
#sc-export .se-btns button { font-size: var(--fsc-a-body); }
#sc-export .se-hint { font-size: var(--fsc-a-tiny); }
.annc-pop-title { font-size: var(--fsc-a-title-sm); }
.annc-pop-md { font-size: var(--fsc-a-strong); }
.annc-pop-tag { font-size: var(--fsc-a-meta); }
.annc-pop-meta, .annc-pop-md .md-img-miss { font-size: var(--fsc-a-sub); }

/* Duplicate IDs intentionally beat the module's later injected stylesheet without !important. */
#pkbm-sheet#pkbm-sheet .pkbm-hd { font-size: var(--fsc-a-caption); }
#pkbm-sheet#pkbm-sheet button { font-size: var(--fsc-a-strong); }
#pk-mag-set#pk-mag-set { font-size: var(--fsc-a-sub); }
#pk-mag-set#pk-mag-set .t { font-size: var(--fsc-a-note); }
#pk-mag-set#pk-mag-set .r b { font-size: var(--fsc-a-caption); }
#pk-mag-set#pk-mag-set .sg button { font-size: var(--fsc-a-meta); }
#pk-mag-set#pk-mag-set .ok { font-size: var(--fsc-a-action); }
#pk-mag-set#pk-mag-set .hint { font-size: var(--fsc-a-tiny); }
/* First-run magnifier teaching row remains unchanged: 118px content vs 124px lens field. */

/* B: tracking, identity and check-in surfaces. Map-only; preserve boxes and hit areas.
   Cropped summaries, marker location row, status strip and tracking subline keep
   their existing sizes until their width/measurement contracts are changed. */
:root {
  --fsc-track-title: 17.5px;
  --fsc-track-title-small: 16px;
  --fsc-track-login-title: 16px;
  --fsc-track-main: 15.5px;
  --fsc-track-toggle: 15.5px;
  --fsc-track-checkin: 14.5px;
  --fsc-track-body: 13.5px;
  --fsc-track-secondary: 12.5px;
  --fsc-track-detail: 12px;
  --fsc-track-tiny: 11.5px;
  --fsc-track-item: 14px;
  --fsc-track-button: 13.5px;
  --fsc-track-input: 16.5px;
  --fsc-track-label: 13px;
  --fsc-track-card-action: 14.5px;
  --fsc-track-menu: 14px;
  --fsc-track-quick: 15.5px;
}
html.pk-fs-large {
  --fsc-track-title: 19px;
  --fsc-track-title-small: 17.5px;
  --fsc-track-login-title: 16.5px;
  --fsc-track-main: 17px;
  --fsc-track-toggle: 16.5px;
  --fsc-track-checkin: 16px;
  --fsc-track-body: 15px;
  --fsc-track-secondary: 14.5px;
  --fsc-track-detail: 14px;
  --fsc-track-tiny: 13.5px;
  --fsc-track-item: 15.5px;
  --fsc-track-button: 15px;
  --fsc-track-input: 17.5px;
  --fsc-track-label: 15px;
  --fsc-track-card-action: 16px;
  --fsc-track-menu: 15.5px;
  --fsc-track-quick: 17px;
}

/* Main card: enlarge the actions without amplifying their second lines. */
#reportpanel .rp-head b { font-size: var(--fsc-track-main, 15.5px); }
#rp-toggle { font-size: var(--fsc-track-toggle, 15.5px); }
#rp-checkin { font-size: var(--fsc-track-checkin, 14.5px); }
/* The wide layout puts its hint on the same line: keep that button's width
   budget, so increasing it cannot shrink the neighbouring tracking hit area. */
@media (min-width: 381px) {
  #rp-checkin { font-size: var(--fs-14, 14px); }
}
#reportpanel :is(.rp-gate-lead, .rp-authwait) { font-size: var(--fsc-track-label, 13px); }
#reportpanel :is(.rp-gate-note, .rp-gate-hint) { font-size: var(--fsc-track-tiny, 11.5px); }
#reportpanel .rp-gate-email { font-size: var(--fsc-track-button, 13.5px); }

/* B-owned dialogs only; generic pkDialog and GPX/PDF belong to other zones. */
:is(#rp-page-modal, #rp-name-modal, #rp-offline-created, #rp-set-modal,
    #rp-sat-modal, #rp-link-modal, #rp-share-modal, #rp-note-modal,
    #rp-photo-modal, #rp-login, #rp-email, #rp-guide, #rp-consent,
    #rp-bgdisc, #rp-bgalways, #rp-battopt, #rp-disclaimer, #rp-del-modal)
  .rp-consent-card h3 { font-size: var(--fsc-track-title, 17.5px); }
:is(#rp-page-modal, #rp-name-modal, #rp-offline-created, #rp-set-modal,
    #rp-sat-modal, #rp-link-modal, #rp-share-modal, #rp-note-modal,
    #rp-photo-modal, #rp-login, #rp-email, #rp-guide, #rp-consent,
    #rp-bgdisc, #rp-bgalways, #rp-battopt, #rp-disclaimer)
  .rp-consent-lead { font-size: var(--fsc-track-body, 13.5px); }
:is(#rp-page-modal, #rp-name-modal, #rp-offline-created, #rp-set-modal,
    #rp-sat-modal, #rp-link-modal, #rp-note-modal, #rp-photo-modal,
    #rp-email, #rp-guide, #rp-consent, #rp-bgdisc, #rp-bgalways,
    #rp-battopt, #rp-disclaimer)
  :is(.rp-consent-ok, .rp-consent-cancel) { font-size: var(--fsc-track-button, 13.5px); }

/* Page list names remain unchanged: existing ellipsis is already at its limit. */
#rp-page-modal .rp-hero-title { font-size: var(--fsc-track-title-small, 16px); }
#rp-page-modal .rp-hero-meta { font-size: var(--fsc-track-body, 13.5px); }
#rp-page-modal .rp-hero-meta code { font-size: var(--fsc-track-label, 13px); }
#rp-page-modal .rp-hero-me-v { font-size: var(--fsc-track-main, 15.5px); }
#rp-page-modal .rp-hero-me.wait .rp-hero-me-v { font-size: var(--fsc-track-label, 13px); }
#rp-page-modal :is(.rp-sec-lb, .rp-foot-note, .rp-page-label) { font-size: var(--fsc-track-tiny, 11.5px); }
#rp-page-modal :is(.rp-hero-empty, .rp-quiet, .rp-quiet button) { font-size: var(--fsc-track-label, 13px); }
#rp-page-modal :is(.rp-bot-new, .rp-bot-join) { font-size: var(--fsc-track-button, 13.5px); }
#rp-page-modal .rp-join-hint { font-size: var(--fsc-track-body, 13.5px); line-height: 1.3; }
#rp-page-modal .rp-code-in { font-size: var(--fsc-track-input, 16.5px); }
#rp-page-modal .rp-code-in::placeholder { font-size: var(--fsc-track-body, 13.5px); }
#rp-name-modal .rp-name-in, #rp-link-modal .rp-name-in,
#rp-email .rp-name-in { font-size: var(--fsc-track-input, 16.5px); }
#rp-name-modal .rp-name-note { font-size: var(--fsc-track-item, 14px); line-height: 1.4; }
#rp-name-modal .rp-sat-sec h4,
#rp-name-modal .rp-sat-ask .sub { font-size: var(--fsc-track-detail, 12px); }
#rp-name-modal .rp-sat-auto { font-size: var(--fsc-track-label, 13px); }
#rp-name-modal .rp-sat-ask .tx { font-size: var(--fsc-track-body, 13.5px); }
#rp-name-modal .rp-sat-always { font-size: var(--fsc-track-tiny, 11.5px); }

/* Settings: do not steal width from the long inReach value with a larger label. */
#rp-set-modal .rp-id { font-size: var(--fsc-track-detail, 12px); overflow-wrap: anywhere; }
#rp-set-modal .rp-sat-sub { font-size: var(--fsc-track-detail, 12px); }
#rp-set-modal .rp-modal-tips { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-set-modal .rp-modal-tips .rp-tips-note { font-size: var(--fsc-track-detail, 12px); }
#rp-set-modal .rp-power-desc { font-size: var(--fsc-track-tiny, 11.5px); }
#rp-sat-modal .rp-sat-res { font-size: var(--fsc-track-label, 13px); }
#rp-sat-modal .rp-sat-hint { font-size: var(--fsc-track-detail, 12px); }
#rp-sat-modal .rp-sat-field input { font-size: var(--fsc-track-input, 16.5px); }

/* Share accordions stay mutually exclusive; QR artwork keeps its own size. */
#rp-share-modal .rp-share-acct b { font-size: var(--fsc-track-card-action, 14.5px); }
#rp-share-modal :is(.rp-share-acct small, .rp-share-pvl, .rp-share-qr-cap) { font-size: var(--fsc-track-detail, 12px); }
#rp-share-modal .rp-share-lead { font-size: var(--fsc-track-label, 13px); }
#rp-share-modal .rp-share-prev { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-share-modal .rp-share-do { font-size: var(--fsc-track-item, 14px); }
#rp-share-modal .rp-share-ghost button { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-share-modal .rp-consent-cancel { font-size: var(--fsc-track-card-action, 14.5px); }

/* Check-in composer: keep the location row and measured flag/header contracts. */
#rp-note-modal .rp-note-ta { font-size: var(--fsc-track-input, 16.5px); }
#rp-note-modal .rp-note-count { font-size: var(--fsc-track-tiny, 11.5px); }
#rp-note-modal .rp-note-meta { font-size: var(--fsc-track-detail, 12px); }
#rp-note-modal .rp-note-seg-b { font-size: var(--fsc-track-button, 13.5px); }
#rp-note-modal .rpq-c { font-size: var(--fsc-track-label, 13px); }
#rp-note-modal .rpq-hint { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-note-modal .rp-cmp-b { font-size: var(--fsc-track-item, 14px); }
#rp-note-modal .rp-cmp-max { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-note-modal :is(.rp-cmp-lb, .rp-cmp-tm) { font-size: var(--fsc-track-tiny, 11.5px); }
#rp-note-modal .rp-cmp-note { font-size: var(--fsc-track-detail, 12px); }
#rp-note-modal .rp-consent-acts .rp-consent-ok { font-size: var(--fsc-track-main, 15.5px); }
/* Keep the cancel width: its growth would shrink the adjacent primary target. */
#rp-note-modal .rp-consent-acts .rp-consent-cancel { font-size: var(--fs-13, 13px); }
#rp-note-modal :is(.rp-note-list-h, .rp-note-empty) { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-note-modal .rp-note-it { font-size: var(--fsc-track-label, 13px); }
#rp-note-modal .rp-note-it .tm { font-size: var(--fsc-track-tiny, 11.5px); }
#rp-note-modal .rp-note-it button { font-size: var(--fsc-track-detail, 12px); }
#rp-note-modal .rp-alt-tx b { font-size: var(--fsc-track-card-action, 14.5px); }
#rp-note-modal .rp-alt-tx small { font-size: var(--fsc-track-detail, 12px); }
#rp-note-modal .rp-guided-note { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-mk-bar .rp-mk-bar-t { font-size: var(--fsc-track-item, 14px); }
#rp-mk-bar .rp-mk-bar-s { font-size: var(--fsc-track-detail, 12px); }
#rp-mk-bar .rp-mk-ok { font-size: var(--fsc-track-main, 15.5px); }
#rp-note-menu .rp-nm-tx b { font-size: var(--fsc-track-menu, 14px); }
#rp-note-menu .rp-nm-tx span { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-note-menu .rp-nm-tag { font-size: var(--fsc-track-label, 13px); }
#rp-note-tip { font-size: var(--fsc-track-label, 13px); }

/* Identity and consent text. Reading-to-end behavior remains with the page. */
#rp-login :is(.rpl-google, .rpl-apple) { font-size: var(--fsc-track-main, 15.5px); }
/* Single-line login title is already at its 320px width limit. */
#rp-login .rpl-top { font-size: var(--fsc-track-login-title, 16px); padding-inline: 12px; }
#rp-login .rpl-other-t { font-size: var(--fsc-track-item, 14px); }
#rp-login :is(.rpl-offline, .rpl-cancel), #rp-share-modal .rpl-cancel { font-size: var(--fsc-track-card-action, 14.5px); }
#rp-login :is(.rpl-note, .rp-login-msg) { font-size: var(--fsc-track-secondary, 12.5px); }
#rp-login .rp-login-email-btn { font-size: var(--fsc-track-button, 13.5px); }
#rp-email .rp-email-typo { font-size: var(--fsc-track-label, 13px); }
#rp-wait .rp-wait-txt { font-size: var(--fsc-track-main, 15.5px); }
#rp-guide .rp-guide-item { font-size: var(--fsc-track-body, 13.5px); }
#rp-guide .rp-guide-item b { font-size: var(--fsc-track-item, 14px); }
:is(#rp-bgdisc, #rp-bgalways, #rp-battopt) .rp-bgdisc-list { font-size: var(--fsc-track-body, 13.5px); }
#rp-consent .rp-consent-item { font-size: var(--fsc-track-label, 13px); }
#rp-consent .rp-email-warn { font-size: var(--fsc-track-secondary, 12.5px); }

/* Capsule sheet keeps its 208px width; status gets a proportional line-height. */
#rcap-sheet .rcap-st { font-size: var(--fsc-track-label, 13px); line-height: 1.25; }
#rcap-sheet .rcap-item { font-size: var(--fsc-track-menu, 14px); padding-inline: 7px; }

/* Garmin uses the actual block .bp-* page shell. No global .bp-* overrides. */
#wear-page .wr-h { font-size: var(--fsc-track-secondary, 12.5px); }
#wear-page .wr-row { font-size: var(--fsc-track-body, 13.5px); }
#wear-page .wr-row .k { min-width: calc(6.5 * var(--fs-13, 13px)); }
#wear-page .wr-note { font-size: var(--fsc-track-secondary, 12.5px); }
#wear-page .wr-mirror { font-size: var(--fsc-track-body, 13.5px); }
#wear-page .wr-mirror b { font-size: var(--fsc-track-main, 15.5px); }
#wear-page .wr-btn { font-size: var(--fsc-track-button, 13.5px); }
#qc-overlay :is(.qc-sub, .qc-btn) { font-size: var(--fsc-track-quick, 15.5px); }

#rp-photo-modal .rpph-pick-b { font-size: var(--fsc-track-item, 14px); }
#rp-photo-modal .rpph-sum { font-size: var(--fsc-track-body, 13.5px); }
#rp-phv .rp-phv-ct { font-size: var(--fsc-track-body, 13.5px); }
#rp-phv-cap .sub { font-size: var(--fsc-track-secondary, 12.5px); }
/* Exact dynamic account-delete ul has an inline size. Preserve its long action
   buttons: enlargement makes the destructive action wrap in a narrow row. */
#rp-del-modal .rp-consent-card > ul { font-size: var(--fsc-track-item, 14px) !important; }

/* C: map-only typography. Keep --fs-N meanings and inherit all mode choices.
   Tight route header, A/B coordinate trigger, print summary, route-summary
   ellipsis and canvas/PDF output intentionally retain their existing sizes. */
:root {
  --fsc-route-micro: 11.5px;
  --fsc-route-small: 12px;
  --fsc-route-caption: 12.5px;
  --fsc-route-meta: 13px;
  --fsc-route-label: 13.5px;
  --fsc-route-copy: 14px;
  --fsc-route-body: 14.5px;
  --fsc-route-choice: 15px;
  --fsc-route-action: 15.5px;
  --fsc-route-input: 16.5px;
  --fsc-route-title: 17.5px;
  --fsc-route-print-main: 16.5px;
  --fsc-route-pdf-action: 15.5px;
  --fsc-route-sheet-meta: 12px;
  --fsc-route-form: 16px;
  --fsc-route-work-caption: 11px;
  --fsc-route-menu-note: 12.5px;
  --fsc-route-legend: 13.5px;
}
html.pk-fs-large {
  --fsc-route-micro: 13.5px;
  --fsc-route-small: 14px;
  --fsc-route-caption: 14.5px;
  --fsc-route-meta: 15px;
  --fsc-route-label: 15px;
  --fsc-route-copy: 15.5px;
  --fsc-route-body: 16px;
  --fsc-route-choice: 16px;
  --fsc-route-action: 17px;
  --fsc-route-input: 18px;
  --fsc-route-title: 19px;
  --fsc-route-print-main: 17px;
  --fsc-route-pdf-action: 16px;
  --fsc-route-sheet-meta: 13.5px;
  --fsc-route-form: 17px;
  --fsc-route-work-caption: 13px;
  --fsc-route-menu-note: 13.5px;
  --fsc-route-legend: 14px;
}

/* Finding / route: the packed header and 16px coordinate triggers stay stable. */
#routepanel .rt-hint { font-size: var(--fsc-route-caption); }
#routepanel .rt-tip, #routepanel .rt-tip-more { font-size: var(--fsc-route-label); }
#routepanel .rt-tip .rt-kbd { font-size: var(--fsc-route-small); }
#routepanel .rt-leg-d { font-size: var(--fsc-route-action); }
#routepanel .rt-leg-u, #routepanel .rt-leg-c { font-size: var(--fsc-route-meta); }
/* Three/four route action buttons keep their fonts: real SVGs already fill
   the 320px row, and enlarging them would consume their inner spacing. */
/* Two-column legend body keeps its current large size; 15px added 333px
   scrolling at 320px. Heading/section labels still increase. */
#rt-go-chip .ri-legend { font-size: var(--fsc-route-legend); }
#rt-go-chip .ri-legend-head b { font-size: var(--fsc-route-action); }
#rt-go-chip .ri-legend-sec { font-size: var(--fsc-route-meta); }

/* GPX lists keep their existing scrolling limits and row actions. */
#gpxpanel .gpx-hd b { font-size: var(--fsc-route-body); }
#gpxpanel .gpx-cnt { font-size: var(--fsc-route-small); }
#gpxpanel .gpx-hd button { font-size: var(--fsc-route-meta); }
#gpxpanel .trip-note { font-size: var(--fsc-route-small); }
#gpxpanel .trip-src { font-size: var(--fsc-route-meta); line-height: 1.35; }
#gpx-sheet .gsh h4 { font-size: var(--fsc-route-action); }
#gpx-sheet .gsh .gsh-sub { font-size: var(--fsc-route-caption); }
#gpx-sheet .gsh-opt b { font-size: var(--fsc-route-choice); }
#gpx-sheet .gsh-opt small { font-size: var(--fsc-route-sheet-meta); }

/* Coordinate sheet styles are injected later; the wrap prefix wins locally.
   Preserve monospace inputs/outputs and the existing 18/21px primary result. */
.pkcu-wrap .pkcu-sheet h3 { font-size: var(--fsc-route-title); }
.pkcu-wrap .pkcu-sub { font-size: var(--fsc-route-action); line-height: 1.43; }
.pkcu-wrap .pkcu-in { font-size: var(--fsc-route-input); }
.pkcu-wrap .pkcu-sysrow, .pkcu-wrap .pkcu-syshint,
.pkcu-wrap .pkcu-alt, .pkcu-wrap .pkcu-out-sub { font-size: var(--fsc-route-label); }
.pkcu-wrap .pkcu-sysrow select, .pkcu-wrap .pkcu-sys,
.pkcu-wrap .pkcu-lead { font-size: var(--fsc-route-body); }
.pkcu-wrap .pkcu-syshint { line-height: 1.5; }
.pkcu-wrap .pkcu-acts button { font-size: var(--fsc-route-action); }
.pkcu-wrap .pkcu-meta, .pkcu-wrap .pkcu-orig,
.pkcu-wrap .pkcu-orig code, .pkcu-wrap .pkcu-chk,
.pkcu-wrap .pkcu-note, .pkcu-wrap .pkcu-warn { font-size: var(--fsc-route-meta); }
.pkcu-wrap .pkcu-badge { font-size: var(--fsc-route-small); }
.pkcu-wrap .pkcu-out-lbl, .pkcu-wrap .pkcu-alts .pkcu-k2 { font-size: var(--fsc-route-micro); }
.pkcu-wrap .pkcu-alt .ad { font-size: var(--fsc-route-caption); }

/* Editor/planner: component selectors work in the magnifier shadow clone too. */
:is(body,.pkmag-body).gpx-editing .ed-topstrip .ed-name { font-size: var(--fsc-route-input); }
:is(body,.pkmag-body).gpx-editing .ed-topstrip .ed-mtabs button { font-size: var(--fsc-route-copy); }
:is(body,.pkmag-body).gpx-editing .ed-topstrip .ed-mtabs button small { font-size: var(--fsc-route-work-caption); }
:is(body,.pkmag-body).gpx-editing .ed-done, :is(body,.pkmag-body).gpx-planning .pl-done { font-size: var(--fsc-route-body); }
:is(body,.pkmag-body).gpx-editing .ed-moremenu button { font-size: var(--fsc-route-copy); }
:is(body,.pkmag-body).gpx-editing .ed-moremenu button small { font-size: var(--fsc-route-small); }
:is(body,.pkmag-body).gpx-editing .ed-fabs.v2 button { font-size: var(--fsc-route-small); }
#gpxed-sheet .ed-infocard, #gpxed-sheet .ed-degraded,
#gpxed-sheet .ed-trimsug { font-size: var(--fsc-route-meta); }
#gpxed-sheet .ed-trimcopy button { font-size: var(--fsc-route-label); }
#gpxed-sheet .ed-trimcopy button small { font-size: var(--fsc-route-small); }
/* Fine-step numeric row is held: five-digit values already crowd 320px. */
:is(body,.pkmag-body).gpx-planning .pl-tip { font-size: var(--fsc-route-label); }
:is(body,.pkmag-body).gpx-planning .pl-tip .h { font-size: var(--fsc-route-small); }
.pl-addmenu b { font-size: var(--fsc-route-choice); }
.pl-addmenu small { font-size: var(--fsc-route-menu-note); }
.pl-fin .pl-fin-h { font-size: var(--fsc-route-title); }
.pl-fin .pl-fin-btn b { font-size: var(--fsc-route-action); }
.pl-fin .pl-fin-btn small, .pl-fin .pl-fin-st,
.pl-fin .pl-fin-cancel span { font-size: var(--fsc-route-caption); }
.pl-fin .pl-fin-cancel { font-size: var(--fsc-route-action); }
.pl-fin .pl-fin-cf p, .pl-fin .ed-receipt { font-size: var(--fsc-route-label); }
.pl-fin .ed-receipt .dim { font-size: var(--fsc-route-caption); }
.pl-fin .pl-fin-cf button { font-size: var(--fsc-route-body); }
.wp-wrap .wp-hd b { font-size: var(--fsc-route-input); }
.wp-wrap .wp-hd small, .wp-wrap .wp-f > span,
.wp-wrap .wp-note, .wp-wrap .wp-t small,
.wp-wrap .wp-ph-hd { font-size: var(--fsc-route-small); }
.wp-wrap .wp-f input, .wp-wrap .wp-f textarea { font-size: var(--fsc-route-form); }
.wp-wrap .wp-t b { font-size: var(--fsc-route-copy); }
.wp-wrap .wp-acts button, .wp-wrap .wp-view-acts button { font-size: var(--fsc-route-copy); }

/* Print frame depends on the main panel height. Do not change its rows or
   the summary line; the main CTA retains its fixed 22px line box. */
#pp-cta .l1 { font-size: var(--fsc-route-print-main); }
.pps .pps-head h3 { font-size: var(--fsc-route-title); }
.pps .pps-gt { font-size: var(--fsc-route-choice); }
.pps .pps-gd { font-size: var(--fsc-route-meta); }
.rp-consent .ppx-lb { font-size: var(--fsc-route-copy); }
.rp-consent .ppx-sub { font-size: var(--fsc-route-caption); }
/* Four grid choices retain their original font and touch boxes. */

/* Exact map caller annotations; !important only replaces known inline fonts. */
.pkd-gpx-wpt .gpxw-title { font-size: var(--fsc-route-input) !important; }
.pkd-gpx-wpt .gpxw-row > span:first-child { font-size: var(--fsc-route-meta) !important; }
.pkd-gpx-wpt .gpxw-row > span:last-child { font-size: var(--fsc-route-choice); }
.pkd-gpx-wpt .gpxw-ck { font-size: var(--fsc-route-small); }
.pkd-pdf-delivery .pdf-delivery-note { font-size: var(--fsc-route-label) !important; }
.rp-consent.pkd.pkd-pdf-delivery .pkd-acts button { font-size: var(--fsc-route-pdf-action); }

/* Tools and reading surfaces. Fixed map/canvas/output lettering keeps its own scale. */
:root {
  --fsc-tool-title: 17px; --fsc-tool-strong: 16px;
  --fsc-tool-body: 14.5px; --fsc-tool-small: 13px;
  --fsc-tool-note: 12px; --fsc-tool-fine: 11px;
  --fsc-tool-input: 16.5px; --fsc-tool-action: 15.5px;
  --fsc-gpx-search-input: 16px; --fsc-wear-body: 12.5px;
  --fsc-sos-title: 17.5px; --fsc-sos-body: 15.5px;
  --fsc-wiz-body: 16.5px; --fsc-wiz-caption: 13px;
  --fsc-wiz-perm: 14.5px; --fsc-wiz-primary: 17px;
}
html.pk-fs-large {
  --fsc-tool-title: 18px; --fsc-tool-strong: 17px;
  --fsc-tool-body: 16px; --fsc-tool-small: 14.5px;
  --fsc-tool-note: 13.5px; --fsc-tool-fine: 12.5px;
  --fsc-tool-input: 18px; --fsc-tool-action: 17px;
  --fsc-gpx-search-input: 17px; --fsc-wear-body: 14.5px;
  --fsc-sos-title: 19px; --fsc-sos-body: 16.5px;
  --fsc-wiz-body: 17.5px; --fsc-wiz-caption: 14.5px;
  --fsc-wiz-perm: 16px; --fsc-wiz-primary: 18px;
}

/* Keep scientific time tables, coordinate rows and canvas labels on their measured scale. */
#sun-info .sun-note, #sun-info .sun-tz { font-size: var(--fsc-tool-note, 12px); }
#compass-overlay .co-nosensor { font-size: var(--fsc-tool-small, 13px); line-height: 1.45; }
#compass-overlay .co-diag { font-size: var(--fsc-tool-note, 12px); }
#compass-overlay .co-loc-title { font-size: var(--fsc-tool-small, 13px); }
#compass-overlay .co-gnss-src, #compass-overlay .co-gnss-l5 { font-size: var(--fsc-tool-note, 12px); }
#rv-page .rv-title, #baro-page .bp-title, #sos-page .bp-title { font-size: var(--fsc-tool-title, 17px); }
#rv-page .rv-pt-row, #rv-page .rv-mini, #rv-page .rv-zoom #rv-z-all { font-size: var(--fsc-tool-small, 13px); }
#rv-page .rv-tz, #rv-page .rv-tb-lab, #rv-page .rv-t-status { font-size: var(--fsc-tool-note, 12px); }
#rv-page .rv-note { font-size: var(--fsc-tool-small, 13px); line-height: 1.4; }
#mc-overlay .mc-go { font-size: var(--fsc-tool-action, 15.5px); }
#rcap-sheet .rcap-lead { font-size: var(--fsc-track-secondary, 12.5px); }
/* Story reading grows inside the existing scroll area; notes and sources keep their scale. */
#rv-lore .rv-lore-now { font-size: var(--fsc-tool-small, 13px); }
#rv-lore .rv-lore-t h3 { font-size: var(--fsc-tool-title, 17px); }
#rv-lore .rv-lore-lead, #rv-lore .rv-lore-sec p:not([class]) { font-size: var(--fsc-tool-body, 14.5px); }
#rv-pick #rv-pick-q { font-size: var(--fsc-tool-input, 16.5px); }
#rv-pick .rv-pick-it b { font-size: var(--fsc-tool-body, 14.5px); }
#rv-pick .rv-pick-it .tp, #rv-pick .rv-pick-it .ds { font-size: var(--fsc-tool-note, 12px); }
#rv-peek .rv-peek-it { font-size: var(--fsc-tool-body, 14.5px); }
#rv-peek .rv-peek-it span { font-size: var(--fsc-tool-note, 12px); }
#baro-page .bp-live, #baro-page .bp-seg button, #baro-page .bp-btn,
#baro-page .bp-disp summary, #baro-page .bp-learn summary { font-size: var(--fsc-tool-small, 13px); }
#baro-page .bp-trend-row, #baro-page #baro-guide, #baro-page .bp-foot { font-size: var(--fsc-tool-small, 13px); line-height: 1.4; }
#baro-page .bp-stat .k, #baro-page .bp-disp-note, #baro-page .bp-disp-row .k,
#baro-page .bp-chart-cap, #baro-page #baro-hint { font-size: var(--fsc-tool-note, 12px); line-height: 1.4; }
#baro-page .bp-bg-title { font-size: var(--fsc-tool-body, 14.5px); }
#baro-page #baro-bg-card, #baro-page .bp-learn .bd { font-size: var(--fsc-tool-small, 13px); }
#resectionpanel .rs-head b { font-size: var(--fsc-tool-strong, 16px); }
#resectionpanel .rs-result { font-size: var(--fsc-tool-small, 13px); }
#resectionpanel .rs-done, #resectionpanel .rs-add { font-size: var(--fsc-tool-small, 13px); }
#radar-card .rc-head b { font-size: var(--fsc-tool-body, 14.5px); }
#radar-card .rc-sub, #radar-card .rc-basis { font-size: var(--fsc-tool-note, 12px); }
#radar-card .rc-foot { font-size: var(--fsc-tool-note, 12px); }
#tm-pick-modal .tm-pk-nm, #tm-pick-modal .tm-pk-na { font-size: var(--fsc-tool-small, 13px); }
#tm-pick-modal #tm-pick-all { font-size: var(--fsc-tool-body, 14.5px); }
#tm-strip #tm-cur-y { font-size: var(--fsc-tool-title, 17px); }
#tm-strip #tm-cur-n { font-size: var(--fsc-tool-note, 12px); }
.rp-consent[data-sigpick] .sigpick-all { font-size: var(--fsc-tool-title, 17px); }
.rp-consent[data-sigpick] .sigpick-btn { font-size: var(--fsc-tool-strong, 16px); }
.rp-consent[data-sigpick] .sigpick-lead { font-size: var(--fsc-tool-body, 14.5px); line-height: 1.45; }
.rp-consent[data-sigpick] .sigpick-note { font-size: var(--fsc-tool-note, 12px); }

/* Camera controls only: photo, sign and annotation output sizes are unchanged. */
#pk-cam .pkc-sheet-h, #pk-cam #pkc-rv-head { font-size: var(--fsc-tool-strong, 16px); }
#pk-cam .pkc-field > span, #pk-cam .pkc-sheet-note, #pk-cam .pkg-sub { font-size: var(--fsc-tool-small, 13px); }
#pk-cam .pkc-field input { font-size: var(--fsc-tool-input, 16.5px); }
#pk-cam .pkc-sheet-btn:not(.pkg-skip), #pk-cam #pkc-rv-btns button { font-size: var(--fsc-tool-action, 15.5px); }
#pk-cam .pkg-leg, #pk-cam #pkc-note { font-size: var(--fsc-tool-note, 12px); }
#pk-cam .pkc-check { font-size: var(--fsc-tool-body, 14.5px); }
#pk-retro .pkc-btn { font-size: var(--fsc-tool-body, 14.5px); }

/* Emergency reading hierarchy; existing large telephone and coordinate numerals stay intact. */
#sos-page .sos-sms-text { font-size: var(--fsc-tool-input, 16.5px); }
#sos-page .sos-pick-h { font-size: var(--fsc-tool-title, 17px); }
#sos-page .sos-pick-opt b, #sos-page .sos-pick-acts .bp-btn { font-size: var(--fsc-tool-action, 15.5px); }
#sos-page .sos-sit-h .n, #sos-page .scene-result h3 { font-size: var(--fsc-sos-title, 17.5px); }
#sos-page .sos-h, #sos-page .scenario-intro, #sos-page .sos-note,
#sos-page .sos-sit-h .lead, #sos-page .sos-blk-t { font-size: var(--fsc-tool-body, 14.5px); line-height: 1.4; }
#sos-page .scenario-intro, #sos-page .sos-note { line-height: 1.6; }
#sos-page .sos-sit-h .lead { line-height: 1.55; }
#sos-page .sos-call .what { font-size: var(--fsc-tool-body, 14.5px); }
#sos-page .sos-call .note { font-size: var(--fsc-tool-small, 13px); line-height: 1.4; }
#sos-page .scene-context > summary, #sos-page .scene-resources > summary,
#sos-page .scene-sources > summary, #sos-page .scene-field legend,
#sos-page .sos-chip, #sos-page .sos-q-t { font-size: var(--fsc-tool-body, 14.5px); }
#sos-page .sos-steps li, #sos-page .sos-dont li, #sos-page .scene-warning { font-size: var(--fsc-sos-body, 15.5px); }
#sos-page .sos-urgent .t, #sos-page .sos-urgent li, #sos-page .sos-urgent p { font-size: var(--fsc-tool-strong, 16px); }
#sos-page .scene-priority .sos-urgent p { font-size: var(--fsc-tool-strong, 16px); }
#sos-page .scene-sources p { font-size: var(--fsc-tool-small, 13px); }
#sos-page .scene-context > summary > small, #sos-page .scene-resources .resource-meta,
#sos-page .result-caption, #sos-page .sos-src { font-size: var(--fsc-tool-small, 13px); }
#sos-page .scene-steps b, #sos-page .scene-diagrams figcaption h4 { font-size: var(--fsc-tool-strong, 16px); }
#sos-page .scene-steps p, #sos-page .scene-firstaid p { font-size: var(--fsc-sos-body, 15.5px); }
#sos-page .scene-context-note, #sos-page .scene-diagrams .step-note,
#sos-page .scene-dialog-description, #sos-page .scene-dialog-text, #sos-page .scene-dialog-status { font-size: var(--fsc-tool-body, 14.5px); }
#sos-page .scene-sources a, #sos-page .scene-diagrams figcaption { font-size: var(--fsc-tool-small, 13px); }

/* Dynamic dialogs have their own selectors so later injected CSS keeps its geometry. */
:root { --fsc-dialog-body: 15px; }
html.pk-fs-large { --fsc-dialog-body: 16px; }
.rp-consent.pkd .pkd-body { font-size: var(--fsc-dialog-body, 15px); }
.rp-consent.pkd .pkd-acts button, .rp-consent.pkd .pkd-extra-btn { font-size: var(--fsc-tool-action, 15.5px); }
.pkbr-backdrop .pkbr-head__title, .pkbr-backdrop .pkbr-done__title { font-size: var(--fsc-tool-title, 17px); }
.pkbr-backdrop .pkbr-ta, .pkbr-backdrop .pkbr-email { font-size: var(--fsc-tool-input, 16.5px); }
.pkbr-backdrop .pkbr-contact__lb { font-size: var(--fsc-tool-body, 14.5px); line-height: 1.4; }
.pkbr-backdrop .pkbr-note, .pkbr-backdrop .pkbr-count { font-size: var(--fsc-tool-note, 12px); }
.pkbr-backdrop .pkbr-send { font-size: var(--fsc-tool-action, 15.5px); }
.pkbr-backdrop .pkbr-done__sub { font-size: var(--fsc-tool-body, 14.5px); }
.pkann .pkann-head h2 { font-size: var(--fsc-tool-title, 17px); }
.pkann .pkann-tools button { font-size: var(--fsc-tool-body, 14.5px); }
.pkann .pkann-status, .pkann .pkann-actions button, .pkann .pkann-selection button { font-size: var(--fsc-tool-small, 13px); }

/* Onboarding text: preserve 22px headings, fixed demonstration cards and the navigation structure. */
#pk-wiz .pk-wiz-in > p, #pk-wiz #wz-head > p, #pk-wiz .pk-wiz-plan { font-size: var(--fsc-wiz-body, 16.5px); }
#pk-wiz .pk-wiz-perm-hd .tx b, #pk-wiz .pk-wiz-perm ol { font-size: var(--fsc-wiz-perm, 14.5px); }
#pk-wiz .pk-wiz-perm-hd .tx span { font-size: var(--fsc-wiz-caption, 13px); line-height: 1.35; }
#pk-wiz .pk-wiz-set { font-size: var(--fsc-wiz-caption, 13px); padding: 8px 13px; min-width: 58px; }
#pk-wiz .pk-wiz-notice, #pk-wiz .pk-wiz-notice p, #pk-wiz .pk-wiz-notice ul { font-size: var(--fsc-tool-body, 14.5px); }
#pk-wiz button.pk-wiz-primary { font-size: var(--fsc-wiz-primary, 17px); padding-block: 14.5px; min-height: 48px; }
#pk-wiz .pk-wiz-note, #pk-wiz .pk-wiz-sub, #pk-wiz .pk-wiz-hint { font-size: var(--fsc-wiz-caption, 13px); }
/* The one-line mode hint has a 272px budget at 320px. Preserve the visible Next action.
   r1465: the font-size step is the demo (#wz-fs-demo) now; the old two-card rules went with the cards. */
#pk-wiz .pk-wiz-in:has(#wz-fs-demo) > p { font-size: var(--fs-16-5, 16.5px); }
#pk-wiz .pk-wiz-in:has(#wz-fs-demo) .pk-wiz-top { margin-bottom: 20px; }

/* Application messages; only map loads this sheet, shared pages keep their defaults. */
/* The update pill is already ellipsized at narrow widths; only enlarge when the whole sentence fits. */
@media (min-width: 375px) {
  div#pk-update-banner { font-size: var(--fsc-tool-body, 14.5px); }
}
.pk-pwa-mask .pk-pwa-card h3 { font-size: var(--fsc-sos-title, 17.5px); }
.pk-pwa-mask .pk-pwa-lead { font-size: var(--fsc-tool-body, 14.5px); }
.pk-pwa-mask .pk-pwa-lead[style] { font-size: var(--fsc-tool-small, 13px) !important; }
.pk-pwa-mask .pk-pwa-install-btn { font-size: var(--fsc-tool-strong, 16px); }
div.lbh-modal h3 { font-size: var(--fsc-sos-title, 17.5px); }
div.lbh-modal .lbh-subtitle { font-size: var(--fsc-tool-body, 14.5px); }
div.lbh-modal .lbh-ext-btn { font-size: var(--fsc-tool-strong, 16px); }
#legend-ov .lg-hd b, #legend-ov .lg-tx b { font-size: var(--fsc-tool-small, 13px); }
#legend-ov .lg-sec, #legend-ov .lg-tx span { font-size: var(--fsc-tool-note, 12px); }
