/* Voltframe design tokens — imported from the Voltframe Design System. */
@import url("https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&family=Hanken+Grotesk:wght@400;500;600;700&family=Roboto+Mono:wght@400;500;600&display=swap");

:root{
  /* Neutrals: warm charcoal ink on warm cream paper */
  --ink-900:#12160F; --ink-800:#181D14; --ink-700:#242A1F; --ink-600:#3C4436;
  --ink-500:#4F5847; --ink-400:#6E7666; --ink-300:#98A08E; --ink-200:#C3C8BB; --ink-100:#DDE0D5;

  /* Warm cream paper */
  --paper-0:#FBFAF3; --paper-1:#F4F2E8; --paper-2:#ECE9DA; --paper-3:#E0DCC9;

  /* Forest — signature brand surface */
  --forest-900:#06251B; --forest-800:#0A3226; --forest-700:#0E3E2F;
  --forest-600:#175041; --forest-500:#256B57; --forest-tint:#173A2E;

  /* Volt — electric signal accent */
  --volt-700:#6E8F16; --volt-600:#9BC42A; --volt-500:#C3F53C;
  --volt-400:#D3F877; --volt-200:#E9FCB8; --volt-050:#F5FDDE;

  /* Five data sources */
  --src-grid:#2E5AAC; --src-solar:#E8912F; --src-storage:#7C5CD6; --src-hvac:#16B097; --src-dr:#E1503B;
  --src-grid-soft:#E4EAF6; --src-solar-soft:#FBEEDC; --src-storage-soft:#EDE9FA; --src-hvac-soft:#DFF3EF; --src-dr-soft:#FBE7E3;

  /* Status */
  --status-ok:#1B7A4F; --status-ok-soft:#E1F1E7; --status-warn:#A8620A; --status-warn-soft:#F9EDD9;
  --status-alert:#C13B29; --status-alert-soft:#F9E6E2; --status-info:#2E5AAC; --status-info-soft:#E4EAF6;

  /* Semantic aliases */
  --text-strong:var(--ink-900); --text-body:var(--ink-700); --text-muted:var(--ink-500); --text-faint:var(--ink-400);
  --text-inverse:#F3F6EE; --text-inverse-muted:#9DB3A6; --text-link:var(--forest-700); --text-link-hover:var(--volt-700);

  --surface-page:var(--paper-0); --surface-sunken:var(--paper-1); --surface-card:#FFFFFF;
  --surface-panel:var(--paper-2); --surface-inverse:var(--forest-800); --surface-inverse-raised:var(--forest-700); --surface-accent:var(--volt-050);

  --border-hairline:#E7E4D6; --border-default:#DCD8C8; --border-strong:#C7C3B1; --border-inverse:rgba(243,246,238,.14); --border-focus:var(--forest-700);

  --action-primary-bg:var(--forest-800); --action-primary-bg-hover:var(--forest-900); --action-primary-fg:#F3F6EE;
  --action-accent-bg:var(--volt-500); --action-accent-bg-hover:var(--volt-400); --action-accent-fg:var(--forest-900);

  --focus-ring:0 0 0 2px var(--paper-0),0 0 0 4px var(--volt-600);
  --focus-ring-inverse:0 0 0 2px var(--forest-800),0 0 0 4px var(--volt-500);

  /* Fonts */
  --font-sans:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-display:"Hanken Grotesk","Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:"Roboto Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --weight-regular:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700;

  --text-display-0:clamp(44px,7.4vw,108px);
  --text-display-1:clamp(40px,6vw,84px);
  --text-display-2:clamp(34px,4.6vw,62px);
  --text-display-3:clamp(28px,3.3vw,46px);
  --leading-display:0.98; --tracking-display:-0.03em;

  --leading-heading:1.2; --tracking-heading:-0.014em;
  --leading-body:1.55; --leading-body-tight:1.4; --tracking-body:-0.005em;

  --text-eyebrow:11px; --tracking-eyebrow:0.13em;
  --numeric-tabular:tabular-nums;

  --shell-max:1200px;
  --transition-control:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease;
}
