:root {
  --font-sans: 'Fira Sans', sans-serif;
	--font-mono: 'Fira Mono', monospace;
	--pure-white: #ffffff;
	--red-dark: #8a1000;
	--red-light: #ff6450;
	--blue-dark: #00548a;
	--blue-light: #50bbff;
	--gray-dark: #444;
	--gray-light: #aaa;
	--yellow-dark: #d8cfad;
	--yellow-darker: #c5bd9a;
	--yellow-light: #fcf8e3;
	--pure-black: #01161E;
	--primary-color: #3AB795;
	--primary-rgb: 58, 183, 149;
	--primary-color-dark: #105a46;
	--secondary-color: #0F4C5C;
	--secondary-rgb: 15, 76, 92;
	--tertiary-color: #094074;
	--tertiary-rgb: 9, 64, 116;
	--accent-color: #00548a;
	--heading-color: rgba(0, 0, 0, 0.7);
	--text-color: #444;
}

:root {
  --color-background: var(--pure-white);
  --color-heading: var(--heading-color);
  --color-text: var(--text-color);
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--pure-black);
    --color-heading: var(--pure-white);
    --color-text: var(--gray-light);
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  position: relative;
}

body {
  height: 100vh;
  color: var(--color-text);
  background: var(--color-background);
  transition: color 0.3s, background-color 0.3s;
  line-height: 1.6;
  font-family: var(--font-sans);
  font-size: 15px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Some components */

.a-button {
  color: var(--heading-color);
  --background-color: var(--yellow-light);
  box-shadow: 0px 0px 1px rgb(0 0 0 / 12%) inset,1px 1px 0px 0px rgb(255 255 255 / 64%) inset, 0px 2px 2px rgb(0 0 0 / 5%), 0px 1px 1px rgb(0 0 0 / 6%);
}
.a-button[disabled], .a-button.is-disabled {
  --background-color: rgb(15 76 92 / 12%);
  box-shadow: 0px 0px 1px rgb(0 0 0 / 8%) inset, 1px 1px 0px 0px rgb(255 255 255 / 33%) inset, 0px 1px 1px rgb(0 0 0 / 3%), 0px 1px 1px rgb(0 0 0 / 3%);
  border-bottom-width: 1px;
  color: rgba(0, 0, 0, 0.45);
  cursor: default;
}
.a-button.is-primary, .a-button.is-active {
  color: var(--primary-color-dark);
  --background-color: var(--primary-color);
}
.a-button.is-secondary {
  color: var(--pure-white);
  --background-color: var(--secondary-color);
}
.a-button.is-tertiary {
  color: var(--pure-white);
  --background-color: var(--tertiary-color);
}
.a-button.is-blue {
  color: var(--blue-dark);
  --background-color: var(--blue-light);
}
.a-button.is-red {
  color: var(--red-dark);
  --background-color: var(--red-light);
}
.a-button.is-primary, .a-button.is-secondary, .a-button.is-tertiary, .a-button.is-blue, .a-button.is-red, .a-button.is-flat {
  box-shadow: 0px 0px 1px rgb(0 0 0 / 16%) inset,1px 1px 0px 0px rgb(255 255 255 / 24%) inset, 0px 2px 2px rgb(0 0 0 / 12%), 0px 1px 1px rgb(0 0 0 / 16%);
}
.a-button {
  display: inline-flex;
  align-items: center;
  position: relative;
  outline: 0;
  border: 0;
  padding: 0;
  transform: translateY(1px);
  vertical-align: middle;
  cursor: pointer;
  text-decoration: none;
  background: transparent;
  min-height: 38px; /* 2.4em */
  /*-webkit-appearance: button;*/
  font-family: var(--font-sans);


  border-radius: 5px;
  border-bottom: 2px solid rgba(0,0,0,0.15);

  background-color: var(--background-color);

  transition: 0.2s ease-out;

  -moz-user-select: none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.a-button__body {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  line-height: 1em;
  padding: 2px 16px;
  font-weight: 500;
  font-size: 16px;
  transition: 0.2s ease-out;
}

.a-button.is-small.is-icon {
  min-height: 26px;
}
.a-button.is-small {
  min-height: 30px;
}
.a-button.is-small .a-button__body {
  padding: 2px 12px;
  font-size: 15px;
}
.a-button.is-small.is-icon .a-button__body {
  padding: 2px;
  font-size: 21px;
}
.a-button.is-flat {
  background: transparent;
  color: #fff;
  border: 1px solid #fff;
  border-bottom-width: 2px;
  
  /*box-shadow: 0px 0px 0px 1px rgb(255 255 255);*/
}
.a-button.is-icon {
  width: 33px;
  min-height: 33px;
  height: 33px;
}
.a-button.is-icon .a-button__body {
  font-size: 22px;
  padding: 2px;
}
.a-button.is-dropdown {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.a-button:focus-visible {
  outline: 1px dotted var(--secondary-color);
  outline-offset: -3px;

  /* 
  box-shadow: 0px 2px 2px rgb(0 0 0 / 8%), 0px 1px 1px rgb(0 0 0 / 12%), 0px 3px 2px -2px rgb(0 0 0 / 4%), 0px 0px 1px 1px #ffffff99 inset;
  */
}
.a-button.is-primary:focus-visible, .a-button.is-secondary:focus-visible, .a-button.is-tertiary:focus-visible, .a-button.is-blue:focus-visible, .a-button.is-red:focus-visible, .a-button.is-flat:focus-visible, .a-button.is-active:focus-visible {
  outline: 1px dotted #fff;
}
.a-button:active:not([disabled]),
.a-button.is-active {
  transform: translateY(2px);
  border-bottom-width: 0;
  box-shadow: 0px 1px 0px 1px rgb(0 0 0 / 10%) inset;
}
.a-button.is-flat:active:not([disabled]),
.a-button.is-flat.is-active {
  transform: translateY(1px);
  border-bottom-width: 1px;
  box-shadow: 0px 1px 0px 1px rgb(0 0 0 / 30%) inset;
}

.a-button.is-flat:active:not([disabled]) .a-button__body,
.a-button.is-flat.is-active .a-button__body {
  transform: translateY(2px);
}

* + .a-button {
  margin-left: 8px;
}

.a-button.is-grouped, .a-button.is-fill {
  display: flex;
  margin-left: 0;
  margin-right: 0;
  flex: 1;
}
.a-button.is-grouped:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  /*border-left: 1px solid rgba(255 255 255 / 5%);*/
}
.a-button.is-grouped:not(:first-child):active:not([disabled]),
.a-button.is-grouped.is-active:not(:first-child) {
  border-left-color: var(--background-color);
}
.a-button.is-grouped:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  /*border-right: 1px solid rgba(0 0 0 / 10%);*/
}
.a-button.is-grouped:not(:last-child):active:not([disabled]),
.a-button.is-grouped.is-active:not(:last-child) {
  border-right-color: var(--background-color);
}
.a-button.is-grouped:active:not([disabled]), .a-button.is-grouped.is-active {
  box-shadow: 0px 2px 0px 0px rgb(0 0 0 / 10%) inset;
}
.a-button.is-grouped:first-child:active:not([disabled]), .a-button.is-grouped.is-active:first-child {
  box-shadow: 1px 1px 0px 1px rgb(0 0 0 / 10%) inset;
}
.a-button.is-grouped:last-child:active:not([disabled]), .a-button.is-grouped.is-active:last-child {
  box-shadow: -1px 1px 0px 1px rgb(0 0 0 / 10%) inset;
}

.a-button-group {
  display: flex;
}

.a-text-input {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: var(--secondary-color);
  border-radius: 4px;
}
.a-text-input__input {
  font-family: var(--font-sans);
  font-size: 18px;
  background: var(--yellow-light);
  color: var(--secondary-color);
  border: 1px solid var(--secondary-color);
  border-radius: 4px;
  padding: 5px 12px;
  font-weight: 700;
  text-align: center;
  box-shadow: 0px 1px 1px 0px rgba(var(--secondary-rgb), 0.25) inset;
  width: 100%;
  height: 100%;
}
.a-text-input.is-disabled .a-text-input__input {
  color: var(--gray-light);
  box-shadow: none;
  border-color: rgba(var(--secondary-rgb), 0.2);
}
.a-text-input__input::placeholder {
  font-weight: normal;
}
.a-text-input.is-large .a-text-input__input {
  font-size: 24px;
}
.a-text-input__input:focus {
  outline: none;
}
.a-text-input__label {
  font-size: 11px;
  color: var(--yellow-light);
}
.a-text-input.is-fill {
  flex: 1;
}

* + .a-text-input {
  margin-left: 8px;
}