/* src/base.css */
:root,
html {
  --background-intense: black;
  --background: #181818;
  --background-lighter: #2e2e2e;
  --background-light: #707070;
  --foreground-intense: white;
  --foreground: #ededed;
  --foreground-lighter: #d8d8d8;
  --foreground-light: #b0b0b0;
  --accent: red;
  --foreground-on-accent: #fff;
  --control-background: var(--background-light);
  --control-height: 2.25rem;
  --control-focus: var(--accent);
  --control-hover: var(--foreground-intense);
  --control-disabled: #535353;
  --control-chrome: var(--foreground-lighter);
  --control: var(--control-chrome);
  --control-border-color: var(--foreground-lighter);
  --control-border-width: 1px;
  --control-padding: 0.3em;
  --font:
    "Segoe UI",
    "Open Sans",
    Verdana,
    Arial,
    Helvetica,
    sans-serif;
  --font-heading:
    "Segoe UI Light",
    "Open Sans",
    Verdana,
    Arial,
    Helvetica,
    sans-serif;
  --font-weight: 300;
  --breakpoint-smartphone: 768px;
  --border-radius-small: 0.15rem;
  --border-radius: 0.25rem;
  --border-radius-large: 0.5rem;
  --border-radius-big: 0.5rem;
  --gap-small: 0.6rem;
  --gap: 1rem;
  --gap-big: 2rem;
  --font-size-bigger: 1.1rem;
  --font-size-big: 1.4rem;
  --font-size-base: 1rem;
  --font-size-huge: 2rem;
  --font-size-smaller: 0.9rem;
  --font-size-small: 0.7rem;
  --accent-purple: #A200FF;
  --accent-purple-alt: #5859B9;
  --accent-dark-purple: #260930;
  --accent-red: #E51400;
  --accent-green: #339933;
  --accent-blue: #1BA1E2;
  --accent-marine: #034888;
  --accent-teal: #D54D34;
}
.is-light {
  --background: #F5F5F5;
  --background-light: #EDEDED;
  --foreground: #101010;
  --foreground-light: #494949;
  --accent: red;
  --foreground-on-accent: #fff;
  --control-background: #ACACAC;
  --control-foreground: var(--foreground);
  --control-height: 2.25rem;
  --control-highlight: #A6A6A6;
  --control-disabled: #535353;
  --input-border-color: var(--control-background);
  --input-border-width: 1px;
  --input-height: var(--control-height);
  --input-background: transparent;
  --input-foreground: var(--foreground);
  --font:
    "Segoe UI",
    "Open Sans",
    Verdana,
    Arial,
    Helvetica,
    sans-serif;
  --font-heading:
    "Segoe UI Light",
    "Open Sans",
    Verdana,
    Arial,
    Helvetica,
    sans-serif;
}
.has-accent-purple {
  --accent: #A200FF;
}
.has-accent-purple-alt {
  --accent: #5859B9;
}
.has-accent-dark-purple {
  --accent: #260930;
}
.has-accent-red {
  --accent: #E51400;
}
.has-accent-green {
  --accent: #339933;
}
.has-accent-blue {
  --accent: #1BA1E2;
}
.has-accent-marine {
  --accent: #034888;
}
.has-accent-teal {
  --accent: #D54D34;
}
html,
body {
  height: 100%;
  background-color: var(--background);
  color: var(--foreground);
  font-family: var(--font);
  font-weight: normal;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
p:not(.is-default) {
  margin-bottom: 1.7em;
}
h1.heading {
  margin: 0;
  padding: 0;
  position: relative;
  line-height: 1em;
  letter-spacing: 0.01em;
  font-size: 3.6em;
  margin-bottom: 1.2em;
  font-weight: 300;
  text-transform: lowercase;
}
.property {
  font-size: 1.7rem;
  font-weight: 200;
  letter-spacing: 0.01em;
}
.property.is-smaller {
  font-size: 1.4rem;
}
.property > label {
  font-size: 0.6rem;
  display: block;
  margin-top: -0.3rem;
  margin-left: 0.1rem;
  text-transform: uppercase;
  filter: opacity(60%);
  letter-spacing: 0.1em;
}
.action {
  color: var(--accent);
  cursor: pointer;
}
*::-webkit-scrollbar {
  width: 0.5rem;
}
*::-webkit-scrollbar-track {
  background: transparent;
}
*::-webkit-scrollbar-thumb {
  background-color: var(--background-light);
  border-radius: 20px;
}
.nowrap {
  white-space: nowrap;
  overflow-x: clip;
}
.svg-icon,
.svg-icon svg,
.autostyle i:not(.is-default),
.autostyle i:not(.is-default) svg {
  fill: currentColor;
  max-width: 1.2em;
  max-height: 1.2em;
  width: 1.2em;
  height: 1.2em;
}
.svg-icon {
  display: inline-flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  &.interactive {
    cursor: pointer;
    &:hover svg {
      fill: var(--control-hover);
    }
    &:focus svg {
      fill: var(--control-focus);
    }
  }
}
.svg-icon.is-big.has-border {
  border: 0.15rem solid;
  border-radius: 50%;
  display: inline-flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  padding: 0.3em;
}
.svg-icon.is-small,
.svg-icon.is-small svg {
  max-width: 0.6em;
  max-height: 0.6em;
  width: 0.6em;
  height: 0.6em;
}
.svg-icon.is-big,
.svg-icon.is-big svg {
  max-width: 2.2em;
  max-height: 2.2em;
  width: 2.2em;
  height: 2.2em;
}

/* src/reset.css */
@layer reset {
  *,
  [popover],
  dialog {
    font-family: var(--font);
    font-size: var(--font-size);
    font-weight: var(--font-weight);
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    color: var(--foreground);
  }
}

/* src/lists.css */
.list {
  font-weight: normal;
  font-style: normal;
  box-sizing: border-box;
  border-collapse: collapse;
  display: flex;
  flex-direction: column;
  gap: 0.8em;
  margin: 0;
  padding: 0;
  list-style: none;
  & > li {
    width: 100%;
    line-height: 1.0em;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 0.4em;
    align-items: center;
    text-decoration: none;
    color: var(--foreground);
    white-space: nowrap;
    &:hover {
      color: var(--control-hover);
    }
    &:active {
      color: var(--control-focus);
    }
    & a,
    a:hover {
      list-style: none;
      font-style: normal;
      box-sizing: border-box;
      border-collapse: collapse;
      text-decoration: none;
      cursor: pointer;
      color: inherit;
      display: block;
    }
    & .is-sub {
      font-size: 0.5em;
      display: block;
      color: var(--foreground-light);
      margin-top: -0.5em;
    }
  }
  &.big > li {
    font-size: var(--font-size-big, 1.4rem);
  }
  &.small > li {
    font-size: var(--font-size-smaller, 0.9rem);
  }
}

/* src/typography.css */
html,
body {
  color: var(--foreground);
  font-family: var(--font);
  line-height: 1.5;
  font-weight: 300;
  font-style: normal;
  font-size: 20px;
  margin: 0;
  padding: 0;
}
.has-normal-text {
  color: var(--foreground);
  font-family: var(--font);
  line-height: 1.5;
  font-weight: 300;
  font-style: normal;
  font-size: 1rem;
}
.has-big-text {
  font-size: 1.5rem;
}
.has-small-text {
  font-size: 0.8rem;
}
h1:not(.is-default),
.is-hstyle-1 {
  font-size: 2.2rem;
  font-weight: 300;
}
h2:not(.is-default),
.is-hstyle-2 {
  font-size: 1.8rem;
  font-weight: 300;
}
h3:not(.is-default),
.is-hstyle-3 {
  font-size: 1.4rem;
  font-weight: normal;
}
h4:not(.is-default),
.is-hstyle-4 {
  font-size: 1.2rem;
  font-weight: 300;
  text-transform: uppercase;
}
.header {
  font-family: var(--font);
  font-size: 7rem !important;
  font-weight: 100;
  letter-spacing: 0.01em;
  margin-bottom: 2rem;
  color: var(--foreground-light);
  overflow-x: clip;
  white-space: nowrap;
}
.is-capitalized,
.is-capitalized {
  text-transform: capitalize;
}
.is-lowercase,
.is-lowercase {
  text-transform: lowercase;
}
.is-uppercase,
.is-uppercase {
  text-transform: uppercase;
}
a {
  text-decoration: none;
  color: var(--accent);
}
a:hover {
}

/* src/form.css */
.input,
.textarea {
  min-width: 1rem;
  flex-grow: 1;
  width: 100%;
  background-color: transparent;
  border-width: var(--control-border-width, 1px);
  border-color: var(--control, #ccc);
  border-style: solid;
  border-radius: var(--border-radius, 4px);
  color: var(--foreground, #000);
  height: var(--control-height, 2.5rem);
  outline: 0;
  padding: 0 var(--control-padding, 0.5rem);
  margin: 0;
  box-sizing: border-box;
  font-family: inherit;
  &:hover {
    border-color: var(--control-hover, #999);
  }
  &:focus {
    border-color: var(--control-focus, #0066cc);
  }
}
.textarea {
  height: 20rem;
}
.label {
  font-size: 1em;
  display: block;
  margin-bottom: 0.18em;
}
.label.is-inline {
  display: inline-block;
}
input[type=range]:focus {
  outline: none;
}
input[type=range].input,
input[type=radio].input,
input[type=checkbox].input,
select.input {
  accent-color: var(--accent);
}
input[type=radio].input,
input[type=checkbox].input {
  width: 1.6em;
  height: 1.6em;
}
textarea.input {
  height: 8rem;
  min-height: 5rem;
}
select.input {
  & > option {
    background-color: var(--background);
    color: var(--foreground);
    line-height: 2em;
    height: 2em;
  }
}
.inset {
  padding-left: var(--gap-big);
  margin-left: var(--gap-small);
  padding-bottom: var(--gap);
  padding-top: var(--gap);
  border-left: var(--control-border-width) var(--control-border-color) solid;
}

/* src/buttons.css */
@layer base {
  .button,
  input[type=file].input::file-selector-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    border: var(--control-border-width) solid transparent;
    padding: 0 0.8em;
    height: var(--control-height);
    min-height: var(--control-height);
    background-color: var(--control-background);
    color: var(--foreground);
    outline: none;
    position: relative;
    text-decoration: none;
    cursor: pointer;
    border-radius: var(--border-radius);
    &:hover {
      border-color: var(--control-hover);
    }
    &:active {
      border-color: var(--control-focus);
    }
    &.is-disabled,
    [disabled] {
      opacity: 0.55;
    }
  }
}
@layer specific {
  .top-left-back-button {
    font-size: 2em;
    left: 0.2em;
    top: 0.2em;
  }
  .top-left-buttons {
    margin-left: 0.3rem;
    margin-top: 0.3rem;
    display: flex;
    flex-direction: column;
    row-gap: 0.6rem;
  }
  .top-left-buttons > * {
    width: 1.8rem !important;
    height: 1.8rem;
    max-width: 1.8rem;
    max-height: 1.8rem;
    cursor: pointer;
  }
  .top-left-buttons svg {
    color: white;
    stroke: var(--foreground);
    fill: var(--foreground);
  }
  .icon-button {
    background-color: transparent;
    border-color: transparent;
    border-width: 0;
    border-style: none;
    background-color: transparent;
    color: var(--foreground);
    display: inline-flex;
    margin: 0;
    align-items: center;
    cursor: pointer;
  }
  .icon-button.is-rounded {
    border-radius: 100%;
    padding-inline: 0;
  }
  .icon-button:hover {
  }
}

/* src/controls.css */
input[type=range].control,
input[type=radio].control,
.autostyle meter:not(.is-default),
.autostyle progress:not(.is-default) {
  accent-color: var(--accent);
}

/* src/table.css */
.table td,
.table th {
  padding: 0.6em;
  border-bottom: 0.05em solid var(--control-background);
  font-weight: 300;
  letter-spacing: 0.02em;
}
.table th {
  vertical-align: bottom;
  font-weight: 500;
  text-align: left;
}
.table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 0.9em;
}
.table.is-striped tbody tr:nth-child(odd) td {
  background-color: var(--background-light);
}
.table.has-hover tr:hover td {
  background-color: var(--control-background) !important;
  color: var(--control-foreground);
}
.table.is-responsive {
}

/* src/grid.css */
.grid {
  display: flex;
  flex-direction: column;
  position: relative;
}
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -6px;
  margin-right: -6px;
  flex-direction: row;
}
.cell,
.col {
  flex: 1 0 0;
  max-width: 100%;
  padding: 6px;
}

/* src/container.css */
.container,
.container-fluid {
  margin: 0 auto;
}
.container::after,
.container-fluid::after {
  display: block;
  clear: both;
  content: "";
}
.container {
  padding-right: 0.8em;
  padding-left: 0.8em;
}
.container-fluid {
  max-width: none;
  padding-right: 0.8em;
  padding-left: 0.8em;
}
.container.is-prevent-overflow-x,
.container-fluid.is-prevent-overflow-x {
  overflow-wrap: anywhere;
  overflow-x: hidden;
}
@media (max-width: 575px) {
  .container {
    width: 100%;
  }
  .container2 {
    width: 100%;
  }
}
@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
  .container2 {
    max-width: 90%;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container,
  .container2 {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container,
  .container2 {
    max-width: 1140px;
  }
}
@media (min-width: 1452px) {
  .container,
  .container2 {
    max-width: 1360px;
  }
}
.container-fs {
  max-width: 0 !important;
}
.container-sm,
.container-small,
.container.is-small {
  max-width: 576px !important;
}
.container-md,
.container-medium,
.container.is-medium {
  max-width: 768px !important;
}
.container-lg,
.container-large,
.container.is-big {
  max-width: 992px !important;
}
.container-xl {
  max-width: 1200px !important;
}
.container-xxl {
  max-width: 1452px !important;
}

/* src/hub.css */
.hub {
  max-height: 100%;
  overflow: hidden;
  height: 100%;
}
.hub-content {
  display: grid;
  grid-template-rows: auto auto 1fr;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  max-height: 100%;
  height: 100%;
  perspective: 1px;
  perspective-origin: 0 0;
}
.hub-content-item {
  display: inline-block;
  width: 400px;
  grid-row: 3;
  scroll-snap-align: start;
  height: 100%;
  overflow-y: auto;
}
.hub-content-item.has-spacing,
.hub-content-item-heading.has-spacing {
  padding: 0 1rem;
}
.hub-content-item-heading {
  grid-row: 2;
  margin-bottom: 0.7em;
  overflow-x: hidden;
  white-space: nowrap;
}
.hub-heading {
  grid-row: 1;
  grid-column: 1 / 3;
  transform-origin: 0 0;
  transform: translateZ(-20px) scale(21);
  margin: 0;
  padding: 0;
  position: relative;
  line-height: 1em;
  margin-bottom: 0.3em;
  text-transform: lowercase;
  font-family: var(--font);
  font-size: 7rem;
  font-weight: 100;
  letter-spacing: 0.01em;
  color: var(--foreground-light);
}
@media (max-width: 768px) {
  .hub-content-item {
    width: 100vw;
  }
  .hub-content-item-heading {
    transform: translateZ(-0.2px);
    margin-bottom: -0.7em;
  }
}

/* src/appbar.css */
.appbar {
  position: fixed;
  width: 100%;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
  min-height: 2.4rem;
  overflow: hidden;
  display: grid;
  justify-content: stretch;
  grid-template-columns: 1fr 1fr 1fr auto;
  background-color: var(--background);
}
.appbar .left {
  justify-self: start;
  grid-column: 1;
  display: flex;
}
.appbar > .center {
  justify-self: center;
  grid-column: 2;
  display: flex;
}
.appbar > .right {
  justify-self: end;
  grid-column: 3;
  display: flex;
  align-items: flex-start;
}
.appbar-expander {
  fill: var(--foreground);
  grid-column: 4;
  align-self: start;
}
.appbar-item,
.appbar > * > * {
  padding: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  cursor: pointer;
  color: inherit !important;
  text-decoration: none;
}
.appbar-icon,
.appbar > * > * > i {
  width: 2.4rem !important;
  height: 2.4rem !important;
  max-width: 2.4rem !important;
  max-height: 2.4rem !important;
  display: flex !important;
  justify-content: center !important;
  align-content: center !important;
  align-items: center !important;
  border-radius: 50% !important;
  fill: currentColor !important;
  padding: 0.5em !important;
}
.appbar > * > * > i > svg {
  width: 2.4rem !important;
  height: 2.4rem !important;
  max-width: 2.4rem !important;
  max-height: 2.4rem !important;
}
.appbar:not(.is-expanded) .appbar-label,
.appbar:not(.is-expanded) > * > * > label {
  display: none !important;
}
.appbar.is-expanded label,
.appbar.is-expanded > * > * > label {
  display: block;
}
.appbar-icon.has-border,
.appbar > * > * > i.has-border,
.appbar > * > * > i:not(.appbar-expander) {
  border: 0.15rem solid;
}
.appbar-icon.no-border,
.appbar > * > * > i.no-border {
  border: 0.15rem transparent;
}
.appbar-icon:hover,
.appbar > * > * > i:hover {
  background: rgba(0, 0, 0, 0.219);
}
.has-appbar {
  padding-bottom: 3.4em;
}

/* src/switch.css */
.switch input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.switch span:not(.check) {
  margin-left: 1rem;
  margin-right: 1rem;
}
.switch .check {
  position: relative;
  width: 45px;
  height: 18px;
  outline: 2px #a6a6a6 solid;
  border: 1px #fff solid;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  margin-right: 1rem;
}
.switch input:checked ~ .check {
  background: var(--accent);
}
.switch input ~ .check::after {
  content: "";
  display: block;
  top: 0px;
  position: absolute;
  width: 9px;
  height: 16px;
  outline: 2px solid var(--control-background);
  border: 1px solid var(--control-background);
  cursor: pointer;
  background: var(--control-background);
  z-index: 2;
}
.switch input:checked ~ .check::after {
  right: 0;
}

/* src/layout.css */
.flex {
  display: flex;
  align-items: flex-start;
  &.has-gap-1,
  &.has-small-gap {
    gap: 0.5em;
  }
  &.has-gap-2,
  &.has-gap {
    gap: 1em;
  }
  &.has-gap-3,
  &.has-big-gap {
    gap: 1.4em;
  }
  &.is-column {
    flex-direction: column;
  }
  &.is-center,
  &.align-center {
    align-items: center;
  }
  &.is-end,
  &.align-end {
    align-items: flex-end;
  }
  & > .is-grow {
    flex-grow: 1;
  }
  & > .self-stretch {
    align-self: stretch;
  }
}
.is-fullwidth,
.is-full-width {
  width: 100%;
}
.is-fullheight,
.is-full-height {
  height: 100%;
}
.has-space-right {
  margin-right: 0.3em;
}
.has-space-left {
  margin-left: 0.3em;
}
.has-space-top {
  margin-top: 0.3em;
}
.has-space-bottom {
  margin-bottom: 0.3em;
}
.has-big-space-right {
  margin-right: 0.5em;
}
.has-big-space-left {
  margin-left: 0.5em;
}
.has-big-space-top {
  margin-top: 0.5em;
}
.has-big-space-bottom {
  margin-bottom: 0.5em;
}
.block {
  display: block;
}

/* src/tabs.css */
.tabs,
.tabs-alt {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tabs-alt > * {
  font-size: 1.9em;
  padding: 0.2em 0.6em;
  color: var(--foreground-light);
  cursor: pointer;
}
.tabs-alt > *:first-child {
  padding-left: 0;
}
.tabs-alt > *.is-active {
  color: inherit;
  cursor: inherit;
}
.tabs:not(.is-bottom) > * {
  border-bottom: 0.1em solid var(--input-border-color);
  font-size: 1.2em;
  padding: 0.2em 0.6em;
  cursor: pointer;
}
.tabs.is-bottom > * {
  border-top: 0.1em solid var(--input-border-color);
  font-size: 1.2em;
  padding: 0.2em 0.6em;
  cursor: pointer;
}
.tabs > *:last-child {
}
.tabs:not(.is-bottom)::after {
  flex-grow: 2;
  border-bottom: 0.1em solid var(--input-border-color);
  display: block;
  content: "";
}
.tabs > *:hover:not(.is-active) {
  background-color: var(--control-highlight);
}
.tabs:not(.is-bottom) > *.is-active {
  border: 0.1em solid var(--input-border-color);
  border-bottom-width: 0;
  cursor: default;
}
.tabs.is-bottom > *.is-active {
  border: 0.1em solid var(--input-border-color);
  border-top-width: 0;
  cursor: default;
}
.tabs.is-bottom::after {
  flex-grow: 2;
  border-top: 0.1em solid var(--input-border-color);
  display: block;
  content: "";
}

/* src/notification.css */
.notification {
  text-align: left;
  padding: 0.4rem 1rem;
  background-color: var(--background-light);
  border-radius: 4px;
  max-width: 500px;
  top: 0px;
  position: relative;
  box-shadow: 1px 7px 14px -5px rgba(0, 0, 0, 0.2);
  margin-bottom: 1rem;
  animation-name: fadeIn;
  animation-duration: 1s;
  animation-iteration-count: 1;
}
.notification.is-closing {
  animation-name: fadeOut;
  animation-duration: 1s;
  animation-iteration-count: 1;
}
.notification:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.notification.is-info:before {
  background-color: #A200FF;
}
.notification.is-success:before {
  background-color: #339933;
}
.notification.is-warning:before {
  background-color: #f3c81d;
}
.notification.is-error:before {
  background-color: #E51400;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/* src/popover.css */
[popover].popover {
  margin: auto;
  padding: var(--gap);
  background-color: var(--background);
  color: var(--foreground);
  border-radius: var(--border-radius);
  border-color: var(--background-lighter);
  &::backdrop {
    background-color: var(--background);
    opacity: 0.8;
  }
  &.full::backdrop {
    opacity: 1;
  }
}
.popover:popover-open {
  border-radius: var(--border-radius);
  border-color: var(--background-lighter);
}
body.clean-overlay:has(.popover:popover-open) {
  overflow: hidden;
}

/* src/dialog.css */
dialog.dialog {
  background: var(--background);
  border: none !important;
  border-radius: var(--border-radius);
  margin: auto;
  max-width: 100%;
  max-height: 100%;
  &.fullsize,
  .full {
    position: fixed;
    width: 100%;
    height: 100%;
  }
  &[open] {
    overscroll-behavior: contain;
  }
  &::backdrop {
    background-color: var(--background);
    opacity: 0.8;
  }
  &.full::backdrop,
  .fullsized::backdrop {
    opacity: 1;
  }
}
body.clean-overlay:has(.dialog[open]),
body.clean-overlay:has(.dialog:popover-open) {
  overflow: hidden;
}

/* src/helpers.css */
.hidden {
  display: none !important;
}

/* src/index.css */
@layer reset, base, specific;
