:root {
  --ctp-rosewater: #f4dbd6;
  --ctp-flamingo: #f0c6c6;
  --ctp-pink: #f5bde6;
  --ctp-mauve: #c6a0f6;
  --ctp-red: #ed8796;
  --ctp-maroon: #ee99a0;
  --ctp-peach: #f5a97f;
  --ctp-yellow: #eed49f;
  --ctp-green: #a6da95;
  --ctp-teal: #8bd5ca;
  --ctp-sky: #91d7e3;
  --ctp-sapphire: #7dc4e4;
  --ctp-blue: #8aadf4;
  --ctp-lavender: #b7bdf8;
  --ctp-text: #cad3f5;
  --ctp-subtext1: #b8c0e0;
  --ctp-subtext0: #a5adcb;
  --ctp-overlay2: #939ab7;
  --ctp-overlay1: #8087a2;
  --ctp-overlay0: #6e738d;
  --ctp-surface2: #5b6078;
  --ctp-surface1: #494d64;
  --ctp-surface0: #363a4f;
  --ctp-base: #24273a;
  --ctp-mantle: #1e2030;
  --ctp-crust: #181926;
  --shadow: #010409;
  --ctp-accent: var(--ctp-mauve);
  color-scheme: dark;
}

:root,
.dark {
  --body-background-fill: var(--background-fill-primary);
  --body-text-color: var(--ctp-subtext0);
  --color-accent-soft: var(--ctp-surface0);
  --background-fill-primary: var(--ctp-mantle);
  --background-fill-secondary: var(--ctp-base);
  --border-color-accent: var(--ctp-surface0);
  --border-color-primary: var(--ctp-surface1);
  --link-text-color-active: var(--ctp-subtext0);
  --link-text-color: var(--ctp-subtext0);
  --link-text-color-hover: var(--ctp-accent);
  --link-text-color-visited: var(--ctp-subtext0);
  --body-text-color-subdued: var(--ctp-subtext0);
  --shadow-spread: 1px;
  --block-background-fill: var(--ctp-mantle);
  --block-border-color: var(--border-color-primary);
  --block_border_width: None;
  --block-info-text-color: var(--body-text-color-subdued);
  --block-label-background-fill: var(--background-fill-secondary);
  --block-label-border-color: var(--border-color-primary);
  --block_label_border_width: None;
  --block-label-text-color: var(--ctp-text);
  --block_shadow: None;
  --block_title_background_fill: None;
  --block_title_border_color: None;
  --block_title_border_width: None;
  --block-title-text-color: var(--ctp-text);
  --panel-background-fill: var(--background-fill-secondary);
  --panel-border-color: var(--border-color-primary);
  --panel_border_width: None;
  --checkbox-background-color: var(--ctp-surface1);
  --checkbox-background-color-focus: var(--checkbox-background-color);
  --checkbox-background-color-hover: var(--checkbox-background-color);
  --checkbox-background-color-selected: var(--ctp-accent);
  --checkbox-border-color: var(--ctp-surface0);
  --checkbox-border-color-focus: var(--ctp-overlay0);
  --checkbox-border-color-hover: var(--ctp-surface0);
  --checkbox-border-color-selected: var(--ctp-overlay0);
  --checkbox-border-width: var(--input-border-width);
  --checkbox-label-background-fill: var(--ctp-surface0);
  --checkbox-label-background-fill-hover: var(--ctp-surface0);
  --checkbox-label-background-fill-selected: var(
    --checkbox-label-background-fill
  );
  --checkbox-label-border-color: var(--border-color-primary);
  --checkbox-label-border-color-hover: var(--checkbox-label-border-color);
  --checkbox-label-border-width: var(--input-border-width);
  --checkbox-label-text-color: var(--body-text-color);
  --checkbox-label-text-color-selected: var(--checkbox-label-text-color);
  --error-background-fill: var(--background-fill-primary);
  --error-border-color: var(--border-color-primary);
  --error_border_width: None;
  --error-text-color: var(--ctp-red);
  --input-background-fill: var(--ctp-base);
  --input-background-fill-focus: var(--input-background-fill);
  --input-background-fill-hover: var(--input-background-fill);
  --input-border-color: var(--border-color-primary);
  --input-border-color-focus: var(--neutral-700);
  --input-border-color-hover: var(--input-border-color);
  --input_border_width: None;
  --input-placeholder-color: var(--neutral-500);
  --input_shadow: None;
  --input-shadow-focus: 0 0 0 var(--shadow-spread) var(--neutral-700),
    var(--shadow-inset);
  --loader_color: None;
  --slider_color: None;
  --stat-background-fill: linear-gradient(
    to right,
    var(--primary-400),
    var(--primary-600)
  );
  --table-border-color: var(--neutral-700);
  --table-even-background-fill: var(--neutral-950);
  --table-odd-background-fill: var(--neutral-900);
  --table-row-focus: var(--color-accent-soft);
  --button-border-width: var(--input-border-width);
  --button-cancel-background-fill: var(--ctp-red);
  --button-cancel-background-fill-hover: var(--ctp-red);
  --button-cancel-border-color: var(--ctp-red);
  --button-cancel-border-color-hover: var(--button-cancel-border-color);
  --button-cancel-text-color: var(--ctp-base);
  --button-cancel-text-color-hover: var(--button-cancel-text-color);
  --button-primary-background-fill: var(--ctp-accent);
  --button-primary-background-fill-hover: var(--ctp-accent);
  --button-primary-border-color: var(--ctp-accent);
  --button-primary-border-color-hover: var(--button-primary-border-color);
  --button-primary-text-color: var(--ctp-base);
  --button-primary-text-color-hover: var(--button-primary-text-color);
  --button-secondary-background-fill: var(--ctp-surface0);
  --button-secondary-background-fill-hover: var(--ctp-surface0);
  --button-secondary-border-color: var(--ctp-surface0);
  --button-secondary-border-color-hover: var(--button-secondary-border-color);
  --button-secondary-text-color: var(--ctp-text);
  --button-secondary-text-color-hover: var(--button-secondary-text-color);
}

.gradio-button:hover {
  filter: brightness(130%);
}

input[type='range']::-ms-track {
  background: transparent;
}

input[type='range']::-ms-fill-lower {
  background: var(--ctp-accent);
  border-radius: 10px;
}
input[type='range']::-ms-fill-upper {
  background: var(--ctp-overlay0);
  border-radius: 10px;
}

input[type='range']:focus::-ms-fill-lower {
  background: var(--ctp-accent);
}
input[type='range']:focus::-ms-fill-upper {
  background: var(--ctp-overlay0);
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type='number'] {
  -moz-appearance: textfield;
}
.gr-box > div > div > input.gr-text-input {
  width: 4em;
}

.progressDiv .progress {
  background: var(--ctp-accent);
  color: var(--shadow);
}

.dark .progressDiv,
.progressDiv {
  background-color: var(--ctp-surface0);
}

input[type='range'] {
  font-size: 1.5rem;
}

input[type='range'] {
  color: var(--accent);
  --thumb-height: 0.5em;
  --track-height: 0.125em;
  --track-color: var(--ctp-surface0);
  --brightness-hover: 130%;
  --brightness-down: 80%;
  --clip-edges: 0.125em;
}

input[type='range'].win10-thumb {
  color: var(--ctp-accent);

  --thumb-height: 0.5em;
  --thumb-width: 0.5em;
  --clip-edges: 0.0125em;
}

@media (prefers-color-scheme: dark) {
  input[type='range'] {
    color: var(--ctp-accent);
    --track-color: var(--ctp-surface0);
  }

  input[type='range'].win10-thumb {
    color: var(--ctp-accent);
  }
}

/* === range commons === */
input[type='range'] {
  position: relative;
  background: #fff0;
  overflow: hidden;
}

input[type='range']:active {
  cursor: grabbing;
}

input[type='range']:disabled {
  filter: grayscale(1);
  opacity: 0.3;
  cursor: not-allowed;
}

/* === WebKit specific styles === */
input[type='range'],
input[type='range']::-webkit-slider-runnable-track,
input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
  transition: all ease 100ms;
  height: var(--thumb-height);
}

input[type='range']::-webkit-slider-runnable-track,
input[type='range']::-webkit-slider-thumb {
  position: relative;
}

input[type='range']::-webkit-slider-thumb {
  --thumb-radius: calc((var(--thumb-height) * 0.5) - 1px);
  --clip-top: calc((var(--thumb-height) - var(--track-height)) * 0.5 - 0.5px);
  --clip-bottom: calc(var(--thumb-height) - var(--clip-top));
  --clip-further: calc(100% + 1px);
  --box-fill: calc(-100vmax - var(--thumb-width, var(--thumb-height))) 0 0
    100vmax currentColor;

  width: var(--thumb-width, var(--thumb-height));
  background: linear-gradient(currentColor 0 0) scroll no-repeat left center /
    50% calc(var(--track-height) + 1px);
  background-color: currentColor;
  box-shadow: var(--box-fill);
  border-radius: var(--thumb-width, var(--thumb-height));

  filter: brightness(100%);
  clip-path: polygon(
    100% -1px,
    var(--clip-edges) -1px,
    0 var(--clip-top),
    -100vmax var(--clip-top),
    -100vmax var(--clip-bottom),
    0 var(--clip-bottom),
    var(--clip-edges) 100%,
    var(--clip-further) var(--clip-further)
  );
}

input[type='range']:hover::-webkit-slider-thumb {
  filter: brightness(var(--brightness-hover));
  cursor: grab;
}

input[type='range']:active::-webkit-slider-thumb {
  filter: brightness(var(--brightness-down));
  cursor: grabbing;
}

input[type='range']::-webkit-slider-runnable-track {
  background: linear-gradient(var(--track-color) 0 0) scroll no-repeat center /
    100% calc(var(--track-height) + 1px);
}

input[type='range']:disabled::-webkit-slider-thumb {
  cursor: not-allowed;
}

/* === Firefox specific styles === */
input[type='range'],
input[type='range']::-moz-range-track,
input[type='range']::-moz-range-thumb {
  appearance: none;
  transition: all ease 100ms;
  height: var(--thumb-height);
}

input[type='range']::-moz-range-track,
input[type='range']::-moz-range-thumb,
input[type='range']::-moz-range-progress {
  background: #fff0;
}

input[type='range']::-moz-range-thumb {
  background: currentColor;
  border: 0;
  width: var(--thumb-width, var(--thumb-height));
  border-radius: var(--thumb-width, var(--thumb-height));
  cursor: grab;
}

input[type='range']:active::-moz-range-thumb {
  cursor: grabbing;
}

input[type='range']::-moz-range-track {
  width: 100%;
  background: var(--track-color);
}

input[type='range']::-moz-range-progress {
  appearance: none;
  background: currentColor;
  transition-delay: 30ms;
}

input[type='range']::-moz-range-track,
input[type='range']::-moz-range-progress {
  height: calc(var(--track-height) + 1px);
  border-radius: var(--track-height);
}

input[type='range']::-moz-range-thumb,
input[type='range']::-moz-range-progress {
  filter: brightness(100%);
}

input[type='range']:hover::-moz-range-thumb,
input[type='range']:hover::-moz-range-progress {
  filter: brightness(var(--brightness-hover));
}

input[type='range']:active::-moz-range-thumb,
input[type='range']:active::-moz-range-progress {
  filter: brightness(var(--brightness-down));
}

input[type='range']:disabled::-moz-range-thumb {
  cursor: not-allowed;
}

/* all of the input range stuff is from this guy*/
/* Shout out to them https://codepen.io/ShadowShahriar/pen/zYPPYrQ */
