/* Jarvis tokens. Yves Tremblay's own brand (brand decision of 21 September 2026), copied value for value from his
   Jarvis workspace (~/Desktop/jarvis-workspace/public/tokens.css and theme.css). See docs/LOOK.md.
   Light by default; without data-theme it follows the system; an explicit choice wins.
   Colours live only in this file, never in components: components ask for a role (--signal, --brand-ink, --hairline…).
   Fonts are embedded (fonts/, SIL Open Font License). */

:root, [data-theme="light"] {
  color-scheme: light;
  --paper: #FAFAF7;
  --card: #FFFFFF;
  --ink: #0B120F;
  --ink-soft: #1A241F;
  --ink-2: #1A241F;
  --muted: #5F6B65;
  --hairline: #E4E6E1;
  --signal: #B8FF2E;
  --signal-deep: #8FD400;
  --signal-ink: #3E5A00;
  --signal-wash: #F2FFDC;
  /* Default identity accent; personal workspace colors do not indicate status. */
  --brand-ink: #355313;
  /* Half the previous tint against the card; labels remain fully opaque. */
  --brand-wash: #F7FBF2;
  --brand-accent: #6D992E;
  --brand-line: #739D35;
  --sea: var(--brand-ink);
  --sea-wash: var(--brand-wash);
  --amber: #FFB020;
  --warn-wash: #FFF3D6;
  --warn-ink: #674500;
  --coral: #FF5F45;
  --stop-wash: #FFE7E2;
  --stop-ink: #922A18;
  --on-signal: #0B120F;
  /* Light chrome follows the light theme; large panels are never forced dark. */
  --workspace-bg: #F0F1EE;
  --canvas-bg: #F5F6F3;
  --topbar-bg: var(--card);
  --inspector-bg: var(--card);
  --rail-bg: var(--paper);
  --rail-fg: var(--ink);
  --rail-muted: var(--muted);
  --rail-line: var(--hairline);
  --rail-hover: var(--canvas-bg);
  --rail-sea: var(--sea);
  --rail-signal-ink: var(--signal-ink);
  --rail-wash: var(--sea-wash);
  --node-bg: var(--card);
  --node-fg: var(--ink);
  --node-muted: var(--muted);
  --node-border: var(--muted);
  --selection: var(--ink);
  --dependency: var(--sea);
  --owner-claude: var(--sea);
  --owner-codex: var(--ink);
  --owner-yves: var(--signal-deep);
  --owner-unknown: var(--node-border);
  --write-bg: var(--ink);
  --write-fg: var(--paper);
  --write-muted: #C3CCC5;
  --status-deployed: var(--signal-deep);
  --status-deployed-ink: var(--signal-ink);
  --status-ready: var(--amber);
  --status-ready-ink: var(--warn-ink);
  --status-to-prove: var(--sea);
  --status-blocked: var(--coral);
  --status-blocked-ink: var(--stop-ink);
  --status-to-build: var(--muted);
  --shadow-color: #0B120F0A;
  --scrim: #0B120F66;
  --clear: transparent;
  --font-title: "Inter Tight", "Arial Narrow", sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-data: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
  --weight-title: 800;
  --weight-body: 300;
  --weight-data: 400;
  --tracking-title: -.045em;
  --tracking-wordmark: -.065em;
  --tracking-micro: .16em;
  --radius-pill: 999px;
  --radius-card: 24px;
  --radius-node: 20px;
  --shadow-low: 0 1px 5px var(--shadow-color);
  --shadow-panel: 0 8px 28px var(--shadow-color);
  --ease-travel: cubic-bezier(.2,.7,.2,1);
  --motion-enter: 740ms;
  --motion-travel: 600ms;
  --motion-pulse: 2.8s;
  --travel-distance: 26px;
  --wordmark-dot-size: .19cap;
  --viewer: 43%;
  --orb-highlight: #F5FFC7;
  --orb-shadow: #35531340;
  --orb-glow: #35531314;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]):not([data-theme="dark"]) {
    color-scheme: dark;
    --paper: #080D0B;
    --card: #111815;
    --ink: #F4F7F2;
    --ink-soft: #D6DED8;
    --ink-2: #D6DED8;
    --muted: #8A968F;
    --hairline: #232D28;
    --signal: #B8FF2E;
    --signal-deep: #8FD400;
    --signal-ink: #CFFF6A;
    --signal-wash: #17250F;
    --brand-ink: #C7E5A2;
    --brand-wash: #161F15;
    --brand-accent: #8FD400;
    --brand-line: #89BB3A;
    --sea: var(--brand-ink);
    --sea-wash: var(--brand-wash);
    --amber: #FFB020;
    --warn-wash: #30250F;
    --warn-ink: #FFD684;
    --coral: #FF5F45;
    --stop-wash: #321B16;
    --stop-ink: #FFB7A9;
    --workspace-bg: var(--paper);
    --canvas-bg: var(--paper);
    --topbar-bg: var(--paper);
    --inspector-bg: var(--card);
    --shadow-low: 0 3px 12px var(--shadow-color);
    --rail-bg: #111815;
    --rail-fg: #F4F7F2;
    --rail-muted: #8A968F;
    --rail-line: #46534C;
    --rail-hover: #232D28;
    --rail-sea: var(--brand-ink);
    --rail-signal-ink: #CFFF6A;
    --rail-wash: var(--brand-wash);
    --write-bg: var(--paper);
    --write-fg: var(--ink);
    --write-muted: var(--muted);
    --shadow-color: #00000033;
    --scrim: #00000099;
  }
}

[data-theme="dark"] {
  color-scheme: dark;
  --paper: #080D0B;
  --card: #111815;
  --ink: #F4F7F2;
  --ink-soft: #D6DED8;
  --ink-2: #D6DED8;
  --muted: #8A968F;
  --hairline: #232D28;
  --signal: #B8FF2E;
  --signal-deep: #8FD400;
  --signal-ink: #CFFF6A;
  --signal-wash: #17250F;
  --brand-ink: #C7E5A2;
  --brand-wash: #161F15;
  --brand-accent: #8FD400;
  --brand-line: #89BB3A;
  --sea: var(--brand-ink);
  --sea-wash: var(--brand-wash);
  --amber: #FFB020;
  --warn-wash: #30250F;
  --warn-ink: #FFD684;
  --coral: #FF5F45;
  --stop-wash: #321B16;
  --stop-ink: #FFB7A9;
  --workspace-bg: var(--paper);
  --canvas-bg: var(--paper);
  --topbar-bg: var(--paper);
  --inspector-bg: var(--card);
  --shadow-low: 0 3px 12px var(--shadow-color);
  --rail-bg: #111815;
  --rail-fg: #F4F7F2;
  --rail-muted: #8A968F;
  --rail-line: #46534C;
  --rail-hover: #232D28;
  --rail-sea: var(--brand-ink);
  --rail-signal-ink: #CFFF6A;
  --rail-wash: var(--brand-wash);
  --write-bg: var(--paper);
  --write-fg: var(--ink);
  --write-muted: var(--muted);
  --shadow-color: #00000033;
  --scrim: #00000099;
}

@media (prefers-reduced-motion: reduce) {
  :root { --motion-enter: 0ms; --motion-travel: 0ms; }
}

/* Account preference: distinguish simultaneous workspaces without changing status colors. */
:root[data-accent="violet"] {
  --signal: #C7C1FF;
  --signal-deep: #B1A7FF;
  --signal-ink: #46318A;
  --signal-wash: #EEE9FF;
  --brand-ink: #46318A;
  --brand-wash: #F7F4FF;
  --brand-accent: #7960C7;
  --brand-line: #8665D3;
  --workspace-bg: #F0EDF6;
  --canvas-bg: #F6F3FA;
  --orb-highlight: #F8F4FF;
  --orb-shadow: #49347840;
  --orb-glow: #49347814;
}

/* A chosen hue keeps readable controls, pale surfaces and unchanged billing status tokens. */
:root[data-accent="custom"] {
 --signal:hsl(var(--accent-hue) var(--accent-saturation) 78%);
 --signal-deep:hsl(var(--accent-hue) var(--accent-saturation) 66%);
 --signal-ink:hsl(var(--accent-hue) var(--accent-saturation) 23%);
 --signal-wash:hsl(var(--accent-hue) var(--accent-saturation) 95%);
 --brand-ink:hsl(var(--accent-hue) var(--accent-saturation) 23%);
 --brand-wash:hsl(var(--accent-hue) var(--accent-saturation) 98%);
 --brand-accent:hsl(var(--accent-hue) var(--accent-saturation) 38%);
 --brand-line:hsl(var(--accent-hue) var(--accent-saturation) 48%);
 --workspace-bg:hsl(var(--accent-hue) 22% 94%);
 --canvas-bg:hsl(var(--accent-hue) 22% 97%);
 --orb-highlight:hsl(var(--accent-hue) var(--accent-saturation) 95%);
 --orb-shadow:hsl(var(--accent-hue) var(--accent-saturation) 23% / .25);
 --orb-glow:hsl(var(--accent-hue) var(--accent-saturation) 23% / .08);
}
:root{
 --color-wheel:conic-gradient(#ef5895,#ef952c,#b8ff2e,#19b8ab,#3488ff,#9b79e8,#ef5895);
 --swatch-green:#b8ff2e;--swatch-violet:#c7c1ff;--swatch-blue:#3488ff;--swatch-teal:#19b8ab;--swatch-rose:#ee5895;--swatch-amber:#ef952c;
}

/* Dark mode for each accent (from theme.css). */
:root[data-theme="dark"][data-accent="custom"]{
 --signal:hsl(var(--accent-hue) var(--accent-saturation) 72%);
 --signal-deep:hsl(var(--accent-hue) var(--accent-saturation) 58%);
 --signal-ink:hsl(var(--accent-hue) var(--accent-saturation) 80%);
 --signal-wash:hsl(var(--accent-hue) 40% 13%);
 --brand-ink:hsl(var(--accent-hue) var(--accent-saturation) 82%);
 --brand-wash:hsl(var(--accent-hue) 26% 10%);
 --brand-accent:hsl(var(--accent-hue) var(--accent-saturation) 62%);
 --brand-line:hsl(var(--accent-hue) var(--accent-saturation) 46%);
 --workspace-bg:var(--paper);--canvas-bg:var(--paper);
 --orb-highlight:hsl(var(--accent-hue) var(--accent-saturation) 88%);
 --orb-shadow:hsl(var(--accent-hue) var(--accent-saturation) 60% / .25);
 --orb-glow:hsl(var(--accent-hue) var(--accent-saturation) 60% / .1);
}
:root[data-theme="dark"][data-accent="violet"]{
 --signal:#C7C1FF;--signal-deep:#B1A7FF;--signal-ink:#DCD6FF;--signal-wash:#1D1830;
 --brand-ink:#DCD6FF;--brand-wash:#15121F;--brand-accent:#B1A7FF;--brand-line:#8665D3;
 --workspace-bg:var(--paper);--canvas-bg:var(--paper);--orb-highlight:#EDEAFF;--orb-shadow:#B1A7FF40;--orb-glow:#B1A7FF1A;
}

/* Fonts (embedded). */
@font-face{font-family:"Inter Tight";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/inter-tight-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:800;font-style:normal;font-display:swap;src:url(fonts/inter-tight-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:300;font-style:normal;font-display:swap;src:url(fonts/inter-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-weight:400;font-style:italic;font-display:swap;src:url(fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}

/* ── Additions for Jarvis Build (roles the source didn't need). Still the only place colours live. ── */
:root{
 /* Background choices (Your colour is a wash of the accent; see the components). */
 --bg-dawn:linear-gradient(160deg,#F7C9BC,#EDC7E8 50%,#C9C4F5);
 --bg-ocean:linear-gradient(160deg,#B6E4EE,#B9EAD9 50%,#C4D3F6);
 --swatch-plain:#F1EFF4;
 /* The landing sky */
 --sky1:#2B3F5C;--sky2:#56677D;--sky3:#B9A48A;--on-sky:#F4F7F2;--on-sky-dim:rgba(244,247,242,.72);
 --glass:rgba(255,255,255,.08);--glass-line:rgba(255,255,255,.18);--sun:rgba(255,226,180,.26);
 /* Brand marks of other services (not ours to recolour) */
 --gh-bg:#1F2328;--gh-fg:#FFFFFF;--gh-hover:#32383F;
 /* Text on strong colours (design tab, live tab, avatars) */
 --on-strong:#FFFFFF;
 --sky-shade:rgba(10,16,24,.3);
 /* Tabs and stages */
 --design:#6B3FC2;--design-soft:#B79CFF;--live:#0E9F8E;
 --term:var(--write-bg);--term-fg:#CFE8B8;--term-dim:#6F8277;
}
[data-theme="dark"]{--bg-dawn:linear-gradient(160deg,#2E1C38,#4E2A44 50%,#6A4236);--bg-ocean:linear-gradient(160deg,#0D2433,#123B44 50%,#184F4B);--swatch-plain:#1D1D24;--gh-bg:#F0F3F6;--gh-fg:#1F2328;--gh-hover:#D1D9E0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg-dawn:linear-gradient(160deg,#2E1C38,#4E2A44 50%,#6A4236);--bg-ocean:linear-gradient(160deg,#0D2433,#123B44 50%,#184F4B);--swatch-plain:#1D1D24;--gh-bg:#F0F3F6;--gh-fg:#1F2328;--gh-hover:#D1D9E0}}
