:root {
  color-scheme: light;
  --ipsum-canvas: #ebedf1;
  --ipsum-surface: #fff;
  --ipsum-line: #e1e5ec;
  --ipsum-ink: #000;
  --ipsum-muted: var(--ipsum-ink);
  --ipsum-green: #195b49;
  --ipsum-green-hover: #134638;
  --ipsum-green-soft: #e8f4ee;

  --color-gray-50: var(--ipsum-canvas);
  --color-gray-100: #eef0f4;
  --color-gray-200: var(--ipsum-line);
  --color-gray-400: var(--ipsum-ink);
  --color-gray-500: var(--ipsum-muted);
  --color-gray-900: var(--ipsum-ink);
  --color-slate-400: var(--ipsum-ink);
  --color-slate-500: var(--ipsum-muted);
  --color-green-300: #237554;
  --color-green-400: #217357;
  --color-green-500: #227552;
  --color-green-600: var(--ipsum-green);
  --color-green-700: var(--ipsum-green-hover);
  --color-blue-50: #edf7f1;
  --color-blue-100: #e0f1e8;
  --color-blue-200: #bde0cd;
  --color-blue-300: #388265;
  --color-blue-400: #217357;
  --color-blue-500: #227552;
  --color-blue-600: var(--ipsum-green);
  --color-blue-700: var(--ipsum-green-hover);
  --color-blue-800: #123e30;
  --color-blue-900: #10382c;
  --color-blue-950: #0b2e24;
  --color-sky-50: #edf7f1;
  --color-sky-100: #e0f1e8;
  --color-sky-200: #bde0cd;
  --color-sky-300: #388265;
  --color-sky-400: #217357;
  --color-sky-500: #227552;
  --color-sky-600: var(--ipsum-green);
  --color-sky-700: var(--ipsum-green-hover);
  --color-sky-800: #123e30;
  --color-sky-900: #10382c;
  --color-sky-950: #0b2e24;
  --color-red-400: #b53536;
  --color-amber-400: #895800;
  --color-yellow-400: #835800;
  --color-red-300: #a53235;
  --color-orange-300: #8a4b1a;
  --color-orange-400: #944f1d;
  --color-yellow-300: #795100;
  --color-amber-300: #835500;
  --color-violet-300: #6843ad;
  --color-purple-300: #753c9a;
  --color-emerald-300: #216e53;
  --color-teal-300: #147368;
  --color-violet-400: #6843ad;
  --color-emerald-400: #217357;
  --color-teal-400: #14786c;
}

/* Neutral text utilities are shared with background tokens, so change only color. */
:is(.text-gray-200, .text-gray-300, .text-gray-400, .text-gray-500, .text-gray-600,
    .text-gray-700, .text-gray-800, .text-gray-900, .text-slate-100, .text-slate-200,
    .text-slate-300, .text-slate-400, .text-slate-500, .text-slate-600, .text-slate-700,
    .text-slate-800, .text-slate-900) {
  color: var(--ipsum-ink);
}

body {
  background: var(--ipsum-canvas);
  color: var(--ipsum-ink);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.ipsum-sidebar {
  border-color: var(--ipsum-line);
}

.ipsum-sidebar nav a[aria-current="page"] {
  color: var(--ipsum-green);
  background: var(--ipsum-green-soft);
  font-weight: 650;
}

.ipsum-header {
  background: var(--ipsum-surface);
  border-color: var(--ipsum-line);
}

.ipsum-header button:hover,
.ipsum-sidebar button:hover,
.ipsum-sidebar nav a:hover {
  color: var(--ipsum-green);
  background: var(--ipsum-green-soft);
}

.ipsum-main {
  min-width: 0;
}

.ipsum-main :where(.rounded-2xl, .rounded-xl).bg-white.border {
  border-color: var(--ipsum-line);
}

.ipsum-main :where(thead) {
  background-color: var(--ipsum-canvas);
  color: var(--ipsum-muted);
}

.ipsum-main :where(tbody > tr:hover) {
  background-color: #f7f9fb;
}

:where(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--ipsum-green);
  outline-offset: 2px;
}

:where(input[type="checkbox"], input[type="radio"], progress) {
  accent-color: var(--ipsum-green);
}

/* Legacy primary buttons use dark text on a green utility background. */
:is(button, a):is(.bg-green-400, .bg-green-500, .bg-blue-500, .bg-blue-600).text-gray-900,
:is(button, a):is(.bg-green-400, .bg-green-500, .bg-blue-500, .bg-blue-600).text-slate-900,
:is(button, a):is(.bg-green-400, .bg-green-500, .bg-blue-500, .bg-blue-600).text-black {
  color: white;
}

.ipsum-main .recharts-cartesian-axis-tick-value {
  fill: var(--ipsum-muted);
}

.ipsum-main .recharts-cartesian-grid line {
  stroke: var(--ipsum-line);
}

.ipsum-main .recharts-default-tooltip {
  background: var(--ipsum-surface) !important;
  border: 1px solid var(--ipsum-line) !important;
  border-radius: 10px;
  color: var(--ipsum-ink);
}

.ipsum-main .recharts-tooltip-item {
  color: var(--ipsum-ink) !important;
}

.forecast {
  color: var(--ipsum-ink);
  background: var(--ipsum-canvas);
}

.forecast :is(.f-panel, .f-stat, button, select, input:not([type="checkbox"])) {
  background: var(--ipsum-surface);
  color: var(--ipsum-ink);
  border-color: var(--ipsum-line);
}

.forecast :is(p, th, .f-eyebrow, .f-period, .f-field > span, .f-stat > span, small, .f-tabs button) {
  color: var(--ipsum-muted);
}

.forecast :is(.f-subpanel, .f-badge) {
  color: var(--ipsum-muted);
  background: var(--ipsum-canvas);
}

.forecast :is(.f-note, .f-toast, .f-tabs button.active, .f-eyebrow span) {
  color: var(--ipsum-green);
  background: var(--ipsum-green-soft);
  border-color: #bde0cd;
}

.forecast :is(.f-link, summary, .f-prose h3) {
  color: var(--ipsum-green);
}

.forecast :is(.f-tabs, td, th, .f-company-result) {
  border-color: var(--ipsum-line);
}

.forecast button.primary {
  background: var(--ipsum-green);
  border-color: var(--ipsum-green);
  color: #fff;
}

.forecast button:hover {
  border-color: var(--ipsum-green);
}

.forecast :is(button, input, select):focus-visible {
  outline-color: var(--ipsum-green);
}

.forecast input[type="date"] {
  color-scheme: light;
}

.forecast input[type="checkbox"] {
  accent-color: var(--ipsum-green);
}

.forecast :is(.f-warning, .f-badge.fixed) {
  background: #fff6e5;
  border-color: #edd4a5;
}

.forecast :is(.f-warning p, .f-stat.amber strong, .f-negative, .f-badge.fixed) {
  color: #855000;
}

.ws-root {
  --ws-ink: var(--ipsum-ink);
  --ws-muted: var(--ipsum-muted);
  --ws-line: var(--ipsum-line);
  --ws-soft: var(--ipsum-green-soft);
}

/* Finance, warehouse and production also contain unconditional dark utilities. */
.ipsum-main :is(.bg-slate-900, .bg-slate-950, .bg-slate-900\/80, .bg-slate-900\/60) {
  background-color: var(--ipsum-surface);
}

.ipsum-main :is(.bg-slate-700, .bg-slate-800, .bg-slate-800\/30, .bg-slate-800\/50, .bg-slate-950\/40) {
  background-color: var(--ipsum-canvas);
}

.ipsum-main :is(.hover\:bg-slate-700, .hover\:bg-slate-800):hover {
  background-color: #e8edf2;
}

.ipsum-main :is(.text-slate-100, .text-slate-200, .hover\:text-slate-200:hover) {
  color: var(--ipsum-ink);
}

.ipsum-main :is(.text-slate-300, .text-gray-300, .text-gray-200) {
  color: var(--ipsum-muted);
}

.ipsum-main :is(.border-white\/5, .border-white\/10, .border-white\/20) {
  border-color: var(--ipsum-line);
}

.ipsum-main .divide-white\/5 > :not(:last-child),
.ipsum-main .divide-white\/10 > :not(:last-child) {
  border-color: var(--ipsum-line);
}
