/* ============================================================
   RVS theme tokens: per-mode CSS for what the MudBlazor palette
   cannot express (#1008, epic #1006).

   MudBlazor uses one palette slot for a colour's fill and its text.
   The slots hold the fill; this file holds the rest:
   - the Rust primary button's states
   - the focus ring
   - the text/icon value of Rust and each semantic colour
   Every hex here mirrors RVS.UI.Shared/Theme/RvsBrand.cs; change both together.

   Blocks are selected by root classes on <html>, set by
   _content/RVS.UI.Shared/js/theme-root.js:
     Light      (none)          Dark      .rvs-dark
     Dark HC    .rvs-dark.rvs-hc  Light HC  .rvs-hc
   Dark is .rvs-dark, not MudBlazor's .mud-theme-dark, which is the
   Color.Dark utility class and paints its element's background.

   Load after MudBlazor.min.css: several rules here win over
   MudBlazor's by coming later at equal specificity.
   ============================================================ */

/* Light (GitHub light, @primer/primitives 11.10.0 light.css, #1010), and the values every
   mode shares until its own block overrides them. */
:root {
    --rvs-bg-inset: #f6f8fa;          /* bgColor-inset (= bgColor-muted in light) */
    --rvs-bg-default: #ffffff;
    --rvs-bg-muted: #f6f8fa;
    --rvs-bg-overlay: #ffffff;        /* overlay-bgColor: menus and dialogs are white in light */
    --rvs-bg-control: #f6f8fa;
    --rvs-bg-control-hover: #eff2f5;
    --rvs-bg-control-active: #e6eaef;
    --rvs-bg-emphasis: #25292e;
    --rvs-bg-neutral-muted: #818b981f;
    --rvs-bg-accent-muted: #ddf4ff;
    --rvs-bg-backdrop: #c8d1da66;

    --rvs-border-default: #d1d9e0;
    --rvs-border-muted: #d1d9e0b3;
    --rvs-border-emphasis: #818b98;
    --rvs-border-translucent: #1f232826;
    --rvs-border-accent-muted: #54aeff66;

    --rvs-fg-default: #1f2328;
    --rvs-fg-muted: #59636e;
    --rvs-fg-disabled: #818b98;
    --rvs-fg-link: #0969da;

    --rvs-shadow-floating: 0 0 0 1px #d1d9e040, 0 6px 12px -3px #25292e0a, 0 6px 18px 0 #25292e1f;

    --rvs-focus: #1f6feb;
    --rvs-status-open: #C84D21;
    --rvs-tab-active: #C84D21;

    --rvs-primary: #C84D21;
    --rvs-primary-hover: #D55425;
    --rvs-primary-active: #E35A29;
    --rvs-primary-disabled: #883315;
    --rvs-primary-on-disabled: #ffffff66;
    --rvs-primary-border: #ffffff26;

    /* Text/icon values of the semantic colours, for Light and Intake Light. */
    --rvs-primary-text: #C84D21;
    --rvs-info-text: #2278C4;
    --rvs-success-text: #23863D;
    --rvs-warning-text: #9a6700;
    --rvs-error-text: #DE2D34;
}

/* Dark: GitHub dark (@primer/primitives 11.10.0 dark.css) with Rust primary (#1009). */
.rvs-dark {
    --rvs-bg-inset: #010409;
    --rvs-bg-default: #0d1117;
    --rvs-bg-muted: #151b23;
    --rvs-bg-overlay: #010409;
    --rvs-bg-control: #212830;
    --rvs-bg-control-hover: #262c36;
    --rvs-bg-control-active: #2a313c;
    --rvs-bg-emphasis: #3d444d;
    --rvs-bg-neutral-muted: #656c7633;
    --rvs-bg-accent-muted: #388bfd1a;
    --rvs-bg-backdrop: #21283066;

    --rvs-border-default: #3d444d;
    --rvs-border-muted: #3d444db3;
    --rvs-border-emphasis: #656c76;
    --rvs-border-translucent: #ffffff26;
    --rvs-border-accent-muted: #388bfd66;

    --rvs-fg-default: #f0f6fc;
    --rvs-fg-muted: #9198a1;
    --rvs-fg-disabled: #656c76;
    --rvs-fg-link: #4493f8;

    --rvs-focus: #1f6feb;
    --rvs-status-open: #F27147;
    --rvs-tab-active: #F27147;
    --rvs-shadow-floating: 0 0 0 1px #3d444d, 0 6px 12px -3px #01040966, 0 6px 18px 0 #01040966;

    --rvs-primary: #C84D21;
    --rvs-primary-hover: #D55425;
    --rvs-primary-active: #E35A29;
    --rvs-primary-disabled: #883315;
    --rvs-primary-on-disabled: #ffffff66;
    --rvs-primary-border: #ffffff26;

    --rvs-primary-text: #F27147;
    --rvs-info-text: #4493f8;
    --rvs-success-text: #3fb950;
    --rvs-warning-text: #F5AE39;
    --rvs-error-text: #f85149;
}

/* Dark High Contrast: GitHub dark_high_contrast (@primer/primitives 11.10.0) with HC Rust (#1013).
   Two classes, so it wins over the Dark block, which Dark HC also matches. */
.rvs-hc.rvs-dark {
    --rvs-bg-inset: #010409;
    --rvs-bg-default: #010409;
    --rvs-bg-muted: #151b23;
    --rvs-bg-overlay: #010409;
    --rvs-bg-control: #262c36;
    --rvs-bg-control-hover: #2a313c;
    --rvs-bg-control-active: #2f3742;
    --rvs-bg-emphasis: #3d444d;
    --rvs-bg-neutral-muted: #212830;
    --rvs-bg-accent-muted: #5cacff1a;
    --rvs-bg-backdrop: #d1d7e066;

    --rvs-border-default: #b7bdc8;
    --rvs-border-muted: #b7bdc8;
    --rvs-border-emphasis: #b7bdc8;
    --rvs-border-translucent: #9198a1;
    --rvs-border-accent-muted: #5cacff;

    --rvs-fg-default: #ffffff;
    --rvs-fg-muted: #b7bdc8;
    --rvs-fg-disabled: #656c76;
    --rvs-fg-link: #74b9ff;

    --rvs-focus: #409eff;
    --rvs-status-open: #eba389;
    --rvs-tab-active: #eba389;
    --rvs-shadow-floating: 0 0 0 1px #b7bdc8, 0 6px 12px -3px #01040966, 0 6px 18px 0 #01040966;

    --rvs-primary: #903818;
    --rvs-primary-hover: #b3451d;
    --rvs-primary-active: #d75323;
    --rvs-primary-disabled: #883315;
    --rvs-primary-on-disabled: #ffffff66;
    --rvs-primary-border: #eba389;

    --rvs-primary-text: #eba389;
    --rvs-info-text: #74b9ff;
    --rvs-success-text: #2bd853;
    --rvs-warning-text: #f0b72f;
    --rvs-error-text: #ff9492;
}

/* Light High Contrast: GitHub light_high_contrast (@primer/primitives 11.10.0) with HC Rust (#1014).
   Shared by Manager's fourth mode and Intake's high contrast (#1015). */
.rvs-hc:not(.rvs-dark) {
    --rvs-bg-inset: #eff2f5;
    --rvs-bg-default: #ffffff;
    --rvs-bg-muted: #e6eaef;
    --rvs-bg-overlay: #ffffff;
    --rvs-bg-control: #e0e6eb;
    --rvs-bg-control-hover: #dae0e7;
    --rvs-bg-control-active: #d1d9e0;
    --rvs-bg-emphasis: #25292e;
    --rvs-bg-neutral-muted: #e0e6eb;
    --rvs-bg-accent-muted: #dff7ff;
    --rvs-bg-backdrop: #393f4666;

    --rvs-border-default: #454c54;
    --rvs-border-muted: #454c54;
    --rvs-border-emphasis: #454c54;
    --rvs-border-translucent: #59636e;
    --rvs-border-accent-muted: #368cf9;

    --rvs-fg-default: #010409;
    --rvs-fg-muted: #454c54;
    --rvs-fg-disabled: #59636e;
    --rvs-fg-link: #023b95;

    --rvs-focus: #0349b4;
    --rvs-status-open: #712b13;
    --rvs-tab-active: #712b13;
    --rvs-shadow-floating: 0 0 0 1px #454c5440, 0 6px 12px -3px #25292e0a, 0 6px 18px 0 #25292e1f;

    --rvs-primary: #893517;
    --rvs-primary-hover: #813215;
    --rvs-primary-active: #762e14;
    --rvs-primary-disabled: #eeac95;
    --rvs-primary-on-disabled: #ffffffcc;
    --rvs-primary-border: #5a230f;

    --rvs-primary-text: #712b13;
    --rvs-info-text: #023b95;
    --rvs-success-text: #04591f;
    --rvs-warning-text: #603700;
    --rvs-error-text: #960d1e;
}


/* High contrast: shapes and states that don't depend on colour (#1013, shared with #1014). */
.rvs-hc .mud-dialog,
.rvs-hc .mud-popover.mud-paper,
.rvs-hc .mud-card,
.rvs-hc .mud-paper:not(.mud-elevation-0) {
    border: 1px solid var(--rvs-border-default);
}

/* The active nav item: a bar, not colour alone (D8 rule 5). */
.rvs-hc .mud-nav-link.active {
    box-shadow: inset 3px 0 0 currentColor;
}

.rvs-hc .mud-appbar {
    border-bottom: 1px solid var(--rvs-border-default);
}

/* Primary (filled) button states (spec §4). Hover and pressed get lighter, as GitHub's do.
   .rvs-rust-primary is on <html> in Manager always, and in Intake whenever no dealer accent is
   in use — no accent set, or high contrast, which ignores it (#1015) — so a dealer-coloured
   button never turns Rust on hover. */
.rvs-rust-primary .mud-button-filled-primary {
    background-color: var(--rvs-primary);
    border: 1px solid var(--rvs-primary-border);
    box-shadow: none;
}

.rvs-rust-primary .mud-button-filled-primary:hover {
    background-color: var(--rvs-primary-hover);
}

.rvs-rust-primary .mud-button-filled-primary:active {
    background-color: var(--rvs-primary-active);
}

/* MudBlazor 9.4 has no .mud-button-disabled class; a disabled button is :disabled, and
   MudBlazor fills it with !important, so this needs it too. */
.rvs-rust-primary .mud-button-filled-primary:disabled {
    background-color: var(--rvs-primary-disabled) !important;
    color: var(--rvs-primary-on-disabled) !important;
    border-color: var(--rvs-primary-disabled) !important;
}

/* Focus: 2px outline, 2px offset, everywhere (spec §4, §11.1). The offset keeps the ring on
   the page rather than on a Rust fill. */
:focus-visible {
    outline: 2px solid var(--rvs-focus);
    outline-offset: 2px;
}

/* Text uses of the semantic palette colours (§6). :not(:disabled) leaves a disabled button to
   MudBlazor's own grey. Primary text is Rust only under .rvs-rust-primary: on an Intake page
   with a dealer accent, Color.Primary text is the dealer's colour (Spec A-16). */
.rvs-rust-primary .mud-nav-link.active:not(.mud-nav-link-disabled),
.rvs-rust-primary .mud-primary-text,
.rvs-rust-primary .mud-button-text-primary:not(:disabled),
.rvs-rust-primary .mud-button-outlined-primary:not(:disabled) { color: var(--rvs-primary-text) !important; }
.mud-info-text,    .mud-button-text-info:not(:disabled),    .mud-button-outlined-info:not(:disabled)    { color: var(--rvs-info-text) !important; }
.mud-success-text, .mud-button-text-success:not(:disabled), .mud-button-outlined-success:not(:disabled) { color: var(--rvs-success-text) !important; }
.mud-warning-text, .mud-button-text-warning:not(:disabled), .mud-button-outlined-warning:not(:disabled) { color: var(--rvs-warning-text) !important; }
.mud-error-text,   .mud-button-text-error:not(:disabled),   .mud-button-outlined-error:not(:disabled)   { color: var(--rvs-error-text) !important; }

/* ── Type baseline and text size (Manager, #1072) ────────────────────────
   One baseline for every page. Below md a phone is read at arm's length, so the type scale's
   body, secondary and caption roles go up one step, here and only here: the Typo styles and the
   component CSS read these variables, so no page has a step of its own. Manager opts in with
   rvs-type-step on <html>; Intake sets its own sizes in IntakeTheme. html.rvs-type-step outranks
   the :root rule MudThemeProvider writes, whichever loads last.

     role                      md and up   below md
     primary      body1        1rem        1.125rem
     secondary    body2        0.875rem    1rem
     caption      caption      0.75rem     0.875rem
     subtitles    subtitle1/2  1 / 0.875   1.125 / 1rem

   The text-size setting then scales that baseline: data-text-size on <html> (set by
   rvsTheme.setTextSize, theme-root.js) is the root font size, which everything in rem follows.
   The percentages are TextSizes.Percent in Manager's ThemeService.cs; keep the two in step. */
@media (max-width: 959.98px) {
    html.rvs-type-step {
        --mud-typography-body1-size: 1.125rem;
        --mud-typography-body2-size: 1rem;
        --mud-typography-caption-size: 0.875rem;
        --mud-typography-subtitle1-size: 1.125rem;
        --mud-typography-subtitle2-size: 1rem;
    }
}

html[data-text-size="large"] { font-size: 115%; }
html[data-text-size="larger"] { font-size: 130%; }

/* ── Chips (spec §6, #1012) ──────────────────────────────────────────────
   Two families, as on GitHub: solid for semantic state (priority, the only solid chip) and
   tinted for categorical labels (status). Classes are named by colour; the meaning → colour
   mapping is ChipMap (RVS.UI.Shared/Theme/Chips.cs). Pills, so a chip never reads as a button
   (buttons are 6px). */
.rvs-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    box-sizing: border-box;
    height: 1.25rem;
    padding: 0 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    /* A fixed-size pill, GitHub's label, not running text: it stays at 12px on every screen and
       grows only with the text-size setting (#1072), in rem, so height and text grow together. */
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.125rem;
    white-space: nowrap;
}

/* Critical's icon, sized to the text. */
.rvs-chip .rvs-chip-icon {
    width: 0.875rem;
    height: 0.875rem;
    font-size: 0.875rem;
    margin-left: -2px;
}

/* Unknown, blank, Cancelled, and every other label on a list row: a neutral outline. */
.rvs-chip-neutral { background: transparent !important; color: var(--mud-palette-text-secondary) !important; border-color: var(--mud-palette-lines-default) !important; }

/* Chips: solid (Light and Dark alike) */
.rvs-chip-slate   { background:#61778E !important; color:#fff !important; }
.rvs-chip-blue    { background:#2278C4 !important; color:#fff !important; }
.rvs-chip-amber   { background:#F5AE39 !important; color:#362200 !important; }
.rvs-chip-orange  { background:#F78A40 !important; color:#3D1D06 !important; }
.rvs-chip-red     { background:#DE2D34 !important; color:#fff !important; }
.rvs-chip-green   { background:#23863D !important; color:#fff !important; }
.rvs-chip-teal    { background:#248181 !important; color:#fff !important; }
.rvs-chip-sky     { background:#57CEF8 !important; color:#002B39 !important; }
.rvs-chip-violet  { background:#8B51F1 !important; color:#fff !important; }
.rvs-chip-magenta { background:#D12B9B !important; color:#fff !important; }

/* Chips: tinted, Light (GitHub IssueLabel: ~16% fill, ~33% border, darkened text) */
.rvs-chip--tinted.rvs-chip-green   { background:#23863D29 !important; border-color:#23863D54 !important; color:#005e22 !important; }
.rvs-chip--tinted.rvs-chip-teal    { background:#24818129 !important; border-color:#24818154 !important; color:#005959 !important; }
.rvs-chip--tinted.rvs-chip-sky     { background:#57CEF829 !important; border-color:#57CEF854 !important; color:#00566d !important; }
.rvs-chip--tinted.rvs-chip-violet  { background:#8B51F129 !important; border-color:#8B51F154 !important; color:#553790 !important; }
.rvs-chip--tinted.rvs-chip-magenta { background:#D12B9B29 !important; border-color:#D12B9B54 !important; color:#7e235e !important; }
.rvs-chip--tinted.rvs-chip-slate   { background:#61778E29 !important; border-color:#61778E54 !important; color:#3a4f65 !important; }
.rvs-chip--tinted.rvs-chip-blue    { background:#2278C429 !important; border-color:#2278C454 !important; color:#004f8b !important; }
.rvs-chip--tinted.rvs-chip-amber   { background:#F5AE3929 !important; border-color:#F5AE3954 !important; color:#694500 !important; }
.rvs-chip--tinted.rvs-chip-orange  { background:#F78A4029 !important; border-color:#F78A4054 !important; color:#793800 !important; }
.rvs-chip--tinted.rvs-chip-red     { background:#DE2D3429 !important; border-color:#DE2D3454 !important; color:#892122 !important; }

/* Chips: tinted, Dark (~18% fill, 30% border, lightened text) */
.rvs-dark .rvs-chip--tinted.rvs-chip-green   { background:#23863D2e !important; border-color:#23863D4d !important; color:#79d689 !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-teal    { background:#2481812e !important; border-color:#2481814d !important; color:#79cfce !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-sky     { background:#57CEF82e !important; border-color:#57CEF84d !important; color:#57cef8 !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-violet  { background:#8B51F12e !important; border-color:#8B51F14d !important; color:#c3afff !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-magenta { background:#D12B9B2e !important; border-color:#D12B9B4d !important; color:#ff96d3 !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-slate   { background:#61778E2e !important; border-color:#61778E4d !important; color:#a9c1da !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-blue    { background:#2278C42e !important; border-color:#2278C44d !important; color:#89c3ff !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-amber   { background:#F5AE392e !important; border-color:#F5AE394d !important; color:#f5ae39 !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-orange  { background:#F78A402e !important; border-color:#F78A404d !important; color:#ffa56d !important; }
.rvs-dark .rvs-chip--tinted.rvs-chip-red     { background:#DE2D342e !important; border-color:#DE2D344d !important; color:#ffa098 !important; }

/* Chips: Dark HC. Each colour keeps its hue; solid fills take white text at ~7.5:1 and a light
   border, since they sit at ~2.7:1 on the page. Tinted chips become outlines. High (orange)
   keeps a light fill with dark text, so it never matches Critical's lightness (D8 rule 3). */
.rvs-hc.rvs-dark .rvs-chip-slate   { background:#475667 !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-blue    { background:#19578e !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-amber   { background:#764b06 !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-orange  { background:#F78A40 !important; color:#010409 !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-red     { background:#a61a20 !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-green   { background:#19612c !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-teal    { background:#1a5d5d !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-sky     { background:#055b7a !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-violet  { background:#6113ea !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip-magenta { background:#991f71 !important; color:#ffffff !important; border-color:#b7bdc8 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-slate   { background:transparent !important; color:#8699ac !important; border-color:#8699ac !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-blue    { background:transparent !important; color:#4f9ce0 !important; border-color:#4f9ce0 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-amber   { background:transparent !important; color:#f5ae39 !important; border-color:#f5ae39 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-orange  { background:transparent !important; color:#f78a40 !important; border-color:#f78a40 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-red     { background:transparent !important; color:#e97377 !important; border-color:#e97377 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-green   { background:transparent !important; color:#2dad4f !important; border-color:#2dad4f !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-teal    { background:transparent !important; color:#2fa7a7 !important; border-color:#2fa7a7 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-sky     { background:transparent !important; color:#57cef8 !important; border-color:#57cef8 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-violet  { background:transparent !important; color:#ab81f5 !important; border-color:#ab81f5 !important; }
.rvs-hc.rvs-dark .rvs-chip--tinted.rvs-chip-magenta { background:transparent !important; color:#e16fbc !important; border-color:#e16fbc !important; }

/* Chips: Light HC. Solid fills at ~8.1:1 under white text; High keeps its light fill with a dark edge. */
.rvs-hc:not(.rvs-dark) .rvs-chip-slate   { background:#425161 !important; color:#ffffff !important; border-color:#425161 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-blue    { background:#175286 !important; color:#ffffff !important; border-color:#175286 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-amber   { background:#6f4706 !important; color:#ffffff !important; border-color:#6f4706 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-orange  { background:#F78A40 !important; color:#010409 !important; border-color:#853906 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-red     { background:#9d191e !important; color:#ffffff !important; border-color:#9d191e !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-green   { background:#185b29 !important; color:#ffffff !important; border-color:#185b29 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-teal    { background:#195858 !important; color:#ffffff !important; border-color:#195858 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-sky     { background:#055673 !important; color:#ffffff !important; border-color:#055673 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-violet  { background:#5b12dd !important; color:#ffffff !important; border-color:#5b12dd !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip-magenta { background:#901e6b !important; color:#ffffff !important; border-color:#901e6b !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-slate   { background:transparent !important; color:#4a5a6c !important; border-color:#4a5a6c !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-blue    { background:transparent !important; color:#1a5b95 !important; border-color:#1a5b95 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-amber   { background:transparent !important; color:#7c4f06 !important; border-color:#7c4f06 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-orange  { background:transparent !important; color:#944006 !important; border-color:#944006 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-red     { background:transparent !important; color:#ae1b21 !important; border-color:#ae1b21 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-green   { background:transparent !important; color:#1b662f !important; border-color:#1b662f !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-teal    { background:transparent !important; color:#1b6262 !important; border-color:#1b6262 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-sky     { background:transparent !important; color:#056080 !important; border-color:#056080 !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-violet  { background:transparent !important; color:#681ded !important; border-color:#681ded !important; }
.rvs-hc:not(.rvs-dark) .rvs-chip--tinted.rvs-chip-magenta { background:transparent !important; color:#a12177 !important; border-color:#a12177 !important; }

/* ── Windows contrast themes (forced-colors, #1018) ──────────────────────
   The OS repaints the page in its own colours, so no RV Intake high-contrast mode goes on top.
   It drops backgrounds and box-shadows, though, which would leave pills, cards and the active nav
   item without a shape: give them edges in the system colours. */
@media (forced-colors: active) {
    .rvs-chip,
    .mud-card,
    .mud-paper:not(.mud-elevation-0),
    .mud-dialog,
    .mud-popover {
        border: 1px solid CanvasText;
    }

    :focus-visible {
        outline: 2px solid Highlight;
        outline-offset: 2px;
    }

    .mud-nav-link.active,
    .rvs-hc .mud-nav-link.active {
        box-shadow: inset 3px 0 0 CanvasText;
    }
}
