/* Common colors via CSS Variables.
   Assumes use of infra-sk/modules/theme-chooser-sk.

 Can be imported via:

    @import '../colors';
*/
@import '../../elements-sk/modules/themes/color-palette';
@import '../../elements-sk/modules/themes/themes';

:root {
  --primary: var(--blue-grey-600);
  --on-primary: var(--white);
  --primary-variant: rgb(204, 204, 255);
  --on-primary-variant: var(--black);
  --link-color: hsl(199, 70%, 40%);

  --color-canceled: rgb(117, 112, 179);
  --color-failure: rgb(217, 95, 2);
  --color-in-progress: rgb(248, 230, 180);
  --color-mishap: rgb(117, 112, 179);
  --color-success: rgb(209, 228, 188);
}
.darkmode {
  --grey-850: #303030;
  --primary: var(--blue-grey-600);
  --on-primary: var(--white);
  --primary-variant: rgb(204, 204, 255);
  --on-primary-variant: var(--black);
  --background: var(--grey-900);
  --on-background: var(--grey-300);
  --surface: var(--grey-850);
  --on-surface: var(--grey-200);
  --error: var(--amber-900);
  --link-color: hsl(199, 70%, 40%);
}

a,
a.visited {
  color: var(--link-color);
}

.darkmode input {
  background-color: var(--surface-2dp);
  color: var(--on-surface);
}

:disabled {
  opacity: var(--text-intensity-medium);
}

/* Background and foreground colors. */
.bg-canceled {
  background-color: var(--color-canceled);
  fill: var(--color-canceled);
}
.bg-failure {
  background-color: var(--color-failure);
  fill: var(--color-failure);
}
.bg-in-progress {
  background-color: var(--color-in-progress);
  fill: var(--color-in-progress);
  /* It's hard to see white on yellow, so invert the color. */
  color: black;
}
.bg-mishap {
  background-color: var(--color-mishap);
  fill: var(--color-mishap);
}
.bg-success {
  background-color: var(--color-success);
  fill: var(--color-success);
}

.fg-canceled {
  color: var(--color-canceled);
  fill: var(--color-canceled);
}
.fg-failure {
  color: var(--color-failure);
  fill: var(--color-failure);
}
.fg-in-progress {
  color: var(--color-in-progress);
  fill: var(--color-in-progress);
}
.fg-mishap {
  color: var(--color-mishap);
  fill: var(--color-mishap);
}
.fg-success {
  color: var(--color-success);
  fill: var(--color-success);
}
