
.tal {
  text-align: left;
}
.tac {
  text-align: center;
}
.tar {
  text-align: right;
}

.di {
  display: inline;
}
.dib {
  display: inline-block;
}
.db {
  display: block;
}

.fl {
  float: left;
}
.fr {
  float: right;
}
.cb {
  clear: both;
}

.fwb {
  font-weight: bold;
}

.nw {
  white-space: nowrap;
}

.mt-25 {
  margin-top: 25px;
}

.mb-10 {
  margin-bottom: 10px;
}

html {
  background-color: #0f1417;
  background-image:
    repeating-linear-gradient(135deg, #0f1417, #ffffff10 2px, #0f1417 4px),
    linear-gradient(0deg, #00000010, #ffffff10);
}

body {
  --border-color: #40474D;
  --border-radius: 5px;
  --color: #808e9b;
  margin: 0;
  padding: 0;
  min-height: 100dvh;
  background: transparent;
  font: 20px Tahoma, Verdana;
  line-height: 140%;
  color: var(--color);
}

:fullscreen::backdrop {
  background-color: #0f1417;
  background-image:
    repeating-linear-gradient(135deg, #0f1417, #ffffff10 2px, #0f1417 4px),
    linear-gradient(0deg, #00000010, #ffffff10);
}

:fullscreen {
  overflow-y: auto;
  height: 100%;
}

div {
  line-height: 140%;
}

button {
  background: none;
  padding: 15px;
  width: 100%;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  color: inherit;
  font: inherit;
  box-sizing: border-box;
  transition: transform .1s ease;

  &:active {
    transform: scale(0.85);
  }
}

.container {
  padding: 12px 10px 10px 10px;
}

.bordered {
  background: #0f141760;
  padding: 5px 10px 7px 10px;
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius);
}

.page_title {
  border-bottom: 1px solid var(--border-color);
  padding: 14px 0 26px 0;
  margin-bottom: 20px;
  text-align: center;
}

.btn_settings {
  position: fixed;
  right: -4px;
  bottom: -3px;
  font-size: 40px;
  padding: 5px 10px 10px 10px;
  opacity: 0.35;
}

/* ajax marker */

.ajax_marker {
  --size: 0.4px;
  position: absolute;
  top: 7px;
  right: 5px;
  width: calc(48 * var(--size));
  height: calc(48 * var(--size));
  border: calc(5 * var(--size)) solid var(--color);
  border-bottom-color: transparent;
  border-radius: 50%;
  animation: ajax_marker 1s linear infinite;
  display: none;

  &[status] {
    z-index: 1;
  }
  &[status="success"] {
    border-color: #008000;
  }
  &[status="error"] {
    border-color: #ff0000;
  }
}

@keyframes ajax_marker {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* progress bar */
.ProgressBar div {
  height: 40px;
  box-shadow: inset 0 2px 9px rgba(255, 255, 255, 0.3), inset 0 -2px 6px rgba(0, 0, 0, 0.4);
  transition: width 0.25s linear;

  &[size="2"] {
    height: 100px;
  }
  &[size="3"] {
    height: 200px;
  }

  &[color="blue"] {
    background-image: linear-gradient(to bottom, #65a1f1, #0a6df3);
  }
  &[color="green"] {
    background-image: linear-gradient(to bottom, #6ee77a, #0a9e3f);
  }
  &[color="yellow"] {
    background-image: linear-gradient(to bottom, #f1a165, #f36d0a);
  }
  &[color="red"] {
    background-image: linear-gradient(to bottom, #f0a3a3, #f42323);
  }

  &::after {
    height: 100%;
    display: block;
    content: "";
    background-size: 50px 50px;
    animation: progress_bar 2s linear infinite;
    background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent);
  }
}

@keyframes progress_bar {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: -50px -50px;
  }
}
