/* ====================================================================== */
/* =============================== ICONS ================================ */
/* ====================================================================== */
.icon {
  font-weight: bold;
  font-family: 'FA5';
  background: none;
  border: none;
  user-select: none;
}

.icon-pad {
  padding-right: 0.3em;
}

.icon-min {
  font-size: 23px;
}

.icon-btn {
  font-size: 20px;
  cursor: pointer;
  color: var(--font2);
}

.icon-btn:hover {
  color: var(--font);
}

.icon-btn-big {
  font-size: 28px;
  cursor: pointer;
  color: var(--prim);
  padding: 0px 6px;
}

.icon-btn-big:hover {
  filter: brightness(1.15);
}

.icon-btn-big:active {
  filter: brightness(0.8);
}

.icon-ui {
  font-size: 18px;
  width: 25px;
  display: inline-block;
  text-align: center;
  margin-right: 5px;
}

.spinning {
  -webkit-animation: spin 0.8s linear infinite;
  -moz-animation: spin 0.8s linear infinite;
  animation: spin 0.8s linear infinite;
}

@-moz-keyframes spin {
  100% {
    -moz-transform: rotate(360deg);
  }
}

@-webkit-keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.i-inline {
  user-select: none !important;
  font-size: 18px;
  padding-right: 5px;
}

/* ====================================================================== */
/* =============================== NOTICE =============================== */
/* ====================================================================== */

.notice {
  color: var(--font_inv);
  /* box-shadow: 0px 0px 7px #0007; */
  border-radius: 8px;
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 10px;
  font-size: 20px;
  z-index: 5;
  opacity: 0;
  animation: notif-anim 3.5s forwards;
}

@keyframes notif-anim {
  from {
    opacity: 0%;
  }

  14.28571428571429% {
    opacity: 100%;
  }

  85.71428571428571% {
    opacity: 100%;
  }

  to {
    opacity: 0%;
  }
}


.notice-block {
  display: block;
  background: var(--back);
  padding: 5px;
  color: var(--font);
  border-radius: 5px;
  margin: 5px 10px;
  font-size: 15px;
  user-select: text;
}

/* ====================================================================== */
/* ============================== BUTTONS =============================== */
/* ====================================================================== */

.span-btn {
  cursor: pointer;
  color: #c60000;
  text-decoration: underline;
}

.ui-btn {
  background: var(--prim);
  border: none;
  border-radius: 5px;
  cursor: pointer;
  /*color: rgb(19, 19, 19);*/
  color: var(--font_inv);
  font-size: 22px;
  padding: 10px 15px;
  margin: 3px 7px;
  white-space: nowrap;
  text-decoration: none;
  user-select: none;
}

.ui-btn:hover {
  filter: brightness(1.15);
}

.ui-btn:active {
  filter: brightness(0.8);
}

.ui-btn-mini {
  font-size: 19px !important;
  padding: 7px;
  margin: 3px;
  padding: 4px 8px;
}

.ui-btn-dis {
  background: var(--font3);
}

.btn-inp-block {
  display: flex;
  margin-left: -32px;
  width: 32px;
  z-index: 1;
}

.ui-row-btn {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 3px 0;
}

/* ====================================================================== */
/* ============================== PASSWORD ============================== */
/* ====================================================================== */
.pin-inner {
  padding: 0;
  margin: 0;
  height: 70px;
  margin: 10px 5px;
}

.pin-btn {
  width: 100%;
  height: 100%;
  font-size: 40px;
  margin: 0px 5px;
  cursor: pointer;
}

.pin-input {
  background: var(--thumb);
  width: 100%;
  margin: 10px 5px;
  caret-color: transparent;
  height: 50px;
  font-size: 50px !important;
  text-align: center;
}

.pin-input-inner {
  display: flex;
  justify-content: center;
  padding: 0px 5px;
}

.pin-no-btn {
  background: none;
  cursor: unset;
}

.pin-red-btn {
  background: #ce1d1d;
}

.pin-cancel {
  font-size: 20px;
  background: #cbce1d;
}

/* ====================================================================== */
/* ================================= CLI ================================ */
/* ====================================================================== */

.cli {
  display: none;
  width: 100%;
  background: var(--dark);
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 2;
}

.cli-area {
  width: 100%;
  color: var(--font2);
  height: 100px;
  white-space: pre-wrap;
  overflow-y: scroll;
  font-size: 16px;
}

.cli-area::-webkit-scrollbar {
  display: none;
}

.cli-icon {
  color: var(--prim);
  font-size: 22px;
}

.cli-enter {
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
}

.cli-enter:hover {
  color: var(--prim);
  filter: brightness(1.15);
}

.cli-row {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.cli-input {
  background: var(--dark) !important;
  font-size: 17px !important;
}

.cli-block {
  margin: auto;
  max-width: var(--ui_width);
  padding: 5px 10px 5px 10px;
}

/* ====================================================================== */
/* ================================ MENU ================================ */
/* ====================================================================== */
@keyframes opac {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

/* ====================================================================== */
/* ================================= FS ================================= */
/* ====================================================================== */

.waiter {
  display: flex;
  align-items: center;
  justify-content: center;
}

.waiter-block {
  width: 100%;
  height: 50px;
  padding: 5px 0;
}

#fsbr_inner {
  margin: 10px 0px;
}

.fs-error {
  text-align: center;
  font-weight: 600;
  font-size: 22px;
  color: var(--prim);
}

.fs-file {
  cursor: pointer;
  padding: 6px 10px;
  font-size: 15px;
  color: var(--font);
  user-select: text;
  background: var(--tab);
}

.fs-file:hover {
  filter: brightness(0.9);
}

.fs-folder {
  background: var(--prim);
  font-weight: 600;
  color: var(--tab);
  margin-top: 5px;
  padding: 4px 8px;
}

.fs-weight {
  display: inline-block;
  float: right;
}

.fs-controls {
  display: none;
  align-items: center;
  /*padding: 2px 10px 10px 10px;*/
  padding: 10px;
  background: var(--back);
}

.fs-info {
  padding: 5px;
  margin-top: 15px;
  background: var(--back);
  text-align: center;
  font-size: 16px;
  /* box-shadow: 0px 0px 0px 2px var(--back);*/
}

.ui-inpbtn-row {
  display: flex;
  margin: 5px 0px;
  padding: 0px 10px;
}

.upl-btn {
  font-size: 18px;
  padding: 5px;
  margin: 0;
  width: 90px;
  border-radius: 0px 5px 5px 0px;
}

.drop-area {}

.drop-area.active {
  border: 2px dashed var(--prim);
  background: var(--back);
  color: var(--prim);
  padding: 2px 6px;
}

/* ====================================================================== */
/* ================================ INFO ================================ */
/* ====================================================================== */
body[data-screen=info] .screen-info {
  display: block;
}

.info-label {
  user-select: text;
  cursor: text;
  overflow-wrap: break-word;
  font-size: 16px;
  max-width: 60%;
  text-align: right;
}

.info-label-small {
  font-size: 13px;
  user-select: all;
  cursor: pointer;
}

.info {
  min-height: 20px !important;
  padding: 3px 10px !important;
}

/* ====================================================================== */
/* =============================== DEVICE =============================== */
/* ====================================================================== */
#devices {
  grid-gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  /*grid-template-columns: repeat(auto-fit, 200px);*/
}

.device {
  cursor: pointer;
  box-sizing: border-box;
  padding: 4px;
  width: 100%;
  height: 57px;

  background: var(--tab);
  border-radius: 10px;
  box-shadow: 0 0 10px 0px #00000020;
  display: flex;
  align-items: center;
}

.device:hover {
  box-shadow: 0 0 10px 0px #00000030;
}

.offline {
  cursor: unset;
  filter: opacity(0.4);
  user-select: none;
}

.device>div {
  width: 100%;
}

.dev-title {
  align-self: center;
  overflow: hidden;
}

.dev-name {
  font-size: 16px;
  font-weight: 600;
  line-height: 25px;
}

.dev-icon {
  width: 43px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
}

.dev-conn {
  font-size: 10px;
  margin-left: 1px;
  display: none;
}

.dev-btn-cont {
  display: none;
  justify-content: space-evenly;
}

.dev-btn-red {
  color: rgba(255, 0, 0, 0.6);
}

.dev-btn-red:hover {
  color: rgba(255, 0, 0, 1);
}

.dev-btn-green {
  color: rgba(0, 255, 0, 0.6);
}

.dev-btn-green:hover {
  color: rgba(0, 255, 0, 1);
}

.dev-btn-cfg {
  align-self: flex-start;
  color: var(--back);
  font-size: 17px;
}

.dev-btn-cfg:hover {
  color: var(--dark);
}


/* ====================================================================== */
/* ================================ CONFIG ============================== */
/* ====================================================================== */

body[data-screen=config] .screen-config {
  display: block;
}

.screen-config {
  font-size: 17px;
  font-weight: 500;
  color: var(--font2);
}

.cfg-info {
  margin: 10px 15px;
}

.cfg-info a {
  color: var(--prim);
}

/* ====================================================================== */
/* ================================== UI ================================ */
/* ====================================================================== */
.ui-label {
  white-space: nowrap;
}

.ui-col {
  margin-bottom: 12px;
  padding: 5px 0px 5px 0px;
  border-radius: 10px;
  background: var(--tab);
  box-shadow: 0 0 10px 0px #00000030;
}

.ui-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 10px;
  min-height: 30px;
}

.ui-inp-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-left: 20px;
  max-width: 190px;
  width: 100%;
}

.ui-select {
  cursor: pointer;
  padding-left: 5px !important;
}

.ui-head {
  font-size: 20px;
  font-weight: 600;
  color: var(--font);
  padding: 0 10px;
}

.ui-tab {
  cursor: pointer;
}

.ui-inp {
  font-size: 17px;
  border: none;
  outline: none;
  font-family: var(--font_f);
  width: 100%;
  border-radius: 4px;
  background: var(--back);
  color: var(--font);
  /*padding: 3px 0px 3px 6px;*/
  padding-left: 7px;
  min-height: 30px;
}

.ui-inp:focus {
  outline: none;
}

.ui-inp-w-btn {
  border-radius: 4px 0 0 4px;
}

/* SWITCH */
.switch {
  margin: 0px 2px -12px 2px;
  position: relative;
  display: inline-block;
  width: 52px;
  height: 30px
}

.switch-cont {
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0
}

.slider {
  border-radius: 30px;
  position: absolute;
  cursor: pointer;
  top: -5px;
  left: 0;
  right: 0;
  bottom: 5px;
  background: var(--dark);
  -webkit-transition: .1s;
  transition: .1s
}

.slider:before {
  border-radius: 50%;
  position: absolute;
  content: '';
  height: 22px;
  width: 22px;
  left: 4px;
  bottom: 4px;
  background: white;
  -webkit-transition: .1s;
  transition: .1s
}

input:checked+.slider {
  background: var(--prim);
}

input:checked+.slider:before {
  -webkit-transform: translateX(22px);
  -ms-transform: translateX(22px);
  transform: translateX(22px);
  background: #fff;
}

/* ====================================================================== */
/* ================================= AREA =============================== */
/* ====================================================================== */
.ui-area {
  border: none;
  outline: none;
  font-family: var(--font_f);
  border-radius: 5px;
  width: 100% !important;
  font-size: 15px;
  color: var(--font2);
  background: var(--back);
  /* padding: 3px 7px; */
  /* margin-bottom: 3px; */
}

.ui-area-passive {
  cursor: default;
}

.ui-area-wrap {
  white-space: pre;
}

.ui-area::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.ui-area::-webkit-scrollbar-track {
  background: #0000;
}

.ui-area::-webkit-scrollbar-thumb {
  background: var(--thumb);
  border-radius: 3px;
}

/* ====================================================================== */
/* ================================= POPUP ============================== */
/* ====================================================================== */
.dialog-box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 10;
  background-color: #0008;
  backdrop-filter: blur(4px);
  color: var(--font);
}

.ui-dialog {
  max-width: 400px;
  width: 100%;
  margin: 10px;
  padding: 0;
}

.dialog-row {
  white-space: pre-wrap;
}

.screen-ui {
  --device-width: var(--ui_width);
  max-width: var(--device-width);
}

.screen-ui.wide-mode {
  justify-content: center;
  max-width: unset;
  grid-template-columns: repeat(auto-fit, var(--device-width));
}

body[data-screen=ui] .screen-ui {
  display: block;
}

body[data-screen=ui] .screen-ui.wide-mode {
  display: grid;
}


body[data-screen=ota] .screen-ota,
body[data-screen=dev_config] .screen-dev_config,
body[data-screen=files] .screen-files,
body[data-screen=fsbr_edit] .screen-fsbr_edit {
  display: block;
}
body[data-screen=fsbr_edit] .screen-fsbr_edit {
  max-width: 900px !important;
}

body[data-screen=main] .screen-main {
  display: grid;
}

.blocked {
  font-size: 20px;
  color: #a93737;
}

.blocked-cont {
  height: 40px;
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
}