/**
 * Copyright (C) 2024-present Puter Technologies Inc.
 *
 * This file is part of Puter.
 *
 * Puter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-Thin.ttf') format('truetype');
    font-weight: 100;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-ExtraLight.ttf') format('truetype');
    font-weight: 200;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-Light.ttf') format('truetype');
    font-weight: 300;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-Regular.ttf') format('truetype');
    font-weight: 400;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-Medium.ttf') format('truetype');
    font-weight: 500;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-SemiBold.ttf') format('truetype');
    font-weight: 600;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-Bold.ttf') format('truetype');
    font-weight: 700;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-ExtraBold.ttf') format('truetype');
    font-weight: 800;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/Inter-Black.ttf') format('truetype');
    font-weight: 900;
}

* {
    font-family: "Inter", "Helvetica Neue", HelveticaNeue, Helvetica, Arial, sans-serif;
    user-select: none;
    font-optical-sizing: auto;
    font-style: normal;
    font-variation-settings: "slnt"0;
}

pre {
    font-family: "Inter", "Helvetica Neue", HelveticaNeue, Helvetica, Arial, sans-serif;
}

:root {
    --primary-hue: 210;
    --primary-saturation: 41.18%;
    --primary-lightness: 93.33%;
    --primary-alpha: 0.8;
    --primary-color: #373e44;

    --window-head-hue: var(--primary-hue);
    --window-head-saturation: var(--primary-saturation);
    --window-head-lightness: var(--primary-lightness);
    --window-head-alpha: var(--primary-alpha);
    --window-head-color: var(--primary-color);

    --window-sidebar-hue: var(--primary-hue);
    --window-sidebar-saturation: var(--primary-saturation);
    --window-sidebar-lightness: var(--primary-lightness);
    --window-sidebar-alpha: calc(min(1, 0.11 + var(--primary-alpha)));
    --window-sidebar-color: var(--primary-color);

    --taskbar-hue: var(--primary-hue);
    --taskbar-saturation: var(--primary-saturation);
    --taskbar-lightness: var(--primary-lightness);
    --taskbar-alpha: calc(0.73 * var(--primary-alpha));
    --taskbar-color: var(--primary-color);

    --select-hue: 213.05;
    --select-saturation: 74.22%;
    --select-lightness: 55.88%;
    --select-color: hsl(var(--select-hue), var(--select-saturation), var(--select-lightness));
}

html, body {
    /* disables two fingers back/forward swipe */
    overscroll-behavior-x: none;
}

body {
    background: no-repeat center center fixed;
    background-position: center;
    background-size: cover;
    background-color: #3d4c74;
    overflow: hidden;
}

.embedded-in-3rd-party-website, .embedded-in-popup {
    background: none !important;
    background-color: #ccccccbe !important;
}

.disable-user-select {
    cursor: default;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    -khtml-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

.enable-user-select, .enable-user-select * {
    cursor: initial;
    -webkit-touch-callout: text !important;
    -webkit-user-select: text !important;
    -khtml-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}

.window-container {
    position: fixed;
    top: 0;
    left: -100000px;
    width: 200000px;
    height: 200000px;
    z-index: -9999;
}

input[type=text], input[type=password], input[type=email], select {
    width: 100%;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    outline: none;
    -webkit-font-smoothing: antialiased;
    color: #393f46;
    font-size: 14px;
}

/* to prevent auto-zoom on input focus in mobile */
.device-phone input[type=text], .device-phone input[type=password], .device-phone input[type=email], .device-phone select {
    font-size: 17px;
}

input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, select:focus {
    border: 2px solid #01a0fd;
    padding: 7px;
}

/**
 * Button
 */

.button {
    color: #666666;
    background-color: #eeeeee;
    border-color: #eeeeee;
    font-size: 14px;
    text-decoration: none;
    text-align: center;
    line-height: 40px;
    height: 35px;
    padding: 0 30px;
    margin: 0;
    display: inline-block;
    appearance: none;
    cursor: pointer;
    border: none;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    border-color: #b9b9b9;
    border-style: solid;
    border-width: 1px;
    line-height: 35px;
    background: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e1e1e1));
    background: linear-gradient(#f6f6f6, #e1e1e1);
    -webkit-box-shadow: inset 0px 1px 0px rgb(255 255 255 / 30%), 0 1px 2px rgb(0 0 0 / 15%);
    box-shadow: inset 0px 1px 0px rgb(255 255 255 / 30%), 0 1px 2px rgb(0 0 0 / 15%);
    border-radius: 4px;
    outline: none;
}

.button:focus-visible {
    border-color: rgb(118 118 118);
}

.button:active, .button.active, .button.is-active, .button.has-open-contextmenu {
    text-decoration: none;
    background-color: #eeeeee;
    border-color: #cfcfcf;
    color: #a9a9a9;
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
    -webkit-box-shadow: inset 0 1px 3px rgb(0 0 0 / 20%);
    box-shadow: inset 0px 2px 3px rgb(0 0 0 / 36%), 0px 1px 0px white;
}

.button.disabled, .button.is-disabled, .button:disabled {
    top: 0 !important;
    background: #EEE !important;
    border: 1px solid #DDD !important;
    text-shadow: 0 1px 1px white !important;
    color: #CCC !important;
    cursor: default !important;
    appearance: none !important;
    pointer-events: none;
}

.button-action.disabled, .button-action.is-disabled, .button-action:disabled {
    background: #55a975 !important;
    border: 1px solid #60ab7d !important;
    text-shadow: none !important;
    color: #CCC !important;
}

.button-primary.disabled, .button-primary.is-disabled, .button-primary:disabled {
    background: #8fc2e7 !important;
    border: 1px solid #98adbd !important;
    text-shadow: none !important;
    color: #f5f5f5 !important;
}

.button-block {
    width: 100%;
}

.button-primary {
    border-color: #088ef0;
    background: -webkit-gradient(linear, left top, left bottom, from(#34a5f8), to(#088ef0));
    background: linear-gradient(#34a5f8, #088ef0);
    color: white;
}

.button-danger {
    border-color: #f00808;
    background: -webkit-gradient(linear, left top, left bottom, from(#f83434), to(#f00808));
    background: linear-gradient(#ff4e4e, #ff4c4c);
    color: white;
}

.button-primary:active, .button-primary.active, .button-primary.is-active, .button-primary-flat:active, .button-primary-flat.active, .button-primary-flat.is-active {
    background-color: #2798eb;
    border-color: #2798eb;
    color: #bedef5;
}

.button-action {
    border-color: #08bf4e;
    background: -webkit-gradient(linear, left top, left bottom, from(#29d55d), to(#1ccd60));
    background: linear-gradient(#29d55d, #1ccd60);
    color: white;
}

.button-action:active, .button-action.active, .button-action.is-active, .button-action-flat:active, .button-action-flat.active, .button-action-flat.is-active {
    background-color: #27eb41;
    border-color: #27eb41;
    color: #bef5ca;
}

.button-giant {
    font-size: 28px;
    height: 70px;
    line-height: 70px;
    padding: 0 70px;
}

.button-jumbo {
    font-size: 24px;
    height: 60px;
    line-height: 60px;
    padding: 0 60px;
}

.button-large {
    font-size: 20px;
    height: 50px;
    line-height: 50px;
    padding: 0 50px;
}

.button-normal {
    font-size: 16px;
    height: 40px;
    line-height: 38px;
    padding: 0 40px;
}

.button-small {
    height: 30px;
    line-height: 29px;
    padding: 0 30px;
}

.button-tiny {
    font-size: 9.6px;
    height: 24px;
    line-height: 24px;
    padding: 0 24px;
}

.desktop {
    display: none;
    overflow: hidden;
    height: calc(100vh - 60px);
    width: 100%;
    display: grid;
    grid-template-rows: repeat(auto-fill, 109px);
    grid-auto-flow: column;
    grid-template-columns: repeat(auto-fill, 120px);
}

.fullpage-mode .window-minimize-btn {
    display: none;
}

.device-phone .desktop {
    height: calc(100vh - 90px) !important;
    height: calc(100dvh - 90px) !important;
}

.item-container-list {
    display: grid;
    overflow-x: scroll !important;
    overflow-y: hidden !important;
    grid-template-rows: repeat(auto-fill, 18px);
    grid-auto-flow: column;
    gap: 15px 70px;
    padding-top: 5px;
}

.device-phone .item-container-list {
    grid-template-rows: repeat(auto-fill, 55px);
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    grid-auto-flow: unset;
}

.item-container-details {
    overflow-x: scroll !important;
    overflow-y: scroll !important;
    padding-top: 5px;
}

.item {
    width: 110px;
    height: 70px;
    user-select: none !important;
    -moz-user-select: none !important;
    -webkit-user-select: none;
    text-align: center;
    margin: 15px 5px 30px 5px;
    float: left;
    position: relative;
    scroll-margin: 15px 15px 100px 15px;
    pointer-events: all;
}

.item-disabled {
    opacity: 0.7;
    pointer-events: none;
}

.item-revealed {
    opacity: 0.9;
}

.item-hidden {
    display: none
}

.item-revealed.item-disabled {
    opacity: 0.7
}

.item-container-list .item {
    height: initial;
    width: max-content;
    margin: 0;
    pointer-events: all;
}

.device-phone .item-container-list .item {
    height: 50px;
    width: 100%;
    padding-left: 10px;
}

.item-container-details .item {
    height: initial;
    width: max-content;
    margin: 0;
    pointer-events: all;
    width: 100%;
    min-width: 795px;
    margin-bottom: 20px;
}

.explore-table-headers {
    display: none;
    width: 100%;
    min-width: 795px;
    height: 25px;
    border-bottom: 1px solid rgb(226, 226, 226);
    background-color: #fff;
    margin-left: -10px;
    padding-top: 0;
    margin-top: -7px;
    margin-bottom: 8px;
    position: sticky;
    top: -7px;
    z-index: 1;
}

.device-phone .explore-table-headers {
    display: none !important;
}

.header-sort-icon {
    margin-left: 7px;
    pointer-events: none;
}

span.header-sort-icon img {
    margin-bottom: -1px;
    width: 10px;
}

.explore-table-headers .explore-table-headers-th {
    font-size: 12px;
    line-height: 25px;
    margin-left: 15px;
    color: #555c61;
    display: inline-block;
}

.explore-table-headers-th-active {
    font-weight: bold;
}

.explore-table-headers-th--name {
    width: 330px;
}

.explore-table-headers-th--size {
    width: 135px;
}

.explore-table-headers-th--modified {
    width: 135px;
}

.item-container-details .explore-table-headers {
    display: block;
}

.item-disabled .item-icon, .item-disabled .item-name {
    opacity: 0.7;
    pointer-events: none;
}

.item-icon {
    display: block;
    margin: 0 auto;
    padding: 5px;
    height: 45px;
    width: 45px;
    filter: drop-shadow(1px 1px 1px rgba(102, 102, 102, .5));
    display: flex;
    justify-content: center;
    align-items: center;
}

.item-container-list .item-icon {
    float: left;
    height: 15px;
    width: 15px;
}

.device-phone .item-container-list .item-icon {
    float: left;
    height: 45px;
    width: 45px;
}

.item-container-details .item-icon {
    float: left;
    height: 15px;
    width: 15px;
}

.device-desktop .item-container-details .item-selected .item-icon {
    background-color: transparent;
}

.item-icon img {
    max-height: 45px;
    max-width: 45px;
}

.item-container-list .item-icon img {
    max-height: 15px;
    max-width: 15px;
}

.device-phone .item-container-list .item-icon img {
    max-height: 45px;
    max-width: 45px;
}

.item-container-details .item-icon img {
    max-height: 15px;
    max-width: 15px;
}

.item-icon-thumb {
    padding: 1px;
    background-color: white;
    border: 1px solid #EEE;
    border-radius: 3px;
}

.device-desktop .item-selected .item-icon {
    background-color: #d4d4d430;
    border-radius: 3px;
    filter: drop-shadow(0px 0px 1px rgba(102, 102, 102, 1));
}

.item-badges {
    position: absolute;
    height: 15px;
    width: 55px;
    text-align: center;
    justify-content: right;
    display: flex;
    top: 38px;
    left: 28px;
    right: 50%;
}

.item-container-list .item-badges {
    display: none;
}

.item-container-details .item-badges {
    display: none;
}

.item-badge {
    filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, .4));
    display: none;
    margin: 1px;
    width: 15px;
    height: 15px;
    box-sizing: border-box;
    border-radius: 100%;
}

.item-badge.item-shortcut {
    border-radius: 1px;
    background: white;
}

.item-has-website-badge {
    filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, .4));
    display: none;
    cursor: pointer;
}

.item-has-website-url-badge {
    cursor: pointer;
}

.item-has-website-url-badge.has-open-contextmenu {
    filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 1));
}

.item-name, .item-name-editor, .item-name-shadow {
    font-size: 12px;
    color: white;
    text-shadow: 0px 0px 3px #00000082, 0px 0px 3px #00000082, 0px 0px 3px #00000082;
    -webkit-font-smoothing: antialiased;
    padding: 3px;
    margin-top: 4px;
    display: inline-block;
    font-weight: bold;
    border-radius: 4px;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-break: break-word;
}

.item-name {
    transition: opacity 0.2s ease-in-out;
    cursor: default;
    max-width: 110px;
}

.item-container-list .item-name {
    margin-top: 2px;
    float: left;
    max-width: initial;
}

.item-container-details .item-name {
    margin-top: 2px;
    float: left;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    text-align: left;
    max-width: 220px;
}

.item-name-shadow {
    display: none;
    max-width: 110px;
}

.item-name-editor {
    background: none;
    background-color: white;
    text-shadow: none;
    color: black;
    text-align: center;
    border: none;
    max-width: 100%;
    padding: 1px 3px;
    resize: none;
    display: none;
    margin: 6px auto;
    user-select: initial;
    position: relative;
    box-sizing: border-box;
    z-index: 999999999;
}

.item-container-list .item-name-editor {
    width: fit-content !important;
    max-width: 200px !important;
    text-align: left;
    background-color: white !important;
}

.item-container-list .item-name-editor-active {
    background-color: white !important;
}

.item-container-details .item-name-editor {
    width: fit-content !important;
    max-width: 200px !important;
    text-align: left;
    background-color: white !important;
    position: absolute;
    left: 35px;
}

.item-container-details .item-name-editor-active {
    background-color: white !important;
}

.item-name-editor-active {
    display: block;
}

.item-attr {
    display: none;
    position: absolute;
    text-align: left;
    font-size: 12px;
    height: 25px;
    line-height: 25px;
    width: max-content;
    color: #738c9f;
}

.item-container-details .item-attr {
    display: inline;
}

.device-desktop .item-container-details .item-selected .item-attr {
    color: white;
}

.item-container-details .item-attr--modified {
    left: 350px;
}

.item-container-details .item-attr--size {
    left: 500px;
}

.item-container-details .item-attr--type {
    left: 650px;
}

.window-disabled {
    pointer-events: none !important;
}

.window-disable-mask {
    width: 100%;
    height: 100%;
    position: absolute;
    display: none;
    background-color: #d1d1d18a;
    pointer-events: initial;
    z-index: 2;
}

.device-phone .window-disable-mask, .device-tablet .window-disable-mask {
    background-color: #626060a1;
}

.window-disable-mask .busy-indicator {
    -moz-animation: three-quarters-loader 1250ms infinite linear;
    -webkit-animation: three-quarters-loader 1250ms infinite linear;
    animation: three-quarters-loader 1250ms infinite linear;
    border: 5px solid rgb(75, 75, 75);
    border-right-color: transparent;
    border-radius: 100%;
    box-sizing: border-box;
    display: inline-block;
    position: relative;
    overflow: hidden;
    text-indent: -9999px;
    width: 45px;
    height: 45px;
    position: absolute;
    top: calc(50% - 22px) !important;
    left: calc(50% - 22px) !important;
    transform: translate(-50%, -50%);
    display: none;
}

.window-body .item .item-name {
    color: rgb(73, 73, 73);
    text-shadow: none;
    font-weight: 500;
    font-size: 13px;
    margin-left: 3px;
}

.device-phone .item-container-list .item .item-name {
    line-height: 42px;
    border-bottom: 1px solid #e3e3e3;
    padding-bottom: 15px;
    width: calc(100% - 75px);
    text-align: left;
}

.window-body .item .item-name-editor {
    font-weight: 500;
    font-size: 13px;
}

.device-desktop .item-selected>.item-name, .device-desktop .window-body .item-selected>.item-name {
    background-color: #3b56ee;
    color: white;
}

.device-desktop .item-container-details .item-selected {
    background-color: #3b56ee;
    border-radius: 3px;
}

.device-desktop .item-selected.item-blurred .item-name {
    background-color: #dbdada;
    color: rgb(73, 73, 73);
    text-shadow: none;
}

.window-body .item-name-editor {
    color: rgb(73, 73, 73);
    text-shadow: none;
}

.window-menubar:not(.window-menubar-global):empty {
    display: none !important;
}

.window-menubar {
    display: flex;
    box-sizing: border-box;
    overflow: hidden;
    border-bottom: 1px solid #e3e3e3;
    background-color: #fafafa;
    --scale: 2pt;
    padding: 2px 5px;
}

.window-menubar-global {
    background-color: transparent;
    color: white;
    border-bottom: none;
    flex-grow: 1;
    scale: 1;
    --scale: 1;
    margin-left: 15px;
    padding: 0;
}

.window-menubar-global .window-menubar-item span {
    padding: 3px 10px;
    font-size: 13px;
    border-radius: 3px;
}

.window-menubar-item {
    padding: calc(1.4 * var(--scale)) 0;
    font-size: calc(5 * var(--scale));
    overflow: hidden !important;
}

.window-menubar-item span {
    display: inline-block;
    padding: calc(1.6 * var(--scale)) calc(4 * var(--scale));
    font-size: calc(5 * var(--scale));
    border-radius: calc(1.5 * var(--scale));
}

.window-menubar-item.active>span {
    background-color: #e2e2e2;
}

.window-menubar-global .window-menubar-item.active>span {
    background-color: #e4e4e43a;
}

.explorer-empty-message {
    text-align: center;
    margin-top: 20px;
    color: #a3a3a3;
    -webkit-font-smoothing: antialiased;
    display: none;
}

.explorer-error-message {
    text-align: center;
    margin-top: 20px;
    color: #935c5c;
    -webkit-font-smoothing: antialiased;
    display: none;
}

.explorer-loading-spinner {
    margin-top: 20px;
    font-size: 13px;
    display: none;
}

.explorer-loading-spinner-msg {
    text-align: center;
    margin-top: 5px;
    color: #a3a3a3;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
}

/* Window */

.window {
    display: none;
    position: absolute;
    background: transparent;
    padding: 0;
    border: 1px solid #9a9a9a;
    box-shadow: 0px 0px 15px #00000066;
    overflow: hidden;
    border-radius: 4px;
    border: none;
    transition: opacity .2s;
    user-select: none !important;
    -moz-user-select: none !important;
    -webkit-user-select: none;
}

.window[data-is_maximized="1"] {
    transform: none;
    border-radius: 0;
}

.window-cover-page {
    border-radius: 0;
}

.device-phone .window[data-is_maximized="1"] {
    top: 0 !important;
}

.device-phone .window, .device-tablet .window {
    z-index: 9999999 !important;
}

.device-phone .window-alert, .device-tablet .window-alert {
    min-width: 90%;
    max-width: 300px;
    position: absolute;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%);
}

.device-tablet .window .window-scale-btn,
.device-phone .window .window-scale-btn,
.device-phone .window .ui-resizable-handle {
    display: none !important;
}

.window-backdrop {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #00000080;
}

.window.ui-resizable-resizing {
    transition: none;
}

.window-dragging {
    transition: none;
}

.window-head-draggable {
    overflow: hidden;
    flex-grow: 1;
    display: flex;
}

.window-head {
    overflow: hidden !important;
    padding: 0;
    background-color: hsla(var(--window-head-hue),
            var(--window-head-saturation),
            var(--window-head-lightness),
            calc(0.5 + 0.5 * var(--window-head-alpha)));
    filter: grayscale(80%);
    box-shadow: inset 0px -4px 5px -7px rgb(0 0 0 / 64%);
    display: flex;
    flex-flow: row;
    padding-left: 5px;
    margin-bottom: -1px;
}

.device-phone .window-head {
    /* not transparent on mobile */
    background-color: rgba(231, 238, 245);
}

.window-head, .window-head * {
    user-select: none !important;
    -moz-user-select: none !important;
    -webkit-user-select: none !important;
    -ms-user-select: none !important;
    cursor: default;
}

.window-active .window-head {
    filter: none !important;
}

.window-head-title {
    float: left;
    line-height: 30px;
    font-size: 14px;
    /* color: #666d74; */
    margin-left: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    color: var(--window-head-color);
}

.window-active .window-head-title {
    /* color: #373e44; */
    color: var(--window-head-color)
}

.window-head-icon {
    float: left;
    width: 16px;
    height: 16px;
    margin-left: 8px;
    margin-top: 7px;
    margin-right: -5px;
    filter: drop-shadow(0px 0px 0.5px rgb(51, 51, 51));
}

.window-navbar {
    overflow: hidden;
    border-bottom: 1px solid #e3e3e3;
    padding: 5px 0 5px 1px;
    background-color: #fafafa;
    height: 48px;
    box-sizing: border-box;
}

.window-navbar-btn {
    margin: 7px 6px 0;
    cursor: pointer;
    width: 17px;
    border-radius: 100%;
    padding: 3px;
    transition: background-color 0.2s ease-in;
}

.window-navbar-btn:hover, .window-navbar-btn.has-open-contextmenu {
    background-color: #dfdfdf;
}

.window-navbar-btn-disabled {
    pointer-events: none;
    opacity: 0.5;
}

.window-navbar-path {
    overflow: hidden;
    line-height: 35px;
    padding-left: 10px;
    font-size: 14px;
    color: #41484c;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
    border: 1px solid #e3e3e3;
    border-radius: 3px;
    background: #f1f3f4;
    box-sizing: border-box;

    user-select: none !important;
    -moz-user-select: none !important;
    -webkit-user-select: none !important;
    -ms-user-select: none !important;
    cursor: default;
}

.device-phone .window-navbar-path {
    display: none;
}

.window-navbar-layout-settings {
    width: 30px;
    height: 30px;
    margin-left: 10px;
    margin-top: 3px;
}

.device-phone .window-navbar-layout-settings {
    float: right;
    margin-right: 10px;
}

.window-navbar-path-input {
    overflow: hidden;
    line-height: 17px;
    padding-left: 10px;
    font-size: 15px;
    color: #41484c;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    /* -webkit-font-smoothing: antialiased; */
    border: 1px solid #00b6ff;
    border-radius: 3px;
    background: white;
    display: none;
    box-sizing: border-box;
    padding-top: 9px;
    padding-bottom: 9px;
    outline: 1px solid #00b6ff;
}

.window-navbar-path-input, .window-navbar-path {
    width: calc(100% - 170px);
    float: left;
}

.window-navbar-path-dirname {
    cursor: pointer;
    font-weight: 500;
    padding: 0px 7px;
    height: 33px;
    display: inline-block;
    overflow: initial !important;
}

.window-navbar-path-dirname-active {
    text-decoration: underline;
}

.window-navbar-path-dirname:hover {
    color: #414a4e;
    text-decoration: underline;
}

.path-seperator {
    width: 10px;
    opacity: 0.2;
}

.window-body {
    width: 100%;
    height: calc(100% - 77px);
    background-color: white;
    overflow: auto;
}

.window-body.item-container {
    box-sizing: border-box;
    width: initial;
    padding-left: 10px;
    border: 3px solid rgba(255, 255, 255, 0);
    position: relative;
}

.item-container-transparent-border {
    border-color: transparent !important;
}

.window-body.item-container-active {
    border-color: #bcedff !important;
}

.device-phone .window-body.item-container {
    padding-left: 0;
}

.window-sidebar {
    min-width: 170px;
    height: calc(100% - 28px);
    float: left;
    border-right: 0.5px solid #CCC;
    padding: 15px 10px;
    box-sizing: border-box;
    background-color: hsla(var(--window-sidebar-hue),
            var(--window-sidebar-saturation),
            var(--window-sidebar-lightness),
            calc(0.5 + 0.5*var(--window-sidebar-alpha)));
    overflow-y: scroll;
    margin-top: 1px;
    box-shadow: inset -4px 0 8px -8px rgba(0, 0, 0, 0.3);
}

.window-sidebar .ui-resizable-e {
    right: 0;
}

.window-filedialog .window-sidebar {
    height: calc(100% - 30px);
}

.window-cover-page.window-filedialog .window-body {
    height: calc(100% - 109px) !important;
}

.window-cover-page .window-sidebar {
    height: 100%;
}

.window-cover-page.window-puter-dialog {
    height: 100%;
    width: 100%;
    top: 0 !important;
}

.window-cover-page.window-puter-dialog .window-body {
    width: 100%;
    height: 100%;
    padding: 0 !important;
}

.window-cover-page.window-login, .window-cover-page.window-signup {
    height: 100vh !important;
    width: 100%;
    top: 0 !important;
}

.window-sidebar-title {
    margin: 0;
    font-weight: bold;
    font-size: 13px;
    color: #8f96a3;
    text-shadow: 1px 1px rgb(247 247 247 / 15%);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding-left: 6px;
    cursor: default;
    margin-top: 20px;
    margin-bottom: 5px;
}

.window-sidebar-title:first-child {
    padding-left: 1px;
    margin-top: 0px;
}

.window-sidebar-item:hover, .window-sidebar-item.has-open-contextmenu {
    background-color: rgba(243, 243, 243, 0.8);
    cursor: pointer;
}

.window-sidebar-item, .window-sidebar-item.grabbing {
    margin-bottom: 6px;
    margin-top: 2px;
    padding: 4px;
    border-radius: 3px;
    color: #444444;
    font-size: 13px;
    cursor: pointer;
    transition: 0.15s background-color;
    box-sizing: border-box;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.window-sidebar-item-active, .window-sidebar-item-drag-active, .window-sidebar-item-active:hover {
    background-color: #fefeff;
}

.window-sidebar-item-placeholder {
    height: 27px !important;
}

.window-sidebar-item {
    cursor: pointer !important;
    user-select: none;
}

.window-sidebar-item:not(.window-sidebar-title):hover {
    cursor: grab;
}

.window-sidebar-item.grabbing {
    cursor: grabbing !important;
}

.window-sidebar-item-dragging {
    background-color: #f5f5f5 !important;
    opacity: 0.8;
    cursor: grabbing;
}

.ui-sortable-helper {
    background: white !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.window-sidebar-item-icon {
    width: 14px;
    height: 14px;
    filter: drop-shadow(0px 0px 0.2px rgb(51, 51, 51));
    margin-right: 5px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin-bottom: -2px;
}

.window[data-app="explorer"] .window-body {
    height: calc(100% - 107px);
}

.explorer-footer {
    background: white;
    overflow: auto;
    height: 30px;
    font-size: 13px;
    line-height: 28px;
    padding-left: 10px;
    background-color: #fafafa;
    border-top: 1px solid #e3e3e3;
    color: #505050;
    user-select: none !important;
    -moz-user-select: none !important;
    -webkit-user-select: none !important;
    -ms-user-select: none !important;
    cursor: default;
}

.device-phone .explorer-footer {
    width: 100%;
}

.explorer-footer-seperator, .explorer-footer-selected-items-count {
    display: none;
}

.explorer-footer-seperator {
    margin: 15px;
    color: #CCC;
}

.window-body-filedialog {
    height: calc(100% - 137px);
}

.window-body-app {
    height: calc(100% - 30px);
}

.fullpage-mode.device-phone .window-body-app {
    height: calc(100%);
}

.window-filedialog-prompt {
    height: 60px;
    border-top: 1px solid #dbdee3;
    background-color: #f3f5f9;
    padding: 0 15px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.savefiledialog-filename {
    float: left;
    margin-right: 10px;
    padding: 5px !important;
    border-width: 1px !important;
    height: 31px;
    flex-grow: 1;
}

.window-filedialog-upload-here {
    -webkit-font-smoothing: antialiased;
    opacity: 0.7;
    font-size: 14px;
}

.window-filedialog-upload-here:hover {
    cursor: pointer;
    opacity: 1;
}

.savefiledialog-save-btn, .openfiledialog-open-btn {
    margin-left: 10px;
}

.filedialog-cancel-btn {
    margin-left: 10px;
}

.window-action-btn {
    margin-right: 5px;
    margin-left: 10px;
    padding-bottom: 3px;
    opacity: 0.6;
}

.window-active .window-action-btn {
    opacity: 1;
}

.window-action-btn>img {
    width: 18px;
    margin-top: 5px;
    margin-right: 4px;
    margin-left: 4px;
    opacity: 0.5;
    -webkit-user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.window-action-btn:hover>img {
    opacity: 1;
}

.window-scale-btn>img {
    width: 15px;
    height: 15px;
    margin-top: 7px
}

.window-app-iframe {
    width: 100%;
    height: 100%;
    border: none;
    margin: 0;
    display: block;
    height: calc(100%);
    pointer-events: none;
    overflow: hidden;
}

.window-active .window-app-iframe {
    pointer-events: all;
}

.window-disabled .window-app-iframe {
    pointer-events: none !important;
}

.ui-resizable-e, .ui-resizable-w {
    cursor: ew-resize;
}

.ui-resizable-n, .ui-resizable-s {
    cursor: ns-resize;
}

.ui-resizable-ne, .ui-resizable-sw {
    cursor: nesw-resize;
}

.ui-resizable-nw, .ui-resizable-se {
    cursor: nwse-resize;
}

.window>.ui-resizable-nw, .window>.ui-resizable-ne, .window>.ui-resizable-se, .window>.ui-resizable-sw {
    width: 15px;
    height: 15px;
    z-index: 95 !important;
}

.window-alert-message, .window-prompt-message {
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #414650;
    text-shadow: 1px 1px #ffffff52;
    margin-top: 10px;
    word-break: break-word;
}

.window-alert-message {
    text-align: center;
}

.window-alert-icon {
    width: 64px;
    margin: 10px auto 20px;
    display: block;
}

.alert-resp-button {
    width: 100%;
    margin-top: 10px;
}

.prompt-resp-button {
    margin-left: 10px;
}

.prompt-resp-btn-ok {
    width: 110px;
}

.mywebsites-card {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    border: 1px solid #CCC;
    padding: 10px;
    margin-bottom: 10px;
    border-radius: 4px;
    background-color: white;
}

.mywebsites-address-link {
    color: #0d6efd;
    text-decoration: none;
}

.mywebsites-address-link:hover {
    text-decoration: underline;
}

.mywebsites-dir-path {
    cursor: pointer;
    font-size: 14px;
    margin-bottom: 0;
}

.mywebsites-dir-path img {
    width: 16px;
    margin-bottom: -3px;
    margin-right: 5px;
}

.mywebsites-dir-path:hover {
    text-decoration: underline;
}

.mywebsites-dis-dir {
    cursor: pointer;
}

.mywebsites-dis-dir:hover {
    text-decoration: underline;
}

.mywebsites-no-dir-notice {
    margin-bottom: 0;
    color: #7e7e7e;
    font-size: 14px;
}

.mywebsites-release-address {
    color: red;
    cursor: pointer;
    font-size: 13px;
}

.mywebsites-site-setting {
    position: absolute;
    right: 5px;
    top: 5px;
    cursor: pointer;
    width: 20px;
    height: 20px;
}

/***********************
 * Context Menu
 ***********************/

.context-menu {
    display: none;
    z-index: 9999999999;
    position: absolute;
    overflow: hidden;
    white-space: nowrap;
    font-family: sans-serif;
    background: #FFF;
    color: #333;
    border-radius: 2px;
    padding: 3px 0;
    min-width: 200px;
    background-color: rgba(231, 238, 245, .98);
    border: 1px solid #e6e4e466;
    box-shadow: 0px 0px 15px #00000066;
    padding-left: 6px;
    padding-right: 6px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.context-menu li {
    list-style-type: none;
    user-select: none;
    cursor: default !important;
}

.context-menu .context-menu-divider>hr {
    margin-top: 0;
    margin-bottom: 0;
    border-bottom: none;
    border-top: 1px solid #00000033;
}

.context-menu .context-menu-divider {
    padding-top: 5px;
    padding-bottom: 5px;
}

.context-menu .context-menu-item:not(.context-menu-divider) {
    padding: 5px;
    list-style-type: none;
    user-select: none;
    font-size: 12px;
    height: 25px;
    box-sizing: border-box;
    position: relative;
}

.context-menu .context-menu-item .ctx-item-icon {
    width: 15px;
    height: 15px;
    position: absolute;
    left: 5px;
    top: 5px;
    filter: drop-shadow(0px 0px 0.3px rgb(51, 51, 51));
}

.submenu-arrow {
    width: 15px;
    height: 15px;
    float: right;
}

.submenu-arrow-active {
    display: none;
}

.context-menu-item-active .submenu-arrow {
    display: none;
    pointer-events: none;
}

.context-menu-item-active .submenu-arrow-active {
    display: inline-block;
}

.context-menu .context-menu-item-active-blurred .submenu-arrow {
    display: inline-block;
}

.context-menu .context-menu-item-active-blurred .submenu-arrow-active {
    display: none;
    pointer-events: none;
}

.context-menu .has-open-context-menu-submenu,
.context-menu .context-menu-item-active {
    border-radius: 4px;
}

.context-menu .has-open-context-menu-submenu {
    background-color: #dfdfdf;
}

.context-menu .context-menu-item-active:not(.context-menu-divider) {
    background-color: var(--select-color);
    color: white;
}

.context-menu .context-menu-item-active-blurred {
    background-color: rgb(199, 205, 212);
    color: initial;
    border-radius: 4px;
}

.context-menu .context-menu-item-disabled, .context-menu .context-menu-item-disabled:hover {
    opacity: 0.5;
    background-color: transparent;
    color: initial;
    cursor: initial;
}

.context-menu-item-icon, .context-menu-item-icon-active {
    display: inline-block;
    width: 20px;
    text-align: center;
    margin-right: 5px;
    font-size: 14px;
    line-height: 5px;
}

.context-menu-item-icon-active, .contextmenu-label-active {
    display: none;
}

.context-menu .context-menu-item-active .context-menu-item-icon,
.context-menu .context-menu-item-active .contextmenu-label {
    display: none;
}

.context-menu .context-menu-item-active .context-menu-item-icon-active {
    display: inline-block;
}

.context-menu .context-menu-item-active:not(.context-menu-item-disabled) .context-menu-item-icon-active {
    color: white;
}

.context-menu .context-menu-item-active .contextmenu-label-active {
    display: inline-block;
}

.draggable-count-badge {
    background-color: red;
    border: 2px solid white;
    border-radius: 100%;
    position: absolute;
    display: none;
    width: 22px;
    height: 22px;
    text-align: center;
    color: white;
    font-weight: bold;
    z-index: 9999999999;
    font-size: 12px;
    line-height: 22px;
}

.selection-area {
    background-color: #afafaf36;
    border: 1px solid #CCC;
}

.container {
    user-select: none;
}

label {
    display: block;
    -webkit-font-smoothing: antialiased;
    color: #3a3d40;
    margin-bottom: 3px;
    text-shadow: 1px 1px #ffffff61;
    font-size: 14px;
}

.toolbar {
    float: right;
    width: 100%;
    background-color: #00000040;
    height: 30px;
    position: relative;
    z-index: 999999;
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-content: center;
    flex-wrap: wrap;
    padding-right: 10px
}

.show-desktop-btn {
    color: white;
    font-size: 11px !important;
    padding: 2px 5px 2px !important;
    border: 1px solid;
    border-radius: 4px;
    height: 18px !important;
    width: 110px !important;
    margin-top: 2px;
    text-decoration: none;
    margin-left: 10px !important;
    font-weight: 500;
}

.device-phone .toolbar {
    z-index: 1;
}

@supports ((backdrop-filter: blur())) {
    .toolbar {
        background-color: #00000040;
        backdrop-filter: blur(10px);
    }
}

.toolbar-btn {
    padding: 4px;
    font-size: 14px;
    width: auto;
    padding: 0 5px;
    margin-left: 20px;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: inline-block;
    width: 22px;
    height: 22px;
    padding: 3px;
    box-sizing: border-box;
    background-origin: content-box;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0.8;
}

.toolbar-btn:hover {
    opacity: 1;
}

.user-options-menu-btn.has-open-contextmenu {
    background-color: rgb(255 255 255 / 35%);
    border-radius: 3px;
}

.user-options-menu-username {
    color: black;
    margin-left: 5px;
    display: block;
    max-width: 70px;
    text-overflow: ellipsis;
    float: right;
    overflow: hidden;
}

.user-options-menu-username:empty {
    margin-left: 0;
}

.user-options-login-btn, .user-options-create-account-btn {
    padding: 0 15px;
}

.toolbar-btn:hover:not(.has-open-contextmenu) {
    background-color: rgb(255 255 255 / 15%);
    border-radius: 3px;
}

.logout-btn {
    position: absolute;
    right: 7px;
    top: 7px;
    padding: 4px;
    border-radius: 4px;
    cursor: pointer;
    border: 2px solid #CCC;
}

.logout-btn img {
    width: 20px;
    margin-bottom: -5px;
}

.login-error-msg, .signup-error-msg, .publish-website-error-msg, .form-error-msg {
    display: none;
    color: red;
    border: 1px solid red;
    border-radius: 4px;
    padding: 9px;
    margin-bottom: 15px;
    text-align: center;
    font-size: 13px;
}

.error {
    display: none;
    color: red;
    border: 1px solid red;
    border-radius: 4px;
    padding: 9px;
    margin-bottom: 15px;
    text-align: center;
    font-size: 13px;
}

.form-success-msg {
    display: none;
    color: rgb(0, 129, 69);
    border: 1px solid rgb(0, 201, 17);
    border-radius: 4px;
    padding: 9px;
    margin-bottom: 15px;
    text-align: center;
    font-size: 13px;
}

.publish-btn {
    margin-top: 20px;
}

.window-publishWebsite-success, .window-give-item-access-success {
    display: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    height: auto;
}

.manage-your-websites-link {
    color: #007cff;
    text-decoration: underline;
    cursor: pointer;
}

.publishWebsite-published-link {
    text-decoration: none;
    color: #007cff;
}

.publishWebsite-published-link:hover {
    text-decoration: underline;
}

.publishWebsite-published-link-icon {
    display: inline-block;
    width: 12px;
    margin-left: 5px;
    margin-bottom: -1px;
    user-select: none !important;
}

.login-form-title, .signup-form-title {
    text-align: center;
    margin-top: 0;
    padding-bottom: 15px;
    font-size: 23px;
    font-weight: 400;
    margin-bottom: 10px;
    color: #657489;
    text-shadow: 1px 1px #ffffff1c;
}

.signup-form-title {
    margin-top: 10px;
}

.signup-c2a-clickable, .login-c2a-clickable {
    border: none;
    background: none;
    display: block;
    margin: 0 auto;
    cursor: pointer;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    color: #4f5a68;
    font-size: 20px;
}

.signup-c2a-clickable:hover, .login-c2a-clickable:hover {
    text-decoration: underline;
}

.p102xyzname, #p102xyzname {
    display: none;
}

.intro-menu-item {
    text-decoration: none;
    color: #398ce7;
    font-weight: 400;
}

.intro-menu-item:hover {
    text-decoration: underline;
}

.bull {
    margin: 10px;
    color: #CCC;
}

.create-account-form-title {
    text-align: center;
    margin-top: 0;
    padding-bottom: 15px;
    font-size: 20px;
    font-weight: 300;
    margin-bottom: 10px;
    color: #383e46;
}

.create-account-desc {
    margin-top: 0;
    margin-bottom: 30px;
    text-align: center;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #2f3f53;
    font-size: 14px;
}

.unsupported-device-notice {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: white;
    z-index: 9999999;
    display: none;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    padding: 30px;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.item-props-tabview {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.item-props-tab-content {
    display: none;
    padding: 5px 10px;
    flex-grow: 1;
    border: 1px solid #CCC;
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
    border-top-right-radius: 3px;
    border-top-left-radius: 3px;
    margin-top: -1px;
}

.item-props-tab-content-selected {
    display: block;
    background-color: white;
}

.item-props-tab-btn {
    display: inline-block;
    padding: 10px 15px;
    cursor: pointer;
    margin-right: 10px;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    border: 1px solid #ffffff00;
    margin-bottom: -1px;
    color: #374653;
}

.item-props-tab-selected {
    border: 1px solid #CCC;
    margin-bottom: -1px;
    border-bottom: none;
    background-color: white;
    position: relative;
    color: black;
}

.item-props-tbl {
    font-size: 13px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.item-props-tbl td {
    padding-bottom: 10px;
    word-break: break-all;
}

.item-prop-label {
    text-align: left;
    font-weight: 500;
    white-space: nowrap;
}

.item-prop-original-name, .item-prop-original-path {
    display: none;
}

.item-prop-version-entry:not(:last-child) {
    display: inline-block;
    width: 100%;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid #CCC;
}

.item-prop-val {
    padding-left: 10px;
}

.send-conf-email, .conf-email-log-out {
    cursor: pointer;
}

.send-conf-code {
    cursor: pointer;
}

.email-confirm-code-hyphen {
    display: inline-block;
    flex-grow: 1;
    text-align: center;
    font-size: 40px;
    font-weight: 300;
}

.confirm-code-hyphen {
    display: inline-block;
    flex-grow: 1;
    text-align: center;
    font-size: 40px;
    font-weight: 300;
}

.send-conf-email:hover, .conf-email-log-out:hover {
    text-decoration: underline;
}

.send-conf-code:hover {
    text-decoration: underline;
}

.remove-permission-link, .disassociate-website-link {
    cursor: pointer;
    color: red;
}

.permission-owner-badge {
    background-color: #9dacbd;
}

.permission-editor-badge {
    background-color: #007cff;
}

.permission-viewer-badge {
    background-color: #41c95d;
}

.permission-owner-badge, .permission-editor-badge, .permission-viewer-badge {
    display: inline-block;
    width: 45px;
    text-align: center;
    padding: 2px 4px;
    border-radius: 2px;
    color: white;
    font-size: 12px;
    margin-right: 10px;
    margin-top: -2px;
}

.remove-permission-link:hover, .disassociate-website-link:hover {
    text-decoration: underline;
}

.item-perm-recipient-card {
    margin-bottom: 5px;
    margin-top: 15px;
    padding: 11px;
    background-color: white;
    border-radius: 3px;
    border: 1px solid #e0e0e0;
    color: #65707b;
    font-size: 13px;
}

.remove-permission-icon {
    display: none;
    text-decoration: none !important;
    color: rgb(184, 184, 184);
}

.remove-permission-icon:hover {
    color: rgb(109, 109, 109);
}

.item-perm-recipient-card:hover .remove-permission-icon {
    display: block;
}

.share-recipients {
    max-height: 200px;
    overflow: hidden;
    overflow-y: scroll;
}

.ui-menu {
    margin-top: 5px;
    border-radius: 5px;
}

.ui-menu .ui-menu-item {
    padding: 5px 10px;
    border-radius: 5px;
}

.ui-menu .ui-menu-item .ui-menu-item-wrapper {
    background: none;
    border: none;
    padding: 5px 10px;
    font-size: 14px;
}

.ui-menu .ui-menu-item:hover .ui-menu-item-wrapper,
.ui-menu .ui-menu-item:focus .ui-menu-item-wrapper,
.ui-menu .ui-menu-item:active .ui-menu-item-wrapper,
.ui-menu .ui-menu-item .ui-menu-item-wrapper.ui-state-active {
    background-color: #4092da;
    color: #fff;
    border-radius: 5px;
    border: 1px solid #4092da;
}

.feedback-sent-success {
    display: none;
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #59d959;
    border-radius: 3px;
    background-color: #e4f9e4;
    position: relative;
}

.window-give-item-access-success {
    display: none;
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #59d959;
    border-radius: 3px;
    background-color: #e4f9e4;
    position: relative;
}

.save-account-success {
    display: none;
    padding: 30px;
    border-radius: 3px;
    background-color: #f2fff2;
    position: relative;
    color: green;
    -webkit-font-smoothing: antialiased;
}

.hide-sharing-success-alert {
    position: absolute;
    color: #8d8c8c;
    font-size: 20px;
    right: 15px;
    cursor: pointer;
}

.hide-sharing-success-alert:hover {
    color: black;
}

.access-recipient {
    height: 40px;
    background-color: white;
    margin-bottom: 5px;
    width: 100%;
}

.item-is-shared {
    cursor: pointer;
}

.session-entry {
    cursor: pointer;
    padding: 20px;
    border: 1px solid #CCC;
    border-radius: 3px;
    margin-bottom: 10px;
    background-color: white;
    font-weight: 500;
    color: #394d5c;
}

.session-entry:hover {
    border-color: #00a6ff;
}

.login-c2a-session-list, .signup-c2a-session-list {
    cursor: pointer;
    font-size: 15px;
    color: #636363;
}

.login-c2a-session-list:hover, .signup-c2a-session-list:hover {
    text-decoration: underline;
    ;
}

/*****************************************************
 * Taskbar
 *****************************************************/

.taskbar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: hsla(var(--taskbar-hue),
            var(--taskbar-saturation),
            var(--taskbar-lightness),
            calc(0.5 + 0.5*var(--taskbar-alpha)));
    display: flex;
    justify-content: center;
    z-index: 99999;
    overflow: hidden !important;

    height: 50px;
    border-radius: 10px;
    bottom: 5px;
    padding-left: 7px;
    padding-right: 7px;
    width: auto;
    left: 50%;
    transform: translateX(-50%);

    /* that sweet sweet subtle shadow */
    box-shadow: 
    inset 0 0 0 0.5px rgba(255, 255, 255, 0.2),
    0 0 0 0.5px rgba(0, 0, 0, 0.2),
    0 4px 16px rgba(0, 0, 0, 0.2);
}

.taskbar .taskbar-item {
    float: left;
    position: relative;
    overflow: hidden !important;
    transition: background-color 0.2s;
    display: none;
}

.taskbar .taskbar-item-sortable-placeholder, .taskbar .taskbar-item {
    width: 40px;
    height: 40px;
    padding: 6px 5px 10px 5px;
}

.taskbar .taskbar-item .taskbar-icon {
    border-radius: 3px;
}

.taskbar .taskbar-item, .taskbar .taskbar-item * {
    -webkit-user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.taskbar-item.ui-sortable-helper {
    margin-left: 25px;
    z-index: 999999999 !important;
}

.taskbar .taskbar-item:hover .taskbar-icon {
    background-color: rgb(255 255 255 / 40%);
    transition: background-color 0.2s;
}

.taskbar .taskbar-item:active .taskbar-icon,
.taskbar .taskbar-item:focus-within .taskbar-icon,
.taskbar .taskbar-item:focus-visible .taskbar-icon,
.taskbar .taskbar-item:focus .taskbar-icon,
.taskbar-item.has-open-contextmenu .taskbar-icon,
.taskbar-item.has-open-popover .taskbar-icon,
.taskbar .taskbar-item.active .taskbar-icon,
.taskbar-item.ui-sortable-helper .taskbar-icon {
    background-color: rgb(255 255 255 / 80%) !important;
    transition: background-color 0.2s;
    filter: none;
}

.active-taskbar-indicator {
    font-size: 18px;
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    bottom: -6px;
    display: none;
    width: 9px;
    height: 3px;
    background-color: #686868;
    bottom: 8px;
    border-radius: 3px;
}

.device-phone .active-taskbar-indicator{
    display: none !important; 
}

.taskbar .taskbar-icon img {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0px 0px 0.2px rgb(51, 51, 51));
    padding: 5px;
    box-sizing: border-box;
}

.taskbar-icon {
    height: 40px;
}

#clock {
    display: none;
    position: absolute;
    right: 15px;
    color: white;
    text-shadow: 0px 0px 3px #00000082, 0px 0px 3px #00000082, 0px 0px 3px #00000082;
    font-size: 13px;
    bottom: 5px;
}

.device-phone #clock {
    display: none !important;
}

.desktop-bg-settings-wrapper {
    display: none;
    overflow: hidden;
}

.desktop-bg-color-block {
    width: 25px;
    height: 25px;
    float: left;
    margin: 5px;
    border: 1px solid #898989;
    box-sizing: border-box;
    border-radius: 2px;
}

@supports ((backdrop-filter: blur())) {
    .taskbar {
        background-color: hsla(var(--taskbar-hue),
                var(--taskbar-saturation),
                var(--taskbar-lightness),
                var(--taskbar-alpha));
        backdrop-filter: blur(10px);
    }

    .taskbar .taskbar-icon img {
        filter: drop-shadow(0px 0px 0.5px rgb(51, 51, 51));
    }
}

@media screen and (max-width: 768px) {

    .taskbar {
        justify-content: center;
        overflow: visible !important;
        overflow-x: scroll !important;
        overflow-y: hidden !important;
        max-width: calc(100% - 40px);
    }
    
    .taskbar .taskbar-item, .taskbar .taskbar-item-sortable-placeholder {
        width: 40px !important;
        height: 40px !important;
        margin-right: 5px;
        overflow: visible !important;
        padding: 5px 5px 10px 5px;
    }
    
    .taskbar-icon {
        height: 40px;
        width: 40px;
    }
    
    /* Hide scrollbar for Chrome, Safari and Opera */
    .taskbar ::-webkit-scrollbar {
        width: 0 !important;
        display: none;
    }
    
    /* Hide scrollbar for IE, Edge and Firefox */
    .taskbar {
        -ms-overflow-style: none;
        /* IE and Edge */
        scrollbar-width: none;
        /* Firefox */
    }    
    
}

/*****************************************************
 * Tooltip
 *****************************************************/

.ui-tooltip, .arrow:after {
    background-color: rgba(231, 238, 245, .92);
    box-shadow: none;
}

.ui-tooltip {
    padding: 7px 11px;
    border-radius: 2px;
    font: 14px "Helvetica Neue", Sans-Serif;
    border: none !important;
    backdrop-filter: blur(3px);
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, .455));
}

.arrow {
    width: 70px;
    height: 16px;
    overflow: hidden;
    position: absolute;
    left: 50%;
    margin-left: -35px;
    bottom: -16px;
    border-top: none;
}

.arrow.top {
    top: -16px;
    bottom: auto;
}

.arrow.left {
    left: 20%;
}

.arrow:after {
    content: "";
    position: absolute;
    left: 20px;
    top: -20px;
    width: 25px;
    height: 25px;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

.arrow.top:after {
    bottom: -20px;
    top: auto;
}

/******************************************************/
.font-selector {
    padding: 10px;
    border-radius: 2px;
    margin: 10px 0;
    scroll-margin: 10px 0;
}

.font-selector-active {
    color: white;
    background-color: #2b62f1;
}

/******************************************************/
/* Window Snapping */
/******************************************************/
.window-snap-placeholder {
    display: none;
    transition: all 0.2s;
    position: absolute;
    box-sizing: border-box;
    padding: 10px;
    backdrop-filter: blur(5px);
}

.window-snap-placeholder-inner {
    border-radius: 4px;
    width: 100%;
    height: 100%;
    background-color: rgba(245, 245, 245, 0.7);
}

/*****************************************************
 * Popover
 *****************************************************/

.popover {
    position: absolute;
    display: none;
    z-index: 9999999;
    box-sizing: border-box;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0px 0px 15px #00000066;
}

@supports ((backdrop-filter: blur())) {
    .launch-popover {
        background-color: rgba(231, 238, 245, .92);
        backdrop-filter: blur(3px);
    }
}

.popover-apps-item {
    clear: both;
    margin-bottom: 10px;
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding: 5px;

}

.popover-apps-item:hover {
    background-color: #a5c8f3;
    border-radius: 4px;
}

.popover-apps-item img {
    float: left;
    filter: drop-shadow(0px 0px 0.75px rgb(51, 51, 51));
}

.popover-apps-item span {
    line-height: 47px;
    display: block;
    float: left;
    margin-left: 10px;
}

.device-phone .popover {
    height: calc(100vh - 65px);
    height: calc(100dvh - 65px);
    top: 0 !important;
    left: 0 !important;
    width: 100%;
    padding: 0;
    margin: 0;
}

/*****************************************************
 * Notification
 *****************************************************/
.notification, .notification-wrapper {
    width: 320px;
    border-radius: 11px;
}

.notification {
    min-height: 54px;
    background: #ffffffcd;
    backdrop-filter: blur(5px);
    z-index: 99999999;
    box-shadow: 0px 0px 17px -9px #000;
    border: 1px solid #d5d5d5;
    margin-bottom: 10px;
    display: flex;
    flex-direction: row;
    pointer-events: all;
}

.notification-wrapper {
    overflow: visible;
}

.notification-close {
    position: absolute;
    background: white;
    border-radius: 100%;
    top: -6px;
    left: -6px;
    width: 13px;
    padding: 2px;
    filter: drop-shadow(0px 0px 0.5px rgb(51, 51, 51));
    z-index: 99999999;
    display: none;
}

.notification:hover .notification-close {
    display: block;
}

.notification-icon {
    width: 40px;
    margin: 10px 5px 10px 15px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    filter: drop-shadow(0px 0px 0.5px rgb(51, 51, 51));
}

.notification-icon img {
    width: 35px;
    height: 35px;
}

.notification-title {
    font-size: 12px;
    font-weight: 600;
}

.notification-text {
    font-size: 12px;
    margin-top: 4px;
}

.notification-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    padding: 10px;
}

.notification-container {
    position: absolute;
    top: 40px;
    right: 10px;
    z-index: 1000;
    padding-top: 30px;
    pointer-events: none;
}

.notifications-close-all {
    opacity: 0;
    position: absolute;
    top: 0px;
    right: 0px;
    background-color: #d5d9dc;
    padding: 3px 7px;
    border-radius: 3px;
    border: 1px solid #d5d5d5;
    font-size: 12px;
    transition: 0.15s;
    pointer-events: none;
    cursor: pointer;
    filter: drop-shadow(0px 0px 0.5px rgb(51, 51, 51));
}

.notifications-close-all:hover {
    background-color: #dee1e3;
}

.notification-container.has-multiple {
    pointer-events: all;
}

.notification-container.has-multiple:hover .notifications-close-all {
    pointer-events: all;
    opacity: 1 !important;
}

/*****************************************************
 * Start
 *****************************************************/
.launch-popover {
    width: 530px;
    height: 500px;
    padding: 20px 20px 20px;
    border: 1px solid #bbc2c9;
    border-radius: 4px;
    background-color: rgba(231, 238, 245, .92);
    backdrop-filter: blur(3px);
    box-sizing: border-box;
    overflow-y: scroll;
}

.close-launch-popover {
    position: absolute;
    top: 2px;
    right: 3px;
    display: none;
}

.device-phone .close-launch-popover {
    display: block;
}

.device-phone .launch-popover {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background-color: rgba(231, 238, 245);
}

.start-section-heading {
    font-size: 13px;
    margin: 0;
    padding: 0;
    height: 15px;
    margin-left: 5px;
    margin-right: 5px;
    border-bottom: 1px solid #CCC;
    padding-bottom: 10px;
    color: #677a86;
    clear: both;
}

.start-app-card {
    height: 100px;
    width: 20%;
    float: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: content-box;
}

.start-app {
    width: 70px;
    height: 70px;
    text-align: center;
    overflow: hidden;
    margin: 0 auto;
    padding: 5px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 4px;
    transition: 0.1s background-color;
}

.start-app-icon {
    filter: drop-shadow(0px 0px .3px rgb(51, 51, 51));
    display: block;
    margin: 0 auto;
    width: 38px;
    height: 38px;
    margin-top: 2px;
}

.start-app.ui-draggable-dragging {
    background-color: transparent !important;
    width: 40px !important;
    height: 40px !important;
}

.start-app.ui-draggable-dragging img {
    width: 26px !important;
    height: 26px !important;
}

.start-app.ui-draggable-dragging .start-app-title {
    display: none;
}

.start-app:hover, .launch-app-selected .start-app {
    background-color: #ffffff;
}

.start-app:active {
    background-color: white;
}

.start-app-title {
    font-size: 12px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-overflow: ellipsis;
    display: block;
    margin-top: 8px;
    width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
}

/* UIWindowEmailConfirmationRequired */
fieldset[name=number-code] {
    min-width: 0;
    /* Fix for Firefox */
    display: flex;
    justify-content: space-between;
    gap: 5px;
}

.digit-input {
    min-width: 0;
    /* Fix for Firefox */
    box-sizing: border-box;
    flex-grow: 1;
    height: 50px;
    font-size: 25px;
    text-align: center;
    border-radius: 0.5rem;
    -moz-appearance: textfield;
    border: 2px solid #9b9b9b;
    color: #485660;
}

.digit-input::-webkit-outer-spin-button,
.digit-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.pulse {
    display: block;
    float: left;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #ffffff;
    animation: pulse-white 1.5s infinite;
    margin: 0;
    margin-top: 8px;
}

.forgot-password-link {
    cursor: pointer;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 13px;
}

.forgot-password-link:hover {
    text-decoration: underline;
}

.pulse-dark {
    display: block;
    float: left;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #3f3f3f;
    cursor: pointer;
    animation: pulse-dark 1.5s infinite;
    margin-top: -7px;
    margin-left: 7px;
}

.context-menu-item-icon-active .pulse {
    margin-top: -7px;
    margin-left: 7px;
}

.qr-code-window-close-btn, .generic-close-window-button {
    position: absolute;
    top: 0px;
    right: 0;
    font-size: 20px;
    cursor: pointer !important;
    color: #5f626d;
    opacity: 0.5;
    cursor: initial;
    padding: 2px 10px 0 10px;
}

.qr-code-window-close-btn:hover, .generic-close-window-button {
    opacity: 1;
}

.welcome-window-close-button {
    opacity: 0.7;
    font-weight: 300;
    top: 5px;
    right: 5px;
}

.welcome-window-close-button:hover {
    opacity: 1;
}

.otp-qr-code {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
}

.otp-qr-code img {
    width: 355px;
    margin-bottom: 20px;
}

.otp-as-text {
    margin: 20px 0;
}

.perm-title {
    text-align: center;
    margin-top: 0;
    padding-bottom: 15px;
    font-size: 20px;
    font-weight: 400;
    margin-bottom: 10px;
    color: #4b586a;
    text-shadow: 1px 1px #ffffff1c;
}

.perm-description {
    text-align: center;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
    padding: 0 10px;
    color: #2d3847;
    margin-top: 5px;
    margin-bottom: 5px;
}

@-webkit-keyframes pulse-white {
    0% {
        -webkit-box-shadow: 0 0 0 0 rgb(255, 255, 255);
    }

    70% {
        -webkit-box-shadow: 0 0 0 px rgba(204, 169, 44, 0);
    }

    100% {
        -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);
    }
}

@keyframes pulse-white {
    0% {
        -moz-box-shadow: 0 0 0 0 rgb(255, 255, 255);
        box-shadow: 0 0 0 0 rgb(255, 255, 255);
    }

    70% {
        -moz-box-shadow: 0 0 0 6px rgba(204, 169, 44, 0);
        box-shadow: 0 0 0 6px rgba(204, 169, 44, 0);
    }

    100% {
        -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);
        box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);
    }
}

@-webkit-keyframes pulse-dark {
    0% {
        -webkit-box-shadow: 0 0 0 0 #3f3f3f;
    }

    70% {
        -webkit-box-shadow: 0 0 0 6px #0267ff00;
    }

    100% {
        -webkit-box-shadow: 0 0 0 0 #0267ff00;
    }
}

@keyframes pulse-dark {
    0% {
        -moz-box-shadow: 0 0 0 0 #3f3f3f;
        box-shadow: 0 0 0 0 #3f3f3f;
    }

    70% {
        -moz-box-shadow: 0 0 0 6px #0267ff00;
        box-shadow: 0 0 0 6px #0267ff00;
    }

    100% {
        -moz-box-shadow: 0 0 0 0 #0267ff00;
        box-shadow: 0 0 0 0 #0267ff00;
    }
}

.progress-bar-container {
    box-sizing: border-box;
    width: 100%;
    height: 17px;
    border: 1px solid rgb(40 109 157);
    border-radius: 3px;
    background-color: white;
    box-shadow: inset -1px 3px 4px #dfdfdf;
}

.progress-bar {
    width: 0;
    height: 100%;
    background-color: rgb(0 137 255);
    transition: 0.4s width;
    background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.05));
}

/* Hide scrollbar for Chrome, Safari and Opera */
.hide-scrollbar::-webkit-scrollbar {
    width: 0 !important;
    display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
.hide-scrollbar {
    -ms-overflow-style: none;
    /* IE and Edge */
    scrollbar-width: none;
    /* Firefox */
}

/******************************************************/
.allow-user-select, .allow-user-select * {
    user-select: text;
}

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

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

@supports ((backdrop-filter: blur())) {
    .window-head {
        background-color: hsla(var(--window-head-hue),
                var(--window-head-saturation),
                var(--window-head-lightness),
                var(--window-head-alpha));
        backdrop-filter: blur(10px);
    }

    .notification {
        background-color: hsla(var(--window-head-hue),
                var(--window-head-saturation),
                var(--window-head-lightness),
                var(--window-head-alpha));
        backdrop-filter: blur(10px);
    }

    .device-phone .window-head {
        background-color: rgba(231, 238, 245);
        backdrop-filter: blur(10px);
    }

    .window-sidebar {
        /* background-color: var(--puter-window-background); */
        background-color: hsla(var(--window-sidebar-hue),
                var(--window-sidebar-saturation),
                var(--window-sidebar-lightness),
                var(--window-sidebar-alpha));
        backdrop-filter: blur(10px);
    }

    .window-snap-placeholder {
        backdrop-filter: blur(5px);
    }

    .context-menu {
        background-color: rgb(255 255 255 / 92%);
        backdrop-filter: blur(3px);
    }

    .popover:not(.device-phone .popover) {
        background-color: rgb(238, 243, 248);
        backdrop-filter: blur(10px);
    }
}

@-moz-keyframes three-quarters-loader {
    0% {
        -moz-transform: rotate(0deg);
        transform: rotate(0deg);
    }

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

@-webkit-keyframes three-quarters-loader {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }

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

@keyframes three-quarters-loader {
    0% {
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }

    100% {
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

.hidden {
    display: none;
}

.invisible {
    visibility: hidden;
}

.login-progress {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.dl-conf-item-attr {
    width: 60px;
    text-align: right;
    display: inline-block;
    margin-right: 10px;
}

.launch-search {
    border-radius: 5px;
    background-repeat: no-repeat;
    width: 100%;
    box-sizing: border-box;
    background-color: white;
    padding: 5px;
    background-size: 20px;
    background-position-y: center;
    background-position-x: 5px;
    padding-left: 35px;
    padding-right: 35px;
    border: 2px solid #CCC;
}

.launch-search-wrapper {
    margin-bottom: 10px;
    padding: 5px;
    position: relative;
}

.device-phone .launch-search-wrapper {
    margin-top: 15px;
}

.launch-search-clear {
    display: none;
    position: absolute;
    right: 8px;
    top: 8px;
    height: 28px;
    opacity: 0.5;
}

.launch-search-clear:hover {
    opacity: 1;
}

.launch-app-selected {}


.website-badge-popover-title {
    font-size: 14px;
    margin: -10px;
    margin-bottom: 5px;
    padding: 8px 10px;
    background: #e5e5e5;
    color: #4b5f6f;
}

.website-badge-popover-content {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    width: 270px;
    padding: 10px;
}

.website-badge-popover-link, .website-badge-popover-link:visited {
    color: #0073ed;
    text-decoration: none;
    width: 179px;
}

.website-badge-popover-link:hover {
    text-decoration: underline;
}

/*!
 * animate.css - https://animate.style/
 * Version - 4.1.1
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2020 Animate.css
 */
:root {
    --animate-duration: 1s;
    --animate-delay: 1s;
    --animate-repeat: 1;
}

.animate__animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-duration: var(--animate-duration);
    animation-duration: var(--animate-duration);
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

/* Zooming entrances */
@-webkit-keyframes zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }

    50% {
        opacity: 1;
    }
}

@keyframes zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }

    50% {
        opacity: 1;
    }
}

.animate__zoomIn {
    -webkit-animation-name: zoomIn;
    animation-name: zoomIn;
}

@-webkit-keyframes fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }

    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }

    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.animate__fadeInRight {
    -webkit-animation-name: fadeInRight;
    animation-name: fadeInRight;
}

.animate__animated.animate__slow {
    -webkit-animation-duration: calc(1s * 2);
    animation-duration: calc(1s * 2);
    -webkit-animation-duration: calc(var(--animate-duration) * 2);
    animation-duration: calc(var(--animate-duration) * 2);
}

@-webkit-keyframes fadeOutRight {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

@keyframes fadeOutRight {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

.animate__fadeOutRight {
    -webkit-animation-name: fadeOutRight;
    animation-name: fadeOutRight;
}

:root {
    --animate-duration: 300ms;
    /* --animate-delay: 0.9s; */
}

.animate__animated.animate__faster {
    -webkit-animation-duration: calc(1s / 2);
    animation-duration: calc(1s / 2);
    -webkit-animation-duration: calc(var(--animate-duration) / 2);
    animation-duration: calc(var(--animate-duration) / 2);
}

.antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.share-copy-link-on-social {
    float: right;
    width: 30px;
    cursor: pointer;
    margin-top: 2px;
}

.copy-link-social-btn {
    margin: 10px;
    display: inline-block;
    width: 20px;
    height: 20px;
}

.copy-link-social-btn img {
    width: 20px;
    height: 20px;
}


.puter-auth-dialog {
    outline: none;
    display: block;
    width: 100% !important;
}

.puter-auth-dialog {
    outline: none;
}

.puter-auth-dialog-content {
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 20px;
    background: white;
    box-shadow: 0 0 9px 1px rgb(0 0 0 / 21%);
    padding: 80px 20px;
    -webkit-font-smoothing: antialiased;
    color: #575762;
    position: relative;
    background-image: url('data:image/webp;base64,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');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 100% 100%;
    background-color: #fff;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.puter-auth-dialog * {
    max-width: 500px;
    font-family: "Helvetica Neue", HelveticaNeue, Helvetica, Arial, sans-serif;
}

.puter-auth-dialog p.about {
    text-align: center;
    font-size: 17px;
    padding: 10px 30px;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    color: #404048;
    box-sizing: border-box;
}

.puter-auth-dialog .buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 20px;
    text-align: center;
    margin-bottom: 20px;
}

.launch-auth-popup-footnote {
    font-size: 11px;
    color: #666;
    margin-top: 10px;
    /* footer at the bottom */
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    text-align: center;
    margin: 0 10px;
}

.signup-terms {
    font-size: 11px;
    color: #666;
    margin-top: 10px;
    bottom: 10px;
    text-align: center;
    margin: 10px 0 15px;
}

.puter-auth-dialog .close-btn {
    position: absolute;
    right: 15px;
    top: 10px;
    font-size: 17px;
    color: #8a8a8a;
    cursor: pointer;
}

.puter-auth-dialog .close-btn:hover {
    color: #000;
}

/** 
 * ------------------------------------
 * Button
 * ------------------------------------
 */

.puter-auth-dialog .button {
    color: #666666;
    background-color: #eeeeee;
    border-color: #eeeeee;
    font-size: 14px;
    text-decoration: none;
    text-align: center;
    line-height: 40px;
    height: 35px;
    padding: 0 30px;
    margin: 0;
    display: inline-block;
    appearance: none;
    cursor: pointer;
    border: none;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    border-color: #b9b9b9;
    border-style: solid;
    border-width: 1px;
    line-height: 35px;
    background: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e1e1e1));
    background: linear-gradient(#f6f6f6, #e1e1e1);
    -webkit-box-shadow: inset 0px 1px 0px rgb(255 255 255 / 30%), 0 1px 2px rgb(0 0 0 / 15%);
    box-shadow: inset 0px 1px 0px rgb(255 255 255 / 30%), 0 1px 2px rgb(0 0 0 / 15%);
    border-radius: 4px;
    outline: none;
    -webkit-font-smoothing: antialiased;
}

.puter-auth-dialog .button:focus-visible {
    border-color: rgb(118 118 118);
}

.puter-auth-dialog .button:active, .puter-auth-dialog .button.active, .puter-auth-dialog .button.is-active, .puter-auth-dialog .button.has-open-contextmenu {
    text-decoration: none;
    background-color: #eeeeee;
    border-color: #cfcfcf;
    color: #a9a9a9;
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
    -webkit-box-shadow: inset 0 1px 3px rgb(0 0 0 / 20%);
    box-shadow: inset 0px 2px 3px rgb(0 0 0 / 36%), 0px 1px 0px white;
}

.puter-auth-dialog .button.disabled, .puter-auth-dialog .button.is-disabled, .puter-auth-dialog .button:disabled {
    top: 0 !important;
    background: #EEE !important;
    border: 1px solid #DDD !important;
    text-shadow: 0 1px 1px white !important;
    color: #CCC !important;
    cursor: default !important;
    appearance: none !important;
    pointer-events: none;
}

.puter-auth-dialog .button-action.disabled, .puter-auth-dialog .button-action.is-disabled, .puter-auth-dialog .button-action:disabled {
    background: #55a975 !important;
    border: 1px solid #60ab7d !important;
    text-shadow: none !important;
    color: #CCC !important;
}

.puter-auth-dialog .button-primary.disabled, .puter-auth-dialog .button-primary.is-disabled, .puter-auth-dialog .button-primary:disabled {
    background: #8fc2e7 !important;
    border: 1px solid #98adbd !important;
    text-shadow: none !important;
    color: #f5f5f5 !important;
}

.puter-auth-dialog .button-block {
    width: 100%;
}

.puter-auth-dialog .button-primary {
    border-color: #088ef0;
    background: -webkit-gradient(linear, left top, left bottom, from(#34a5f8), to(#088ef0));
    background: linear-gradient(#34a5f8, #088ef0);
    color: white;
}

.puter-auth-dialog .button-danger {
    border-color: #f00808;
    background: -webkit-gradient(linear, left top, left bottom, from(#f83434), to(#f00808));
    background: linear-gradient(#f83434, #f00808);
    color: white;
}

.puter-auth-dialog .button-primary:active,
.puter-auth-dialog .button-primary.active,
.puter-auth-dialog .button-primary.is-active,
.puter-auth-dialog .button-primary-flat:active,
.puter-auth-dialog .button-primary-flat.active,
.puter-auth-dialog .button-primary-flat.is-active {
    background-color: #2798eb;
    border-color: #2798eb;
    color: #bedef5;
}

.puter-auth-dialog .button-action {
    border-color: #08bf4e;
    background: -webkit-gradient(linear, left top, left bottom, from(#29d55d), to(#1ccd60));
    background: linear-gradient(#29d55d, #1ccd60);
    color: white;
}

.puter-auth-dialog .button-action:active,
.puter-auth-dialog .button-action.active,
.puter-auth-dialog .button-action.is-active,
.puter-auth-dialog .button-action-flat:active,
.puter-auth-dialog .button-action-flat.active,
.puter-auth-dialog .button-action-flat.is-active {
    background-color: #27eb41;
    border-color: #27eb41;
    color: #bef5ca;
}

.puter-auth-dialog .button-giant {
    font-size: 28px;
    height: 70px;
    line-height: 70px;
    padding: 0 70px;
}

.puter-auth-dialog .button-jumbo {
    font-size: 24px;
    height: 60px;
    line-height: 60px;
    padding: 0 60px;
}

.puter-auth-dialog .button-large {
    font-size: 20px;
    height: 50px;
    line-height: 50px;
    padding: 0 50px;
}

.puter-auth-dialog .button-normal {
    font-size: 16px;
    height: 40px;
    line-height: 38px;
    padding: 0 40px;
}

.puter-auth-dialog .button-small {
    height: 30px;
    line-height: 29px;
    padding: 0 30px;
}

.puter-auth-dialog .button-tiny {
    font-size: 9.6px;
    height: 24px;
    line-height: 24px;
    padding: 0 24px;
}

#launch-auth-popup {
    margin-left: 10px;
    width: 200px;
    font-weight: 500;
    font-size: 15px;
}

.puter-auth-dialog .button-auth {
    margin-bottom: 10px;
}

.puter-auth-dialog a, .puter-auth-dialog a:visited {
    color: rgb(0 69 238);
    text-decoration: none;
}

.puter-auth-dialog a:hover {
    text-decoration: underline;
}

@media (max-width:480px) {
    .puter-auth-dialog-content {
        padding: 50px 20px;
    }

    .puter-auth-dialog .buttons {
        flex-direction: column-reverse;
    }

    .puter-auth-dialog p.about {
        padding: 10px 0;
    }

    .puter-auth-dialog .button-auth {
        width: 100% !important;
        margin: 0 !important;
        margin-bottom: 10px !important;
    }
}

.loading {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #ebebebc2;
    display: flex;
    justify-content: center;
    align-items: center;
    display: none;
}

/*!
 * ==================================================
 * Settings
 * ==================================================
 */

.settings-container {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.settings {
    display: flex;
    flex-direction: row;
    -webkit-font-smoothing: antialiased;
    flex-grow: 1;
    position: relative;
}

.settings-sidebar {
    width: 200px;
    background-color: #f9f9f9;
    border-right: 1px solid #e0e0e0;
    padding: 20px;
    position: relative;
    margin-top: 1px;
}

.settings-sidebar-title {
    margin-bottom: 20px;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    margin-top: 15px;
    color: #8c8c8c;
    font-size: 19px;
}

.settings-sidebar-item {
    cursor: pointer;
    border-radius: 4px;
    padding: 10px;
    margin-bottom: 15px;
    background-repeat: no-repeat;
    background-position: 10px center;
    background-size: 25px;
    padding-left: 45px;
    font-size: 15px;
}

.settings-sidebar-item:hover {
    background-color: #e8e8e8;
}

.settings-sidebar-item.active {
    background-color: #e0e0e0;
}

.settings-content-container {
    flex: 1;
    padding: 20px 30px;
    height: 500px;
    overflow-y: auto;
}

.settings-content {
    display: none;
    max-width: 800px;
    margin: auto;
}

.settings-content[data-settings="about"] {
    height: 100%;
}

.settings-content h1 {
    font-size: 24px;
    margin-bottom: 20px;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 10px;
    padding-left: 5px;
    font-weight: 500;
}

.settings-content.active {
    display: block;
}

.settings-content .about-container {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.settings-content[data-settings="about"] a {
    color: #1663d4;
    text-decoration: none;
    font-size: 12px;
}

.settings-content[data-settings="about"] a:hover {
    text-decoration: underline;
}

.settings-content .logo,
.settings-content .logo img {
    display: block;
    width: 55px;
    height: 55px;
    margin: 0 auto;
    border-radius: 4px;
}

.settings-content .links {
    text-align: center;
    font-size: 14px;
    margin-top: 10px;
}

.settings-content .social-links {
    text-align: center;
    /* margin-top: 10px; */
}

.settings-content .social-links a {
    opacity: 0.7;
    transition: opacity 0.1s ease-in-out;
}

.settings-content .social-links a,
.settings-content .social-links a:hover {
    text-decoration: none;
    margin: 0 10px;

}

.settings-content .social-links a:hover {
    opacity: 1;
}

.settings-content .social-links svg {
    width: 20px;
    height: 20px;
}

.settings-content .about {
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 40px;
    max-width: 500px;
}

.about-container .about {
    text-align: center;
}

.settings-content .version {
    font-size: 9px;
    color: #343c4f;
    text-align: center;
    margin-bottom: 10px;
    opacity: 0.3;
    transition: opacity 0.1s ease-in-out;
    height: 12px;
}

.settings-content .version:hover {
    opacity: 1;
}

.profile-picture {
    cursor: pointer;
    position: relative;
    overflow: hidden;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    border: 1px solid #EEE;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    margin-right: 0;
    margin-top: 20px;
    margin-bottom: 20px;
    background-color: #c5cdd4;
}

.profile-picture:hover {
    background-color: #a6afb7;
}

.profile-image-has-picture{
    border: 1px solid white;
}
.driver-usage {
    background-color: white;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    color: #3c4963;
    height: 85px;
}

.credits {
    padding: 0;
    border: 1px solid #bfbfbf;
    box-shadow: 1px 1px 10px 0px #8a8a8a;
    width: 400px;
}

.credit-content a {
    font-size: 15px;
}

.credits .credit-content {
    padding: 20px;
}

.credit-content {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.credit-content ul {
    max-height: 300px;
    overflow-y: scroll;
    background: #f4f4f4;
    padding: 10px;
    box-shadow: 2px 2px 5px 2px inset #CCC;

}

.credit-content li {
    margin-bottom: 10px;
}

#storage-bar-wrapper {
    width: 100%;
    height: 20px;
    border: 1px solid #8a9096;
    border-radius: 3px;
    background-color: #fff;
    position: relative;
    display: flex;
    align-items: center;
}

#storage-bar {
    float: left;
    height: 20px;
    background: linear-gradient(#dbe3ef, #c2ccdc, #dbe3ef);
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    width: 0;
}

#storage-bar-host {
    float: left;
    height: 100%;
    background: linear-gradient(#dbe3ef, #c2ccdc, #dbe3ef);
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    width: 0;
}

#storage-used-percent {
    position: absolute;
    text-align: center;
    display: inline-block;
    width: 100%;
    font-size: 13px;
}

.usage-progbar-wrapper {
    width: 100%;
    height: 20px;
    border: 1px solid #8a9096;
    border-radius: 3px;
    background-color: #fff;
    position: relative;
    display: flex;
    align-items: center;
}

.usage-progbar {
    float: left;
    height: 20px;
    background: linear-gradient(#dbe3ef, #c2ccdc, #dbe3ef);
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    width: 0;
}

.usage-progbar-percent {
    position: absolute;
    left: calc(50% - 20px);
    text-align: center;
    display: inline-block;
    width: 40px;
    font-size: 13px;
    line-height: 20px;
}

.version {
    font-size: 9px;
    color: #343c4f;
    text-align: center;
    margin-bottom: 10px;
    opacity: 0.3;
    transition: opacity 0.1s ease-in-out;
    height: 12px;
}

.version#version-placeholder {
    margin-top: 10px;
    margin-bottom: 0;
}

.version:hover {
    opacity: 1;
}

.language-list {
    display: grid;
    grid-template-columns: 33.333333333% 33.333333333% 33.333333333%;
}

.language-item {
    cursor: pointer;
    padding: 10px;
    border-radius: 4px;
    margin-bottom: 10px;
    margin-right: 10px;
    font-size: 13px;
    position: relative;
}

.language-item:hover {
    background-color: #f6f6f6;
}

.language-item .checkmark {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    margin-left: 10px;
    display: none;
    position: absolute;
    right: 10px;
}

.language-item.active {
    background-color: #e0e0e0;
}

.language-item.active .checkmark {
    display: inline-block;
}

.settings-card {
    overflow: hidden;
    padding: 10px 15px;
    border: 1px solid;
    border-radius: 4px;
    background: #f7f7f7a1;
    border: 1px solid #cccccc8f;
    margin-bottom: 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 45px;
}

.settings-card .button {
    box-shadow: none;
}

.thin-card {
    padding: 0 15px;
}

.settings-card strong {
    font-weight: 500;
}

.settings-card-danger {
    border-color: #f0080866;
    background: #ffecec;
    color: rgb(215 2 2);
}

.settings-card-success {
    border-color: #08bf4e;
    background: #e6ffed;
    color: #03933a;
}

.settings-card-warning {
    border-color: #f0a500;
    background: #fff7e6;
    color: #c98900;
}

.error-message {
    display: none;
    color: rgb(215 2 2);
    font-size: 14px;
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 10px;
    border-radius: 4px;
    border: 1px solid rgb(215 2 2);
    text-align: center;
}

.account-deletion-confirmation-prompt {
    text-align: center;
    font-size: 16px;
    padding: 20px;
    font-weight: 400;
    margin: -10px 10px 20px 10px;
    -webkit-font-smoothing: antialiased;
    color: #5f626d;
}

.account-deletion-confirmation-icon {
    width: 70px;
    margin: 20px auto 20px;
    display: block;
    margin-bottom: 20px;
}

.proceed-with-user-deletion {
    margin-bottom: 20px;
}

.confirm-temporary-user-deletion {
    width: 100%;
    margin-bottom: 20px;
}

.confirm-user-deletion-password {
    width: 100%;
    margin-bottom: 20px;
}

.session-manager-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    box-sizing: border-box;
    height: 100% !important;
}

.session-widget {
    display: flex;
    flex-direction: column;
    padding: 10px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    gap: 4px;
}

.current-session.session-widget {
    background-color: #f0f0f0;
}

.session-widget-uuid {
    font-size: 12px;
    font-weight: 600;
    color: #9c185b;
}

.session-widget-meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 100px;
    overflow-y: scroll;
}

.session-widget-meta-entry {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.session-widget-meta-key {
    font-size: 12px;
    color: #666;
    flex-basis: 40%;
    flex-shrink: 0;
}

.session-widget-meta-value {
    font-size: 12px;
    color: #666;
    flex-grow: 1;
}

.session-widget-actions {
    display: flex;
    flex-direction: row;
    gap: 10px;
    justify-content: flex-end;
}

/* Extra small devices (phones, less than 576px) */
@media (max-width: 575.98px) {
    .hidden-xs {
        display: none !important;
    }
}

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) and (max-width: 767.98px) {
    .hidden-sm {
        display: none !important;
    }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991.98px) {
    .hidden-md {
        display: none !important;
    }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .hidden-lg {
        display: none !important;
    }
}

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
    .hidden-xl {
        display: none !important;
    }
}

/* Visible classes */
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg,
.visible-xl {
    display: none !important;
}

@media (max-width: 575.98px) {
    .visible-xs {
        display: block !important;
    }

    .settings-sidebar {
        display: none;
        position: fixed;
        height: 100%;
        z-index: 9;
    }
}

@media (min-width: 576px) and (max-width: 767.98px) {
    .visible-sm {
        display: block !important;
    }

    .settings-sidebar {
        display: none;
        position: fixed;
        height: 100%;
        z-index: 9;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .visible-md {
        display: block !important;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .visible-lg {
        display: block !important;
    }
}

@media (min-width: 1200px) {
    .visible-xl {
        display: block !important;
    }
}

.sidebar-toggle {
    position: absolute;
    z-index: 9999999999;
    left: 2px;
    border: 0;
    padding-top: 5px;
    padding-bottom: 5px;
    top: 3px;
}

.sidebar-toggle .sidebar-toggle-button {
    height: 20px;
    width: 20px;
}

.sidebar-toggle span:nth-child(1) {
    margin-top: 5px;
}

.sidebar-toggle span {
    border-bottom: 2px solid #858585;
    display: block;
    margin-bottom: 5px;
    width: 100%;
}

.settings-sidebar.active {
    display: block;
}

.welcome-window-footer {
    position: absolute;
    bottom: 20px;
}

.welcome-window-footer a {
    color: #727c8d;
    text-decoration: none;
    font-size: 12px;
    -webkit-font-smoothing: antialiased;
}

.welcome-window-footer a:hover {
    color: #1d1e23;
}

/*
* ------------------------------------
* Search
* ------------------------------------
*/
.search-input-wrapper {
    width: 100%;
    border-radius: 5px;
    padding-bottom: 10px;
    padding-top: 20px;
    position: absolute;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
    background: #f1f6fc;
}

.search-input {
    padding-left: 33px !important;
    background-repeat: no-repeat;
    background-position: 5px center;
    background-size: 20px;
}

.search-results {
    padding-right: 15px;
    margin-top: 70px;
    padding-left: 15px;
    padding-right: 15px;
    padding-bottom: 5px;
    display: none;
}

.search-result {
    padding: 10px;
    cursor: pointer;
    font-size: 13px;
    display: flex;
    align-items: center;
}

.search-result-active {
    background-color: #4092da;
    color: #fff;
    border-radius: 5px;
}

.search-results .search-result:last-child {
    margin-bottom: 0;
}

.device-phone .window:not(.window-alert), .device-tablet .window:not(.window-alert) {
    transform: none;
    width: 100%;
}

.device-phone .window.window-explore{
    border-radius: 0;
    height: 100dvh !important;
}

.device-phone .window.window-search{
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 40px);
    max-width: calc(100% - 40px);
    max-height: fit-content;
    border-radius: 5px;

}

.device-phone .window.window-qr, 
.device-phone .window.window-progress, 
.device-phone .window.window-login-progress,
.device-phone .window-confirm-email-using-code{
    left: 50% !important;
    transform: translate(-50%) !important;
    height: initial !important;
    max-width: calc(100% - 30px);
}
.device-phone .window.window-refer-friend{
    left: 50% !important;
    transform: translate(-50%) !important;
    height: initial !important;
    max-width: calc(100% - 30px);
}

.device-phone .window.window-task-manager {
    height: initial !important;
}

.device-phone .window.window-feedback{
    height: initial !important; 
}

.device-phone .window.window-filedialog{
    transform: none;
    width: 100% !important;
    left: 0 !important;
    min-height: 100dvh;
    height: 100dvh;
    top: 0 !important;
    border-radius: 0 !important;
}

.device-phone .window.window-app{
    transform: none;
    width: 100%;
    left: 0;
    height: 100dvh;
    min-height: 100dvh;
    top: 0 !important;
    border-radius: 0;
}

.device-phone .window.window-login-2fa{
    left: 50% !important;
    transform: translate(-50%) !important;
    height: initial !important;
    max-width: calc(100% - 30px);
}

.device-phone .window.window-explorer{
    transform: none;
    width: 100%;
    left: 0;
    min-height: 100dvh;
    height: 100dvh;
    top: 0 !important;
    border-radius: 0 !important;
}

.device-phone .window.window-settings{
    transform: none;
    width: 100% !important;
    left: 0 !important;
    height: 100dvh;
    top: 0 !important;
    border-radius: 0;
}

.device-phone .window-signup{
    transform: none;
    width: 100% ;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 0;
}

.device-phone .send-feedback-btn{
    width: 100%;
}

/* Taskbar container */
.device-phone .taskbar {
    /* Enable smooth scrolling */
    -webkit-overflow-scrolling: touch;
    /* Allow horizontal touch scrolling */
    touch-action: pan-x;
    /* Enable horizontal scroll */
    overflow-x: auto;
    /* Hide scrollbars while keeping functionality */
    scrollbar-width: none;
    -ms-overflow-style: none;
    
    /* Base styling */
    display: flex;
    justify-content: left;
}

/* Hide scrollbar while keeping functionality */
.device-phone .taskbar::-webkit-scrollbar {
    display: none;
}

/* Taskbar items */
.device-phone .taskbar .taskbar-item {
    /* Allow dragging while preventing unwanted touch actions */
    touch-action: pan-x pinch-zoom;
    /* Ensure items can be dragged */
    user-select: none;
    -webkit-user-select: none;
    cursor: grab;
    
    /* Base styling */
    display: flex;
    align-items: center;
    justify-content: center;
}
.device-phone .popover-launcher, .device-phone .launch-popover{
    border-radius: 0;
}

/* Main launcher container */
.device-phone .launch-popover {
    /* Enable smooth scrolling on iOS */
    -webkit-overflow-scrolling: touch;

    /* Allow vertical touch scrolling while preventing horizontal */
    touch-action: pan-y;

    /* Base dimensions */
    width: 100%;
    height: 100%;
    
    /* Scrolling behavior */
    overflow-y: scroll;
    overflow-x: hidden;

    /* Background and styling */
    background-color: rgba(231, 238, 245);
    padding: 0;
    margin: 0;

    /* Hide scrollbars while keeping functionality */
    scrollbar-width: none;
    -ms-overflow-style: none;

    padding-left: 10px;
    padding-right: 10px;
}

/* Hide scrollbar while keeping functionality */
.device-phone .launch-popover::-webkit-scrollbar {
    display: none;
}

/* Ensure content can receive touch events */
.device-phone .launch-popover * {
    touch-action: pan-y;
}

/* Make sure the search wrapper doesn't interfere with scrolling */
.launch-search-wrapper {
    position: sticky;
    top: -20px;
    z-index: 1;
    background: rgba(231, 238, 245);
    padding-top: 7px;
}
.device-phone .launch-search-wrapper {
    top: 0;
}

.device-phone .popover-launcher{
    left: 50% !important;
    border-radius: 10px;
    top: 5px !important;
    transform: translateX(-50%);
    width: calc(100% - 25px);
    height: calc(100vh - 65px);
    height: calc(100dvh - 65px);
}

.device-phone .start-app-card{
    width: 25%;
}
.device-phone .start-app-icon{
    width: 50px;
    height: 50px;
}

.device-phone .start-app-title{
    margin-top: 5px;
}

.device-phone .desktop{
    position: relative;

    /* Enable smooth scrolling on iOS */
    -webkit-overflow-scrolling: touch;

    /* Allow vertical touch scrolling while preventing horizontal */
    touch-action: pan-x;

    /* Hide scrollbars while keeping functionality */
    scrollbar-width: none;
    -ms-overflow-style: none;

    /* Scrolling behavior */
    overflow-y: visible !important;
    overflow-x: scroll;

    padding-bottom: 60px;
}

.device-phone .desktop * {
    touch-action: pan-x;
}

.device-phone .desktop::-webkit-scrollbar {
    display: none;
}

/* height of 100% should not be applied to file dialogs */
.device-phone .window:not(.window-filedialog) .window-body.item-container{
    height: 100%;
}

.device-phone .window-body.item-container{
    /* Enable smooth scrolling on iOS */
    -webkit-overflow-scrolling: touch;

    /* Allow vertical touch scrolling while preventing horizontal */
    touch-action: pan-y;
    
    /* Base dimensions */
    width: 100%;
    
    /* Scrolling behavior */
    overflow-y: scroll;
    overflow-x: hidden;

    /* Hide scrollbars while keeping functionality */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.device-phone .window-body.item-container * {
    touch-action: pan-y;
}