/* Generated APP token namespace; edit tenant_tokens.css and regenerate. */
:root {
  --nf-t-accent: #b5202e;
  --nf-t-accent-active: #8f1824;
  --nf-t-accent-dim: #d3ddeb;
  --nf-t-accent-hover: #c62838;
  --nf-t-accent-text: #b5202e;
  --nf-t-admin-accent: #6d5cae;
  --nf-t-bg: #e0e9f1;
  --nf-t-border: #b9c5d8;
  --nf-t-control-active: #d3ddeb;
  --nf-t-control-bg: #ffffff;
  --nf-t-control-border: #8595af;
  --nf-t-control-disabled-bg: #edf1f7;
  --nf-t-control-disabled-text: #6f7d98;
  --nf-t-control-hover: #f1f3f9;
  --nf-t-control-min: 44px;
  --nf-t-control-pad-x: 12px;
  --nf-t-control-pad-y: 8px;
  --nf-t-control-shadow: 0 1px 2px rgba(15, 26, 55, 0.12);
  --nf-t-danger: #b54a2a;
  --nf-t-danger-active: #82331d;
  --nf-t-danger-hover: #9d3e23;
  --nf-t-display-1: clamp(3rem, 2.648rem + 1.5vw, 4rem);
  --nf-t-display-2: clamp(2.5rem, 2.324rem + 0.75vw, 3rem);
  --nf-t-display-3: clamp(1.75rem, 1.486rem + 1.13vw, 2.5rem);
  --nf-t-display-4: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
  --nf-t-display-5: clamp(1.25rem, 1.074rem + 0.75vw, 1.75rem);
  --nf-t-display-6: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  --nf-t-elev-hero: 0 12px 30px rgba(15, 26, 55, 0.12);
  --nf-t-elev-panel: 0 1px 2px rgba(15, 26, 55, 0.05);
  --nf-t-focus: #0b6bcb;
  --nf-t-focus-halo: #ffffff;
  --nf-t-focus-ring-inset: -2px;
  --nf-t-focus-ring-offset: 2px;
  --nf-t-focus-ring-width: 2px;
  --nf-t-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --nf-t-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --nf-t-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --nf-t-hero-campaigns-a: #d21a42;
  --nf-t-hero-campaigns-b: #892fda;
  --nf-t-hero-catalog-a: #09796f;
  --nf-t-hero-catalog-b: #095e75;
  --nf-t-hero-crm-a: #03679e;
  --nf-t-hero-crm-b: #2461e7;
  --nf-t-hero-docs-a: #4f46e5;
  --nf-t-hero-docs-b: #475569;
  --nf-t-hero-events-a: #0171ab;
  --nf-t-hero-events-b: #1e54cb;
  --nf-t-hero-finances-a: #0e7c37;
  --nf-t-hero-finances-b: #077067;
  --nf-t-hero-insights-a: #2461e7;
  --nf-t-hero-insights-b: #7a39e9;
  --nf-t-hero-listings-a: #bb4507;
  --nf-t-hero-listings-b: #b41538;
  --nf-t-hero-pricing-a: #a35803;
  --nf-t-hero-pricing-b: #b04006;
  --nf-t-hero-solicitations-a: #892fda;
  --nf-t-hero-solicitations-b: #b323c5;
  --nf-t-hero-workspace-a: #475569;
  --nf-t-hero-workspace-b: #334155;
  --nf-t-hue-catalog: #0f766e;
  --nf-t-hue-info: #1668c4;
  --nf-t-hue-live: #0e7490;
  --nf-t-hue-neutral: #475569;
  --nf-t-hue-portfolio: #4f46e5;
  --nf-t-hue-priced: #b45309;
  --nf-t-hue-progress: #c2410c;
  --nf-t-hue-sold: #15803d;
  --nf-t-input-bg: #ffffff;
  --nf-t-layer-chrome: 100;
  --nf-t-layer-overlay: 300;
  --nf-t-layer-raised: 1;
  --nf-t-layer-scrim: 290;
  --nf-t-layer-skip: 400;
  --nf-t-leading-none: 1;
  --nf-t-leading-normal: 1.5;
  --nf-t-leading-relaxed: 1.65;
  --nf-t-leading-snug: 1.35;
  --nf-t-leading-tight: 1.2;
  --nf-t-motion: 0.12s;
  --nf-t-motion-slow: 0.18s;
  --nf-t-nav-bg: #11100f;
  --nf-t-nav-border: #2f2b28;
  --nf-t-nav-hover: #2b2926;
  --nf-t-nav-muted: #aaa399;
  --nf-t-nav-text: #f3f1ec;
  --nf-t-notification-unread: rgba(181, 32, 46, 0.08);
  --nf-t-on-accent: #ffffff;
  --nf-t-on-accent-edge: rgba(255, 255, 255, 0.36);
  --nf-t-on-accent-faint: rgba(255, 255, 255, 0.92);
  --nf-t-on-accent-muted: rgba(255, 255, 255, 0.92);
  --nf-t-on-accent-plate: rgba(20, 16, 26, 0.40);
  --nf-t-on-danger: #ffffff;
  --nf-t-on-plate: #0f1a37;
  --nf-t-overlay-bg: #ffffff;
  --nf-t-plate: #ffffff;
  --nf-t-popover-shadow: 0 14px 36px rgba(15, 26, 55, 0.18);
  --nf-t-radius: 10px;
  --nf-t-radius-lg: 14px;
  --nf-t-radius-md: 12px;
  --nf-t-radius-sm: 6px;
  --nf-t-scrim: rgba(15, 26, 55, 0.38);
  --nf-t-shadow: 0 1px 0 rgba(15, 26, 55, 0.06);
  --nf-t-side-w: 232px;
  --nf-t-space-1: 4px;
  --nf-t-space-2: 8px;
  --nf-t-space-3: 12px;
  --nf-t-space-4: 16px;
  --nf-t-space-5: 24px;
  --nf-t-space-6: 32px;
  --nf-t-spotlight-a: #fff7ed;
  --nf-t-spotlight-b: #f3e8ff;
  --nf-t-spotlight-c: #ddd6fe;
  --nf-t-success: #1f8a4c;
  --nf-t-success-text: #176839;
  --nf-t-surface: #ffffff;
  --nf-t-surface-raised: #ffffff;
  --nf-t-text: #0f1a37;
  --nf-t-text-2xl: 20px;
  --nf-t-text-2xs: 11px;
  --nf-t-text-3xl: 24px;
  --nf-t-text-4xl: 28px;
  --nf-t-text-5xl: 32px;
  --nf-t-text-6xl: 40px;
  --nf-t-text-lg: 16px;
  --nf-t-text-md: 14px;
  --nf-t-text-muted: #4a5878;
  --nf-t-text-sm: 13px;
  --nf-t-text-xl: 18px;
  --nf-t-text-xs: 12px;
  --nf-t-topbar-bg: #ffffff;
  --nf-t-topbar-h: 56px;
  --nf-t-warn: #c98a14;
  --nf-t-warn-text: #81580d;
  --nf-t-weight-black: 800;
  --nf-t-weight-bold: 700;
  --nf-t-weight-medium: 500;
  --nf-t-weight-regular: 400;
  --nf-t-weight-semibold: 600;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --nf-t-accent-dim: #3a1a1e;
    --nf-t-accent-text: #ef7a83;
    --nf-t-admin-accent: #9a8dd2;
    --nf-t-bg: #0a1120;
    --nf-t-border: #2b3d60;
    --nf-t-control-active: #2b3d5d;
    --nf-t-control-bg: #1d2d4d;
    --nf-t-control-border: #60779b;
    --nf-t-control-disabled-bg: #152039;
    --nf-t-control-disabled-text: #8794b0;
    --nf-t-control-hover: #253555;
    --nf-t-control-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
    --nf-t-danger: #d9724c;
    --nf-t-danger-active: #b85737;
    --nf-t-danger-hover: #e78361;
    --nf-t-elev-hero: 0 12px 30px rgba(0, 0, 0, 0.28);
    --nf-t-elev-panel: 0 1px 2px rgba(0, 0, 0, 0.12);
    --nf-t-focus: #8fb0ff;
    --nf-t-focus-halo: #0a1120;
    --nf-t-hue-catalog: #0d9488;
    --nf-t-hue-info: #58a6ff;
    --nf-t-hue-live: #06b6d4;
    --nf-t-hue-neutral: #64748b;
    --nf-t-hue-portfolio: #818cf8;
    --nf-t-hue-priced: #f59e0b;
    --nf-t-hue-progress: #f97316;
    --nf-t-hue-sold: #22c55e;
    --nf-t-input-bg: #0c162a;
    --nf-t-nav-bg: #07090e;
    --nf-t-nav-border: #2b3d60;
    --nf-t-nav-hover: #161c2a;
    --nf-t-nav-muted: #a9b6d1;
    --nf-t-nav-text: #eef2fa;
    --nf-t-on-danger: #000000;
    --nf-t-overlay-bg: #111b30;
    --nf-t-popover-shadow: 0 14px 36px rgba(3, 6, 14, 0.28);
    --nf-t-scrim: rgba(3, 6, 14, 0.72);
    --nf-t-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
    --nf-t-spotlight-a: #88660e;
    --nf-t-spotlight-b: #8e47d1;
    --nf-t-spotlight-c: #4c1d95;
    --nf-t-success-text: #55c98a;
    --nf-t-surface: #111b30;
    --nf-t-surface-raised: #182642;
    --nf-t-text: #eef2fa;
    --nf-t-text-muted: #a9b6d1;
    --nf-t-topbar-bg: #111b30;
    --nf-t-warn-text: #c98a14;
  }
}
:root[data-theme="dark"] {
  --nf-t-accent-dim: #3a1a1e;
  --nf-t-accent-text: #ef7a83;
  --nf-t-admin-accent: #9a8dd2;
  --nf-t-bg: #0a1120;
  --nf-t-border: #2b3d60;
  --nf-t-control-active: #2b3d5d;
  --nf-t-control-bg: #1d2d4d;
  --nf-t-control-border: #60779b;
  --nf-t-control-disabled-bg: #152039;
  --nf-t-control-disabled-text: #8794b0;
  --nf-t-control-hover: #253555;
  --nf-t-control-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
  --nf-t-danger: #d9724c;
  --nf-t-danger-active: #b85737;
  --nf-t-danger-hover: #e78361;
  --nf-t-elev-hero: 0 12px 30px rgba(0, 0, 0, 0.28);
  --nf-t-elev-panel: 0 1px 2px rgba(0, 0, 0, 0.12);
  --nf-t-focus: #8fb0ff;
  --nf-t-focus-halo: #0a1120;
  --nf-t-hue-catalog: #0d9488;
  --nf-t-hue-info: #58a6ff;
  --nf-t-hue-live: #06b6d4;
  --nf-t-hue-neutral: #64748b;
  --nf-t-hue-portfolio: #818cf8;
  --nf-t-hue-priced: #f59e0b;
  --nf-t-hue-progress: #f97316;
  --nf-t-hue-sold: #22c55e;
  --nf-t-input-bg: #0c162a;
  --nf-t-nav-bg: #07090e;
  --nf-t-nav-border: #2b3d60;
  --nf-t-nav-hover: #161c2a;
  --nf-t-nav-muted: #a9b6d1;
  --nf-t-nav-text: #eef2fa;
  --nf-t-on-danger: #000000;
  --nf-t-overlay-bg: #111b30;
  --nf-t-popover-shadow: 0 14px 36px rgba(3, 6, 14, 0.28);
  --nf-t-scrim: rgba(3, 6, 14, 0.72);
  --nf-t-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
  --nf-t-spotlight-a: #88660e;
  --nf-t-spotlight-b: #8e47d1;
  --nf-t-spotlight-c: #4c1d95;
  --nf-t-success-text: #55c98a;
  --nf-t-surface: #111b30;
  --nf-t-surface-raised: #182642;
  --nf-t-text: #eef2fa;
  --nf-t-text-muted: #a9b6d1;
  --nf-t-topbar-bg: #111b30;
  --nf-t-warn-text: #c98a14;
}
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }
/* Generated portal aliases from shared_tokens.json; do not edit.
 * Load after the native surface styles and shared/style_tokens.css.
 * Both selectors outrank authored theme roots without changing layout.
 */
html:root[data-theme],
html:root:not([data-theme]) {
  --nf-accent: var(--nf-t-accent-text);
  --nf-accent-fg: var(--nf-t-on-accent);
  --nf-band: var(--nf-t-surface-raised);
  --nf-bg: var(--nf-t-bg);
  --nf-bg-deep: var(--nf-t-bg);
  --nf-border: var(--nf-t-border);
  --nf-card: var(--nf-t-surface-raised);
  --nf-chip: var(--nf-t-control-bg);
  --nf-chip-ink: var(--nf-t-text-muted);
  --nf-control-border: var(--nf-t-control-border);
  --nf-control-min: var(--nf-t-control-min);
  --nf-control-pad-x: var(--nf-t-control-pad-x);
  --nf-control-pad-y: var(--nf-t-control-pad-y);
  --nf-cream: var(--nf-t-bg);
  --nf-cta-bg: var(--nf-t-accent);
  --nf-cta-edge: var(--nf-t-accent);
  --nf-cta-fg: var(--nf-t-on-accent);
  --nf-cta-plate: var(--nf-t-surface-raised);
  --nf-display-1: var(--nf-t-display-1);
  --nf-display-2: var(--nf-t-display-2);
  --nf-display-3: var(--nf-t-display-3);
  --nf-display-4: var(--nf-t-display-4);
  --nf-display-5: var(--nf-t-display-5);
  --nf-display-6: var(--nf-t-display-6);
  --nf-display-ink: var(--nf-t-text);
  --nf-fg: var(--nf-t-text);
  --nf-focus: var(--nf-t-focus);
  --nf-focus-halo: var(--nf-t-focus-halo);
  --nf-focus-ring-inset: var(--nf-t-focus-ring-inset);
  --nf-focus-ring-offset: var(--nf-t-focus-ring-offset);
  --nf-focus-ring-width: var(--nf-t-focus-ring-width);
  --nf-font-body: var(--nf-t-font-body);
  --nf-font-mono: var(--nf-t-font-mono);
  --nf-footer-bg: var(--nf-t-surface);
  --nf-footer-ink: var(--nf-t-text);
  --nf-footer-muted: var(--nf-t-text-muted);
  --nf-frame-line: var(--nf-t-border);
  --nf-gutter: var(--nf-t-bg);
  --nf-hero-ink: var(--nf-t-text);
  --nf-hero-ink-soft: var(--nf-t-text-muted);
  --nf-hero-plane: var(--nf-t-surface);
  --nf-hero-plate: var(--nf-t-surface-raised);
  --nf-ink: var(--nf-t-text);
  --nf-ink-soft: var(--nf-t-text-muted);
  --nf-layer-chrome: var(--nf-t-layer-chrome);
  --nf-layer-overlay: var(--nf-t-layer-overlay);
  --nf-layer-raised: var(--nf-t-layer-raised);
  --nf-layer-skip: var(--nf-t-layer-skip);
  --nf-leading-none: var(--nf-t-leading-none);
  --nf-leading-normal: var(--nf-t-leading-normal);
  --nf-leading-relaxed: var(--nf-t-leading-relaxed);
  --nf-leading-snug: var(--nf-t-leading-snug);
  --nf-leading-tight: var(--nf-t-leading-tight);
  --nf-motion: var(--nf-t-motion);
  --nf-motion-slow: var(--nf-t-motion-slow);
  --nf-muted: var(--nf-t-text-muted);
  --nf-plate-ink: var(--nf-t-text);
  --nf-plate-ink-soft: var(--nf-t-text-muted);
  --nf-plate-red-text: var(--nf-t-accent-text);
  --nf-plate-stock: var(--nf-t-surface-raised);
  --nf-radius-card: var(--nf-t-radius-lg);
  --nf-radius-ctl: var(--nf-t-radius);
  --nf-radius-panel: var(--nf-t-radius-lg);
  --nf-red-text: var(--nf-t-accent-text);
  --nf-shadow-panel: var(--nf-t-elev-panel);
  --nf-space-1: var(--nf-t-space-1);
  --nf-space-2: var(--nf-t-space-2);
  --nf-space-3: var(--nf-t-space-3);
  --nf-space-4: var(--nf-t-space-4);
  --nf-space-5: var(--nf-t-space-5);
  --nf-space-6: var(--nf-t-space-6);
  --nf-step-bg: var(--nf-t-surface-raised);
  --nf-stroke: var(--nf-t-border);
  --nf-surface: var(--nf-t-surface);
  --nf-surface-2: var(--nf-t-surface-raised);
  --nf-text-2xl: var(--nf-t-text-2xl);
  --nf-text-2xs: var(--nf-t-text-2xs);
  --nf-text-3xl: var(--nf-t-text-3xl);
  --nf-text-4xl: var(--nf-t-text-4xl);
  --nf-text-5xl: var(--nf-t-text-5xl);
  --nf-text-6xl: var(--nf-t-text-6xl);
  --nf-text-lg: var(--nf-t-text-lg);
  --nf-text-md: var(--nf-t-text-md);
  --nf-text-sm: var(--nf-t-text-sm);
  --nf-text-xl: var(--nf-t-text-xl);
  --nf-text-xs: var(--nf-t-text-xs);
  --nf-weight-black: var(--nf-t-weight-black);
  --nf-weight-bold: var(--nf-t-weight-bold);
  --nf-weight-medium: var(--nf-t-weight-medium);
  --nf-weight-regular: var(--nf-t-weight-regular);
  --nf-weight-semibold: var(--nf-t-weight-semibold);
}
/* Canonical universal site bar. Stack adapters only place this component. */
:root {
  /* The physical gap on every main-content edge is intentionally larger than
     the interior rhythm. Keeping this separate prevents a wider canvas from
     inflating card gaps while the rail, topbar and content edges stay aligned. */
  --nf-content-edge-gap: var(--nf-t-space-6);
  --nf-layout-gap: var(--nf-t-space-4);
  /* Card collections use this shared floor instead of fixed column counts.
     The browser adds tracks when space permits and wraps whole cards before
     their content becomes cramped. */
  --nf-content-card-min: 18rem;
  --nf-content-card-max: 25rem;
  /* Stable ink for reviewed dark photos and illustration plates. It is
     intentionally independent of page and accent palettes. */
  --nf-graphic-ink: #fff5e8;
  --nf-graphic-ink-muted: #ddd2e2;
}

/* #9495 — left navigation remains pure black in light, dark, and device
 * appearance. This shared shell source is emitted into APP, TALK, CP, SHOP,
 * Demo, portal, and gallery theme assets, so no surface can keep a faded rail. */
:root { --nf-global-navigation-bg: #000000; }
:root,
:root[data-theme],
:root[data-theme="light"],
:root[data-theme="dark"],
:root:not([data-theme]) {
  --nf-t-nav-bg: var(--nf-global-navigation-bg);
  --nav-bg: var(--nf-global-navigation-bg);
  --nf-rail: var(--nf-global-navigation-bg);
  --d-sidebar-background: var(--nf-global-navigation-bg);
}
@media (max-width: 820px) {
  :root { --nf-layout-gap: var(--nf-t-space-3); }
}

/* SHOP shares the rail-to-content geometry of every authenticated shell.
   These rules stay here rather than in the storefront sheet so the global
   layout contract has one owner. */
.nf-public-store__main {
  width: calc(100% - (2 * var(--nf-content-edge-gap)));
  margin-inline: var(--nf-content-edge-gap);
  padding-block: var(--nf-content-edge-gap);
}
.nf-public-store__grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--nf-content-card-min)), var(--nf-content-card-max)));
  justify-content: start;
  max-inline-size: calc((3 * var(--nf-content-card-max)) + (2 * var(--nf-layout-gap)));
}
@media (max-width: 820px) {
  .nf-public-store__main {
    gap: var(--nf-t-space-5);
  }
  .nf-public-store__grid { gap: var(--nf-t-space-4); }
}

/* One outer rhythm: the rail-to-content gap is a physical four-edge inset.
   Route blocks may arrange their children but cannot add a second outer margin. */
body #nf-tenant-app[data-nf-shell-structure="static"] .nf-content > main#nf-main {
  box-sizing: border-box;
  padding: var(--nf-content-edge-gap);
}
#nf-tenant-app :is(#nf-view-root, .nf-page-rhythm, [data-nf3615-home],
  [data-nf3983-marketing-body], [data-nf4001-finances-body],
  [data-nf3992-insights-body], [data-nf4018-crm-body].nf-crm-body--rhythm) {
  gap: var(--nf-layout-gap);
}
#nf-tenant-app :is(#nf-view-root, .nf-page-rhythm,
  [data-nf3983-marketing-body], [data-nf4001-finances-body],
  [data-nf3992-insights-body], [data-nf4018-crm-body].nf-crm-body--rhythm) > * {
  margin-block: 0;
}
#nf-tenant-app .nf-drill-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: var(--nf-t-space-3);
  align-items: start;
}
#nf-tenant-app .nf-drill-val {
  white-space: nowrap;
  min-width: max-content;
}
#nf-tenant-app .nf-drill-val--muted { white-space: normal; min-width: 0; }
#nf-tenant-app :is(.nf-field textarea, textarea.nf-input, textarea.nf-textarea) {
  min-block-size: 6em;
  padding-block: var(--nf-t-space-2);
  resize: vertical;
}
#nf-tenant-app .nf-drill-row:has(> .nf-drill-val--muted) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
@media (max-width: 600px) {
  #nf-tenant-app .nf-drill-row:has(> .nf-drill-val--muted) {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--nf-t-space-1);
  }
  #nf-tenant-app .nf-drill-val--muted { text-align: start; }
  #nf-tenant-app .nf-ebaystore-card {
    flex-direction: column;
    align-items: stretch;
    gap: var(--nf-layout-gap);
    padding: var(--nf-t-space-4);
  }
  #nf-tenant-app .nf-ebaystore-main,
  #nf-tenant-app .nf-ebaystore-main > div { min-width: 0; }
  #nf-tenant-app .nf-ebaystore-btn {
    align-self: stretch;
    width: auto;
    text-align: center;
    justify-content: center;
  }
  #nf-tenant-app .nf-drill-panel { padding: var(--nf-t-space-4); }
}

body[data-nf-navigation-open="true"],
body:has([data-nf-navigation-open="true"]) { overflow: hidden; }

/* Discourse landing pages consume the same outer rhythm as APP. */
body:is(.navigation-topics, .navigation-categories, .navigation-category) #main-outlet {
  padding-block: var(--nf-content-edge-gap);
}
body:is(.navigation-topics, .navigation-categories, .navigation-category) #nf-module-hero {
  margin-block: 0 var(--nf-layout-gap);
}
body:is(.navigation-topics, .navigation-categories, .navigation-category) .list-controls > .container::before,
body:is(.navigation-topics, .navigation-categories, .navigation-category) .list-controls > .container::after {
  /* Native clearfix boxes become empty, spaced items in the flex toolbar. */
  content: none;
}
body:is(.navigation-topics, .navigation-categories, .navigation-category) .navigation-container {
  margin-block: 0;
}
body:is(.navigation-topics, .navigation-categories, .navigation-category) #category-events-calendar {
  margin-block: var(--nf-layout-gap);
}
body:is(.navigation-topics, .navigation-categories, .navigation-category) #category-events-calendar:not(:has(.fc-event)) {
  min-block-size: 0;
  padding: var(--nf-t-space-3) var(--nf-t-space-4);
}
body:is(.navigation-topics, .navigation-categories, .navigation-category) #list-area { margin-bottom: 0; }
body .search-container button.btn.advanced-filters__toggle {
  /* Discourse marks this text-labelled button as no-text. */
  width: auto;
  inline-size: auto;
  min-width: var(--nf-t-control-min);
  max-width: 100%;
}
@media (max-width: 820px) {
  body.navigation-categories .category-list.with-topics table.topic-list {
    table-layout: fixed;
    width: 100%;
  }
  body.navigation-categories .category-list.with-topics table.topic-list th.main-link {
    width: 85%;
  }
  body.navigation-categories .category-list :is(.badge-category__wrapper,
    .badge-category, .badge-category__name) {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  body.navigation-categories .category-list .badge-category {
    border-radius: var(--nf-t-radius);
  }
}

#nf-crossnav {
  /* The product switcher is intentionally quieter than a workspace toolbar.
     Its logo and account outlet stay full-size internally, while the bar itself
     uses the compact desktop rhythm that frames the app and forum chrome.
     Owner 2026-09-12: the strip is black on every site and in every theme, so
     it reads as the one global bar above each product's own header. */
  --nf-crossnav-bg: #000;
  --nf-crossnav-control: var(--nf-t-control-min);
  /* This bar is black in every appearance. Keep its ink local to the black
     surface instead of inheriting page text roles from Light or seasonal
     palettes. These two graphic-ink roles are also available to reviewed dark
     artwork elsewhere in the shared UI. */
  --nf-t-nav-text: var(--nf-graphic-ink);
  --nf-t-nav-muted: var(--nf-graphic-ink-muted);
  --nf-t-nav-hover: #171717;
  --nf-t-nav-border: #383838;
  --nav-text: var(--nf-t-nav-text);
  --nav-muted: var(--nf-t-nav-muted);
  background: var(--nf-crossnav-bg);
  background-image: var(--nf-crossnav-art, none);
  background-position: var(--nf-crossnav-art-x, 50%) var(--nf-crossnav-art-y, 50%);
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--nf-t-nav-text);
  font-family: var(--nf-t-font-body);
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--nf-t-space-1);
  min-block-size: calc(var(--nf-crossnav-control) + var(--nf-t-space-1));
  padding: calc(var(--nf-t-space-1) * 0.5) var(--nf-t-space-3);
  font-size: var(--nf-t-text-sm);
  line-height: var(--nf-t-leading-none);
  border-bottom: 1px solid var(--nf-t-nav-border);
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
#nf-crossnav::-webkit-scrollbar { display: none; }
#nf-crossnav a {
  color: var(--nf-t-nav-muted);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: var(--nf-t-space-5);
  min-height: var(--nf-crossnav-control);
  padding-inline: var(--nf-t-space-2);
  font-weight: var(--nf-t-weight-medium);
  white-space: nowrap;
}
#nf-crossnav a[hidden],
#nf-crossnav [data-nf-admin-link][hidden],
#nf-crossnav [data-nf-demo-link][hidden] { display: none; }
/* Guest discovery links also occur in public menus and page CTAs. */
a[data-nf-demo-link][hidden] { display: none !important; }
#nf-crossnav a:hover { color: var(--nf-t-nav-text); }
#nf-crossnav .nf-crossnav-label-short { display: none; }
#nf-crossnav > a:not(.nf-x-logo):not([hidden]):has(~ a:not(.nf-x-logo):not([hidden])) {
  position: relative;
}
#nf-crossnav > a:not(.nf-x-logo):not([hidden]):has(~ a:not(.nf-x-logo):not([hidden]))::before {
  /* These separators belong to their preceding visible link, so access-based
     hidden destinations never leave a dangling mark in the product switcher. */
  content: "";
  position: absolute;
  inset-inline-end: calc(var(--nf-t-space-1) * -0.5);
  inset-block-start: 50%;
  inline-size: 1px;
  block-size: var(--nf-t-space-3);
  transform: translateY(-50%);
  background: color-mix(in srgb, var(--nf-t-nav-muted) 42%, transparent);
}
#nf-crossnav .nf-x-logo {
  position: relative;
  width: var(--nf-crossnav-control);
  min-width: var(--nf-crossnav-control);
  padding: 0;
}
#nf-crossnav .nf-x-logo + a {
  /* Equal automatic gutters center the product links between the two icons
     without needing a wrapper that each product would have to maintain. */
  margin-inline-start: auto;
}
#nf-crossnav .nf-x-logo img {
  position: relative;
  z-index: 1;
  display: block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: contain;
  transform-origin: center;
  animation: nf-crossnav-loader-pulse 1100ms ease-in-out infinite;
}
#nf-crossnav .nf-x-logo::after {
  content: "";
  position: absolute;
  inset: var(--nf-t-space-1);
  border: 1px solid color-mix(in srgb, var(--nf-t-nav-text) 28%, transparent);
  border-top-color: var(--nf-t-accent);
  border-radius: 50%;
  animation: nf-crossnav-loader-spin 900ms linear infinite;
}
html[data-nf-site-ready="true"] #nf-crossnav .nf-x-logo::after {
  animation: none;
  border-color: color-mix(in srgb, var(--nf-t-nav-text) 32%, transparent);
}
html[data-nf-site-ready="true"] #nf-crossnav .nf-x-logo img {
  animation: none;
}
/* The readiness ring doubles as a small brand interaction after loading. Keep
   it moving for the full hover, keyboard-focus, or press instead of flashing
   once and disappearing as soon as a fast page becomes ready. */
html[data-nf-site-ready="true"] #nf-crossnav .nf-x-logo:is(:hover, :focus-visible, :active)::after {
  border-color: color-mix(in srgb, var(--nf-t-nav-text) 28%, transparent);
  border-top-color: var(--nf-t-accent);
  animation: nf-crossnav-loader-spin 900ms linear infinite;
}
@keyframes nf-crossnav-loader-spin {
  to { transform: rotate(1turn); }
}
@keyframes nf-crossnav-loader-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.82; transform: scale(0.96); }
}
#nf-crossnav .nf-crossnav-account-slot {
  /* Keep the signed-in outlet usable when the product links need their
     horizontal overflow region. It remains in normal flow (so it still
     reserves the same compact control footprint), but sticks to the bar's
     inline end instead of disappearing past that region at intermediate
     desktop widths. A guest intentionally keeps this reserved slot blank. */
  position: sticky;
  inset-inline-end: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--nf-crossnav-control);
  width: var(--nf-crossnav-control);
  min-width: var(--nf-crossnav-control);
  min-height: var(--nf-crossnav-control);
  margin: 0;
  margin-inline-start: auto;
  padding: 0;
  list-style: none;
  background: transparent;
}
#nf-crossnav .nf-crossnav-account-slot > li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--nf-crossnav-control);
  min-width: var(--nf-crossnav-control);
  min-height: var(--nf-crossnav-control);
  margin: 0;
  padding: 0;
  list-style: none;
}
#nf-crossnav .nf-crossnav-account-slot > li[hidden] { display: none; }
#nf-crossnav .nf-crossnav-account-slot :is(a, button) {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--nf-crossnav-control);
  min-width: var(--nf-crossnav-control);
  height: var(--nf-crossnav-control);
  min-height: var(--nf-crossnav-control);
  margin: 0;
  padding: 4px;
  overflow: visible;
  background: transparent;
  color: var(--nf-t-nav-text);
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  cursor: pointer;
  text-decoration: none;
}
#nf-crossnav .nf-crossnav-account-slot :is(a, button):hover {
  background: var(--nf-t-nav-hover);
  color: var(--nf-t-nav-text);
}
#nf-crossnav .nf-crossnav-account-slot img,
#nf-crossnav .nf-crossnav-account-slot .avatar,
#nf-crossnav .nf-crossnav-account-slot svg,
#nf-crossnav .nf-crossnav-account-initials {
  display: block;
  width: calc(var(--nf-crossnav-control) - 8px);
  height: calc(var(--nf-crossnav-control) - 8px);
  max-width: calc(var(--nf-crossnav-control) - 8px);
  max-height: calc(var(--nf-crossnav-control) - 8px);
  border-radius: 50%;
  object-fit: cover;
  border: 0;
  box-shadow: none;
  outline: none;
}
#nf-crossnav .nf-crossnav-account-slot svg {
  padding: 7px;
  box-sizing: border-box;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  background: color-mix(in srgb, var(--nf-t-nav-text) 10%, transparent);
}
#nf-crossnav .nf-crossnav-account-initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--nf-t-accent) 82%, var(--nf-crossnav-bg));
  color: var(--nf-t-nav-text);
  font-size: var(--nf-t-text-xs);
  font-weight: var(--nf-t-weight-semibold);
  line-height: var(--nf-t-leading-none);
  letter-spacing: 0.02em;
}

/* Community remains in the shared product bar. Theme now stays in each
   product's own sub-navigation, including this public portal header. */
.site-header .nav-primary > a[href="/community/"] { display: none; }

/* The bar scrolls horizontally, and overflow-x: auto also computes
   overflow-y to auto, so it clips at its padding box: 2px above and below the
   44px controls. An outward ring loses its top and bottom edges; draw it
   inward, as the account chip below does. */
#nf-crossnav > a:focus-visible {
  outline: var(--nf-t-focus-ring-width) solid var(--nf-t-nav-text);
  outline-offset: var(--nf-t-focus-ring-inset);
}
#nf-crossnav .nf-crossnav-account-slot :is(a, button):focus-visible {
  outline: var(--nf-t-focus-ring-width) solid var(--nf-t-nav-text);
  outline-offset: var(--nf-t-focus-ring-inset);
}
#nf-crossnav > a:not(.nf-x-logo):focus-visible {
  border-radius: var(--nf-t-space-1);
}
#nf-crossnav > a:not(.nf-x-logo)[aria-current="location"] {
  position: relative;
  color: var(--nf-t-nav-text);
  font-weight: var(--nf-t-weight-semibold);
}
#nf-crossnav > a:not(.nf-x-logo)[aria-current="location"]::after {
  content: "";
  position: absolute;
  inset-inline: var(--nf-t-space-2);
  /* Lift only the accent rule for optical centering; labels stay put. */
  inset-block-end: calc(var(--nf-t-space-1) + 5px);
  block-size: 2px;
  border-radius: 999px;
  background: var(--nf-t-accent);
}
@media (max-width: 820px) {
  #nf-crossnav {
    --nf-crossnav-control: var(--nf-t-control-min);
    gap: var(--nf-t-space-2);
    padding-inline: var(--nf-t-space-3);
    font-size: var(--nf-t-text-xs);
  }
  #nf-crossnav a {
    min-width: var(--nf-t-control-min);
    min-height: var(--nf-t-control-min);
    padding-inline: var(--nf-t-space-1);
  }
  #nf-crossnav .nf-x-logo + a { margin-inline-start: 0; }
  #nf-crossnav .nf-crossnav-label-full { display: none; }
  #nf-crossnav .nf-crossnav-label-short { display: inline; }
}
@media (max-width: 480px) {
  #nf-crossnav {
    gap: var(--nf-t-space-1);
    padding-inline: var(--nf-t-space-1);
  }
}
@media (prefers-reduced-motion: reduce) {
  #nf-crossnav .nf-x-logo::after,
  html[data-nf-site-ready="true"] #nf-crossnav .nf-x-logo:is(:hover, :focus-visible, :active)::after,
  #nf-crossnav .nf-x-logo img {
    animation: none;
  }
  #nf-crossnav .nf-x-logo::after {
    border-top-color: color-mix(in srgb, var(--nf-t-nav-text) 32%, transparent);
  }
}

/* APP and TALK share footer presentation; their adapters retain rail placement. */
body #nf-footer,
#nf-tenant-app .nf-tenant-footer {
  margin-block-start: var(--nf-shell-footer-margin-top);
  border-top: 1px solid var(--nf-t-border);
  background: transparent;
  color: var(--nf-t-text);
  font-family: var(--nf-t-font-body);
  font-size: var(--nf-t-text-xs);
  font-weight: var(--nf-t-weight-regular);
  line-height: var(--nf-t-leading-normal);
  letter-spacing: normal;
  box-sizing: border-box;
  min-width: 0;
}
body #nf-footer,
#nf-tenant-app .nf-tenant-footer > nav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--nf-shell-footer-gap);
  padding: var(--nf-shell-footer-padding-block-start) var(--nf-shell-footer-padding-inline) var(--nf-shell-footer-padding-block-end);
}
#nf-tenant-app .nf-tenant-footer > nav {
  color: inherit;
  font: inherit;
}
body #nf-footer a,
#nf-tenant-app .nf-tenant-footer > nav a {
  color: inherit;
  font: inherit;
  font-weight: var(--nf-t-weight-regular);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: var(--nf-shell-footer-target);
  min-width: var(--nf-shell-footer-target);
  min-block-size: var(--nf-shell-footer-target);
  min-inline-size: var(--nf-shell-footer-target);
}
body #nf-footer a:hover,
body #nf-footer a:focus-visible,
#nf-tenant-app .nf-tenant-footer > nav a:hover,
#nf-tenant-app .nf-tenant-footer > nav a:focus-visible {
  color: var(--nf-t-text);
  text-decoration: underline;
}
body #nf-footer a:focus-visible,
#nf-tenant-app .nf-tenant-footer > nav a:focus-visible {
  outline: var(--nf-t-focus-ring-width) solid var(--nf-t-focus);
  outline-offset: var(--nf-t-focus-ring-offset);
  box-shadow: 0 0 0 calc(var(--nf-t-focus-ring-width) + var(--nf-t-space-1)) var(--nf-t-focus-halo);
}

/* Keep data columns readable inside Catalog's existing keyboard-scrollable region. */
#nf-view-root .nf-catalog-table { min-width: 1100px; table-layout: auto; }
#nf-view-root .nf-catalog-table :is(th, td) { overflow-wrap: normal; word-break: normal; }
#nf-view-root .nf-catalog-table th,
#nf-view-root .nf-catalog-table :is(th, td):last-child { white-space: nowrap; }
#nf-view-root .nf-catalog-table .nf-catalog-col-title { min-width: 200px; }
#nf-view-root .nf-catalog-table .nf-catalog-col-publisher { min-width: 144px; }
#nf-view-root .nf-catalog-table .nf-catalog-col-issue,
#nf-view-root .nf-catalog-table .nf-catalog-col-year { min-width: 56px; }
#nf-view-root .nf-catalog-table td:last-child > .nf-btn + .nf-btn { margin-inline-start: var(--nf-t-space-2); }
body.navigation-category .category-heading:not(:has(> *)) { display: none; }

/* Native TALK forms and profile summaries adapt to their available width. */
@media (max-width: 767px) {
  body .user-main .summary-category-list table {
    width: 100%;
    table-layout: fixed;
  }
  body .user-main .summary-category-list th.topic-count,
  body .user-main .summary-category-list td.topic-count,
  body .user-main .summary-category-list th.reply-count,
  body .user-main .summary-category-list td.reply-count {
    width: 32px;
    padding-inline: var(--nf-t-space-1);
    font-size: var(--nf-t-text-xs);
    white-space: nowrap;
  }
  body .user-main .summary-category-list td.category-link { padding-inline: var(--nf-t-space-1); }
  body .user-main .summary-category-list .badge-category__wrapper,
  body .user-main .summary-category-list .badge-category {
    max-width: 100%;
    white-space: normal;
  }
  body .user-main .summary-category-list .badge-category { flex-wrap: wrap; }
  body .user-main .summary-category-list .badge-category__name {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: var(--nf-t-text-xs);
  }
  body #user-content .badge-group-list {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
  }
  body #user-content .badge-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  body .user-preferences .control-group.color-scheme > .controls {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: var(--nf-t-space-3);
  }
  body .user-preferences .control-group.color-scheme > .controls > .control-subgroup {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    flex: 0 0 auto;
  }
  body .user-preferences .control-group.color-scheme .control-subgroup .select-kit {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  body #reply-control.open .composer-fields,
  body #reply-control.open .composer-fields > div.title-and-category {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    height: auto;
    min-height: 0;
    flex-shrink: 0;
    gap: var(--nf-t-space-2);
  }
  body #reply-control.open .title-and-category > div.title-input,
  body #reply-control.open .title-and-category > div.category-input,
  body #reply-control.open .title-and-category > div.tags-input {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    margin: 0;
  }
  body #reply-control.open .title-input #reply-title {
    flex: 1 1 auto;
    height: var(--nf-t-control-min);
    min-height: var(--nf-t-control-min);
    margin: 0;
  }
  body #reply-control.open .category-input .select-kit,
  body #reply-control.open .tags-input .select-kit {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: 1 1 auto;
  }
}

@media (min-width: 768px) {
  body .user-main .top-section:has(> .top-sub-section + .top-sub-section)::before,
  body .user-main .top-section:has(> .top-sub-section + .top-sub-section)::after {
    content: none;
    display: none;
  }
  body .user-main .top-section:has(> .top-sub-section + .top-sub-section) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--nf-t-space-4);
    align-items: start;
  }
  body .user-main .top-section:has(> .top-sub-section + .top-sub-section) > .top-sub-section {
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
  }
}

/* Opt-in scrolling for long selection lists; every row stays mounted. */
.nf-scroll-region--bounded {
  min-inline-size: 0;
  max-inline-size: 100%;
  max-block-size: min(60vh, 32rem);
  max-block-size: min(60dvh, 32rem);
  overflow: auto;
  overscroll-behavior-block: contain;
  scrollbar-gutter: stable;
  padding: var(--nf-t-space-2);
  scroll-padding-block: var(--nf-t-space-2);
}

#nf-tenant-app [data-nf4044-help-body] .nf-help-controls > .nf-btn {
  align-self: end;
}

/* An explicit grid rhythm replaces the panel's child margins. */
.nf-panel.nf-page-rhythm > *:not(:first-child),
.nf-panel.nf-form-stack > *:not(:first-child) {
  margin-block-start: 0;
}

/* Empty deferred status mounts and action groups do not reserve a grid row. */
.nf-form-stack > div:not([class]):empty,
.nf-form-stack > section:not([class]):empty,
.nf-form-stack > .nf-actions:empty {
  display: none;
}

/* Wide data tables scroll within their wrapper; mobile card tables stay fluid. */
.nf-table-wrap > table.nf-table:where(:not(.nf4286-batch-table)) {
  table-layout: auto;
  min-width: max(100%, 640px);
}
.nf-table-wrap > table.nf-table:where(:not(.nf4286-batch-table)) :is(th, td) {
  overflow-wrap: normal;
  word-break: normal;
}
.nf-table-wrap > table.nf-table:where(:not(.nf4286-batch-table)) th {
  white-space: nowrap;
}
.nf-solicitations {
  grid-template-columns: minmax(0, 1fr);
}
.nf-solicitations > * {
  min-width: 0;
}
.nf-solicitations[data-nf3568-tab="order"] .nf-table {
  min-width: max(100%, 1000px);
}
.nf-solicitations[data-nf3568-tab="order"] .nf-table :is(th, td):first-child {
  min-width: 220px;
}

/* Stacked event headings use the available mobile width. */
@media (max-width: 700px) {
  .nf-events-feed__heading > p {
    max-width: none;
    width: 100%;
  }
}
.nf-events-discovery__error:empty {
  display: none;
}

/* Keep the Guest heading outside the separately scrolling dialog body. */
body .nf-guest-modal {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
body .nf-guest-modal__header {
  position: static;
  flex: none;
}
body .nf-guest-modal__content {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Native TALK calendar, navigation and viewport adapters. */
#main-outlet .event-date.event-relative-date.future {
  color: var(--nf-red-text);
}

#main-outlet .fc button.fc-button-primary:not(:disabled).fc-button-active,
#main-outlet .fc button.fc-button-primary:not(:disabled):active {
  /* The installed calendar theme has an !important color using this variable. */
  --d-button-primary-text-color: var(--nf-t-text);
  --fc-button-text-color: var(--nf-t-text);
  color: var(--nf-t-text);
}

/* The calendar plugin fades past events to opacity 0.3, which leaves their
   titles at about 1.7:1 on the dark ground while they remain links. Mark them
   past with the muted text token at full opacity; the category dot stays dim. */
#main-outlet .fc .fc-event-past { opacity: 1; }
#main-outlet .fc .fc-event-past :is(.fc-event-title, .fc-event-time, .fc-list-event-title, .fc-list-event-time) {
  color: var(--nf-t-text-muted);
}
#main-outlet .fc .fc-event-past .fc-daygrid-event-dot { opacity: 0.5; }

/* FullCalendar dims the day numbers of the leading and trailing other-month
   cells to opacity 0.3, about 2.5:1 on dark and 1.9:1 on light, and they
   remain links. Show them in the muted text token at full opacity instead. */
#main-outlet .fc .fc-day-other .fc-daygrid-day-top { opacity: 1; }
#main-outlet .fc .fc-day-other .fc-daygrid-day-number { color: var(--nf-t-text-muted); }

/* Core colours the notifications Filter By value with --tertiary, the brand
   fill (#b5202e), which is 2.6:1 as text on the dark panel. */
body .select-kit.dropdown-select-box.notifications-filter .notifications-filter-header .header-text {
  color: var(--nf-t-accent-text);
}

@media (min-width: 768px) {
  html.has-full-page-chat #main-chat-outlet { grid-template-rows: minmax(0, 1fr); }
  html.has-full-page-chat .full-page-chat .c-routes.--channel {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }
  html.has-full-page-chat .full-page-chat .c-routes.--channel > .chat-channel {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
  }
  html.has-full-page-chat body #main-outlet-wrapper {
    height: calc(100dvh - var(--header-offset, 95px));
    min-height: 0;
    grid-template-rows: minmax(0, 1fr) auto;
  }
  html.has-full-page-chat body #main-outlet { min-height: 0; }
  html.has-full-page-chat body #main-outlet-wrapper > .sidebar-wrapper {
    height: calc(100dvh - var(--header-offset, 95px) + var(--header-height, 56px));
    min-height: 0;
  }
}
@media (max-width: 767px) {
  body.tags-page .tag-box {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  body .user-main .user-navigation { min-width: 0; max-width: 100%; margin-block: 0 12px; }
  body .user-main .user-navigation .horizontal-overflow-nav { min-width: 0; max-width: 100%; }
  body .user-main .user-navigation .nav-pills {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--nf-t-space-2);
    overflow-x: auto;
    max-width: 100%;
    padding-block: 0 4px;
    margin: 0;
  }
  body .user-main .user-navigation .nav-pills > li { flex: 0 0 auto; width: auto; min-width: 0; }
  body .user-main .user-navigation .nav-pills > li > a {
    display: inline-flex;
    align-items: center;
    min-height: var(--nf-t-control-min);
    min-width: var(--nf-t-control-min);
    width: auto;
    white-space: nowrap;
    gap: var(--nf-t-space-2);
  }
  body .user-main .user-navigation-primary .nav-pills.main-nav > li > a > span { display: inline; }
  body .fc .fc-col-header-cell { padding: 0; }
  body .fc .fc-col-header-cell-cushion {
    padding: 2px 1px;
    font-size: var(--nf-t-text-xs);
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
  }
  body .fc .fc-header-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nf-t-space-2);
    align-items: center;
  }
  body .fc .fc-header-toolbar .fc-toolbar-chunk { display: contents; }
  body .fc .fc-header-toolbar .fc-toolbar-title { flex: 1 0 100%; margin: 0; }
  body .fc .fc-header-toolbar .fc-button-group { flex: 0 0 auto; max-width: 100%; margin: 0; }
  body .fc .fc-header-toolbar .fc-button {
    flex: 0 0 auto;
    min-width: var(--nf-t-control-min);
    min-height: var(--nf-t-control-min);
    font-size: var(--nf-t-text-md);
    padding-inline: var(--nf-t-space-2);
    white-space: nowrap;
  }
}

/* The in-flow cross-product bar occupies viewport space only while visible.
   The rail stays sticky at zero and expands as that bar scrolls out of view. */
@media (min-width: 821px) {
  #nf-tenant-app[data-nf-shell-structure="static"] .nf-side {
    height: calc(100vh - var(--nf-shell-visible-crossnav, 0px));
    height: calc(var(--nf-shell-rail-height, 100dvh) - var(--nf-shell-visible-crossnav, 0px));
  }
}

/* Only native single-cell Discourse rows use the stacked mobile layout.
   A compressed desktop window can retain multi-cell rows below767px. */
@media (max-width: 767px) {
  body:is(.navigation-topics, .navigation-category) .topic-list:has(> tbody > tr > .topic-list-data:only-child),
  body:is(.navigation-topics, .navigation-category) .topic-list:has(> tbody > tr > .topic-list-data:only-child) > tbody,
  body:is(.navigation-topics, .navigation-category) .topic-list:has(> tbody > tr > .topic-list-data:only-child) > tbody > tr,
  body:is(.navigation-topics, .navigation-category) .topic-list:has(> tbody > tr > .topic-list-data:only-child) > tbody > tr > td {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  body.navigation-topics .topic-list .badge-category__wrapper,
  body.navigation-topics .topic-list .badge-category,
  body.navigation-topics .topic-list .badge-category__name,
  body.navigation-category .topic-list .badge-category__wrapper,
  body.navigation-category .topic-list .badge-category,
  body.navigation-category .topic-list .badge-category__name {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* Keep specialized data-table width floors above the ordinary table baseline. */
[data-nf4100-definition-table] table.nf-table { min-width: 960px; }
table.nf-table.nf-solicitations__table { min-width: 900px; }

/* Checkbox labels remain one wrapping row with a full touch target. */
.nf-field.nf-field--checkbox {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  min-block-size: var(--nf-t-control-min);
}
.nf-field.nf-field--checkbox > .nf-checkbox { margin: 0; }

/* Live-previewed at320,390 and1440px. Hide only the redundant page-title link;
   retain native header actions, sidebar navigation and topic controls. */
@media (max-width: 379px) {
  .d-header .title > a:has(> .nf-talk-page-title) {
    display: none;
  }

  .d-header .title:has(> a > .nf-talk-page-title) {
    min-width: 0;
  }
}

/* Three-child catalog choices: checkbox, identity, publisher metadata. */
#nf-tenant-app [data-nf4357-existing-list] > .nf-drill-row {
  grid-template-columns: var(--nf-t-control-min) minmax(0, 1fr);
  column-gap: var(--nf-t-space-2);
  row-gap: var(--nf-t-space-1);
  min-block-size: var(--nf-t-control-min);
  align-items: start;
}
#nf-tenant-app [data-nf4357-existing-list] > .nf-drill-row > input {
  grid-column: 1;
  grid-row: 1 / span 2;
  justify-self: center;
  margin: 0;
}
#nf-tenant-app [data-nf4357-existing-list] > .nf-drill-row > span {
  min-inline-size: 0;
  max-inline-size: 100%;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}
#nf-tenant-app [data-nf4357-existing-list] > .nf-drill-row > span:first-of-type {
  grid-column: 2;
  grid-row: 1;
}
#nf-tenant-app [data-nf4357-existing-list] > .nf-drill-row > span:last-of-type {
  grid-column: 2;
  grid-row: 2;
}

/* A closed off-screen drawer must not shade the visible mobile page. */
#nf-tenant-app[data-nf-navigation-open="false"] #nf-primary-navigation[aria-hidden="true"] {
  box-shadow: none;
}

/* Admitted action links in a Settings card grid use its existing title roles. */
#nf-tenant-app [data-sf1023-settings-links] > a.nf-btn {
  justify-content: flex-start;
  align-items: flex-start;
  min-width: 0;
  padding: var(--nf-t-space-3) var(--nf-t-space-4);
  border-color: var(--nf-t-border);
  background: var(--nf-t-surface-raised);
  color: var(--nf-t-text);
  font-family: var(--nf-t-font-heading);
  font-size: var(--nf-t-display-5);
  font-weight: var(--nf-t-weight-black);
  line-height: var(--nf-t-leading-tight);
  text-align: left;
  white-space: normal;
  overflow-wrap: break-word;
  box-shadow: none;
}
#nf-tenant-app [data-sf1023-settings-links] > a.nf-btn:hover {
  background: var(--nf-t-control-hover);
  border-color: var(--nf-t-accent);
}

/* Wide aging rows retain readable identity and a44px action without a full row of button. */
@media (min-width: 761px) {
  #nf-insights-aging-records > li {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--nf-t-space-4);
    align-items: center;
  }
  #nf-insights-aging-records > li > strong {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }
  #nf-insights-aging-records > li > span {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
  }
  #nf-insights-aging-records > li > a {
    grid-column: 2;
    grid-row: 1 / span 2;
    white-space: nowrap;
  }

  /* Keep countdown identity in flow, clear of the event's route controls. */
  #nf-tenant-app .nf-event-countdown-tile:not([hidden]) {
    position: relative;
    inset: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--nf-t-space-2);
    width: max-content;
    min-width: 0;
    min-height: 0;
    max-width: calc(100% - 2 * var(--nf-t-space-5));
    margin: var(--nf-t-space-5) var(--nf-t-space-5) 0 auto;
    padding: var(--nf-t-space-2) var(--nf-t-space-3);
    border-width: 3px;
    border-radius: var(--nf-t-radius-lg);
  }
  #nf-tenant-app .nf-event-countdown-tile .nf-event-countdown__value {
    font-size: var(--nf-t-text-3xl);
  }
  #nf-tenant-app .nf-event-countdown-tile .nf-event-countdown__label {
    margin: 0;
  }
  #nf-tenant-app .nf-event-countdown-tile:not([hidden]) + .nf-event-card__content {
    padding: var(--nf-t-space-4) var(--nf-t-space-5) var(--nf-t-space-5);
    max-width: none;
  }
}

/* Browser-previewed Tracking preferences at320/390/1440px. */
.user-preferences__tracking-topics-wrapper {
  margin-bottom: var(--nf-t-space-4);
}

.user-preferences__tracking-categories-tags-wrapper {
  gap: var(--nf-t-space-4);
}

.user-preferences__tracking-categories-tags-wrapper > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 100%;
}

/* Native blank line between currently empty plugin mounts. The mounts remain. */
.user-preferences__tracking-categories-tags-wrapper > div > br {
  display: none;
}

@media (max-width: 767px) {
  .user-preferences__tracking-topics-wrapper {
    margin-bottom: var(--nf-t-space-3);
  }

  .user-preferences__tracking-categories-tags-wrapper {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--nf-t-space-3);
  }

  .user-preferences__tracking-categories-tags-wrapper :is(.category-notifications, .tag-notifications) {
    min-width: 0;
    max-width: 100%;
  }
}

/* Browser-previewed About hierarchy at320/390/1440px. */
.body-page .about__main-content {
  gap: var(--nf-t-space-4);
  align-items: flex-start;
}

.body-page .about__left-side {
  display: flex;
  flex-direction: column;
  gap: var(--nf-t-space-4);
}

.body-page section.about__admins,
.body-page section.about__moderators,
.body-page .about__right-side,
.body-page .about__stats,
.body-page .about__activities {
  margin-block: 0;
}

.body-page .about__stats,
.body-page .about__activities {
  gap: var(--nf-t-space-4);
}

.body-page .about__stats > .about__stats-item,
.body-page .about__activities > .about__activities-item {
  margin: 0;
}

@media (max-width: 767px) {
  .body-page .about__main-content,
  .body-page .about__left-side,
  .body-page .about__stats,
  .body-page .about__activities {
    gap: var(--nf-t-space-3);
  }
}

/* Product-owned scroll regions retain wheel, touch, keyboard and focus
   scrolling. The document root stays outside this selector, leaving the
   browser viewport scrollbar as the only visible scrollbar. */
body :where(*) {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  scrollbar-gutter: auto !important;
}

body :where(*)::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* A route focused into view stopped flush with the rail's clip edge, which
   cut its ring and halo on that side (#7893). Reserve the ring's full reach
   whenever focus scrolls a rail. */
body .sidebar-wrapper .sidebar-sections,
body .sidebar-hamburger-dropdown .sidebar-sections,
body .hamburger-panel .panel-body {
  scroll-padding-block: calc(var(--nf-t-focus-ring-width) + var(--nf-t-space-1));
}

/* Keep native dark icon treatment while mapping every rail paint layer to
   the same global navigation role used by APP. */
body .sidebar-wrapper {
  --nf-rail: var(--nf-t-nav-bg);
}

body .sidebar-wrapper,
body .sidebar-wrapper .sidebar-container {
  background: var(--nf-t-nav-bg);
  --d-sidebar-background: var(--nf-t-nav-bg);
}

@media (min-width: 821px) {
  body #nf-footer::before {
    background: var(--nf-t-nav-bg);
    top: -1px;
  }
}
