/* Shared semantic typography. No color, spacing or layout overrides. */
:root{
 --font-page-title:26px;
 --font-page-title-mobile:24px;
 --font-section-title:20px;
 --font-card-title:17px;
 --font-article-title:15px;
 --font-body:15px;
 --font-table:14px;
 --font-meta:13px;
 --font-caption:12px;
 --font-kpi-number:32px;
 --font-kpi-secondary:20px;
 --font-table-title:var(--font-article-title);
 --font-table-meta:var(--font-meta);
 --font-kpi-label:var(--font-meta);
 --font-kpi-meta:var(--font-caption);
 --weight-body:400;
 --weight-medium:500;
 --weight-semibold:600;
 --weight-title:700;
 --weight-kpi:800;
}
body{font-size:var(--font-body);font-weight:var(--weight-body)}
h1,#pageTitle{font-size:var(--font-page-title);font-weight:var(--weight-title)}
h2,.section-title,#popularContent .analysis-bars h3,.registration-detail-header h3{font-size:var(--font-section-title);font-weight:var(--weight-title)}
h3,h4,.analysis-summary-heading h3,.opportunity-panel-header h3{font-size:var(--font-card-title);font-weight:var(--weight-title)}
small,.micro,.sub,.editor-state,.section-title small,.tag,.status,.legend-note,.brand small{font-size:var(--font-meta);font-weight:var(--weight-medium)}
.footer,.kicker{font-size:var(--font-caption);font-weight:var(--weight-medium)}
.nav button{font-size:var(--font-body);font-weight:var(--weight-semibold)}
.nav-label{font-size:var(--font-caption);font-weight:var(--weight-title)}
button,select,input,textarea,.primary,.secondary,.outline-btn,.tabbtn,.datasource label,.ai-box textarea,.ai-edit textarea{font-size:var(--font-body)}
.list li,.barlist .item,.insight,.note{font-size:var(--font-body)}
table,td,.trend-row{font-size:var(--font-table);font-weight:var(--weight-body)}
th{font-size:var(--font-table);font-weight:var(--weight-title)}
.titlecell,td.titlecell,.analysis-opportunity-row .opportunity-title,#popularContent .compact-ranking .chart-bar-row>a{font-size:var(--font-article-title);font-weight:var(--weight-title)}
.titlecell span,td .micro,td .tag,td small,.opportunity-meta small,.analysis-badge{font-size:var(--font-meta);font-weight:var(--weight-medium)}
.registration-detail .titlecell>a,.registration-detail .titlecell>span{font-size:var(--font-article-title);font-weight:var(--weight-title)}
.metric .num,.type-event-value,.step .n,.visual-funnel .step .n{font-size:var(--font-kpi-number);font-weight:var(--weight-kpi)}
.metric .label,.type-kpi-label,.type-kpi-badge,.type-event-value small{font-size:var(--font-kpi-label);font-weight:var(--weight-medium)}
.metric .meta,.metric .micro{font-size:var(--font-kpi-meta);font-weight:var(--weight-medium)}
.type-share-value{font-size:var(--font-kpi-secondary);font-weight:var(--weight-title)}
.type-kpi-secondary p,.type-kpi-secondary small{font-size:var(--font-meta);font-weight:var(--weight-medium)}
.opportunity-panel-header>small{font-size:var(--font-body);font-weight:var(--weight-semibold)}
.opportunity-panel-header .micro{font-size:var(--font-meta);font-weight:var(--weight-body)}
.analysis-opportunity-row .opportunity-metrics,.chart-bar-row,.chart-values{font-size:var(--font-table);font-weight:var(--weight-body)}
.chart-caption,.visual-funnel .step>b{font-size:var(--font-article-title);font-weight:var(--weight-title)}
.chart-step-rate,.visual-funnel .funnel-arrow-rate,.funnel-heading>small{font-size:var(--font-meta);font-weight:var(--weight-medium)}
.funnel-overall{font-size:var(--font-table);font-weight:var(--weight-title)}
@media(max-width:760px){h1,#pageTitle{font-size:var(--font-page-title-mobile)}}

/* Department is a semantic dimension, not generic metadata. */
.department-primary,td.department-primary,button.department-primary{font-size:var(--font-table);font-weight:var(--weight-title)}
.titlecell .department-meta,.opportunity-meta .department-meta,.department-meta{font-size:var(--font-meta);font-weight:var(--weight-semibold)}
