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

.icon_min {
  font-size: 23px;
}

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

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

.icon_btn_big {
  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);
  }
}

.icon_inline {
  user-select: none !important;
  font-size: 18px !important;
  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;
}

.btn_no_pad {
  padding: 0;
}

.ui_btn_row {
  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;
}

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

.pass_inp_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_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_inp {
  background: var(--dark);
  font-size: 17px;
}

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

.cli_area::-webkit-scrollbar {
  display: none;
}

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

  to {
    opacity: 1
  }
}

#menu_overlay {
  cursor: pointer;
  position: fixed;
  left: 0;
  top: 0;
  display: none;
  width: 100%;
  height: 100%;
  background-color: #0008;
  z-index: 2;
  animation: opac .1s;
  backdrop-filter: blur(4px);
}

.menu {
  display: block;
  max-height: 0;
  transition: max-height .1s ease-out;
  overflow: hidden;
  position: fixed;
  top: 50px;
  background: var(--tab);
  z-index: 3;
  border-radius: 0px 0px 4px 4px;
  max-width: var(--ui_width);
  left: 50%;
  transform: translateX(-50%);
}

.menu_show {
  max-height: 100%;
  transition: max-height .1s ease-in;
}

.menu_item {
  cursor: pointer;
  height: 35px;
  line-height: 35px;
  font-size: 20px;
  padding-left: 10px;
  border: 5px solid transparent;
  border-width: 0 0 0 5px;
}
.menu_item:first-child {
  margin-top: 8px;
}
.menu_item:last-child {
  margin-bottom: 8px;
}

.menu_item:hover {
  background: var(--back);
}

.menu_act {
  border-color: var(--prim);
}

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

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

.waiter_b {
  width: 100%;
  height: 65px;
}

#fsbr_inner {
  margin: 10px 0px;
}

.fs_err {
  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);*/
}

.upl_row {
  display: flex;
  margin: 5px 0px;
  padding: 0px 10px;
}

.upl_btn {
  color: var(--back);
  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%;
}

.d_title {
  align-self: center;
  overflow: hidden;
}

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

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

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

.d_btn_cont {
  display: none;
  justify-content: space-evenly;
}

.d_btn_red {
  color: rgba(255, 0, 0, 0.6);
}

.d_btn_red:hover {
  color: rgba(255, 0, 0, 1);
}

.d_btn_green {
  color: rgba(0, 255, 0, 0.6);
}

.d_btn_green:hover {
  color: rgba(0, 255, 0, 1);
}

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

.d_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_sel {
  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_wbtn {
  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;
}

/* ====================================================================== */
/* ================================= 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;
}

.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=main] .screen-main {
  display: grid;
}
