/* ============================================================================
   OSSUS design tokens — source of truth.
   Copied from the OSSUS design system (tokens.generated.css + brand-lock.css).
   These are the OSSUS primitives; ossus-theme.css maps them onto the
   dashboard's token names. OSSUS is the single, always-on design language and
   ships in two palettes: light (:root, below) and dark ([data-theme="dark"]).
   The dark primitives are lifted verbatim from the OSSUS design system's
   [data-theme="dark"] block — same brand green, inverted surface/text ramp,
   raised contrast. Namespaced (--color-* / --radius-* / --sub-* / --chip-* /
   --sp-*) so the names stay self-contained.
   ========================================================================== */
:root {
  /* Brand */
  --color-primary: #3e7852;
  --color-primary-light: #5b8f70;
  --color-primary-dark: #366048;
  --color-secondary: #6B8E7F;

  /* Semantic */
  --color-error: #C9202C;
  --color-warning: #F77928;
  --color-info: #1D64D8;
  --color-success: #3e7852;
  --color-purple: #782BD6;

  /* Surfaces */
  --color-bg: #F5F7F6;
  --color-paper: #FFFFFF;
  --color-sidebar: #0F1F18;

  /* Text */
  --color-text-primary: rgba(38,43,67,0.9);
  --color-text-secondary: rgba(38,43,67,0.6);
  --color-text-disabled: rgba(38,43,67,0.38);

  /* Borders & dividers */
  --color-divider: rgb(229,231,235);
  --color-card-border: rgb(229,231,235);
  --color-card-bg: #FFFFFF;
  --color-input-border: rgba(38,43,67,0.23);

  /* Table */
  --color-table-header: #F9FAFB;
  --color-table-row-alt: rgba(0,0,0,0.02);
  --color-table-hover: rgba(0,0,0,0.04);

  /* Icons */
  --color-icon-green: #3E7852;
  --color-icon-red: #C9202C;
  --color-icon-grey: #7C7C7C;
  --color-icon-orange: #F77928;
  --color-icon-blue: #1D64D8;

  /* Shadows */
  --ossus-shadow-xs: 0 1px 2px rgba(0,0,0,0.06);
  --ossus-shadow-sm: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
  --ossus-shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.06);
  --ossus-shadow-lg: 0 6px 20px rgba(0,0,0,0.12);
  --ossus-shadow-xl: 0 8px 26px rgba(0,0,0,0.15);

  /* Radii */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 10px;
  --radius-2xl: 12px;
  --radius-3xl: 16px;
  --radius-full: 9999px;

  /* Typography */
  --ossus-font-sans: 'IBM Plex Sans', Inter, system-ui, sans-serif;
  --ossus-font-size-base: 13.125px;

  /* Sub-sidebar tokens — light mode */
  --sub-bg: #FFFFFF;
  --sub-border: #E5E7EB;
  --sub-hover-bg: #E8F5EB;
  --sub-active-bg: #E8F5EB;
  --sub-icon: #3E7852;
  --sub-text: #3D3D3D;
  --sub-active-text: #3E7852;
  --sub-title: #3E7852;
  --sub-divider: #E5E7EB;
  --sub-label: #9CA3AF;

  /* Severity (risk register) */
  --severity-critical: #C9202C;
  --severity-high: #F77928;
  --severity-medium: #B88600;
  --severity-low: #1D64D8;
  --severity-info: #6B7280;

  /* Chips */
  --chip-green-soft-bg: rgba(62, 120, 82, 0.12);
  --focus-border: #3e7852;
}

/* ----------------------------------------------------------------------------
   OSSUS dark palette. Brand constants (--color-primary*, --color-sidebar) are
   deliberately NOT overridden: the green accent and the dark-green module rail
   stay identical in both palettes. Only the surface/background ramp inverts,
   text contrast is raised, and semantic/icon hues are lifted so they stay
   legible on near-black surfaces. Values from the OSSUS design system's
   [data-theme="dark"] scheme (tokens.generated.css).
   -------------------------------------------------------------------------- */
:root[data-theme="dark"] {
  /* Surfaces — inverted ramp */
  --color-bg:            #030303;
  --color-paper:         #0D0D0D;
  --color-card-bg:       #141414;
  --color-table-header:  #1E1E1E;
  --color-table-row-alt: rgba(255,255,255,0.02);
  --color-table-hover:   rgba(255,255,255,0.04);

  /* Text — raised contrast on dark */
  --color-text-primary:   rgba(255,255,255,0.87);
  --color-text-secondary: rgba(255,255,255,0.6);
  --color-text-disabled:  rgba(255,255,255,0.38);

  /* Borders & dividers */
  --color-divider:      rgba(255,255,255,0.12);
  --color-card-border:  rgba(255,255,255,0.12);
  --color-input-border: rgba(255,255,255,0.22);

  /* Semantic — lifted for contrast on dark surfaces */
  --color-error:   #EF5350;
  --color-warning: #F99B4E;
  --color-info:    #5AA2F0;
  --color-success: #65A278;

  /* Icons */
  --color-icon-green:  #65A278;
  --color-icon-red:    #EF5350;
  --color-icon-grey:   rgba(255,255,255,0.6);
  --color-icon-orange: #F99B4E;
  --color-icon-blue:   #93BBFD;

  /* Shadows — deeper on dark */
  --ossus-shadow-xs: 0 1px 2px rgba(0,0,0,0.4);
  --ossus-shadow-sm: 0 1px 3px rgba(0,0,0,0.5), 0 1px 2px rgba(0,0,0,0.4);
  --ossus-shadow-md: 0 4px 6px -1px rgba(0,0,0,0.5), 0 2px 4px -2px rgba(0,0,0,0.4);
  --ossus-shadow-lg: 0 6px 20px rgba(0,0,0,0.55);
  --ossus-shadow-xl: 0 8px 26px rgba(0,0,0,0.6);

  /* Sub-sidebar — dark */
  --sub-bg:          #171717;
  --sub-border:      #4F4F4F;
  --sub-hover-bg:    #1C3827;
  --sub-active-bg:   #1C3827;
  --sub-icon:        #65A278;
  --sub-text:        #FFFFFF;
  --sub-active-text: #65A278;
  --sub-title:       #FFFFFF;
  --sub-divider:     #989898;
  --sub-label:       #989898;

  /* Severity (risk register) — dark */
  --severity-critical: #EF5350;
  --severity-high:     #E88B4F;
  --severity-medium:   #ECCC65;
  --severity-low:      #5AA2F0;
  --severity-info:     #9CA3AF;

  --chip-green-soft-bg: rgba(101, 162, 120, 0.16);
  --focus-border: #65A278;
}
