/*
 * Dark theme: values for the role tokens (--tc- text, --tb- background,
 * --tl- line) under html.ofo-dark. GENERATED by tools/theme/build-dark-theme.py
 * - edit DARK_OVERRIDES there, not this file. In the light theme no token is
 * defined, so every var() falls back to its original colour.
 *
 * @author Sander Tamaela
 * @created 2026-10-29
 * @modified 2026-10-29
 */
html.ofo-dark {
  color-scheme: dark;
  color: #e6e8ec;
  background: #16181d;
  --tb-000000: #2b2f36;
  --tb-111111: #2d3139;
  --tb-111827: #2e333b;
  --tb-1e1e1e: #2f333b;
  --tb-42d4f4: #1c4a54;
  --tb-555555: #363b45;
  --tb-60a5fa: #60a5fa;
  --tb-6366f1: #6366f1;
  --tb-6ee7b7: #1c543e;
  --tb-86efac: #1c5430;
  --tb-8b5cf6: #8b5cf6;
  --tb-93c5fd: #1c3754;
  --tb-94a3b8: #2d3643;
  --tb-95a5a6: #464c59;
  --tb-999999: #484e5b;
  --tb-9ca3af: #424854;
  --tb-a78bfa: #2a1c54;
  --tb-a7f3d0: #1c543a;
  --tb-a855f7: #a855f7;
  --tb-aaffc3: #1c542d;
  --tb-bbf7d0: #215633;
  --tb-bfdbfe: #1f3551;
  --tb-c3c8d0: #30353e;
  --tb-c4b5fd: #2c2156;
  --tb-c7d2fe: #1e274e;
  --tb-cbd2dc: #2b2f37;
  --tb-cbd5e1: #2a2e36;
  --tb-cccccc: #2f333c;
  --tb-ccfbf1: #1d4d43;
  --tb-d1d5db: #2a2e36;
  --tb-d1fae5: #1d4c34;
  --tb-d4edda: #204e2b;
  --tb-d5dbe4: #272b32;
  --tb-dbeafe: #1b2d46;
  --tb-dcfce7: #1b472a;
  --tb-ddd6fe: #231b48;
  --tb-e0e7ff: #1a2344;
  --tb-e0f2fe: #1a3344;
  --tb-e3f2fd: #1a3243;
  --tb-e5e7eb: #22252b;
  --tb-e7f3ff: #192d41;
  --tb-e87ba4: #541c31;
  --tb-e9ecef: #202328;
  --tb-ec4899: #ec4899;
  --tb-ecfdf5: #1c1e23;
  --tb-ede9fe: #1c1f24;
  --tb-eeeeee: #1f2127;
  --tb-eef0f3: #1d2025;
  --tb-eef2f7: #1c1f24;
  --tb-eef2ff: #1b1d22;
  --tb-eef6ff: #1b1d22;
  --tb-eeffee: #1b1d22;
  --tb-ef4444: #ef4444;
  --tb-eff6ff: #1a1d21;
  --tb-f0f0f0: #1e2026;
  --tb-f0f4f8: #1c1e23;
  --tb-f0f9ff: #1a1c21;
  --tb-f0fdf4: #1b1d22;
  --tb-f1f3f6: #1c1f24;
  --tb-f1f5f9: #1b1e23;
  --tb-f3e5f5: #1f2228;
  --tb-f3e8ff: #2c1941;
  --tb-f3f4f6: #22262d;
  --tb-f43f5e: #f43f5e;
  --tb-f4f4f4: #1c1e23;
  --tb-f4f6f9: #1b1d22;
  --tb-f5f3ff: #191c20;
  --tb-f5f5f5: #1b1e23;
  --tb-f6f8ff: #191b1f;
  --tb-f7f7f7: #1a1d21;
  --tb-f7fbff: #181b1f;
  --tb-f87171: #f87171;
  --tb-f8d7da: #4a1c20;
  --tb-f8f8f8: #1a1c21;
  --tb-f8f9fa: #191c20;
  --tb-f8fafc: #191b20;
  --tb-f8faff: #181a1f;
  --tb-f9f9f9: #191c20;
  --tb-f9fafb: #1b1e24;
  --tb-f9fefb: #181a1f;
  --tb-fabed4: #532033;
  --tb-faf5ff: #191b20;
  --tb-fafafa: #191b20;
  --tb-fafbfc: #181b1f;
  --tb-fce7f3: #1d2025;
  --tb-fcfcfd: #181a1e;
  --tb-fcfcff: #17191d;
  --tb-fde047: #544b1c;
  --tb-fde68a: #54491c;
  --tb-fecaca: #4d1d1d;
  --tb-fecdd3: #4c1d23;
  --tb-fed7aa: #543a1c;
  --tb-fee2e2: #431a1a;
  --tb-fef08a: #544d1c;
  --tb-fef2f2: #1a1c21;
  --tb-fef3c7: #4e441e;
  --tb-fef9c3: #504c1e;
  --tb-fefafa: #181a1e;
  --tb-fefce8: #1c1f24;
  --tb-ffd8b1: #54381c;
  --tb-ffe4e6: #42191c;
  --tb-ffedd5: #48351b;
  --tb-ffeeee: #1b1d22;
  --tb-fff3cd: #4b401d;
  --tb-fff3e0: #44341a;
  --tb-fff5f5: #191b20;
  --tb-fff7e6: #413419;
  --tb-fff7ed: #1b1d22;
  --tb-fffac8: #4d491d;
  --tb-fffbeb: #1b1e23;
  --tb-ffffff: #16181d;
  --tb-rgba-0-0-0-0p02: rgba(255, 255, 255, 0.016);
  --tb-rgba-0-0-0-0p05: rgba(255, 255, 255, 0.04);
  --tb-rgba-244-246-249-0p7: rgba(22, 24, 29, 0.7);
  --tb-rgba-255-255-255-0: rgba(22, 24, 29, 0.0);
  --tb-rgba-255-255-255-0p08: rgba(22, 24, 29, 0.08);
  --tb-rgba-255-255-255-0p1: rgba(22, 24, 29, 0.1);
  --tb-rgba-255-255-255-0p12: rgba(22, 24, 29, 0.12);
  --tb-rgba-255-255-255-0p15: rgba(22, 24, 29, 0.15);
  --tb-rgba-255-255-255-0p18: rgba(22, 24, 29, 0.18);
  --tb-rgba-255-255-255-0p25: rgba(22, 24, 29, 0.25);
  --tb-rgba-255-255-255-0p65: rgba(22, 24, 29, 0.65);
  --tb-rgba-255-255-255-0p92: rgba(22, 24, 29, 0.92);
  --tc-000000: #f1f2f4;
  --tc-004085: #80b8f5;
  --tc-0056b3: #74b1f4;
  --tc-0066cc: #71b2f4;
  --tc-008300: #81f581;
  --tc-0284c7: #71c7f4;
  --tc-0369a1: #78c8f4;
  --tc-047857: #83f5d5;
  --tc-059669: #7af4ce;
  --tc-064e3b: #8ef6da;
  --tc-065f46: #89f5d7;
  --tc-06b6d4: #71e1f4;
  --tc-075985: #7fcbf5;
  --tc-0891b2: #72daf4;
  --tc-0c4a6e: #87caf2;
  --tc-0d8a6a: #7df3d5;
  --tc-0d9488: #7af3e8;
  --tc-0e9f6e: #76f3c9;
  --tc-0f172a: #abbbe1;
  --tc-0f766e: #86f0e7;
  --tc-10a37f: #76f2d3;
  --tc-10b981: #72f3c8;
  --tc-111111: #e6e7ea;
  --tc-111827: #eef0f3;
  --tc-115e59: #91ebe5;
  --tc-14532d: #98e6b7;
  --tc-155724: #97e6a9;
  --tc-1565c0: #75aff0;
  --tc-15803d: #85ebab;
  --tc-166534: #91e7b2;
  --tc-16a34a: #79eda4;
  --tc-1baf7a: #7aebc2;
  --tc-1d4ed8: #7897ed;
  --tc-1e3a8a: #869fe5;
  --tc-1e40af: #7c96e9;
  --tc-1f2937: #e6e8ec;
  --tc-20b2aa: #7de8e2;
  --tc-22c55e: #7de8a4;
  --tc-2563eb: #739bf2;
  --tc-333333: #cfd2d8;
  --tc-33cc33: #85e085;
  --tc-34d399: #81e4c0;
  --tc-3730a3: #8e89dc;
  --tc-374151: #d5d9df;
  --tc-3b1a7a: #aa8be6;
  --tc-3b82f6: #71a3f4;
  --tc-42d4f4: #71dcf4;
  --tc-4338ca: #8d86df;
  --tc-444444: #c4c8cf;
  --tc-469990: #96cfc9;
  --tc-475569: #a6b2c3;
  --tc-495057: #bcc0c8;
  --tc-4a3aa7: #988dd8;
  --tc-4b5563: #aab3bf;
  --tc-4c1d95: #a981e7;
  --tc-4f46e5: #a19cf6;
  --tc-555555: #b9bdc6;
  --tc-5b21b6: #a77de8;
  --tc-5c4112: #eaca92;
  --tc-64748b: #a6b0bf;
  --tc-65a30d: #bff475;
  --tc-666666: #aeb3bc;
  --tc-6b21a8: #b77fe6;
  --tc-6b7280: #a3a9b4;
  --tc-6c757d: #a4aab5;
  --tc-6d28d9: #a77de8;
  --tc-721c24: #e38f97;
  --tc-78350f: #f0ac85;
  --tc-7b1fa2: #c87fe6;
  --tc-7c2d12: #eda085;
  --tc-7c3aed: #a273f2;
  --tc-7f1d1d: #e48a8a;
  --tc-800000: #f58282;
  --tc-808000: #f5f582;
  --tc-84cc16: #bff075;
  --tc-854d0e: #f2bc7f;
  --tc-856404: #f5d77f;
  --tc-86efac: #78eda2;
  --tc-8b5cf6: #9971f4;
  --tc-8b919c: #9096a4;
  --tc-911eb4: #d07ce9;
  --tc-92400e: #f2a87b;
  --tc-9333ea: #b674f1;
  --tc-991b1b: #e87f7f;
  --tc-999999: #8c93a1;
  --tc-9a3412: #ef977a;
  --tc-9a6324: #e2b683;
  --tc-9b59b6: #bf95d0;
  --tc-9ca3af: #848b9a;
  --tc-9d174d: #ec7ba9;
  --tc-9f1239: #f07899;
  --tc-a16207: #f4c177;
  --tc-a855f7: #b471f4;
  --tc-b45309: #f4aa71;
  --tc-b91c1c: #eb7a7a;
  --tc-be123c: #f27392;
  --tc-be185d: #ee77a8;
  --tc-c026d3: #dc7de8;
  --tc-c2410c: #f49771;
  --tc-c82333: #e87d87;
  --tc-cc3333: #e08585;
  --tc-cd853f: #dfb286;
  --tc-d1d5db: #d1d5db;
  --tc-d97706: #f4b771;
  --tc-db2777: #e97cac;
  --tc-dc2626: #ea7b7b;
  --tc-dc3545: #e87d87;
  --tc-e34948: #eb7b7a;
  --tc-e65100: #f49f71;
  --tc-e87ba4: #e87da5;
  --tc-eb6834: #f19774;
  --tc-ec4899: #f174b2;
  --tc-eda100: #f4ca71;
  --tc-ef4444: #f37272;
  --tc-f032e6: #f471ed;
  --tc-f58231: #f4a771;
  --tc-f59e0b: #f4c371;
  --tc-f97316: #f4a771;
  --tc-fbbf24: #f4cf71;
  --tc-ff6347: #f48571;
  --tc-rgba-0-0-0-p18: rgba(255, 255, 255, 0.18);
  --tl-000000: #434956;
  --tl-111111: #434956;
  --tl-111827: #434956;
  --tl-22c55e: #22c55e;
  --tl-42d4f4: #266573;
  --tl-555555: #434956;
  --tl-6b7280: #656e81;
  --tl-6ee7b7: #267354;
  --tl-86efac: #267342;
  --tl-8b919a: #656e81;
  --tl-8b919c: #656e81;
  --tl-93c5fd: #264a73;
  --tl-999999: #4f5664;
  --tl-9ca3af: #4a505e;
  --tl-a7f3d0: #267350;
  --tl-aaffc3: #26733d;
  --tl-bae6fd: #265873;
  --tl-bbf7d0: #267341;
  --tl-bfdbfe: #264873;
  --tl-c3c8d0: #3b414c;
  --tl-c3e6cb: #2d6c3b;
  --tl-c7d2fe: #263673;
  --tl-cbd2dc: #373c46;
  --tl-cbd5e1: #363b45;
  --tl-cccccc: #3a404a;
  --tl-ccffcc: #267326;
  --tl-ced4da: #373c46;
  --tl-d1d5db: #363b45;
  --tl-d1fae5: #26734c;
  --tl-d5dbe4: #343942;
  --tl-dbeafe: #264773;
  --tl-dcfce7: #267341;
  --tl-ddd6fe: #342673;
  --tl-dddddd: #343842;
  --tl-dee2e6: #32363f;
  --tl-e0e0e0: #323740;
  --tl-e0e7ff: #263873;
  --tl-e2e8f0: #2f333c;
  --tl-e5e7eb: #2f343c;
  --tl-e6e9ef: #2e323b;
  --tl-e9d5ff: #4b2673;
  --tl-eceef1: #2d3139;
  --tl-eeeeee: #2d3139;
  --tl-eef0f3: #2c3038;
  --tl-eef0f5: #2b2f37;
  --tl-eff6ff: #292d35;
  --tl-f0c36d: #735826;
  --tl-f0f0f0: #2c3038;
  --tl-f0fdf4: #2a2d35;
  --tl-f1f3f5: #2b2f37;
  --tl-f1f5f9: #2a2e36;
  --tl-f3f4f6: #2a2e36;
  --tl-f4f6f9: #2a2d35;
  --tl-f5c6cb: #73262e;
  --tl-f9fafb: #282c33;
  --tl-fabed4: #732642;
  --tl-faf5ff: #282c33;
  --tl-fbbf24: #735d26;
  --tl-fca5a5: #732626;
  --tl-fcd34d: #736126;
  --tl-fde68a: #736326;
  --tl-fecaca: #732626;
  --tl-fef3c7: #736326;
  --tl-ffc107: #736026;
  --tl-ffcccc: #732626;
  --tl-ffd8b1: #734c26;
  --tl-fffac8: #736c26;
  --tl-fffbeb: #2a2e36;
  --tl-ffffff: #262a31;
  --tl-rgba-0-0-0-0p05: rgba(255, 255, 255, 0.05);
  --tl-rgba-0-0-0-0p08: rgba(255, 255, 255, 0.08);
  --tl-rgba-0-0-0-0p15: rgba(255, 255, 255, 0.15);
  --tl-rgba-0-0-0-0p2: rgba(255, 255, 255, 0.2);

  /* Page palettes whose variables serve as text AND fill (hand-picked). */
  --fo-accent: #818cf8;
  --fo-accent-hover: #a5b4fc;
  --fo-danger: #f87171;
  --fo-warning: #fbbf24;
  --ss-accent: #6b9af2;
  --ss-accent-soft: #1b2d46;
  --ss-success: #4ade80;
  --ss-success-soft: #1b472a;
  --ss-warning: #fbbf24;
  --ss-warning-soft: #3d2f12;
  --ss-danger: #f87171;
  --ss-danger-soft: #3f1d1d;
  --ss-info: #22d3ee;
  --ss-info-soft: #12393f;
  --notice-warn-border: #6b4f12;
  --notice-warn-bg: #2a2110;
  --notice-warn-text: #fcd34d;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 6px 20px rgba(0, 0, 0, 0.6);
}
html.ofo-dark body { color: #e6e8ec; }
/* Bare pages without base.css (admin debug output): readable links. */
:where(html.ofo-dark) a { color: #8fb3f5; }
/* Menus and popovers sit one step above the page. */
html.ofo-dark .user-menu-dropdown { background: #22262d; border-color: #3a404b; }
/* Grey secondary buttons read as disabled when they are mid grey on dark. */
html.ofo-dark .btn-secondary { background: #4b5563; }
html.ofo-dark .btn-secondary:hover { background: #5b6472; }
/* Graphic marks that carry meaning need 3:1 against the card (WCAG 1.4.11):
   empty weeks, empty sparkline cells, slider tracks. */
html.ofo-dark .ud-spark-off, html.ofo-dark .btr-spark-empty { background: #626977; opacity: 1; }
html.ofo-dark .weight-slider { background: #626977; }
/* Percentages on heat cells: lighter grey, the tints are darker than the card. */
html.ofo-dark .pd-pct-inline, html.ofo-dark .cf-pct-inline { color: #c9ced6; }
/* Sentiment chips: --sent-div-pos/neg are chart colours, too dark as text on the dark tints. */
html.ofo-dark .ins-chip.ins-chip--pos { color: #8fb3f5; }
html.ofo-dark .ins-chip.ins-chip--neg { color: #f8a5a5; }
/* Billing revenue bars: a chart, not a pastel panel. */
html.ofo-dark .b-bar .bar { background: #3b6fb6; }
html.ofo-dark .b-bar .bar.cur { background: #2563eb; }
/* The guide sets its palette on .guide-page itself, so override it there. */
html.ofo-dark .guide-page { --guide-accent: #6b9af2; --guide-accent-hover: #8fb3f5; --guide-accent-soft: #1b2d46; }
html.ofo-dark .guide-page .guide-section-num { color: #111827; }
/* Run status badges: light fills in the dark theme, so dark text. */
html.ofo-dark .badge-status { color: #111827; }
/* Solid accent buttons keep a fill that white text can sit on. */
html.ofo-dark .btn-categorize, html.ofo-dark .btn-near-dup { background: #4f46e5; }
html.ofo-dark .btn-categorize:hover, html.ofo-dark .btn-near-dup:hover { background: #4338ca; }
