/*
 * HOMEi design tokens — the one place a colour is decided.
 * ─────────────────────────────────────────────────────────────────────
 * WHY THIS FILE EXISTS (audit 2026-09-10, on origin/main at def18022f)
 *
 *   586 colour declarations across the 13 panel stylesheets
 *   279 distinct values
 *   165 of them (59%) used exactly ONCE
 *   105 distinct low-saturation greys
 *    39 values shared by three sheets or more
 *
 * A hundred and five greys is not a palette, it is an accident. Three
 * sheets carry their own local variable layer WITH a dark mirror
 * (construction-tracking, sales-projects, project-360) — done properly,
 * but each with its own names and its own values, so the same role is
 * three different colours. Three others carry no dark handling at all
 * (contract-delivery-terms, sales-inventory, unit-details), and screen-
 * local <style> blocks carry none either: on the Collections screen the
 * headline figure resolved to slate-700 on a near-black ground — 1.71:1,
 * where 3:1 is the minimum — which is why dark mode is currently
 * switched off (HO-3101).
 *
 * A token here is a ROLE, never a colour name: `--ho-danger-ink`, not
 * `--ho-red-700`. The role is what a reader can choose correctly; the
 * colour is what they guess at. That is the whole point.
 *
 * ─────────────────────────────────────────────────────────────────────
 * HOW TO USE IT
 *
 *   .my-card      { background: var(--ho-surface); color: var(--ho-ink); }
 *   .my-card-late { color: var(--ho-danger-ink); background: var(--ho-danger-soft); }
 *
 * Consume tokens; do not write a hex. A sheet built entirely on these
 * gets dark mode for free — that is the condition HO-3101 records for
 * turning dark mode back on. tests/Feature/Design/StylesheetHexRatchet
 * Test.php holds each sheet's current hex count and lets it go DOWN
 * only, so the count falls sheet by sheet instead of a big-bang rewrite.
 *
 * MIGRATION ORDER
 *   First, the three sheets with NO dark handling — they gain it for
 *   free the moment they read from here:
 *     unit-details.css (13 KB) · sales-inventory.css (12 KB)
 *     contract-delivery-terms.css (9 KB)
 *   Then the sheets that already carry a local variable layer: re-point
 *   their definitions at these tokens (a small diff at the top of each
 *   file, not a rewrite) so one role is one colour everywhere:
 *     sales-projects.css · construction-tracking.css · project-360.css
 *     workforce.css · payroll.css · navigation.css · assistant.css
 *
 * ─────────────────────────────────────────────────────────────────────
 * THE CONTRAST GUARANTEE
 *
 * Every pairing below is measured, in BOTH themes, by
 * tests/Feature/Design/DesignTokenContrastTest.php — which parses THIS
 * file, so the numbers cannot drift away from the values. Text pairings
 * meet WCAG 2.1 AA (4.5:1); control boundaries meet 1.4.11 (3:1).
 *
 * There is deliberately NO "faint ink" token. The greys the sheets used
 * for de-emphasised text — #9ca3af at 2.5:1, #7c8c9c at 3.4:1 — cannot
 * pass as text at any size. De-emphasis is `--ho-ink-muted`; anything
 * lighter is a LINE, not a word.
 */

:root {
    --ho-handover-action-fill: #f5c400;
    --ho-handover-action-ink: #1a1d24;
    /* Shared unit-map roles: occupancy remains separate from handover readiness. */
    --ho-unit-reserved-fill: #f5c400;
    --ho-unit-reserved-ink:  #3d2f00;
    --ho-unit-verify-fill:   #eeebfd;
    --ho-unit-verify-ink:    #5546c9;
    --ho-unit-verify-line:   #cfc8f7;
    --ho-unit-unready-fill:  #d9dce2;
    /* ── Surfaces ──────────────────────────────────────────────────
       sunken = the page behind everything · surface = a card sitting
       on it · raised = a modal, popover or drawer above both. */
    --ho-surface:            #ffffff;
    --ho-surface-sunken:     #f9fafb;
    --ho-surface-raised:     #ffffff;
    /* inset = a tint ON a surface: a toggle's track, a segment control's
       well, a table's hover row. Screens were already painting gray-100 for
       this, and muted ink sat at 4.39:1 on it — so the token exists, and
       muted ink is measured against it. */
    --ho-surface-inset:      #f3f4f6;

    /* ── Ink ───────────────────────────────────────────────────────
       Two text inks, and only two. `ink` for anything a decision is
       made from — a figure, a name, a status. `ink-muted` for the
       supporting line beneath it — gray-500 nudged three units darker so
       it clears 4.5:1 on the inset tint too. Nothing lighter is a text
       colour. */
    --ho-ink:                #111827;   /* 17.74:1 on surface */
    --ho-ink-muted:          #68707d;   /*  5.00:1 on surface · 4.78 on sunken · 4.54 on inset */

    /* ── Lines ─────────────────────────────────────────────────────
       `line` separates content and carries no contrast duty. `line-
       strong` is the EDGE OF A CONTROL — an input, a checkbox, a
       button outline — and therefore must stay ≥3:1 (WCAG 1.4.11).
       The old #d1d5db sat at 1.47:1: an input nobody could find. */
    --ho-line:               #e5e7eb;
    --ho-line-strong:        #868e9c;   /*  3.30:1 on surface · 3.16 on sunken */

    /* ── Focus ─────────────────────────────────────────────────────
       Never remove the ring; recolour it with this. */
    --ho-focus:              #2563eb;   /*  5.17:1 on surface */

    /* ── Semantic: danger ──────────────────────────────────────────
       Overdue, breached, refused, failed. `ink` on a plain surface,
       `ink` on `soft` for a badge, `line` for the bar or border. */
    --ho-danger-ink:         #b91c1c;   /*  6.47:1 on surface · 5.91 on soft */
    --ho-danger-soft:        #fef2f2;
    --ho-danger-line:        #dc2626;

    /* ── Semantic: warning — due today, at risk, needs attention ── */
    --ho-warning-ink:        #92400e;   /*  7.09:1 on surface · 6.84 on soft */
    --ho-warning-soft:       #fffbeb;
    --ho-warning-line:       #d97706;

    /* ── Semantic: success — paid, delivered, on time, approved ─── */
    --ho-success-ink:        #15803d;   /*  5.02:1 on surface · 4.79 on soft */
    --ho-handover-final-ready-fill: #ccfbf1;
    --ho-handover-final-ready-ink: #115e59;
    --ho-success-soft:       #f0fdf4;
    --ho-success-line:       #16a34a;

    /* ── Semantic: info — scheduled, informational, in progress ─── */
    --ho-info-ink:           #1d4ed8;   /*  6.70:1 on surface · 6.16 on soft */
    --ho-info-soft:          #eff6ff;
    --ho-info-line:          #2563eb;

    /* ── Accent (brand) ────────────────────────────────────────────
       The HOMEi orange is #e97524. As TEXT it is 2.7:1 and fails, so
       the readable form of the brand colour is orange-700; keep the
       brand hex for logos and large fills only, never for words. */
    --ho-accent-ink:         #c2410c;   /*  5.18:1 on surface · 4.88 on soft */
    --ho-accent-soft:        #fff7ed;
    --ho-accent-line:        #ea580c;
    /* ── Brand ground (CUSTODY-EXP-1) ───────────────────────────────
       The approved requests reference is a light BLUE ground with navy
       ink, not the neutral grey the surfaces above describe. These are
       the roles for it, so a sheet that wants that temperament reads
       from here instead of inventing its own — the mistake tokens.css
       exists to end. All measured below, in both themes.

       `--ho-accent-fill` is the accent as a FILL, i.e. a colour with
       white written on it, which is a different requirement from the
       accent as ink. The brighter brand orange carries only 2.87:1 under
       white and cannot be a button label's ground at any size; this is
       the product's own accent, deep enough that the words on it pass. */
    --ho-ground-brand:       #f0f7ff;
    --ho-surface-brand:      #f8fbff;
    --ho-line-brand:         #dce9fa;
    --ho-line-brand-soft:    #eaf2fd;
    --ho-ink-brand:          #12357c;   /* 11.50:1 on surface */
    --ho-ink-brand-soft:     #2b4a8f;   /*  8.48:1 on surface */
    --ho-ink-brand-muted:    #526a99;   /*  5.41:1 on surface */
    --ho-accent-fill:        #c2410c;   /*  5.18:1 under --ho-accent-on-fill */
    --ho-accent-on-fill:     #ffffff;
    --ho-accent-edge:        #ffd9c2;

    /* ── Work Center identity (START-HERE-FINAL §2 — the delivered values) ──
       The HOMEi navy and action orange as ROLES, with the page ground, card,
       muted band and border of the Work Center handoff. Every value below is
       WRITTEN in that file (light | dark); none was read off an image.
       The orange is a FILL that carries the dark navy label (--ho-brand-on-accent,
       7.2:1) — the handoff's own ruling against a white label; orange WORDS
       take --ho-brand-accent-ink. */
    --ho-brand-ink:          #19366c;   /* text-primary · 11.6:1 on surface */
    --ho-brand-ink-muted:    #60728f;   /* text-secondary · 4.9:1 on surface */
    --ho-brand-soft:         #edf3fa;   /* surface-muted */
    --ho-brand-line:         #dfe6f0;   /* border */
    --ho-brand-page:         #f5f8fc;   /* page */
    --ho-brand-card:         #ffffff;   /* surface */
    --ho-brand-inset:        #ffffff;   /* a field inside a card */
    --ho-brand-accent:       #ff791b;   /* brand-orange (fill) */
    --ho-brand-accent-soft:  #fff2e8;   /* orange-tint */
    --ho-brand-accent-ink:   #c2410c;   /* 5.18:1 on surface · orange-text (the approved images' livelier orange; 4.71 on its own tint — still AA) */
    --ho-brand-accent-strong: #ea580c;  /* 3.56:1 on surface · LARGE orange figures ONLY (the 30px/700 decision count), never body text */
    --ho-brand-on-accent:    #10233f;   /* the label on the orange fill */
    --ho-brand-danger:       #c62828;   /* overdue / error only */
    --ho-brand-success:      #167344;
    /* ── Semantic: draft — kept, not sent (REQ-UI-2) ───────────────
       The requests reference paints its «مسودات» counter violet, a role
       the palette did not have. `ink` on `soft` for the counter. */
    --ho-draft-ink:          #6d28d9;   /*  7.10:1 on surface · 6.48 on soft */
    --ho-draft-soft:         #f5f3ff;
    /* ── REQ-UI-2 — the approved «الطلبات» / «إضافة طلب» designs ──────
       Colours sampled from Kamal's approved reference images (22-9) and
       used by those two screens only. They are the DESIGN's colours, kept
       literally at the owner's instruction — not the product roles above.
       CONTRAST, stated and not hidden (WCAG 2.1 AA, text 4.5:1, control
       edge 3:1) — these design pairings FAIL:
         on-accent on accent (white on #fe590b)  3.16:1
         accent-ink on surface (#e0601e)          3.58:1
         muted on surface (#737e99)               4.06:1
         muted-2 on surface (#858fa6)             3.24:1
         border on surface, as a control edge     1.23:1
       They are deliberately NOT promised in DesignTokenContrastTest (the
       test is unchanged); the conflict is recorded in the delivery report
       and the PR for the owner's decision. */
    --req-d-page-list:       #f5f9fc;
    --req-d-page-create:     #f0f9ff;
    --req-d-surface:         #ffffff;
    --req-d-border:          #e1e9f2;
    --req-d-divider:         #eaeef6;
    --req-d-thead:           #f9fafe;
    --req-d-ink:             #0e1b64;
    --req-d-ink-2:           #17215e;
    --req-d-ink-3:           #384669;
    --req-d-muted:           #737e99;
    --req-d-muted-2:         #858fa6;
    --req-d-thead-ink:       #5b6986;
    --req-d-accent:          #fe590b;
    --req-d-on-accent:       #ffffff;
    --req-d-accent-ink:      #e0601e;
    --req-d-accent-soft:     #fef7ee;
    --req-d-accent-edge:     #eda37c;
    --req-d-accent-sq:       #ffeee3;
    --req-d-stat-accent-bg:  #fdf2ec;
    --req-d-stat-accent-ring:#fee6d5;
    --req-d-stat-accent-ink: #a63d10;
    --req-d-stat-info-bg:    #e9f0fe;
    --req-d-stat-info-ring:  #d7e6fc;
    --req-d-stat-info-icon:  #1e4fd8;
    --req-d-stat-draft-bg:   #f0edfe;
    --req-d-stat-draft-ring: #e9dffe;
    --req-d-stat-draft-icon: #6a1fd0;
    --req-d-stat-ok-bg:      #eaf7f0;
    --req-d-stat-ok-ring:    #d7f5e2;
    --req-d-stat-ok-icon:    #1a8a2b;
    --req-d-icon-sq:         #ebf5fd;
    --req-d-icon:            #1e53d2;
    --req-d-info-bg:         #e9f3fd;
    --req-d-info-ink:        #4a68a8;
    --req-d-info-icon:       #0a5cf5;
    --req-d-ok-ink:          #2a7a3b;
    --req-d-blue-ink:        #2f66d0;
    --req-d-pill-bg:         #fff5e1;
    --req-d-pill-ink:        #a4521f;
    --req-d-late-bg:         #ffe9ec;
    --req-d-late-ink:        #b0282e;
    --req-d-approve-bg:      #eaf9ef;
    --req-d-approve-edge:    #c5e2ca;
    --req-d-approve-ink:     #1f7a2a;
    --req-d-reject-bg:       #fff0ee;
    --req-d-reject-edge:     #dea0a7;
    --req-d-reject-ink:      #c0262b;
    --req-d-eye-edge:        #e4eaf2;
    --req-d-eye-ink:         #122652;
    --req-d-radio:           #6b7690;
    --req-d-step-edge:       #c5c7d2;
    --req-d-route-dot:       #b0bcd7;
    --req-d-route-line:      #c9cdd8;
    --req-d-btn-edge:        #d3dae5;
    --req-d-count-bg:        #eff1f7;
    /* ── LM-SPLIT-1 — the approved «المدير اللحظي» design (list + panel) ──
       Colours are the handoff's own (homei-smart-manager-handoff, 23-9:
       reference/tokens.css and the inline values of the reference HTML),
       kept literally at the owner's instruction and used by that one
       screen only (resources/css/live-manager.css) — not product roles.
       CONTRAST, stated and not hidden (WCAG 2.1 AA: text 4.5:1, a control
       edge or a state 3:1). The owner's ruling (23-9, review round): the
       pairings below are ACCEPTED as the design draws them, except readable
       text in #8a97b1 on white — every such word now reads #5b6b8c (muted,
       5.35:1 on white, 4.84 on accent-soft, 5.16 on row-hl), so #8a97b1
       colours icons only. These light-theme pairings still FAIL, accepted:
         subtle, icons only (#8a97b1)            2.77–2.94:1  chevrons, empty-state icons, reply-field icon
                                                          (2.94 on surface, 2.84 on a highlighted or
                                                          hovered row, 2.77 on the empty-state tile)
         on-accent on accent (#ffffff on #fe590b)          3.16:1  «حوّلها لمهمة» label
         danger on danger-soft (#dc2626 on #fdecec)        4.23:1  «لم يُشاهد» / «متأخر» badges, gap label
         border on surface, as a control edge (#e2e8f0)     1.23:1  search, selects, close, reply field
         control-edge on surface (#cbd5e1)                 1.48:1  outline and icon buttons
         accent on accent-soft (#fe590b on #fff1ea)         2.86:1  the open row's 3px line
         accent-soft vs surface (#fff1ea on #ffffff)        1.10:1  the open row's tint
         track-expected on divider (#f9d9d9 on #edf1f7)     1.16:1  the expected span (its mark is labelled)
       Every other pairing the screen uses passes (measured 23-9). They are
       deliberately NOT promised in DesignTokenContrastTest (unchanged); the
       owner accepted them on 23-9 and the PR records the ruling. */
    --lm-d-page:             #f6f8fc;
    --lm-d-surface:          #ffffff;
    --lm-d-border:           #e2e8f0;
    --lm-d-divider:          #edf1f7;
    --lm-d-ink:              #19376c;
    --lm-d-muted:            #5b6b8c;
    --lm-d-subtle:           #8a97b1;
    --lm-d-accent:           #fe590b;
    --lm-d-on-accent:        #ffffff;
    --lm-d-accent-ink:       #fe590b;
    --lm-d-accent-soft:      #fff1ea;
    --lm-d-accent-line:      #ffd4bf;
    --lm-d-ok:               #15803d;
    --lm-d-ok-soft:          #eaf7ef;
    --lm-d-danger:           #dc2626;
    --lm-d-danger-soft:      #fdecec;
    --lm-d-warn:             #b45309;
    --lm-d-warn-soft:        #fef6e4;
    --lm-d-ai:               #6d28d9;
    --lm-d-info:             #1d4ed8;
    --lm-d-info-soft:        #eaf1fe;
    --lm-d-control-edge:     #cbd5e1;
    --lm-d-quiet-bg:         #eef2f7;
    --lm-d-row-hl:           #fffaf6;
    --lm-d-dot:              #c3ccdc;
    --lm-d-track-expected:   #f9d9d9;
    --lm-d-gap-edge:         #f5c9c9;
    --lm-d-ai-bg:            #fafbfd;
    --lm-d-ai-ink:           #2a3f66;
    --lm-d-chip-bg:          #f3f6fb;
    --lm-d-tab-on-bg:        #19376c;
    --lm-d-tab-on-ink:       #ffffff;
    --lm-d-tab-on-count:     #c7d3ea;
    --lm-d-handle:           #d5dce8;
    --lm-d-hover:            #fafbfd;
    --lm-d-overlay:          rgb(25 55 108 / 0.32);
    --lm-d-shadow:           rgb(25 55 108 / 0.04);
    --lm-d-sheet-shadow:     rgb(25 55 108 / 0.18);
    /* ── CM-SPLIT-1 — the approved «العمولات» design (one page, two tabs) ──
       Colours are the handoff's own (homei-commissions-handoff, 23-9:
       reference/tokens.css and the inline values of the reference HTML),
       kept literally and used by that one screen only
       (resources/css/commissions.css). Readable text never takes the
       design's subtle grey (8a97b1, 2.94:1 on white) — it reads the muted
       ink instead (5.35:1), the owner's ruling on the same palette for the
       Live Manager (23-9); subtle colours icons only.
       CONTRAST, stated and not hidden (WCAG 2.1 AA: text 4.5:1, a control
       edge or a state 3:1). These light-theme pairings FAIL as drawn:
         on-accent on accent (white on fe590b)            3.16:1  «تأكيد وإرسال…», «إضافة عمولة»
         accent on accent-soft (fe590b on fff1ea)         2.86:1  the selected segment, the open row's line
         danger on danger-soft (dc2626 on fdecec)         4.23:1  «مرفوض» / «رفض» badges
         border on surface, as a control edge (e2e8f0)    1.23:1  month and basis selects, close
         control-edge on surface (cbd5e1)                 1.48:1  outline and icon buttons
         check-edge on surface (b8c3d6)                   1.78:1  the row checkbox
         step-edge on surface (c9d2e2)                    1.52:1  a pending timeline step
       Every other pairing the screen uses passes (measured 23-9); like the
       Live Manager's, they are NOT promised in DesignTokenContrastTest. */
    --cm-d-page:             #f6f8fc;
    --cm-d-surface:          #ffffff;
    --cm-d-border:           #e2e8f0;
    --cm-d-divider:          #edf1f7;
    --cm-d-ink:              #19376c;
    --cm-d-muted:            #5b6b8c;
    --cm-d-subtle:           #8a97b1;
    --cm-d-accent:           #fe590b;
    --cm-d-on-accent:        #ffffff;
    --cm-d-accent-ink:       #fe590b;
    --cm-d-accent-soft:      #fff1ea;
    --cm-d-accent-line:      #ffd4bf;
    --cm-d-ok:               #15803d;
    --cm-d-ok-soft:          #eaf7ef;
    --cm-d-danger:           #dc2626;
    --cm-d-danger-soft:      #fdecec;
    --cm-d-danger-line:      #f5c9c9;
    --cm-d-warn:             #b45309;
    --cm-d-warn-soft:        #fef6e4;
    --cm-d-warn-line:        #f8dfa6;
    --cm-d-warn-ink:         #8a4b06;
    --cm-d-purple:           #6d28d9;
    --cm-d-purple-soft:      #f2edfd;
    --cm-d-info:             #1d4ed8;
    --cm-d-info-soft:        #eaf1fe;
    --cm-d-info-line:        #c9dafb;
    --cm-d-control-edge:     #cbd5e1;
    --cm-d-check-edge:       #b8c3d6;
    --cm-d-step-edge:        #c9d2e2;
    --cm-d-quiet-bg:         #eef2f7;
    --cm-d-chip-bg:          #f3f6fb;
    --cm-d-head-bg:          #fafbfd;
    --cm-d-tab-on-bg:        #19376c;
    --cm-d-tab-on-ink:       #ffffff;
    --cm-d-handle:           #d5dce8;
    --cm-d-overlay:          rgb(25 55 108 / 0.32);
    --cm-d-shadow:           rgb(25 55 108 / 0.04);
    --cm-d-sheet-shadow:     rgb(25 55 108 / 0.18);
    /* WC-DIRECT-1 — the Work Center's direct board (homei-work-center-handoff, 23-9): the design's
       own values for the roles the Live Manager palette above does not already hold. */
    --wcd-ai-soft:           #f2edfd;
    --wcd-info-line:         #c9dafb;
    --wcd-row-hl:            #fdfaff;
    --wcd-row-sel:           #fff8f4;
    --wcd-cb-edge:           #b8c3d6;
    --wcd-bar-edge:          rgb(255 255 255 / 0.35);
    --wcd-bar-link:          #ffb48a;
    --wcd-toast-shadow:      rgb(25 55 108 / 0.18);
}

/*
 * Dark theme. Values are CHOSEN, not inverted: inverting #b91c1c gives
 * an unreadable red on a near-black ground. Each one is measured
 * against the dark surfaces by the same test that measures the light
 * ones, so a sheet built on tokens flips correctly with no work.
 *
 * The surfaces are Filament's own dark greys — zinc-950 for the page,
 * zinc-900 for a card, zinc-800 for what floats above — because that is
 * the chrome every screen sits inside. A token layer whose "sunken" was
 * lighter than the body Filament paints would have inverted the very
 * hierarchy it names.
 */
.dark {
    --ho-unit-reserved-fill: #f5c400;
    --ho-unit-reserved-ink:  #3d2f00;
    --ho-unit-verify-fill:   #262046;
    --ho-unit-verify-ink:    #b3a8f7;
    --ho-unit-verify-line:   #463c74;
    --ho-unit-unready-fill:  #3f3f47;
    --ho-surface:            #18181b;   /* zinc-900 */
    --ho-surface-sunken:     #09090b;   /* zinc-950 — Filament's body */
    --ho-surface-raised:     #27272a;   /* zinc-800 */
    --ho-surface-inset:      #202023;

    --ho-ink:                #f4f4f5;   /* 16.12:1 on surface */
    --ho-ink-muted:          #a1a1aa;   /*  6.91:1 on surface · 7.76 on sunken · 6.34 on inset */

    --ho-line:               #34343a;
    --ho-line-strong:        #71717a;   /*  3.67:1 on surface · 4.12 on sunken */

    --ho-focus:              #60a5fa;   /*  6.97:1 on surface */

    --ho-danger-ink:         #f87171;   /*  6.40:1 on surface · 5.57 on soft */
    --ho-danger-soft:        #3a1c1c;
    --ho-danger-line:        #f87171;

    --ho-warning-ink:        #fbbf24;   /* 10.61:1 on surface · 7.96 on soft */
    --ho-warning-soft:       #3a2e14;
    --ho-warning-line:       #fbbf24;

    --ho-success-ink:        #4ade80;   /* 10.17:1 on surface · 8.19 on soft */
    --ho-handover-final-ready-fill: #134e4a;
    --ho-handover-final-ready-ink: #99f6e4;
    --ho-success-soft:       #14301f;
    --ho-success-line:       #4ade80;

    --ho-info-ink:           #93c5fd;   /*  9.82:1 on surface · 8.21 on soft */
    --ho-info-soft:          #1c2742;
    --ho-info-line:          #60a5fa;

    --ho-accent-ink:         #fb923c;   /*  7.83:1 on surface · 6.61 on soft */
    --ho-accent-soft:        #38220f;
    --ho-accent-line:        #fb923c;
    /* Brand ground — the dark mirror (CUSTODY-EXP-1). */
    --ho-ground-brand:       #0f1629;
    --ho-surface-brand:      #141c33;
    --ho-line-brand:         #27324d;
    --ho-line-brand-soft:    #1e2740;
    --ho-ink-brand:          #cfe0ff;   /* 13.30:1 on surface */
    --ho-ink-brand-soft:     #b3caf3;   /* 10.68:1 on surface */
    --ho-ink-brand-muted:    #93a6c9;   /*  7.20:1 on surface */
    --ho-accent-fill:        #9a3412;   /*  7.29:1 under --ho-accent-on-fill */
    --ho-accent-on-fill:     #ffffff;
    --ho-accent-edge:        #56341a;

    /* Work Center identity — the handoff's dark column (START-HERE-FINAL §2) */
    --ho-brand-ink:          #edf2fa;
    --ho-brand-ink-muted:    #aebbd0;
    --ho-brand-soft:         #202e44;
    --ho-brand-line:         #2b3950;
    --ho-brand-page:         #101827;
    --ho-brand-card:         #182337;
    --ho-brand-inset:        #202e44;
    --ho-brand-accent:       #ff791b;
    --ho-brand-accent-soft:  #34271f;
    --ho-brand-accent-ink:   #ffaa66;
    --ho-brand-accent-strong: #ff8a3d;
    --ho-brand-on-accent:    #10233f;
    --ho-brand-danger:       #ff8b91;
    --ho-brand-success:      #67dfab;
    /* Draft — the dark mirror (REQ-UI-2; proposed, awaiting approval). */
    --ho-draft-ink:          #c4b5fd;   /*  9.60:1 on surface · 8.45 on soft */
    --ho-draft-soft:         #261f3d;
    /* REQ-UI-2 — dark: the design has no dark reference, so these are the
       project's approved dark values for the same roles. The one exception
       is the primary orange, kept as the design's (owner's instruction). */
    --req-d-page-list:       #0f1629;
    --req-d-page-create:     #0f1629;
    --req-d-surface:         #18181b;
    --req-d-border:          #27324d;
    --req-d-divider:         #1e2740;
    --req-d-thead:           #141c33;
    --req-d-ink:             #cfe0ff;
    --req-d-ink-2:           #cfe0ff;
    --req-d-ink-3:           #b3caf3;
    --req-d-muted:           #93a6c9;
    --req-d-muted-2:         #93a6c9;
    --req-d-thead-ink:       #b3caf3;
    --req-d-accent:          #fe590b;
    --req-d-on-accent:       #ffffff;
    --req-d-accent-ink:      #fb923c;
    --req-d-accent-soft:     #38220f;
    --req-d-accent-edge:     #fb923c;
    --req-d-accent-sq:       #56341a;
    --req-d-stat-accent-bg:  #38220f;
    --req-d-stat-accent-ring:#56341a;
    --req-d-stat-accent-ink: #fb923c;
    --req-d-stat-info-bg:    #1c2742;
    --req-d-stat-info-ring:  #27324d;
    --req-d-stat-info-icon:  #93c5fd;
    --req-d-stat-draft-bg:   #261f3d;
    --req-d-stat-draft-ring: #3b2f5c;
    --req-d-stat-draft-icon: #c4b5fd;
    --req-d-stat-ok-bg:      #14301f;
    --req-d-stat-ok-ring:    #1d4a2e;
    --req-d-stat-ok-icon:    #4ade80;
    --req-d-icon-sq:         #1c2742;
    --req-d-icon:            #93c5fd;
    --req-d-info-bg:         #1c2742;
    --req-d-info-ink:        #93c5fd;
    --req-d-info-icon:       #60a5fa;
    --req-d-ok-ink:          #4ade80;
    --req-d-blue-ink:        #93c5fd;
    --req-d-pill-bg:         #38220f;
    --req-d-pill-ink:        #fb923c;
    --req-d-late-bg:         #3a1c1c;
    --req-d-late-ink:        #f87171;
    --req-d-approve-bg:      #14301f;
    --req-d-approve-edge:    #1d4a2e;
    --req-d-approve-ink:     #4ade80;
    --req-d-reject-bg:       #3a1c1c;
    --req-d-reject-edge:     #5c2626;
    --req-d-reject-ink:      #f87171;
    --req-d-eye-edge:        #34343a;
    --req-d-eye-ink:         #cfe0ff;
    --req-d-radio:           #71717a;
    --req-d-step-edge:       #34343a;
    --req-d-route-dot:       #52525b;
    --req-d-route-line:      #34343a;
    --req-d-btn-edge:        #34343a;
    --req-d-count-bg:        #202023;
    /* LM-SPLIT-1 — dark: the design has no dark reference, so these are the
       project's approved dark values for the same roles — the Work Center's
       dark identity (START-HERE-FINAL §2), the page the Live Manager sits
       under in the sidebar. The primary orange stays the design's. */
    --lm-d-page:             #101827;
    --lm-d-surface:          #182337;
    --lm-d-border:           #2b3950;
    --lm-d-divider:          #202e44;
    --lm-d-ink:              #edf2fa;
    --lm-d-muted:            #aebbd0;
    --lm-d-subtle:           #93a6c9;
    --lm-d-accent:           #fe590b;
    --lm-d-on-accent:        #ffffff;
    --lm-d-accent-ink:       #ffaa66;
    --lm-d-accent-soft:      #34271f;
    --lm-d-accent-line:      #56341a;
    --lm-d-ok:               #67dfab;
    --lm-d-ok-soft:          #14301f;
    --lm-d-danger:           #ff8b91;
    --lm-d-danger-soft:      #3a1c1c;
    --lm-d-warn:             #fbbf24;
    --lm-d-warn-soft:        #3a2e14;
    --lm-d-ai:               #c4b5fd;
    --lm-d-info:             #93c5fd;
    --lm-d-info-soft:        #1c2742;
    --lm-d-control-edge:     #3d4f6e;
    --lm-d-quiet-bg:         #202e44;
    --lm-d-row-hl:           #23252d;
    --lm-d-dot:              #4a5b78;
    --lm-d-track-expected:   #4a2528;
    --lm-d-gap-edge:         #5c2626;
    --lm-d-ai-bg:            #1b2740;
    --lm-d-ai-ink:           #d6e2f5;
    --lm-d-chip-bg:          #202e44;
    --lm-d-tab-on-bg:        #edf2fa;
    --lm-d-tab-on-ink:       #101827;
    --lm-d-tab-on-count:     #4a5b78;
    --lm-d-handle:           #3d4f6e;
    --lm-d-hover:            #1d2a40;
    --lm-d-overlay:          rgb(0 0 0 / 0.55);
    --lm-d-shadow:           rgb(0 0 0 / 0.30);
    --lm-d-sheet-shadow:     rgb(0 0 0 / 0.50);
    /* CM-SPLIT-1 — dark: no dark reference either, so the Live Manager's
       approved dark roles (same palette) plus the few this screen adds.
       The primary orange stays the design's. */
    --cm-d-page:             #101827;
    --cm-d-surface:          #182337;
    --cm-d-border:           #2b3950;
    --cm-d-divider:          #202e44;
    --cm-d-ink:              #edf2fa;
    --cm-d-muted:            #aebbd0;
    --cm-d-subtle:           #93a6c9;
    --cm-d-accent:           #fe590b;
    --cm-d-on-accent:        #ffffff;
    --cm-d-accent-ink:       #ffaa66;
    --cm-d-accent-soft:      #34271f;
    --cm-d-accent-line:      #56341a;
    --cm-d-ok:               #67dfab;
    --cm-d-ok-soft:          #14301f;
    --cm-d-danger:           #ff8b91;
    --cm-d-danger-soft:      #3a1c1c;
    --cm-d-danger-line:      #5c2626;
    --cm-d-warn:             #fbbf24;
    --cm-d-warn-soft:        #3a2e14;
    --cm-d-warn-line:        #5a4418;
    --cm-d-warn-ink:         #fcd34d;
    --cm-d-purple:           #c4b5fd;
    --cm-d-purple-soft:      #2a2146;
    --cm-d-info:             #93c5fd;
    --cm-d-info-soft:        #1c2742;
    --cm-d-info-line:        #2b3f66;
    --cm-d-control-edge:     #3d4f6e;
    --cm-d-check-edge:       #4a5b78;
    --cm-d-step-edge:        #4a5b78;
    --cm-d-quiet-bg:         #202e44;
    --cm-d-chip-bg:          #202e44;
    --cm-d-head-bg:          #1b2740;
    --cm-d-tab-on-bg:        #edf2fa;
    --cm-d-tab-on-ink:       #101827;
    --cm-d-handle:           #3d4f6e;
    --cm-d-overlay:          rgb(0 0 0 / 0.55);
    --cm-d-shadow:           rgb(0 0 0 / 0.30);
    --cm-d-sheet-shadow:     rgb(0 0 0 / 0.50);
    /* WC-DIRECT-1 — dark: the same roles on the Live Manager's dark ground (no dark reference). The bulk
       bar and the toast sit on --lm-d-tab-on-bg, which turns LIGHT here — their edge and link follow. */
    --wcd-ai-soft:           #2a2345;
    --wcd-info-line:         #2c3f66;
    --wcd-row-hl:            #1f2238;
    --wcd-row-sel:           #2a2220;
    --wcd-cb-edge:           #4a5b78;
    --wcd-bar-edge:          rgb(16 24 39 / 0.30);
    --wcd-bar-link:          #c2410c;
    --wcd-toast-shadow:      rgb(0 0 0 / 0.50);
}
