/* ==========================================================================
   BioVikas design tokens — v3.0
   Mirrors brand/tokens/biovikas-tokens-v3.css in the brand repo.
   Property NAMES are unchanged from v2.2 so nothing downstream breaks; the
   VALUES are the v3.0 palette.

   Validated with brand/tools/cvd_check.py + validate_palette.py.
   ========================================================================== */

:root {
  /* --- brand accents: three colours, three jobs (§5.2) ------------------ */
  --brand-green:        #06784C;  /* BioVikas + actionable.  5.53:1 on white */
  --brand-amber:        #B87300;  /* verified evidence only. 3.82:1 — NOT text */
  --brand-blue:         #2B6CB0;  /* BioOS / measured layer. 5.42:1 */
  /* Deprecated alias — Refined Copper is retired (§23). Kept so existing
     rules keep resolving; new work uses --brand-amber. */
  --brand-copper:       var(--brand-amber);

  /* --- surface ladder (§5.3) ------------------------------------------- */
  --surface-page:       #F3F5F6;  /* Cold Steel */
  --surface-panel:      #FFFFFF;  /* Paper White */
  --surface-sunken:     #E9EDEE;
  --surface-cream:      #EDE5D5;  /* XOS Cream — one accent band, not default */
  --surface-deep:       #05452D;  /* Deep Fraction */
  --surface-vessel:     #0E1315;  /* Vessel Black — BioOS only */
  --border-hairline:    rgba(17, 23, 26, 0.10);

  --text-primary:       #11171A;
  --text-secondary:     #4E585E;
  --text-muted:         #7B858A;

  /* --- buttons (§19.2) --------------------------------------------------
     v2.2 needed a separate, brighter UI green because the logo green was too
     dark to work as a fill. #06784C is already that brighter step, so the
     brand green and the UI green are now the same value. */
  --btn-primary-bg:         #06784C;
  --btn-primary-bg-hover:   #055F3D;
  --btn-primary-bg-active:  #04492F;
  --btn-primary-text:       #FFFFFF;
  --btn-primary-bg-disabled:#06784C;

  --btn-secondary-border:        #06784C;
  --btn-secondary-text:          #06784C;
  --btn-secondary-bg-hover:      #E8F1EC;
  --btn-secondary-border-active: #04492F;
  --btn-secondary-text-active:   #04492F;

  /* --- links -------------------------------------------------------------
     Links are GREEN, not amber. Amber is 3.82:1 and fails AA for normal text
     (§5.5); copper used to carry this role at 5.41:1 and its replacement
     cannot. This is the one substitution that would have been a regression. */
  --link-text:          #06784C;
  --link-text-hover:    #055F3D;

  /* Focus ring is always amber — never the control's own colour, or a green
     ring on a green button is invisible to exactly the people who need it. */
  --focus-ring:         #B87300;

  /* --- status: three levels (§20.6) --------------------------------------
     Four levels are not achievable: warning/serious/critical all sit on the
     yellow-orange-red axis, which collapses to one hue for dichromats. */
  --status-good:         #0F7A38;
  --status-warning:      #C08A00;
  --status-critical:     #B3261E;
  --status-serious:      var(--status-warning); /* deprecated, retired in v3.0 */

  /* --- chart chrome ----------------------------------------------------- */
  --chart-surface:       #FFFFFF;
  --chart-grid:          #E4E8EA;
  --chart-axis:          #C3CBCF;

  /* --- categorical, fixed order (§20.3) ---------------------------------
     Slots 1-4 are the scatter-safe set. Note slot 2 is Indigo, NOT the BioOS
     blue — using the BioOS colour as an arbitrary series would destroy the
     one rule that gives it meaning. */
  --series-1-green:      #06784C;
  --series-2-blue:       #3B4EA0;  /* indigo */
  --series-3-magenta:    #B87300;  /* amber (brand) */
  --series-4-gold:       #0F7C93;  /* cyan */
  --series-5-teal:       #C0392E;  /* red */
  --series-6-copper:     #7B4BA6;  /* violet */
  --series-7-violet:     #6E7B1F;  /* olive */
  --series-8-red:        #BE3D77;  /* rose */

  /* --- sequential (§20.4), monotonic L*, evenness 0.96 ------------------ */
  --seq-green-100:       #DEF1E6;
  --seq-green-200:       #ADD5BE;
  --seq-green-300:       #7EB999;
  --seq-green-400:       #529C76;
  --seq-green-500:       #277F57;
  --seq-green-600:       #02623D;
  --seq-green-700:       #004529;

  /* --- diverging (§20.5), arms symmetric in lightness ------------------- */
  --div-neg-3: #862824;
  --div-neg-2: #C65249;
  --div-neg-1: #E49489;
  --div-mid:   #F0EEE8;
  --div-pos-1: #75B692;
  --div-pos-2: #24875B;
  --div-pos-3: #005531;
}

/* ==========================================================================
   Dark — a selected, validated palette, not an inversion.
   On dark grounds the accents must LIFT: #06784C is only 2.0:1 on Deep
   Fraction and effectively invisible there.
   ========================================================================== */
:root[data-theme="dark"],
html[data-theme="dark"] {
  --brand-green:        #34C98A;
  --brand-amber:        #D8A249;
  --brand-blue:         #6BA6E8;

  --surface-page:       #0E1315;
  --surface-panel:      #171C1F;
  --surface-sunken:     #12181A;
  --border-hairline:    rgba(255, 255, 255, 0.12);

  --text-primary:       #E6EAEC;
  --text-secondary:     #A3ADB2;
  --text-muted:         #78838A;

  --btn-primary-bg:         #34C98A;
  --btn-primary-bg-hover:   #4FD69B;
  --btn-primary-bg-active:  #25B478;
  --btn-primary-text:       #0B120E;
  --btn-primary-bg-disabled:#34C98A;

  --btn-secondary-border:        #34C98A;
  --btn-secondary-text:          #34C98A;
  --btn-secondary-bg-hover:      rgba(52, 201, 138, 0.12);
  --btn-secondary-border-active: #25B478;
  --btn-secondary-text-active:   #25B478;

  --link-text:          #34C98A;
  --link-text-hover:    #7FD1A9;
  --focus-ring:         #D8A249;

  --status-good:         #3FB56E;
  --status-warning:      #E0A317;
  --status-critical:     #E8695C;

  --chart-surface:       #171C1F;
  --chart-grid:          #2A3236;
  --chart-axis:          #454F54;

  --series-1-green:      #34C98A;
  --series-2-blue:       #7C8FE0;
  --series-3-magenta:    #D8A249;
  --series-4-gold:       #3FB6CC;
  --series-5-teal:       #E8695C;
  --series-6-copper:     #B08CE0;
  --series-7-violet:     #AFBE55;
  --series-8-red:        #E87BA8;

  --seq-green-100:       #143927;
  --seq-green-200:       #145236;
  --seq-green-300:       #196B47;
  --seq-green-400:       #26855A;
  --seq-green-500:       #439F72;
  --seq-green-600:       #6BB68E;
  --seq-green-700:       #94CDAD;

  --div-neg-3: #F2998D;
  --div-neg-2: #D3695F;
  --div-neg-1: #A2473F;
  --div-mid:   #38372F;
  --div-pos-1: #18714B;
  --div-pos-2: #3A996C;
  --div-pos-3: #72C097;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --brand-green:        #34C98A;
    --brand-amber:        #D8A249;
    --brand-blue:         #6BA6E8;

    --surface-page:       #0E1315;
    --surface-panel:      #171C1F;
    --surface-sunken:     #12181A;
    --border-hairline:    rgba(255, 255, 255, 0.12);

    --text-primary:       #E6EAEC;
    --text-secondary:     #A3ADB2;
    --text-muted:         #78838A;

    --btn-primary-bg:         #34C98A;
    --btn-primary-bg-hover:   #4FD69B;
    --btn-primary-bg-active:  #25B478;
    --btn-primary-text:       #0B120E;
    --btn-primary-bg-disabled:#34C98A;

    --btn-secondary-border:        #34C98A;
    --btn-secondary-text:          #34C98A;
    --btn-secondary-bg-hover:      rgba(52, 201, 138, 0.12);
    --btn-secondary-border-active: #25B478;
    --btn-secondary-text-active:   #25B478;

    --link-text:          #34C98A;
    --link-text-hover:    #7FD1A9;
    --focus-ring:         #D8A249;

    --status-good:         #3FB56E;
    --status-warning:      #E0A317;
    --status-critical:     #E8695C;

    --chart-surface:       #171C1F;
    --chart-grid:          #2A3236;
    --chart-axis:          #454F54;

    --series-1-green:      #34C98A;
    --series-2-blue:       #7C8FE0;
    --series-3-magenta:    #D8A249;
    --series-4-gold:       #3FB6CC;
    --series-5-teal:       #E8695C;
    --series-6-copper:     #B08CE0;
    --series-7-violet:     #AFBE55;
    --series-8-red:        #E87BA8;

    --seq-green-100:       #143927;
    --seq-green-200:       #145236;
    --seq-green-300:       #196B47;
    --seq-green-400:       #26855A;
    --seq-green-500:       #439F72;
    --seq-green-600:       #6BB68E;
    --seq-green-700:       #94CDAD;

    --div-neg-3: #F2998D;
    --div-neg-2: #D3695F;
    --div-neg-1: #A2473F;
    --div-mid:   #38372F;
    --div-pos-1: #18714B;
    --div-pos-2: #3A996C;
    --div-pos-3: #72C097;
  }
}
