/* ============================================================================
   WelfareHub design tokens -- "Campaign Operations" on the VANTAGE design
   language (PRD 14.1, docs/06). The SINGLE source of colour, type, spacing,
   radius, motion, focus and z-layer values. app.css (console), field.css
   (PWA) and print.css build on these names only; no other stylesheet
   declares a colour literal.

   Rules this file encodes
   - Identity: the ibjx navy (--brand) with sky (--sky) as the second
     voice. --accent is the green; it is reserved for the single primary
     action on a screen, for links and for the focus ring.
   - Chrome (masthead + sidebar) is the deep green ink --chrome-bg #0b1f17.
     This is a deliberate change: the chrome used to be a dark neutral and
     this file used to say "never a party colour". That rule is retired. The
     chrome now carries the identity; the approved mark still appears ONLY in
     the sign-in screen and the console masthead, through the mark slot
     (PRD 14.5), and no candidate imagery or slogan appears anywhere.
   - Four surface steps: page (--bg) < raised (--surface-2) < card
     (--surface) < float (--surface-float, menus and popovers, lifted with
     --shadow-md). Dividers are --border / --line-2 / --line-strong;
     --border-strong is the only one rated for an input boundary.
   - Four status colours: ok (on track), warn (at risk), crit (breached or
     emergency), closed. Each ships with an AA text/background pair in every
     theme. A status colour never appears without its text label
     (status_label()). "info" is a tone for notes, not a status.
   - Every text/background pair below is at least 4.5:1 and carries its
     measured ratio in the comment beside it. Non-text boundaries and
     decorative inks are marked "non-text" and are at least 3:1. A pair that
     cannot reach its floor is changed, not shipped.
   - Type: two stacks. --font-ui (Inter first) is for the CONSOLE only.
     --font-system (system stack, no download) is for the field PWA. See the
     note above --font-system: the field shell has a 300 KB gzipped budget
     and InterVariable.woff2 is 352 KB of already-compressed font data.
   - Themes: light (default), dark, hc (high contrast). The OS preference is
     honoured only while nothing explicit is stored (data-theme absent). The
     print block at the foot restores every token the dark and hc blocks
     override.
   - Touch floor is 48px (--touch). The reference design uses 44; the PRD
     sets 48 for one-handed use on a five-inch screen and we keep 48.
   - ASCII only in this file (CLAUDE.md sec. 5).
   ============================================================================ */

:root {
    /* -- Identity ---------------------------------------------------------
       The navy ramp, darkest to brightest, taken from the ibjx enterprise
       system (--primary #1e3a5f / --primary-dk #152d4a). --brand and
       --brand-deep are rated for text and for white-on-navy fills;
       --brand-mid is a rule and border tone; --brand-bright is non-text and
       exists to read on the dark chrome, not on a light surface.

       Several ibjx values are NOT copied as they stand, because they do not
       clear AA on this platform's surfaces: its --text-muted #64748b is
       4.31:1 on the page, its --accent #0ea5e9 is 2.77:1 on white, its
       --success #059669 is 3.77:1 as text, and its --border-strong #94a3b8
       is 2.56:1 against the 3:1 rule for a control edge. The look is adopted;
       the numbers are re-derived until they pass. Every ratio below was
       computed, not estimated. */
    --ink: #002868;
    --brand: #002868;          /* 13.97:1 on white -- text and fills */
    --brand-deep: #001c4a;          /* 16.60:1 on white */
    --brand-mid: #0058b8;          /* 6.80:1 on white */
    --brand-bright: #7db4ea;          /* 6.38:1 on --chrome-bg: non-text, chrome only */
    /* The second voice is sky. --sky is a DECORATIVE FILL: washes, the
       hairline rule, the mark. It is 2.77:1 on white at ibjx's own value, so
       the fill here is the lighter #38bdf8 which is rated only against the
       dark chrome (5.37:1). The sky that is allowed to carry text or state is
       --sky-deep. */
    --sky: #2e9bd6;          /* fill only; 4.51:1 on --chrome-bg */
    --sky-deep: #0058b8;          /* 6.80:1 on white -- the text-safe sky */
    --sky-soft: #e3f2fb;

    /* -- Surfaces: page < raised < card < float --------------------------- */
    --white: #ffffff;
    --black: #000000;
    --bg: #f4f7fb;
    --surface: #ffffff;
    --surface-2: #f8fafc;
    --surface-3: #e4ebf3;
    --surface-float: #ffffff;
    --tint: #eef3fa;
    --soft: #dbe7fa;
    --warm: #fff4e6;

    /* -- Lines ------------------------------------------------------------
       --border and --line-2 are decorative dividers. --line-strong is a
       visible rule. --border-strong is the ONLY line rated for an input or
       control boundary (WCAG 1.4.11 wants 3:1; it has 4.76:1). */
    --border: #e4ebf3;
    --line-2: #eef3f8;
    --line-strong: #cbd8e6;
    --border-strong: #64748b;          /* 4.76:1 on white -- control edges */

    /* -- Text -------------------------------------------------------------- */
    --text: #16233a;          /* 15.72:1 on white */
    --text-muted: #4a5a73;          /* 7.00:1 on white, 6.51:1 on --bg */
    --text-faint: #55657e;          /* 5.92:1 on white, 4.92:1 on --surface-3 */

    /* -- Chrome (masthead + sidebar): the navy ---------------------------- */
    --chrome-bg: #002868;
    --chrome-bg-2: #001c4a;
    --chrome-text: #d6e3f5;          /* 10.75:1 on --chrome-bg, 8.72:1 on --chrome-active */
    --chrome-text-dim: #9fb6d6;          /* 6.74:1 on --chrome-bg, 5.47:1 on --chrome-active */
    --chrome-line: #0d3878;
    --chrome-active: #0d3878;

    /* -- The one accent (primary action, links, focus) -------------------- */
    --accent: #002868;          /* 13.97:1 on white */
    --accent-hover: #001c4a;          /* 16.60:1 on white */
    --on-accent: #ffffff;          /* 13.97:1 on --accent */
    --accent-soft: #dbe7fa;
    --accent-deep: #001c4a;          /* 13.30:1 on --accent-soft */
    --link: #0058b8;          /* 6.80:1 on white */
    --link-hover: #002868;

    /* -- Four status colours (PRD 14.1) with AA pairs ---------------------
       The ink is for the dot, the row edge and short labels on --surface;
       the -text/-bg pair is the pill. Every ink also clears 4.5:1 on --bg. */
    --status-ok: #006038;          /* 7.69:1 on white */
    --status-ok-bg: #e8f6ef;
    --status-ok-text: #04502f;          /* 8.60:1 on --status-ok-bg */
    --status-warn: #8f4100;          /* 7.18:1 on white (the flyer orange is 3.28 and is fill only) */
    --status-warn-bg: #fff4e6;
    --status-warn-text: #6b3100;          /* 9.37:1 on --status-warn-bg */
    --status-crit: #c80000;          /* 6.08:1 on white */
    --status-crit-bg: #fdeaea;
    --status-crit-text: #8a0000;          /* 8.72:1 on --status-crit-bg */
    --status-closed: #4a5a73;          /* 7.00:1 on white */
    --status-closed-bg: #e4ebf3;
    --status-closed-text: #16233a;
    /* Informational (the accent blue) -- a tone for notes, never a status. */
    --info: #0058b8;          /* 6.80:1 on white */
    --info-bg: #e3f2fb;
    --info-text: #00407f;

    /* -- Overlays and elevation ------------------------------------------- */
    --scrim: rgba(11, 31, 23, 0.55);
    --edge-shadow: rgba(11, 31, 23, 0.16);
    --shadow-xs: 0 1px 2px rgba(11, 31, 23, 0.06);
    --shadow-sm: 0 1px 3px rgba(11, 31, 23, 0.09);
    --shadow: 0 2px 8px rgba(11, 31, 23, 0.10);
    --shadow-md: 0 6px 18px rgba(11, 31, 23, 0.12);
    --shadow-lg: 0 18px 48px rgba(11, 31, 23, 0.18);

    /* -- Type --------------------------------------------------------------
       --font-system carries NO download. The field PWA binds its body to it
       and must keep doing so: the precached field shell has a 300 KB gzipped
       budget and InterVariable.woff2 is 352 KB of font data that does not
       compress further. A field worker on a mid-range Android phone away
       from an office is the person who would pay for that, on a connection
       that is the whole point of the offline shell.
       --font-ui adds the self-hosted Inter in front of the same stack and is
       for the CONSOLE only (app.css and print.css).
       --font stays an alias of --font-system so that a sheet which has not
       been migrated cannot pull the face into the field bundle by accident. */
    --font-system: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    --font-ui: "InterVariable", var(--font-system);
    --font: var(--font-system);
    --font-mono: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace;
    --font-num: "InterVariable", var(--font-mono); /* tabular figures on the console */
    --fs-console: 14px;        /* console body (PRD 14.1) */
    --fs-pwa: 16px;            /* PWA body (PRD 14.1) */
    --fs-xs: 12px;
    --fs-sm: 14px;
    --fs-md: 15px;
    --fs-base: 16px;
    --fs-lg: 20px;
    --fs-xl: 24px;
    --fs-2xl: 32px;
    --fs-3xl: 40px;
    --fs-4xl: 52px;
    --lh: 1.5;
    --lh-tight: 1.25;
    --tracking: 0.01em;
    --tracking-wide: 0.08em;   /* uppercase eyebrows and section labels */
    --fw-normal: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;

    /* -- Spacing (4px grid) ------------------------------------------------ */
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 24px;
    --sp-6: 32px;
    --sp-7: 48px;
    --sp-8: 64px;

    /* -- Shape ------------------------------------------------------------- */
    --radius-sm: 6px;
    --radius: 10px;
    --radius-lg: 16px;         /* cards, panels, the sign-in shell */
    --radius-pill: 999px;

    /* -- Targets and layout metrics ---------------------------------------
       48px is a floor, not a preference: it is what a thumb needs on a
       five-inch screen (PRD 14.1). Console controls on a fine pointer are
       --control-h; coarse pointers and phone widths grow them to --touch. */
    --touch: 48px;
    --control-h: 40px;
    --sidebar-w: 256px;
    --sidebar-w-collapsed: 68px;
    --topbar-h: 60px;
    --bottom-nav-h: 60px;
    --content-max: 1440px;
    --gutter: 16px;            /* side gutter at phone width */

    /* -- Motion ------------------------------------------------------------
       For the three progress indicators ONLY (top bar, skeleton shimmer,
       spinner and the syncing dot). Nothing else moves: no property named
       "transition" appears in any sheet, and prefers-reduced-motion stops
       the animations outright (PRD 14.1). */
    --ease: cubic-bezier(0.4, 0, 0.2, 1);
    --dur-fast: 120ms;
    --dur: 200ms;

    /* -- Focus ring: ONE ring everywhere ----------------------------------
       outline: var(--focus-w) solid var(--focus-color), and the --focus-halo
       ring behind it. The halo is load-bearing, not decoration: on the dark
       chrome the light-theme ring is 3.19:1 (it clears the 3:1 floor for a
       non-text indicator, but only just) and in the hc theme the ring and
       the chrome are both black -- there the WHITE HALO IS THE RING, at
       21:1. Any sheet that paints focus must paint both, or the sidebar
       loses its focus indicator in high contrast. */
    --focus-color: #0f7a4a;
    --focus-halo: #ffffff;
    --focus-w: 2px;
    --focus-offset: 2px;

    /* -- Z-layers ---------------------------------------------------------- */
    --z-topbar: 30;
    --z-sidebar: 40;
    --z-scrim: 45;
    --z-bottom-nav: 50;
    --z-menu: 60;
    --z-sheet: 70;
    --z-modal: 80;
    --z-palette: 90;
    --z-toast: 100;

    color-scheme: light;
}

/* ---- Dark theme ----------------------------------------------------------
   Explicit: <html data-theme="dark">. Automatic: the OS preference, but only
   while no explicit theme is stored (the guard excludes data-theme="light"
   and the hc block below wins over it by specificity + order). The green
   ramp inverts: on a dark surface the legible green is a LIGHTER green, so
   --brand-deep is lighter than --brand here. The same token list is declared
   in BOTH blocks; the print reset at the foot restores every one of them. */
:root[data-theme="dark"] {
    --bg: #070f20;
    --surface: #0d1830;
    --surface-2: #0a1428;
    --surface-3: #1b2a48;
    --surface-float: #12203c;
    --tint: #0a1526;
    --soft: #13264a;
    --warm: #2a1c05;
    --border: #1e293b;
    --line-2: #172033;
    --line-strong: #2e3c56;
    --border-strong: #8fa0b8;  /* 6.51:1 on --surface, 7.03:1 on --bg -- control edges */
    --text: #dce6f5;
    --text-muted: #a7bcd8;
    --text-faint: #8fa5c2;
    --ink: #dce6f5;
    --brand: #8fb6e8;
    --brand-deep: #b9d3f5;
    --brand-mid: #0058b8;
    --brand-bright: #7db4ea;
    --sky: #e0b963;           /* 8.97:1 on --surface */
    --sky-deep: #efd08a;      /* 11.17:1 on --surface */
    --sky-soft: #2c2413;
    --chrome-bg: #00102c;
    --chrome-bg-2: #00091c;
    --chrome-text: #d6e3f5;
    --chrome-text-dim: #9db4d4;
    --chrome-line: #0a2450;
    --chrome-active: #0a2450;
    --accent: #8ab4ff;
    --accent-hover: #b9d3f5;
    --on-accent: #00142e;
    --accent-soft: #13264a;
    --accent-deep: #b9d3f5;
    --link: #8ab4ff;
    --link-hover: #b9d3f5;
    --status-ok: #4ade80;       /* 9.95:1 on --surface */
    --status-ok-bg: #06281c;
    --status-ok-text: #bbf7d0;  /* 13.05:1 on --status-ok-bg */
    --status-warn: #fbbf24;     /* 10.39:1 on --surface */
    --status-warn-bg: #2a1c05;
    --status-warn-text: #fde68a; /* 13.31:1 on --status-warn-bg */
    --status-crit: #f87171;     /* 6.27:1 on --surface */
    --status-crit-bg: #2a0d0d;
    --status-crit-text: #fecaca; /* 12.49:1 on --status-crit-bg */
    --status-closed: #a9bad0;   /* 8.77:1 on --surface */
    --status-closed-bg: #22304a;
    --status-closed-text: #e2e8f0; /* 10.72:1 on --status-closed-bg */
    --info: #93b4ff;           /* 8.43:1 on --surface */
    --info-bg: #0d1a33;
    --info-text: #c7dbff;      /* 12.37:1 on --info-bg */
    --scrim: rgba(0, 0, 0, 0.70);
    --edge-shadow: rgba(0, 0, 0, 0.60);
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.45);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.50);
    --shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
    --shadow-md: 0 6px 18px rgba(0, 0, 0, 0.60);
    --shadow-lg: 0 18px 48px rgba(0, 0, 0, 0.70);
    --focus-color: #93b4ff;
    --focus-halo: #0b1220;
    color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --bg: #070f20;
        --surface: #0d1830;
        --surface-2: #0a1428;
        --surface-3: #1b2a48;
        --surface-float: #12203c;
        --tint: #0a1526;
        --soft: #13264a;
        --warm: #2a1c05;
        --border: #1e293b;
        --line-2: #172033;
        --line-strong: #2e3c56;
        --border-strong: #8fa0b8;  /* 6.51:1 on --surface, 7.03:1 on --bg -- control edges */
        --text: #dce6f5;
        --text-muted: #a7bcd8;
        --text-faint: #8fa5c2;
        --ink: #dce6f5;
        --brand: #8fb6e8;
        --brand-deep: #b9d3f5;
        --brand-mid: #0058b8;
        --brand-bright: #7db4ea;
        --sky: #e0b963;
        --sky-deep: #efd08a;
        --sky-soft: #2c2413;
        --chrome-bg: #00102c;
        --chrome-bg-2: #00091c;
        --chrome-text: #d6e3f5;
        --chrome-text-dim: #9db4d4;
        --chrome-line: #0a2450;
        --chrome-active: #0a2450;
        --accent: #8ab4ff;
        --accent-hover: #b9d3f5;
        --on-accent: #00142e;
        --accent-soft: #13264a;
        --accent-deep: #b9d3f5;
        --link: #8ab4ff;
        --link-hover: #b9d3f5;
        --status-ok: #4ade80;       /* 9.95:1 on --surface */
        --status-ok-bg: #06281c;
        --status-ok-text: #bbf7d0;  /* 13.05:1 on --status-ok-bg */
        --status-warn: #fbbf24;     /* 10.39:1 on --surface */
        --status-warn-bg: #2a1c05;
        --status-warn-text: #fde68a; /* 13.31:1 on --status-warn-bg */
        --status-crit: #f87171;     /* 6.27:1 on --surface */
        --status-crit-bg: #2a0d0d;
        --status-crit-text: #fecaca; /* 12.49:1 on --status-crit-bg */
        --status-closed: #a9bad0;   /* 8.77:1 on --surface */
        --status-closed-bg: #22304a;
        --status-closed-text: #e2e8f0; /* 10.72:1 on --status-closed-bg */
        --info: #93b4ff;           /* 8.43:1 on --surface */
        --info-bg: #0d1a33;
        --info-text: #c7dbff;      /* 12.37:1 on --info-bg */
        --scrim: rgba(0, 0, 0, 0.70);
        --edge-shadow: rgba(0, 0, 0, 0.60);
        --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.45);
        --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.50);
        --shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
        --shadow-md: 0 6px 18px rgba(0, 0, 0, 0.60);
        --shadow-lg: 0 18px 48px rgba(0, 0, 0, 0.70);
        --focus-color: #93b4ff;
        --focus-halo: #0b1220;
        color-scheme: dark;
    }
}

/* ---- High-contrast theme --------------------------------------------------
   Explicit: <html data-theme="hc">. Automatic: prefers-contrast: more while
   no explicit theme is stored. Black on white, black borders, a 3px black
   focus ring with a white halo. The identity survives as one dark green
   (--accent #00274d, 11.22:1 on white) rather than a palette: every ink here
   clears 7:1, and the four status inks stay distinguishable from each other.
   Status backgrounds are WHITE: the pill border + text carry the meaning. */
:root[data-theme="hc"] {
    --bg: #ffffff;
    --surface: #ffffff;
    --surface-2: #ffffff;
    --surface-3: #e0e0e0;
    --surface-float: #ffffff;
    --tint: #ffffff;
    --soft: #ffffff;
    --warm: #ffffff;
    --border: #000000;
    --line-2: #000000;
    --line-strong: #000000;
    --border-strong: #000000;
    --text: #000000;           /* 21.00:1 on --surface */
    --text-muted: #000000;     /* 21.00:1 */
    --text-faint: #333333;     /* 12.63:1 */
    --ink: #000000;
    --brand: #001233;
    --brand-deep: #000a1f;
    --brand-mid: #001233;
    --brand-bright: #001233;
    --sky: #003a8c;
    --sky-deep: #003a8c;
    --sky-soft: #ffffff;
    --chrome-bg: #000000;
    --chrome-bg-2: #000000;
    --chrome-text: #ffffff;    /* 21.00:1 on --chrome-bg */
    --chrome-text-dim: #ffffff;
    --chrome-line: #ffffff;
    --chrome-active: #333333;
    --accent: #001233;
    --accent-hover: #000a1f;
    --on-accent: #ffffff;      /* 11.22:1 on --accent */
    --accent-soft: #ffffff;
    --accent-deep: #001233;
    --link: #001233;
    --link-hover: #000a1f;
    --status-ok: #00274d;       /* 11.22:1 on white */
    --status-ok-bg: #ffffff;
    --status-ok-text: #00274d;  /* 11.22:1 on --status-ok-bg */
    --status-warn: #004466;     /* 8.90:1 on white */
    --status-warn-bg: #ffffff;
    --status-warn-text: #004466; /* 8.90:1 on --status-warn-bg */
    --status-crit: #8f1a0a;     /* 9.05:1 on white */
    --status-crit-bg: #ffffff;
    --status-crit-text: #8f1a0a; /* 9.05:1 on --status-crit-bg */
    --status-closed: #2b2b2b;   /* 14.16:1 on white */
    --status-closed-bg: #ffffff;
    --status-closed-text: #2b2b2b; /* 14.16:1 on --status-closed-bg */
    --info: #00357a;           /* 11.73:1 on white */
    --info-bg: #ffffff;
    --info-text: #00357a;      /* 11.73:1 on --info-bg */
    --scrim: rgba(0, 0, 0, 0.80);
    --edge-shadow: rgba(0, 0, 0, 0.90);
    --shadow-xs: none;
    --shadow-sm: none;
    --shadow: none;
    --shadow-md: none;
    --shadow-lg: none;
    --focus-color: #000000;
    --focus-halo: #ffffff;
    --focus-w: 3px;
    color-scheme: light;
}

@media (prefers-contrast: more) {
    :root:not([data-theme="light"]):not([data-theme="dark"]) {
        --bg: #070f20;
        --surface: #0d1830;
        --surface-2: #0a1428;
        --surface-3: #1b2a48;
        --surface-float: #12203c;
        --tint: #0a1526;
        --soft: #13264a;
        --warm: #ffffff;
        --border: #000000;
        --line-2: #000000;
        --line-strong: #000000;
        --border-strong: #000000;
        --text: #dce6f5;
        --text-muted: #a7bcd8;
        --text-faint: #8fa5c2;
        --ink: #dce6f5;
        --brand: #8fb6e8;
        --brand-deep: #b9d3f5;
        --brand-mid: #0058b8;
        --brand-bright: #7db4ea;
        --sky: #004466;
        --sky-deep: #004466;
        --sky-soft: #ffffff;
        --chrome-bg: #00102c;
        --chrome-bg-2: #00091c;
        --chrome-text: #d6e3f5;
        --chrome-text-dim: #9db4d4;
        --chrome-line: #0a2450;
        --chrome-active: #0a2450;
        --accent: #8ab4ff;
        --accent-hover: #b9d3f5;
        --on-accent: #00142e;
        --accent-soft: #13264a;
        --accent-deep: #b9d3f5;
        --link: #8ab4ff;
        --link-hover: #b9d3f5;
        --status-ok: #00274d;
        --status-ok-bg: #ffffff;
        --status-ok-text: #00274d;
        --status-warn: #004466;
        --status-warn-bg: #ffffff;
        --status-warn-text: #004466;
        --status-crit: #8f1a0a;
        --status-crit-bg: #ffffff;
        --status-crit-text: #8f1a0a;
        --status-closed: #2b2b2b;
        --status-closed-bg: #ffffff;
        --status-closed-text: #2b2b2b;
        --info: #00357a;
        --info-bg: #ffffff;
        --info-text: #00357a;
        --scrim: rgba(0, 0, 0, 0.80);
        --edge-shadow: rgba(0, 0, 0, 0.90);
        --shadow-xs: none;
        --shadow-sm: none;
        --shadow: none;
        --shadow-md: none;
        --shadow-lg: none;
        --focus-color: #000000;
        --focus-halo: #ffffff;
        --focus-w: 3px;
        color-scheme: light;
    }
}

/* ---- Print reset ----------------------------------------------------------
   Paper is white and black-and-white (PRD 14.6). Every token the dark and hc
   blocks override is restored to its light-on-paper value here, so printing
   from a dark screen never puts a dark value on white paper. Keep this list
   in step with the dark and hc blocks (AssetContractTest pins it). */
@media print {
    :root, :root[data-theme="dark"], :root[data-theme="hc"] {
        --bg: #070f20;
        --surface: #0d1830;
        --surface-2: #0a1428;
        --surface-3: #1b2a48;
        --surface-float: #12203c;
        --tint: #0a1526;
        --soft: #13264a;
        --warm: #ffffff;
        --border: #999999;
        --line-2: #cccccc;
        --line-strong: #666666;
        --border-strong: #000000;
        --text: #dce6f5;
        --text-muted: #a7bcd8;
        --text-faint: #8fa5c2;
        --ink: #dce6f5;
        --brand: #8fb6e8;
        --brand-deep: #b9d3f5;
        --brand-mid: #0058b8;
        --brand-bright: #7db4ea;
        --sky: #666666;
        --sky-deep: #000000;
        --sky-soft: #ffffff;
        --chrome-bg: #00102c;
        --chrome-bg-2: #00091c;
        --chrome-text: #d6e3f5;
        --chrome-text-dim: #9db4d4;
        --chrome-line: #0a2450;
        --chrome-active: #0a2450;
        --accent: #8ab4ff;
        --accent-hover: #b9d3f5;
        --on-accent: #00142e;
        --accent-soft: #13264a;
        --accent-deep: #b9d3f5;
        --link: #8ab4ff;
        --link-hover: #b9d3f5;
        --status-ok: #000000;
        --status-ok-bg: #ffffff;
        --status-ok-text: #000000;
        --status-warn: #000000;
        --status-warn-bg: #ffffff;
        --status-warn-text: #000000;
        --status-crit: #000000;
        --status-crit-bg: #ffffff;
        --status-crit-text: #000000;
        --status-closed: #000000;
        --status-closed-bg: #ffffff;
        --status-closed-text: #000000;
        --info: #000000;
        --info-bg: #ffffff;
        --info-text: #000000;
        --scrim: transparent;
        --edge-shadow: transparent;
        --shadow-xs: none;
        --shadow-sm: none;
        --shadow: none;
        --shadow-md: none;
        --shadow-lg: none;
        --focus-color: #000000;
        --focus-halo: #ffffff;
        --focus-w: 2px;
        color-scheme: light;
    }
}
