// Weightmans DARK theme
// Copyright 2026 Weightmans LLP

@use "sass:color" as *;
@use "sass:map" as *;
@use "../mixins" as *;

@use "../colours/colours" as brand;

@use "secondary-colours/vars/innovative" as innovative;
@use "secondary-colours/vars/approachable" as approachable;
@use "secondary-colours/vars/complementary" as complementary;
@use "secondary-colours/vars/professional" as professional;
@use "secondary-colours/vars/contemporary" as contemporary;
@use "secondary-colours/vars/dynamic" as dynamic;

$tealish-bg: hsl(190 15% 15% / 1);

$colors: (
  // Primary
  primary: scale(brand.$weightmans, $lightness: 100%, $chroma: 30%, $space: oklch),
  on-primary: scale(brand.$weightmans, $lightness: 0%, $space: oklch),
  primary-container: scale(brand.$weightmans, $lightness: 45%, $chroma: 30%, $space: oklch),
  on-primary-container: scale(brand.$weightmans, $lightness: 95%, $space: oklch),

  // Primary Variant
  primary-variant: scale(brand.$supportive, $lightness: 60%, $chroma: 15%, $space: oklch),
  on-primary-variant: scale(brand.$supportive, $lightness: -25%, $space: oklch),
  primary-variant-container: scale(brand.$supportive, $lightness: 5%, $chroma: 15%, $space: oklch),
  on-primary-variant-container: scale(brand.$supportive, $lightness: 90%, $space: oklch),

  // Secondary (Innovative)
  secondary: get(innovative.$dark, secondary),
  on-secondary: get(innovative.$dark, on-secondary),
  secondary-container: get(innovative.$dark, secondary-container),
  on-secondary-container: get(innovative.$dark, on-secondary-container),

  // Secondary Variant
  secondary-variant: get(innovative.$dark, secondary-variant),
  on-secondary-variant: get(innovative.$dark, on-secondary-variant),
  secondary-variant-container: get(innovative.$dark, secondary-variant-container),
  on-secondary-variant-container: get(innovative.$dark, on-secondary-variant-container),

  // Error
  error: scale(brand.$error, $lightness: 55%, $saturation: 100%),
  on-error: scale(brand.$error, $lightness: -50%),
  error-container: scale(brand.$error, $lightness: -10%),
  on-error-container: scale(brand.$error, $lightness: 80%),

  // Success
  success: scale(brand.$success, $lightness: 30%),
  on-success: scale(brand.$success, $lightness: -50%),
  success-container: scale(brand.$success, $lightness: -10%),
  on-success-container: scale(brand.$success, $lightness: 70%),

  // Warning
  warning: scale(brand.$warning, $lightness: 20%),
  on-warning: scale(brand.$warning, $lightness: -80%),
  warning-container: scale(brand.$warning, $lightness: -30%),
  on-warning-container: scale(brand.$warning, $lightness: 70%),

  // Info
  info: scale(brand.$professional, $lightness: 20%),
  on-info: scale(brand.$professional, $lightness: -60%),
  info-container: scale(brand.$professional, $lightness: -30%),
  on-info-container: scale(brand.$professional, $lightness: 70%),

  // Background
  background: $tealish-bg,
  on-background: #ffffff,

  // Surface
  surface: scale($tealish-bg, $lightness: 5%),
  on-surface: scale($tealish-bg, $lightness: 85%),

  // Surface Variant
  surface-variant: scale($tealish-bg, $lightness: 3%),
  on-surface-variant: #bec9c8,

  innovative: get(innovative.$dark, secondary),
  on-innovative: get(innovative.$dark, on-secondary),
  innovative-container: get(innovative.$dark, secondary-container),
  on-innovative-container: get(innovative.$dark, on-secondary-container),
  innovative-variant: get(innovative.$dark, secondary-variant),
  on-innovative-variant: get(innovative.$dark, on-secondary-variant),
  innovative-variant-container: get(innovative.$dark, secondary-variant-container),
  on-innovative-variant-container: get(innovative.$dark, on-secondary-variant-container),
  approachable: get(approachable.$dark, secondary),
  on-approachable: get(approachable.$dark, on-secondary),
  approachable-container: get(approachable.$dark, secondary-container),
  on-approachable-container: get(approachable.$dark, on-secondary-container),
  approachable-variant: get(approachable.$dark, secondary-variant),
  on-approachable-variant: get(approachable.$dark, on-secondary-variant),
  approachable-variant-container: get(approachable.$dark, secondary-variant-container),
  on-approachable-variant-container: get(approachable.$dark, on-secondary-variant-container),
  complementary: get(complementary.$dark, secondary),
  on-complementary: get(complementary.$dark, on-secondary),
  complementary-container: get(complementary.$dark, secondary-container),
  on-complementary-container: get(complementary.$dark, on-secondary-container),
  complementary-variant: get(complementary.$dark, secondary-variant),
  on-complementary-variant: get(complementary.$dark, on-secondary-variant),
  complementary-variant-container: get(complementary.$dark, secondary-variant-container),
  on-complementary-variant-container: get(complementary.$dark, on-secondary-variant-container),
  professional: get(professional.$dark, secondary),
  on-professional: get(professional.$dark, on-secondary),
  professional-container: get(professional.$dark, secondary-container),
  on-professional-container: get(professional.$dark, on-secondary-container),
  professional-variant: get(professional.$dark, secondary-variant),
  on-professional-variant: get(professional.$dark, on-secondary-variant),
  professional-variant-container: get(professional.$dark, secondary-variant-container),
  on-professional-variant-container: get(professional.$dark, on-secondary-variant-container),
  contemporary: get(contemporary.$dark, secondary),
  on-contemporary: get(contemporary.$dark, on-secondary),
  contemporary-container: get(contemporary.$dark, secondary-container),
  on-contemporary-container: get(contemporary.$dark, on-secondary-container),
  contemporary-variant: get(contemporary.$dark, secondary-variant),
  on-contemporary-variant: get(contemporary.$dark, on-secondary-variant),
  contemporary-variant-container: get(contemporary.$dark, secondary-variant-container),
  on-contemporary-variant-container: get(contemporary.$dark, on-secondary-variant-container),
  dynamic: get(dynamic.$dark, secondary),
  on-dynamic: get(dynamic.$dark, on-secondary),
  dynamic-container: get(dynamic.$dark, secondary-container),
  on-dynamic-container: get(dynamic.$dark, on-secondary-container),
  dynamic-variant: get(dynamic.$dark, secondary-variant),
  on-dynamic-variant: get(dynamic.$dark, on-secondary-variant),
  dynamic-variant-container: get(dynamic.$dark, secondary-variant-container),
  on-dynamic-variant-container: get(dynamic.$dark, on-secondary-variant-container)
) !default;

$vars: (
  /* Utilities */ 
  outline-opacity: 0.1,
  outline-percentage: calc(var(--outline-opacity) * 100%),
  hover-opacity: 0.1,
  hover-percentage: calc(var(--hover-opacity) * 100%),
  active-opacity: 0.2,
  active-percentage: calc(var(--active-opacity) * 100%),
  disabled-opacity: 0.6,
  disabled-percentage: calc(var(--disabled-opacity) * 100%),
  emphasize: #fff,
  deemphasize: #000
) !default;
