/*
 * Fuelsure dashboard typography standard v1
 *
 * Reading base: 1rem (normally 16px)
 * Controls:     .875rem (normally 14px)
 * Metadata:     .8125rem (normally 13px)
 * Labels:       .75rem (normally 12px)
 *
 * Keep structural/dashboard text at or above the label floor. Relative units
 * preserve browser text preferences and zoom behaviour.
 */
:root{
  --fs-font-body:1rem;
  --fs-font-ui:.875rem;
  --fs-font-meta:.8125rem;
  --fs-font-label:.75rem;
}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{font-size:var(--fs-font-body)!important;line-height:1.5!important}
button,input,select,textarea{font-size:var(--fs-font-ui)!important;line-height:1.4!important}

/* Shared navigation and account controls */
.fs-section-tabs a{font-size:var(--fs-font-ui)!important;line-height:1.25!important}
[data-fuelsure-feature][hidden]{display:none!important}
.fs-local-neutral,.fs-local-tag,.fs-detail-link{font-size:var(--fs-font-label)!important}
.fs-local-context{font-size:var(--fs-font-meta)!important}
.fs-account-email,.fs-account-menu-email,.fs-account-menu-org,
.fuelsure-billing-after,.fuelsure-billing-admin-note,.fuelsure-billing-link,
.fuelsure-billing-assurance,.fuelsure-billing-stripe,.fuelsure-billing-sep,
.fuelsure-billing-message{font-size:var(--fs-font-meta)!important}
.auth-pill,.auth-help,.auth-brand-foot{
  font-size:var(--fs-font-meta)!important;
  line-height:1.45!important;
}

/* Shared structural labels */
.ey,.badge,
.select-wrap label,.scope-select span,.filter-row span,
.kpi span,.metric span,.latest span,.dk span,
.component span,.component-grid span,
.status-pill,.issue-label,.priority-issue,.source-warning,.data-issue-badge{
  font-size:var(--fs-font-label)!important;
  line-height:1.3!important;
}
.board .table-wrap th,
.trader-table th,
.port-performance-table th{
  font-size:var(--fs-font-label)!important;
  line-height:1.3!important;
}
.board .table-wrap td,.board .supplier-btn{
  font-size:.9375rem!important;
  line-height:1.4!important;
}
.board .tag,.board button.supplier-detail-button{
  font-size:var(--fs-font-label)!important;
  line-height:1.2!important;
}
.disclaimer-item{font-size:var(--fs-font-meta)!important}
.disclaimer-item b,.port-tci::before{font-size:var(--fs-font-label)!important}

/* Supplier leaderboard, map and quote mode */
.market-bar .ey,.chart text,.factor b,.scope-item b,.legend .tag,
.evidence span,.supplier-card-stats span,.pin-label strong,.hero-map-head small,
.main .metric span,.supplier-grade-badge,
.v54-name,.v54-marketbar strong,
.v66-alert-badge,.v66-label,
.popup-ey,.cost-equation-grid>div>span:first-child,
.pinned-head>span,.pinned-head small,.pinned-empty,.pinned-card-head small,
.unpin-market,.pinned-metrics>span,.pinned-metrics .market-move,
.port-performance summary small,.port-performance summary em,
.port-performance-table td:first-child small,.port-table-note,
.governance-lines b,.hover-card .popup-ey,
.hover-card .cost-equation-grid>div>span:first-child,
.port-alerts .ey,.port-alert-inline-symbol,.port-alert-popover-grid span,
.leaderboard-benchmark-card span,.quote-comparison-status,
.quote-recommendation-eyebrow,.quote-recommendation-copy small,
.quote-handicap-driver{
  font-size:var(--fs-font-label)!important;
  line-height:1.3!important;
}
.pinned-metrics b,.hover-card .cost-equation-grid b,
.governance-lines .plain-equation,.supplier-methodology summary,
.supplier-methodology>div,.port-alert-popover-grid strong,
.port-alert-source,.quote-import-status,.quote-mode-vs-best-value{
  font-size:var(--fs-font-meta)!important;
  line-height:1.4!important;
}
.port-alert-trigger{font-size:var(--fs-font-ui)!important}
.leaderboard-v2-seg button,.leaderboard-v2-toggle,.v2-drawer-action{
  font-size:var(--fs-font-ui)!important;
}
.v2-drawer-kpis .dk span{font-size:var(--fs-font-label)!important}

/* Claims */
.claims-summary span,.claim-kpis span,
.analytics-head span,.ageing-value,.ageing-item>span,
.recovery-row-head span,.recovery-row-head strong,
.claim-card-money span,.priority-money small,
.claims-toolbar label>span,.claim-detail-amount>span,
.fact-grid span,.timeline-item span,.supplier-profile-stats span{
  font-size:var(--fs-font-label)!important;
  line-height:1.3!important;
}
.data-notice,.chart-empty,.claim-card-meta,.claim-card-action,
.priority-name small,.priority-action,.claims-empty,
.timeline-item small,.operation-link,.supplier-profile-meta{
  font-size:var(--fs-font-meta)!important;
  line-height:1.45!important;
}
.fact-grid strong,.supplier-profile-stats strong{line-height:1.35!important}

/* Operations */
.ops-hero-summary span,.ops-toolbar label>span,.ops-list-columns,
.operation-primary span,.operation-cell span,.detail-id span,
.component-grid span,.evidence-item span,.overview-cost>span,
.overview-facts span,.benchmark-pair span,.ops-summary-strip span,
.summary-benchmark small,.ops-analytics-head span,.month-delta-col>span,
.supplier-compare-name small,.risk-trend-meta small,.risk-spark-axis,
.risk-compare-meta small,.risk-compare-values small,.ops-analytics-head>strong,
.signal-head .ey,.overview-identity .ey{
  font-size:var(--fs-font-label)!important;
  line-height:1.3!important;
}
.outcome-benchmark,.component-grid small,.evidence-item small,
.overview-cost>small,.benchmark-pair small,.analytics-empty,
.supplier-compare-name strong,.supplier-compare-value,
.risk-trend-meta strong,.risk-compare-meta strong{
  font-size:var(--fs-font-meta)!important;
  line-height:1.4!important;
}

/* Performance */
.headline-card span,.supplier-kpis span,.drawer-hero-card span,
.drawer-summary-grid span,.drawer-component span,.drawer-score span,
.component span,.confidence,.confidence-pill,.benchmark-item span,
.evidence-chip,.evidence-component,.supplier-rank,.supplier-mix-head,
.supplier-bar-row span,.trader-rank,.supplier-grade-badge,
.drawer-evidence-card>span,.evidence-verdict,.grade-donut-center span,
.trader-leaderboard-head,.trader-filter-controls label>span,
.trader-showing span,.management-rank,.drawer-performance-head span,
.drawer-cost-component span,.evidence-compare span,
.evidence-section .evidence-verdict{
  font-size:var(--fs-font-label)!important;
  line-height:1.3!important;
}
.headline-card small,.market-meta,.group-title>span:last-child,
.trend-tooltip strong,
.exec-trader-row small,.methodology summary,.methodology>div,
.drawer-head p,.story-line,.muted,.rep-op small,.full-evidence summary,
.loading,.empty,.trend-tooltip span,.supplier-share,.drawer-evidence-note,
.drawer-evidence-row small,.grade-legend-row,.grade-coverage,
.evidence-pair small,.drawer-evidence-card small,.drawer-evidence-card>small,
.trader-volume,.trader-heading-copy>p,.trader-showing strong,
.main-reason small,.rep-op-score small,.drawer-evidence-title,
.opportunity-row small,.trader-insight,.grade-pie-empty,.grade-tooltip,
.grade-tooltip span,.management-name small,.management-value small,
.drawer-cost-component small,.drawer-performance-explanation{
  font-size:var(--fs-font-meta)!important;
  line-height:1.4!important;
}
.supplier-bar-row strong,.trader-value,.rep-op strong,.rep-op-score,
.supplier-true-cost,.evidence-pair strong,.drawer-evidence-card>b,
.benchmark-delta,.main-reason strong{
  font-size:var(--fs-font-meta)!important;
  line-height:1.35!important;
}
.trend-axis,.trend-y-label{font-size:var(--fs-font-label)!important}
.trader-filter-controls select,.trader-filter-controls input{
  font-size:var(--fs-font-ui)!important;
}

/* Port and supplier drill-down pages */
.intel-hero .ey,.kpi span,.component span,.filter-row span{
  font-size:var(--fs-font-label)!important;
}
.kpi small,.section-head p,.data-row small,.evidence-item span,
.notice,.grade{
  font-size:var(--fs-font-meta)!important;
  line-height:1.4!important;
}

/* Temporarily suppress source-freshness banners on Claims and Performance.
   Freshness diagnostics remain available through the APIs and health checks. */
.claims-main .data-notice,.exec-main .data-notice{display:none!important}

/* Never shrink controls on narrow screens; 1rem avoids mobile input zoom. */
@media(max-width:650px){
  body{font-size:1rem!important}
  input,select,textarea{font-size:1rem!important}
  button{font-size:var(--fs-font-ui)!important}
  .fs-section-tabs a{font-size:var(--fs-font-ui)!important}
}
