/* PortfolioLab shared visual tokens, interface 0.11.0.
   Local, licensed real faces; font and contrast checks: tests/typography.py. */
@font-face {
  font-family: 'Portfolio Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/portfolio-sans-regular.woff') format('woff');
}
@font-face {
  font-family: 'Portfolio Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/portfolio-sans-bold.woff') format('woff');
}

:root {
  --font-ui: 'Portfolio Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --font-data: 'Portfolio Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --font-code: ui-monospace, 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  --weight-body: 400;
  --weight-label: 700;
  --weight-heading: 700;
  --text-body: #183b33;
  --text-secondary: #4f655e;
  --text-on-dark: #f2f7f3;
  --text-on-dark-muted: #b9cec3;
  --surface-page: #f5f6f3;
  --surface-panel: #ffffff;
  --surface-dark: #16332c;
  --surface-soft: #edf4ef;
  --surface-synthetic: #f2edf8;
  --color-action: #0f6b50;
  --color-action-hover: #0c573f;
  --color-focus: #205fa0;
  --color-border: #738d80;
  --color-divider: #dce5df;
  --color-negative: #a43c3f;
  --color-positive: #0f6b50;
  --color-synthetic: #6b4696;
  --series-primary: #0f6b50;
  --series-strategy: #0f6b50;
  --series-benchmark: #265fa1;
  --series-defensive: #925a12;
  --series-secondary: #6b4696;
  --text-size-base: 1rem;
  --text-size-control: .875rem;
  --text-size-caption: .8125rem;
  --text-size-chart: .8125rem;
  --control-size-min: 44px;
  --radius-panel: 14px;
  --radius-control: 8px;
}

html {
  font-family: var(--font-ui);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body, button, input, select, textarea {
  font-family: var(--font-ui);
}
button, input, select, textarea {
  font-variant-numeric: lining-nums tabular-nums;
}
input::placeholder, textarea::placeholder {
  opacity: 1;
}
:where(table, .numeric, .metric-value, output, .data-value) {
  font-family: var(--font-data);
  font-variant-numeric: lining-nums tabular-nums;
}
:where(code, pre, kbd) {
  font-family: var(--font-code);
}
:where(button, input, select, textarea, a, summary):focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}
.ui-control {
  min-height: var(--control-size-min);
  font-size: var(--text-size-control);
}
.data-text {
  font-family: var(--font-data);
  font-variant-numeric: lining-nums tabular-nums;
}
.chart-label {
  font-family: var(--font-data);
  font-size: var(--text-size-chart);
  font-variant-numeric: lining-nums tabular-nums;
  fill: var(--text-secondary);
}
.chart-scroll {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}
.chart-scroll > svg {
  display: block;
  min-width: 640px;
}
@media (prefers-reduced-motion: reduce) {
  :where(html) { scroll-behavior: auto; }
}
