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