/* OpenTrack color roles.
   Navy = depth + structure. Warm paper = breathing room. Teal = purposeful emphasis.
   Brand accents are kept distinct from status meanings. */
:root{
  /* --- Brand base --- */
  --ot-navy-900:#02132a; --ot-navy-800:#042044; --ot-navy-700:#0a2f5c; --ot-navy-600:#124173;
  --ot-blue-600:#1f5f96; --ot-blue-500:#297cbf; --ot-blue-400:#5a9cd2; --ot-blue-200:#bcd6ea;
  --ot-teal-600:#1f8c90; --ot-teal-500:#50c3c7; --ot-teal-400:#7fdadd; --ot-teal-300:#a9e8ea; --ot-teal-100:#e2f7f7;
  --ot-paper:#f6f4ed; --ot-paper-deep:#ece8dc; --ot-white:#ffffff; --ot-charcoal:#1c1f24;

  /* --- Warm neutrals --- */
  --ot-neutral-050:#faf9f5; --ot-neutral-100:#f1efe8; --ot-neutral-200:#e3e0d6;
  --ot-neutral-300:#cdc9bd; --ot-neutral-400:#a8a49a; --ot-neutral-500:#726f66;
  --ot-neutral-600:#5b5953; --ot-neutral-700:#3d3c38; --ot-neutral-800:#262623;

  /* --- Status (never brand accents) --- */
  --ot-success-700:#12674a; --ot-success-500:#1f8a5b; --ot-success-100:#e4f3ec;
  --ot-warning-700:#8a5205; --ot-warning-500:#f5a623; --ot-warning-100:#fdf1dc;
  --ot-danger-700:#8c1c14; --ot-danger-500:#b42318; --ot-danger-100:#fbe9e7;
  --ot-info-700:#1f5f96; --ot-info-500:#297cbf; --ot-info-100:#e6effa;

  /* --- Semantic surfaces --- */
  --surface-page:var(--ot-paper);
  --surface-card:var(--ot-white);
  --surface-sunken:var(--ot-neutral-100);
  --surface-inverse:var(--ot-navy-800);
  --surface-inverse-deep:var(--ot-navy-900);
  --surface-accent:var(--ot-teal-500);
  --surface-accent-soft:var(--ot-teal-100);
  --surface-app:var(--ot-neutral-050);

  /* --- Semantic text --- */
  --text-heading:var(--ot-navy-800);
  --text-body:var(--ot-neutral-800);
  --text-muted:var(--ot-neutral-600);
  --text-faint:var(--ot-neutral-500);
  --text-on-inverse:var(--ot-white);
  --text-on-inverse-muted:#b6c4d6;
  --text-on-accent:var(--ot-navy-800);
  --text-link:var(--ot-blue-600);
  --text-link-hover:var(--ot-navy-800);

  /* --- Borders --- */
  --border-subtle:var(--ot-neutral-200);
  --border-default:var(--ot-neutral-300);
  --border-strong:var(--ot-navy-800);
  --border-inverse:#1d3c66;
  --focus-ring:var(--ot-teal-600);

  /* --- Data viz: ordered series ramp (ocean -> rail -> drayage -> other) --- */
  --data-1:var(--ot-navy-800); --data-2:var(--ot-blue-500); --data-3:var(--ot-teal-500);
  --data-4:var(--ot-navy-600); --data-5:var(--ot-teal-600); --data-6:var(--ot-neutral-400);
  --data-grid:var(--ot-neutral-200);
  --data-axis:var(--ot-neutral-400);
  --data-uncertainty:#cfe9ea;      /* interval band fill */
  --data-missing:var(--ot-neutral-300);
  --data-emphasis:var(--ot-warning-500);
  --data-baseline:var(--ot-neutral-500);
}
