/* Tokens and base styles the page expects from its host runtime. */
:root {
  --font-anthropic-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-anthropic-serif: "Source Serif 4", ui-serif, Georgia, "Times New Roman", serif;
  --cds-font-size-caption: 13px;
  --cds-font-size-heading: 15px;
  --cds-gap-xs: 4px; --cds-gap-sm: 8px; --cds-gap-md: 12px; --cds-gap-lg: 20px; --cds-gap-xl: 32px;
  --cds-pad-xs: 4px; --cds-pad-sm: 8px; --cds-pad-md: 12px; --cds-pad-lg: 20px; --cds-pad-xl: 40px;
  --cds-radius: 12px;
  --cds-dur-slow: 400ms;
  --cds-ease-out: cubic-bezier(.2, .8, .2, 1);
  --color-ok: #2E7D32; --color-warn: #B26A00; --color-bad: #C62828;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: #F8F6F1; font-family: var(--font-anthropic-sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.is-dark { background: #0C0F14; }
.dash-skeleton { position: relative; color: transparent !important; }
.dash-skeleton::after {
  content: ""; position: absolute; inset: 2px 0; border-radius: 6px;
  background: color-mix(in srgb, currentColor 0%, var(--color-border-line, #E1E5EB));
  animation: dash-pulse 1.4s ease-in-out infinite;
}
.fm-chart.dash-skeleton::after, .fm-bubble.dash-skeleton::after { inset: 0; }
b.dash-skeleton, span.dash-skeleton { display: inline-block; min-width: 3.5em; }
@keyframes dash-pulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .dash-skeleton::after { animation: none; } }
noscript p { font: 15px/1.5 var(--font-anthropic-sans); max-width: 60ch; margin: 40px auto; padding: 0 16px; }
